ipa.c (cgraph_remove_unreachable_node): Walk references of correct node...
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2010-05-29  Jan Hubicka  <jh@suse.cz>
2
3         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct node;
4         remove references in node we no longer keep in cgrpah but need body
5         of.
6
7 2010-05-29  Jan Hubicka  <jh@suse.cz>
8
9         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
10
11 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12
13         PR target/44165
14         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
15
16 2010-05-29  Jan Hubicka  <jh@suse.cz>
17
18         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
19         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
20         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
21         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
22         debug_names_replaced_by, debug_update_ssa): Likewise.   
23         * sbitmap.c (debug_sbitmap): Likewise.
24         * genrecog.c (debug_decision, debug_decision_list): Likewise.
25         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
26         debug_tree_chain): Likewise.
27         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
28         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
29         * optabs.c  (debug_optab_libfuncs): Likewise.
30         (verify_loop_closed_ssa): Likewise.
31         * value-prof.c (verify_histograms): Likewise.
32         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
33         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
34         * cfghooks.c (verify_flow_info): Likewise.
35         * fold-const.c (debug_fold_checksum): Likewise.
36         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
37         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
38         Likewise.
39         * omega.c (debug_omega_problem): Likewise.
40         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
41         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
42         * dominance.c (verify_dominators, debug_dominance_info,
43         debug_dominance_tree): Likewise.
44         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
45         * df_regno_debug, df_ref_debug,
46         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
47         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
48         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
49         * sel-sched.c (debug_state): Likewise.
50         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for): Likewise.
51         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
52         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
53         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
54         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq): Likewise.
55         * c-pretty-print.c (debug_c_tree): Likewise.
56         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
57         debug_av_set, debug_lv_set, debug_ilist, debug_blist, debug_insn_vector,
58         debug_hard_reg_set, debug_mem_addr_value): Likewise.
59         * ebitmap.c (debug_ebitmap): Likewise.
60         * function.c (debug_find_var_in_block_tree): Likewise.
61         * print-rtl.c (debug_rtx): Likewise.
62         (debug_rtx_count): Likewise.
63         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
64         * stor-layout.c (debug_rli): Likewise.
65         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
66         * tree-data-ref.c (debug_data_references, debug_data_dependence_relations,
67         debug_data_reference, debug_data_dependence_relation, debug_rdg_vertex,
68         debug_rdg_component, debug_rdg): Likewise.
69         * tree-affine.c (debug_aff): Likewise.
70         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats): Likewise.
71         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
72         * emit-rtl.c (verify_rtl_sharing): Likewise.
73         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
74         debug_value_expressions): Likewise.
75         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
76         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
77         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
78         * cfglayout.c (verify_insn_chain): Likewise.
79         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
80         debug_clast_stmt, debug_generated_program): Likewise.
81         * ggc-page.c (debug_print_page_list): Likewise.
82         * tree-ssa-ter.c (debug_ter): Likewise.
83         * graphite-dependences.c (debug_pddr): Likewise.
84         * sched-deps.c (debug_ds): Likewise.
85         * tree-ssa.c (verify_ssa): Likewise.
86         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
87         debug_scattering_functions, debug_iteration_domains, debug_pdr,
88         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context, debug_scop,
89         debug_cloog, debug_scop_params, debug_lst): Likewise.
90         * tree-inline.c (debug_find_tree): Likewise.
91         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
92         debug_ppl_powerset_matrix): Likewise.
93         * var-tracking.c (debug_dv): Likewise.
94         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
95         * cfgloop.c (verify_loop_structure): Likewise.
96         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
97         * c-common.c (verify_sequence_points): Likewise.
98         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
99         debug_candidates, debug_rgn_dependencies): Likewise.
100         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
101         * debug_constraint_graph, debug_solution_for_var,
102         debug_sa_points_to_info): Likewise.
103         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
104         Likewie.
105         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
106         debug_loops, debug_loop, debug_loop_num): Likewise.
107         * passes.c (debug_pass): Likewise.
108         (dump_properties): Likewise; add cfglayout property.
109         (debug_properties): Likewise.
110         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
111         * varpool.c (debug_varpool): Likewise.
112         * regcprop.c (debug_value_data): Likewise.
113         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
114         debug_immediate_uses_for): Likewise.
115
116 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
117
118         PR bootstrap/44315
119         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
120         Filter out insn-flags.h.
121
122 2010-05-29  Jan Hubicka  <jh@suse.cz>
123
124         * cgraph.h (struct varpool_node_set_def,
125         struct cgraph_node_set_def): Remove unused AUX pointer.
126         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
127         VEC_empty macro.
128
129 2010-05-29  Jan Hubicka  <jh@suse.cz>
130
131         PR middle-end/44324
132         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
133
134 2010-05-29  Richard Guenther  <rguenther@suse.de>
135
136         * lto-streamer.c (cached_bp): New global variable.
137         (bitpack_create): Return the cached bitpack, if available.
138         (bitpack_delete): Clear and cache the bitpack, if appropriate.
139         (bp_pack_value): Remove redundant asserts.
140
141 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
142
143         PR middle-end/44306
144         * tree-if-conv.c (is_true_predicate): New.
145         (is_predicated): Use is_true_predicate.
146         (add_to_predicate_list): Same.  Do not use unshare_expr.
147         (add_to_dst_predicate_list): Same.
148
149 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
150
151         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
152         field on edges.
153         (predicate_bbs): Same.
154         (clean_predicate_lists): Same.
155         (find_phi_replacement_condition): Do not AND the predicate from
156         edge->aux.
157
158 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
159
160         PR bootstrap/44315
161         * Makefile.in (build/gencondmd.o): Add a missing `\'.
162
163 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
164
165         PR target/44261
166         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
167         (negdf2): Adjust expander pattern and use negdf2_slow.
168         (negsf2): Likewise.
169
170 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
171
172         * basic-block.h (struct control_flow_graph): Move last_label_uid field up.
173         * df.h (struct df_base_ref): Move regno field up.
174         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
175         * expr.h (struct separate_ops): Move location field up.
176         * optabs.h (struct optab_d): Move libcall_basename field down.
177         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
178         * config/i386/i386.h (struct machine_function): Convert call_abi field
179         into a bitfield.  Move cfa field to the end of the structure.
180
181 2010-05-29  Jan Hubicka  <jh@suse.cz>
182
183         * varpool.c (varpool_get_node): Fix lookup.
184
185 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
186
187         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
188         RTL specific prototypes with #ifdef RTX_CODE.
189         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
190         * config/spu/t-spu-elf: Fix dependencies.
191
192         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
193
194 2010-05-29  Mike Stump  <mikestump@comcast.net>
195
196         PR bootstrap/44315
197         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
198         TM_H when building to avoid dependency loops.
199
200 2010-05-29  Jan Hubicka  <jh@suse.cz>
201
202         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
203         refs and body; not the whole node for masters of materialized
204         clones.
205
206 2010-05-29  Mike Stump  <mikestump@comcast.net>
207
208         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
209
210 2010-05-29  Jan Hubicka  <jh@suse.cz>
211
212         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
213         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
214         use of clone_function_name.
215         * cgraph.h (cgraph_create_virtual_clone, 
216         cgraph_function_versioning): update prototypes.
217         (clone_function_name): Declare.
218         * ipa-cp.c (ipcp_insert_stage): Update call of
219         cgraph_create_virtual_clone.
220         * omp-low.c (create_omp_child_function_name): Use
221         cgraph_create_virtual_clone.
222         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
223         (cgraph_function_versioning): Take SUFFIX argument; produce new name
224         and make decl local.
225
226 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
227
228         * vec.h: Include statistics.h
229         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
230         with VEC_H.
231
232 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
233
234         * c-lex.c: Do not include c-tree.h.
235         * c-pretty-print.c: Likewise.
236         * c-opts.c: Likewise.
237         * c-gimplify.c: Likewise.
238         * c-common.c: Likewise.
239         * c-dump.c: Likewise.  Include c-common.h.
240
241 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
242
243         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
244         before including diagnostic-core.h.
245         (c_cpp_error): New prototype moved from c-tree.h.
246         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
247         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
248         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
249         (c_cpp_error): Prototype moved to c-common.h.
250         * Makefile.in: Update dependency for C_COMMON_H.
251
252 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
253
254         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
255         * c-common.c (c_register_addr_space): Remove here.
256         * c-decl.c (c_register_addr_space): Re-add here.
257
258 2010-05-28  Mike Stump  <mikestump@comcast.net>
259
260         * config/darwin-c.c: Remove c-tree.h include.
261
262 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
263
264         * gcc.c: Include diagnostic.h.
265         (error_count): Remove.  All users changed to use errorcount.
266         (programname): Remove.  All users changed to use progname.
267         (fancy_abort, internal_error, fatal_error, error, warning, inform,
268         fnotice): Remove.
269         (execute): Don't include "Internal error" and bug reporting
270         information in argument of internal_error call.
271         (process_command): Don't increment error_count after calling
272         perror_with_name.
273         (input_filename): Rename to gcc_input_filename.  All users
274         changed.
275         (main): Call diagnostic_initialize.  Register delete_temp_files
276         with atexit.  Use seen_error to test for errors.
277         * gcc.h: Include diagnostic-core.h.
278         (fatal_error, error, warning): Remove.
279         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
280         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
281         (gcc.o): Update dependencies.
282
283 2010-05-28  Jeff Law  <law@redhat.com>
284
285         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
286         functions.
287         * ira.h (ira_bad_reload_regno): Declare
288         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
289
290         * ira-color.c (update_curr_costs): Free updated hard reg costs.
291         (ira_reassign_conflict_allocnos): Remove bogus asserts.
292         (allocno_reload_assign): Likewise.
293
294 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
295
296         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
297         build1_stat.
298
299 2010-05-28  Richard Guenther  <rguenther@suse.de>
300
301         PR lto/44312
302         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
303         Stream fixed-point constants mode.
304         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
305         and TYPE_PRECISION.
306         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
307         Stream fixed-point constants mode.
308         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
309         and TYPE_PRECISION.
310
311 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
312
313         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
314         only place it was called from.
315         (number_of_latch_executions): Do not return chrec_dont_know when the
316         may_be_zero is a runtime condition: instead, return a COND_EXPR
317         including the may_be_zero condition.
318         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
319         of nb_iterations.
320         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
321         COND_EXPRs.
322
323 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
324
325         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
326         generate COND_EXPRs for degenerate_phi_result.
327
328 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
329
330         PR middle-end/44293
331         * tree-if-conv.c (if_convertible_loop_p): Check the
332         if-convertibility of phi nodes in non predicated BBs.
333
334 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
335
336         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
337
338 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
339
340         PR driver/15303
341         * gcc.c (inform, warning, inform): New functions.
342         (fatal_ice): Rename to internal_error; change cmsgid parameter to
343         gmsgid.  All callers changed.
344         (notice): Rename to fnotice; add parameter fp.  All callers
345         changed.
346         (fatal_error): Rename to fatal_signal.  All users changed.
347         (fatal): Rename to fatal_error; change cmsgid parameter to
348         gmsgid.  All callers changed.
349         (process_command): Use warning instead of error for warnings.
350         (end_going_arg): Don't use _() around argument of error.
351         (do_spec_1): Use inform for message from %n specs.  Use warning
352         instead of error for warnings.
353         (main): Use inform for comparison messages.  Use warning for
354         message about unused linker input.
355         (error): Increment error_count.  Print "error: ".
356         * gcc.h (fatal): Change to fatal_error.
357         (warning): Declare.
358         * config/darwin-driver.c (darwin_default_min_version): Use warning
359         instead of fprintf for warnings.
360         * cppspec.c (lang_specific_driver): Use fatal_error instead of
361         fatal.
362
363 2010-05-28  Julian Brown  <julian@codesourcery.com>
364
365         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
366         (*thumb2_addsi3_compare0_scratch): New.
367         * config/arm/constraints.md (Pv): New.
368         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
369         for ARM mode only.
370         (*addsi3_compare0_scratch): Likewise.
371
372 2010-05-28  Jan Hubicka  <jh@suse.cz>
373
374         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
375         check.
376         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
377         only on local statics.
378
379 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
380
381         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
382
383 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
384
385         PR bootstrap/44314
386         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
387         (OPTION_GLIBC): Define.
388
389 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
390
391         PR debug/41048
392         * dwarf2out.c (double_int_type_size_in_bits): New function.
393         (round_up_to_align): Change first argument and return value to
394         double_int.
395         (field_byte_offset): Work internally on double_ints.
396
397         PR target/43636
398         * builtins.c (expand_movstr): Use a temporary pseudo instead
399         of target even when target is not NULL and not const0_rtx, but
400         fails movstr predicate.
401         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
402
403 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
404
405         * final.c (rest_of_clean_state): Use %m in errors instead of
406         strerror (errno).
407         * gengtype.c (read_input_list, close_output_files): Use xstrerror
408         instead of strerror.
409         * toplev.c (process_options): Use %m in errors instead of strerror
410         (errno).
411         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
412         (errno).
413
414 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
415
416         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
417         (ix86_canonical_va_list_type): Make static.  Add declaration.
418         (ix86_enum_va_list): Make static.  Reindent.
419         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
420         (ix86_canonical_va_list_type): Ditto.
421         (ix86_enum_va_list): Ditto.
422
423 2010-05-28  Richard Guenther  <rguenther@suse.de>
424
425         * lto-wrapper.c (run_gcc): With -save-temps generate a
426         user-visible ltrans filename.  Fixup ltrans unit numbering.
427
428 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
429
430         * c-common.c (c_common_nodes_and_builtins): Replace use
431         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
432         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
433         to ix86_enum_va_list.
434         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
435         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
436         (TARGET_ENUM_VA_LIST_P): Add hook description.
437         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
438         * target.h (gcc_target): Add enum_va_list hook.
439
440         PR bootstrap/44299
441         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
442         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
443         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
444
445 2010-05-28  Alan Modra  <amodra@gmail.com>
446
447         PR target/44266
448         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
449         emit_library_call machinery to set up __tls_get_addr calls.
450
451 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
452
453         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
454
455 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
456
457         Revert fix for PR c++/44188
458         * c-common.c (is_typedef_decl): Revert the moving of  this
459         definition ...
460         * tree.c (is_typedef_decl): ... here.
461         (typdef_variant_p): Revert the moving of this  definition
462         here from gcc/cp/tree.c.
463         * c-common.h (is_typedef_decl): Revert the moving of this
464         declaration ...
465         * tree.h (is_typedef_decl): ... here.
466         (typedef_variant_p): Revert the moving of this  declaration here
467         from gcc/cp/cp-tree.h
468         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
469         (gen_tagged_type_die): Revert the splitting out of ...
470         (gen_type_die_with_usage): ... this function. Revert the anonymous
471         tagged type handling.
472         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
473         typedefs naming anonymous tagged types.
474
475 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
476
477         * config/rs6000/rs6000-modes.def (PSImode): Delete.
478
479 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
480
481         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
482         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
483         throughout.
484         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
485         "xer" to "ca".
486         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
487         XER_REGS to CA_REGS throughout.
488         * config/rs6000/rs6000.h: Same.
489         (ADDITIONAL_REGISTER_NAMES): Add "xer".
490         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
491         that mode_iterator "P" is the size for arithmetic carries as well.
492         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
493
494 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
495
496         PR bootstrap/44255
497         * combine.c (struct rtx_subst_pair): Define unconditionally.
498         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
499         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
500         Call make_compound_operation on pair->to.
501         (propagate_for_debug): Don't call make_compound_operation here.
502         Always use simplify_replace_fn_rtx.
503
504 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
505
506         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
507         * config/xtensa/xtensa.c (override_options): Check
508           TARGET_FORCE_NO_PIC and set flag_pic.
509         * config/xtensa/xtensa.opt: Document -mforce-no-pic
510
511 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
512
513         PR bootstrap/44299
514         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
515         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
516
517 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
518
519         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
520         toplev.h.
521         * diagnostic.c: Don't include toplev.h.
522         (progname): Define.  Moved from toplev.c.
523         (seen_error): New function.
524         * diagnostic.h: Include diagnostic-core.h.
525         (diagnostic_t, emit_diagnostic): Don't declare here.
526         * toplev.c (progname): Move to toplev.c.
527         (emit_debug_global_declarations, compile_file, finalize,
528         do_compile, toplev_main): Use seen_error.
529         * toplev.h: Include diagnostic-core.h.
530         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
531         internal_error, warning, warning_at, error, error_n, error_at,
532         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
533         verbatim, fnotice, progname): Move to diagnostic-core.h.
534         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
535         (expand_builtin_expect): Use seen_error.
536         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
537         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
538         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
539         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
540         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
541         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
542         errorcount for errors.
543         * c-opts.c (c_common_finish): Use seen_error.
544         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
545         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
546         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
547         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
548         (get_coverage_counts): Use seen_error.
549         * dwarf2out.c (dwarf2out_finish): Use seen_error.
550         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
551         gimplify_body): Use seen_error.
552         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
553         * ipa-pure-const.c (gate_pure_const): Use seen_error.
554         * ipa-reference.c (gate_reference): Use seen_error.
555         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
556         * lambda-code.c: Include diagnostic-core.h instead of
557         diagnostic.h.
558         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
559         * lto-compress.c: Include diagnostic-core.h instead of
560         diagnostic.h.
561         * lto-section-in.c: Include diagnostic-core.h instead of
562         diagnostic.h.
563         * lto-streamer-out.c: Include diagnostic-core.h instead of
564         diagnostic.h.
565         * lto-streamer.c: Include diagnostic-core.h instead of
566         diagnostic.h.
567         (gate_lto_out): Use seen_error.
568         * matrix-reorg.c: Include diagnostic-core.h instead of
569         diagnostic.h.
570         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
571         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
572         (gate_expand_omp, lower_omp_1): Use seen_error.
573         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
574         (rest_of_decl_compilation, rest_of_type_compilation,
575         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
576         * tree-cfg.c (label_to_block_fn): Use seen_error.
577         * tree-inline.c (optimize_inline_calls): Use seen_error.
578         * tree-mudflap.c (mudflap_finish_file): Use
579         seen_error.
580         * tree-optimize.c (gate_all_optimizations,
581         gate_all_early_local_passes, gate_all_early_optimizations): Use
582         seen_error.
583         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
584         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
585         (varpool_remove_unreferenced_decls,
586         varpool_assemble_pending_decls): Use seen_error.
587         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
588         (TOPLEV_H, DIAGNOSTIC_H): Update.
589         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
590         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
591         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
592         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
593         coverage.o, lambda-code.o): Update dependencies.
594
595 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
596
597         PR c++/44188
598         * c-common.c (is_typedef_decl): Move this definition ...
599         * tree.c (is_typedef_decl): ... here.
600         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
601         * c-common.h (is_typedef_decl): Move this declaration ...
602         * tree.h (is_typedef_decl): ... here.
603         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
604         * dwarf2out.c (is_naming_typedef_decl): New function.
605         (gen_tagged_type_die): Split out of ...
606         (gen_type_die_with_usage): ... this function. When an anonymous
607         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
608         is emitted for the typedef.
609         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
610         anonymous tagged types.
611
612 2010-05-27  Jason Merrill  <jason@redhat.com>
613
614         * print-tree.c (debug_vec_tree): New fn.
615         (print_vec_tree): New fn.
616         * tree.h: Declare them.
617         * gdbinit.in (pvt): New command.
618
619         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
620
621         * gdbinit.in (pdd): New command.
622
623 2010-05-27  Jan Hubicka  <jh@suse.cz>
624
625         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
626         (update_caller_keys): Return early if there are no callers;
627         only update fibheap when decresing the key.
628         (update_callee_keys): Avoid recursion.
629         (decide_inlining_of_small_functions): When badness does not match;
630         re-insert into fibheap.
631
632 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
633
634         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
635         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
636         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
637         (ALL_HOST_OBJS): Now a union of the above two.
638         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
639         all files in ALL_HOST_FRONTEND_OBJS.
640         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
641
642         * c-common.c: Pretend to be a backend file by undefining
643         IN_GCC_FRONTEND (still need rtl.h here).
644
645 2010-05-27  Jan Hubicka  <jh@suse.cz>
646
647         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
648         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
649
650 2010-05-27  Jan Hubicka  <jh@suse.cz>
651
652         * sched-ebb.c: Rename struct deps to struct deps_desc.
653         * ddg.c: Likewise.
654         * sel-sched-ir.c: Likewise.
655         * sched-deps.c: Likewise.
656         * sched-int.h: Likewise.
657         * sched-rgn.c: Likewise.
658
659 2010-05-27  Jon Beniston <jon@beniston.com>
660
661         PR 43726
662         * config/lm32/lm32.h: Remove definition of 
663         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
664
665 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
666
667         PR lto/44230
668         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
669
670 2010-05-27  Richard Guenther  <rguenther@suse.de>
671
672         PR tree-optimization/44284
673         * tree-vect-stmts.c (vectorizable_assignment): Handle
674         sign-changing conversions as simple copy.
675
676 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
677
678         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
679         Bionic C library.
680         (__gthread_active_p): Check for pthread_create if compiling against
681         Bionic C library.
682
683 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
684
685         Support compilation for Android platform.  Reimplement -mandroid.
686
687         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
688         (*android*): Set ANDROID_DEFAULT.
689         (arm*-*-linux*): Include linux-android.h.
690         (arm*-*-eabi*): Don't include previous -mandroid implementation.
691         * config/arm/eabi.h: Remove, move Android-specific parts ...
692         * config/linux-android.h: ... here.  New file.
693         * config/arm/eabi.opt: Rename to ...
694         * config/linux-android.opt: ... this.
695         (mandroid): Allow -mno-android option.  Initialize based on
696         ANDROID_DEFAULT.
697         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
698         Move logic to corresponding LINUX_TARGET_* macros.
699         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
700         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
701         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
702         Android definitions.
703         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
704         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
705         Document.
706
707 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
708
709         Add support for Bionic C library
710
711         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
712         macro.
713         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
714         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
715
716         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
717         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
718         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
719         to support multiple C libraries.  Handle Bionic.
720         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
721         (BIONIC_DYNAMIC_LINKER64): Define.
722         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
723         Update.
724         (TARGET_HAS_SINCOS): Enable for Bionic.
725
726         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
727         the last option specified on command line take effect.
728         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
729         (mbionic): New.
730         (mglibc, muclibc): Update.
731
732         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
733         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
734         DEFAULT_LIBC.
735
736         * doc/invoke.texi (-mglibc, -muclibc): Update.
737         (-mbionic): Document.
738
739 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
740
741         * c-common.h (c_register_addr_space): Add prototype.
742         (ADDR_SPACE_KEYWORD): Remove.
743         * c-common.c (c_register_addr_space): New function.
744         (c_addr_space_name): Reimplement.
745         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
746
747         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
748         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
749
750         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
751         Remove TARGET_ADDR_SPACE_KEYWORDS.
752
753 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
754
755         * input.c: New file.
756         * input.h (main_input_filename): Move declaration to toplev.h.
757         * toplev.c (input_location, line_table): Move to input.c
758         * toplev.h (main_input_filename): Move declaration from input.h.
759         * tree.c (expand_location): Move to input.c.
760         * Makefile.in (OBJS-common): Add input.o.
761         (input.o): Add dependencies.
762
763 2010-05-27  Richard Guenther  <rguenther@suse.de>
764
765         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
766         for non-existant files.
767         (fork_execute): Mark args_name file as deleted.
768
769 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
770
771         PR bootstrp/44287
772         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
773         (narrow_signed_type): Likewise.
774
775 2010-05-26  Jan Hubicka  <jh@suse.cz>
776
777         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
778         edge only when checking is enabled; check using former_clone_of;
779         check inline clones too.
780         (cgraph_materialize_clone): Record former_clone_of pointer.
781         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
782         combining redirections; dump args_to_skip bitmap
783         (cgraph_materialize_all_clones): Do no redirection here.
784         * ipa-inline.c (inline_transform): Do redirection here.
785         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
786         cheking only).
787
788 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
789
790         * config/avr/avr-c.c: Do not include regs.h.
791         Include cpplib.h for cpp_define and tree.h for c-common.h.
792         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
793         * config/avr/t-avr: Fix dependencies for avr-c.o.
794
795 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
796
797         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
798         string instead of SYMBOL_REF rtx.
799         * rtl.h (set_stack_check_libfunc): Move prototype from here...
800         * libfuncs.h: ...to here.  Adjust for explow.c change.
801
802 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
803
804         * pretty-print.c: Don't include ggc.h.
805         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
806         (identifier_to_locale): Use them for allocation.
807         * pretty-print.h (identifier_to_locale_alloc,
808         identifier_to_locale_free): Declare.
809         * toplev.c (alloc_for_identifier_to_locale): New.
810         (general_init): Set identifier_to_locale_alloc and
811         identifier_to_locale_free.
812         * Makefile.in (pretty-print.o): Update dependencies.
813
814 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
815
816         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
817         pointer types if they have different alignment or mode.
818
819 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
820
821         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
822         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
823         * config/sparc/sparc-protos.h (function_value): Remove declaration.
824         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
825         sparc_function_value_regno_p): New functions.
826         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
827         TARGET_FUNCTION_VALUE_REGNO_P): Define.
828         (function_value): Rename to...
829         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
830         argument to 'outgoing'.
831         (function_arg_record_value, function_arg_union_value,
832         function_arg_vector_value): Update comment.
833
834 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
835
836         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
837         (fde_needed_for_eh_p): New predicate.
838         (output_call_frame_info): Use it throughout to decide whether FDEs
839         are needed for EH purpose.
840         (dwarf2out_begin_prologue): Reorder assignments.
841
842 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
843
844         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
845         special case loop->header.
846         (is_predicated): New.
847         (if_convertible_loop_p): Call it.
848
849 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
850
851         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
852         iterator in parameter.  Do not generate code during the analysis.
853         (tree_if_convert_cond_stmt): Removed.
854         (tree_if_convert_stmt): Removed.
855         (predicate_bbs): New.
856         (if_convertible_loop_p): Call predicate_bbs.
857         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
858         now contains all the analysis part.
859
860 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
861
862         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
863         statements in the analysis part.
864         (tree_if_convert_stmt): Update comment.
865         (remove_conditions_and_labels): New.
866         (combine_blocks): Call remove_conditions_and_labels.
867         (tree_if_conversion): Update comment.
868
869 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
870
871         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
872         than 2 predecessors or more than 2 successors.
873
874 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
875
876         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
877         of loops in which the data dependence analysis fails.
878
879 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
880
881         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
882         CDI_POST_DOMINATORS.
883         (tree_if_conversion): Same.
884
885 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
886
887         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
888
889 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
890
891         * tree-if-conv.c: Update copyright years.  Fix comments.
892         Fix indentation.
893
894 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
895
896         * builtin-types.def (BT_INT128): New primitive type.
897         (BT_UINT128): Likewise.
898         * c-common.c (c_common_r): Add __int128 keyword.
899         (c_common_type_for_size): Handle __int128.
900         (c_common_type_for_mode): Likewise.
901         (c_common_signed_or_unsigned_type): Likewise.
902         (c_common_nodes_and_builtins): Add builtin type
903         if target supports 128-bit integer scalar.
904         * c-common.h (enum rid): Add RID_INT128.
905         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
906         if target supports 128-bit integer scalar.
907         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
908         (finish_declspecs): Likewise.
909         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
910         (c_token_starts_declspecs): Likewise.
911         (c_parser_declspecs): Likewise.
912         (c_parser_attributes): Likewise.
913         (c_parser_objc_selector): Likewise.
914         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
915         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
916         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
917         * tree.c (make_or_reuse_type): Likewise.
918         (make_unsigned_type): Likewise.
919         (build_common_tree_nodes_2): Likewise.
920         * tree.h (enum integer_type_kind): Add itk_int128 and
921         itk_unsigned_int128.
922         (int128_integer_type_node): New define.
923         (int128_unsigned_type_node): New define.
924         * doc/extend.texi: Add documentation about __int128 type.
925
926 2010-05-26  Richard Guenther  <rguenther@suse.de>
927
928         * tree-ssa-sccvn.c (copy_nary): Adjust.
929         (copy_phis): Rename to ...
930         (copy_phi): ... this.  Adjust.
931         (copy_references): Rename to ...
932         (copy_reference): ... this.  Adjust.
933         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
934         result into the valid table.
935
936 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
937
938         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
939         insn-config.h, insn-codes.h, recog.h, and optabs.h.
940
941 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
942
943         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
944
945 2010-05-26  Richard Guenther  <rguenther@suse.de>
946
947         * opts.c (common_handle_option): Handle OPT_Ofast.
948
949 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
950
951         * diagnostic.c: Don't include opts.h.
952         (permissive_error_option): Define.
953         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
954         for classify_diagnostic.  Don't use memset for
955         classify_diagnostic.  Initialize new and recently added fields.
956         (diagnostic_classify_diagnostic): Use context->n_opts instead of
957         N_OPTS.
958         (diagnostic_report_diagnostic): Pass context parameter to
959         diagnostic_report_warnings_p.  Use option_enabled and option_name
960         hooks from context.
961         (emit_diagnostic): Use permissive_error_option.
962         (permerror): Likewise.
963         * diagnostic.h: Don't include options.h.
964         (struct diagnostic_context): Add n_opts, opt_permissive,
965         inhibit_warnings, warn_system_headers, option_enabled and
966         option_name fields.  Change classify_diagnostic to a pointer.
967         * opts-diagnostic.h: New file.
968         * opts.c: Include opts-diagnostic.h.
969         (common_handle_option): Set global_dc fields for -Wfatal-errors,
970         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
971         (option_name): New function.
972         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
973         (c_common_handle_option): Set global_dc->permissive for
974         -fpermissive.
975         * c-common.c (c_cpp_error): Save and restore
976         global_dc->warn_system_headers, not variable warn_system_headers.
977         * toplev.c: Include opts-diagnostic.h.
978         (general_init): Update call to diagnostic_initialize.  Set
979         global_dc->show_column, global_dc->option_enabled and
980         global_dc->option_name.
981         (process_options): Don't set global_dc fields here.
982         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
983         (diagnostic.o, opts.o, toplev.o): Update dependencies.
984
985 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
986
987         * config/picochip/picochip.md (movsi): Split a movsi from a
988         const after reload.
989
990 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
991
992         * ggc-zone.c: Update copyright year.
993         (poison_region): Mark memory for Valgrind as undefined before
994         memset () call and inaccessible afterwards.
995         (ggc_pch_total_size): Change type of i to int.
996
997 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
998
999         * ggc-common.c (ggc_free_overhead): Allow empty slot.
1000
1001 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1002
1003         * ggc-common.c: Update copyright year.
1004         (ggc_rlimit_bound): Remove prototype.  Compile only if
1005         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
1006         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
1007         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
1008         (ggc_min_heapsize_heuristic): Likewise.
1009
1010 2010-05-26  Richard Guenther  <rguenther@suse.de>
1011
1012         PR rtl-optimization/44164
1013         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
1014         no-common access-path disambiguation.
1015         (indirect_ref_may_alias_decl_p): Adjust.
1016         (indirect_refs_may_alias_p): Likewise.
1017         (refs_may_alias_p_1): Likewise.
1018
1019 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
1020
1021         * c-typeck.c: Do not include expr.h.
1022
1023 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
1024
1025         * rtl.h (decl_default_tls_model): Move prototype from here...
1026         * output.h: ...to here.
1027         * c-decl.c: Do not include rtl.h.
1028         * c-pragma.c: Likewise.
1029         * c-parser.c: Likewise.
1030         * c-gimplify.c: Likewise.  And also not hard-reg-set.
1031         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
1032         FIXME note for it.  Add a FIXME note for expr.h.
1033         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
1034         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
1035         defined.
1036
1037 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
1038
1039         PR target/44199
1040         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
1041         or total_size is larger than red zone size for non-V4 ABI, emit a
1042         stack_tie resp. frame_tie insn before stack pointer restore.
1043         * config/rs6000/rs6000.md (frame_tie): New insn.
1044
1045 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1046
1047         * function.h (struct function): Add can_throw_non_call_exceptions bit.
1048         * lto-streamer-in.c (input_function): Stream it in.
1049         * lto-streamer-out.c (output_function): Stream it out.
1050         * function.c (allocate_struct_function): Set it.
1051         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
1052         for flag_non_call_exceptions.
1053         * cfgbuild.c (control_flow_insn_p): Likewise.
1054         (make_edges): Likewise.
1055         * cfgexpand.c (expand_stack_alignment): Likewise.
1056         * combine.c (distribute_notes): Likewise.
1057         * cse.c (cse_extended_basic_block): Likewise.
1058         * except.c (insn_could_throw_p): Likewise.
1059         * gcse.c (simple_mem): Likewise.
1060         * ipa-pure-const.c (check_call): Likewise.
1061         (check_stmt ): Likewise.
1062         * lower-subreg.c (lower-subreg.c): Likewise.
1063         * optabs.c (emit_libcall_block): Likewise.
1064         (prepare_cmp_insn): Likewise.
1065         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
1066         * postreload.c (rest_of_handle_postreload): Likewise.
1067         * reload1.c (reload_as_needed): Likewise.
1068         (emit_input_reload_insns): Likewise.
1069         (emit_output_reload_insns): Likewise.
1070         (fixup_abnormal_edges): Likewise.
1071         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
1072         * store-motion.c (find_moveable_store): Likewise.
1073         * tree-eh.c (stmt_could_throw_p): Likewise.
1074         (tree_could_throw_p): Likewise.
1075         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
1076         * config/arm/arm.c (arm_expand_prologue): Likewise.
1077         (thumb1_expand_prologue): Likewise.
1078         * config/rx/rx.md (cbranchsf4): Likewise.
1079         (cmpsf): Likewise.
1080         * config/s390/s390.c (s390_emit_prologue): Likewise.
1081         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
1082         (inline_forbidden_into_p): New predicate.
1083         (expand_call_inline): Use it to forbid inlining.
1084         (tree_can_inline_p): Likewise.
1085
1086 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
1087
1088         * config/i386/i386-c.c: Do not include rtl.h.
1089         * config/i386/t-i386: Update dependencies.
1090
1091 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
1092
1093         * attribs.c: Do not include rtl.h.
1094         * Makefile.in: Update dependencies.
1095
1096 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
1097
1098         * double-int.h (double_int_and): New.
1099         * combine.c (try_combine): Clean up, use double_int_* and
1100         immed_double_int_const functions.
1101
1102 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1103
1104         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
1105         stderr to /dev/null instead of grep -q.
1106         * configure: Regenerate.
1107
1108 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
1109
1110         * Makefile.in (EXCEPT_H): Fix typo.
1111
1112 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
1113
1114         * ira-build.c (update_conflict_hard_reg_costs): New.
1115         (ira_build): Call update_conflict_hard_reg_costs.
1116
1117 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
1118
1119         PR debug/41371
1120         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
1121         ENABLE_CHECKING.
1122         (intersect_loc_chains): Walk the s2var's loc_chain together
1123         with s1node chain as long as the locations are equal, don't
1124         call find_loc_in_1pdv in that case.
1125
1126         PR debug/42801
1127         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
1128         (copy_bind_expr): ... instead of here.
1129         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
1130         if the block hasn't been remapped.
1131         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
1132         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
1133
1134 2010-05-25  Richard Guenther  <rguenther@suse.de>
1135
1136         PR middle-end/44069
1137         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
1138         out-of-bounds array accesses.
1139
1140 2010-05-25  Richard Guenther  <rguenther@suse.de>
1141
1142         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
1143         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
1144         (run_gcc): Re-organize to make cleanup easier.
1145
1146 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1147
1148         * config/s390/s390.c (optimization_options): Fix and move the
1149         flag_prefetch_loop_arrays override ...
1150         (override_options): ... here.
1151
1152 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
1153
1154         * diagnostic.c: Don't include plugin.h.
1155         (diagnostic_report_diagnostic): Don't handle plugins specially
1156         here.  Pass context to internal_error callback.
1157         * diagnostic.h (struct diagnostic_context): Add context parameter
1158         to internal_error callback.
1159         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
1160         * plugin.h (struct diagnostic_context): Declare.
1161         (warn_if_plugins, plugins_internal_error_function): Declare.
1162         * toplev.c (general_init): Set global_dc->internal_error.
1163         * Makefile.in (diagnostic.o): Update dependencies.
1164
1165 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
1166
1167         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
1168         * config/rs6000/t-darwin64: New.
1169         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
1170         build crt2.
1171
1172 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
1173
1174         PR 44203
1175         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
1176         match the original (and intended) behaviour before r159557.  This
1177         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
1178         in two ways.
1179
1180 2010-05-25  Richard Guenther  <rguenther@suse.de>
1181
1182         * doc/invoke.texi: Document -Ofast.
1183         * target.h (struct gcc_target): Add handle_ofast.
1184         * target-def.h (TARGET_HANDLE_OFAST): Add.
1185         (TARGET_INITIALIZER): Adjust.
1186         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
1187         * common.opt (Ofast): Add.
1188
1189 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
1190
1191         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
1192         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
1193
1194 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
1195
1196         PR target/43610
1197         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
1198         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
1199         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
1200         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
1201
1202 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
1203
1204         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
1205         DW_OP_minus with negated offset instead of DW_OP_plus.
1206         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
1207
1208 2010-05-25  Wei Guozhi  <carrot@google.com>
1209
1210         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
1211         tst instruction and a new alternative.
1212         * config/arm/constraints.md (Pu): New constraint.
1213
1214 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
1215
1216         * function.c (assign_stack_local_1): Initialize variable
1217         to avoid warning when bootstrapping at -O3.
1218
1219 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
1220
1221         * configure.ac (all_lang_makefiles): Remove everything related to it.
1222         * configure: Regenerate.
1223         * Makefile.in: Fix reference to ada Make-lang.in.
1224         Remove support for LANG_MAKEFILES.
1225
1226 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
1227             Sandra Loosemore  <sandra@codesourcery.com>
1228
1229         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
1230         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
1231         description.  Add arm_neon_fp16_ok.
1232         (Add Options): Add arm_neon and arm_neon_fp16.
1233
1234 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
1235
1236         * diagnostic.c: Don't include flags.h.
1237         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
1238         context parameters.  Check flags in the context passed as a parameter.
1239         (diagnostic_build_prefix): Add context parameter.  Check
1240         show_column flag in context.
1241         (diagnostic_action_after_output): Check fatal_errors flag in context.
1242         (diagnostic_report_current_module): Check show_column flag in context.
1243         (default_diagnostic_starter): Update call to
1244         diagnostic_build_prefix.
1245         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
1246         (emit_diagnostic): Pass context to permissive_error_kind.
1247         (permerror): Pass context to permissive_error_kind.
1248         * diagnostic.h (struct diagnostic_context): Add show_column,
1249         pedantic_errors, permissive and fatal_errors fields.
1250         (diagnostic_build_prefix): Update prototype.
1251         * langhooks.c
1252         * toplev.c (process_options): Set flags in global_dc from
1253         flag_show_column, flag_pedantic_errors, flag_permissive,
1254         flag_fatal_errors.
1255         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
1256         to diagnostic_build_prefix.
1257         * Makefile.in (diagnostic.o): Update dependencies.
1258
1259 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
1260
1261         * config/i386/ia32intrin.h (__crc32q): Define only if
1262         __SSE4_2__ is defined.
1263
1264 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
1265
1266         PR target/44132
1267         PR middle-end/43602
1268         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
1269         DECL_VISIBILITY_SPECIFIED.
1270         (emutls_decl): Set DECL_PRESERVE_P and copy
1271         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
1272         (emutls_finalize_control_var): New callback.
1273         (emutls_finish): Finalize emutls control variables.
1274         * toplev.c (compile_file): Move the call to emutls_finish ()
1275         before varpool_assemble_pending_decls ().
1276
1277 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
1278
1279         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
1280         added to the preprocessor condition.
1281
1282 2010-05-24  Paul Brook  <paul@codesourcery.com>
1283
1284         * gengtype-lex.l: Add HARD_REG_SET.
1285         * expr.c (expand_expr_real_1): Record writes to hard registers.
1286         * function.c (rtl_data): Add asm_clobbers.
1287         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
1288         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
1289         Use crtl->asm_clobbers.
1290
1291 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1292
1293         * doc/makefile.texi (Makefile): Mention stages 'profile'
1294         and 'feedback' for profiledbootstrap.
1295
1296 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
1297
1298         PR target/44245
1299         * config/i386/i386.c (def_builtin): Properly check
1300         OPTION_MASK_ISA_64BIT.
1301
1302 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
1303
1304         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
1305         typedefs with different but compatible types.  Allow duplicate
1306         typedefs with the same type except for pedantic non-C1X, but give
1307         warning for variably modified types.
1308         * c-typeck.c (tagged_types_tu_compatible_p,
1309         function_types_compatible_p, type_lists_compatible_p,
1310         comptypes_internal): Add parameter different_types_p; set
1311         *different_types_p for different but compatible types.  All
1312         callers changed.
1313         (comptypes_check_different_types): New.
1314         * c-tree.h (comptypes_check_different_types): Declare.
1315
1316 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
1317
1318         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
1319         * jump.c: Include basic-block.h.
1320         * profile.c: Likewise.
1321         * tree-profile.c: Likewise.
1322         * coverage.c: Likewise.
1323         * basic-block.h (optimize_function_for_size_p): Move to function.h.
1324         (optimize_function_for_speed_p): Likewise.
1325         * function.h (optimize_function_for_size_p,
1326         optimize_function_for_speed_p): Moved here from basic-block.h.
1327         * Makefile.in: Update dependencies.
1328
1329 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1330
1331         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
1332         before calling make; allow override through $MAKE.
1333         * doc/invoke.texi (Optimize Options): Document override.
1334
1335 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
1336
1337         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
1338         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1339         (rs6000_mode_dependent_address_ptr): Make static.
1340         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
1341         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
1342         Remove.
1343
1344 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
1345
1346         PR target/43869
1347         * config/i386/i386.c: Make sure that the correct regparm is passed.
1348
1349 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
1350
1351         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
1352         * sbitmap.c: ...to here to internalize sbitmap element access.
1353         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
1354         Explain why basic-block.h is included.
1355         * function.h: Include tm.h for CUMULATIVE_ARGS.
1356         * Makefile.in: Update dependencies.
1357
1358 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
1359
1360         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
1361         New core types.
1362         * sbitmap.h (struct sbitmap_def): Do not typedef here.
1363         * sbitmap.c: Include sbitmap.h.
1364         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
1365         hard-reg-set.h.  Split everything related to regsets out from here...
1366         * regset.h: ...to here.  New file.
1367         * df.h: Include regset.h and sbitmap.h.
1368         * tree-flow.h: Likewise.
1369         * cfgloop.h: Likewise.
1370         * except.h: Do not include sbitmap.h.  Include hashtab.h.
1371         * cgraph.h: Include vec.h and function.h.
1372         * reload.h (struct insn_chain): Change types of live_throughout
1373         and dead_or_set from regset_head to bitmap_head.
1374         (compute_use_by_pseudos): Be defined also if regset.h is not included.
1375         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
1376         spilled_regs from regset_head to bitmap_head to avoid dependency
1377         in regset.h.
1378         * sel-sched-ir.h: Include regset.h.
1379         * reload.c: Include df.h before reload.h.
1380         * caller-save.c: Likewise.
1381         * reload1.c: Likewise.
1382         * ira.c: Likewise.
1383         (mark_elimination): Update type of r to bitmap, consistent with
1384         DF_LR_IN.
1385         * dominance.c: Include bitmap.h.
1386         * modulo-sched.c: Include df.h.
1387         * cfganal.c: Include bitmap.h and sbitmap.h.
1388         * cfgbuild.c: Include sbitmap.h.
1389         * lcm.c: Include sbitmap.h.
1390         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
1391         * domwalk.c: Include sbitmap.h, exclude ggc.h.
1392         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
1393         * cselib.c: Include bitmap.h.
1394         * tree-optimize.c: Include regset.h.
1395         * stmt.c: Include bitmap.h.
1396         * Makefile.in: Update dependencies.
1397
1398 2010-05-22  Jan Hubicka  <jh@suse.cz>
1399
1400         * cgraph.h (struct varpool_node): Add same_comdat_group.
1401         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
1402         pointer.
1403         (output_varpool): Update call of lto_output_varpool_node.
1404         (input_varpool): Read same_comdat_group pointer.
1405         (input_varpool_1): Fixup same_comdat_group pointer.
1406         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
1407         group is needed, all are.
1408         * varpool.c (varpool_remove_node): Remove node from same comdat group
1409         linklist too.
1410         (varpool_analyze_pending_decls): Walk same comdat groups.
1411
1412 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
1413
1414         * rtl.h (union rtunion_def): Remove rt_bit member.
1415         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
1416         * print-rtl (print_rtx): Do not print the member.
1417         * gengtype.c (adjust_field_rtx_def): Do not handle it.
1418         * gengenrtl.c (type_from_format): Likewise.
1419         (accessor_from_format): Likewise.
1420
1421 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
1422
1423         * dbgcnt.c: Include toplev.h instead of errors.h.
1424         * ira-emit.c: Don't include errors.h.
1425         * ira.c: Include toplev.h instead of errors.h.
1426         * lto-compress.c: Include toplev.h instead of errors.h.
1427         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
1428         ira.o, dbgcnt.o): Update dependencies.
1429
1430 2010-05-22  Richard Guenther  <rguenther@suse.de>
1431
1432         * gimple.c (gimple_types_compatible_p): Check type qualifications
1433         before merging pointer to complete and pointer to incomplete type.
1434         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
1435         we use our own resolution algorithm.  The gold linker plugin
1436         doesn't do the job we want it to do here.
1437
1438 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
1439
1440         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
1441         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1442         (sparc_mode_dependent_address_p): New function.
1443
1444 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1445
1446         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
1447
1448         * timevar.c: Do not include any core headers.
1449         (timevar_print): De-i18n-ize.
1450         (print_time): Likewise.
1451         * timevar.h (timevar_push, timevar_pop): Make inline functions.
1452
1453 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
1454
1455         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
1456         langhooks-def.h.
1457         (diagnostic_initialize): Initialize x_data not last_function.
1458         (diagnostic_report_current_function): Move to tree-diagnostic.c.
1459         (default_diagnostic_starter): Call
1460         diagnostic_report_current_module not
1461         diagnostic_report_current_function.
1462         (diagnostic_report_diagnostic): Initialize x_data not
1463         abstract_origin.
1464         (verbatim): Likewise.
1465         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
1466         x_data.
1467         (struct diagnostic_context): Change last_function to x_data.
1468         (diagnostic_auxiliary_data): Replace with
1469         diagnostic_context_auxiliary_data and
1470         diagnostic_info_auxiliary_data.
1471         (diagnostic_last_function_changed, diagnostic_set_last_function,
1472         diagnostic_report_current_function): Move to tree-diagnostic.h.
1473         (print_declaration, dump_generic_node, print_generic_stmt,
1474         print_generic_stmt_indented, print_generic_expr,
1475         print_generic_decl, debug_c_tree, dump_omp_clauses,
1476         print_call_name, debug_generic_expr, debug_generic_stmt,
1477         debug_tree_chain, default_tree_printer): Move to
1478         tree-pretty-print.h.
1479         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
1480         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
1481         gimple-pretty-print.h.
1482         * pretty-print.c: Don't include tree.h
1483         (pp_base_format): Don't handle %K here.
1484         (pp_base_tree_identifier): Move to tree-pretty-print.c.
1485         * pretty-print.h (text_info): Change abstract_origin to x_data.
1486         (pp_tree_identifier, pp_unsupported_tree,
1487         pp_base_tree_identifier): Move to tree-pretty-print.h.
1488         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
1489         tree-pretty-print.h: New files.
1490         * tree-pretty-print.c: Include tree-pretty-print.h.
1491         (percent_K_format): New.  Moved from pretty-print.c.
1492         (pp_base_tree_identifier): Move from pretty-print.c.
1493         * c-objc-common.c: Include tree-pretty-print.h.
1494         (c_tree_printer): Handle %K here.
1495         * langhooks.c: Include tree-diagnostic.h.
1496         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
1497         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
1498         (default_tree_printer): Handle %K using percent_K_format.
1499         (general_init): Use default_tree_diagnostic_starter.
1500         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
1501         (free_lang_data): Use default_tree_diagnostic_starter.
1502         * c-pretty-print.c: Include tree-pretty-print.h.
1503         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1504         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1505         * dwarf2out.c: Include tree-pretty-print.h.
1506         * except.c: Include tree-pretty-print.h.
1507         * gimple-pretty-print.c: Include tree-pretty-print.h and
1508         gimple-pretty-print.h.
1509         * gimplify.c: Include tree-pretty-print.h.
1510         * graphite-poly.c: Include tree-pretty-print.h and
1511         gimple-pretty-print.h.
1512         * ipa-cp.c: Include tree-pretty-print.h.
1513         * ipa-inline.c: Include gimple-pretty-print.h.
1514         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1515         * ipa-pure-const.c: Include gimple-pretty-print.h.
1516         * ipa-struct-reorg.c: Include tree-pretty-print.h and
1517         gimple-pretty-print.h.
1518         * ipa-type-escape.c: Include tree-pretty-print.h.
1519         * print-rtl.c: Include tree-pretty-print.h.
1520         * print-tree.c: Include gimple-pretty-print.h.
1521         * sese.c: Include tree-pretty-print.h.
1522         * tree-affine.c: Include tree-pretty-print.h.
1523         * tree-browser.c: Include tree-pretty-print.h.
1524         * tree-call-cdce.c: Include gimple-pretty-print.h.
1525         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1526         * tree-chrec.c: Include tree-pretty-print.h.
1527         * tree-data-ref.c: Include tree-pretty-print.h and
1528         gimple-pretty-print.h.
1529         * tree-dfa.c: Include tree-pretty-print.h.
1530         * tree-if-conv.c: Include tree-pretty-print.h and
1531         gimple-pretty-print.h.
1532         * tree-inline.c: Include tree-pretty-print.h.
1533         * tree-into-ssa.c: Include tree-pretty-print.h and
1534         gimple-pretty-print.h.
1535         * tree-nrv.c: Include tree-pretty-print.h.
1536         * tree-object-size.c: Include tree-pretty-print.h and
1537         gimple-pretty-print.h.
1538         * tree-outof-ssa.c: Include tree-pretty-print.h and
1539         gimple-pretty-print.h.
1540         * tree-parloops.c: Include tree-pretty-print.h and
1541         gimple-pretty-print.h.
1542         * tree-predcom.c: Include tree-pretty-print.h and
1543         gimple-pretty-print.h.
1544         * tree-scalar-evolution.c: Include tree-pretty-print.h and
1545         gimple-pretty-print.h.
1546         * tree-sra.c: Include tree-pretty-print.h.
1547         * tree-ssa-address.c: Include tree-pretty-print.h.
1548         * tree-ssa-alias.c: Include tree-pretty-print.h.
1549         * tree-ssa-ccp.c: Include tree-pretty-print.h and
1550         gimple-pretty-print.h.
1551         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
1552         * tree-ssa-copy.c: Include tree-pretty-print.h and
1553         gimple-pretty-print.h.
1554         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
1555         * tree-ssa-dce.c: Include tree-pretty-print.h and
1556         gimple-pretty-print.h.
1557         * tree-ssa-dom.c: Include tree-pretty-print.h and
1558         gimple-pretty-print.h.
1559         * tree-ssa-dse.c: Include gimple-pretty-print.h.
1560         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
1561         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
1562         * tree-ssa-live.c: Include tree-pretty-print.h and
1563         gimple-pretty-print.h.
1564         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
1565         gimple-pretty-print.h.
1566         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
1567         gimple-pretty-print.h.
1568         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
1569         gimple-pretty-print.h.
1570         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
1571         gimple-pretty-print.h.
1572         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
1573         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
1574         * tree-ssa-operands.c: Include tree-pretty-print.h and
1575         gimple-pretty-print.h.
1576         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
1577         gimple-pretty-print.h.
1578         * tree-ssa-pre.c: Include tree-pretty-print.h and
1579         gimple-pretty-print.h.
1580         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
1581         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
1582         gimple-pretty-print.h.
1583         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
1584         gimple-pretty-print.h.
1585         * tree-ssa-sink.c: Include gimple-pretty-print.h.
1586         * tree-ssa-ter.c: Include tree-pretty-print.h and
1587         gimple-pretty-print.h.
1588         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
1589         * tree-ssa.c: Include tree-pretty-print.h and
1590         gimple-pretty-print.h.
1591         * tree-stdarg.c: Include gimple-pretty-print.h.
1592         * tree-switch-conversion.c: Include gimple-pretty-print.h.
1593         * tree-tailcall.c: Include tree-pretty-print.h and
1594         gimple-pretty-print.h.
1595         * tree-vect-data-refs.c: Include tree-pretty-print.h and
1596         gimple-pretty-print.h.
1597         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
1598         gimple-pretty-print.h.
1599         * tree-vect-loop.c: Include tree-pretty-print.h and
1600         gimple-pretty-print.h.
1601         * tree-vect-patterns.c: Include gimple-pretty-print.h.
1602         * tree-vect-slp.c: Include tree-pretty-print.h and
1603         gimple-pretty-print.h.
1604         * tree-vect-stmts.c: Include tree-pretty-print.h and
1605         gimple-pretty-print.h.
1606         * tree-vectorizer.c: Include tree-pretty-print.h.
1607         * tree-vrp.c: Include tree-pretty-print.h and
1608         gimple-pretty-print.h.
1609         * value-prof.c: Include tree-pretty-print.h and
1610         gimple-pretty-print.h.
1611         * var-tracking.c: Include tree-pretty-print.h.
1612         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
1613         (tree-diagnostic.o): New dependencies.
1614         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
1615         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
1616         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
1617         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
1618         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
1619         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
1620         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
1621         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
1622         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
1623         tree-ssa-address.o, tree-ssa-loop-niter.o,
1624         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
1625         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
1626         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
1627         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
1628         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
1629         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
1630         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
1631         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
1632         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
1633         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
1634         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
1635         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
1636         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
1637         tree-switch-conversion.o, var-tracking.o, value-prof.o,
1638         cfgexpand.o, pretty-print.o): Update dependencies.
1639
1640 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
1641
1642         * tree-ssa-structalias.c: Remove tm_p.h from include.
1643
1644 2010-05-21  Jeff Law  <law@redhat.com>
1645
1646         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
1647
1648 2010-05-21  Jason Merrill  <jason@redhat.com>
1649
1650         * tree-eh.c (cleanup_is_dead_in): New.
1651         (lower_try_finally): Don't generate a dead cleanup region.
1652         (lower_cleanup): Likewise.
1653
1654 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1655
1656         PR debug/44223
1657         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
1658         unchain each use from the cyclic next_regno_use chain first.
1659
1660 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1661
1662         * real: Do not include gmp.h, mpfr.h, and mpc.h.
1663         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
1664         (real_value_negate, real_value_abs): New prototypes.
1665         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
1666         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
1667         new include file for interface between MPFR and REAL_VALUE_TYPE.
1668         * real.c: Include realmpfr.h.
1669         (real_arithmetic2): Remove legacy function.
1670         (real_value_negate): New.
1671         (real_value_abs): New.
1672         (mfpr_from_real, real_from_mpfr): Move from here...
1673         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
1674         * builtins.c: Include realmpfr.h.
1675         * fold-const.c: Include realmpfr.h.
1676         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
1677         (fold_negate_const): Likewise.
1678         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
1679         * toplev.c: Include realmpfr.h.
1680         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
1681         and real_value_negate.
1682         * fixed-value.c (check_real_for_fixed_mode): Likewise.
1683         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
1684         (vfp3_const_double_index): Likewise.
1685         (arm_print_operand): Likewise.
1686         * Makefile.in: Update dependencies.
1687
1688 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1689
1690         * config/s390/s390.c (override_options): Increase the default
1691         of max-completely-peel-times.
1692
1693 2010-05-21  Julian Brown  <julian@codesourcery.com>
1694             Mark Mitchell  <mark@codesourcery.com>
1695
1696         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
1697         sibling calls for Thumb-1.
1698         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
1699         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
1700         Thumb-2.
1701         (*call_insn, *call_value_insn): Don't use for Thumb-2.
1702         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
1703         for Thumb-2.
1704         (return): New expander.
1705         (*arm_return): New name for ARM return insn.
1706         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
1707
1708 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
1709
1710         * config.gcc (sparc64-*-rtems*): New target.
1711
1712 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1713
1714         * tree.c (build_function_decl_skip_args): Fix grammar.
1715         (build_function_type_list_1): Fix typos, adjust formatting.
1716
1717 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1718
1719         * tree.h: Include real.h and fixed-value.h as basic datatypes.
1720         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
1721         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
1722         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
1723         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
1724         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
1725         tree-pretty-print.c, tree-loop-distribution.c,
1726         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
1727         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
1728         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
1729         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
1730         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
1731         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
1732         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
1733         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
1734         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
1735         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
1736         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
1737         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
1738         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
1739         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
1740         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
1741         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
1742         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
1743         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
1744         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
1745         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
1746         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
1747         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
1748         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
1749         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
1750         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
1751         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
1752         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
1753         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
1754         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
1755         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
1756         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
1757         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
1758         config/score/score7.c, config/score/score.c, config/arm/arm.c,
1759         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
1760         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
1761         config/bfin/bfin.c: Clean up redundant includes.
1762         * Makefile.in: Update accordingly.
1763
1764 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1765
1766         PR middle-end/44204
1767         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
1768         statement has no arguments.
1769
1770 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
1771
1772         PR/44139
1773         * varasm.c (emutls_decl): Merge attributes to new decl.
1774
1775 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1776
1777         PR middle-end/44101
1778         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
1779         around the uniquized constructor if its type requires a conversion.
1780
1781 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1782
1783         PR debug/44205
1784         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
1785         at -O0 goto_locus of any of the incoming edges differs from
1786         goto_locus of outgoing edge, or gimple_location of any of the
1787         labels differs.
1788
1789 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
1790
1791         * ira.c (ira_non_ordered_class_hard_regs): Define.
1792         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
1793         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
1794         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
1795         cost of unaligned hard regs when allocating multi-reg pseudos.
1796
1797 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
1798
1799         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
1800         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
1801         for TARGET_NO_FLOAT.
1802         * config/mips/mips.c (mips_file_start): Expand conditional expression
1803         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
1804         (mips_override_options): Move -mno-float override -msoft-float and
1805         -mhard-float.
1806         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
1807         Condition(TARGET_SUPPORTS_NO_FLOAT).
1808         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
1809         __mips_no_float here.
1810         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
1811         (TARGET_SUPPORTS_NO_FLOAT): Define.
1812         * config/mips/sdemtk.opt: Delete.
1813
1814 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
1815
1816         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
1817
1818 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
1819
1820         PR target/43733
1821         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
1822         * configure: Regenerate.
1823         * config.in: Regenerate.
1824         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
1825         instead of sahf only for 64bit targets.
1826
1827 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1828
1829         PR debug/44178
1830         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
1831         setup_ref_regs for DEBUG_INSNs.
1832
1833 2010-05-20  Jan Hubicka  <jh@suse.cz>
1834
1835         PR middle-end/44197
1836         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
1837
1838 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
1839
1840         PR bootstrap/43870
1841         * df-scan.c (df_ref_compare): Stabilize sort.
1842
1843 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1844
1845         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
1846         argument.  Don't use DW_OP_piece if offset is non-zero,
1847         put offset into second DW_OP_bit_piece argument.
1848         (dw_sra_loc_expr): Adjust callers.  For memory expressions
1849         compute offset.
1850
1851 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
1852
1853         PR target/44202
1854         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
1855         settings for 16-bit-constant "addo" alternative.
1856
1857 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
1858
1859         * config/mips/mips-dsp.md (add<DSPV:mode>3,
1860         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
1861
1862         PR target/43764
1863         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
1864         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
1865         Use it.
1866
1867 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
1868
1869         * diagnostic.c (FLOAT, FFS): Don't undefine.
1870         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
1871         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
1872         include ordering.
1873
1874 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
1875
1876         * combine.c (propagate_for_debug): Call make_compound_operation
1877         on the source value.
1878         (try_combine): When implementing a split chosen by find_split_point,
1879         either copy i2src or set it to null.  Assert that i2src is not null
1880         before substituting into CALL_INSN_FUNCTION_USAGE.
1881
1882 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
1883
1884         * double-int.h (double_int_ior): New function.
1885         * tree.h (build_int_cst_wide_type): Remove.
1886         * tree.c (build_int_cst_wide_type): Remove.
1887         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
1888         of build_int_cst_wide_type.
1889         * stor-layout.c (set_sizetype): (Ditto.).
1890         * dojump.c (do_jump): Use build_int_cstu instead of
1891         build_int_cst_wide_type.
1892
1893 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1894
1895         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
1896         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
1897         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
1898         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
1899         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
1900         propagate the 'data' argument to copy_tree_r.
1901         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
1902         Propagate 'data' argument to walk_tree.
1903         (copy_if_shared): New function.
1904         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
1905         (unmark_visited): New function.
1906         (unshare_body): Call copy_if_shared instead of doing it manually.
1907         (unvisit_body): Call unmark_visited instead of doing it manually.
1908
1909 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
1910
1911         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
1912         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
1913         * hooks.c: Likewise.
1914         * target-def.h (TARGET_FOLD_BUILTIN): Define to
1915         hook_tree_tree_int_treep_bool_null.
1916         * target.h (struct gcc_target): Update signature of fold_builtin
1917         field.
1918         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
1919         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
1920         instead of the call expression.
1921         (fold_builtin_call_array): Pass n and argarray directly.
1922         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
1923         consing a list.
1924         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
1925         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
1926         `i' and use it in place of `arity'.
1927         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
1928         Dereference `args' directly.
1929         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
1930
1931 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1932
1933         * doc/sourcebuild.texi (Effective-Target Keywords): Document
1934         3dnow, sse3, sse2.
1935         (Directives): Document optional dg-require-effective-target
1936         selector.
1937
1938 2010-05-19  Richard Guenther  <rguenther@suse.de>
1939
1940         PR lto/44196
1941         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
1942
1943 2010-05-19  Richard Guenther  <rguenther@suse.de>
1944
1945         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
1946         * common.opt (fwhopr=): New.
1947         * opts.c (common_handle_option): Handle OPT_fwhopr.
1948         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
1949         * collect2.c (main): Match -fwhopr*.
1950         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
1951         Execute ltrans stage in parallel when jobs is bigger than 1.
1952
1953 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1954
1955         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
1956         pentiumpro on Solaris 8/x86 with Sun as.
1957         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
1958         hidden alias bug.
1959         (gcc_cv_as_ix86_quad): Check for .quad directive.
1960         * configure: Regenerate.
1961         * config.in: Regenerate.
1962         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
1963
1964 2010-05-19  Martin Jambor  <mjambor@suse.cz>
1965
1966         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
1967         also for indirect edges.  Actual printing moved...
1968         (ipa_print_node_jump_functions_for_edge): ...here.
1969         (ipa_compute_jump_functions): Renamed to
1970         ipa_compute_jump_functions_for_edge and made static.
1971         (ipa_compute_jump_functions): New function.
1972         (make_edge_direct_to_target): Check if the number of arguments on
1973         the newly direct edge is the same as the number of parametrs of
1974         the callee.
1975         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
1976         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
1977         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
1978         analysis functions unconditionally, call the new
1979         ipa_analyze_params_uses on the node instead of every edge.
1980
1981 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
1982
1983         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
1984         to tree.
1985         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
1986         also checks for a constant int vs.  non-constant but
1987         loop-invariant steps.
1988         (find_or_create_group): Change the sort algorithm to only consider
1989         steps that are constant ints.
1990         (idx_analyze_ref): Adopt code to handle a tree instead of a
1991         HOST_WIDE_INT for step.
1992         (gather_memory_references_ref): Handle tree instead of int and be
1993         prepared to see a NULL_TREE.
1994         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
1995         prefetches if the step cannot be calculated at compile time.
1996         (issue_prefetch_ref): Issue prefetches for non-constant but
1997         loop-invariant steps.
1998
1999 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
2000
2001         Revert:
2002         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
2003
2004         * tree.h (build_call_list): Remove.
2005         * tree.c (build_call_list): Remove.
2006
2007 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
2008
2009         * tree.h (build_call_list): Remove.
2010         * tree.c (build_call_list): Remove.
2011
2012 2010-05-18  Jan Hubicka  <jh@suse.cz>
2013
2014         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
2015
2016 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
2017
2018         PR rtl-optimization/43332
2019         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
2020
2021 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
2022
2023         * tree.h (build_int_cstu): Implement as static inline.
2024         * tree.c (build_int_cstu): Remove function.
2025         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
2026         sign extended.
2027
2028 2010-05-18  Richard Guenther  <rguenther@suse.de>
2029
2030         PR lto/44143
2031         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
2032         (debug): Initialize from -save-temps.
2033         (collect_execute): Print command-line when verbose.
2034         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
2035         for ltrans invocation.  Produce -dumpbase flag again.
2036         (process_args): Remove.
2037         (main): Simplify.
2038         * collect2.c (maybe_run_lto_and_relink): Only pass object
2039         files to lto-wrapper.
2040         * gcc.c (LINK_COMMAND_SPEC): Likewise.
2041
2042 2010-05-18  Jan Hubicka  <jh@suse.cz>
2043
2044         * opts.c (decode_options): Do not disable whopr at ipa_cp.
2045         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
2046
2047 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
2048
2049         PR lto/44184
2050         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
2051         in a GIMPLE_ASM.
2052         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
2053         in a GIMPLE_ASM.
2054
2055 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
2056
2057         PR debug/41371
2058         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
2059         rtx_equal_p inline.
2060
2061 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
2062
2063         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
2064         lto-macho as lto_binary_reader.
2065
2066         * darwin.c (darwin_asm_named_section): Do not add assembler comment
2067         after .section directive; just print it before the directive instead.
2068
2069 2010-05-17  Jan Hubicka  <jh@suse.cz>
2070
2071         * cgraph.c (cgraph_create_virtual_clone): Only check
2072         versionable_function_p when not in wpa and checking is enabled.
2073         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
2074         there are no more functions to materialize.
2075
2076 2010-05-17  Jan Hubicka  <jh@suse.cz>
2077
2078         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
2079         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
2080         New functions.
2081         (output_cgraph): Call output_cgraph_opt_summary.
2082         (input_cgrpah): Call input_cgraph_opt_summary.
2083         (output_cgraph_opt_summary_p, output_node_opt_summary,
2084         input_node_opt_summary, input_cgraph_opt_section): New functions.
2085         * lto-section-in.c (lto_section_name): Add cgraphopt.
2086         * tree-inline.c (tree_function_versioning): Handle parm_num.
2087         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
2088         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
2089
2090 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
2091
2092         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
2093         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
2094         the insn to prefetch ratio heuristic to loops with known trip count.
2095
2096 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
2097
2098         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
2099         (schedule_prefetches): Do not generate a prefetch if the unroll factor
2100         is far from what is required by the prefetch.
2101
2102 2010-05-17  Jan Hubicka  <jh@suse.cz>
2103
2104         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
2105         (ipcp_estimate_growth): Likewise.
2106         (ipcp_const_param_count): Likewise.
2107         (ipcp_insert_stage): Likewise.
2108         * ipa-prop.c (visit_load_for_mod_analysis): New function.
2109         (visit_store_addr_for_mod_analysis): Set used flag.
2110         (ipa_detect_param_modifications): Set used flag for SSE params;
2111         update use of walk_stmt_load_store_addr_ops.
2112         (ipa_print_node_params): Print used flag.
2113         (ipa_write_node_info): Stream used flag.
2114         (ipa_read_node_info): Likewise.
2115         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
2116         (ipa_is_param_used): New function.
2117         (lto_ipa_fixup_call_notes): Remove unused declaration.
2118
2119 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2120
2121         PR target/44074
2122         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
2123         * configure: Regenerate.
2124         * config.in: Regenerate.
2125         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
2126         !HAVE_AS_IX86_REP_LOCK_PREFIX.
2127         Don't emit whitespace.
2128         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
2129         (*rep_movsi): Likewise.
2130         (*rep_movsi_rex64): Likewise.
2131         (*rep_movqi): Likewise.
2132         (*rep_movqi_rex64): Likewise.
2133         (*rep_stosdi_rex64): Likewise.
2134         (*rep_stossi): Likewise.
2135         (*rep_stossi_rex64): Likewise.
2136         (*rep_stosqi): Likewise.
2137         (*rep_stosqi_rex64): Likewise.
2138         (*cmpstrnqi_nz_1): Use {%;} after repz.
2139         (*cmpstrnqi_nz_rex_1): Likewise.
2140         (*cmpstrnqi_1): Likewise.
2141         (*cmpstrnqi_rex_1): Likewise.
2142         (*strlenqi_1): Use {%;} after repnz.
2143         (*strlenqi_rex_1): Likewise.
2144         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
2145         (*sync_compare_and_swap<mode>): Likewise.
2146         (sync_double_compare_and_swap<mode>): Likewise.
2147         (*sync_double_compare_and_swapdi_pic): Likewise.
2148         (sync_old_add<mode>): Likewise.
2149         (sync_add<mode>): Likewise.
2150         (sync_sub<mode>): Likewise.
2151         (sync_<code><mode>): Likewise.
2152
2153 2010-05-17  Martin Jambor  <mjambor@suse.cz>
2154
2155         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
2156         otr_token and polymorphic.
2157         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
2158         (cgraph_clone_edge): Copy the above fields.
2159         * tree.c (get_binfo_at_offset): New function.
2160         * tree.h (get_binfo_at_offset): Declare.
2161         * ipa-prop.h (enum jump_func_type): Added known_type jump function
2162         type, reordered items, updated comments.
2163         (union jump_func_value): Added base_type field, reordered fields.
2164         (enum ipa_lattice_type): Moved down in the file.
2165         (struct ipa_param_descriptor): New field polymorphic.
2166         (ipa_is_param_polymorphic): New function.
2167         * ipa-prop.c: Include gimple.h and gimple-fold.h.
2168         (ipa_print_node_jump_functions): Print known type jump functions.
2169         (compute_complex_pass_through): Renamed to...
2170         (compute_complex_assign_jump_func): this.
2171         (compute_complex_ancestor_jump_func): New function.
2172         (compute_known_type_jump_func): Likewise.
2173         (compute_scalar_jump_functions): Create known type and complex ancestor
2174         jump functions.
2175         (ipa_note_param_call): New parameter polymorphic, set the corresponding
2176         flag in the call note accordingly.
2177         (ipa_analyze_call_uses): Renamed to...
2178         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
2179         variable var only in the block where it is used.
2180         (ipa_analyze_virtual_call_uses): New function.
2181         (ipa_analyze_call_uses): Likewise.
2182         (combine_known_type_and_ancestor_jfs): Likewise.
2183         (update_jump_functions_after_inlining): Implemented handling of a
2184         number of new jump function types combination.
2185         (print_edge_addition_message): Removed.
2186         (make_edge_direct_to_target): New function.
2187         (try_make_edge_direct_simple_call): Likewise.
2188         (try_make_edge_direct_virtual_call): Likewise.
2189         (update_call_notes_after_inlining): Renamed to...
2190         (update_indirect_edges_after_inlining): this.  Moved edge creation for
2191         indirect calls to try_make_edge_direct_simple_call, also calls
2192         try_make_edge_direct_virtual_call for virtual calls.
2193         (ipa_print_node_params): Changed the header message.
2194         (ipa_write_jump_function): Stream also known type jump functions.
2195         (ipa_read_jump_function): Likewise.
2196         (ipa_write_indirect_edge_info): Stream new fields in
2197         cgraph_indirect_call_info.
2198         (ipa_read_indirect_edge_info): Likewise.
2199         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
2200         GIMPLE_FOLD_H.
2201
2202 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2203
2204         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
2205
2206 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
2207
2208         * tree.h (CALL_EXPR_ARGS): Delete.
2209         (call_expr_arglist): Delete.
2210         * tree.c (call_expr_arglist): Delete.
2211         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
2212         targetm.fold_builtin.
2213         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
2214         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
2215         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
2216         arglist parameter.  Use CALL_EXPR_ARG.
2217         (picochip_expand_builtin_3op): Likewise.
2218         (picochip_expand_builtin_2opvoid): Likewise.
2219         (picochip_expand_array_get): Likewise.
2220         (picochip_expand_array_put): Likewise.
2221         (picochip_expand_array_testport): Likewise.
2222         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
2223         rather than arglist.
2224         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
2225         CALL_EXPR_ARGS.
2226         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
2227         than TREE_VALUE and TREE_CHAIN.
2228         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
2229         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
2230         the arglist.
2231
2232 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
2233
2234         PR bootstrap/42347
2235         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
2236         to have no fallthru edge.
2237
2238         PR middle-end/44102
2239         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
2240         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
2241         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
2242         add BARRIER after previous bb if needed.
2243
2244 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
2245
2246         * tree.c (build_function_type_list_1): Remove bogus assert condition.
2247
2248 2010-05-17  Alan Modra  <amodra@gmail.com>
2249
2250         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
2251         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
2252         with copy_reg rtx param.
2253         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
2254         Correct cases where code for ABI_V4 did not initialise the reg
2255         used to access frame.  Also leave frame_reg_rtx as sp for large
2256         frames that save no regs.
2257
2258 2010-05-17  Martin Jambor  <mjambor@suse.cz>
2259
2260         PR middle-end/44133
2261         * tree-sra.c (create_access_replacement): New parameter rename, mark
2262         the replaement for renaming only when it is true.
2263         (get_access_replacement): Pass true in the rename parameter of
2264         create_access_replacement.
2265         (get_unrenamed_access_replacement): New function.
2266         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
2267         replacement declaration from it.
2268
2269 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
2270
2271         * function.c (try_fit_stack_local, add_frame_space): New static
2272         functions.
2273         (assign_stack_local_1): Use them.  Look for opportunities to use
2274         space previously wasted on alignment.
2275         * function.h (struct frame_space): New.
2276         (struct rtl_data): Add FRAME_SPACE_LIST member.
2277         * reload1.c (something_was_spilled): New static variable.
2278         (alter_reg): Set it.
2279         (reload): Test it in addition to testing if the frame size changed.
2280
2281 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
2282
2283         * config/s390/s390.c: Define sane prefetch settings and activate
2284         flag_prefetch_loop_arrays on -O3.
2285         * config/s390/s390.h: Declare that read can use write prefetch.
2286
2287 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
2288
2289         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
2290         build.
2291
2292 2010-05-16  Jan Hubicka  <jh@suse.cz>
2293
2294         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
2295         function body; do not check stdarg field of struct function.
2296
2297 2010-05-16  Jan Hubicka  <jh@suse.cz>
2298
2299         * cgraph.c (dump_cgraph_node): Dump versionable flag.
2300         * cgraph.h (cgraph_local_info): Add versionable flag.
2301         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
2302         (ipcp_versionable_function_p): Use it.
2303         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
2304         versionable flag.
2305
2306 2010-05-16  Jan Hubicka  <jh@suse.cz>
2307
2308         * cgraph.c (cgraph_clone_node): Take decl argument and insert
2309         clone into hash when it is different from orig.
2310         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
2311         * cgraph.h (cgraph_clone_node): Update prototype.
2312         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
2313         (lto_cgraph_encoder_delete): Delete body map.
2314         (lto_cgraph_encoder_size): Move to header.
2315         (lto_cgraph_encoder_encode_body_p,
2316         lto_set_cgraph_encoder_encode_body): New.
2317         (lto_output_node): Do not take written_decls argument; output clone_of
2318         pointer.
2319         (add_node_to): Add include_body_argument; call
2320         lto_set_cgraph_encoder_encode_body on master of the clone.
2321         (add_references): Update use of add_node_to.
2322         (compute_ltrans_boundary): Likewise.
2323         (output_cgraph): Do not create written_decls bitmap.
2324         (input_node): Take nodes argument; stream in clone_of correctly.
2325         (input_cgraph_1): Update use of input_node.
2326         * lto-streamer-out.c (lto_output): Use encoder info to decide
2327         what bodies to output.
2328         * ipa-inline.c (cgraph_clone_inlined_nodes,
2329         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
2330         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
2331         (lto_cgraph_encoder_size): Define here.
2332         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
2333         Declare.
2334
2335 2010-05-16  Richard Guenther  <rguenther@suse.de>
2336
2337         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
2338         -fipa-type-escape.
2339         * ipa-type-escape.c (gate_type_escape_vars): Run when
2340         -fipa-struct-reorg runs.
2341         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
2342         * common.opt (fipa-type-escape): Remove.
2343
2344 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
2345
2346         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
2347         (decode_options): Likewise.
2348         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
2349
2350 2010-05-16  Jan Hubicka  <jh@suse.cz>
2351
2352         * ipa.c (function_and_variable_visibility): Also bring local all
2353         aliases.
2354
2355 2010-05-16  Richard Guenther  <rguenther@suse.de>
2356
2357         * alias.c (nonoverlapping_memrefs_p): Remove use of
2358         IPA type-escape information.
2359
2360 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
2361
2362         * c-common.c (c_common_reswords): Add _Static_assert for C.
2363         * c-parser.c (c_token_starts_declaration,
2364         c_parser_next_token_starts_declaration,
2365         c_parser_static_assert_declaration_no_semi,
2366         c_parser_static_assert_declaration): New.
2367         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
2368         Handle static assertions if static_assert_ok.
2369         (c_parser_external_declaration, c_parser_declaration_or_fndef,
2370         c_parser_compound_statement_nostart, c_parser_label,
2371         c_parser_for_statement, c_parser_objc_methodprotolist,
2372         c_parser_omp_for_loop): All callers of
2373         c_parser_declaration_or_fndef changed.
2374         (c_parser_struct_declaration): Handle static assertions.
2375         (c_parser_compound_statement_nostart): Use
2376         c_parser_next_token_starts_declaration and
2377         c_token_starts_declaration to detect start of declarations.
2378         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
2379         Likewise.
2380
2381 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
2382
2383         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
2384         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
2385         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2386         TARGET_FUNCTION_VALUE_REGNO_P): Define.
2387         (mmix_function_outgoing_value): Rename to...
2388         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
2389         (mmix_function_value_regno_p): Make static.
2390         (mmix_libcall_value): New function.
2391         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
2392         mmix_function_value_regno_p): Remove declaration.
2393
2394 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
2395
2396         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
2397         BUILT_IN_ALLOCA if stack checking is enabled.
2398
2399 2010-05-16  Richard Guenther  <rguenther@suse.de>
2400
2401         * var-tracking.c (vars_copy_1): Inline ...
2402         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
2403         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
2404         (variable_merge_over_cur): Adjust.  Merge asserts.
2405         (variable_merge_over_src): Likewise.
2406         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
2407         (variable_post_merge_new_vals): Merge asserts.
2408         (variable_post_merge_perm_vals): Likewise.
2409         (find_mem_expr_in_1pdv): Likewise.
2410         (dataflow_set_different_value): Remove.
2411         (onepart_variable_different_p): Merge asserts.
2412         (variable_different_p): Likewise.
2413         (dataflow_set_different_1): Inline ...
2414         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
2415         (emit_notes_for_differences_1): Merge asserts.
2416
2417 2010-05-16  Richard Guenther  <rguenther@suse.de>
2418
2419         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
2420         * optabs.c (libfunc_decl_hash): Likewise.
2421         * varasm.c (emutls_decl): Likewise.
2422
2423 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
2424
2425         * c-decl.c: Don't include gimple.h.
2426         (merge_decls): Do not copy gimple_body.
2427
2428 2010-05-15  Jason Merrill  <jason@redhat.com>
2429
2430         * c.opt: Add -fnothrow-opt.
2431
2432 2010-05-15  Jan Hubicka  <jh@suse.cz>
2433
2434         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
2435         analyzed.
2436         * passes.c (ipa_write_summaries): Write all analyzed nodes.
2437
2438 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
2439
2440         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
2441         * Makefile.in: Add it.
2442         Fix all other Makefile dependencies for changes below.
2443         * tree.h: Include it instead of defining VEC primitives here.
2444         * gimple.h: Likewise.
2445         * rtl.h: Likewise.
2446         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
2447         * except.h: Include vecir.h, break dependence on tree.h.
2448
2449         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
2450         Move from here...
2451         * tree-iterator.c: ...to here.
2452         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
2453
2454         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
2455         tm_p.h.
2456         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
2457         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
2458         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
2459         tree-mudflap.h, and target.h.
2460         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
2461         predict.h, tree-inline.h, gimple.h, and langhooks.h.
2462         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
2463         Add FIXME for why gimple.h is still included (should be unnecessary
2464         since GCC 4.5 gimplification unit-at-a-time).
2465         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
2466         * c-pragma.c: Add FIXME for why function.h needs to be included just
2467         for cfun, at front-end level.
2468         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
2469         Do not include ggc.h, but include vecprim.h for VEC(char).
2470         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
2471         Explain why target.h is included.
2472         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
2473         Explain why gimple.h is included.
2474         * c-ppoutput.c: Do not include tm.h.
2475         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
2476         * c-parses.c: Explain why rtl.h is included, and that this (and only
2477         this) is also why tm.h must be included.
2478         Do not include except.h.
2479         * c-lang.c: Do not include ggc.h.
2480
2481 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
2482
2483         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
2484
2485 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
2486
2487         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
2488         unions by default if those structs and unions have no tags.  Do
2489         not condition anonymous struct and unions handling on flag_iso.
2490         Allow anonymous structs and unions for C1X.
2491         (finish_struct): Do not diagnose lack of named fields when
2492         anonymous structs and unions present for C1X.  Accept flexible
2493         array members in structure with anonymous structs or unions but no
2494         directly named fields.
2495         * doc/extend.texi (Unnamed Fields): Update.
2496
2497 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
2498
2499         * gimple.h (compare_field_offset): Rename into...
2500         (gimple_compare_field_offset): ...this.
2501         * gimple.c (compare_field_offset): Rename into...
2502         (gimple_compare_field_offset): ...this.  Compare the full access if
2503         the offset is self-referential.
2504         (gimple_types_compatible_p): Adjust for above renaming.
2505         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
2506         DECL_NONADDRESSABLE_P flag of fields before merging them.
2507
2508 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
2509
2510         * tree.h (ctor_to_list): Delete.
2511         * tree.c (ctor_to_list): Delete.
2512
2513 2010-05-15  Jan Hubicka  <jh@suse.cz>
2514
2515         * ipa-reference.c: Include toplev.h
2516         (is_proper_for_analysis): Only add to all_module_statics
2517         if it is allocated.
2518         (write_node_summary_p, stream_out_bitmap,
2519         ipa_reference_write_optimization_summary,
2520         ipa_reference_read_optimization_summary): New.
2521         (struct ipa_opt_pass_d pass_ipa_reference): Add
2522         optimization summary streaming.
2523         * lto-cgraph.c (referenced_from_this_partition_p,
2524         reachable_from_this_partition_p): New functions.
2525         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2526         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
2527         * opts.c (decode_options): Enable ipa_reference.
2528         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
2529         * lto-streamer.h (referenced_from_this_partition_p,
2530         reachable_from_this_partition_p): Declare.
2531
2532 2010-05-15  Richard Guenther  <rguenther@suse.de>
2533
2534         PR tree-optimization/44038
2535         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
2536         taking the address of a V_C_E of a constant.
2537
2538 2010-05-14  Jan Hubicka  <jh@suse.cz>
2539
2540         * tree.h (memory_identifier_string): Remove.
2541         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
2542         (ipa_reference_global_vars_info_d): Remove statics_not_read and
2543         statics_not_written.
2544         (ipa_reference_optimization_summary_d): New structure.
2545         (ipa_reference_optimization_summary_t): New type and vector.
2546         (ipa_reference_vars_info_d): Embedd structures instead of using
2547         pointers.
2548         (reference_vars_to_consider): Remove out of GGC space.
2549         (module_statics_escape): Remove.
2550         (global_info_obstack): Rename to ...
2551         (optimization_summary_obstack): ... this one.
2552         (initialization_status_t): Remove.
2553         (memory_identifier_string): Remove.
2554         (get_reference_vars_info): Fix indenting.
2555         (set_reference_vars_info): Likewise.
2556         (get_reference_optimization_summary): New.
2557         (set_reference_optimization_summary): New.
2558         (get_global_reference_vars_info): Remove.
2559         (ipa_reference_get_read_global): Remove.
2560         (ipa_reference_get_written_global): Remove.
2561         (ipa_reference_get_not_read_global): Update.
2562         (ipa_reference_get_not_written_global): Update.
2563         (is_proper_for_analysis): Outlaw addressable.
2564         (propagate_bits): Update for new datastructures.
2565         (analyze_variable): Remove.
2566         (init_function_info): Update for new datastructures.
2567         (clean_function_local_data): Remove.
2568         (clean_function): Remove.
2569         (copy_global_bitmap): Use optimizations_summary_obstack.
2570         (duplicate_node_data): Duplicate optimization summary only.
2571         (remove_node_data): Remove optimization summary only.
2572         (generate_summary): Do not analyze variables; do not compute
2573         module_statics_escape; do not prune solutions by it.
2574         (read_write_all_from_decl): Fix typos in comments.
2575         (propagate): Doscover readonly and nonaddressable first;
2576         update for new datastructures; share global bitmaps.
2577         * ipa-reference.h (ipa_reference_get_read_global,
2578         ipa_reference_get_written_global): Remove.
2579         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
2580         * Makefile.in: Remove ipa-refereference from GT files.
2581
2582 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2583
2584         PR debug/44112
2585         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
2586         for all SYMBOL_REF_DECLs.
2587
2588 2010-05-14  Jan Hubicka  <jh@suse.cz>
2589
2590         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
2591         (varpool_all_refs_explicit_p): New inline function.
2592         * ipa-reference.c: Update comment.
2593         (module_statics_written): Remove.
2594         (get_static_decl): Remove.
2595         (ipa_init): Do not initialize module_statics_written.
2596         (analyze_function): Likewise.
2597         (generate_summary): Likewise; do not compute module_statics_readonly
2598         and do not update variable flags.
2599         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
2600         * ipa.c: Inlucde flags.h
2601         (cgraph_local_node_p): New.
2602         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
2603         promote functions to local.
2604         (ipa_discover_readonly_nonaddressable_vars): New function.
2605         (function_and_variable_visibility): Use cgraph_local_node_p.
2606         * varpool.c (varpool_finalize_decl): Set force_output for
2607         DECL_PRESERVE_P vars.
2608
2609 2010-05-14  Jan Hubicka  <jh@suse.cz>
2610
2611         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
2612
2613 2010-05-14  Richard Guenther  <rguenther@suse.de>
2614
2615         PR tree-optimization/44119
2616         * tree-ssa-pre.c (eliminate): Properly mark replacement of
2617         a PHI node necessary.
2618
2619 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
2620
2621         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
2622
2623 2010-05-14  Jason Merrill  <jason@redhat.com>
2624
2625         PR c++/44127
2626         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
2627         (gimple_call_set_nothrow): New.
2628         * gimple.c (gimple_build_call_from_tree): Call it.
2629         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
2630
2631         PR c++/44127
2632         * gimplify.c (gimplify_seq_add_stmt): No longer static.
2633         * gimple.h: Declare it.
2634         * gimple.c (gimple_build_eh_filter): No ops.
2635
2636 2010-05-14  Jan Hubicka  <jh@suse.cz>
2637
2638         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
2639         nodes already in queue.
2640         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
2641         re-enqueueing node.
2642
2643 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2644
2645         PR debug/44136
2646         * cfgexpand.c (expand_debug_expr): If non-memory op0
2647         has BLKmode, return NULL.
2648
2649 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
2650
2651         * config.gcc: Add support for --with-cpu option for bdver1.
2652         * config/i386/i386.h (TARGET_BDVER1): New macro.
2653         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
2654         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2655         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
2656         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2657         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
2658         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
2659         (processor_type): Add PROCESSOR_BDVER1.
2660         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
2661         processor_type in config/i386/i386.h.
2662         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
2663         movaps <reg, reg> instead of movapd <reg, reg> when replacing
2664         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
2665         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
2666         to emit packed xor instead of packed double/packed integer
2667         xor for SSE and AVX when moving a zero value.
2668         * config/i386/sse.md: Add check for
2669         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
2670         movapd/movdqa for SSE and AVX.
2671         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
2672         single logical operations i.e and, or and xor instead of packed double
2673         logical operations for SSE and AVX.
2674         * config/i386/i386-c.c (ix86_target_macros_internal):
2675         Add PROCESSOR_BDVER1.
2676         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
2677         (has_fma4, has_xop): New.
2678         * config/i386/i386.c (bdver1_cost): New variable.
2679         (m_BDVER1): New macro.
2680         (m_AMD_MULTIPLE): Add m_BDVER1.
2681         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
2682         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
2683         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
2684         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
2685         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
2686         x86_tune_sse_partial_reg_dependency,
2687         x86_tune_sse_unaligned_load_optimal,
2688         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
2689         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
2690         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
2691         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
2692         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
2693         Enable/disable for bdver1.
2694         (processor_target_table): Add bdver1_cost.
2695         (cpu_names): Add bdver1.
2696         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
2697          processor_alias_table.
2698         (ix86_expand_vector_move_misalign): Change.
2699         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
2700         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
2701         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
2702         of movupd/movdqu for SSE and AVX.
2703         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
2704         (ix86_tune_adjust_cost): Add code for bdver1.
2705         (standard_sse_constant_opcode): Add check for
2706         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
2707         of packed double xor for SSE and AVX.
2708
2709 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
2710
2711         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
2712         result to unsigned.
2713
2714 2010-05-14  Tristan Gingold  <gingold@adacore.com>
2715
2716         * toplev.c (default_debug_hooks): Remove this variable.
2717         (process_options): Remove assignments to default_debug_hooks.
2718
2719 2010-05-14  Martin Jambor  <mjambor@suse.cz>
2720
2721         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
2722         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
2723         * langhooks.h (struct lang_hooks_for_decls): Removed field
2724         fold_obj_type_ref.
2725         * tree.c (free_lang_data): Remove assignment to
2726         lang_hooks.fold_obj_type_ref.
2727         * tree.def (OBJ_TYPE_REF): Update comment.
2728
2729 2010-05-14  Richard Guenther  <rguenther@suse.de>
2730
2731         PR tree-optimization/44124
2732         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
2733
2734 2010-05-14  Alan Modra  <amodra@gmail.com>
2735
2736         PR target/44075
2737         * config/rs6000/rs6000.c (struct machine_function): Reorder
2738         fields for better packing.  Add lr_save_state.
2739         (rs6000_ra_ever_killed): Return lr_save_state if set.
2740         (rs6000_emit_eh_reg_restore): Set lr_save_state.
2741
2742 2010-05-13  Jan Hubicka  <jh@suse.cz>
2743
2744         * varpool.c (decide_is_variable_needed): Drop code checking
2745         TREE_SYMBOL_REFERENCED.
2746
2747 2010-05-13  Jan Hubicka  <jh@suse.cz>
2748
2749         * final.c (output_addr_const): Do not call mark_decl_referenced.
2750         * cgraphunit.c (process_function_and_variable_attributes): Use
2751         mark_needed_node dirrectly.
2752         (assemble_thunk): Do not call mark_decl_referenced.
2753
2754 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
2755
2756         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
2757
2758 2010-05-13  Jeff Law  <law@redhat.com>
2759
2760         * ira-conflicts.c (print_allocno_conflicts): New function broken out
2761         from...
2762         (print_conflicts): Call print_allocno_conflicts.
2763
2764 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2765
2766         PR debug/44104
2767         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
2768         if it is NULL.
2769
2770 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
2771
2772         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
2773         t-mingw-w64 or t-mingw-w32 for multilib configuration.
2774         * config/i386/t-mingw-w32: New.
2775         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
2776
2777 2010-05-13  Martin Jambor  <mjambor@suse.cz>
2778
2779         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
2780         gimple-fold.c).
2781         * gimple-fold.c (get_base_binfo_for_type): New function.
2782         (gimple_get_relevant_ref_binfo): Likewise.
2783         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2784         (gimple_fold_obj_type_ref): Likewise.
2785         (fold_gimple_call): Simplify condition for folding virtual calls
2786         and call gimple_fold_obj_type_ref.
2787         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
2788         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2789
2790 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
2791
2792         * config/rs6000/rs6000-protos.h
2793         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
2794         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
2795         (rs6000_debug_mode_dependent_address)
2796         (rs6000_mode_dependent_address_ptr): Likewise.
2797
2798 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2799
2800         PR debug/43983
2801         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
2802         by SRA.
2803         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
2804         * tree-sra.c (create_access_replacement): Call unshare_expr before
2805         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
2806         * dwarf2out.c: Include tree-flow.h.
2807         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
2808         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
2809         Handle DW_OP_bit_piece.
2810         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
2811         construct_piece_list, adjust_piece_list): New functions.
2812         (add_var_loc_to_decl): Handle SRA optimized variables.
2813         Adjust for var_loc_note to loc field renaming.
2814         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
2815         in VAR_LOCATION note.
2816         (new_loc_descr_op_bit_piece): New function.
2817         (dw_sra_loc_expr): New function.
2818         (dw_loc_list): Use it.  Don't handle the last range after the
2819         loop, handle it inside of the loop.  Adjust for var_loc_note
2820         to loc field renaming.
2821         (add_location_or_const_value_attribute): Only special case
2822         single entry loc lists if loc is NOTE_P.  Adjust for
2823         var_loc_note to loc field renaming.
2824         (dwarf2out_var_location): Don't set newloc->var_loc_note
2825         and newloc->next here.
2826
2827 2010-05-12  Jan Hubicka  <jh@suse.cz>
2828
2829         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
2830         flag.
2831         * cgraph.h (cgraph_only_called_directly_p,
2832         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
2833         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
2834         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
2835         (assemble
2836         * ipa.c (cgraph_remove_unreachable_nodes): Use
2837         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
2838         flags.
2839         * tree-inline.c (copy_bb): Check address_taken flag.
2840         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
2841         externally_visible flag.
2842
2843 2010-05-12  Jason Merrill  <jason@redhat.com>
2844
2845         PR bootstrap/44048
2846         PR target/44099
2847         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
2848         * sdbout.c (plain_type_1): Likewise.
2849         * dwarf2out.c (is_base_type): Likewise.
2850         (gen_type_die_with_usage): Likewise.  Generate
2851         DW_TAG_unspecified_type for any LANG_TYPE.
2852
2853 2010-05-12  Jan Hubicka  <jh@suse.cz>
2854
2855         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
2856         indrect edges too.
2857         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
2858         (cgraph_clone_edge): Update.
2859         (cgraph_node_remove_callees): Remove indirect calls too.
2860         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
2861         (cgraph_create_indirect_edge): Update prototype.
2862         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
2863         is_proper_for_analysis.
2864         (add_new_function, visited_nodes, function_insertion_hook_holder,
2865         get_local_reference_vars_info, mark_address_taken, mark_address,
2866         mark_load, mark_store, check_asm_memory_clobber, check_call,
2867         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
2868         (ipa_init): Do not initialize visited_nodes;
2869         function_insertion_hook_holder.
2870         (analyze_variable): Rewrite.
2871         (analyze_function): Rewrite.
2872         (copy_local_bitmap): Remove.
2873         (duplicate_node_dat): Do not duplicate local info.
2874         (generate_summary): Simplify to only walk cgraph.
2875         (write_node_summary_p, ipa_reference_write_summary,
2876         ipa_reference_read_summary): Remove.
2877         (propagate): Do not remove function insertion;
2878         generate summary.
2879         (pass_ipa_reference): NULLify summary handling fields.
2880         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
2881         (input_edge): Input ecf_flags.
2882         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
2883         (update_indirect_edges_after_inlining): Ignore edges with unknown
2884         param.
2885
2886 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
2887
2888         * implicit-zee.c: New file.
2889         * tree-pass.h (pass_implicit_zee): Declare.
2890         * passes.c (init_optimization_passes): Add zee pass.
2891         * common.opt (fzee): New flag.
2892         * timevar.def (TV_ZEE): Define.
2893         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
2894         and beyond.
2895         * Makefile.in (implicit-zee.o): Add new build file.
2896
2897 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2898             Nathan Froyd  <froydnj@codesourcery.com>
2899
2900         * c-common.c (sync_resolve_params): Remove write-only variable.
2901
2902 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
2903
2904         * target.h (struct gcc_target): Add mode_dependent_address_p field.
2905         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2906         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
2907         * targhooks.c (default_mode_dependent_address_p): New function.
2908         * targhooks.h (default_mode_dependent_address_p): Declare function.
2909         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2910         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
2911         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
2912         target hook. Change return type to bool.
2913         * recog.h (mode_dependent_address_p): Change return type to bool.
2914
2915 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2916             Nathan Froyd  <froydnj@codesourcery.com>
2917
2918         * tree-mudflap.c (build_function_type_0, build_function_type_1,
2919         build_function_type_2, build_function_type_3): Remove.
2920         (mudflap_init): Use build_function_type_list.
2921
2922 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2923             Nathan Froyd  <froydnj@codesourcery.com>
2924
2925         * coverage.c (build_fn_info_value): Call build_constructor instead of
2926         build_constructor_from_list.
2927         (build_ctr_info_value): Likewise.
2928         (build_gcov_info): Likewise.
2929
2930 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
2931
2932         * tree.c (build_constructor): Compute TREE_CONSTANT for the
2933         resultant constructor.
2934         (build_constructor_single): Don't set TREE_CONSTANT.
2935         (build_constructor_from_list): Don't compute TREE_CONSTANT.
2936
2937 2010-05-12  Jan Hubicka  <jh@suse.cz>
2938
2939         * cgraph.h (struct varpool_node): Add aux.
2940         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
2941         * varpool.c (varpool_remove_node): Do not remove initializer.
2942         (varpool_reset_queue): Export.
2943         (varpool_finalize_decl): Volatile vars are forced to be output.
2944         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
2945         replaced decl.
2946         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
2947         process_references, varpool_can_remove_if_no_refs): New functions.
2948         (cgraph_remove_unreachable_nodes): Handle variables too.
2949
2950 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2951
2952         PR target/44088
2953         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
2954
2955 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
2956
2957         PR middle-end/44085
2958         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
2959         change value of ORT_TASK.
2960         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
2961         (omp_notice_threadprivate_variable): New function.
2962         (omp_notice_variable): Call it for threadprivate variables.
2963         If enclosing ctx is a task, print enclosing task rather than
2964         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
2965         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
2966         if task has untied clause.
2967
2968         PR debug/42278
2969         * dwarf2out.c (base_type_die): Don't add name attribute here.
2970         (modified_type_die): Instead of sizetype use
2971         its underlying original type.  If a DW_TAG_base_type doesn't
2972         have name added, add __unknown__.
2973         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
2974         always call force_type_die instead.
2975
2976 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
2977
2978         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
2979         for __stack_chk_guard.
2980
2981 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2982
2983         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
2984         don't call start_source_file debug hook here...
2985         (finish_options): ... but here, after outputting predefined and
2986         command line defines and undefs.
2987
2988         PR middle-end/44071
2989         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
2990         no fallthru edge.
2991         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
2992         optimizing away empty bb with no successors, move over its
2993         footer chain to fallthru predecessor.
2994         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
2995         (rtl_split_edge): For asm goto call patch_jump_insn even if
2996         splitting fallthru edge.
2997
2998         PR c++/44059
2999         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
3000         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
3001         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
3002         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
3003         on DW.ref.* decls.
3004
3005         PR c++/44062
3006         * c-parser.c (c_parser_expression): Mark LHS of a comma
3007         expression as read if it is a decl, handled component or
3008         COMPOUND_EXPR with that on the RHS.
3009         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
3010         if it is a decl or handled component.
3011
3012 2010-05-11  Jan Hubicka  <jh@suse.cz>
3013
3014         * lto-symtab.c (lto_symtab_free): New function.
3015         * lto-streamer.h (lto_symtab_free): Declare.
3016
3017 2010-05-11  Jan Hubicka  <jh@suse.cz>
3018
3019         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
3020         that if function is needed it is reachable.
3021         (lto_output_node): See if it the function is reachable or referenced.
3022         (output_cgraph): Update call of lto_output_node.
3023         * lto-streamer.h (reachable_from_other_partition_p): Declare.
3024
3025 2010-05-11  Jan Hubicka  <jh@suse.cz>
3026
3027         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
3028         Mark as used.
3029
3030 2010-05-11  Jan Hubicka  <jh@suse.cz>
3031
3032         PR tree-optimize/44063
3033         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
3034         queue.
3035         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
3036         limits.
3037         (estimate_function_body_sizes): Compute sizes even when disregarding.
3038
3039 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
3040
3041         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
3042
3043 2010-05-11  Jan Hubicka  <jh@suse.cz>
3044
3045         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
3046         into every boundary.
3047
3048 2010-05-11  Jan Hubicka  <jh@suse.cz>
3049
3050         * matrix-reorg.c (matrix_reorg): Rebuild edges.
3051
3052 2010-05-11  Jan Hubicka  <jh@suse.cz>
3053
3054         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
3055         lto_streamer_cache_delete): Put nodes into heap.
3056         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
3057         heap.
3058
3059 2010-05-11  Jan Hubicka  <jh@suse.cz>
3060
3061         * cgraphbuild.c (cgraph_rebuild_references): New.
3062         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
3063         out extern inlines.
3064         * cgraph.h (cgraph_rebuild_references): Declare.
3065         * tree-inline.c (tree_function_versioning): Use it.
3066         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
3067
3068 2010-05-11  Jan Hubicka  <jh@suse.cz>
3069
3070         * cgraph.c: Include ipa-utils.h
3071         (cgraph_create_virtual_clone): Update references.
3072         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
3073
3074 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
3075
3076         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
3077         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
3078         cache size.
3079
3080 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
3081
3082         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
3083
3084 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
3085
3086         * gcc.c (execute): For -### don't quote arguments that
3087         contain just alphanumerics and _/-. characters.
3088         * doc/invoke.texi: Document that change for -###.
3089
3090         PR debug/44023
3091         * df-problems.c (struct dead_debug): Add to_rescan field.
3092         (dead_debug_init): Clear to_rescan field.
3093         (dead_debug_finish): Rescan all debug insns in to_rescan
3094         bitmap and free the bitmap.
3095         (dead_debug_insert_before): Instead of rescanning debug insns
3096         immediately queue their rescanning until dead_debug_finish.
3097         (df_note_bb_compute): After dead_debug_add do continue instead
3098         of break.
3099
3100 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
3101
3102         PR debug/44028
3103         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
3104         clear also INSN_REG_USE_LIST.
3105
3106 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3107
3108         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
3109
3110 2010-05-10  Jan Hubicka  <jh@suse.cz>
3111
3112         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
3113         commited change.
3114
3115 2010-05-10  Jan Hubicka  <jh@suse.cz>
3116
3117         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
3118         Allocate encoders.
3119         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
3120         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
3121         (lto_streamer_cache_create): Init alloc pool.
3122         (lto_streamer_cache_delete): Free alloc pool.
3123         * lto-streamer.h: Include alloc pool.
3124         (lto_streamer_cache_d): Use alloc pool.
3125         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
3126
3127 2010-05-10  Jan Hubicka  <jh@suse.cz>
3128
3129         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
3130         * cgraphbuild.c: Include except.h
3131         (record_type_list, record_eh_tables): New function.
3132         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
3133
3134 2010-05-10  Jan Hubicka  <jh@suse.cz>
3135
3136         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
3137         __frame_dummy_init_array_entry, force_to_data): Attribute as used
3138         rather than unused.
3139
3140 2010-05-10  Michael Matz  <matz@suse.de>
3141
3142         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
3143         (can_reassociate_p): Use FLOAT_TYPE_P.
3144         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
3145         (vect_force_simple_reduction): ... this.
3146         * tree-parloops.c (gather_scalar_reductions): Use
3147         vect_force_simple_reduction.
3148         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
3149         vect_is_simple_reduction, add modify argument, if true rewrite
3150         "a-b" into "a+(-b)".
3151         (vect_is_simple_reduction, vect_force_simple_reduction): New
3152         functions.
3153         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
3154
3155 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
3156             Vladimir Makarov  <vmakarov@redhat.com>
3157
3158         PR rtl-optimization/44012
3159         * ira-build.c (remove_unnecessary_allocnos): Nullify
3160         regno_allocno_map of the removed allocno.
3161
3162 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3163
3164         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
3165         to /dev/null.
3166         * configure: Regenerate.
3167
3168 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3169
3170         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
3171         unused.
3172         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
3173         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
3174         support in Sun ld.
3175         * configure: Regenerate.
3176
3177 2010-05-10  Richard Guenther  <rguenther@suse.de>
3178
3179         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
3180         marked if the entry identifier is marked.
3181
3182 2010-05-10  Richard Guenther  <rguenther@suse.de>
3183
3184         * c-common.c (struct c_common_attributes): Add fnspec attribute.
3185         (handle_fnspec_attribute): New function.
3186         * gimple.h (gimple_call_return_flags): Declare.
3187         (gimple_call_arg_flags): Likewise.
3188         * gimple.c (gimple_call_arg_flags): New function.
3189         (gimple_call_return_flags): Likewise.
3190         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
3191         New argument flags.
3192         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
3193         return value flags.
3194         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
3195         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
3196         main work to ...
3197         (make_heapvar_for): ... this new function.
3198         (handle_rhs_call): Handle fnspec attribute argument specifiers.
3199         (handle_lhs_call): Likewise.
3200         (find_func_aliases): Adjust.
3201
3202 2010-05-10  Richard Guenther  <rguenther@suse.de>
3203
3204         PR tree-optimization/44050
3205         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
3206
3207 2010-05-10  Wei Guozhi  <carrot@google.com>
3208
3209         PR target/42879
3210         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
3211
3212 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
3213
3214         PR c/10676
3215         * c-typeck.c (lookup_field): Take a type directly.  Update
3216         recursive calls.
3217         (build_component_ref): Update call to lookup_field.
3218         (set_init_label): Use lookup_field to find initialized field.
3219         Handle returned list of fields like a sequence of designators.
3220
3221 2010-05-09  Richard Guenther  <rguenther@suse.de>
3222
3223         PR middle-end/44024
3224         * fold-const.c (tree_single_nonzero_warnv_p): Properly
3225         handle &FUNCTION_DECL.
3226
3227 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
3228
3229         PR c/4784
3230         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
3231         structures and unions recursively.
3232         (detect_field_duplicates): Move duplicate detection with a hash to
3233         detect_field_duplicates_hash.  Always use a hash if anonymous
3234         structures or unions are present.
3235         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
3236         give errors.
3237
3238 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
3239
3240         PR target/44046
3241         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
3242         detect Atom, Core 2 and Core i7.
3243
3244 2010-05-09  Richard Guenther  <rguenther@suse.de>
3245
3246         * gcc.c (store_arg): Handle temporary file deletion for
3247         joined arguments.
3248
3249 2010-05-09  Richard Guenther  <rguenther@suse.de>
3250
3251         PR middle-end/44043
3252         * ipa-inline.c (estimate_function_body_sizes): Return after
3253         disregarding inline limits.
3254
3255 2010-05-09  Richard Guenther  <rguenther@suse.de>
3256
3257         * gcc.c (store_arg): Revert last change.
3258
3259 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
3260
3261         PR middle-end/28685
3262         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
3263         (optimize_ops_list): Call it.
3264
3265 2010-05-08  Richard Guenther  <rguenther@suse.de>
3266
3267         PR tree-optimization/44030
3268         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
3269         NECESSARY flag if we propagate from a inserted expression.
3270
3271 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
3272
3273         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
3274         domain types as equal if they are both PLACEHOLDER_EXPRs.
3275
3276 2010-05-08  Richard Guenther  <rguenther@suse.de>
3277
3278         * lto-wrapper.c (run_gcc): Remove linker output from
3279         command line for LTRANS invocation.
3280
3281 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
3282
3283         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
3284         lto-macho as lto_binary_reader.
3285         * target.h (struct gcc_target): New hooks lto_start and lto_end.
3286         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
3287         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
3288         in lto_start and lto_end calls.
3289         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
3290         magic numbers.
3291         (scan_prog_file): Update is_elf_or_coff call.
3292         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
3293
3294         * collect2.c (main): Fix enum comparison.
3295
3296         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
3297         Add prototypes.
3298         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
3299         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
3300         and TARGET_ASM_LTO_END.
3301         * darwin.c: Include obstack.h and lto-streamer.h.
3302         (lto_section_names_offset, lto_section_names_obstack,
3303         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
3304         global variables.
3305         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
3306         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
3307         to a temporary file.
3308         (darwin_asm_lto_end): New function.  Restore asm_out_file.
3309         (darwin_asm_named_section): For LTO sections, replace the name with
3310         the offset of the section name in a string table, and build this
3311         table.
3312         (darwin_file_start): Initialize global vars for LTO support.
3313         (darwin_file_end): If output to asm_out_file was redirected, append it
3314         to the proper asm_out_file here.  Add the section names section.
3315
3316 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
3317
3318         * c-pragma.c (pending_weak_d, pending_weak): New.
3319         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
3320         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
3321         handle_pragma_weak): Update the uses of pending_weaks.
3322
3323 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3324
3325         PR documentation/44016
3326         * doc/standards.texi (Standards): Link to unversioned
3327         cxx0x_status.html page.
3328
3329 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
3330
3331         PR target/43708
3332         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
3333         in addition to TREE_USED, to avoid "set but unused" warnings.
3334
3335 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
3336
3337         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
3338         (is_loop_prefetching_profitable): Do not insert prefetches
3339         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
3340         times the prefetch ahead distance.
3341
3342 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
3343
3344         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
3345         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
3346         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
3347         the unroll_factor.
3348
3349 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
3350
3351         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
3352         a diagnostic info when the insn-to-mem ratio is too small.
3353
3354 2010-05-07  Richard Guenther <rguenther@suse.de>
3355
3356         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
3357         the linker plugin.
3358         (store_arg): Queue temp_filename for deletion instead of
3359         the whole argument.
3360
3361 2010-05-07  Richard Guenther  <rguenther@suse.de>
3362
3363         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
3364         (run_gcc): Handle LTRANS phase invocation.
3365         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
3366
3367 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
3368
3369         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
3370         this is also meaningful on PARM_DECLs and RESULT_DECLs.
3371
3372 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3373
3374         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
3375
3376 2010-05-07  Richard Guenther  <rguenther@suse.de>
3377
3378         PR tree-optimization/44020
3379         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
3380         code when PRE is not yet initialized.
3381
3382 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3383
3384         * config/mips/dbxmdebug.h: Remove.
3385         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
3386
3387 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
3388
3389         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
3390         with null pointer and also warn about ordered comparison of zero with
3391         pointer if -Wextra.
3392
3393 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3394
3395         * graphite-blocking.c
3396         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
3397         * graphite-clast-to-gimple.c
3398         (clast_to_gcc_expression): Same.
3399         (precision_for_value): Same.
3400         (precision_for_interval): Same.
3401         (gcc_type_for_interval): Same.
3402         (graphite_create_new_guard): Same.
3403         (compute_bounds_for_level): Same.
3404         (graphite_create_new_loop_guard): Same.
3405         * graphite-interchange.c
3406         (build_linearized_memory_access): Same.
3407         (pdr_stride_in_loop): Same.
3408         (memory_strides_in_loop_1): Same.
3409         (memory_strides_in_loop): Same.
3410         (extend_scattering): Same.
3411         (psct_scattering_dim_for_loop_depth): Same.
3412         (pbb_number_of_iterations): Same.
3413         * graphite-poly.h
3414         (debug_iteration_domains): Same.
3415         * graphite-ppl.c
3416         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
3417         (ppl_set_inhomogeneous_gmp): Same.
3418         (ppl_strip_loop): Same.
3419         (ppl_lexico_compare_linear_expressions): Same.
3420         (ppl_read_polyhedron_matrix): Same.
3421         (ppl_max_for_le_pointset): Same.
3422         * graphite-ppl.h
3423         (ppl_read_polyhedron_matrix): Same.
3424         (tree_int_to_gmp): Same.
3425         (gmp_cst_to_tree): Same.
3426         (ppl_set_inhomogeneous): Same.
3427         (ppl_set_inhomogeneous_tree): Same.
3428         (ppl_set_coef): Same.
3429         (ppl_set_coef_tree): Same.
3430         * graphite-sese-to-poly.c
3431         (build_pbb_scattering_polyhedrons): Same.
3432         (build_scop_scattering): Same.
3433         (scan_tree_for_params_right_scev): Same.
3434         (scan_tree_for_params): Same.
3435         (find_params_in_bb): Same.
3436         (find_scop_parameters): Same.
3437         (add_upper_bounds_from_estimated_nit): Same.
3438         (build_loop_iteration_domains): Same.
3439         (add_condition_to_domain): Same.
3440         (pdr_add_memory_accesses): Same.
3441
3442 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3443
3444         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
3445         CLooG's value_* macros to their respective mpz_* counterparts.
3446         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
3447         (graphite_create_new_loop_guard): Same.
3448         * graphite-interchange.c (build_linearized_memory_access): Same.
3449         (pdr_stride_in_loop): Same.
3450         (memory_strides_in_loop_1): Same.
3451         (1st_interchange_profitable_p): Same.
3452         * graphite-poly.c (extend_scattering): Same.
3453         (psct_scattering_dim_for_loop_depth): Same.
3454         (pbb_number_of_iterations): Same.
3455         (pbb_number_of_iterations_at_time): Same.
3456         * graphite-poly.h (new_1st_loop): Same.
3457         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
3458         (oppose_constraint): Same.
3459         (insert_constraint_into_matrix): Same.
3460         (ppl_set_inhomogeneous_gmp): Same.
3461         (ppl_set_coef_gmp): Same.
3462         (ppl_strip_loop): Same.
3463         (ppl_lexico_compare_linear_expressions): Same.
3464         (ppl_max_for_le_pointset): Same.
3465         (ppl_min_for_le_pointset): Same.
3466         (ppl_build_realtion): Same.
3467         * graphite-ppl.h (gmp_cst_to_tree): Same.
3468         (ppl_set_inhomogeneous): Same.
3469         (ppl_set_inhomogeneous_tree): Same.
3470         (ppl_set_coef): Same.
3471         (ppl_set_coef_tree): Same.
3472         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
3473         (build_scop_scattering): Same.
3474         (add_value_to_dim): Same.
3475         (scan_tree_for_params_right_scev): Same.
3476         (scan_tree_for_params_int): Same.
3477         (scan_tree_for_params): Same.
3478         (find_params_in_bb): Same.
3479         (find_scop_parameters): Same.
3480         (add_upper_bounds_from_estimated_nit): Same.
3481         (build_loop_iteration_domains): Same.
3482         (create_linear_expr_from_tree): Same.
3483         (add_condition_to_domain): Same.
3484         (pdr_add_memory_accesses): Same.
3485
3486 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
3487             Jason Merrill  <jason@redhat.com>
3488
3489         * c-common.c (c_common_reswords): Add nullptr.
3490         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
3491         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
3492         (gen_type_die_with_usage): Likewise.
3493         * dbxout.c (dbxout_type): Likewise.
3494         * sdbout.c (plain_type_1): Likewise.
3495
3496 2010-05-06  Jason Merrill  <jason@redhat.com>
3497
3498         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
3499         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
3500         ret appropriately.
3501         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
3502
3503         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
3504         stripping WITH_SIZE_EXPR.
3505         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
3506         change.
3507
3508 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3509
3510         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
3511         list of obsolete configurations.
3512         Disabled check for obsolete configurations.
3513         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
3514         Removed support for previous versions.
3515         * config/mips/iris.h: Removed.
3516         * config/mips/iris5.h: Removed.
3517         * config/mips/iris6.h: Merged old iris.h contents.
3518         (TARGET_IRIX): Removed.
3519         (DRIVER_SELF_SPECS): Removed mabi=32.
3520         (IDENT_ASM_OP): Removed undef.
3521         (STARTFILE_SPEC): Removed mabi=32.
3522         (ENDFILE_SPEC): Likewise.
3523         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
3524         (MACHINE_TYPE): Update for IRIX 6.5.
3525         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
3526         TARGET_IRIX by TARGET_IRIX6.
3527         (mips_file_start): Likewise.
3528         (mips_output_external): Remove IRIX 5/6 O32 support.
3529         (mips_output_function_prologue): Likewise.
3530         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
3531         TARGET_IRIX6.
3532         (TARGET_CPU_CPP_BUILTINS): Likewise.
3533         (TARGET_IRIX): Removed.
3534         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
3535         (MULTILIB_DIRNAMES): Removed 32.
3536         (MULTILIB_OSDIRNAMES): Removed ../lib.
3537         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
3538         (Specific, mips-sgi-irix5): Document removal.
3539         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
3540         Remove references to older IRIX 6 releases and the O32 ABI.
3541
3542 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
3543
3544         PR bootstrap/43994
3545         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
3546         instead of DF_REF_REAL_REG.
3547
3548 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
3549
3550         PR target/43888
3551         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
3552         handling to still return true for x64 targets.
3553
3554 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3555
3556         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
3557
3558 2010-05-06  Jan Hubicka  <jh@suse.cz>
3559
3560         PR tree-optimization/43791
3561         * ipa-inline.c (update_caller_keys): Remove bogus
3562         disregard_inline_limits check.
3563
3564 2010-05-06  Michael Matz  <matz@suse.de>
3565
3566         PR tree-optimization/43984
3567         * tree-ssa-pre.c (inserted_phi_names): Remove.
3568         (inserted_exprs): Change to bitmap.
3569         (create_expression_by_pieces): Set bits, don't append to vector.
3570         (insert_into_preds_of_block): Don't handle inserted_phi_names.
3571         (eliminate): Don't look at inserted_phi_names, remove deleted
3572         insns from inserted_exprs.
3573         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
3574         (init_pre, fini_pre): Allocate and free bitmaps.
3575         (execute_pre): Insert insns on edges before elimination.
3576
3577 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3578
3579         * tree.c (initializer_zerop): Handle STRING_CST.
3580
3581 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3582
3583         PR 40989
3584         * doc/invoke.texi (Wimplicit): Document as C only.
3585         * opts.c (common_handle_option): Add argument kind.
3586         (handle_option): Rename as read_cmdline_option. Factor out code to...
3587         (handle_option): ... here. New.
3588         (handle_options): Rename as read_cmdline_options.
3589         (decode_options): Update call.
3590         (set_option): Use option index instead of option pointer. Classify
3591         diagnostics correctly.
3592         (enable_warning_as_error): Call handle_option.
3593         * opts.h (set_option): Update declaration.
3594         (handle_option): Declare.
3595         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
3596         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
3597         * c-opts.c (set_Wimplicit): Delete.
3598         (c_family_lang_mask): New static constant.
3599         (c_common_handle_option): Add argument kind. Use handle_option
3600         instead of set_Wimplicit.
3601         (c_common_post_options): warn_implicit and warn_implicit_int
3602         are disabled by default.
3603         * c-common.c (warn_implicit): Do not define here.
3604         * c-common.h (warn_implicit): Do not declare here.
3605         (c_common_handle_option): Update declaration.
3606         * lto-opts.c (lto_reissue_options): Update call to set_option.
3607
3608 2010-05-06  Richard Guenther  <rguenther@suse.de>
3609
3610         PR tree-optimization/43571
3611         * domwalk.c (walk_dominator_tree): Walk the dominator
3612         sons in more optimal order.
3613
3614 2010-05-06  Richard Guenther  <rguenther@suse.de>
3615
3616         PR tree-optimization/43934
3617         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
3618         (stmt_cost): Likewise.
3619         (extract_true_false_args_from_phi): New helper.
3620         (determine_max_movement): For PHI nodes verify we can hoist them
3621         and compute their cost.
3622         (determine_invariantness_stmt): Handle PHI nodes.
3623         (move_computations_stmt): Likewise.  Hoist PHI nodes in
3624         if-converted form using COND_EXPRs.
3625         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
3626         (tree_ssa_lim): Likewise.
3627         * tree-flow.h (tree_ssa_lim): Adjust prototype.
3628         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
3629
3630 2010-05-06  Richard Guenther  <rguenther@suse.de>
3631
3632         PR tree-optimization/43987
3633         * tree-ssa-structalias.c (could_have_pointers): For possibly
3634         address-taken variables force pointers to be recorded.
3635         (create_variable_info_for_1): Likewise.
3636         (push_fields_onto_fieldstack): Pass in wheter all fields
3637         must have pointers.
3638         (find_func_aliases): Query types instead of vars whether
3639         they contain pointers where appropriate.
3640
3641 2010-05-06  Jan Hubicka  <jh@suse.cz>
3642
3643         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
3644         (record_reference, mark_address, mark_load, mark_store): Record
3645         references.
3646         (record_references_in_initializer): Update call of record_references.
3647         (rebuild_cgraph_edges): Remove all references before rebuiding.
3648         * cgraph.c (cgraph_create_node): Clear ref list.
3649         (cgraph_remove_node): Remove references.
3650         (dump_cgraph_node): Dump references.
3651         (cgraph_clone_node): Clone references.
3652         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
3653         (struct cgraph_node, varpool_node): Add ref_lst.
3654         * ipa-ref.c: New file.
3655         * ipa-ref.h: New file.
3656         * ipa-ref-inline.h: New file.
3657         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
3658         (referenced_from_other_partition_p): New function.
3659         (lto_output_varpool_node): Take set arugment; call
3660         referenced_from_other_partition.
3661         (lto_output_ref): New.
3662         (add_references): New.
3663         (output_refs): New.
3664         (output_cgraph): Compute boundary based on references; output refs.
3665         (output_varpool): Accept cgraph_node_set argument.
3666         (input_ref): New.
3667         (input_refs): New.
3668         (input_cgraph): Call input_refs.
3669         * lto-section-in.c (lto_section_name): Add refs.
3670         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
3671         (ipa-ref.o): New file.
3672         * varpool.c (varpool_node): Clear ipa ref list.
3673         (varpool_remove_node): Remove references.
3674         (dump_varpool_node): Dump references.
3675         (varpool_assemble_decl): Only compile finalized ones.
3676         (varpool_extra_name_alias): Initialize ref list.
3677         * lto-streamer.c (lto-get_section_name): Add .refs section.
3678         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
3679         (referenced_from_other_partition_p): Declared.
3680
3681 2010-05-06  Ira Rosen  <irar@il.ibm.com>
3682
3683         PR tree-optimization/43901
3684         * tree-vect-stmts.c (vectorizable_call): Assert that vector
3685         type is not NULL if it's transformation phase, and return
3686         FALSE if it's analysis.
3687         (vectorizable_conversion, vectorizable_operation,
3688         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
3689
3690 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
3691
3692         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3693         Delete.
3694         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3695         New define.
3696         * config/mips/mips-protos.h
3697         (mips_small_register_classes_for_mode_p): Delete prototype.
3698
3699 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
3700
3701         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
3702         * config/arm/arm.c (multiple_operation_profitable_p,
3703         compute_offset_order): New static functions.
3704         (load_multiple_sequence, store_multiple_sequence): Use them.
3705         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
3706         memory offsets, not register numbers.
3707         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
3708
3709 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
3710
3711         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
3712         (get_pending_sizes, put_pending_size, put_pending_sizes):
3713         Update the uses of pending_sizes.
3714         * c-decl.c (store_parm_decls): Likewise.
3715         * c-tree.h (struct c_arg_info): Likewise.
3716         * tree.h: Update the prototype for get_pending_sizes and
3717         put_pending_sizes.
3718
3719 2010-05-05  Jason Merrill  <jason@redhat.com>
3720
3721         PR debug/43370
3722         * c-common.c (handle_aligned_attribute): Respect
3723         ATTR_FLAG_TYPE_IN_PLACE.
3724
3725         PR testsuite/43758
3726         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
3727         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3728         (TARGET_INITIALIZER): Use it.
3729         * c-common.c (attribute_takes_identifier_p): Call it.
3730         * c-common.h: Update prototype.
3731         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
3732         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3733
3734 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
3735
3736         PR debug/43950
3737         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
3738         DW_ID_down_case for Fortran compilation units.
3739
3740 2010-05-05  Jan Hubicka  <jh@suse.cz>
3741
3742         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
3743         handle aliases.
3744
3745 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
3746
3747         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
3748         a variable-sized RESULT_DECL.
3749
3750 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
3751
3752         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
3753
3754 2010-05-05  Jason Merrill  <jason@redhat.com>
3755
3756         PR c++/43787
3757         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
3758         returns GS_OK.
3759         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
3760
3761 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
3762             Jakub Jelinek  <jakub@redhat.com>
3763
3764         PR debug/43478
3765         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
3766         (dead_debug_init, dead_debug_finish): New functions.
3767         (dead_debug_add, dead_debug_insert_before): Likewise.
3768         (df_note_bb_compute): Initialize a dead_debug object, add dead
3769         debug uses to it, insert debug bind insns before death insns,
3770         reset debug insns that refer to pending uses at the end.
3771         * rtl.h (make_debug_expr_from_rtl): New prototype.
3772         * varasm.c (make_debug_expr_from_rtl): New function.
3773
3774 2010-05-05  Jan Hubicka  <jh@suse.cz>
3775
3776         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
3777         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
3778         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
3779         lto_varpool_encoder_deref, lto_varpool_encoder_size,
3780         lto_varpool_encoder_encode_initializer_p,
3781         lto_set_varpool_encoder_encode_initializer): New functions.
3782         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
3783         call output_varpool.
3784         (input_varpool_node): Do not always set analyzed.
3785         (input_cgraph_1): Return vector of cgraph nodes.
3786         (input_varpool_1): Return vector of varpools.
3787         (input_cgraph): Free the vectors.
3788         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
3789         output only initializers needed.
3790         (lto_output): Only call output_cgraph.
3791         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
3792         * lto-section-out.c (lto_new_out_decl_state): Initialize
3793         state->varpool_node_encoder.
3794         * lto-streamer.h (lto_varpool_encoder_d): New.
3795         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
3796         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
3797         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
3798         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
3799         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
3800         Declare.
3801         (output_varpool, input_varpool): Remove declarations.
3802
3803 2010-05-05  Jan Hubicka  <jh@suse.cz>
3804
3805         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
3806         with body can prevail.
3807
3808 2010-05-05  Jan Hubicka  <jh@suse.cz>
3809
3810         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
3811         size.
3812
3813 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3814
3815         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
3816
3817         * gengtype.h (erro_at_line): Constify pos argument.
3818
3819         * gengtype.c: Include hashtab.h.
3820         (enum gc_used): Document GC_MAYBE_POINTED_TO.
3821         (error_at_line): Constify pos argument.
3822         (do_typedef): Initialize p->opt field.
3823         (get_file_gtfilename): Fix comment typo.
3824         (struct walk_type_data): Constify line field.
3825         (get_output_file_for_structure): New function.
3826         (write_local_func_for_structure): Constify orig_s argument.
3827         Use get_output_file_for_structure.
3828         (write_func_for_structure): Use get_output_file_for_structure.
3829         (INDENT): New define.
3830         (dump_pair, dump_type, dump_type_list, dump_typekind)
3831         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
3832         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
3833         functions.
3834         (seen_types): New variable.
3835         (main): New variable do_dump.  Process "-d" command line option.
3836         Call dump_everything if dump requested.
3837
3838 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
3839
3840         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
3841         in a temporary instead of invoking the macro multiple times.
3842         (track_expr_p): Likewise.
3843
3844 2010-05-04  Neil Vachharajani <nvachhar@google.com>
3845
3846         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
3847         per new semantics.
3848         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
3849         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
3850         conditions for printing notes.
3851         * common.opt (-Wcoverage-mismatch): Allow negative, default to
3852         true, update documentation.
3853         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
3854
3855 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
3856
3857         PR c/43981
3858         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
3859         on dimen.
3860
3861 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3862
3863         PR target/43799
3864         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
3865         (*sse_prologue_save_insn1): Likewise.
3866         (SSE prologue save splitter): Likewise.
3867
3868 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
3869
3870         * tree.c (free_lang_data_in_one_sizepos): New inline function.
3871         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
3872         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
3873         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
3874         all decls.  Call it on DECL_FIELD_OFFSET of fields.
3875         (find_decls_types_r): Follow DECL_VALUE_EXPR.
3876         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
3877
3878 2010-05-04  Martin Jambor  <mjambor@suse.cz>
3879
3880         * tree-sra.c (build_access_from_expr_1): The first parameter type
3881         changed to simple tree.
3882         (build_access_from_expr): Likewise, gsi parameter was eliminated.
3883         (scan_assign_result): Renamed to assignment_mod_result, enum elements
3884         renamed as well.
3885         (build_accesses_from_assign): Removed all parameters except for a
3886         simple gimple statement.  Now returns a simple bool.
3887         (scan_function): All non-analysis parts moved to separate functions
3888         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
3889         parameters and updated both callers.
3890         (sra_modify_expr): Removed parameter data.
3891         (sra_modify_function_body): New function.
3892         (perform_intra_sra): Call sra_modify_function_body to modify the
3893         function body.
3894         (replace_removed_params_ssa_names): Parameter data changed into
3895         adjustments vector.
3896         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
3897         changed the parameter dont_convert to convert with the opposite
3898         meaning.
3899         (sra_ipa_modify_assign): Parameter data changed into adjustments
3900         vector, return value changed to bool.
3901         (ipa_sra_modify_function_body): New function.
3902         (sra_ipa_reset_debug_stmts): Updated a comment.
3903         (modify_function): Use ipa_sra_modify_function_body to modify function
3904         body.
3905
3906 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3907
3908         PR middle-end/43671
3909         * alias.c (true_dependence): Handle the same VALUE in x and mem.
3910         (canon_true_dependence): Likewise.
3911         (write_dependence_p): Likewise.
3912
3913 2010-05-04  Jan Hubicka  <jh@suse.cz>
3914
3915         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
3916         * cgraphbuild.c: Include ipa-utils.h
3917         (record_reference_ctx): New struct.
3918         (record_reference): Simplify to work on initializers; not statements.
3919         (mark_address, mark_load, mark_store): New.
3920         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3921         walk PHI nodes too.
3922         (record_references_in_initializer): Update use of record_reference.
3923         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3924         walk PHI nodes too.
3925
3926 2010-05-04  Jan Hubicka  <jh@suse.cz>
3927
3928         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
3929         node will be removed anyway.
3930         (lto_varpool_replace_node): Allow also unanalyzed nodes;
3931         relink aliases of node into prevailing node.
3932         * varpool.c (varpool_remove_node): Remove aliases properly;
3933         when removing node, remove all its aliases too; remove DECL_INITIAL
3934         of removed node; ggc_free the varpool node.
3935
3936 2010-05-04  Richard Guenther  <rguenther@suse.de>
3937
3938         PR tree-optimization/43879
3939         * tree-ssa-structalias.c (alias_get_name): Use
3940         DECL_ASSEMBLER_NAME if available.
3941         (create_function_info_for): Return the varinfo node.
3942         (ipa_pta_execute): Associate same-body aliases and extra names
3943         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
3944
3945 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
3946
3947         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
3948
3949 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
3950
3951         PR bootstrap/43964
3952         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
3953         only if HONOR_REG_ALLOC_ORDER is not defined.
3954
3955 2010-05-04  Richard Guenther  <rguenther@suse.de>
3956
3957         PR tree-optimization/43949
3958         * tree-vrp.c (extract_range_from_binary_expr): Only handle
3959         TRUNC_MOD_EXPR.
3960
3961 2010-04-26  Jason Merrill  <jason@redhat.com>
3962
3963         * c.opt (-fstrict-enums): New.
3964         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
3965
3966 2010-05-03  David Ung <davidu@mips.com>
3967             James E. Wilson  <wilson@codesourcery.com>
3968
3969         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
3970         emit the trap instruction before the divide for TUNE_74K.
3971
3972 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
3973
3974         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
3975         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
3976         based on the above, for new target hook.
3977
3978         * hooks.c (hook_bool_mode_true): New generic hook.
3979         * hooks.h (hook_bool_mode_true): Add prototype.
3980
3981         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
3982         target hook.
3983         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
3984         target hook, set to hook_bool_mode_false.
3985         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
3986         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
3987         with targetm.small_register_classes_for_mode_p.
3988         (find_reusable_reload): Likewise.
3989         (combine_reloads): Likewise.
3990         * reload1.c (reload_as_needed): Likewise.
3991         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
3992         * ifcvt.c (noce_process_if_block, check_cond_move_block,
3993         dead_or_predicable): Likewise.
3994         * regmove.c (optimize_reg_copy_1): Likewise.
3995         * calls.c (prepare_call_address): Likewise.
3996         (precompute_register_parameters): Likewise.
3997
3998         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
3999         hook definition.
4000         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
4001         implementation of the hook that considers all register classes
4002         small except for SH64.
4003         (sh_override_options): Use the new hook.
4004         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
4005         Add prototype.
4006
4007         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
4008         hook definition.
4009         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
4010         implementation of the hook that considers all register classes
4011         small for THUMB1.
4012         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
4013         Add prototype.
4014
4015         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
4016         hook definition.
4017         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
4018         implementation of the hook that considers all register classes
4019         small for MIPS16.
4020         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
4021         Add prototype.
4022
4023         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
4024         hook definition.
4025         * config/m32c/m32c.h: Likewise.
4026         * config/pdp11/pdp11.h: Likewise.
4027         * config/avr/avr.h: Likewise.
4028         * config/xtensa/xtensa.h: Likewise.
4029         * config/m68hc11/m68hc11.h: Likewise.
4030         * config/mn10300/mn10300.h: Likewise.
4031         * config/mcore/mcore.h: Likewise.
4032         * config/h8300/h8300.h: Likewise.
4033         * config/bfin/bfin.h: Likewise.
4034
4035         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
4036         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
4037
4038 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
4039
4040         * double-int.h (tree_to_double_int): Remove macro.
4041         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
4042         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
4043         (tree_to_double_int): New function.
4044         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
4045         Move ...
4046         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
4047
4048 2010-05-03  Richard Guenther  <rguenther@suse.de>
4049
4050         PR tree-optimization/43971
4051         * tree-ssa-structalias.c (get_constraint_for_1): Fix
4052         constraints in the !flag_delete_null_pointer_checks case.
4053
4054 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
4055
4056         PR debug/43972
4057         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
4058         result mode matches original rtl mode.
4059
4060 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
4061
4062         PR target/43888
4063         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
4064
4065 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
4066
4067         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
4068         when processing flag options.
4069
4070 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
4071
4072         * gcov-iov.c (main): Change format string placeholder
4073         from %#08x to 0x%08x.
4074         * genchecksum.c (dosum): Change format string placeholder
4075         from %#02x to 0x%02x.
4076
4077 2010-05-02  Richard Guenther  <rguenther@suse.de>
4078
4079         PR tree-optimization/43879
4080         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
4081
4082 2010-05-02  Bruno Haible  <bruno@clisp.org>
4083
4084         * doc/extend.texi (Function Attributes): Fix a typo.
4085
4086 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
4087
4088         Revert:
4089         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
4090         placeholder from 0x%x to %#x.
4091         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
4092         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
4093         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
4094         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
4095         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
4096         * config/i386/i386.c (ix86_target_string): Ditto.
4097         * config/i386/i386.c (output_pic_addr_const): Ditto.
4098         (print_operand): Ditto.
4099
4100 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
4101
4102         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
4103         placeholder from 0x%x to %#x.
4104         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
4105         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
4106         (ASM_OUTPUT_DEBUG_DATA): Ditto.
4107         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
4108         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
4109         * optc-gen.awk: Ditto.
4110         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
4111         (HOST_WIDE_INT_PRINT_HEX): Ditto.
4112         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
4113         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
4114
4115 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
4116
4117         * target.h (struct calls): Add function_value_regno_p field.
4118         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
4119         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
4120         * targhooks.c (default_function_value_regno_p): New function.
4121         * targhooks.h (default_function_value_regno_p): Declare function.
4122         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
4123         * builtins.c. (apply_result_size): (Ditto.).
4124         * combine.c. (likely_spilled_retval_p): (Ditto.).
4125         * mode-switching.c. Include 'target.h'.
4126         (create_pre_exit): Use function_value_regno_p hook.
4127         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
4128         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
4129         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
4130
4131         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
4132         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
4133         (ix86_function_value_regno_p): Declare as static, change argument
4134         type to const unsigned int.
4135         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
4136
4137 2010-05-01  Richard Guenther  <rguenther@suse.de>
4138
4139         PR tree-optimization/43949
4140         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
4141         types.
4142         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
4143
4144 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
4145
4146         * rtl.h (CONST_DOUBLE_P): Define.
4147         (rtx_to_double_int): Declare.
4148         * emit-rtl.c (rtx_to_double_int): New function.
4149         * dwarf2out.c (insert_double): New function.
4150         (loc_descriptor, add_const_value_attribute): Clean up, use
4151         rtx_to_double_int and insert_double functions.
4152
4153 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
4154
4155         * doc/extend.texi (Inline): Add missing return keyword to examples.
4156         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
4157         "command-line".
4158
4159 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
4160
4161         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
4162         the variable part of the offset as well.  Use highest_pow2_factor for
4163         all alignment checks.
4164
4165 2010-04-30  Richard Guenther  <rguenther@suse.de>
4166
4167         PR tree-optimization/43879
4168         * tree-ssa-structalias.c (type_could_have_pointers): Functions
4169         can have pointers.
4170
4171 2010-04-30  Jan Hubicka  <jh@suse.cz>
4172
4173         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
4174         varpool.
4175         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
4176
4177 2010-04-30  Jan Hubicka  <jh@suse.cz>
4178
4179         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
4180         New.
4181         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
4182         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
4183         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
4184         cgraph_node_set_needs_ltrans_p): Remove.
4185
4186 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
4187
4188         * sdbout.c: Include vec.h, do not include varray.h.
4189         (deferred_global_decls, sdbout_global_decl,
4190         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
4191         * toplev.c: Do not include varray.h.
4192         (dump_memory_report): Do not dump VARRAY statistics.
4193         * gengtype.c (open_base_file): Ignore varray.h.
4194         * Makefile.in: Update for abovementioned changes.
4195         Remove all traces of varray.c and varray.h.
4196         * varray.c: Remove file.
4197         * varray.h: Remove file.
4198
4199 2010-04-30  Jan Hubicka  <jh@suse.cz>
4200
4201         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
4202         references.
4203
4204 2010-04-30  Jan Hubicka  <jh@suse.cz>
4205
4206         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
4207         needed.
4208
4209 2010-04-30  Richard Guenther  <rguenther@suse.de>
4210
4211         * tree-ssa-structalias.c (get_constraint_for_1): Generate
4212         constraints for CONSTRUCTOR.
4213
4214 2010-04-30  Richard Guenther  <rguenther@suse.de>
4215
4216         PR lto/43946
4217         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
4218         first after all lowering passes.
4219
4220 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
4221
4222         * toplev.c: Include varray.h for statistics dumping.
4223         * tree.h: Do not declare varray_head_tag.
4224         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
4225         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
4226         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
4227         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
4228         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
4229         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
4230         c-common.c, c-common.h, reg-stack.c, basic-block.h,
4231         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
4232         include varray.h.
4233         * Makefile.in: Update for abovementioned changes.
4234
4235 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
4236
4237         PR debug/43942
4238         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
4239
4240 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
4241
4242         * config/picochip/picochip.c (picochip_legitimize_address): Define.
4243         Use this function to do machine-specific conversion.
4244         (picochip_legitimize_reload_address): Likewise.
4245         (picochip_legitimate_address_p): Check valid base register only if
4246         strict.
4247         (picochip_check_conditional_copy): Check for modw only if opnd is
4248         register.
4249         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
4250         to call the function in c.
4251         * config/picochip/picochip-protos.h
4252         (picochip_legitimize_reload_address): Define.
4253         * config/picochip/picochip.md (supported_compare1): Define.
4254
4255 2010-04-30  Jan Hubicka  <jh@suse.cz>
4256
4257         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
4258         (cgraph_global_info): Remove inlined.
4259         (LTO_cgraph_tag_names): Remove.
4260         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
4261         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
4262         simplify cgraph tags and document.
4263         (lto_output_node): Use only LTO_cgraph_unavail_node and
4264         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
4265         for_functions_valid, global info, process and output flags.
4266         (input_overwrite_node): Initialize estimated stack size and
4267         estimated growth.  Do not read flags we no longer store.
4268         (input_node): Likewise do not read info no longer stored.
4269         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
4270         flag.
4271
4272 2010-04-30  Richard Guenther  <rguenther@suse.de>
4273
4274         PR tree-optimization/43879
4275         * tree-ssa-structalias.c (get_constraint_for_1): Properly
4276         handle non-zero initializers.
4277
4278 2010-04-30  Richard Guenther  <rguenther@suse.de>
4279
4280         * builtins.c (fold_builtin_1): Delete free (0).
4281
4282 2010-04-29  Jan Hubicka  <jh@suse.cz>
4283
4284         * gengtype.c (open_base_files): Add lto-streamer.h
4285         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
4286         (pass_ipa_cp): GGC collect.
4287         * toplev. (compile_file): Do not output symbols.
4288         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
4289         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
4290         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
4291         * lto-section-in.c: Include ggc.h
4292         (lto_new_in_decl_state): Alloc in GGC.
4293         (lto_delete_in_decl_state): Likewise.
4294         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
4295         Collect.
4296
4297 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
4298
4299         PR target/42895
4300         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
4301         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
4302         (HONOR_REG_ALLOC_ORDER): Describe new macro.
4303         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
4304         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
4305         account only if HONOR_REG_ALLOC_ORDER is not defined.
4306         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
4307         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
4308
4309 2010-04-29  Jon Grant  <04@jguk.org>
4310
4311         * collect2.c (vflag): Change type from int to bool.
4312         (debug): Likewise.
4313         (helpflag): New global bool.
4314         (main): Set vflag and debug with boolean, not integer truth values.
4315         Accept new "--help" option and output usage text if found.
4316         * collect2.h (vflag): Update prototype.
4317         (debug): Likewise.
4318
4319 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
4320
4321         PR bootstrap/43936
4322         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
4323
4324 2010-04-29  Richard Guenther  <rguenther@suse.de>
4325
4326         PR bootstrap/43935
4327         * plugin.h (invoke_plugin_callbacks): Annotate arguments
4328         with ATTRIBUTE_UNUSED.
4329
4330 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
4331
4332         PR target/43921
4333         * config/i386/i386.c (get_some_local_dynamic_name): Replace
4334         INSN_P with NONDEBUG_INSN_P.
4335         (distance_non_agu_define): Likewise.
4336         (distance_agu_use): Likewise.
4337
4338 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
4339
4340         From Dominique d'Humieres <dominiq@lps.ens.fr>
4341         PR bootstrap/43858
4342         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
4343         test_set.
4344
4345 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
4346
4347         * plugin.h (invoke_plugin_callbacks): New inline function.
4348         * plugin.c (flag_plugin_added): New global flag.
4349         (add_new_plugin): Initialize above flag.
4350         (invoke_plugin_callbacks): Rename to ...
4351         (invoke_plugin_callbacks_full): ... this.
4352
4353 2010-04-28  Jan Hubicka  <jh@suse.cz>
4354
4355         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
4356         (lto_varpool_replace_node): New.
4357         (lto_symtab_resolve_symbols): Resolve varpool nodes.
4358         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
4359         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
4360         * cgraph.h (varpool_node_ptr): New type.
4361         (varpool_node_ptr): New vector.
4362         (varpool_node_set_def): New structure.
4363         (varpool_node_set): New type.
4364         (varpool_node_set): New vector.
4365         (varpool_node_set_element_def): New structure.
4366         (varpool_node_set_element, const_varpool_node_set_element): New types.
4367         (varpool_node_set_iterator): New type.
4368         (varpool_node): Add prev pointers, add used_from_other_partition,
4369         in_other_partition.
4370         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
4371         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
4372         varpool_get_node, varpool_remove_node): Declare.
4373         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
4374         varpool_node_set_size): New inlines.
4375         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
4376         * tree-pass.h (varpool_node_set_def): Forward declare.
4377         (ipa_opt_pass_d): Summary writting takes vnode sets too.
4378         (ipa_write_optimization_summaries): Update prototype.
4379         * ipa-cp.c (ipcp_write_summary): Update.
4380         * ipa-reference.c (ipa_reference_write_summary): Update.
4381         * lto-cgraph.c (lto_output_varpool_node): New static function.
4382         (output_varpool): New function.
4383         (input_varpool_node): New static function.
4384         (input_varpool_1): New function.
4385         (input_cgraph): Input varpool.
4386         * ipa-pure-const.c (pure_const_write_summary): Update.
4387         * lto-streamer-out.c (lto_output): Update, output varpool too.
4388         (write_global_stream): Kill WPA hack.
4389         (produce_asm_for_decls): Update.
4390         (output_alias_pair_p): Handle variables.
4391         (output_unreferenced_globals): Output only needed partition of varpool.
4392         * ipa-inline.c (inline_write_summary): Update.
4393         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
4394         cgraph.
4395         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
4396         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
4397         varpool_node_set_new, varpool_node_set_add,
4398         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
4399         debug_varpool_node_set): New functions.
4400         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
4401         (execute_one_pass): Process new decls too.
4402         (ipa_write_summaries_2): Pass around vsets.
4403         (ipa_write_summaries_1): Likewise.
4404         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
4405         to add.
4406         (ipa_write_optimization_summaries_1): Pass around vsets.
4407         (ipa_write_optimization_summaries): Likewise.
4408         * varpool.c (varpool_get_node): New.
4409         (varpool_node): Update doubly linked lists.
4410         (varpool_remove_node): New.
4411         (dump_varpool_node): More dumping.
4412         (varpool_enqueue_needed_node): Update doubly linked lists.
4413         (decide_is_variable_needed): Kill ltrans hack.
4414         (varpool_finalize_decl): Kill lto hack.
4415         (varpool_assemble_decl): Skip decls in other partitions.
4416         (varpool_assemble_pending_decls): Update doubly linkes lists.
4417         (varpool_empty_needed_queue): Likewise.
4418         (varpool_extra_name_alias): Likewise.
4419         * lto-streamer.c (lto_get_section_name): Add vars section.
4420         * lto-streamer.h (lto_section_type): Update.
4421         (output_varpool, input_varpool): Declare.
4422
4423 2010-04-28  Mike Stump  <mikestump@comcast.net>
4424
4425         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
4426
4427 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4428
4429         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
4430         record or union type with RECORD_OR_UNION_TYPE_P predicate.
4431         (lto_input_ts_type_tree_pointers): Likewise.
4432         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
4433         (lto_output_ts_type_tree_pointers): Likewise.
4434
4435 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4436
4437         Uniquization of constants at the Tree level
4438         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
4439         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
4440         bit to the end.
4441         (tree_output_constant_def): Declare.
4442         * gimplify.c (gimplify_init_constructor): When using block copy, first
4443         uniquize the constant constructor on the RHS.
4444         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
4445         DECL_IN_CONSTANT_POOL flag.
4446         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
4447         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
4448         constant pool.
4449         (assemble_variable): Deal with symbols belonging to the tree constant
4450         pool.
4451         (get_constant_section): Add ALIGN parameter and simplify.
4452         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
4453         (assemble_constant_contents): Use the expression of the VAR_DECL.
4454         (output_constant_def_contents): Use the alignment of the VAR_DECL.
4455         (tree_output_constant_def): New global function.
4456         (mark_constant): Use the expression of the VAR_DECL.
4457         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
4458         its expression.
4459         (output_object_block): Likewise and assemble the expression.
4460
4461 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4462
4463         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
4464         hash_tree, eq_tree): New tree hash table.
4465         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
4466         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
4467         lto_orig_address_remove): Reimplement.
4468
4469 2010-04-28  Xinliang David Li  <davidxl@google.com>
4470
4471         PR c/42643
4472         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
4473         (compute_uninit_opnds_pos): New function.
4474         (is_non_loop_exit_postdominating): New function.
4475         (compute_control_dep_chain): New function.
4476         (find_pdom): New function.
4477         (convert_control_dep_chain_into_preds): New function.
4478         (find_predicates): New function.
4479         (find_control_equiv_block): New function.
4480         (collect_phi_def_edges): New function.
4481         (find_def_preds): New function.
4482         (find_dom): New function.
4483         (dump_predicates): New function.
4484         (get_cmp_code): New function.
4485         (is_value_included_in): New function.
4486         (find_matching_predicate_in_rest_chains): New function.
4487         (use_pred_not_overlap_with_undef_path_pred): New function.
4488         (is_use_properly_guarded): New function.
4489         (normalize_cond_1): New function.
4490         (is_and_or_or): New function.
4491         (normalize_cond): New function.
4492         (is_gcond_subset_of): New function.
4493         (is_subset_of_any): New function.
4494         (is_or_set_subset_of): New function.
4495         (is_and_set_subset_of): New function.
4496         (is_norm_cond_subset_of): New function.
4497         (is_pred_expr_subset_of): New function.
4498         (is_pred_chain_subset_of): New function.
4499         (is_included_in): New function.
4500         (is_superset_of): New function.
4501         (find_uninit_use): New function.
4502         (warn_uninitialized_phi): New function.
4503         (compute_possibly_undefined_names): New function.
4504         (ssa_undefined_value_p): New function.
4505         (execute_late_warn_uninitialized): New function.
4506         * tree-ssa.c (ssa_undefined_value_p): Removed.
4507         (warn_uninit): Changed to extern.
4508         (warn_uninitialized_phi): Removed.
4509         (warn_uninitialized_vars): Changed to extern.
4510         (execute_late_warn_uninitialized): Removed
4511         * tree-flow.h: Add new prototypes.
4512         * timevar.def: Add new time variable.
4513         * Makefile.in: Add new build file.
4514
4515 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
4516
4517         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
4518         type if available.
4519
4520 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4521
4522         PR target/22224
4523         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
4524
4525 2010-04-28  Martin Jambor  <mjambor@suse.cz>
4526
4527         * cgraph.h (struct cgraph_node): New field indirect_calls.
4528         (struct cgraph_indirect_call_info): New type.
4529         (struct cgraph_edge): Removed field indirect_call. New fields
4530         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
4531         (cgraph_create_indirect_edge): Declare.
4532         (cgraph_make_edge_direct): Likewise.
4533         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
4534         * ipa-prop.h (struct ipa_param_call_note): Removed.
4535         (struct ipa_node_params): Removed field param_calls.
4536         (ipa_create_all_structures_for_iinln): Declare.
4537         * cgraph.c: Described indirect edges and uids in initial comment.
4538         (cgraph_add_edge_to_call_site_hash): New function.
4539         (cgraph_edge): Search also among the indirect edges, use
4540         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
4541         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
4542         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
4543         site hash.
4544         (initialize_inline_failed): Assign a reason to indirect edges.
4545         (cgraph_create_edge_1): New function.
4546         (cgraph_create_edge): Moved some functionality to
4547         cgraph_create_edge_1.
4548         (cgraph_create_indirect_edge): New function.
4549         (cgraph_edge_remove_callee): Add an assert checking for
4550         non-indirectness.
4551         (cgraph_edge_remove_caller): Special-case indirect edges.
4552         (cgraph_remove_edge): Likewise.
4553         (cgraph_set_edge_callee): New function.
4554         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
4555         (cgraph_make_edge_direct): New function.
4556         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
4557         the declaration of the call statement matches.
4558         (cgraph_node_remove_callees): Special-case indirect edges.
4559         (cgraph_clone_edge): Likewise.
4560         (cgraph_clone_node): Clone also the indirect edges.
4561         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
4562         indirect_call, dump count of indirect_calls edges.
4563         * ipa-prop.c (iinlining_processed_edges): New variable.
4564         (ipa_note_param_call): Create indirect edges instead of
4565         creating notes.  New parameter node.
4566         (ipa_analyze_call_uses): New parameter node, pass it on to
4567         ipa_note_param_call.
4568         (ipa_analyze_stmt_uses): Likewise.
4569         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
4570         (print_edge_addition_message): Work on edges rather than on notes.
4571         (update_call_notes_after_inlining): Likewise, renamed to
4572         update_indirect_edges_after_inlining.
4573         (ipa_create_all_structures_for_iinln): New function.
4574         (ipa_free_node_params_substructures): Do not free notes.
4575         (ipa_edge_duplication_hook): Propagate bits within
4576         iinlining_processed_edges bitmap.
4577         (ipa_node_duplication_hook): Do not duplicate notes.
4578         (free_all_ipa_structures_after_ipa_cp): Renamed to
4579         ipa_free_all_structures_after_ipa_cp.
4580         (free_all_ipa_structures_after_iinln): Renamed to
4581         ipa_free_all_structures_after_iinln.
4582         (ipa_write_param_call_note): Removed.
4583         (ipa_read_param_call_note): Removed.
4584         (ipa_write_indirect_edge_info): New function.
4585         (ipa_read_indirect_edge_info): Likewise.
4586         (ipa_write_node_info): Do not stream notes, do stream information
4587         in indirect edges.
4588         (ipa_read_node_info): Likewise.
4589         (lto_ipa_fixup_call_notes): Removed.
4590         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
4591         * ipa-inline.c (pass_ipa_inline): Likewise.
4592         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
4593         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
4594         * tree-inline.c (copy_bb): Removed an unnecessary double check for
4595         is_gimple_call.
4596         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
4597         edges.
4598         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
4599         (output_cgraph): Stream also indirect edges.
4600         (lto_output_edge): Added capability to stream indirect edges.
4601         (input_edge): Likewise.
4602         (input_cgraph_1): Likewise.
4603         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
4604         of indirect edges.
4605
4606 2010-04-28  Richard Guenther  <rguenther@suse.de>
4607
4608         PR tree-optimization/43879
4609         PR tree-optimization/43909
4610         * tree-ssa-structalias.c (struct variable_info): Add
4611         only_restrict_pointers flag.
4612         (new_var_info): Initialize it.  Increment stats.total_vars here.
4613         (create_function_info_for): Do not increment stats.total_vars here.
4614         (get_function_part_constraint): Fix build with C++.
4615         (insert_into_field_list): Remove.
4616         (push_fields_onto_fieldstack): Properly merge fields.
4617         (create_variable_info_for): Split and simplify.
4618         (create_variable_info_for_1): New piece.
4619         (intra_create_variable_infos): Properly make restrict constraints
4620         from parameters.
4621
4622 2010-04-28  Richard Guenther  <rguenther@suse.de>
4623
4624         PR c++/43880
4625         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
4626
4627 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4628             Jan Hubicka <hubicka@ucw.cz>
4629
4630         * doc/invoke.texi (-Wsuggest-attribute=const,
4631         -Wsuggest-attribute=pure): Document.
4632         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
4633         (function_always_visible_to_compiler_p,
4634         suggest_attribute, warn_function_pure, warn_function_const):
4635         New functions.
4636         (check_call): Improve debug info.
4637         (analyze_function): Do not check availability.
4638         (add_new_function): Check availability.
4639         (propagate): Output warnings.
4640         (skip_function_for_local_pure_const): New function.
4641         (local_pure_const): Use it; output warnings.
4642         * common.opt (Wsuggest-attribute=const,
4643         Wsuggest-attribute=pure): New.
4644
4645 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
4646
4647         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
4648         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
4649         or DW_CFA_def_cfa_offset{,_sf}.
4650
4651 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
4652
4653         * tree.h: Fix truncated long macros.
4654
4655 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
4656
4657         * collect2.c (TARGET_64BIT): Redefine to target's default.
4658         * tlink.c: Likewise.
4659         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
4660         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
4661         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
4662         for underscoring __USER_LABEL_PREFIX__.
4663         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
4664         (SUB_LINK_ENTRY32): New.
4665         (SUB_LINK_ENTRY64): New.
4666         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
4667         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
4668         (SUB_LINK_ENTRY64): New.
4669         (SUB_LINK_ENTRY): New.
4670         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
4671         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
4672         x64 target is choosen.
4673         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
4674         * configure: Regenerated.
4675         * configure.ac (leading-mingw64-underscores): Option added.
4676
4677 2010-04-27  Jan Hubicka  <jh@suse.cz>
4678
4679         * doc/invoke.texi (-fipa-profile): Document.
4680         * opts.c (decode_options): Enable ipa-profile at -O1.
4681         * timevar.def (TV_IPA_PROFILE): Define.
4682         * common.opt (fipa-profile): Add.
4683         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
4684         flag for clones.
4685         (cgraph_propagate_frequency): Handle only local ones.
4686         * tree-pass.h (pass_ipa_profile): Declare.
4687         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
4688         (pass_ipa_profile): Use TV_IPA_PROFILE.
4689         * ipa.c (ipa_profile): New function.
4690         (gate_ipa_profile): Likewise.
4691         (pass_ipa_profile): New global variable.
4692         * passes.c (pass_ipa_profile): New.
4693
4694 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
4695
4696         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
4697
4698 2010-04-27  Martin Jambor  <mjambor@suse.cz>
4699
4700         PR middle-end/43812
4701         * ipa.c (dissolve_same_comdat_group_list): New function.
4702         (function_and_variable_visibility): Call
4703         dissolve_same_comdat_group_list when comdat group contains external or
4704         newly local nodes.
4705         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
4706         lists are circular and that they contain only DECL_ONE_ONLY nodes.
4707
4708 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
4709
4710         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
4711         (const_hash_1) <VECTOR_CST>: New case.
4712         (compare_constant) <VECTOR_CST>: Likewise.
4713         <ADDR_EXPR>: Deal with LABEL_REFs.
4714         (copy_constant) <VECTOR_CST>: New case.
4715
4716 2010-04-27  Jan Hubicka  <jh@suse.cz>
4717
4718         * cgraph.c (cgraph_propagate_frequency): New function.
4719         * cgraph.h (cgraph_propagate_frequency): Declare.
4720         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
4721         cgraph_propagate_frequency.
4722
4723 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
4724
4725         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
4726
4727 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
4728
4729         PR target/40657
4730         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
4731         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
4732         here to determine which regs to push and how much stack to reserve.
4733
4734 2010-04-27  Jie Zhang  <jie@codesourcery.com>
4735
4736         * doc/gimple.texi (gimple_statement_with_ops): Remove
4737         addresses_taken field.
4738         (gimple_statement_with_memory_ops): Likewise.
4739
4740 2010-04-27  Jan Hubicka  <jh@suse.cz>
4741
4742         * tree-inline.c (eni_inlining_weights): Remove.
4743         (estimate_num_insns): Special case more builtins.
4744
4745 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
4746
4747         PR c/32207
4748         * c-typeck.c (build_binary_op): Move forward check for comparison
4749         pointer with null pointer constant and adjust the diagnostic message.
4750
4751 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
4752
4753         PR lto/42776
4754         * configure.ac (gcc_cv_as_section_has_align): Set if installed
4755         binutils supports extended .section directive needed by LTO, or
4756         warn if older binutils found.
4757         (LTO_BINARY_READER): New AC_SUBST'd variable.
4758         (LTO_USE_LIBELF): Likewise.
4759         * gcc/config.gcc (lto_binary_reader): New target-specific configure
4760         variable.
4761         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
4762         (LTO_USE_LIBELF): Likewise.
4763         * configure: Regenerate.
4764
4765         * collect2.c (is_elf): Rename from this ...
4766         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
4767          object files in addition to ELF-formatted ones.
4768         (scan_prog_file): Caller updated.  Also allow for LTO info marker
4769         symbol to be prefixed or not by an extra underscore.
4770
4771         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
4772         * config/i386/winnt.c: Also #include lto-streamer.h
4773         (i386_pe_asm_named_section): Specify 1-byte section alignment for
4774         LTO named sections.
4775         (i386_pe_asm_output_aligned_decl_common): Add comment.
4776         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
4777
4778 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
4779
4780         PR target/43889
4781         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
4782         Add missing earlyclobber for second alternative.
4783
4784 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
4785
4786         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
4787         bits for artificial defs at the top of the block.
4788         * fwprop.c (single_def_use_enter_block): Don't call it.
4789
4790 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
4791
4792         PR 43715
4793         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
4794         instead of "$gcc_cv_objdump -T".
4795         Use "-undefined dynamic_lookup" on darwin.
4796         * gcc/configure: Regenerate.
4797
4798 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
4799
4800         PR c/43893
4801         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
4802
4803 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
4804
4805         * c-parser.c (struct c_token): Move location field up.
4806         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
4807         (struct c_declspecs): Convert typespec_word, storage_class, and
4808         default_int_p into bitfields.
4809         (struct c_declarator): Move loc field up.
4810
4811 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
4812
4813         * cfgloop.h (struct loop): Move can_be_parallel field up.
4814         * ipa-prop.h (struct ip_node_params): Move bitfields up.
4815         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
4816         down.
4817         (struct iv_cand): Convert pos field into a bitfield.
4818         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
4819         field up.
4820         (struct _stmt_vec_info): Shuffle fields for better packing.
4821
4822 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
4823
4824         * varasm.c (IN_NAMED_SECTION): Remove guard.
4825         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
4826         (IN_NAMED_SECTION_P): ...this.
4827         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
4828         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
4829
4830 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
4831
4832         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
4833         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
4834         of shadowing it.  Fix comments.
4835
4836 2010-04-26  Jan Hubicka  <jh@suse.cz>
4837
4838         * cgraph.c (cgraph_create_node): Set node frequency to normal.
4839         (cgraph_clone_node): Copy function frequency.
4840         * cgraph.h (node_frequency): New enum
4841         (struct cgraph_node): Add.
4842         * final.c (rest_of_clean_state): Update.
4843         * lto-cgraph.c (lto_output_node): Output node frequency.
4844         (input_overwrite_node): Input node frequency.
4845         * tre-ssa-loop-ivopts (computation_cost): Update.
4846         * lto-streamer-out.c (output_function): Do not output function
4847         frequency.
4848         * predict.c (maybe_hot_frequency_p): Update and handle functions
4849         executed once.
4850         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
4851         attribute lookup.
4852         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
4853         (compute_function_frequency): Set noreturn functions to be executed
4854         once.
4855         (choose_function_section): Update.
4856         * lto-streamer-in.c (input_function): Do not input function frequency.
4857         * function.c (allocate_struct_function): Do not initialize function
4858         frequency.
4859         * function.h (function_frequency): Remove.
4860         (struct function): Remove function frequency.
4861         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
4862         (try_update): Update.
4863         * tree-inline.c (initialize_cfun): Do not update function frequency.
4864         * passes.c (pass_init_dump_file): Update.
4865         * i386.c (ix86_compute_frame_layout): Update.
4866         (ix86_pad_returns): Update.
4867
4868 2010-04-26  Jie Zhang  <jie@codesourcery.com>
4869
4870         PR tree-optimization/43833
4871         * tree-vrp.c (range_int_cst_p): New.
4872         (range_int_cst_singleton_p): New.
4873         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
4874         when both operands are constants.  Use range_int_cst_p in
4875         BIT_IOR_EXPR case.
4876
4877 2010-04-26  Jan Hubicka  <jh@suse.cz>
4878
4879         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
4880
4881 2010-04-26  Richard Guenther  <rguenther@suse.de>
4882
4883         PR lto/43080
4884         * gimple.c (gimple_decl_printable_name): Deal gracefully
4885         with a NULL DECL_NAME.
4886
4887 2010-04-26  Richard Guenther  <rguenther@suse.de>
4888
4889         PR lto/42425
4890         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
4891         if emitting debug information and it is either a function
4892         or a namespace decl.
4893
4894 2010-04-26  Ira Rosen  <irar@il.ibm.com>
4895
4896         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
4897         determine if the statement is vectorizable, and a macro to access it.
4898         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
4899         Skip statements that can't be vectorized. If the analysis fails,
4900         mark the statement as unvectorizable if vectorizing basic block.
4901         (vect_compute_data_refs_alignment): Likewise.
4902         (vect_verify_datarefs_alignment): Skip statements marked as
4903         unvectorizable. Add print.
4904         (vect_analyze_group_access): Skip statements that can't be
4905         vectorized. If the analysis fails, mark the statement as
4906         unvectorizable if vectorizing basic block.
4907         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
4908         * tree-vect-stmts.c (vectorizable_store): Fix the number of
4909         generated stmts for SLP.
4910         (new_stmt_vec_info): Initialize the new field.
4911         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
4912         statements marked as unvectorizable.
4913
4914 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
4915
4916         * c-common.c (flag_isoc1x): New.
4917         (flag_isoc99): Update comment.
4918         * c-common.h (flag_isoc1x): New.
4919         (flag_isoc99): Update comment.
4920         * c-cppbuiltin.c (builtin_define_float_constants): Also define
4921         __<type>_DECIMAL_DIG__.
4922         * c-opts.c (set_std_c1x): New.
4923         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
4924         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
4925         * c.opt (-std=c1x, -std=gnu1x): New options.
4926         * doc/cpp.texi: Mention -std=c1x.
4927         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
4928         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
4929         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
4930         * doc/standards.texi: Mention C1X.
4931         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
4932         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
4933         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
4934         Define for C1X.
4935
4936 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
4937
4938         * config/i386/gmon-sol2.c (_mcleanup): Change format string
4939         placeholder from 0x%x to %#x.
4940         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
4941         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
4942         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
4943         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
4944         * config/i386/i386.c (ix86_target_string): Ditto.
4945         (output_pic_addr_const): Ditto.
4946         (print_operand): Ditto.
4947
4948 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
4949
4950         * combine.c (find_split_point): Add third argument.  Use it
4951         to find nested multiply-accumulate instructions.  Adjust calls.
4952         (try_combine): Adjust call to find_split_point.
4953
4954 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
4955
4956         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
4957
4958 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
4959
4960         PR tree-optimization/41442
4961         * fold-const.c (merge_truthop_with_opposite_arm): New function.
4962         (fold_binary_loc): Call it.
4963
4964 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4965
4966         * toplev.c (general_init): Set default for fdiagnostics-show-option.
4967         * opts.c (common_handle_option): Allow disabling it.
4968         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
4969
4970 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
4971
4972         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
4973         between modes if both types are integral.
4974
4975 2010-04-23  Richard Guenther  <rguenther@suse.de>
4976
4977         PR tree-optimization/43572
4978         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
4979
4980 2010-04-23  Richard Guenther  <rguenther@suse.de>
4981
4982         PR lto/43455
4983         * tree-inline.c (tree_can_inline_p): Also check compatibility
4984         of return types.
4985
4986 2010-04-23  Martin Jambor  <mjambor@suse.cz>
4987
4988         PR tree-optimization/43846
4989         * tree-sra.c (struct access): New flag grp_assignment_read.
4990         (build_accesses_from_assign): Set grp_assignment_read.
4991         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
4992         (enum mark_read_status): New type.
4993         (analyze_access_subtree): Propagate grp_assignment_read, create
4994         accesses also if both direct_read and root->grp_assignment_read.
4995
4996 2010-04-23  Martin Jambor  <mjambor@suse.cz>
4997
4998         PR middle-end/43835
4999         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
5000         function does not have type attributes.
5001
5002 2010-04-23  Richard Guenther  <rguenther@suse.de>
5003
5004         PR lto/42653
5005         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
5006         of FUNCTION_DECLs.
5007
5008 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5009
5010         * sese.h (create_if_region_on_edge): Remove.
5011
5012         * sese.c (create_if_region_on_edge): Make static.
5013
5014         * tree-inline.c: Do not include ggc.h.
5015
5016         * expr.c: Do not include ggc.h.
5017
5018         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
5019         dependencies.
5020
5021 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
5022
5023         PR target/43744
5024         * config/sh/sh.c (find_barrier): Don't emit a constant pool
5025         in the middle of insns for casesi_worker_2.
5026
5027 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
5028
5029         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
5030
5031 2010-04-22  Ira Rosen  <irar@il.ibm.com>
5032
5033         PR tree-optimization/43842
5034         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
5035         loop unrolling in update of exit phis. Fix comment.
5036         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
5037         least two reduction statements in the loop before starting SLP
5038         analysis.
5039
5040 2010-04-22  Nick Clifton  <nickc@redhat.com>
5041
5042         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
5043
5044 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
5045
5046         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
5047         to simplify a + ~a.
5048
5049 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5050
5051         * tree-parloops.c (loop_parallel_p): New argument
5052         parloop_obstack.  Pass it down.
5053         (parallelize_loops): New variable parloop_obstack.  Initialize it,
5054         pass it down, free it.
5055
5056         * tree-loop-linear.c (linear_transform_loops): Pass down
5057         lambda_obstack.
5058
5059         * tree-data-ref.h (lambda_compute_access_matrices): New argument
5060         of type struct obstack *.
5061
5062         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
5063         scratch_obstack.  Initialize it, pass down, free it.
5064
5065         * lambda.h (lambda_loop_new): Remove.
5066         (lambda_matrix_new, lambda_matrix_inverse)
5067         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
5068         argument of type struct obstack *.
5069
5070         * lambda-trans.c (lambda_trans_matrix_new): New argument
5071         lambda_obstack.  Pass it down, use obstack allocation for ret.
5072         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
5073         it down.
5074
5075         * lambda-mat.c (lambda_matrix_get_column)
5076         (lambda_matrix_project_to_null): Remove.
5077         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
5078         allocation for mat.
5079         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
5080         lambda_obstack.
5081
5082         * lambda-code.c (lambda_loop_new): New function.
5083         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
5084         (lambda_compute_auxillary_space, lambda_compute_target_space)
5085         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
5086         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
5087         (build_access_matrix): New argument lambda_obstack.  Use obstack
5088         allocation for am.
5089         (lambda_compute_step_signs, lambda_compute_access_matrices): New
5090         argument lambda_obstack.  Pass it down.
5091
5092 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
5093
5094         * optabs.h (expand_widening_mult): Declare.
5095
5096 2010-04-22  Richard Guenther  <rguenther@suse.de>
5097
5098         PR tree-optimization/43845
5099         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
5100         lookup the CALL_EXPR function and arguments.
5101
5102 2010-04-22  Nick Clifton  <nickc@redhat.com>
5103
5104         * config/stormy16/stormy16.c
5105         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
5106         * config/stormy16/stormy16.h: Tidy up formatting.
5107         (DONT_USE_BUILTIN_SETJMP): Remove definition.
5108         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
5109         (ineqbranchsi): Delete pattern.
5110         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
5111         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
5112         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
5113         stormy16-lib2-ucmpsi2.c.
5114
5115 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
5116
5117         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
5118         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
5119         extra set merge_set_noclobber, and use it to relax the final test
5120         slightly.
5121         * df.h (df_simulate_find_noclobber_defs): Declare.
5122         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
5123         conditional defs.
5124         (df_simulate_find_noclobber_defs): New function.
5125
5126 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
5127
5128         * config/i386/i386.md: Use {} around multi-line preparation statements.
5129
5130 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5131
5132         * c-tree.h (push_init_level, pop_init_level, set_init_index)
5133         (process_init_element): New argument of type struct obstack *.
5134
5135         * c-typeck.c (push_init_level, pop_init_level, set_designator)
5136         (set_init_index, set_init_label, set_nonincremental_init)
5137         (set_nonincremental_init_from_string, find_init_member)
5138         (output_init_element, output_pending_init_elements)
5139         (process_init_element): New argument braced_init_obstack.  Pass it
5140         down.
5141         (push_range_stack, add_pending_init): New argument
5142         braced_init_obstack.  Use obstack allocation.
5143
5144         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
5145         braced_init_obstack.  Pass it down.
5146         (c_parser_braced_init): New variables ret, braced_init_obstack.
5147         Initialize obstack, pass it down and finally free it.
5148
5149 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
5150
5151         PR middle-end/29274
5152         * tree-pass.h (pass_optimize_widening_mul): Declare.
5153         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
5154         gate_optimize_widening_mul): New static functions.
5155         (pass_optimize_widening_mul): New.
5156         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
5157         <case MULT_EXPR>: Remove support for widening multiplies.
5158         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
5159         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
5160         simplify_gen_unary rather than directly building extensions.
5161         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
5162         WIDEN_MULT_EXPR.
5163         * expmed.c (expand_widening_mult): New function.
5164         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
5165
5166 2010-04-21  Jan Hubicka  <jh@suse.cz>
5167
5168         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
5169         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
5170         * lto-wpa-fixup.c: Remove.
5171         * Makefile.in (lto-wpa-fixup.o): Remove.
5172         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
5173         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
5174         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
5175
5176 2010-04-21  Jan Hubicka  <jh@suse.cz>
5177
5178         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
5179         add write_optimization_summary, read_optimization_summary.
5180         (ipa_write_summaries_of_cgraph_node_set): Remove.
5181         (ipa_write_optimization_summaries): Declare.
5182         (ipa_read_optimization_summaries): Declare.
5183         * ipa-cp.c (pass_ipa_cp): Update.
5184         * ipa-reference.c (pass_ipa_reference): Update.
5185         * ipa-pure-const.c (pass_ipa_pure_const): Update.
5186         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
5187         Update.
5188         * ipa-inline.c (pass_ipa_inline): Update.
5189         * ipa.c (pass_ipa_whole_program): Update.
5190         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
5191         * passes.c (ipa_write_summaries_1): Do not test wpa.
5192         (ipa_write_optimization_summaries_1): New.
5193         (ipa_write_optimization_summaries): New.
5194         (ipa_read_summaries): Do not test ltrans.
5195         (ipa_read_optimization_summaries_1): New.
5196         (ipa_read_optimization_summaries): New.
5197
5198 2010-04-21  Jan Hubicka  <jh@suse.cz>
5199
5200         * lto-cgraph.c (lto_output_node): Do not output comdat groups
5201         for boundary nodes.
5202         (output_cgraph): Do not arrange comdat groups for boundary nodes.
5203
5204 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
5205
5206         PR debug/40040
5207         * dwarf2out.c (add_name_and_src_coords_attributes): Add
5208         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
5209
5210 2010-04-21  Jan Hubicka  <jh@suse.cz>
5211
5212         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
5213
5214 2010-04-21  Jan Hubicka  <jh@suse.cz>
5215
5216         * varpool.c (decide_is_variable_needed): Variable is always needed
5217         during ltrans.
5218
5219 2010-04-21  Jan Hubicka  <jh@suse.cz>
5220
5221         * opts.c (decode_options): Enable pure-const pass for whopr.
5222
5223 2010-04-21  Jan Hubicka  <jh@suse.cz>
5224
5225         * cgraph.c (dump_cgraph_node): Dump also assembler name.
5226         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
5227         at WPA dumping.
5228         (cgraph_decide_inlining): Do not expect callee to be removed in all
5229         cases.
5230
5231 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
5232
5233         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
5234
5235 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
5236
5237         * config/i386/i386.md (x86_shrd): Add athlon_decode and
5238         amdfam10_decode attributes.
5239
5240 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
5241
5242         PR middle-end/43570
5243         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
5244         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
5245         (lower_copyprivate_clauses): Use private var in outer
5246         context instead of original var.  Make sure the types
5247         are correct for VLAs.
5248
5249 2010-04-21  Richard Guenther  <rguenther@suse.de>
5250
5251         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
5252         to non-pointer objects.
5253
5254 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
5255
5256         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
5257         last chain entry if it starts with the still current label.
5258         (add_location_or_const_value_attribute): Check that
5259         loc_list->first->next is NULL instead of comparing ->first with ->last.
5260         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
5261         to add_var_loc_to_decl.
5262
5263         * dwarf2out.c (output_call_frame_info): For dw_cie_version
5264         >= 4 add also address size and segment size fields into CIE header.
5265
5266         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
5267         long as address size is the same as sizeof (void *) and
5268         segment size is 0.
5269         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
5270         address size or segment size is unexpected, return DW_EH_PE_omit.
5271         (classify_object_over_fdes): If get_cie_encoding returned
5272         DW_EH_PE_omit, return -1.
5273         (init_object): If classify_object_over_fdes returned -1,
5274         pretend there were no FDEs at all.
5275
5276 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
5277
5278         * config/i386/i386.md (bswap<mode>2): Macroize expander from
5279         bswap{si,di}2 using SWI48 mode iterator.
5280         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
5281         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
5282         set modrm attribute of bswap insn to 0 and remove length attribute.
5283         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
5284         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
5285         set mode attribute to <MODE> and remove length attribute.
5286
5287 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
5288
5289         PR rtl-optimization/43520
5290         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
5291         zero available registers.
5292
5293 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5294
5295         * builtins.c (fold_builtin_cproj): Fold more cases.
5296
5297 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5298
5299         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
5300         (fold_builtin_1): Fold builtin cproj.
5301         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
5302         Use ATTR_CONST_NOTHROW_LIST.
5303
5304 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
5305
5306         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
5307         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
5308         ffsi2_no_cmove for !TARGET_CMOVE.
5309         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
5310         (ffssi2): Remove expander.
5311         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
5312         mode iterator.
5313         (ctz<mode>2): Ditto from ctz{si,di}2.
5314         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
5315         mode iterator.
5316         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
5317         mode iterator.
5318
5319 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
5320
5321         * dwarf2out.c (AT_linkage_name): Define.
5322         (clone_as_declaration): Handle DW_AT_linkage_name.
5323         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
5324         of DW_AT_MIPS_linkage_name.
5325         (move_linkage_attr): Likewise.
5326         (dwarf2out_finish): Likewise.
5327
5328 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
5329
5330         PR middle-end/41952
5331         * fold-const.c (fold_comparison): New folding rule.
5332
5333 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
5334
5335         * double-int.h (double_int_setbit): Declare.
5336         * double-int.c (double_int_setbit): New function.
5337         * rtl.h (immed_double_int_const): Declare.
5338         * emit-rtl.c (immed_double_int_const): New function.
5339         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
5340         and immed_double_int_const functions.
5341         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
5342         expand_copysign_bit):  (Ditto.).
5343         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
5344         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
5345         * dojump.c (prefer_and_bit_test): (Ditto.).
5346         * expr.c (convert_modes, reduce_to_bit_field_precision,
5347         const_vector_from_tree): (Ditto.).
5348         * expmed.c (mask_rtx, lshift_value): (Ditto.).
5349
5350 2010-04-20  Jan Hubicka  <jh@suse.cz>
5351
5352         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
5353         (dump_cgraph_node): Dump new flags.
5354         * cgraph.h (struct cgraph_node): Add flags
5355         reachable_from_other_partition and in_other_partition.
5356         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
5357         other partition can not be removed.
5358         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
5359         the other partition must be output; silence sanity checking on
5360         leaking functions bodies from other paritition.
5361         * lto-cgraph.c (reachable_from_other_partition_p): New function.
5362         (lto_output_node): Output new flags; do not sanity check that inline
5363         clones are output; drop lto_forced_extern_inline_p code; do not mock
5364         visibility flags at partition boundaries.
5365         (add_node_to): New function.
5366         (output_cgraph): Use it to sort functions so masters appear before
5367         clones.
5368         (input_overwrite_node): Input new flags.
5369         * passes.c (ipa_write_summaries): Do not call
5370         lto_new_extern_inline_states.
5371         * lto-section-out.c (forced_extern_inline,
5372         lto_new_extern_inline_states lto_delete_extern_inline_states,
5373         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
5374         * lto-streamer.h (lto_new_extern_inline_states,
5375         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
5376         lto_forced_extern_inline_p): Kill.
5377
5378 2010-04-20  Richard Guenther  <rguenther@suse.de>
5379
5380         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
5381         from vars that can have pointers.
5382         (process_constraint): Dump useless constraints.
5383
5384 2010-04-20  Richard Guenther  <rguenther@suse.de>
5385
5386         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
5387         (dump_sa_points_to_info): Remove asserts.
5388         (init_base_vars): nothing_id isn't an escape point nor does it
5389         have pointers.
5390
5391 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
5392
5393         * tree.h (TYPE_REF_IS_RVALUE): Define.
5394         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
5395         should_move_die_to_comdat, prune_unused_types_walk): Handle
5396         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
5397         (modified_type_die, gen_reference_type_die): Emit
5398         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
5399         if TYPE_REF_IS_RVALUE and -gdwarf-4.
5400
5401 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5402
5403         PR target/43635
5404         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
5405         calls for -fpic -m31 if they have been sibcall optimized.
5406
5407 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
5408
5409         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
5410         ar.lc fixed and call-used.
5411
5412         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
5413
5414 2010-04-19  Jan Hubicka  <jh@suse.cz>
5415
5416         * opts.c (decode_options): Disable whpr incompatible passes.
5417         * lto/lto.c (lto_1_to_1_map): Skip clones.
5418         (read_cgraph_and_symbols): Do not mark everything as needed.
5419         (do_whole_program_analysis): Do map only after optimizing;
5420         set proper cgraph_state; use passmanager.
5421
5422 2010-04-19  DJ Delorie  <dj@redhat.com>
5423
5424         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
5425         POINTER_PLUS_EXPR and fix them.
5426
5427 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
5428
5429         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
5430         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
5431         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
5432         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
5433         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
5434         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
5435         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
5436         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
5437         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
5438         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
5439         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
5440
5441 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
5442
5443         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
5444         (check_cond_move_block): Likewise.
5445         (cond_move_process_if_block): Likewise.
5446         (noce_find_if_block): Improve formatting.
5447         (find_if_header): Pass 0 to memset and tweak conditions.
5448         (cond_exec_find_if_block): Fix long lines and tweak conditions.
5449
5450 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
5451
5452         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
5453         for -gdwarf-4.
5454
5455         PR middle-end/43337
5456         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
5457         with non-local decl doesn't need chain.
5458
5459 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
5460
5461         * ira-color.c (allocno_reload_assign): Avoid accumulating
5462         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
5463
5464 2010-04-19  Martin Jambor  <mjambor@suse.cz>
5465
5466         * gimple.h (create_tmp_reg): Declare.
5467         * gimplify.c (create_tmp_reg): New function.
5468         (gimplify_return_expr): Use create_tmp_reg.
5469         (gimplify_omp_atomic): Likewise.
5470         (gimple_regimplify_operands): Likewise.
5471         * tree-dfa.c (make_rename_temp): Likewise.
5472         * tree-predcom.c (predcom_tmp_var): Likewise.
5473         (reassociate_to_the_same_stmt): Likewise.
5474         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
5475         (get_replaced_param_substitute): Likewise.
5476         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
5477         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
5478         * tree-ssa-pre.c (get_representative_for): Likewise.
5479         (create_expression_by_pieces): Likewise.
5480         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
5481         (create_tailcall_accumulator): Likewise.
5482
5483 2010-04-19  Martin Jambor  <mjambor@suse.cz>
5484
5485         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
5486         new_stmt.
5487         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
5488
5489 2010-04-19  Richard Guenther  <rguenther@suse.de>
5490
5491         PR tree-optimization/43796
5492         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
5493         from SCEV in the lattice.
5494         (vrp_visit_phi_node): Dump change.
5495
5496 2010-04-19  Richard Guenther  <rguenther@suse.de>
5497
5498         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
5499         * configure: Re-generated.
5500
5501 2010-04-19  Richard Guenther  <rguenther@suse.de>
5502
5503         PR tree-optimization/43783
5504         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
5505         constant ARRAY_REF operands two and three if possible.
5506
5507 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
5508
5509         PR target/43766
5510         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
5511
5512 2010-04-19  Jie Zhang  <jie@codesourcery.com>
5513
5514         PR target/43662
5515         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
5516
5517 2010-04-19  Ira Rosen  <irar@il.ibm.com>
5518
5519         PR tree-optimization/37027
5520         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
5521         and macro to access it.
5522         (vectorizable_reduction): Add argument.
5523         (vect_get_slp_defs): Likewise.
5524         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
5525         statements for possible use in SLP.
5526         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
5527         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
5528         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
5529         add new argument.
5530         (vectorizable_reduction): Likewise.
5531         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
5532         vect_get_slp_defs.
5533         (vectorizable_type_demotion, vectorizable_type_promotion,
5534         vectorizable_store): Likewise.
5535         (vect_analyze_stmt): Update call to vectorizable_reduction.
5536         (vect_transform_stmt): Likewise.
5537         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
5538         (vect_build_slp_tree): Fix indentation. Check that there are no loads
5539         from different interleaving chains in same node.
5540         (vect_slp_rearrange_stmts): New function.
5541         (vect_supported_load_permutation_p): Allow load permutations for
5542         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
5543         inside SLP nodes if necessary.
5544         (vect_analyze_slp_instance): Handle reductions.
5545         (vect_analyze_slp): Try to build SLP instances originating from groups
5546         of reductions.
5547         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
5548         (vect_get_constant_vectors): Create initial vectors for reductions
5549         according to reduction code. Add new argument.
5550         (vect_get_slp_defs): Add new argument, pass it to
5551         vect_get_constant_vectors.
5552         (vect_schedule_slp_instance): Remove SLP tree root statements.
5553
5554 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
5555
5556         * tree.h (ENUM_IS_SCOPED): Define.
5557         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
5558         for ENUM_IS_SCOPED enums.
5559
5560 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5561
5562         * fold-const.c (fold_comparison): Use ssizetype.
5563         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
5564         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
5565         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
5566         * tree-object-size.c (compute_object_sizes): Use size_type_node.
5567
5568         * tree.h (initialize_sizetypes): Remove parameter.
5569         (build_common_tree_nodes): Remove second parameter.
5570         * stor-layout.c (initialize_sizetypes): Remove parameter.
5571         Always create an unsigned type.
5572         (set_sizetype): Assert that the passed type is unsigned and simplify.
5573         * tree.c (build_common_tree_nodes): Remove second parameter.
5574         Adjust call to initialize_sizetypes.
5575         * c-decl.c (c_init_decl_processing): Remove second argument in call to
5576         build_common_tree_nodes.
5577
5578 2010-04-18  Matthias Klose  <doko@ubuntu.com>
5579
5580         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
5581
5582 2010-04-18  Ira Rosen  <irar@il.ibm.com>
5583
5584         PR tree-optimization/43771
5585         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
5586         load permutation doesn't have gaps.
5587
5588 2010-04-18  Jan Hubicka  <jh@suse.cz>
5589
5590         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
5591         (sse_prologue_save_insn expander): Use new pattern.
5592         (sse_prologue_save_insn1): New pattern and splitter.
5593         (sse_prologue_save_insn): Update to deal also with 64bit aligned
5594         blocks.
5595         * i386.c (setup_incoming_varargs_64): Do not compute jump
5596         destination here.
5597         (ix86_gimplify_va_arg): Update alignment needed.
5598         (ix86_local_alignment): Do not align all local arrays to 128bit.
5599
5600 2010-04-17  Jan Hubicka  <jh@suse.cz>
5601
5602         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
5603
5604 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5605
5606         * arm.md (negdi2): Remove redundant code to force values into a
5607         register.
5608
5609 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5610
5611         * arm/bpabi.S: Add EABI alignment attributes to objects.
5612         * arm/bpabi-v6m.S: Likewise.
5613         * arm/crti.asm: Likewise.
5614         * arm/crtn.asm: Likewise.
5615         * arm/lib1funcs.asm: Likewise.
5616         * arm/libunwind.S: Likewise.
5617
5618 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5619
5620         * arm-protos.h (tune_params): New structure.
5621         * arm.c (current_tune): New variable.
5622         (arm_constant_limit): Delete.
5623         (struct processors): Add pointer to the tune parameters.
5624         (arm_slowmul_tune): New tuning option.
5625         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
5626         (all_cores): Adjust to pick up the tuning model.
5627         (arm_constant_limit): New function.
5628         (arm_override_options): Select the appropriate tuning model.  Delete
5629         initialization of arm_const_limit.
5630         (arm_split_constant): Use the new constant-limit model.
5631         (arm_rtx_costs): Pick up the current tuning model.
5632         * arm.md (is_strongarm, is_xscale): Delete.
5633         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
5634         for Xscale variant architectures.
5635         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
5636
5637 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5638
5639         * config/arm/arm.c (arm_gen_constant): Remove unused variable
5640         can_shift.
5641         (arm_rtx_costs_1): Remove unused variable extra_cost.
5642         (arm_unwind_emit_set): Use variable offset.
5643         (thumb1_output_casesi): Remove unused variable flags.
5644
5645 2010-04-16  Jeff Law  <law@redhat.com>
5646
5647         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
5648         needing assignment rather than doing a two-phase assignment.  Remove
5649         unused variable 'm'.
5650
5651 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5652
5653         PR bootstrap/43767
5654         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
5655
5656 2010-04-16  Doug Kwan  <dougkwan@google.com>
5657
5658         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
5659         (next_operand_entry_id): New static variable.
5660         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
5661         (add_to_ops_vec): Assigned unique ID to operand entry.
5662         (struct oecount_s): New field ID.
5663         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
5664         (undistribute_ops_list): Assign unique IDs to oecounts.
5665         (init_reassoc): reset next_operand_entry_id.
5666
5667 2010-04-16  Doug Kwan  <dougkwan@google.com>
5668
5669         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
5670         missing left parenthesis.
5671
5672 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
5673
5674         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
5675         *btdi_rex64 using SWI48 mode iterator.
5676         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
5677         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
5678         *jcc_btdi_mask_rex64.
5679
5680 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
5681
5682         * double-int.h (tree_to_double_int): Convert to macro.
5683         * double-int.c (tree_to_double_int): Remove.
5684
5685 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5686
5687         PR debug/43762
5688         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
5689         with want_address 2 and in case a single element list might be
5690         possible, call it again with want_address 0.
5691
5692 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
5693
5694         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
5695         case 'W' print operands for HI mode.
5696         * config/h8300/h8300.h (Y0, Y2) : New constraints.
5697         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
5698         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
5699         * config/h8300/predicate.md (bit_register_indirect_operand): New.
5700
5701         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
5702
5703         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
5704         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
5705         #xx:3 and #xx:4 mode.
5706
5707         * config/h8300/h8300.md (inverted load with HImode dest): Add
5708         support for H8300SX.
5709
5710         * config/h8300/predicate.md (bit_operand): Allow immediate values that
5711         satisfy 'U' constraint.
5712
5713 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5714
5715         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
5716         * configure: Regenerate.
5717         * config.in: Regenerate.
5718         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
5719         works.
5720
5721 2010-04-16  Richard Guenther  <rguenther@suse.de>
5722
5723         * tree.h (struct tree_decl_minimal): Move pt_uid ...
5724         (struct tree_decl_common): ... here.
5725         (DECL_PT_UID): Adjust.
5726         (SET_DECL_PT_UID): Likewise.
5727         (DECL_PT_UID_SET_P): Likewise.
5728
5729 2010-04-16  Richard Guenther  <rguenther@suse.de>
5730
5731         PR tree-optimization/43572
5732         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
5733         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
5734         * tree-flow.h (is_call_clobbered): Remove.
5735         * tree-flow-inline.h (is_call_clobbered): Likewise.
5736         * tree-dfa.c (dump_variable): Do not dump call clobber state.
5737         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
5738         (execute_return_slot_opt): Adjust.
5739         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
5740         check for call clobbered vars here.
5741         (find_tail_calls): Move tailcall verification to the
5742         proper place.
5743
5744 2010-04-16  Diego Novillo  <dnovillo@google.com>
5745
5746         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
5747
5748 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5749
5750         PR target/40603
5751         * config/arm/arm.md (cbranchqi4): New pattern.
5752         * config/arm/predicates.md (const0_operand,
5753         cbranchqi4_comparison_operator): New predicates.
5754
5755 2010-04-16  Richard Guenther  <rguenther@suse.de>
5756
5757         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
5758         (dump_gimple_stmt): Likewise.
5759
5760 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5761
5762         * recog.h (struct recog_data): New field is_operator.
5763         (struct insn_operand_data): New field is_operator.
5764         * recog.c (extract_insn): Set recog_data.is_operator.
5765         * genoutput.c (output_operand_data): Emit code to set the
5766         is_operator field.
5767         * reload.c (find_reloads): Use it rather than testing for an
5768         empty constraint string.
5769
5770         PR target/41514
5771         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
5772         If the previous insn is a cbranchsi4_insn with the same arguments,
5773         omit the compare instruction.
5774
5775         * config/arm/arm.md (addsi3_cbranch): If destination is a high
5776         register, inputs must be low registers and we need a low register
5777         scratch.  Handle alternative 2 like alternative 3.
5778
5779 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5780
5781         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
5782         don't call get_addr on both.  If one expression is a VALUE and
5783         the other a REG, check VALUE's locs if the REG isn't among them.
5784
5785 2010-04-16  Christian Bruel  <christian.bruel@st.com>
5786
5787         * config/sh/sh.h (sh_frame_pointer_required): New function.
5788         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
5789         (flag_omit_frame_pointer) Set.
5790         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
5791         (rounded_frame_size): Adjust size with outgoing_args_size.
5792         (sh_set_return_address): Must return from stack pointer.
5793         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
5794         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
5795         (ACCUMULATE_OUTGOING_ARGS): Define.
5796         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
5797         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
5798
5799 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5800
5801         PR target/43471
5802         * config/sh/sh.c (sh_legitimize_reload_address): Use
5803         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
5804         Remove a unneeded check for offset_base.
5805
5806 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
5807
5808         * configure: Regenerated.
5809
5810 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5811
5812         * config/s390/s390.c (s390_call_save_register_used): Switch back
5813         to HARD_REGNO_NREGS.
5814
5815 2010-04-15  Richard Guenther  <rguenther@suse.de>
5816
5817         * alias.c (alias_set_subset_of): Handle alias-set zero
5818         child properly.
5819
5820 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
5821             Julian Brown  <julian@codesourcery.com>
5822
5823         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
5824         alternatives according to use of high and low regs.
5825         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
5826         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
5827         optimizing for size on Thumb-2.
5828
5829 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
5830
5831         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
5832
5833 2010-04-15  Richard Guenther  <rguenther@suse.de>
5834
5835         * tree-ssa-structalias.c (struct variable_info): Add
5836         is_fn_info flag.
5837         (new_var_info): Initialize it.
5838         (dump_constraints): Support printing last added constraints.
5839         (debug_constraints): Adjust.
5840         (dump_constraint_graph): Likewise.
5841         (make_heapvar_for): Check for NULL cfun.
5842         (get_function_part_constraint): New function.
5843         (get_fi_for_callee): Likewise.
5844         (find_func_aliases): Properly implement IPA PTA constraints.
5845         (process_ipa_clobber): New function.
5846         (find_func_clobbers): Likewise.
5847         (insert_into_field_list_sorted): Remove.
5848         (create_function_info_for): Properly allocate vars for IPA mode.
5849         Do not use insert_into_field_list_sorted.
5850         (create_variable_info_for): Properly generate constraints for
5851         global vars in IPA mode.
5852         (dump_solution_for_var): Always dump the solution.
5853         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
5854         (find_what_var_points_to): Adjust.
5855         (pt_solution_set): Change.
5856         (pt_solution_ior_into): New function.
5857         (pt_solution_empty_p): Export.
5858         (pt_solution_includes_global): Adjust.
5859         (pt_solution_includes_1): Likewise.
5860         (pt_solutions_intersect_1): Likewise.
5861         (dump_sa_points_to_info): Check some invariants.
5862         (solve_constraints): Move constraint dumping ...
5863         (compute_points_to_sets): ... here.
5864         (ipa_pta_execute): ... and here.
5865         (compute_may_aliases): Do not re-compute points-to info
5866         locally if IPA info is available.
5867         (ipa_escaped_pt): New global var.
5868         (ipa_pta_execute): Properly implement IPA PTA.
5869         * tree-into-ssa.c (dump_decl_set): Support dumping
5870         decls not in referenced-vars.
5871         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
5872         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
5873         (dump_points_to_solution): Likewise.
5874         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
5875         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
5876         (remap_gimple_stmt): Reset call clobber/use information if necessary.
5877         (copy_decl_to_var): Copy DECL_PT_UID.
5878         (copy_result_decl_to_var): Likewise.
5879         * tree.c (make_node_stat): Initialize DECL_PT_UID.
5880         (copy_node_stat): Copy it.
5881         * tree.h (DECL_PT_UID): New macro.
5882         (SET_DECL_PT_UID): Likewise.
5883         (DECL_PT_UID_SET_P): Likewise.
5884         (struct tree_decl_minimal): Add pt_uid member.
5885         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
5886         (pt_solution_empty_p): Declare.
5887         (pt_solution_set): Adjust.
5888         (ipa_escaped_pt): Declare.
5889         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
5890         * gimple-pretty-print.c (pp_points_to_solution): New function.
5891         (dump_gimple_call): Dump call clobber/use information.
5892         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
5893         * tree-pass.h (TDF_ALIAS): New dump option.
5894         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
5895         * doc/invoke.texi (-fipa-pta): Update documentation.
5896
5897 2010-04-15  Richard Guenther  <rguenther@suse.de>
5898
5899         * Makefile.in (OBJS-common): Add gimple-fold.o.
5900         (gimple-fold.o): New rule.
5901         * tree.h (maybe_fold_offset_to_reference,
5902         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
5903         prototypes ...
5904         * gimple.h: ... here.
5905         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
5906         may_propagate_address_into_dereference): Move prototypes ...
5907         * gimple.h: ... here.
5908         * tree-ssa-ccp.c (get_symbol_constant_value,
5909         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
5910         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
5911         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
5912         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
5913         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
5914         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
5915         gimplify_and_update_call_from_tree): Move ...
5916         * gimple-fold.c: ... here.  New file.
5917         (ccp_fold_builtin): Rename to ...
5918         (gimple_fold_builtin): ... this.
5919         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
5920
5921 2010-04-15  Richard Guenther  <rguenther@suse.de>
5922
5923         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
5924         fit_double_type, force_fit_type_double, add_double_with_sign,
5925         neg_double, mul_double_with_sign, lshift_double, rshift_double,
5926         lrotate_double, rrotate_double, div_and_round_double): Move ...
5927         * double-int.c: ... here.
5928         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
5929         add_double, neg_double, mul_double_with_sign, mul_double,
5930         lshift_double, rshift_double, lrotate_double, rrotate_double,
5931         div_and_round_double): Move prototypes ...
5932         * double-int.h: ... here.
5933
5934 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
5935
5936         PR target/43742
5937         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
5938         matching constraints to ensure inputs match the output.
5939
5940 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5941
5942         PR target/43742
5943         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
5944         in an input-only operand.
5945
5946 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
5947
5948         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
5949         (double_int_not, double_int_lshift, double_int_rshift): Declare.
5950         (double_int_negative_p): Convert to static inline function.
5951         * double-int.c (double_int_lshift, double_int_lshift): New functions.
5952         (double_int_negative_p): Remove.
5953         * tree.h (lshift_double, rshift_double):
5954         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
5955         * fold-const.c (fold_convert_const_int_from_real,
5956         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
5957         (lshift_double): Change type of arith argument to bool.
5958         (rshift_double): Change type of arith argument to bool. Correct
5959         comment.
5960         * expmed.c (mask_rtx, lshift_value): (Ditto.).
5961
5962 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
5963
5964         PR target/21803
5965         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
5966         at the start and end of the then/else blocks, and omit them from the
5967         conversion.
5968         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
5969         argument; all callers changed.  Pass zero to old_insns_match_p instead.
5970         (flow_find_head_matching_sequence): New function.
5971         (old_insns_match_p): Check REG_EH_REGION notes for calls.
5972         * basic-block.h (flow_find_cross_jump,
5973         flow_find_head_matching_sequence): Declare functions.
5974
5975 2010-04-14  Jason Merrill  <jason@redhat.com>
5976
5977         PR c++/36625
5978         * c-common.c (attribute_takes_identifier_p): New fn.
5979         * c-common.h: Declare it.
5980
5981 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5982
5983         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
5984         splitter condition.
5985         (*udivmod<mode>4): Ditto.
5986
5987 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5988
5989         * config/i386/i386.md (maxmin_int): Rename code attribute from
5990         maxminiprefix and update all users.
5991         (maxmin_float): Ditto from maxminfprefix.
5992         (logic): Ditto from logicprefix.
5993         (absneg_mnemonic): Ditto from absnegprefix.
5994         * config/i386/mmx.md: Update all users of maxminiprefix,
5995         maxminfprefix and logicprefix for rename.
5996         * config/i386/sse.md: Ditto.
5997         * config/i386/sync.md (sync_<code><mode>): Update for
5998         logicprefix rename.
5999
6000 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6001
6002         PR 42966
6003         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
6004         warnings converted to errors.
6005
6006 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
6007
6008         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
6009         used insn_type variable.
6010         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
6011         to avoid set-but-not-used warning.
6012
6013 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
6014
6015         * df-core.c (df_ref_debug): Change format string placeholder
6016         from 0x%x to %#x.
6017         * dwarf2asm.c (dw2_asm_output_data_raw,
6018         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
6019         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
6020         * dwarf2out.c (output_cfi, output_cfi_directive,
6021         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
6022         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
6023         Ditto.
6024         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
6025         * print-rtl.c (print_rtx): Ditto.
6026
6027 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
6028
6029         PR middle-end/42694
6030         * builtins.c (expand_builtin_pow_root): New function to expand pow
6031         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
6032         series of sqrt and cbrt calls under -ffast-math.
6033         (expand_builtin_pow): Call it.
6034
6035 2010-04-14  Michael Matz  <matz@suse.de>
6036
6037         PR tree-optimization/42963
6038         * tree-cfg.c (touched_switch_bbs): New static variable.
6039         (group_case_labels_stmt): New function broken out from ...
6040         (group_case_labels): ... here, use the above.
6041         (start_recording_case_labels): Allocate touched_switch_bbs.
6042         (end_recording_case_labels): Deallocate it, call
6043         group_case_labels_stmt.
6044         (gimple_redirect_edge_and_branch): Remember index of affected BB.
6045
6046 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
6047
6048         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
6049         from insn template.
6050
6051 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
6052
6053         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
6054
6055 2010-04-13  Jan Hubicka  <jh@suse.cz>
6056
6057         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
6058         of optimized out static functions.
6059         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
6060         cost computation.  Also sanity check for overflows.
6061         (update_caller_keys): Update cgraph_edge_badness call; properly
6062         update fibheap and sanity check that it is up to date.
6063         (add_new_edges_to_heap): Update cgraph_edge_badness.
6064         (cgraph_decide_inlining_of_small_function): Likewise;
6065         add sanity checking that badness in heap is up to date;
6066         improve dumping of reason; Update badness of calls to the
6067         offline copy of function currently inlined; dump badness
6068         of functions not inlined because of unit growth limits.
6069
6070 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
6071
6072         PR middle-end/32628
6073         * c-common.c (pointer_int_sum): Disregard overflow that occured only
6074         because of sign-extension change when converting to sizetype here...
6075         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
6076
6077         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
6078         the folding to constants.  Remove redundant final conversion.
6079         (fold_binary) <associate>: Do not associate if the re-association of
6080         constants alone overflows.
6081         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
6082         to the end of the list.
6083         (multiple_of_p) <COND_EXPR>: New case.
6084
6085 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6086
6087         * opt-functions.awk (opt_sanitized_name): New.
6088         (opt_enum): New.
6089         * optc-gen.awk: Use it
6090         * opth-gen.awk: Use it.
6091
6092 2010-04-13  Martin Jambor  <mjambor@suse.cz>
6093
6094         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
6095         (sra_modify_assign): Delete stmts loading dead data even if racc has no
6096         children.  Call replace_uses_with_default_def_ssa_name to handle
6097         SSA_NAES on lhs.
6098
6099 2010-04-13  Michael Matz  <matz@suse.de>
6100
6101         PR middle-end/43730
6102         * builtins.c (expand_builtin_interclass_mathfn): Also create
6103         a register if the predicate doesn't match.
6104
6105 2010-04-13  Diego Novillo  <dnovillo@google.com>
6106
6107         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
6108         * c-pch.c: Include timevar.h.
6109         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
6110         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
6111         * ggc-common.c: Include timevar.h.
6112         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
6113         * timevar.def (TV_PCH_SAVE): Define.
6114         (TV_PCH_CPP_SAVE): Define.
6115         (TV_PCH_PTR_REALLOC): Define.
6116         (TV_PCH_PTR_SORT): Define.
6117         (TV_PCH_RESTORE): Define.
6118         (TV_PCH_CPP_RESTORE): Define.
6119
6120 2010-04-13  Michael Matz  <matz@suse.de>
6121
6122         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
6123         into MINUS_EXPRs.
6124         (can_reassociate_p): New function.
6125         (break_up_subtract_bb, reassociate_bb): Use it.
6126
6127 2010-04-13  Richard Guenther  <rguenther@suse.de>
6128
6129         PR bootstrap/43737
6130         * builtins.c (c_readstr): Fix assert.
6131
6132 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
6133
6134         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
6135         when generating cltd insn.
6136
6137         (*ashl<mode>3_1): Remove special handling for register operand 2.
6138         (*ashlsi3_1_zext): Ditto.
6139         (*ashlhi3_1): Ditto.
6140         (*ashlhi3_1_lea): Ditto.
6141         (*ashlqi3_1): Ditto.
6142         (*ashlqi3_1_lea): Ditto.
6143         (*<shiftrt_insn><mode>3_1): Ditto.
6144         (*<shiftrt_insn>si3_1_zext): Ditto.
6145         (*<shiftrt_insn>qi3_1_slp): Ditto.
6146         (*<rotate_insn><mode>3_1): Ditto.
6147         (*<rotate_insn>si3_1_zext): Ditto.
6148         (*<rotate_insn>qi3_1_slp): Ditto.
6149
6150 2010-04-13  Richard Guenther  <rguenther@suse.de>
6151
6152         * tree-ssa-structalias.c (callused_id): Remove.
6153         (call_stmt_vars): New.
6154         (get_call_vi): Likewise.
6155         (lookup_call_use_vi): Likewise.
6156         (lookup_call_clobber_vi): Likewise.
6157         (get_call_use_vi): Likewise.
6158         (get_call_clobber_vi): Likewise.
6159         (make_transitive_closure_constraints): Likewise.
6160         (handle_const_call): Adjust to do per-call call-used handling.
6161         (handle_pure_call): Likewise.
6162         (find_what_var_points_to): Remove general callused handling.
6163         (init_base_vars): Likewise.
6164         (init_alias_vars): Initialize call_stmt_vars.
6165         (compute_points_to_sets): Process call-used and call-clobbered
6166         vars for call statements.
6167         (delete_points_to_sets): Free call_stmt_vars.
6168
6169 2010-04-13  Richard Guenther  <rguenther@suse.de>
6170
6171         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
6172         Only add RW dependence for dependence distance zero.
6173         Adjust maximal vectorization factor according to dependences.
6174         Move alignment handling ...
6175         (vect_find_same_alignment_drs): ... here.  New function.
6176         (vect_analyze_data_ref_dependences): Adjust.
6177         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
6178         (vect_analyze_data_refs): Adjust minimal vectorization factor
6179         according to data references.
6180         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
6181         dependences before determining the vectorization factor.
6182         Analyze alignment after determining the vectorization factor.
6183         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
6184         dependences before alignment.
6185         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
6186         Adjust prototype.
6187         (vect_analyze_data_refs): Likewise.
6188         (MAX_VECTORIZATION_FACTOR): New define.
6189
6190 2010-04-13  Duncan Sands  <baldrick@free.fr>
6191
6192         * except.h (lang_eh_type_covers): Remove.
6193         * except.c (lang_eh_type_covers): Likewise.
6194
6195 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6196             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6197
6198         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
6199         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
6200         UNITS_PER_LONG where it is ABI relevant.
6201         (s390_return_addr_rtx): Likewise.
6202         (s390_back_chain_rtx): Likewise.
6203         (s390_frame_area): Likewise.
6204         (s390_frame_info): Likewise.
6205         (s390_initial_elimination_offset): Likewise.
6206         (save_gprs): Likewise.
6207         (s390_emit_prologue): Likewise.
6208         (s390_emit_epilogue): Likewise.
6209         (s390_function_arg_advance): Likewise.
6210         (s390_function_arg): Likewise.
6211         (s390_va_start): Likewise.
6212         (s390_gimplify_va_arg): Likewise.
6213         (s390_function_profiler): Likewise.
6214         (s390_optimize_prologue): Likewise.
6215         (s390_rtx_costs): Likewise.
6216         (s390_secondary_reload): Likewise.
6217         (s390_promote_function_mode): Likewise.
6218         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
6219         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
6220         registers available.
6221         (s390_unwind_word_mode): New function.
6222         (s390_function_value): Split 64 bit values into register pair if
6223         used as return value.
6224         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
6225         function call parameters.  Handle parallels.
6226         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
6227         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
6228         (DWARF_CIE_DATA_ALIGNMENT): New macro.
6229         (s390_expand_setmem): Remove unused variable src_addr.
6230         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
6231         deal with 64 bit registers.
6232         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
6233         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
6234         (UNITS_PER_LONG): New macro.
6235         * libjava/include/s390-signal.h: Define extended ucontext
6236         structure containing the upper halfs of the 64 bit registers.
6237
6238 2010-04-13  Simon Baldwin  <simonb@google.com>
6239
6240         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
6241
6242 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
6243
6244         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
6245         rvalue on the RHS if the LHS is of a non-renamable type.
6246         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
6247
6248 2010-04-13  Matthias Klose  <doko@ubuntu.com>
6249
6250         * gcc.c (cc1_options): Handle -iplugindir before processing
6251         the cc1 spec. Only add -iplugindir once.
6252         (cpp_unique_options): Add -iplugindir option if -fplugin* options
6253         found.
6254         * common.opt (iplugindir): Remove `Separate' property, initialize.
6255         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
6256         option.
6257         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
6258         (distclean): Remove plugin dir.
6259         * doc/invoke.texi: Document -iplugindir.
6260
6261 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
6262
6263         * doc/plugins.texi (Loading Plugins): Document short
6264         -fplugin=foo option.
6265         (Plugin API): Mention default_plugin_dir_name function.
6266
6267         * gcc.c (find_file_spec_function): Add new declaration.
6268         (static_spec_func): Use it for "find-file".
6269         (find_file_spec_function): Add new function.
6270         (cc1_options): Add -iplugindir option if -fplugin* options found.
6271
6272         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
6273
6274         * plugin.c (add_new_plugin): Updated comment, and handle short
6275         plugin name.
6276         (default_plugin_dir_name): Added new function.
6277
6278         * common.opt (iplugindir): New option to set the plugin directory.
6279
6280 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
6281
6282         * config/i386/i386.md (any_rotate): New code iterator.
6283         (rotate_insn): New code attribute.
6284         (rotate): Ditto.
6285         (SWIM124): New mode iterator.
6286         (<rotate_insn>ti3): New expander.
6287         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
6288         any_rotate code iterator.
6289         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
6290         using any_rotate code iterator and SWIM124 mode iterator.
6291         (ix86_rotlti3): New insn_and_split pattern.
6292         (ix86_rotrti3): Ditto.
6293         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
6294         ix86_rotl{di,ti}3 patterns.
6295         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
6296         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
6297         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
6298         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
6299         code iterator and SWI mode iterator.
6300         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
6301         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
6302         code iterator.
6303         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
6304         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
6305         (bswap rotatert splitter): Add splitter.
6306         (bswap splitter): Macroize splitter using any_rotate code iterator.
6307         Add insn predicate to split only for TARGET_USE_XCHGB or when
6308         optimizing function for size.
6309
6310 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
6311
6312         * config/pa/pa.c (emit_move_sequence): Remove use of
6313         deleted variable flag_argument_noalias.
6314
6315 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6316
6317         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
6318         configurations.
6319         Add to unsupported targets list.
6320         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
6321         sparc*-sun-solaris2.[567]* from target lists.
6322         * configure: Regenerate.
6323         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
6324         removal.
6325         Remove Solaris 7 patch references.
6326         (Specific, sparc-sun-solaris2.7): Removed.
6327         (sparc-sun-solaris2*): Update Solaris 7 example.
6328         (sparc64-*-solaris2*): Likewise.
6329
6330 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6331
6332         * config.build (alpha*-dec-osf4*): Remove.
6333         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
6334         of obsolete configurations.
6335         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
6336         support.
6337         * config/alpha/t-osf4: Renamed to ...
6338         * config/alpha/t-osf5: ... this.
6339         * config/alpha/osf.h: Renamed to ...
6340         * config/alpha/osf5.h: ... this.
6341         Merged old osf5.h contents.
6342         Update comments.
6343         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
6344         (EXTRA_SPECS): Removed.
6345         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
6346         reflect removal of Tru64 UNIX V4.0/V5.0 support.
6347         Document that.
6348
6349 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6350
6351         * doc/contrib.texi (Contributors, Rainer Orth): Update.
6352
6353 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
6354
6355         PR/43702
6356         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
6357         __thiscall convention.
6358
6359 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
6360
6361         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
6362         orig_base.
6363         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
6364
6365 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
6366
6367         * function.c (assign_parms_initialize_all): Add unused attribute
6368         to fntype.
6369
6370 2010-04-12  Richard Guenther  <rguenther@suse.de>
6371
6372         * gsstruct.def (GSS_CALL): New.
6373         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
6374         * gimple.h: Include tree-ssa-alias.h.
6375         (struct gimple_statement_call): New.
6376         (union gimple_statement_struct_d): Add gimple_call member.
6377         (gimple_call_reset_alias_info): Declare.
6378         (gimple_call_use_set): New function.
6379         (gimple_call_clobber_set): Likewise.
6380         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
6381         * gimple.c (gimple_call_reset_alias_info): New function.
6382         (gimple_build_call_1): Call it.
6383         * lto-streamer-in.c (input_gimple_stmt): Likewise.
6384         * tree-inline.c (remap_gimple_stmt): Likewise.
6385         (expand_call_inline): Remove callused handling.
6386         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
6387         * tree-dfa.c (dump_variable): Likewise.
6388         * tree-parloops.c (parallelize_loops): Likewise.
6389         * tree-ssa.c (init_tree_ssa): Likewise.
6390         (delete_tree_ssa): Likewise.
6391         * tree-flow-inline.h (is_call_used): Remove.
6392         * tree-flow.h (struct gimple_df): Remove callused member.
6393         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
6394         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
6395         (ref_maybe_used_by_call_p_1): Simplify.
6396         (call_may_clobber_ref_p_1): Likewise.
6397         * tree-ssa-structalias.c (compute_points_to_sets): Set
6398         the call stmt used and clobbered sets.
6399         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
6400         (find_tail_calls): Verify the tail call.
6401
6402 2010-04-12  Richard Guenther  <rguenther@suse.de>
6403
6404         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
6405         single-iteration always-inline inlining.
6406         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
6407         (cgraph_decide_inlining): Do not handle always-inline specially.
6408         (try_inline): Remove always-inline cycle detection special case.
6409         Do not recurse on always-inlines.
6410         (cgraph_early_inlining): Do not iterate if not optimizing.
6411         (cgraph_gate_early_inlining): remove.
6412         (pass_early_inline): Run unconditionally.
6413         (gate_cgraph_decide_inlining): New function.
6414         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
6415         not inlining or optimizing.
6416         (cgraph_decide_inlining_of_small_functions): Also consider
6417         always-inline functions.
6418         (cgraph_default_inline_p): Return true for nodes which should
6419         disregard inline limits.
6420         (estimate_function_body_sizes): Assume zero size and time for
6421         nodes which are marked as disregarding inline limits.
6422         (cgraph_decide_recursive_inlining): Do not perform recursive
6423         inlining on always-inline nodes.
6424
6425 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
6426
6427         PR bootstrap/43699
6428         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
6429         for exprs satisfying handled_component_p.
6430
6431 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
6432
6433         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
6434         non-constant aggregate elements.
6435
6436         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
6437         is a real initialization.
6438
6439 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
6440
6441         PR c/36774
6442         * c-decl.c (start_function): Move forward check for nested function.
6443
6444 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
6445
6446         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
6447         * config/sh/sh.c: Include reload.h.
6448         (sh_legitimize_reload_address): New.
6449         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
6450         sh_legitimize_reload_address.
6451
6452 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
6453
6454         * config/sh/sh.md (*movqi_pop): New insn pattern.
6455         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
6456
6457 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
6458
6459         * config/i386/i386.md (any_shiftrt): New code iterator.
6460         (shiftrt_insn): New code attribute.
6461         (shiftrt): Ditto.
6462         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
6463         using any_shiftrt code iterator.
6464         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
6465         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
6466         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
6467         pattern from corresponding peephole2 patterns.
6468         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
6469         using any_shiftrt code iterator.
6470         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
6471         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
6472         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
6473         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
6474         *{ashr,lshr}<mode>3_cmp_zext.
6475         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
6476
6477 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
6478
6479         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
6480         scratch register.
6481         (*lshr<mode>3_cconly): Ditto.
6482
6483 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
6484
6485         * config/i386/i386.md (lshr<mode>3): Macroize expander from
6486         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
6487         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6488         pattern from *lshr{di,ti}3_1 and corresponding splitters using
6489         DWI mode iterator.
6490         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
6491         from corresponding peephole2 patterns.
6492         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
6493         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
6494         and *lshrdi3_1_rex64 using SWI mode iterator.
6495         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
6496         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
6497         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
6498         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
6499         and *lshrdi3_cmp_rex64 using SWI mode iterator.
6500         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
6501         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
6502         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
6503         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
6504         SWI mode iterator.
6505
6506 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
6507
6508         * config/i386/i386.md (ashr<mode>3): Macroize expander from
6509         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
6510         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6511         pattern from *ashr{di,ti}3_1 and corresponding splitters using
6512         DWI mode iterator.
6513         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
6514         from corresponding peephole2 patterns.
6515         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
6516         (ashrsi3_cvt): Rename from ashrsi3_31.
6517         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
6518         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
6519         and x86_64_shift_adj_3 using SWI48 mode iterator.
6520         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
6521         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
6522         and *ashrdi3_1_rex64 using SWI mode iterator.
6523         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
6524         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
6525         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
6526         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
6527         and *ashrdi3_cmp_rex64 using SWI mode iterator.
6528         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
6529         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
6530         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
6531         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
6532         SWI mode iterator.
6533         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
6534         * config/i386/i386.c (ix86_split_ashr): Update for renamed
6535         x86_shift<mode>_adj_3 expanders.
6536
6537 2010-04-10  Wei Guozhi  <carrot@google.com>
6538
6539         PR target/42601
6540         * config/arm/arm.c (arm_pic_static_addr): New function.
6541         (legitimize_pic_address): Call arm_pic_static_addr when it detects
6542         a static symbol.
6543         (arm_output_addr_const_extra): Output expression for new pattern.
6544         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
6545
6546 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
6547
6548         * ira-costs.c (record_reg_classes): Ignore alternatives that are
6549         not enabled.
6550
6551         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
6552         * web.c: Include "insn-config.h" and "recog.h".
6553         (union_match_dups): New function.
6554         (web_main): Call it.
6555         (union_defs): Don't try to recognize match_dups.
6556
6557         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
6558         if doing so would replace the entire pattern.
6559
6560 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
6561
6562         PR target/43707
6563         PR target/43709
6564         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
6565         and splitter pattern.  Change splitter operand 1 predicate to
6566         nonmemory_operand.
6567
6568 2010-04-09  Martin Jambor  <mjambor@suse.cz>
6569
6570         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
6571         lattices are addresses of CONST_DECLs with the same initial value.
6572         (ipcp_print_all_lattices): Print values of CONST_DECLs.
6573         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
6574
6575 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
6576             Bernd Schmidt  <bernds@codesourcery.com>
6577
6578         * loop-invariant.c (replace_uses): New static function.
6579         (move_invariant_reg): Use it to ensure we can replace the uses.
6580
6581 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
6582
6583         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
6584         function template.
6585         (picochip_override_options): Enable section anchors only above -O1.
6586         (picochip_reorg): Fixed a couple of build warnings.
6587
6588 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6589
6590         * configure.ac (plugin -rdynamic test): Log result.
6591         * configure: Regenerate.
6592         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
6593         (RDYNAMIC_SPEC): Define.
6594         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
6595
6596 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6597
6598         * configure.ac: Determine Sun ld version numbers.
6599         (comdat_group): Restrict GNU ld version checks to gld.
6600         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
6601         (enable_comdat): Support --enable-comdat.
6602         * configure: Regenerate.
6603         * doc/install.texi (Configuration): Document --enable-comdat.
6604
6605 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6606
6607         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
6608         * config/sol2-gld.h: ... here.
6609         * config.gcc (sparc*-*-solaris2*): Reflect this.
6610         (i[34567]86-*-solaris2*): Use it.
6611
6612 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
6613
6614         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
6615         setup_clocks_p.
6616         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
6617
6618 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6619
6620         PR 42965
6621         * diagnostic.c (diagnostic_initialize): Initialize
6622         some_warnings_are_errors.
6623         (diagnostic_finish): New.
6624         (diagnostic_action_after_output): Call it before exiting.
6625         (diagnostic_report_diagnostic): Do not print message here. Set
6626         some_warnings_are_errors.
6627         * diagnostic.h (diagnostic_context): Delete
6628         issue_warnings_are_errors_message. Add some_warnings_are_errors.
6629         (diagnostic_finish): Declare.
6630         * toplev.c (toplev_main): Call it before exit.
6631
6632 2010-04-09  Jason Merrill  <jason@redhat.com>
6633
6634         PR c++/42623
6635         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
6636         for incomplete type.
6637
6638         PR c++/41788
6639         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
6640         based on a warning flag.
6641
6642 2010-04-09  Richard Guenther  <rguenther@suse.de>
6643
6644         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
6645
6646 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
6647
6648         PR bootstrap/43684
6649         * varasm.c (default_assemble_visibility): Wrap vars that are
6650         set, but unused, by targets without GAS.
6651         * config/rs6000/rs6000.c (paired_emit_vector_compare):
6652         Remove set, but unused, vars.
6653         (rs6000_legitimize_tls_address): Likewise.
6654         (altivec_expand_dst_builtin): Likewise.
6655         * config/darwin.c (machopic_classify_symbol): Likewise.
6656         (machopic_indirection_name): Likewise.
6657
6658 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
6659
6660         * config/i386/i386.md (DWI): New mode iterator.
6661         (S): New mode attribute.
6662         (shift_operand): Ditto.
6663         (shift_immediate_operand): Ditto.
6664         (ashl_input_operand): Ditto.
6665         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
6666         using SDWIM mode iterator.
6667         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6668         pattern from *ashl{di,ti}3_1 and corresponding splitters using
6669         DWI mode iterator.
6670         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
6671         from corresponding peephole2 patterns.
6672         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
6673         and x86_64_shift_adj_1 using SWI48 mode iterator.
6674         (x86_shift<mode>_adj_2): Ditto.
6675         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
6676         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
6677         using SWI48 mode iterator.
6678         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
6679         *ashldi3_cmp_rex64 using SWI mode iterator.
6680         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
6681         *ashldi3_cconly_rex64 using SWI mode iterator.
6682         * config/i386/i386.c (ix86_split_ashl): Update for renamed
6683         x86_shift<mode>_adj_{1,2}.
6684         (ix86_split_ashr): Ditto.
6685         (ix86_split_lshr): Ditto.
6686
6687 2010-04-09  Richard Guenther  <rguenther@suse.de>
6688
6689         * target.h (builtin_conversion): Pass in input and output types.
6690         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
6691         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
6692         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
6693         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
6694
6695         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
6696         Handle AVX modes.
6697         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
6698
6699 2010-04-09  Richard Guenther  <rguenther@suse.de>
6700
6701         PR target/43152
6702         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
6703
6704 2010-04-09  Richard Guenther  <rguenther@suse.de>
6705
6706         * tree-vectorizer.h (struct _stmt_vec_info): Document
6707         that vectype is the type of the LHS.
6708         (supportable_widening_operation, supportable_narrowing_operation):
6709         Get both input and output vector types as arguments.
6710         (vect_is_simple_use_1): Declare.
6711         (get_same_sized_vectype): Likewise.
6712         * tree-vect-loop.c (vect_determine_vectorization_factor):
6713         Set STMT_VINFO_VECTYPE to the vector type of the def.
6714         (vectorizable_reduction): Adjust.
6715         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
6716         Adjust.  Specify the output vector type.
6717         (vect_pattern_recog_1): Adjust.
6718         * tree-vect-stmts.c (get_same_sized_vectype): New function.
6719         (vectorizable_call): Adjust.
6720         (vectorizable_conversion): Likewise.
6721         (vectorizable_operation): Likewise.
6722         (vectorizable_type_demotion): Likewise.
6723         (vectorizable_type_promotion): Likewise.
6724         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
6725         the def.
6726         (vect_is_simple_use_1): New function.
6727         (supportable_widening_operation): Get both input and output
6728         vector types.
6729         (supportable_narrowing_operation): Likewise.
6730         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
6731
6732 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
6733
6734         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
6735         __thiscall and _thiscall as predefined macros.
6736         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
6737         thiscall attribute handling.
6738         (ix86_comp_type_attributes): Likewise.
6739         (ix86_function_regparm): Likewise.
6740         (ix86_return_pops_args): Likewise.
6741         (init_cumulative_args): Likewise.
6742         (find_drap_reg): Likewise.
6743         (ix86_static_chain): Likewise.
6744         (x86_this_parameter): Likewise.
6745         (x86_output_mi_thunk): Likewise.
6746         (ix86_attribute_table): Add description for thiscall attribute.
6747         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
6748         * doc/extend.texi: Add documentation for thiscall.
6749
6750 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6751
6752         PR c++/28584
6753         * c.opt (Wint-to-pointer-cast): Available in C++.
6754         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
6755
6756 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
6757
6758         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
6759         * calls.c (expand_call): Pass the function type to aggregate_value_p.
6760         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
6761         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
6762         function type instead.  Reorder and simplify checks.
6763
6764         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
6765
6766 2010-04-08  Jing Yu  <jingyu@google.com>
6767             Zdenek Dvorak  <ook@ucw.cz>
6768
6769         PR tree-optimization/42720
6770         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
6771         loop unswitch conditions here from ...
6772         (tree_unswitch_single_loop): ... here.
6773
6774 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
6775
6776         * tree-if-conv.c: Fix comments and simplify logic.
6777
6778 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
6779
6780         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
6781         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
6782         (main_tree_if_conversion): Update call to tree_if_conversion.
6783
6784 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6785
6786         PR 42485
6787         * doc/invoke.texi (-b,-V): Delete.
6788         * doc/tm.texi: Do not mention -b.
6789         * gcc.c (display_help): Delete -b and -V.
6790         (process_command): Delete -b and -V.
6791         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
6792
6793 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
6794             Wolfgang Gellerich  <gellerich@de.ibm.com>
6795
6796         Implement target hook for loop unrolling
6797         * target.h (loop_unroll_adjust): Add a new target hook function.
6798         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
6799         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
6800         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
6801         (s390_loop_unroll_adjust): Implement the new target hook for s390.
6802         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
6803         target hook.
6804         (decide_unroll_stupid): Likewise.
6805
6806 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6807
6808         PR target/43643
6809         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
6810
6811 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6812
6813         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
6814         (Specific, *-*-solaris2*): Likewise.
6815         Don't prefer Sun as over GNU as.
6816
6817 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
6818
6819         * config/s390/s390.c (override_options): Adjust the z10 defaults
6820         for max-unroll-times, max-completely-peeled-insns
6821         and max-completely-peel-times.
6822
6823 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6824
6825         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
6826         instructions for z10.
6827         (s390_expand_setmem): Likewise.
6828         (s390_expand_cmpmem): Likewise.
6829
6830 2010-04-08  Richard Guenther  <rguenther@suse.de>
6831
6832         PR tree-optimization/43679
6833         * tree-ssa-pre.c (eliminate): Only propagate copies.
6834
6835 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
6836
6837         PR bootstrap/43681
6838         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
6839         set but not used variable warning.
6840
6841 2010-04-08  Wei Guozhi  <carrot@google.com>
6842
6843         PR target/41653
6844         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
6845         (arm_size_rtx_costs): Call the new function when optimized for size.
6846
6847 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
6848
6849         PR debug/43670
6850         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
6851         op0 is not a MEM, just return NULL instead of assertion
6852         failure.
6853         (discover_nonconstant_array_refs): Don't walk debug stmts.
6854
6855 2010-04-08  Doug Kwan  <dougkwan@google.com>
6856
6857         * configure.ac: Recognize gold and do not use its version number
6858         to test ld features.
6859         * configure: Regenerate.
6860
6861 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
6862
6863         PR middle-end/40815
6864         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
6865         (negate_value): Move code to push elements to broken_up_substracts ...
6866         (eliminate_plus_minus_pair): ... here.  Push operands that have no
6867         negative pair to plus_negates.
6868         (repropagate_negates, init_reassoc, fini_reassoc): Update.
6869
6870 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6871
6872         * doc/install.texi (Configuration): Move description of
6873         --enable-lto, --with-libelf*, --enable-gold from Java section to
6874         general section.
6875
6876         * doc/generic.texi (Working with declarations)
6877         (Function Properties, C and C++ Trees): Fix typos.
6878         * doc/sourcebuild.texi (Top Level): Likewise.
6879
6880 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
6881
6882         PR c/18624
6883         * tree.h (DECL_READ_P): Define.
6884         (struct tree_decl_common): Add decl_read_flag.
6885         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
6886         a set but not used warning.
6887         (merge_decls): Merge DECL_READ_P flag.
6888         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
6889         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
6890         * c-common.c (handle_used_attribute, handle_unused_attribute):
6891         Likewise.
6892         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
6893         New prototypes.
6894         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
6895         New functions.
6896         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
6897         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
6898         c_parser_binary_expression, c_parser_cast_expression,
6899         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
6900         Call default_function_array_read_conversion instead of
6901         default_function_array_conversion where needed.
6902         (c_parser_unary_expression, c_parser_conditional_expression,
6903         c_parser_postfix_expression_after_primary, c_parser_initelt):
6904         Likewise.  Call mark_exp_read where needed.
6905         (c_parser_statement_after_labels, c_parser_asm_operands,
6906         c_parser_typeof_specifier, c_parser_sizeof_expression,
6907         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
6908         where needed.
6909         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
6910         New.
6911         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
6912         (warn_unused_but_set_parameter): Default to warn_unused
6913         && extra_warnings.
6914         * doc/invoke.texi: Document -Wunused-but-set-variable and
6915         -Wunused-but-set-parameter.
6916
6917         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
6918         used count variable.
6919         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
6920         when operandN variables aren't used in the body of the expander
6921         or splitter.
6922         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
6923         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
6924         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
6925         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
6926         FOR_EACH_IMM_USE_ON_STMT): Likewise.
6927         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
6928         * tree.c (PROCESS_ARG): Likewise.
6929
6930 2010-04-07  Simon Baldwin  <simonb@google.com>
6931
6932         * diagnostic.h (diagnostic_override_option_index): New macro to
6933         set a diagnostic's option_index.
6934         * c-tree.h (c_cpp_error): Add warning reason argument.
6935         * opts.c (_warning_as_error_callback): New.
6936         (register_warning_as_error_callback): Store callback for
6937         warnings enabled via enable_warning_as_error.
6938         (enable_warning_as_error): Call callback, minor code tidy.
6939         * opts.h (register_warning_as_error_callback): Declare.
6940         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
6941         response to -Werror=.
6942         (c_common_init_options): Register warning_as_error_callback in opts.c.
6943         * common.opt: Add -Wno-cpp option.
6944         * c-common.c (struct reason_option_codes_t): Map cpp warning
6945         reason codes to gcc option indexes.
6946         * (c_option_controlling_cpp_error): New function, lookup the gcc
6947         option index for a cpp warning reason code.
6948         * (c_cpp_error): Add warning reason argument, call
6949         c_option_controlling_cpp_error for diagnostic_override_option_index.
6950         * doc/invoke.texi: Document -Wno-cpp.
6951
6952 2010-04-07  Richard Guenther  <rguenther@suse.de>
6953
6954         * ipa-reference.c (mark_load): Use get_base_address.
6955         (mark_store): Likewise.
6956
6957         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
6958         inserting GIMPLE_NOPs into the IL.
6959         * tree-ssa-structalias.c (get_constraint_for_component_ref):
6960         Explicitly strip handled components and indirect references.
6961
6962         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
6963         folding address expressions.
6964         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
6965         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
6966         operand_equal_p to compare decls.
6967         (ptr_deref_may_alias_decl_p): Likewise.
6968         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
6969         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
6970         Handle reversed comparison ops.
6971         * tree-sra.c (asm_visit_addr): Use get_base_address.
6972         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
6973         * ipa-reference.c (mark_address): Use get_base_address.
6974
6975 2010-04-07  Richard Guenther  <rguenther@suse.de>
6976
6977         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
6978         Propagate constants everywhere.
6979
6980 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
6981
6982         PR debug/43516
6983         * tree.c (MAX_INT_CACHED_PREC): Define.
6984         (nonstandard_integer_type_cache): New array.
6985         (build_nonstandard_integer_type): Cache results for precision
6986         <= MAX_INT_CACHED_PREC.
6987
6988 2010-04-07  Richard Guenther  <rguenther@suse.de>
6989
6990         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
6991         -fargument-noalias-global, -fargument-noalias-anything): Remove.
6992         * common.opt: Likewise.
6993         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
6994         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
6995         (nonoverlapping_memrefs_p): Likewise.
6996         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6997         * opts.c (common_handle_option): Handle OPT_fargument_alias,
6998         OPT_fargument_noalias, OPT_fargument_noalias_anything and
6999         OPT_fargument_noalias_global for backward compatibility.
7000
7001 2010-04-07  Richard Guenther  <rguenther@suse.de>
7002
7003         PR tree-optimization/43270
7004         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
7005         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
7006         * tree-ssa-pre.c (phi_translate_1): Adjust.
7007         (fully_constant_expression): Split out vn_reference handling to ...
7008         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
7009         Fold reads from constant strings.
7010         (vn_reference_lookup): Handle fully constant references.
7011         (vn_reference_lookup_pieces): Likewise.
7012         * Makefile.in (expmed.o-warn): Add -Wno-error.
7013
7014 2010-04-07  Martin Jambor  <mjambor@suse.cz>
7015
7016         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
7017
7018 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
7019
7020         PR driver/41594
7021         * gcc.c: Add -static-libstdc++ to list of recognized options.
7022
7023 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7024
7025         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
7026
7027 2010-04-07  Richard Guenther  <rguenther@suse.de>
7028
7029         PR middle-end/42617
7030         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
7031         bases build simple mem attributes to retain points-to information.
7032
7033 2010-04-07  Richard Guenther  <rguenther@suse.de>
7034
7035         PR middle-end/42617
7036         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
7037         preserve points-to related information.
7038
7039 2010-04-07  Richard Guenther  <rguenther@suse.de>
7040
7041         PR middle-end/42617
7042         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
7043         discard plain indirect references.
7044         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
7045         * tree.c (tree_nop_conversion): Likewise.
7046
7047 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
7048
7049         PR debug/43628
7050         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
7051
7052 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
7053
7054         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
7055         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
7056
7057 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
7058
7059         * tree-if-conv.c: Fix indentation and comments.
7060
7061 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
7062
7063         * tree-if-conv.c: Sort static functions in topological order.
7064
7065 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
7066
7067         * tree-if-conv.c: Fix indentation and comments.
7068
7069 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
7070
7071         PR middle-end/43519
7072         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
7073         lang_hooks.types.type_for_size instead of
7074         build_nonstandard_integer_type.
7075         When converting an unsigned type to signed, double its precision.
7076         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
7077         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
7078         (graphite_create_new_loop_guard): When ub + 1 wraps around,
7079         use lb <= ub.
7080
7081 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
7082
7083         PR middle-end/43519
7084         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
7085         POINTER_PLUS_EXPR for pointer types.
7086
7087 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
7088
7089         PR middle-end/43519
7090         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
7091         * graphite-clast-to-gimple.c: Include langhooks.h.
7092         (max_signed_precision_type): New.
7093         (max_precision_type): Takes two types as arguments.
7094         (precision_for_value): New.
7095         (precision_for_interval): New.
7096         (gcc_type_for_interval): New.
7097         (gcc_type_for_value): New.
7098         (gcc_type_for_clast_term): New.
7099         (gcc_type_for_clast_red): New.
7100         (gcc_type_for_clast_bin): New.
7101         (gcc_type_for_clast_expr): Split up into several functions.
7102         (gcc_type_for_clast_eq): Rewritten.
7103         (compute_bounds_for_level): New.
7104         (compute_type_for_level_1): New.
7105         (compute_type_for_level): New.
7106         (gcc_type_for_cloog_iv): Removed.
7107         (gcc_type_for_iv_of_clast_loop): Rewritten.
7108         (graphite_create_new_loop): Compute the lower and upper bound types
7109         with gcc_type_for_clast_expr.
7110         (graphite_create_new_loop_guard): Same.
7111         (find_cloog_iv_in_expr): Removed.
7112         (compute_cloog_iv_types_1): Removed.
7113         (compute_cloog_iv_types): Removed.
7114         (gloog): Do not call compute_cloog_iv_types.
7115         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
7116         GBB_CLOOG_IV_TYPES.
7117         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
7118         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
7119         (GBB_CLOOG_IV_TYPES): Removed.
7120
7121 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
7122
7123         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
7124         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
7125         (detect_commutative_reduction): Same.
7126
7127 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
7128
7129         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
7130         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
7131         argument.
7132         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
7133         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
7134         (rewrite_commutative_reductions_out_of_ssa): Same.
7135         * passes.c (execute_function_todo): Call verify_ssa for every pass
7136         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
7137         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
7138         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
7139         with an extra argument.
7140         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
7141         verify_ssa only when the extra argument is true.
7142         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
7143         with an extra argument.
7144         (tree_transform_and_unroll_loop): Same.
7145
7146 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
7147
7148         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
7149         for all the passes of the LNO having LOOP_CLOSED_SSA.
7150         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
7151         * tree-loop-distribution.c (pass_loop_distribution): Same.
7152         * tree-pass.h (TODO_verify_loops): Removed.
7153         * tree-ssa-loop.c (pass_tree_loop_init): Same.
7154         (pass_lim): Same.
7155         (pass_tree_unswitch): Same.
7156         (pass_predcom): Same.
7157         (pass_vectorize): Same.
7158         (pass_linear_transform): Same.
7159         (pass_graphite_transforms): Same.
7160         (pass_iv_canon): Same.
7161         (pass_complete_unroll): Same.
7162         (pass_complete_unrolli): Same.
7163         (pass_parallelize_loops): Same.
7164         (pass_loop_prefetch): Same.
7165         (pass_iv_optimize): Same.
7166
7167 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
7168
7169         PR middle-end/32824
7170         * passes.c (init_optimization_passes): Move pass_lim before
7171         pass_copy_prop and pass_dce_loop.
7172
7173 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
7174
7175         PR target/43667
7176         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
7177         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
7178         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
7179         MULTI_* defines for 4 argument vpermil2p* builtins.
7180
7181 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
7182
7183         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
7184         * config/i386/i386.c (x86_maybe_negate_const_int): New.
7185         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
7186         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
7187         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
7188         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
7189         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
7190         Use x86_maybe_negate_const_int to output insn mnemonic.
7191         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
7192         check from instruction predicate.  Update comments.
7193         * config/i386/sync.md (sync_add<mode>): Use
7194         x86_maybe_negate_const_int to output insn mnemonic.
7195
7196 2010-04-06  Jan Hubicka  <jh@suse.cz>
7197
7198         PR tree-optimization/42906
7199         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
7200         IGNORE_SELF argument.  Set visited_control_parents for fully
7201         processed BBs.
7202         (find_obviously_necessary_stmts): Update call of
7203         mark_control_dependent_edges_necessary.
7204         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
7205
7206 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
7207
7208         * config/i386/i386.md: Remove comment about 'e' and 'E'
7209         operand modifier.
7210
7211 2010-04-06  Richard Guenther  <rguenther@suse.de>
7212
7213         PR tree-optimization/43627
7214         * tree-vrp.c (extract_range_from_unary_expr): Widenings
7215         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
7216         not varying.
7217
7218 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
7219
7220         * BASE-VER: Change to 4.6.0.
7221
7222         PR target/43638
7223         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
7224         handling.
7225
7226 2010-04-06  Richard Guenther  <rguenther@suse.de>
7227
7228         PR middle-end/43661
7229         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
7230
7231 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7232
7233         * doc/invoke.texi (Optimize Options): Document that LTO
7234         won't remove object access purely due to incompatible
7235         declarations.
7236
7237 2010-04-04  Matthias Klose  <doko@ubuntu.com>
7238
7239         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
7240         Initialize variable.
7241
7242 2010-04-03  Richard Guenther  <rguenther@suse.de>
7243
7244         PR middle-end/42509
7245         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
7246         require a non-NULL MEM_OFFSET.
7247
7248 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
7249
7250         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
7251         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
7252         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
7253         config/alpha/predicates.md, config/arm/arm.md,
7254         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
7255         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
7256         config/darwin9.h, config/darwin.c, config/darwin.h,
7257         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
7258         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
7259         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
7260         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
7261         config/mips/mips.md, config/mn10300/mn10300.c,
7262         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
7263         config/rs6000/aix.h, config/rs6000/dfp.md,
7264         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
7265         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
7266         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
7267         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
7268         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
7269         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
7270         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
7271         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
7272         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
7273         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
7274         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
7275         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
7276         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
7277         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
7278         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
7279         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
7280         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
7281         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
7282         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
7283         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
7284         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
7285         opt-functions.awk, opth-gen.awk, params.def, passes.c,
7286         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
7287         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
7288         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
7289         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
7290         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
7291         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
7292         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
7293         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
7294         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
7295         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
7296         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
7297         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
7298         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
7299         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
7300
7301 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7302
7303         PR other/43620
7304         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
7305         * aclocal.m4: Regenerate.
7306
7307 2010-04-02  Richard Guenther  <rguenther@suse.de>
7308
7309         PR tree-optimization/43629
7310         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
7311         if we have seen a constant value.
7312
7313 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
7314
7315         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
7316
7317 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
7318
7319         PR target/43469
7320         * arm.c (legitimize_tls_address): Adjust call to
7321         gen_tls_load_dot_plus_four.
7322         (arm_note_pic_base): New function.
7323         (arm_cannot_copy_insn_p): Use it.
7324         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
7325         constraint.
7326
7327 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7328
7329         PR bootstrap/43531
7330
7331         Revert:
7332         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7333
7334         * Makefile.in ($(out_object_file)): Depend on
7335         gt-$(basename $(notdir $(out_file))).h.
7336
7337 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
7338
7339         * config.gcc (lm32-*-rtems*): Add t-lm32.
7340
7341 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
7342
7343         * config.gcc: Add lm32-*-rtems*.
7344         * config/lm32/rtems.h: New file.
7345
7346 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
7347
7348         PR target/42609
7349         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
7350
7351 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
7352
7353         * dwarf2out.c (output_compilation_unit_header): For
7354         -gdwarf-4 use version 4 instead of version 3.
7355         (output_line_info): For version 4 and above emit additional
7356         maximum ops per insn header field.
7357         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
7358
7359         * dwarf2out.c (is_c_family, is_java): Remove.
7360         (lower_bound_default): New function.
7361         (add_bound_info, gen_descr_array_type_die): Use it.
7362
7363 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
7364
7365         PR debug/43325
7366         * dwarf2out.c (gen_variable_die): Allow debug info for variable
7367         re-declaration when it happens in a function.
7368
7369 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
7370
7371         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
7372         (cgraph_remove_function_insertion_hook): Same.
7373         (cgraph_call_function_insertion_hooks): Same.
7374
7375 2010-04-01  Richard Guenther  <rguenther@suse.de>
7376
7377         PR middle-end/43614
7378         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
7379         and TREE_THIS_VOLATILE.
7380         (copy_ref_info): Likewise.
7381         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
7382         * tree.c (build6_stat): Ignore side-effects of all but arg5
7383         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
7384         TARGET_MEM_REF.
7385
7386 2010-04-01  Richard Guenther  <rguenther@suse.de>
7387
7388         PR tree-optimization/43607
7389         * ipa-type-escape.c (check_call): Do not access non-existing
7390         arguments.
7391
7392 2010-04-01  Richard Guenther  <rguenther@suse.de>
7393
7394         PR middle-end/43602
7395         Revert
7396         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
7397                     Jack Howarth <howarth@bromo.med.uc.edu>
7398
7399         * tree-profile.c (tree_init_ic_make_global_vars): Make static
7400         variables TLS.
7401
7402 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7403
7404         * doc/install.texi (Prerequisites): Document libelf usability on
7405         IRIX 5/6 and Solaris 2.
7406         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
7407         Update GNU as, GNU ld requirements.
7408         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
7409         Document Sun Studio compiler download.
7410         Update and simplify as, ld recommendations.
7411         (Specific, *-*-solaris2.7): Note obsoletion, removal.
7412
7413 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7414
7415         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
7416         with_tune_32 to pentium4.
7417
7418 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
7419
7420         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
7421
7422 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7423
7424         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
7425         obsoletion, removal.
7426         Update IDO URL.
7427         Document GNU as requirement.
7428         Update configure requirements.
7429         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
7430         Recomment IRIX 6.5.18+.
7431         Document IDF/IDL requirement.
7432         Document GNU as requirement.
7433         Document GNU ld bootstrap failure.
7434         Remove freeware.sgi.com reference.
7435
7436 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7437
7438         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
7439         UNIX V4.0, V5.0 obsoletion, removal.
7440         Remove --with-gc=simple reference.
7441         Update VM requirements during bootstrap.
7442         Remove -oldas bootstrap description.
7443         Update binutils reference.
7444         Remove comparison failure note.
7445
7446 2010-03-31  Richard Guenther  <rguenther@suse.de>
7447             Zdenek Dvorak  <ook@ucw.cz>
7448             Sebastian Pop  <sebastian.pop@amd.com>
7449
7450         PR middle-end/43464
7451         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
7452         with multiple arguments.
7453         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
7454
7455 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7456
7457         * graphite-dependences.c (print_pddr): Call print_pdr with an
7458         extra argument.
7459         * graphite-poly.c (debug_pdr): Add an extra argument for the
7460         verbosity level.
7461         (print_pdr): Same.
7462         (print_pbb_domain): Same.
7463         (print_pbb): Same.
7464         (print_scop_context): Same.
7465         (print_scop): Same.
7466         (print_cloog): Same.
7467         (debug_pbb_domain): Same.
7468         (debug_pbb): Same.
7469         (print_pdrs): Same.
7470         (debug_pdrs): Same.
7471         (debug_scop_context): Same.
7472         (debug_scop): Same.
7473         (debug_cloog): Same.
7474         (print_scop_params): Same.
7475         (debug_scop_params): Same.
7476         (print_iteration_domain): Same.
7477         (print_iteration_domains): Same.
7478         (debug_iteration_domain): Same.
7479         (debug_iteration_domains): Same.
7480         (print_scattering_function): Same.
7481         (print_scattering_functions): Same.
7482         (debug_scattering_function): Same.
7483         (debug_scattering_functions): Same.
7484         * graphite-poly.h (debug_pdr): Update declaration.
7485         (print_pdr): Same.
7486         (print_pbb_domain): Same.
7487         (print_pbb): Same.
7488         (print_scop_context): Same.
7489         (print_scop): Same.
7490         (print_cloog): Same.
7491         (debug_pbb_domain): Same.
7492         (debug_pbb): Same.
7493         (print_pdrs): Same.
7494         (debug_pdrs): Same.
7495         (debug_scop_context): Same.
7496         (debug_scop): Same.
7497         (debug_cloog): Same.
7498         (print_scop_params): Same.
7499         (debug_scop_params): Same.
7500         (print_iteration_domain): Same.
7501         (print_iteration_domains): Same.
7502         (debug_iteration_domain): Same.
7503         (debug_iteration_domains): Same.
7504         (print_scattering_function): Same.
7505         (print_scattering_functions): Same.
7506         (debug_scattering_function): Same.
7507         (debug_scattering_functions): Same.
7508
7509 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7510
7511         * graphite-poly.c (print_scattering_function_1): New.
7512         (print_scattering_function): Call it.
7513         (print_scop_params): Remove spaces at the end of lines.
7514         (print_cloog): New.
7515         (debug_cloog): New.
7516         * graphite-poly.h (print_cloog): Declared.
7517         (debug_cloog): Declared.
7518
7519 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7520
7521         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
7522         in loop->header.
7523         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
7524         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
7525         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
7526         to switch between adding the IV bump in loop->latch or in loop->header.
7527
7528 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7529
7530         * graphite-poly.c (print_scattering_function): Pretty print following
7531         the scoplib format.
7532         (print_pdr): Same.
7533         (print_pbb_domain): Same.
7534         (dump_gbb_cases): Same.
7535         (dump_gbb_conditions): Same.
7536         (print_pdrs): Same.
7537         (print_pbb): Same.
7538         (print_scop_params): Same.
7539         (print_scop_context): Same.
7540         (print_scop): Same.
7541         (print_pbb_body): New.
7542         (lst_indent_to): New.
7543         (print_lst): Start new lines with a #.
7544         * graphite-poly.h (pbb_bb): New.
7545         (pbb_index): Use pbb_bb.
7546         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
7547         disjuncts.
7548         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
7549
7550 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
7551
7552         * dwarf2out.c (size_of_die): For -gdwarf-4 use
7553         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
7554         and 0 instead of 1 for dw_val_class_flag.
7555         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
7556         dw_val_class_range_list, dw_val_class_loc_list,
7557         dw_val_class_lineptr and dw_val_class_macptr, use
7558         DW_FORM_flag_present for dw_val_class_flag and
7559         DW_FORM_exprloc for dw_val_class_loc.
7560         (output_die): For -gdwarf-4 print dw_val_class_loc
7561         size as uleb128 instead of 1 or 2 bytes and don't print
7562         anything for dw_val_class_flag.
7563
7564         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
7565         instead of cselib_lookup following by tweaking locs->setting_insn.
7566
7567         PR bootstrap/43596
7568         * cselib.c (cselib_process_insn): Clear cselib_current_insn
7569         even before returning from label, setjmp call or volatile asm
7570         handling.
7571
7572 2010-03-31  Richard Guenther  <rguenther@suse.de>
7573
7574         PR middle-end/43600
7575         * cgraphunit.c (cgraph_output_in_order): Do not allocate
7576         temporary data on stack.
7577
7578 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7579
7580         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
7581         (PUSHSECTION_ASM_OP): Remove.
7582         (POPSECTION_ASM_OP): Remove.
7583         (PUSHSECTION_FORMAT): Remove.
7584         * config/sol2.h (PUSHSECTION_FORMAT): Define.
7585         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
7586         * config/sol2.c (solaris_output_init_fini): Use it.
7587
7588 2010-03-31  Jie Zhang  <jie@codesourcery.com>
7589
7590         PR 43574
7591         * opt-functions.awk (var_type_struct): Use signed char type
7592         for simple variables.
7593
7594 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7595
7596         * config/sol2.c: Include output.h.
7597         (solaris_assemble_visibility): New function.
7598         * config/t-sol2 (sol2.o): Add output.h dependency.
7599         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
7600         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
7601         Redefine.
7602
7603 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
7604
7605         PR target/43580
7606         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
7607         V2SImode or XFmode on PRE_DEC.
7608
7609         PR debug/43557
7610         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
7611         BLKmode.
7612
7613 2010-03-31  Jie Zhang  <jie@codesourcery.com>
7614
7615         PR 43562
7616         * reload.h (caller_save_initialized_p): Declare.
7617         * toplev.c (backend_init_target): Don't call
7618         init_caller_save but set caller_save_initialized_p to false.
7619         * caller-save.c (caller_save_initialized_p): Define.
7620         (init_caller_save): Check caller_save_initialized_p.
7621         * ira.c (ira): Call init_caller_save if flag_caller_saves.
7622
7623 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7624
7625         PR target/39048
7626         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
7627         and soft-fp/t-softfp to tmake_file.
7628         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
7629         (LIBGCC2_TF_CEXT): Define.
7630         (TF_SIZE): Define.
7631
7632 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
7633
7634         PR debug/42977
7635         * cselib.c (n_useless_values): Document handling of debug locs.
7636         (n_useless_debug_values, n_debug_values): New variables.
7637         (new_elt_loc_list): Don't add to debug values, keep count.
7638         (promote_debug_loc): New.
7639         (cselib_reset_table): Zero new variables.
7640         (entry_and_rtx_equal_p): Promote debug locs.
7641         (discard_useless_locs): Increment n_useless_debug_values for
7642         debug values.
7643         (remove_useless_values): Adjust n_useless_values and n_debug_values
7644         with n_useless_debug_values.
7645         (add_mem_for_addr): Promote debug locs.
7646         (cselib_lookup_mem): Likewise.
7647         (cselib_lookup_addr): Renamed to...
7648         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
7649         (cselib_log_lookup): ... this.  Turn into...
7650         (cselib_lookup_addr): ... new wrapper.
7651         (cselib_lookup_from_insn): New.
7652         (cselib_invalidate_regno): Increment n_useless_debug_values for
7653         debug values.
7654         (cselib_invalidate_mem): Likewise.
7655         (cselib_process_insn): Take n_deleted and n_debug_values into
7656         account to guard remove_useless_value call.
7657         (cselib_finish): Zero n_useless_debug_values.
7658         * cselib.h (cselib_lookup_from_insn): Declare.
7659         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
7660         (sched_analyze_2): Likewise.
7661
7662 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
7663
7664         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
7665         functions.
7666         (adjust_mems): Replace narrowing SUBREG of expression containing
7667         just PLUS, MINUS, MULT and ASHIFT of registers and constants
7668         with operations in the narrower mode.
7669
7670         PR debug/43593
7671         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
7672         regs_invalidated_by_call instead all call_used_reg_set registers.
7673
7674 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
7675
7676         PR middle-end/43430
7677         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
7678         pointer comparisons with types_compatible_p.
7679         * tree-vect-stmts.c (vectorizable_call): Same.
7680         (vectorizable_condition): Same.
7681
7682 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7683
7684         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
7685         stack check if the mask would be zero.
7686
7687 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
7688             Jack Howarth <howarth@bromo.med.uc.edu>
7689
7690         * tree-profile.c (tree_init_ic_make_global_vars): Make static
7691         variables TLS.
7692
7693 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
7694
7695         PR other/25232
7696         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
7697         and __unordtf2.
7698         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
7699         Include ___unordxf2 and ___unordtf2.
7700         * config/i386/libgcc-glibc.ver: Do not define inheritance from
7701         GCC_4.4.0 here.
7702
7703 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
7704
7705         * config/lm32/t-lm32: New file.
7706         * config.gcc: Use the above file when targetting lm32.
7707
7708 2010-03-28  Duncan Sands  <baldrick@free.fr>
7709
7710         * Makefile.in (PLUGIN_HEADERS): Add except.h.
7711
7712 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
7713
7714         PR middle-end/43431
7715         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
7716         Improve vectorization cost model diagnostic.
7717
7718 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
7719
7720         PR middle-end/43436
7721         * tree-vect-data-refs.c (vect_analyze_data_refs): When
7722         compute_data_dependences_for_loop returns false, early exit
7723         and output an extra diagnostic for the failed data reference
7724         analysis.
7725
7726 2010-03-29  Richard Guenther  <rguenther@suse.de>
7727
7728         PR tree-optimization/43560
7729         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
7730         (can_sm_ref_p): Treat stores to readonly locations as trapping.
7731
7732 2010-03-29  Jie Zhang  <jie@codesourcery.com>
7733
7734         PR 43564
7735         * toplev.c (process_options): Set optimization_default_node
7736         and optimization_current_node.
7737         * opts.c (decode_options): Don't set optimization_default_node
7738         and optimization_current_node.
7739
7740 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
7741
7742         * config/rtems.h: Abandon -qrtems_debug.
7743
7744 2010-03-28  Jan Hubicka  <jh@suse.cz>
7745
7746         PR tree-optimization/43505
7747         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
7748         map should not be copied.
7749
7750 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7751
7752         PR middle-end/41674
7753         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
7754         cdtors, set DECL_PRESERVE_P.
7755         * ipa.c (cgraph_externally_visible_p): Return true if declaration
7756         should be preseved.
7757
7758 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
7759
7760         PR tree-optimization/43528
7761         * stor-layout.c (place_field): Check that constant fits into
7762         unsigned HWI when skipping calculation of MS bitfield layout.
7763
7764 2010-03-27  Jan Hubicka  <jh@suse.cz>
7765
7766         PR middle-end/43391
7767         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
7768         notice_global_symbol work.
7769
7770 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
7771
7772         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
7773         instead of dwarf2out_decl.
7774         (struct var_loc_node): Remove section_label field.
7775         (dwarf2out_function_decl): New function.
7776         (dwarf2out_var_location): Don't set section_label field.
7777         (dwarf2out_begin_function): Don't empty decl_loc_table here.
7778
7779 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
7780
7781         PR tree-optimization/43544
7782         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
7783         First argument for builtin vectorized function hook is now a
7784         tree to be able to distinguish between machine specific and
7785         standard builtins.
7786         * targhooks.c (default_builtin_vectorized_function): Ditto.
7787         * targhooks.h (default_builtin_vectorized_function): Ditto.
7788         * target.h (struct gcc_target): Ditto.
7789         * tree-vect-stmts.c (vectorizable_function): Ditto.
7790         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
7791         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
7792         Ditto.
7793
7794 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
7795
7796         PR c/43381
7797         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
7798         nested binding iff it is a FUNCTION_DECL.
7799         (store_parm_decls_newstyle): Pass nested=true to bind for
7800         FUNCTION_DECLs amongst parameters.
7801
7802 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
7803
7804         * var-tracking.c (vt_expand_loc_callback): Don't run
7805         cselib_expand_value_rtx_cb in dummy mode if
7806         cselib_dummy_expand_value_rtx_cb returned false.
7807
7808         * var-tracking.c (emit_note_insn_var_location): For one part
7809         notes with offset 0, don't add EXPR_LIST around the location.
7810         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
7811         add_location_or_const_value_attribute): Adjust for that change.
7812
7813         PR debug/43540
7814         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
7815         into first operand and location into second.
7816         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
7817         dw_cfi_oprnd_loc for DW_CFA_expression.
7818         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
7819         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
7820         assume first argument is regnum and second argument is location.
7821
7822 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
7823
7824         PR target/42113
7825         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
7826         of scratch register to DImode.  Split to DImode comparison operator.
7827         Use SImode subreg of scratch register in the multiplication.
7828         (*cmp_sadd_sidi): Ditto.
7829         (*cmp_ssub_si): Ditto.
7830         (*cmp_ssub_sidi): Ditto.
7831
7832 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
7833
7834         PR target/43524
7835         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
7836         Remove invalid assert and wrong comment.
7837
7838 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
7839
7840         PR debug/43516
7841         * flags.h (final_insns_dump_p): New extern.
7842         * final.c (final_insns_dump_p): New variable.
7843         (rest_of_clean_state): Set it before -fdump-final-insns=
7844         dumping, clear afterwards.
7845         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
7846         MEM_ALIAS_SET on MEMs.
7847
7848 2010-03-26  David S. Miller  <davem@davemloft.net>
7849
7850         * configure.ac: Fix sparc GOTDATA_OP bug check.
7851         * configure: Rebuild.
7852
7853 2010-03-26  Alan Modra  <amodra@gmail.com>
7854
7855         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
7856
7857 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7858
7859         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
7860         TLS_SECTION_ASM_FLAG.
7861
7862 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
7863
7864         PR bootstrap/43511
7865         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
7866         Clear first_function_block_is_cold.
7867
7868         PR c/43385
7869         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
7870         argument if the argument is truth_value_p.
7871
7872 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
7873
7874         * config/rs6000/constraints.md: Update copyright year for my changes.
7875
7876         PR target/43484
7877         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
7878         used in reg+reg addressing, swap registers.
7879
7880 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
7881
7882         PR debug/43293
7883         * target.h (struct gcc_target): Add code_end hook.
7884         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
7885         if not yet defined.
7886         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
7887         * toplev.c (compile_file): Call targetm.asm_out.code_end
7888         hook before unwind info/debug info output.
7889         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
7890         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
7891         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7892         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
7893         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7894         * config/i386/i386.c (ix86_file_end): Renamed to...
7895         (ix86_code_end): ... this.  Make static.  Don't call
7896         file_end_indicate_exec_stack.  Emit unwind info using
7897         final_start_function/final_end_function.
7898         (darwin_x86_file_end): Remove.
7899         (TARGET_ASM_CODE_END): Define.
7900         * config/i386/i386.h (TARGET_ASM_FILE_END,
7901         NEED_INDICATE_EXEC_STACK): Don't define.
7902         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
7903         (TARGET_ASM_FILE_END): Define to darwin_file_end.
7904         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
7905         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
7906
7907         PR target/43498
7908         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
7909         at the beginning and final_end_function at the end.
7910         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
7911
7912 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7913
7914         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
7915         and Sun as TLS syntax.
7916         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
7917         * configure: Regenerate.
7918         * config.in: Regenerate.
7919         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
7920         (default_elf_asm_named_section): Use it.
7921         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
7922         (i386_output_dwarf_dtprel): Likewise.
7923         (output_addr_const_extra): Likewise.
7924         (output_pic_addr_const): Lowercase @GOTTPOFF.
7925         (output_addr_const_extra): Likewise.
7926         (output_pic_addr_const): Lowercase @GOTNTPOFF.
7927         (output_addr_const_extra): Likewise.
7928         (output_pic_addr_const): Lowercase @INDNTPOFF.
7929         (output_addr_const_extra): Likewise.
7930         (output_pic_addr_const): Lowercase @NTPOFF.
7931         (output_addr_const_extra): Likewise.
7932         (output_pic_addr_const): Lowercase @TPOFF.
7933         (output_addr_const_extra): Likewise.
7934         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
7935         (*tls_global_dynamic_64): Likewise.
7936         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
7937         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
7938
7939         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
7940         (ASM_OUTPUT_TLS_COMMON): Use it.
7941         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
7942
7943         PR target/38118
7944         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
7945         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
7946         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
7947         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
7948         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7949         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
7950
7951 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7952
7953         * config/i386/i386.c (override_options): Don't accept
7954         -mtls-dialect=sun any longer.
7955         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
7956         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
7957         (*tls_local_dynamic_base_32_sun): Likewise.
7958         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7959
7960 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
7961
7962         PR debug/43508
7963         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
7964         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
7965
7966         PR debug/43479
7967         * ira.c (adjust_cleared_regs): New function.
7968         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
7969
7970         PR debug/19192
7971         PR debug/43479
7972         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
7973         from gimple_block.
7974         * expr.c (expand_expr_real): Restore previous
7975         curr_insn_source_location and curr_insn_block after
7976         expand_expr_real_1 call.
7977         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
7978         instead of expand_expr_real_1.
7979
7980 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
7981
7982         PR rtl-optimization/43413
7983         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
7984         hard regs too.
7985
7986 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
7987
7988         PR target/43348
7989         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
7990         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
7991
7992 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
7993
7994         * config/i386/i386.c (ix86_target_string): Add -mfma.
7995         Fix a typo in comment.
7996
7997 2010-03-22  Mike Stump  <mikestump@comcast.net>
7998
7999         PR target/23071
8000         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
8001         Don't overly align based upon packed packed fields.
8002
8003 2010-03-22  Jason Merrill  <jason@redhat.com>
8004
8005         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
8006         Use () rather than [], and move before the element type.
8007
8008 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8009
8010         * doc/configfiles.texi (Configuration Files): Removed
8011         fixinc/Makefile*, intl/Makefile.*.
8012         * doc/makefile.texi: Fixed markup. Abstract from version
8013         control system used.
8014         (Makefile): Removed obsolete gcc/java/parse.y example.
8015         * doc/sourcebuild.texi: Likewise.
8016         (Top Level): Added config, gnattools, libdecnumber, libgcc,
8017         libgomp, libssp.  Removed fastjar.
8018         (Miscellaneous Docs): Clarify location.
8019         Added COPYING3, COPYING3.LIB.
8020         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
8021
8022 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8023
8024         PR target/38085
8025         * config/i386/i386.c (x86_function_profiler)
8026         [!NO_PROFILE_COUNTERS]: Fix typo.
8027         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
8028         instead of callq.
8029
8030 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
8031             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8032
8033         * doc/sourcebuild.texi (Test Directives): Split into six
8034         subsections, with most of the current text in new subsections
8035         Directives, Selectors, and Final Actions.
8036         (Directives): Split list of test directives into multiple
8037         subsubsections.
8038         (Selectors): Describe use and syntax of selectors.
8039         (Effective-Target Keywords): Describe all existing keywords.
8040         (Add Options): Describe features for dg-add-options.
8041         (Require Support): Describe variants of dg-require-support.
8042         (Final Actions): Describe commands to use in dg-final.
8043
8044 2010-03-22  Michael Matz  <matz@suse.de>
8045
8046         PR middle-end/43475
8047         * recog.c (validate_replace_rtx_group): Replace also in
8048         REG_EQUAL and REG_EQUIV notes.
8049
8050 2010-03-22  Richard Guenther  <rguenther@suse.de>
8051
8052         PR tree-optimization/43390
8053         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
8054         sure vector extracts are type correct.
8055
8056 2010-03-22  Richard Guenther  <rguenther@suse.de>
8057
8058         PR middle-end/40106
8059         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
8060         x * sqrt (x) even when optimizing for size if the target
8061         has native support for sqrt.
8062
8063 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
8064
8065         * varasm.c (make_decl_rtl_for_debug): Also clear
8066         flag_mudflap for the duration of make_decl_rtl call.
8067
8068         PR debug/43443
8069         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
8070         locs from preserved VALUEs.
8071
8072 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8073
8074         PR middle-end/42718
8075         * pa.md (movmemsi): Set align to one if zero.
8076         (movmemdi): Likewise.
8077
8078 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
8079
8080         PR target/42321
8081         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
8082         with their corresponding prologue pushes.
8083
8084 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
8085
8086         PR target/43156
8087         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
8088         at the begining or end.
8089         (spu_expand_epilogue): Likewise.
8090
8091 2010-03-20  Richard Guenther  <rguenther@suse.de>
8092
8093         PR rtl-optimization/43438
8094         * combine.c (make_extraction): Properly zero-/sign-extend an
8095         extraction of the low part of a CONST_INT.  Also handle
8096         CONST_DOUBLE.
8097
8098 2010-03-19  Mike Stump  <mikestump@comcast.net>
8099
8100         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
8101         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
8102         (override_options): Use SUBTARGET32_DEFAULT_CPU.
8103
8104 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
8105
8106         PR c/43211
8107         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
8108         an error.
8109
8110 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
8111
8112         PR rtl-optimization/42258
8113         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
8114         use that may match DEF.
8115
8116         PR target/40697
8117         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
8118         the cost of loading the constant rather than assuming
8119         COSTS_N_INSNS (1).
8120         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
8121         outer code is AND, do the same tests as the andsi3 expander and
8122         return COSTS_N_INSNS (1) if and is cheap.
8123
8124         * optabs.c (avoid_expensive_constant): Fix formatting.
8125
8126 2010-03-19  Michael Matz  <matz@suse.de>
8127
8128         PR c++/43116
8129         * attribs.c (decl_attributes): When rebuilding a function pointer
8130         type use the same qualifiers as the original pointer type.
8131
8132 2010-03-19  Martin Jambor  <mjambor@suse.cz>
8133
8134         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
8135         and is_gimple_ip_invariant_address.
8136
8137 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8138
8139         Revert
8140         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8141
8142         * config/arm/arm.c (arm_override_options): Turn off
8143         flag_dwarf2_cfi_asm for AAPCS variants.
8144
8145 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8146
8147         PR target/43399
8148         * config/arm/arm.c (emit_multi_reg_push): Update comments.
8149         Use PRE_MODIFY instead of PRE_DEC.
8150         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
8151         (vfp_emit_fstmd): Likewise.
8152
8153 2010-03-19  Michael Matz  <matz@suse.de>
8154
8155         PR target/43305
8156         * builtins.c (expand_builtin_interclass_mathfn,
8157         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
8158         if that fails.
8159
8160 2010-03-19  Richard Guenther  <rguenther@suse.de>
8161
8162         PR tree-optimization/43415
8163         * tree-ssa-pre.c (phi_translate): Split out worker to ...
8164         (phi_translate_1): ... this.
8165         (phi_translate): Move all caching here.  Cache all NARY
8166         and REFERENCE translations.
8167
8168 2010-03-19  David S. Miller  <davem@davemloft.net>
8169
8170         With help from Eric Botcazou.
8171         * config/sparc/sparc.c: Include dwarf2out.h.
8172         (emit_pic_helper): Delete.
8173         (pic_helper_symbol_name): Delete.
8174         (pic_helper_emitted_p): Delete.
8175         (pic_helper_needed): New.
8176         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
8177         (get_pc_thunk_name): New.
8178         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
8179         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
8180         Set pic_helper_needed to true.  Don't call emit_pic_helper.
8181         (sparc_expand_prologue): Update load_pic_register call.
8182         (sparc_output_mi_thunk): Likewise.
8183         (sparc_file_end): Emit a hidden comdat symbol for the PIC
8184         thunk if possible.  Output CFI information as needed.
8185
8186 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
8187             Jack Howarth <howarth@bromo.med.uc.edu>
8188
8189         PR target/36399
8190         * config/i386/i386.h: Fix ABI on darwin x86-32.
8191
8192 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
8193
8194         * tree.h: Declare make_decl_rtl_for_debug.
8195         * varasm.c (make_decl_rtl_for_debug): New.
8196         * dwarf2out.c (rtl_for_decl_location): Call it.
8197         * cfgexpand.c (expand_debug_expr): Call it.
8198
8199 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
8200
8201         PR bootstrap/43399
8202         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
8203         mem_mode.
8204
8205         PR bootstrap/43403
8206         * var-tracking.c (vt_init_cfa_base): Do nothing if
8207         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
8208
8209 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
8210
8211         PR debug/42873
8212         * var-tracking.c (canonicalize_vars_star): New.
8213         (dataflow_post_merge_adjust): Use it.
8214
8215 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
8216
8217         PR debug/43058
8218         * var-tracking.c (non_suitable_const): New function.
8219         (add_uses): For DEBUG_INSNs with constants, don't record any
8220         value, instead just the constant value itself.
8221         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
8222         is not VAR_LOC_UNKNOWN_P, set var to the constant.
8223         (emit_notes_in_bb): Likewise.
8224         (emit_note_insn_var_location): For onepart variables if
8225         cur_loc is a VOIDmode constant, use DECL_MODE.
8226
8227 2010-03-18  Martin Jambor  <mjambor@suse.cz>
8228
8229         PR middle-end/42450
8230         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
8231         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
8232         all non-clones.  Moved call redirection...
8233         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
8234         (cgraph_materialize_all_clones): Dispose of all
8235         combined_args_to_skip bitmaps.
8236         (verify_cgraph_node): Do not check for edges pointing to wrong
8237         nodes in inline clones.
8238         * tree-inline.c (copy_bb): Call
8239         cgraph_redirect_edge_call_stmt_to_callee.
8240         * ipa.c (cgraph_remove_unreachable_nodes): Call
8241         cgraph_node_remove_callees even when there are used clones.
8242
8243 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
8244
8245         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
8246
8247 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
8248
8249         PR target/43383
8250         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
8251         for 32bit.
8252
8253 2010-03-18  Michael Matz  <matz@suse.de>
8254
8255         PR middle-end/43419
8256         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
8257         into sqrt(x) if we need to preserve signed zeros.
8258
8259 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
8260             Eric Botcazou  <ebotcazou@adacore.com>
8261
8262         PR rtl-optimization/43360
8263         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
8264         note if we don't know its invariant status.
8265
8266 2010-03-18  Michael Matz  <matz@suse.de>
8267
8268         PR tree-optimization/43402
8269         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
8270         PHI chains of ssa names registered for update.
8271
8272 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
8273
8274         PR target/42427
8275         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
8276         non-offsettable and pre_modify update addressing.
8277         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
8278         and "2" alternatives "#".
8279         (*movdd_softfloat32): Make all alternatives "#";
8280         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
8281         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
8282         (*movdf_softfloat32): Make all alternatives "#";
8283         (movdi): Use the new DIFD mode iterator to create a common splitter
8284         for movdi, movdf and movdd patterns.
8285
8286 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
8287
8288         * common.opt (dumpdir): Remove redundant tab.
8289
8290 2010-03-17  Martin Jambor  <mjambor@suse.cz>
8291
8292         PR tree-optimization/43347
8293         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
8294         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
8295
8296 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
8297
8298         PR rtl-optimization/42216
8299         * regrename.c (create_new_chain): New function, broken out from...
8300         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
8301         appending a use to an empty chain.
8302         (build_def_use): Remove previous changes that convert OP_INOUT to
8303         OP_OUT operands; instead detect the case where an OP_INOUT operand
8304         uses a previously untracked register and create an empty chain for it.
8305
8306 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8307
8308         * doc/extend.texi (Function Attributes): Rewrite unfinished
8309         sentence in ms_abi documentation.
8310
8311 2010-03-17  Alan Modra  <amodra@gmail.com>
8312
8313         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
8314         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
8315         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
8316         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
8317
8318 2010-03-16  Richard Henderson  <rth@redhat.com>
8319
8320         PR middle-end/43365
8321         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
8322         (lower_try_finally): Save and restore eh_seq around the expansion
8323         of the try-finally.
8324
8325 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
8326
8327         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
8328         statements before splitting block.
8329
8330 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8331
8332         * doc/sourcebuild.texi (Testsuites): Fix markup.
8333         Use pathnames relative to gcc/testsuite.
8334         (Test Directives): Move description of how timeout is determined.
8335         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
8336         (C Tests): Correct gcc.misc-tests directory.
8337         Framework tests now live in gcc.test-framework.
8338
8339 2010-03-16  Richard Guenther  <rguenther@suse.de>
8340
8341         PR middle-end/43379
8342         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
8343         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
8344
8345 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
8346             Alexandre Oliva  <aoliva@redhat.com>
8347
8348         PR tree-optimization/42917
8349         * lambda-code.c (remove_iv): Skip debug statements.
8350         (lambda_loopnest_to_gcc_loopnest): Likewise.
8351         (not_interesting_stmt): Debug statements are not interesting.
8352
8353 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
8354
8355         PR debug/43051
8356         PR debug/43092
8357         * cselib.c (cselib_preserve_constants,
8358         cfa_base_preserved_val): New static variables.
8359         (preserve_only_constants): New function.
8360         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
8361         clear its REG_VALUES.  If cselib_preserve_constants, don't
8362         empty the whole hash table, but preserve there VALUEs with constants,
8363         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
8364         (cselib_preserve_cfa_base_value): New function.
8365         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
8366         (cselib_init): Change argument to int bitfield.  Set
8367         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
8368         is in it.
8369         (cselib_finish): Clear cselib_preserve_constants and
8370         cfa_base_preserved_val.
8371         * cselib.h (enum cselib_record_what): New enum.
8372         (cselib_init): Change argument to int.
8373         (cselib_preserve_cfa_base_value): New prototype.
8374         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
8375         * dse.c (dse_step1): Likewise.
8376         * cfgcleanup.c (thread_jump): Likewise.
8377         * sched-deps.c (sched_analyze): Likewise.
8378         * gcse.c (local_cprop_pass): Likewise.
8379         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
8380         If FN is non-NULL, call the callback always and whenever it returns
8381         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
8382         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
8383         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
8384         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
8385         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
8386         * var-tracking.c: Include recog.h.
8387         (bb_stack_adjust_offset): Remove.
8388         (vt_stack_adjustments): Don't call it, instead just gather the
8389         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
8390         (adjust_stack_reference): Remove.
8391         (compute_cfa_pointer): New function.
8392         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
8393         (struct adjust_mem_data): New type.
8394         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
8395         functions.
8396         (get_address_mode): New function.
8397         (replace_expr_with_values): Use it.
8398         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
8399         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
8400         (adjust_sets): Remove.
8401         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
8402         Use get_address_mode.
8403         (get_adjusted_src): Remove.
8404         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
8405         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
8406         (add_with_sets): Don't call adjust_sets.
8407         (fp_setter, vt_init_cfa_base): New functions.
8408         (vt_initialize): Change return type to bool.  Move most of pool etc.
8409         initialization to the beginning of the function from end.  Pass
8410         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
8411         If !frame_pointer_needed, call vt_stack_adjustment before mos
8412         vector is filled, call vt_init_cfa_base if argp/framep has been
8413         eliminated to sp.  If frame_pointer_needed and argp/framep has
8414         been eliminated to hard frame pointer, set
8415         hard_frame_pointer_adjustment and call vt_init_cfa_base after
8416         encountering fp setter in the prologue.  For MO_ADJUST, call
8417         log_op_type before pusing the op into mos vector, not afterwards.
8418         Call adjust_insn before cselib_process_insn/add_with_sets,
8419         call cancel_changes (0) afterwards.
8420         (variable_tracking_main_1): Adjust for vt_initialize calling
8421         vt_stack_adjustments and returning whether it succeeded or not.
8422
8423 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
8424
8425         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
8426         debug statements.
8427
8428 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
8429
8430         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
8431         has been set.
8432         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
8433         drap_reg has not been set.
8434
8435 2010-03-15  Michael Matz  <matz@suse.de>
8436
8437         PR middle-end/43300
8438         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
8439         use it to expand block copies.
8440         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
8441         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
8442         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
8443
8444 2010-03-15  Richard Guenther  <rguenther@suse.de>
8445
8446         PR tree-optimization/43367
8447         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
8448         elimination check.
8449
8450 2010-03-15  Richard Guenther  <rguenther@suse.de>
8451
8452         PR tree-optimization/43317
8453         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
8454
8455 2010-03-15  Martin Jambor  <mjambor@suse.cz>
8456
8457         PR tree-optimization/43141
8458         * tree-sra.c (create_abstract_origin): New function.
8459         (modify_function): Call create_abstract_origin.
8460
8461 2010-03-15  Chris Demetriou  <cgd@google.com>
8462
8463         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
8464         wasn't copied.
8465
8466 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8467
8468         PR middle-end/43354
8469         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
8470         call insert_out_of_ssa_copy for default definitions.
8471
8472 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8473
8474         * graphite-clast-to-gimple.c (my_long_long): Defined.
8475         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
8476         * graphite-sese-to-poly.c (my_long_long): Defined.
8477         (scop_ivs_can_be_represented): Use it.
8478
8479 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8480
8481         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
8482         graphite-max-bbs-per-function, and loop-block-tile-size.
8483         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
8484         with "maximum".
8485         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
8486
8487 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8488
8489         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
8490         forward declaration.
8491         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
8492         (add_upper_bounds_from_estimated_nit): New.
8493         (build_loop_iteration_domains): Use it.
8494
8495 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8496
8497         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
8498
8499 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8500
8501         PR middle-end/43306
8502         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
8503         should be an INTEGER_CST.  Also handle CASE_CONVERT.
8504
8505 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8506
8507         * graphite.c (graphite_initialize): To bound the number of bbs per
8508         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
8509         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
8510         * doc/invoke.texi: Document it.
8511
8512 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8513
8514         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
8515         * graphite-sese-to-poly.h (build_poly_scop): Same.
8516
8517 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8518
8519         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
8520         the number of parameters in the scop.  Use as an upper bound
8521         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
8522         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
8523         * doc/invoke.texi: Document it.
8524
8525 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
8526
8527         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
8528         * doc/c-tree.texi: Remove.
8529         * doc/generic.texi: Merge c-tree.texi here.
8530         * doc/gccint.texi (Trees): Remove menu entry.
8531         (c-tree.texi): Remove @include.
8532         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
8533         * doc/languages.texi (Reading RTL): Ditto.
8534
8535 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
8536
8537         PR target/42869
8538         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
8539
8540 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
8541
8542         PR middle-end/42431
8543         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
8544         code added to work around reload clobbering CONST insns.
8545
8546 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
8547
8548         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
8549         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
8550         (cselib_preserve_only_values): Remove retain argument, don't
8551         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
8552         * cselib.h (cselib_preserve_only_values): Remove retain argument.
8553         * var-tracking.c (micro_operation): Move insn field before union.
8554         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
8555         (struct variable_tracking_info_def): Remove n_mos field, change
8556         mos into a vector of micro_operations.
8557         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
8558         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
8559         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
8560         changing into a vector.
8561         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
8562         come before all other uops generated by add_stores.
8563         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
8564         argument removal.
8565         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
8566         a vector.  Run just one pass over the bbs instead of separate counting
8567         and computation phase.
8568         (vt_finalize): Free VTI (bb)->mos vector instead of array.
8569
8570         PR debug/43329
8571         * tree-inline.c (remap_decls): Put old_var rather than origin_var
8572         into *nonlocalized_list vector.
8573         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
8574         even if origin is non-NULL.
8575         (gen_variable_die): Likewise.
8576         (process_scope_var): Don't change origin.
8577         (gen_decl_die): Likewise.
8578         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
8579         before adding new edges instead of after it, fix moving over
8580         debug stmts.
8581
8582 2010-03-11  David S. Miller  <davem@davemloft.net>
8583
8584         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
8585         of four.
8586         * configure: Rebuild.
8587
8588 2010-03-11  Martin Jambor  <mjambor@suse.cz>
8589
8590         PR tree-optimization/43257
8591         * tree.c (assign_assembler_name_if_neeeded): New function.
8592         (free_lang_data_in_cgraph): Assembler name assignment moved to the
8593         above new function.
8594         * tree.h (assign_assembler_name_if_neeeded): Declare.
8595         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
8596         the function if needed.
8597
8598 2010-03-11  Chris Demetriou  <cgd@google.com>
8599
8600         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
8601         include/stdint-gcc.h, and include/stdint.h world-readable.
8602
8603 2010-03-11  Richard Guenther  <rguenther@suse.de>
8604
8605         PR tree-optimization/43255
8606         * tree-vrp.c (process_assert_insertions_for): Do not insert
8607         asserts for trivial conditions.
8608
8609 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8610
8611         PR tree-optimization/43280
8612         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
8613         generation.  Move calculation of size out of the if branch.
8614         (find_bswap): Modify compare number generation.
8615
8616 2010-03-11  Richard Guenther  <rguenther@suse.de>
8617
8618         PR lto/43200
8619         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
8620         (input_gimple_stmt): Fixup handled component types during
8621         operand read.  Also fix up decls in ADDR_EXPRs.
8622
8623 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
8624
8625         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
8626         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
8627
8628 2010-03-10  Jan Hubicka  <jh@suse.cz>
8629
8630         PR c/43288
8631         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
8632         * varasm.c (get_variable_section): Don't do that here...
8633         (make_decl_rtl): ... and here.
8634         (do_assemble_alias): Produce decl RTL.
8635         (assemble_alias): Likewise.
8636
8637 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
8638
8639         PR debug/43290
8640         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
8641         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
8642         of fde->vdrap_reg.
8643         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
8644         (based_loc_descr): Only express drap or vdrap regno based expressions
8645         using DW_OP_fbreg when not optimizing.
8646         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
8647         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
8648         REG_CFA_SET_VDRAP note.
8649
8650 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
8651
8652         PR tree-optimization/43236
8653         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
8654         error in calculation of base address in reverse iteration case.
8655         (generate_builtin): Take number of latch executions if the statement
8656         is in the latch.
8657
8658 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
8659
8660         PR middle-end/42859
8661         * tree-eh.c: Include pointer-set.h.
8662         (lower_eh_dispatch): Filter out duplicate case labels and
8663         remove the unneeded edge when the label is unused.  Return
8664         true when some edges are removed.
8665         (execute_lower_eh_dispatch): When any lowering resulted in
8666         removing an edge, also delete unreachable blocks.
8667
8668 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
8669
8670         PR bootstrap/43287
8671         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
8672         UNSPEC_MACHOPIC_OFFSET.
8673
8674 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
8675
8676         PR target/43294
8677         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
8678         (m68k_delegitimize_address): New function.
8679
8680 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
8681
8682         PR debug/43299
8683         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
8684
8685         PR debug/43299
8686         * var-tracking.c (adjust_sets): New function.
8687         (count_with_sets, add_with_sets): Use it.
8688         (get_adjusted_src): New inline function.
8689         (add_stores): Use it.
8690
8691         PR debug/43304
8692         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
8693         call cselib_dummy_expand_value_rtx_cb instead of
8694         cselib_expand_value_rtx_cb.
8695
8696         PR debug/43293
8697         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
8698         * config/i386/i386.c: Include debug.h and dwarf2out.h.
8699         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
8700         and .cfi_endproc around the pic thunks.
8701         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
8702         all queued unwind info register saves are saved before the call.
8703         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
8704         considered as sp-=4 for unwind info and the pop as sp+=4 which
8705         also clobbers dest, but doesn't actually restore it.
8706
8707         PR debug/43290
8708         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
8709         RTX_FRAME_RELATED_P.
8710
8711 2010-03-09  Jie Zhang  <jie@codesourcery.com>
8712
8713         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
8714         whitespaces in output template.
8715
8716 2010-03-09  Jie Zhang  <jie@codesourcery.com>
8717
8718         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
8719         out array boundary.
8720
8721 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
8722
8723         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
8724         builtins.exp in a separate job.
8725
8726 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8727
8728         * graphite-sese-to-poly.c (add_param_constraints): Use
8729         lower_bound_in_type and upper_bound_in_type.
8730
8731 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8732
8733         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
8734         instead of unsigned_type_node.
8735
8736 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8737             Reza Yazdani  <reza.yazdani@amd.com>
8738
8739         PR middle-end/43065
8740         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
8741         on pointer type parameters.
8742
8743 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
8744
8745         PR middle-end/42644
8746         PR middle-end/42130
8747         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
8748         handle conversions from pointer to integers.
8749         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
8750         induction variable, to be able to work with code generated by CLooG.
8751         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
8752         (build_poly_scop): Bail out if we cannot codegen a loop.
8753
8754 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
8755
8756         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
8757         code generation with gloog_error.
8758
8759 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8760
8761         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
8762         Call fold_convert on all the returned values.
8763         (expand_scalar_variables_expr): Pass to
8764         expand_scalar_variables_ssa_name the type of the resulting expression.
8765
8766 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8767
8768         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
8769         ppl_min_for_le_pointset.
8770         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
8771         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
8772
8773 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8774
8775         * graphite-dependences.c (map_into_dep_poly): Removed.
8776         (dependence_polyhedron_1): Use combine_context_id_scat.
8777
8778 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8779
8780         * graphite-poly.h (struct poly_scattering): Add layout documentation.
8781         (struct poly_bb): Same.
8782         (combine_context_id_scat): New.
8783
8784 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8785
8786         PR middle-end/42326
8787         * sese.c (name_defined_in_loop_p): Return false for default
8788         definitions.
8789
8790 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8791
8792         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
8793         and clean up the logic.
8794
8795 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8796
8797         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
8798         early return.
8799
8800 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
8801
8802         * var-tracking.c (remove_cselib_value_chains): Define only for
8803         ENABLE_CHECKING.
8804         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
8805         delete_slot_part, emit_notes_for_differences_1): Don't call
8806         remove_cselib_value_chains here.
8807         (set_slot_part, emit_notes_for_differences_2): Don't call
8808         add_cselib_value_chains here.
8809         (preserved_values): New vector.
8810         (preserve_value): New function.
8811         (add_uses, add_stores, vt_add_function_parameters): Use it
8812         instead of cselib_preserve_value.
8813         (changed_values_stack): New vector.
8814         (check_changed_vars_0): New function.
8815         (check_changed_vars_1, check_changed_vars_2): Use it.
8816         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
8817         changed_values_stack VALUEs.
8818         (vt_emit_notes): For all preserved_values call
8819         add_cselib_value_chains.  If ENABLE_CHECKING call
8820         remove_cselib_value_chains before verifying value_chains is empty.
8821         Initialize and free changed_values_stack.
8822         (vt_initialize): Initialize preserved_values.
8823         (vt_finalize): Free preserved_values.
8824
8825 2010-03-08  Richard Guenther  <rguenther@suse.de>
8826
8827         PR tree-optimization/43269
8828         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
8829         region detection.
8830
8831 2010-03-08  Martin Jambor  <mjambor@suse.cz>
8832
8833         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
8834         (ipa_is_param_called): Removed.
8835         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
8836         (ipa_print_node_params): Do not print the called flag.
8837         (ipa_write_node_info): Do not stream the called flag.
8838         (ipa_read_node_info): Likewise.
8839
8840 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
8841
8842         PR debug/43176
8843         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
8844         * cselib.c (struct expand_value_data): Add dummy field.
8845         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
8846         dummy to false.
8847         (cselib_dummy_expand_value_rtx_cb): New function.
8848         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
8849         any rtl.
8850         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
8851         * var-tracking.c: Include pointer-set.h.
8852         (variable): Change n_var_parts to char from int.  Add
8853         cur_loc_changed and in_changed_variables fields.
8854         (variable_canonicalize): Remove.
8855         (shared_var_p): New inline function.
8856         (unshare_variable): Maintain cur_loc_changed and
8857         in_changed_variables fields.  If var was in changed_variables,
8858         replace it there with new_var.  Just copy cur_loc instead of
8859         resetting it to something else.
8860         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
8861         (dataflow_set_union): Don't call variable_canonicalize.
8862         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
8863         of their DEBUG_EXPR_TREE_DECLs.
8864         (canonicalize_loc_order_check): Verify that cur_loc is NULL
8865         and in_changed_variables and cur_loc_changed is false.
8866         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
8867         and cur_loc_changed.  Don't update cur_loc here.
8868         (variable_merge_over_src): Don't call variable_canonicalize.
8869         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
8870         removing loc that is equal to cur_loc, clear cur_loc,
8871         set cur_loc_changed and ensure variable_was_changed is called.
8872         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
8873         compare pointers in cur_loc check, if it is equal to loc,
8874         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
8875         (variable_different_p): Remove compare_current_location argument,
8876         don't compare cur_loc.
8877         (dataflow_set_different_1): Adjust variable_different_p caller.
8878         (variable_was_changed): If dv had some var in changed_variables
8879         already, reset in_changed_variables flag for it and propagate
8880         cur_loc_changed over to the new variable.  On empty var
8881         always set cur_loc_changed.  Set in_changed_variables on whatever
8882         var is added to changed_variables.
8883         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
8884         Use shared_var_p.  When removing loc that is equal to cur_loc,
8885         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
8886         end, don't set it to something else, just call variable_was_changed.
8887         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
8888         loc being removed, clear cur_loc and set cur_loc_changed.
8889         Set cur_loc_changed if all locations have been removed.
8890         (struct expand_loc_callback_data): New type.
8891         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
8892         allocated.  Always create SUBREGs if simplify_subreg failed.
8893         Prefer to use cur_loc, when that fails and still in
8894         changed_variables (and seen first time) recompute it.  Set
8895         cur_loc_changed of variables which had to change cur_loc and
8896         compute elcd->cur_loc_changed if any of the subexpressions used
8897         had to change cur_loc.
8898         (vt_expand_loc): Adjust to pass arguments in
8899         expand_loc_callback_data structure.
8900         (vt_expand_loc_dummy): New function.
8901         (emitted_notes): New variable.
8902         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
8903         that weren't used for any other decl in current
8904         emit_notes_for_changes call call vt_expand_loc_dummy to update
8905         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
8906         first loc_chain location if NULL before.  Always use just
8907         cur_loc instead of first loc_chain location.  When cur_loc_changed
8908         is false, when not --enable-checking=rtl just don't emit any note.
8909         When rtl checking, compute the note and assert it is the same
8910         as previous note.  Clear cur_loc_changed and in_changed_variables
8911         at the end before removing from changed_variables.
8912         (check_changed_vars_3): New function.
8913         (emit_notes_for_changes): Traverse changed_vars to call
8914         check_changed_vars_3 on each changed var.
8915         (emit_notes_for_differences_1): Clear cur_loc_changed and
8916         in_changed_variables.  Recompute cur_loc of new_var.
8917         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
8918         (vt_emit_notes): Initialize and destroy emitted_notes.
8919
8920 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
8921
8922         PR rtl-optimization/42220
8923         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
8924         Use verify_reg_tracked to determine if we should use OP_OUT rather
8925         than OP_INOUT.
8926         (build_def_use): If we see an in-out operand for a register that we
8927         know nothing about, treat is an output if possible, fail the block if
8928         not.
8929
8930 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
8931
8932         PR debug/42897
8933         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
8934         permanently.
8935
8936 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
8937
8938         PR debug/42897
8939         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
8940         uses of relevant DEFs that are dead outside the loop too.
8941
8942 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
8943
8944         * var-tracking.c (dataflow_set_merge): Swap src and src2.
8945         Reverted:
8946         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
8947         PR debug/41371
8948         * var-tracking.c (values_to_unmark): New variable.
8949         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
8950         values_to_unmark vector.  Moved body to...
8951         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
8952         instead queue it into values_to_unmark vector.
8953         (vt_find_locations): Free values_to_unmark vector.
8954
8955 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
8956
8957         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
8958         (site.exp): Export them when plugins are enabled.
8959
8960 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
8961
8962         PR middle-end/42326
8963         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
8964         that contain scevs.
8965         (chrec_fold_multiply): Same.
8966
8967 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
8968
8969         PR c/43248
8970         * c-decl.c (build_compound_literal): Return early if init is
8971         an error_mark_node.
8972
8973 2010-03-04  Martin Jambor  <mjambor@suse.cz>
8974
8975         PR tree-optimization/43164
8976         PR tree-optimization/43191
8977         * tree-sra.c (type_consists_of_records_p): Reject records with
8978         zero-size bit-fields at the end.
8979
8980 2010-03-04  Mike Stump  <mikestump@comcast.net>
8981
8982         * Makefile.in (TAGS): Remove *.y.
8983
8984 2010-03-04  Richard Guenther  <rguenther@suse.de>
8985
8986         PR tree-optimization/40761
8987         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
8988         in reverse order.
8989         (my_rev_post_order_compute): New function.
8990         (init_pre): Call it.
8991
8992 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
8993
8994         PR middle-end/43209
8995         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
8996         decrease the cost of an IV candidate when the cost is infinite.
8997
8998 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8999
9000         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
9001         Use '3DNow!' for the extension of that name, ensure normal space
9002         after the string.
9003         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
9004
9005 2010-03-03  Jeff Law  <law@redhat.com>
9006
9007         * PR middle-end/32693
9008         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
9009         than gen_rtx_SUBREG.
9010         (extract_bit_field_1): Likewise.
9011
9012 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
9013
9014         * doc/sourcebuild.texi (Test directives): Document that arguments
9015         include-opts and exclude-opts are now optional for dg-skip-if,
9016         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
9017
9018 2010-03-03  Jason Merrill  <jason@redhat.com>
9019
9020         PR c++/12909
9021         * cgraph.h (varpool_node): Add extra_name field.
9022         * varpool.c (varpool_extra_name_alias): New.
9023         (varpool_assemble_decl): Emit extra name aliases.
9024         (varpool_mark_needed_node): Look past an extra name alias.
9025         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
9026         * lto-streamer-in.c (lto_input_tree): Read it.
9027         * lto-streamer-out.c (output_unreferenced_globals): Write it.
9028
9029 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
9030
9031         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
9032         (sparc*-*-solaris2*): ...this.
9033
9034 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
9035
9036         PR debug/43229
9037         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
9038         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
9039         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
9040         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
9041
9042         PR debug/43237
9043         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
9044         fallthrough to default handling, just with want_address 0 instead of 2.
9045         For single element lists, add_AT_loc directly, otherwise create an
9046         artificial variable DIE and stick location list to it.
9047
9048         PR debug/43177
9049         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
9050         (VAL_EXPR_HAS_REVERSE): Define.
9051         (reverse_op): New function.
9052         (add_stores): For reversible operations add an extra MO_VAL_USE.
9053
9054 2010-03-02  Jason Merrill  <jason@redhat.com>
9055
9056         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
9057
9058 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
9059
9060         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
9061         (sparc64-*-linux*): Likewise.
9062         (sparc64-*-solaris2*): Include assembler files before linker ones.
9063         (sparc-*-solaris2*): Simplify and reorder to match previous case.
9064         * config/sparc/gas.h: Delete.
9065         * config/sparc/sol2-64.h: Add copyright notice.
9066         * config/sparc/sol2-gas-bi.h: Likewise.
9067         * config/sparc/sol2-gld.h: Likewise.
9068         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
9069         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
9070         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
9071         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
9072         (sparc_elf_asm_named_section): Rename into...
9073         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
9074
9075 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
9076
9077         * config/alpha/alpha.c (override_options): Fix -mtune error message.
9078
9079 2010-03-02  Jeff Law  <law@redhat.com>
9080
9081         PR middle-end/42431
9082         * reload1.c (rtx_p, substitute_stack): Declare.
9083         (substitute): Record addresses of changed rtxs.
9084         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
9085         Restore the original rtx when complete.
9086         (reload): Free subsitute_stack when complete.
9087
9088 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
9089
9090         * doc/gccint.texi (menu): Add Testsuites as a chapter.
9091         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
9092         new chapter.
9093         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
9094         LTO Testing, gcov Testing, profopt Testing, compat Testing,
9095         Torture Tests): Change from subsection to section.
9096
9097 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
9098             Steven Bosscher  <steven@gcc.gnu.org>
9099
9100         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
9101         instead of bb.
9102
9103 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
9104
9105         PR middle-end/42640
9106         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
9107         the assignment from the new induction variable to the assignment
9108         of the value from the original loop PHI function.
9109
9110 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
9111             Daniel Jacobowitz  <dan@codesourcery.com>
9112
9113         * doc/sourcebuild.texi (Test directives): Clarify options to
9114         dg-skip-if.
9115
9116 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9117
9118         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
9119         Disable cfi directives unless GCC and gas agree on using read-only
9120         .eh_frame sections for 64-bit.
9121         * configure: Regenerate.
9122
9123 2010-03-01  Richard Guenther  <rguenther@suse.de>
9124
9125         PR tree-optimization/43220
9126         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
9127         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
9128
9129 2010-03-01  Richard Guenther  <rguenther@suse.de>
9130             Martin Jambor  <mjambor@suse.cz>
9131
9132         PR middle-end/41250
9133         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
9134         gimplified parameters.
9135
9136 2010-03-01  Christian Bruel  <christian.bruel@st.com>
9137
9138         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
9139
9140 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
9141
9142         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
9143
9144 2010-03-01  Richard Guenther  <rguenther@suse.de>
9145
9146         PR middle-end/43213
9147         * expr.c (expand_assignment): Use the alias-oracle to tell
9148         if the rhs aliases the result decl.
9149
9150 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9151
9152         PR pch/14940
9153         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
9154         to sol_gt_pch_get_address.
9155         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
9156         64-bit, SPARC and x86.
9157         (sol_gt_pch_get_address): New function.
9158
9159 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
9160
9161         * toplev.h (inform_n, error_n): Declare.
9162         * diagnostic.c (inform_n, error_n): New function.
9163
9164 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
9165
9166         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
9167         has no rtl yet when processing local_decls, queue it and recheck
9168         if deferred stack allocation hasn't assigned it rtl.
9169
9170 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
9171
9172         * config/sh/sh.c (unspec_bbr_uid): New.
9173         (gen_block_redirect): Use it instead of INSN_UID.
9174         (gen_far_branch): Likewise.
9175
9176 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
9177
9178         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
9179         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
9180
9181 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9182
9183         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
9184         (Warning Options): -Wno-conversion-null is valid for
9185         Objective-C++ as well.
9186         * doc/tm.texi (Named Address Spaces): Likewise.
9187         * doc/plugins.texi (Plugins): Replace TABs with spaces.
9188         * doc/tree-ssa.texi (Tree SSA): Likewise.
9189
9190 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
9191
9192         PR bootstrap/43202
9193         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
9194         by default.  Don't set the default arch for
9195         i[34567]86-*-darwin*|x86_64-*-darwin*.
9196
9197 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
9198
9199         PR bootstrap/43202
9200         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
9201         default.  Set the default 32bit/64bit archs with $with_arch
9202         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
9203
9204 2010-02-27  Richard Guenther  <rguenther@suse.de>
9205
9206         PR tree-optimization/43186
9207         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
9208         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
9209         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
9210         unroller iterations.
9211
9212 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
9213
9214         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
9215         required and i[34567]86-*-* targets don't support 64bit ISA.
9216
9217 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
9218
9219         PR ada/43096
9220         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
9221         the same alias set.
9222
9223 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
9224
9225         * config.gcc: Set the default arch at least to Prescott for
9226         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
9227         if SSE math is enabled.
9228
9229 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9230
9231         * diagnostic.c (diagnostic_initialize): Update.
9232         (diagnostic_report_diagnostic): Test inhibit_notes_p for
9233         informative notes.
9234         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
9235         (diagnostic_inhibit_notes): New.
9236         * toplev.c (process_options): inhibit notes with -fcompare-debug.
9237
9238 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9239
9240         PR c/20631
9241         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
9242         * doc/standards.texi: Likewise.
9243         * doc/extend.texi: Likewise.
9244         * doc/trouble.texi: Likewise.
9245         * doc/cppopts.texi: Likewise.
9246         * doc/install.texi: Likewise.
9247         * c.opt (std=c90,std=gnu90): New options.
9248         * c-opts.c (c_common_handle_option): Handle them.
9249
9250 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9251
9252         PR c/24577
9253         * c-decl.c (undeclared_variable): Use an informative note.
9254
9255 2010-02-26  Richard Guenther  <rguenther@suse.de>
9256
9257         PR tree-optimization/43186
9258         * gimple.h (gimple_fold): Remove.
9259         * gimple.c (gimple_fold): Remove.  Inline into single user ...
9260         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
9261         Try harder for conditions.
9262
9263 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
9264
9265         PR debug/43190
9266         * function.c (used_types_insert): Don't skip through named pointer
9267         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
9268         and it is different from the main variant's type.
9269
9270 2010-02-26  Nick Clifton  <nickc@redhat.com>
9271
9272         * config/rx/rx.md (sminsi3): Remove bogus alternative.
9273
9274 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
9275
9276         * config.gcc: Support --with-fpmath=sse for x86.
9277
9278         * config/i386/ssemath.h: New.
9279
9280         * doc/install.texi (--with-fpmath=sse): Documented.
9281
9282 2010-02-26  Richard Guenther  <rguenther@suse.de>
9283
9284         PR tree-optimization/43188
9285         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
9286         vector types of over-aligned element type.
9287
9288 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
9289
9290         PR target/43175
9291         * config/i386/i386.c (expand_vec_perm_blend): Use correct
9292         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
9293
9294 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
9295
9296         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
9297
9298 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
9299
9300         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
9301         * var-tracking.c: Include diagnostic.h.
9302         (debug_dv): New function.
9303         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
9304
9305         PR debug/43160
9306         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
9307         (add_value_chain, add_value_chains, remove_value_chain,
9308         remove_value_chains): Handle DEBUG_EXPRs.
9309         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
9310
9311         PR debug/43161
9312         * regcprop.c (struct queued_debug_insn_change): New type.
9313         (struct value_data_entry): Add debug_insn_changes field.
9314         (struct value_data): Add n_debug_insn_changes field.
9315         (debug_insn_changes_pool): New variable.
9316         (free_debug_insn_changes, apply_debug_insn_changes,
9317         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
9318         (kill_value_one_regno): Call free_debug_insn_changes if needed.
9319         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
9320         fields.
9321         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
9322         changes for them.
9323         (copyprop_hardreg_forward_1): Don't call apply_change_group for
9324         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
9325         changes, call cprop_find_used_regs via note_stores.
9326         (copyprop_hardreg_forward): When copying vd from predecessor
9327         which has any queued DEBUG_INSN changes, make sure the pointers are
9328         cleared.  At the end call df_analyze and then if there are any
9329         DEBUG_INSN changes queued at the end of some basic block for still
9330         live registers, apply them.
9331         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
9332
9333 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
9334
9335         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
9336         (arm*-*-*): Ditto.
9337
9338 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
9339
9340         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
9341         targets.  Set the default with_cpu/with_arch from arch/cpu.
9342         Allow x86-64 and native for with_cpu/with_arch.
9343
9344 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
9345
9346         * ebitmap.c: Change calls to verify_popcount with calls to
9347         sbitmap_verify_popcount.
9348         (ebitmap_clear_bit): Fixed map->cacheindex test and
9349         map>cache update when bit clearing results in an empty
9350         element.
9351
9352 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
9353
9354         PR target/43154
9355         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
9356         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
9357         and support both V2DF and V2DI modes.
9358         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
9359         support both V2DF and V2DI modes.
9360         (general): Delete trailing whitespace from a few patterns.
9361
9362         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9363         V2DF/V2DI interleave high/low builtins.
9364
9365         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
9366         new VSX builtins.
9367
9368         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
9369         interleave high/low functions.
9370
9371 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
9372
9373         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
9374         #pragma extern_prefix.
9375
9376 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
9377
9378         PR debug/43166
9379         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
9380         BLKmode, assert op0 is a MEM and just adjust its mode.
9381
9382         PR debug/43165
9383         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
9384         if bitpos isn't multiple of mode's bitsize.
9385
9386 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9387
9388         * c.opt (-ftemplate-depth=): New.
9389         (-ftemplate-depth-): Deprecate.
9390         * optc-gen.awk: Handle -ftemplate-depth=.
9391         * opth-gen.awk: Likewise.
9392         * c-opts.c (c_common_handle_option): Likewise.
9393         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
9394
9395 2010-02-24  Jason Merrill  <jason@redhat.com>
9396
9397         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
9398
9399 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9400
9401         * cfg.c (alloc_aux_for_block): Remove inline.
9402         (alloc_aux_for_edge): Likewise.
9403
9404 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9405
9406         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
9407
9408 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9409
9410         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
9411         * config/i386/sol2-gas.h: New file.
9412         * config.gcc (i[34567]86-*-solaris2*): Use it.
9413
9414 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9415
9416         PR c/43128
9417         * c-typeck.c (ep_convert_and_check): New.
9418         (build_conditional_expr): Use it.
9419         (build_binary_op): Likewise.
9420
9421 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
9422
9423         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
9424
9425         PR debug/43150
9426         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
9427         bounds even for -O+.
9428         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
9429         expr needs to have DECL_NAME set.
9430
9431 2010-02-24  Nick Clifton  <nickc@redhat.com>
9432
9433         * config/mep/mep.c: Include gimple.h.
9434         (mep_function_uses_sp): Delete unused function.
9435         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
9436         parameters.  Use unsigned integers to count args.  Return a
9437         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
9438
9439 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
9440
9441         PR target/43107
9442         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
9443         greater or equal to nelt instead of 2 * nelt.
9444         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
9445         with nelt - 1.
9446
9447 2010-02-23  Jason Merrill  <jason@redhat.com>
9448
9449         PR debug/42800
9450         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
9451         in cfun->local_decls even if they have register types.
9452
9453         PR c++/42837
9454         * stor-layout.c (place_field): Don't warn about unnecessary
9455         DECL_PACKED if the type is packed.
9456
9457 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
9458
9459         PR target/43139
9460         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
9461         GOTOFF relocs, even when the base reg isn't pic pointer.
9462
9463 2010-02-23  Michael Matz  <matz@suse.de>
9464
9465         PR debug/43077
9466         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
9467         (expand_gimple_basic_block): Generate and use debug temps if there
9468         are debug uses left after the last real use of TERed ssa names.
9469         Unlink debug immediate uses when they are expanded.
9470
9471 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9472
9473         PR 43123
9474         * config/i386/i386.c (override_options): Reorganise to provide
9475         better error messages.
9476
9477 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9478
9479         PR middle-end/43083
9480         * graphite-scop-detection.c (create_single_exit_edge): Move
9481         the call to find_single_exit_edge to....
9482         (create_sese_edges): ...here.  Don't handle multiple edges
9483         exiting the function.
9484         (build_graphite_scops): Don't handle multiple edges
9485         exiting the function.
9486
9487 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9488
9489         PR middle-end/43097
9490         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
9491         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
9492
9493 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9494
9495         PR middle-end/43026
9496         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
9497
9498 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9499
9500         PR c++/43126
9501         * c-typeck.c (convert_arguments): Print declaration location.
9502         * c-common.c (validate_nargs): Rename as
9503         builtin_function_validate_nargs.
9504         (check_builtin_function_arguments): Update.
9505
9506 2010-02-22  Richard Guenther  <rguenther@suse.de>
9507
9508         PR lto/43045
9509         * tree-inline.c (declare_return_variable): Use the type of
9510         the call stmt lhs if available.
9511
9512 2010-02-22  Duncan Sands  <baldrick@free.fr>
9513
9514         * passes.c (register_pass): Always consider all pass lists when
9515         ref_pass_instance_number is zero.
9516
9517 2010-02-22  Richard Guenther  <rguenther@suse.de>
9518
9519         PR tree-optimization/42749
9520         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
9521         parameter.  Do arithmetic in the original type.
9522         (update_accumulator_with_ops): Likewise.
9523         (adjust_accumulator_values): Adjust.
9524
9525 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9526
9527         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
9528         (QI to BLKmode splitter): New splitter.
9529
9530 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
9531
9532         * config/i386/i386.c (initial_ix86_tune_features): Turn on
9533         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
9534
9535 2010-02-22  Richard Guenther  <rguenther@suse.de>
9536
9537         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
9538
9539 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
9540
9541         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
9542         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
9543         ($(T)crti.o, $(T)crtn.o): Remove rules.
9544
9545 2010-02-21  Tobias Burnus  <burnus@net-b.de>
9546
9547         PR fortran/35259
9548         * doc/invoke.texi (-fassociative-math): Document that this
9549         option is automatically enabled for Fortran.
9550
9551 2010-02-20  David S. Miller  <davem@davemloft.net>
9552
9553         * configure.ac: Test if linker and assembler properly support
9554         GOTDATA_OP relocations.
9555         * configure: Rebuild.
9556         * config.in: Likewise.
9557         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
9558         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
9559         (movsi_high_pic): Likewise.
9560         (movdi_lo_sum_pic): Likewise.
9561         (movdi_high_pic): Likewise.
9562         (movsi_pic_gotdata_op): New pattern.
9563         (movdi_pic_gotdata_op): Likewise.
9564         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
9565         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
9566
9567 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
9568
9569         PR target/43067
9570         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
9571         attribute to ssemul.
9572         (xop_mulv2div2di3_high): Ditto.
9573
9574 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9575
9576         PR c++/35669
9577         * c.opt (Wconversion-null): New option.
9578         * doc/invoke.texi (Wconversion-null): Document.
9579
9580 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9581
9582         * common.opt (Wlarger-than-): Add Undocumented.
9583
9584 2010-02-19  Mike Stump  <mikestump@comcast.net>
9585
9586         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
9587
9588 2010-02-19  Jason Merrill  <jason@redhat.com>
9589
9590         PR target/40332
9591         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
9592         * configure: Likewise.
9593
9594 2010-02-20  Alan Modra  <amodra@gmail.com>
9595
9596         PR middle-end/42344
9597         * cgraph.h (cgraph_make_decl_local): Declare.
9598         * cgraph.c (cgraph_make_decl_local): New function.
9599         (cgraph_make_node_local): Use it.
9600         * cgraphunit.c (cgraph_function_versioning): Likewise.
9601         * ipa.c (function_and_variable_visibility): Likewise.
9602
9603 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9604
9605         PR bootstrap/43121
9606         * except.c (sjlj_emit_function_enter): Don't call
9607         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
9608         directly.
9609         * rtl.h (add_reg_br_prob_note): Remove prototype.
9610
9611 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9612
9613         PR 41779
9614         * c-common.c (conversion_warning): Remove widening conversions
9615         before checking the conversion of integers to reals.
9616
9617 2010-02-19  Mike Stump  <mikestump@comcast.net>
9618
9619         PR middle-end/43125
9620         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
9621
9622         PR objc/43061
9623         * cgraphunit.c (process_function_and_variable_attributes): Check
9624         DECL_PRESERVE_P instead of looking up attribute "used".
9625         * ipa-pure-const.c (check_decl): Likewise.
9626         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
9627         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
9628         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
9629         instead of attribute "used".
9630         * config/sol2-c.c (solaris_pragma_init): Likewise.
9631         (solaris_pragma_fini): Likewise.
9632
9633 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9634
9635         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
9636         Use XCNEW instead of xcalloc.
9637         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
9638         XNEW instead of xmalloc.
9639         (get_fields): Use XNEWVEC instead of xmalloc.
9640
9641         PR debug/43084
9642         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
9643         populate vars array.
9644         (create_new_general_access): For debug stmts just reset value.
9645         (get_stmt_accesses): For accesses within debug stmts just record them
9646         using add_access_to_acc_sites instead of preventing the peeling or
9647         counting them as accesses.
9648
9649         PR middle-end/42233
9650         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
9651
9652 2010-02-19  Richard Guenther  <rguenther@suse.de>
9653
9654         PR tree-optimization/42916
9655         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
9656         instructions.
9657
9658 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
9659
9660         * configure.ac: Replace all uses of changequote in macro arguments
9661         with proper quoting.
9662
9663 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9664
9665         PR middle-end/42233
9666         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
9667
9668 2010-02-19  Richard Guenther  <rguenther@suse.de>
9669
9670         PR tree-optimization/42944
9671         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
9672         test for aliasing with errno.
9673
9674 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9675
9676         PR middle-end/42233
9677         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
9678         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
9679         * dojump.c: Include output.h.
9680         (inv): New inline function.
9681         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
9682         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
9683         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
9684         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
9685         argument, pass it down to other calls.
9686         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
9687         add REG_BR_PROB note to the conditional jump.
9688         * cfgexpand.c (add_reg_br_prob_note): Removed.
9689         (expand_gimple_cond): Don't call it, add the probability
9690         as last argument to jumpif_1/jumpifnot_1.
9691         * Makefile.in (dojump.o): Depend on output.h.
9692         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
9693         callers.
9694         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
9695         * stmt.c (do_jump_if_equal): Likewise.
9696         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
9697         * loop-unswitch.c (compare_and_jump_seq): Likewise.
9698         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
9699         Likewise.
9700         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
9701         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
9702         jumpifnot_1 callers.
9703         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
9704         callers.
9705         (store_expr): Adjust jumpifnot caller.
9706         (store_constructor): Adjust jumpif caller.
9707
9708         PR middle-end/42233
9709         * gimplify.c (gimple_boolify): For __builtin_expect call
9710         gimple_boolify also on its first argument.
9711
9712 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
9713
9714         * configure.ac (gnu-unique-object): Wrap regexps using [] in
9715         changequote block.
9716         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
9717         * configure: Regenerated.
9718
9719 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9720
9721         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
9722         lang_hooks.types_compatible_p instead of comptypes.
9723
9724 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
9725
9726         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
9727         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
9728         if __prefer_thumb__ is defined.
9729
9730 2010-02-18  Martin Jambor  <mjambor@suse.cz>
9731
9732         PR tree-optimization/43066
9733         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
9734         array with zero-sized element type.
9735
9736 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
9737
9738         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
9739         rtx, allocate struct var_loc_node here and return it to the
9740         caller, and only if it is actually needed.
9741         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
9742         move it earlier and return immediately if it returns NULL.
9743
9744 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
9745
9746         * config/sparc/gas.h: New file.  Restore
9747         TARGET_ASM_NAMED_SECTION to its ELF default.
9748         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
9749         check !HAVE_GNU_AS.
9750         * config/sparc/sparc.c (sparc_elf_asm_named_section):
9751         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
9752         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
9753         after sparc/sysv4.h.
9754
9755 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
9756
9757         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
9758
9759 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
9760
9761         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
9762         patterns from predicated pattern.
9763
9764 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
9765
9766         PR target/43103
9767         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
9768         for insn mnemonic suffix.
9769
9770 2010-02-17  Richard Guenther  <rguenther@suse.de>
9771
9772         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
9773         to loop PHI nodes.
9774
9775 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
9776
9777         PR debug/42918
9778         * caller-save.c (save_call_clobbered_regs): If BB ends with
9779         a DEBUG_INSN, move any notes in between last real insn and the last
9780         DEBUG_INSN after the last DEBUG_INSN.
9781
9782 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
9783
9784         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
9785         Fix return type.  Fix argument type.  Explain meaning of return value.
9786
9787 2010-02-16  Richard Guenther  <rguenther@suse.de>
9788
9789         PR tree-optimization/41043
9790         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
9791         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
9792         statements ...
9793         (vrp_visit_phi_node): ... but only for loop PHI nodes.
9794
9795 2010-02-16  Ira Rosen  <irar@il.ibm.com>
9796
9797         PR tree-optimization/43074
9798         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
9799         * tree-vect-loop.c (vect_analyze_loop_operations): Add
9800         vectorizable cycles in hybrid SLP check.
9801         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
9802
9803 2010-02-16  Richard Guenther  <rguenther@suse.de>
9804
9805         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
9806         (true_dependence): If memrefs_conflict_p computes must-alias
9807         trust it.  Move TBAA check after offset-based disambiguation.
9808         (canon_true_dependence): Likewise.
9809
9810 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
9811
9812         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
9813         * doc/invoke.texi: Document it.
9814         * var-tracking.c: Include toplev.h and params.h.
9815         (vt_find_locations): Return bool indicating success.  Compute
9816         hash sizes unconditionally.  Check new parameter, report.
9817         (variable_tracking_main_1): Check vt_find_locations results and
9818         retry.  Renamed from...
9819         (variable_tracking_main): ... this.  New wrapper to preserve
9820         flag_var_tracking_assignments.
9821         * Makefile.in (var-tracking.o): Adjust dependencies.
9822
9823 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
9824             Jakub Jelinek <jakub@redhat.com>
9825
9826         PR target/42854
9827         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
9828         if weak_import attribute is present.
9829         * config/darwin.c (machopic_select_section): Likewise.
9830
9831 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
9832
9833         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
9834         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
9835         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
9836         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
9837
9838         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
9839         types.
9840
9841         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
9842         Fix argument types.
9843
9844         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
9845         Rewrite text to refer to the names.
9846
9847 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
9848
9849         * config/i386/i386-builtin-types.def
9850         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
9851         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
9852         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
9853         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
9854         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
9855         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
9856         IX86_BUILTIN_VPERMIL2PS256.
9857         (MULTI_ARG_4_DF2_DI_I): Defined.
9858         (MULTI_ARG_4_DF2_DI_I1): Defined.
9859         (MULTI_ARG_4_SF2_SI_I): Defined.
9860         (MULTI_ARG_4_SF2_SI_I1): Defined.
9861         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
9862         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
9863         __builtin_ia32_vpermil2ps256.
9864         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9865         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9866         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
9867         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9868         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9869         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
9870         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
9871         CODE_FOR_xop_vpermil2v8sf3.
9872         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
9873         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
9874         * config/i386/xopintrin.h (_mm_permute2_pd): New.
9875         (_mm256_permute2_pd): New.
9876         (_mm_permute2_ps): New.
9877         (_mm256_permute2_ps): New.
9878
9879 2010-02-15  Nick Clifton  <nickc@redhat.com>
9880
9881         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
9882         boolean parameters.  Use emit_jump_insn when emitting a pop
9883         instruction containing a return insn.
9884         (push): Use 'true' rather than '1' as second parameter to F.
9885         (h8300_expand_prologue): Likewise.
9886         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
9887         (h8300_expand_epilogue): Likewise.
9888
9889 2010-02-15  Richard Guenther  <rguenther@suse.de>
9890
9891         PR middle-end/43068
9892         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
9893         if that is zero.
9894
9895 2010-02-15  Nick Clifton  <nickc@redhat.com>
9896
9897         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
9898         delta.
9899
9900 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
9901
9902         * intl.c (fake_ngettext): New function.
9903         * intl.h (fake_ngettext): Declare.
9904         (ngettext): Define macro.
9905         * collect2.c (notice_translated): New function.
9906         (main): Use notice_translated and ngettext.
9907         * collect2.h (notice_translated): Declare.
9908
9909 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
9910
9911         * reorg.c (delete_computation): Comment fixes.
9912         * caller-save.c (setup_save_areas): Idem.
9913         * sel-sched-dump.c (dump_lv_set): Idem.
9914         * rtl.def: Idem.
9915
9916 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9917
9918         * config/s390/s390.c (s390_sched_init): New function.
9919         (TARGET_SCHED_INIT): Target hook defined.
9920
9921 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
9922             Jack Howarth  <howarth@bromo.med.uc.edu>
9923             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
9924
9925         PR target/42982
9926         Partial revert of unintended change in fix for PR41605.
9927         * config/darwin.h: Fix typo.
9928         * config/darwin9.h: Same.
9929
9930 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
9931
9932         * c-pch.c (pch_init): Clear v.
9933
9934 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9935
9936         PR middle-end/42930
9937         * graphite-scop-detection.c (graphite_can_represent_scev): Call
9938         graphite_can_represent_init for MULT_EXPR.
9939
9940 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9941
9942         PR middle-end/42914
9943         PR middle-end/42530
9944         * graphite-sese-to-poly.c (remove_phi): New.
9945         (translate_scalar_reduction_to_array): Call remove_phi.
9946
9947 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9948
9949         PR middle-end/42771
9950         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
9951         * graphite-clast-to-gimple.h (gloog): Update declaration.
9952         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
9953         * graphite-poly.h (struct poly_bb): Add missing comments.
9954         (struct scop): Add poly_scop_p field.
9955         (POLY_SCOP_P): New.
9956         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
9957         * graphite.c (graphite_transform_loops): Build the polyhedral
9958         representation for each scop before code generation.
9959         * sese.c (rename_variables_in_operand): Removed.
9960         (rename_variables_in_expr): Return the renamed expression.
9961         (rename_sese_parameters): New.
9962         * sese.h (rename_sese_parameters): Declared.
9963
9964 2010-02-11  Richard Guenther  <rguenther@suse.de>
9965
9966         PR tree-optimization/42998
9967         * tree-ssa-pre.c (create_expression_by_pieces): Treat
9968         POINTER_PLUS_EXPR properly.
9969
9970 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9971             Changpeng Fang  <changpeng.fang@amd.com>
9972
9973         PR middle-end/40886
9974         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
9975         the cost of an IV candidate when the IV is used in a test against zero.
9976
9977         * gcc.dg/tree-ssa/ivopts-3.c: New.
9978
9979 2010-02-11  Richard Guenther  <rguenther@suse.de>
9980
9981         PR lto/41664
9982         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
9983         pointer-vs-decl case by swapping refs.  Handle some cases
9984         of pointer-vs-decl disambiguations more conservatively.
9985         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
9986         to false after expanding.
9987
9988 2010-02-11  Richard Guenther  <rguenther@suse.de>
9989
9990         PR driver/43021
9991         * gcc.c (process_command): Handle LTO file@offset case more
9992         appropriately.
9993
9994 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
9995
9996         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
9997         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
9998         of DEBUG_INSNs.
9999         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
10000
10001         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
10002         if MEM's mode size isn't DWARF2_ADDR_SIZE.
10003         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
10004         Optimize eq/ne comparisons when both arguments are known to be
10005         zero-extended.
10006         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
10007         Don't mask operands unnecessarily if they are known to be already
10008         zero-extended.
10009
10010 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
10011
10012         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
10013         instead of loop.
10014
10015 2010-02-10  Richard Guenther  <rguenther@suse.de>
10016
10017         PR tree-optimization/43017
10018         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
10019         for wrapping signed arithmetic.
10020
10021 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
10022
10023         PR debug/43010
10024         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
10025         if no debug info should be emitted for it.
10026
10027 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
10028
10029         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
10030         note when flag_exceptions is set.
10031
10032 2010-02-10  Duncan Sands  <baldrick@free.fr>
10033
10034         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
10035
10036 2010-02-10  Richard Guenther  <rguenther@suse.de>
10037
10038         PR c/43007
10039         * tree.c (get_unwidened): Handle constants.
10040         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
10041
10042 2010-02-10  Martin Jambor  <mjambor@suse.cz>
10043
10044         PR lto/42985
10045         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
10046         check for variable argument counts independently.
10047
10048 2010-02-10  Christian Bruel  <christian.bruel@st.com>
10049
10050         PR target/42841
10051         * config/sh/sh.c (find_barrier): Increase length for non delayed
10052         conditional branches.
10053
10054 2010-02-10  Christian Bruel  <christian.bruel@st.com>
10055
10056         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
10057
10058 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
10059
10060         * builtins.c (set_builtin_user_assembler_name): Also handle
10061         ffs if int is smaller than word.
10062
10063 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
10064
10065         PR middle-end/42973
10066         * ira-conflicts.c (get_dup): Remove.
10067         (process_reg_shuffles): Add new parameter.  Use it as an
10068         additional guard for copy generation.
10069         (add_insn_allocno_copies): Rewrite.
10070
10071 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
10072
10073         * common.opt (fsched2-use-traces): Preserved for backward
10074         compatibility.
10075         * doc/invoke.texi: Remove the documentation about option
10076         -fsched2-use-traces.
10077         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
10078         flag_sched2_use_traces.
10079         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
10080         the backward compatibility flag section.
10081
10082 2010-02-09  Richard Guenther  <rguenther@suse.de>
10083
10084         PR tree-optimization/43008
10085         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
10086         make HEAP variables initialized from global memory if they
10087         are not known builtin functions.
10088         (find_func_aliases): Adjust.
10089
10090 2010-02-09  Richard Guenther  <rguenther@suse.de>
10091
10092         PR tree-optimization/43000
10093         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
10094         arithmetic manually.
10095
10096 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
10097
10098         PR tree-optimization/42931
10099         * tree-loop-linear.c (try_interchange_loops): Don't call
10100         double_int_mul if estimated_loop_iterations failed.
10101
10102 2010-02-08  Martin Jambor  <mjambor@suse.cz>
10103
10104         PR middle-end/42898
10105         * tree-sra.c (build_accesses_from_assign): Do not mark in
10106         should_scalarize_away_bitmap if stmt has volatile ops.
10107         (sra_modify_assign): Do not process assigns piecemeal if if stmt
10108         has volatile ops.
10109
10110 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
10111
10112         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
10113
10114 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
10115
10116         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
10117         before the pattern.
10118
10119 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
10120
10121         PR middle-end/42946
10122         * df-core.c (df_finish_pass): Change type of saved_flags to int.
10123
10124 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
10125
10126         PR middle-end/42988
10127         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
10128         to unknown_dependence.
10129         (graphite_legal_transform_dr): Handle the unknown_dependence.
10130         (graphite_carried_dependence_level_k): Same.
10131
10132 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
10133
10134         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
10135
10136 2010-02-07  Richard Guenther  <rguenther@suse.de>
10137
10138         PR middle-end/42991
10139         * expr.c (get_inner_reference): Always initialize *pbitsize.
10140
10141 2010-02-07  Richard Guenther  <rguenther@suse.de>
10142
10143         PR middle-end/42956
10144         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
10145         new ARRAY_REFs on variable size element or minimal index arrays.
10146         Complete.
10147         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
10148         gimple_fold_indirect_ref.
10149
10150 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
10151
10152         PR target/42957
10153         * arm.c (arm_override_options): Just return if the user has specified
10154         an invalid fpu name.
10155
10156 2010-02-03  Jason Merrill  <jason@redhat.com>
10157
10158         PR c++/42870
10159         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
10160         i386_pe_maybe_record_exported_symbol.
10161
10162 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
10163
10164         PR target/42924
10165         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
10166         (pa_delegitimize_address): New function.
10167
10168 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
10169
10170         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
10171         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
10172
10173 2010-02-05  Richard Guenther  <rguenther@suse.de>
10174
10175         PR lto/42762
10176         * lto-streamer-in.c (get_resolution): Deal with references
10177         to undefined functions.
10178
10179 2010-02-05  Richard Guenther  <rguenther@suse.de>
10180
10181         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
10182         (fold_const_aggregate_ref): Likewise.
10183         (ccp_fold_stmt): Substitute loads.
10184         (maybe_fold_reference): Verify types before substituting.
10185         Unshare properly.
10186         (fold_gimple_assign): Unshare properly.
10187         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
10188
10189 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
10190
10191         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
10192         for rs6000_gen_cell_microcode.
10193
10194 2010-02-04  Richard Guenther  <rguenther@suse.de>
10195
10196         PR rtl-optimization/42952
10197         * dse.c (const_or_frame_p): Remove MEM handling.
10198
10199 2010-02-04  Nick Clifton  <nickc@redhat.com>
10200
10201         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
10202         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
10203         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
10204         (mn10300_asm_output_mi_thunk): New function.
10205         (mn10300_can_output_mu_thunk): New function.
10206         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
10207         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
10208         (FUNCTION_ARG): Delete incorrect comment.
10209
10210 2010-02-03  Jason Merrill  <jason@redhat.com>
10211
10212         PR c++/40138
10213         * fold-const.c (operand_equal_p): Handle erroneous types.
10214
10215 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
10216
10217         * config/h8300/h8300.md (can_delay): Fix attibute condition.
10218
10219 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
10220
10221         PR rtl-optimization/42941
10222         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
10223         of xmalloc.
10224
10225 2010-02-03  Jason Merrill  <jason@redhat.com>
10226
10227         PR c++/35652
10228         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
10229
10230 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
10231
10232         PR debug/42896
10233         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
10234         (cselib_reset_table): Renamed from...
10235         (cselib_reset_table_with_next_value): ... this.
10236         (cselib_get_next_uid): Renamed from...
10237         (cselib_get_next_unknown_value): ... this.
10238         * cselib.c (next_uid): Renamed from...
10239         (next_unknown_value): ... this.
10240         (cselib_clear_table): Adjust.
10241         (cselib_reset_table): Adjust.  Renamed from...
10242         (cselib_reset_table_with_next_value): ... this.
10243         (cselib_get_next_uid): Adjust.  Renamed from...
10244         (cselib_get_next_unknown_value): ... this.
10245         (get_value_hash): Use hash.
10246         (cselib_hash_rtx): Likewise.
10247         (new_cselib_val): Adjust.  Set and dump uid.
10248         (cselib_lookup_mem): Pass next_uid as hash.
10249         (cselib_subst_to_values): Likewise.
10250         (cselib_log_lookup): Dump uid.
10251         (cselib_lookup): Pass next_uid as hash.  Adjust.
10252         (cselib_process_insn): Adjust.
10253         (cselib_init): Initialize next_uid.
10254         (cselib_finish): Adjust.
10255         (dump_cselib_table): Likewise.
10256         * dse.c (canon_address): Dump value uid.
10257         * print-rtl.c (print_rtx): Print value uid.
10258         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
10259         (dvuid): New type.
10260         (dv_uid): New function, sort of renamed from...
10261         (dv_htab_hash): ... this, reimplemented in terms of it and...
10262         (dv_uid2hash): ... this.  New.
10263         (variable_htab_eq): Drop excess assertions.
10264         (tie_break_pointers): Removed.
10265         (canon_value_cmp): Compare uids.
10266         (variable_post_merge_New_vals): Print uids.
10267         (vt_add_function_parameters): Adjust.
10268         (vt_initialize): Reset table.  Adjust.
10269
10270 2010-02-03  Richard Guenther  <rguenther@suse.de>
10271
10272         PR tree-optimization/42944
10273         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
10274         (call_may_clobber_ref_p_1): Likewise.  Properly handle
10275         malloc and calloc clobbering errno.
10276
10277 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
10278
10279         * doc/invoke.texi: Fix name of sched1 dump.
10280
10281         * opts.c (decode_options): Set flag_tree_switch_conversion
10282         only conditionally on optimize >= 2.
10283
10284         * gcse.c: Assorted comment fixes in pass description.
10285
10286 2010-02-03  Anthony Green  <green@moxielogic.com>
10287
10288         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
10289         nop padding in order to maintain alignment of storage location of
10290         target function address.
10291         (moxie_trampoline_init): Store target function address at newly
10292         aligned location.
10293         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
10294         to 32.
10295         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
10296
10297 2010-02-03  Richard Guenther  <rguenther@suse.de>
10298
10299         PR middle-end/42927
10300         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
10301
10302 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10303
10304         * config.gcc: Reenable check for obsolete targets.
10305         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
10306         mips-sgi-irix6.[0-4]*.
10307
10308 2010-02-02  Nick Clifton  <nickc@redhat.com>
10309
10310         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
10311         constant size of 4 as being the same as 0.
10312         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
10313         can take values in the range 0..4.
10314
10315 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
10316
10317         PR java/41991
10318         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
10319         as _darwin10_Unwind_FindEnclosingFunction().
10320         * libgcc-libsystem.ver: New.
10321
10322 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
10323
10324         PR target/41399
10325         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
10326         implicitly set registers.
10327
10328 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
10329
10330         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
10331         (arm_override_options): Allow automatic selection of the thread
10332         pointer register if thumb2.
10333         (legitimize_pic_address): Improve code sequences for Thumb2.
10334         (arm_call_tls_get_addr): Likewise.
10335         (legitimize_tls_address): Likewise.
10336         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
10337         (pic_load_addr_32bit): ... this.  New named pattern.
10338         * thumb2.md (pic_load_addr_thumb2): Delete.
10339         (pic_load_dot_plus_four): Delete.
10340         (tls_load_dot_plus_four): New named pattern.
10341
10342 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10343
10344         PR libgomp/29986
10345         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
10346         Document fix for TLS bug.
10347
10348 2010-01-31  Richard Guenther  <rguenther@suse.de>
10349
10350         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
10351         conservatively correct.
10352
10353 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10354
10355         PR target/42850
10356         Revert:
10357         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10358
10359         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
10360
10361 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10362
10363         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
10364
10365 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
10366
10367         * config.gcc: Adjust order of makefile fragments for mingw targets.
10368
10369 2010-01-31  Richard Guenther  <rguenther@suse.de>
10370
10371         PR middle-end/42898
10372         * gimplify.c (gimplify_init_constructor): For volatile LHS
10373         initialize a temporary.
10374
10375 2010-01-31  Matthias Klose  <doko@ubuntu.com>
10376
10377         * configure.ac: Fix __stack_chk_fail check for cross builds configured
10378         --with-headers
10379         * configure: Regenerate.
10380
10381 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
10382
10383         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
10384         the same alias set and their sizes different constantness.
10385         (aliasing_component_refs_p): Revert 2009-10-24 change.
10386
10387 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10388
10389         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
10390         unused.
10391
10392 2010-01-29  Richard Guenther  <rguenther@suse.de>
10393
10394         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
10395         Assert we successfully updated the call.
10396
10397 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
10398
10399         PR rtl-optimization/42889
10400         * df.h (df_set_bb_dirty_nonlr): New prototype.
10401         * df-core.c (df_set_bb_dirty_nonlr): New function.
10402         * df-scan.c (df_insn_rescan): Call it instead of
10403         df_set_bb_dirty for DEBUG_INSNs.
10404
10405 2010-01-29  Richard Guenther  <rguenther@suse.de>
10406
10407         PR middle-end/37448
10408         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
10409         quadratic behavior in most cases.
10410
10411 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
10412
10413         PR target/42891
10414         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
10415         in the call to gen_x86_movsicc_0_m1.
10416
10417 2010-01-28  Richard Guenther  <rguenther@suse.de>
10418
10419         PR tree-optimization/42871
10420         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
10421
10422 2010-01-28  Richard Guenther  <rguenther@suse.de>
10423
10424         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
10425         into call arguments.
10426
10427 2010-01-28  Richard Guenther  <rguenther@suse.de>
10428
10429         PR middle-end/42883
10430         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
10431         the forwarder if the destination is an EH landing pad.
10432
10433 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
10434
10435         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
10436         block list passed to gimple_duplicate_sese_tail.
10437         (parallelize_loops): Avoid parallelization when the function
10438         has_nonlocal_label.
10439         Avoid parallelization when the preheader is IRREDUCIBLE.
10440         Try to optimize when estimated_loop_iterations_int is unresolved.
10441         Add the loop's location to the dump file.
10442         * tree-cfg.c (add_phi_args_after_redirect): Remove.
10443         (gimple_duplicate_sese_tail): Remove the check for the latch.
10444         Redirect nexits to the exit block.
10445         Remove handling of the incoming edges to the latch.
10446         Redirect the backedge from the copied latch to the exit bb.
10447
10448 2010-01-28  Michael Matz  <matz@suse.de>
10449
10450         PR target/42881
10451         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
10452         Wrap force_reg into a sequence, emit it before user.
10453
10454 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
10455
10456         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
10457         (arm_rev): New.
10458         (arm_legacy_rev): Likewise.
10459         (thumb_legacy_rev): Likewise.
10460
10461 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
10462
10463         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
10464         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
10465         on MEM's address failed, try avoid_constant_pool_reference and
10466         recurse if it returned something different.
10467         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
10468         address, try avoid_constant_pool_reference and recurse if it
10469         returned something different.
10470         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
10471         address and avoid_constant_pool_reference returned something
10472         different, don't set have_address.
10473
10474 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
10475
10476         PR debug/42861
10477         * var-tracking.c (val_store): Add modified argument, obey it.
10478         Adjust callers.
10479         (count_uses): Move down logging of main.
10480         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
10481         don't need resolution.
10482         (emit_notes_in_bb): Likewise.
10483
10484 2010-01-27  Richard Guenther  <rguenther@suse.de>
10485
10486         PR middle-end/42878
10487         * tree-inline.c (remap_decl): Delay remapping of SSA name
10488         default definitions until we need them.
10489
10490 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
10491
10492         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
10493         (rs6000_delegitimize_address): New function.
10494
10495         * config/s390/s390.c (s390_delegitimize_address): Call
10496         delegitimize_mem_from_attrs.
10497
10498         PR middle-end/42874
10499         * tree-inline.c (cannot_copy_type_1): Removed.
10500         (copy_forbidden): Don't forbid copying of functions containing
10501         records/unions with variable length fields.
10502
10503 2010-01-27  Christian Bruel  <christian.bruel@st.com>
10504
10505         Revert:
10506         PR target/42841
10507         * config/sh/sh.c (find_barrier): Increase length for non delayed
10508         conditional branches.
10509
10510 2010-01-27  Matthias Klose  <doko@ubuntu.com>
10511
10512         * configure.ac (gnu-unique-object): Fix ldd version check.
10513         * configure: Regenerate.
10514
10515 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10516
10517         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
10518         HAVE_GNU_AS value.
10519         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
10520         Test for HAVE_GNU_AS value.
10521
10522 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10523
10524         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
10525         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
10526         INT64_TYPE): Define.
10527         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
10528         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10529         INT_LEAST64_TYPE): Define.
10530         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
10531         UINT_LEAST64_TYPE): Define.
10532         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
10533         INT_FAST64_TYPE): Define.
10534         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10535         UINT_FAST64_TYPE): Define.
10536         (INTMAX_TYPE, UINTMAX_TYPE): Define.
10537         (INTPTR_TYPE, UINTPTR_TYPE): Define.
10538         (SIG_ATOMIC_TYPE): Define.
10539
10540 2010-01-26  Richard Guenther  <rguenther@suse.de>
10541
10542         * df-scan.c (df_scan_set_bb_info): Remove assert.
10543         (df_insn_rescan_debug_internal): Merge asserts.
10544         (df_install_ref): Likewise.
10545         (df_mark_reg): Use bitmap_set_range.
10546         (df_hard_reg_used_p): Remove assert.
10547         (df_hard_reg_used_count): Likewise.
10548
10549 2010-01-26  Richard Guenther  <rguenther@suse.de>
10550
10551         PR rtl-optimization/42685
10552         * web.c (web_main): Ignore DEBUG_INSNs.
10553
10554 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
10555
10556         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
10557
10558         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
10559         Fix types of fndecl and arglist parameters.
10560
10561 2010-01-26  Richard Guenther  <rguenther@suse.de>
10562
10563         PR middle-end/42806
10564         * tree-eh.c (unsplit_eh): Skip debug insns.
10565
10566 2010-01-26  Richard Guenther  <rguenther@suse.de>
10567
10568         PR tree-optimization/42250
10569         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
10570
10571 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
10572
10573         PR fortran/42866
10574         * omp-low.c (expand_omp_sections): Only use single_pred if
10575         l2_bb is single_pred_p.
10576
10577 2010-01-25  Christian Bruel  <christian.bruel@st.com>
10578
10579         PR target/42841
10580         * config/sh/sh.c (find_barrier): Increase length for non delayed
10581         conditional branches.
10582         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
10583
10584 2010-01-24  David S. Miller  <davem@davemloft.net>
10585
10586         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
10587         define if not using GAS.
10588         * config/sparc/sparc.c (sparc_elf_asm_named_section):
10589         Likewise.  Delete SECTION_MERGE code, which is only applicable
10590         when using GAS.
10591
10592 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
10593
10594         PR c++/42748
10595         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
10596         mangling of va_list in system headers.
10597
10598 2010-01-23  Toon Moene  <toon@moene.org>
10599
10600         * tree-predcom.c (combine_chains): Return NULL, not false.
10601
10602 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
10603
10604         * tree-loop-distribution.c (distribute_loop): Fix declaration and
10605         initialization of variable res to agree with return type.
10606
10607 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
10608
10609         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
10610         * tree-sra.c: Add include of expr.h.
10611
10612 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
10613
10614         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
10615         insert the debug stmt on the single non-EH edge from the stmt.
10616
10617 2010-01-22  Richard Henderson  <rth@redhat.com>
10618
10619         PR tree-opt/42833
10620         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
10621         the RHS until after generate_subtree_copies has insertted its
10622         code before the current statement.
10623
10624 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
10625
10626         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
10627
10628         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
10629
10630 2010-01-21  Martin Jambor  <mjambor@suse.cz>
10631
10632         PR tree-optimization/42585
10633         * tree-sra.c (struct access): New field grp_total_scalarization.
10634         (dump_access): Dump the new field.
10635         (should_scalarize_away_bitmap): New variable.
10636         (cannot_scalarize_away_bitmap): Likewise.
10637         (sra_initialize): Allocate new bitmaps.
10638         (sra_deinitialize): Free new bitmaps.
10639         (create_access_1): New function.
10640         (create_access): Parts moved to create_access_1.
10641         (type_consists_of_records_p): New function.
10642         (completely_scalarize_record): Likewise.
10643         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
10644         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
10645         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
10646         access.
10647         (analyze_all_variable_accesses): Completely scalarize small eligible
10648         records.
10649
10650 2010-01-21  Martin Jambor  <mjambor@suse.cz>
10651
10652         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
10653
10654 2010-01-21  Andrew Haley  <aph@redhat.com>
10655
10656         * gcc.c (process_command): Move lang_specific_driver before
10657         setting cc_libexec_prefix.
10658
10659 2010-01-21  Richard Guenther  <rguenther@suse.de>
10660
10661         PR middle-end/19988
10662         * fold-const.c (negate_expr_p): Pretend only negative
10663         real constants are easily negatable.
10664
10665 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
10666             Jason Merrill  <jason@redhat.com>
10667
10668         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
10669         (TYPE_TRANSPARENT_AGGR): this, for union and record.
10670         * calls.c (initialize argument_information): Handle it.
10671         * c-common.c (handle_transparent_union_attribute): Use new name.
10672         * c-decl.c (finish_struct): Ditto.
10673         * c-typeck.c (type_lists_compatible_p): Ditto.
10674         (convert_for_assignment): Use new name and also handle record.
10675         * function.c (aggregate_value_p): Handle it.
10676         (pass_by_reference): Ditto.
10677         (assign_parm_data_types): Ditto.
10678         * print-tree.c (print_node): Ditto.
10679         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
10680         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
10681         * tree.c (first_field): New fn.
10682
10683 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
10684
10685         PR target/42818
10686         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
10687         even when linking statically, for now.
10688
10689 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
10690
10691         PR debug/42715
10692         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
10693         without a cselib val.
10694         (count_uses): Accept MO_VAL_SET with no val on stores.
10695         (add_stores): Likewise.
10696
10697 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10698
10699         * var-tracking.c (check_value_val): Add a compile time assertion.
10700         (dv_is_decl_p): Simplify.
10701         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
10702         gcc_assert if ENABLE_CHECKING.
10703
10704 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
10705
10706         PR debug/42782
10707         * var-tracking.c: Include tree-flow.h.
10708         (mem_dies_at_call): New.
10709         (dataflow_set_preserve_mem_locs): Use it.
10710         (dataflow_set_remove_mem_locs): Likewise.
10711         (dump_var): Renamed from dump_variable.  Adjust all callers.
10712         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
10713         * Makefile.in (var-tracking.o): Adjust deps.
10714
10715 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
10716
10717         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
10718
10719 2010-01-20  Richard Guenther  <rguenther@suse.de>
10720
10721         PR tree-optimization/42717
10722         * tree-ssa-dce.c (get_live_post_dom): Remove.
10723         (forward_edge_to_pdom): Take an arbitrary edge to copy
10724         degenerate PHI args from.
10725         (remove_dead_stmt): Use the first post-dominator even if it
10726         does not contain live statements as redirection destination.
10727
10728 2010-01-20  Richard Guenther  <rguenther@suse.de>
10729
10730         * tree-inline.c (estimate_num_insns): Handle EH builtins.
10731
10732 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10733
10734         * sel-sched.c (create_speculation_check): Remove set but not used
10735         variable twin.
10736         (try_transformation_cache): Remove set but not used variable ds.
10737         (calculate_privileged_insns): Remove set but not used variables
10738         cur_insn and min_spec_insn.
10739         (find_best_expr): Remove set but not used variable avail_n.
10740         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
10741         variable e.
10742         * cgraphunit.c (assemble_thunk): Remove set but not used variable
10743         false_label.
10744         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
10745         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
10746         new_scop_exit_edge.
10747
10748 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
10749
10750         PR bootstrap/42786
10751         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
10752         cpu types.  Add support for *-sse3 cpu types.
10753         (x86_64-*-*): Ditto.
10754
10755 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10756
10757         PR middle-end/42803
10758         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
10759         argument, call initializer_constant_valid_p_1 instead of
10760         initializer_constant_valid_p, pass CACHE to it, return NULL
10761         immediately if first call returns NULL.
10762         (initializer_constant_valid_p_1): New function.
10763         (initializer_constant_valid_p): Use it.
10764
10765 2010-01-20  Thomas Quinot  <quinot@adacore.com>
10766
10767         * tree.def (PLACEHOLDER_EXPR): Fix comment.
10768
10769 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10770
10771         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
10772         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
10773         (loc_list_from_tree): Don't handle unsigned division.  Handle
10774         signed modulo using DW_OP_{over,over,div,mul,minus}.
10775         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
10776         modulo instead of signed.
10777
10778 2010-01-20  DJ Delorie  <dj@redhat.com>
10779
10780         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
10781         (Fpa): Pass it
10782         (h8300_emit_stack_adjustment): Propogate it.
10783         (push): Pass it.
10784         (h8300_expand_prologue): Likewise.
10785         (h8300_expand_epilogue): Likewise.
10786
10787 2010-01-19  Michael Matz  <matz@suse.de>
10788
10789         PR tree-optimization/41783
10790         * tree-data-ref.c (toplevel): Include flags.h.
10791         (dump_data_dependence_relation):  Also dump the inputs if the
10792         result will be unknown.
10793         (split_constant_offset_1): Look through some conversions.
10794         * tree-predcom.c (determine_roots_comp): Restart a new chain if
10795         the offset from last element is too large.
10796         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
10797         (reassociate_to_the_same_stmt): Handle vector registers.
10798         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
10799         (e.g. conversions).
10800         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
10801         wide_prolog_niters argument, emit widening instructions.
10802         (vect_do_peeling_for_alignment): Adjust caller, use widened
10803         variant of the iteration cound.
10804         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
10805
10806 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10807
10808         PR target/38697
10809         * config/arm/neon-testgen.m (emit_automatics): New parameter
10810         features. Adjust for Fixed_return_reg feature.
10811         (test_intrinsic): Call emit_automatics with new feature.
10812         * config/arm/neon.ml: Update copyright years.
10813         (features): New Fixed_return_reg feature.
10814         (ops): Update feature for Vget_low.
10815
10816 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
10817
10818         PR tree-optimization/42719
10819         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
10820         stmt uses.
10821
10822         PR debug/42728
10823         * fwprop.c (all_uses_available_at): Return false if def_set dest
10824         is a REG that is used in def_insn.
10825
10826 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
10827
10828         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
10829
10830         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
10831         Add argument names.
10832
10833         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
10834
10835         * target.h (struct gcc_target) <secondary_reload>: Change type
10836         of last argument to secondary_reload_info *.
10837
10838 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
10839
10840         PR target/42774
10841         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
10842         memory references with unaligned offsets.  Remove CQImode handling.
10843         (unaligned_memory_operand): Return 1 for memory references with
10844         unaligned offsets.  Remove CQImode handling.
10845
10846 2010-01-18  Richard Guenther  <rguenther@suse.de>
10847
10848         PR middle-end/39954
10849         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
10850         builtin calls.
10851
10852 2010-01-18  Richard Guenther  <rguenther@suse.de>
10853
10854         PR tree-optimization/42781
10855         * tree-ssa-structalias.c (find_what_var_points_to): Skip
10856         restrict processing only if the original variable was artificial.
10857
10858 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
10859
10860         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
10861         find number of popped argument bytes.
10862
10863         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
10864         Fix the text that describes the return value for invalid insns.
10865
10866         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
10867
10868         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
10869         Clarify what 'cost of the -dependence' is.  Fix quoting.
10870
10871         * toplev.c (default_get_pch_validity): Rename argument to "sz".
10872         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
10873
10874 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
10875
10876         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
10877         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
10878
10879 2010-01-17  Richard Guenther  <rguenther@suse.de>
10880
10881         PR middle-end/42248
10882         * function.c (split_complex_args): Take a VEC to modify.
10883         (assign_parms_augmented_arg_list): Build a VEC instead of
10884         a chain of PARM_DECLs.
10885         (assign_parms_unsplit_complex): Take a VEC of arguments.
10886         Do not fixup unmodified parms.
10887         (assign_parms): Deal with the VEC.
10888         (gimplify_parameters): Likewise.
10889
10890 2010-01-17  Richard Guenther  <rguenther@suse.de>
10891
10892         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
10893         node existence check.
10894         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
10895         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
10896         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
10897         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
10898         (gimple_execute_on_growing_pred): Likewise.
10899
10900 2010-01-17  Richard Guenther  <rguenther@suse.de>
10901
10902         PR tree-optimization/42773
10903         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
10904         (compute_antic_aux): Likewise.
10905         (compute_partial_antic_aux): Likewise.
10906
10907 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
10908
10909         PR debug/42767
10910         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
10911         and US_TRUNCATE.
10912
10913 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
10914
10915         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
10916         appearance.
10917
10918         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
10919         Fix markup for strict argument.
10920
10921         (TARGET_SCHED_REORDER2): Fix argument types.
10922
10923         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
10924         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
10925
10926         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
10927         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
10928
10929         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
10930         Add argument name.
10931
10932         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
10933         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
10934         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
10935         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
10936         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
10937
10938         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
10939
10940         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
10941
10942         (TARGET_ASM_RELOC_RW_MASK): Add return type.
10943         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
10944
10945         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
10946
10947         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
10948         Use prototype.
10949
10950         (TARGET_ASM_NAMED_SECTION): Fix argument list.
10951
10952         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
10953         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
10954
10955         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
10956
10957         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
10958
10959         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
10960         referring to it.  Fix language.
10961
10962         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
10963
10964         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
10965
10966         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
10967
10968         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
10969
10970         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
10971         '@var{stream}.  Remove stray 'and'.
10972
10973         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
10974
10975         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
10976
10977         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
10978
10979         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
10980         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
10981
10982         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
10983         Fix description of return value.
10984         Rename argument "sz" to "len."
10985
10986         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
10987         Clarify meaning of 'true' return value.
10988
10989         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
10990
10991         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
10992         rep_mode versus mode_rep.
10993
10994         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
10995
10996         (TARGET_BUILTIN_DECL): Fix name.
10997
10998         (TARGET_COMMUTATIVE_P): Fix type of first argument.
10999
11000         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
11001
11002         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
11003
11004         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
11005
11006         (TARGET_RELAXED_ORDERING): Use @deftypevr.
11007
11008         (TARGET_GET_DRAP_RTX): Note that this is a hook.
11009         Clarify language.
11010
11011         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
11012         Rename argument tm_fn to md_fn.
11013
11014         (TARGET_OPTION_PRINT): Fix argument list.
11015
11016 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
11017
11018         PR target/42664
11019         * config/i386/i386.c (ix86_fixup_binary_operands):
11020         Revert FMA4 fixup of operands.
11021
11022 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11023
11024         PR gcc/42525
11025         * Makefile.in (write_entries_to_file, install-plugin):
11026         Use \012 instead of \n with tr.
11027
11028 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
11029
11030         * configure.ac (HAVE_AS_REF): New C macro.
11031         * configure: Regenerate.
11032         * config.in: Likewise.
11033         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
11034         if HAVE_AS_REF.
11035         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
11036         if HAVE_AS_REF.
11037
11038 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
11039
11040         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
11041
11042         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
11043
11044         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
11045
11046         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
11047
11048         (TARGET_IN_SMALL_DATA_P): Fix argument type.
11049
11050         (TARGET_BINDS_LOCAL_P): Fix argument type.
11051
11052         (TARGET_ASM_FILE_END): Use prototype.
11053
11054         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
11055
11056         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
11057
11058         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
11059
11060         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
11061
11062         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
11063         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
11064
11065         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
11066         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
11067
11068         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
11069         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
11070         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
11071         (TARGET_ADDR_SPACE_CONVERT): Likewise.
11072
11073         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
11074
11075         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
11076
11077         (TARGET_INIT_BUILTINS): Use prototype.
11078
11079         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
11080         Put 'const char *' in braces.  Fix parameter types.
11081         (TARGET_INVALID_CONVERSION): Fix parameter types.
11082         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
11083         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
11084
11085         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
11086         Fix argument type.
11087
11088         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
11089
11090         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
11091
11092 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
11093
11094         * doc/tm.texi (TARGET_HELP): Fix return type.
11095
11096         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
11097         in braces.  Fix argument types.
11098
11099         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
11100
11101         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
11102
11103         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
11104
11105         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
11106         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
11107
11108         (TARGET_MANGLE_TYPE): Fix argument types.
11109
11110         (TARGET_IRA_COVER_CLASSES): Use prototype.
11111
11112         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
11113
11114         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
11115
11116         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
11117
11118         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
11119
11120         (TARGET_CALLEE_COPIES): Fix argument types.
11121
11122         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
11123
11124         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
11125
11126         (TARGET_FUNCTION_VALUE): Fix argument types.
11127
11128         (TARGET_RETURN_IN_MSB): Fix argument type.
11129
11130         (TARGET_RETURN_IN_MEMORY): Fix argument types.
11131
11132         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
11133
11134         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
11135
11136         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
11137         agree with return type.
11138
11139         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
11140
11141 2010-01-15  Jing Yu  <jingyu@google.com>
11142
11143         PR rtl-optimization/42691
11144         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
11145         a pseudo to a constant and are merged, and adjust comments.
11146
11147 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
11148
11149         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
11150
11151 2010-01-15  Richard Guenther  <rguenther@suse.de>
11152
11153         PR middle-end/42739
11154         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
11155         labels of computed or non-local gotos to the destination.
11156         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
11157         landing pad label is the first label.
11158
11159 2010-01-15  Richard Guenther  <rguenther@suse.de>
11160
11161         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
11162
11163 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
11164
11165         PR target/42747
11166         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
11167         to allow generation of the xssqrtdp instruction on power7.
11168         (sqrtdf2_fpr): Ditto.
11169
11170 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
11171
11172         PR middle-end/42674
11173         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
11174         functions with noreturn attribute.
11175
11176         PR c++/42608
11177         * varasm.c (declare_weak): Add weak attribute to decl if it
11178         doesn't have one already.
11179         (assemble_external): Only add decls to weak_decls if they also
11180         have weak attribute.
11181
11182 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
11183
11184         * var-tracking.c (var_reg_delete): Don't delete the association
11185         between REGs and values or one-part variables if the register
11186         isn't clobbered.
11187
11188 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
11189
11190         PR debug/42657
11191         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
11192         because its first operand is a non-localized variable.
11193
11194 2010-01-14  Martin Jambor  <mjambor@suse.cz>
11195
11196         PR tree-optimization/42706
11197         * tree-sra.c (encountered_recursive_call): New variable.
11198         (encountered_unchangable_recursive_call): Likewise.
11199         (sra_initialize): Initialize both new variables.
11200         (callsite_has_enough_arguments_p): New function.
11201         (scan_function): Call decl and flags check only for IPA-SRA, check
11202         whether there is a recursive call and whether it has enough arguments.
11203         (all_callers_have_enough_arguments_p): New function.
11204         (convert_callers): Look for recursive calls only when
11205         encountered_recursive_call is set.
11206         (ipa_early_sra): Bail out either if
11207         !all_callers_have_enough_arguments_p or
11208         encountered_unchangable_recursive_call.
11209
11210 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11211
11212         * sel-sched.c: Add 2010 to copyright years.
11213         * sel-sched-ir.c: Likewise.
11214         * sel-sched-ir.h: Likewise.
11215
11216 2010-01-14  Martin Jambor  <mjambor@suse.cz>
11217
11218         PR tree-optimization/42714
11219         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
11220         constructors specially.
11221
11222 2010-01-14  Andi Kleen  <ak@linux.intel.com>
11223
11224         * config/i386/drivers-i386.c (detect_caches_intel):
11225         Add l2sizekb parameter and fill in.
11226         (host_detect_local_cpu): Add l2sizekb, fill in.
11227         Add Atom small cache heuristic.
11228
11229 2010-01-14  Andi Kleen  <ak@linux.intel.com>
11230
11231         * config/i386/drivers-i386.c (detect_caches_cpuid4):
11232         Add level3 parameter and fill in.
11233         (detect_caches_intel): Handle level3 cache.
11234
11235 2010-01-14  Andi Kleen  <ak@linux.intel.com>
11236
11237         * config/i386/drivers-i386.c (host_detect_local_cpu):
11238         Fix core duo detection.
11239
11240 2010-01-14  Andi Kleen  <ak@linux.intel.com>
11241
11242         * config/i386/drivers-i386.c (host_detect_local_cpu):
11243         Fix Atom detection.
11244
11245 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11246
11247         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
11248         (rs6000_variable_issue_1): this.  Use...
11249         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
11250
11251 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11252
11253         * sel-sched-ir.c (sel_restore_other_notes): Rename to
11254         sel_restore_notes.  Update all callers.  Call reemit_notes
11255         for all insns.
11256
11257 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
11258
11259         PR rtl-optimization/42246
11260         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
11261         loops.
11262
11263 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
11264
11265         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
11266         all successors is the same as number of successors in current region.
11267
11268 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11269
11270         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
11271         to rename is not separable.  Otherwise check that its LHS is not NULL.
11272
11273 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11274
11275         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
11276
11277 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11278
11279         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
11280         available registers when failed to discover LHS register class.
11281         Fix indentation.  Update comment.
11282
11283 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
11284             Alexander Monakov  <amonakov@ispras.ru>
11285
11286         PR rtl-optimization/42389
11287         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
11288         to can_issue_more.
11289         (advance_state_on_fence): Likewise.
11290         (sel_target_adjust_priority): Print debug output only when
11291         sched_verbose >= 4, not 2.
11292         (get_expr_cost): Do not issue all unique insns on the next cycle.
11293         (fill_insns): Initialize can_issue_more from the value saved
11294         with the fence.
11295         * sel-sched-ir.c (flist_add): New parameter issue_more.
11296         Init FENCE_ISSUE_MORE with it.
11297         (merge_fences): Likewise.
11298         (init_fences): Update call to flist_add.
11299         (add_to_fences, add_clean_fence_to_fences)
11300         (add_dirty_fence_to_fences): Likewise.
11301         (move_fence_to_fences): Update call to merge_fences.
11302         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
11303         sched groups.
11304         * sel-sched-ir.h (struct _fence): New field issue_more.
11305         (FENCE_ISSUE_MORE): New accessor macro.
11306
11307 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
11308
11309         PR rtl-optimization/42388
11310         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
11311         that have no predecessors nor successors.  Do not call move_bb_info
11312         for empty blocks outside of current region.
11313
11314 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11315
11316         PR rtl-optimization/42294
11317         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
11318         * sel-sched.c (move_exprs_to_boundary): Transitively add all
11319         originators' originators.
11320
11321 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
11322
11323         PR rtl-optimization/39453
11324         PR rtl-optimization/42246
11325         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
11326         for pipelining_p.
11327         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
11328
11329 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
11330             Alexander Monakov  <amonakov@ispras.ru>
11331
11332         PR middle-end/42245
11333         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
11334         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
11335         argument.  Update all callers.
11336         (tidy_control_flow): ... and here.  Recompute topological order
11337         of basic blocks in region if necessary.
11338         (sel_redirect_edge_and_branch): Change return type.  Return true
11339         if topological order might have been invalidated.
11340         (purge_empty_blocks): Export and move from...
11341         * sel-sched.c (purge_empty_blocks): ... here.
11342         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
11343         (maybe_tidy_empty_bb): Delete prototype.
11344         (purge_empty_blocks): Declare.
11345
11346 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
11347
11348         PR rtl-optimization/42249
11349         * sel-sched.c (try_replace_dest_reg): When chosen register
11350         and original register is the same, do not bail out early, but
11351         still check all original insns for validity of replacing destination
11352         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
11353         in this case.
11354
11355 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
11356
11357         PR c/42721
11358         Port from no-undefined-overflow branch:
11359         2009-03-09  Richard Guenther  <rguenther@suse.de>
11360
11361         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
11362
11363 2010-01-14  Richard Guenther  <rguenther@suse.de>
11364
11365         PR lto/42665
11366         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
11367
11368 2010-01-14  Ira Rosen  <irar@il.ibm.com>
11369
11370         PR tree-optimization/42709
11371         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
11372         as scalar type in creation of constant vector operand.
11373
11374 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11375
11376         PR testsuite/42414
11377         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
11378         (check-parallel-%): Match `testsuite' directory component only
11379         at the end.
11380
11381 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
11382
11383         PR translation/39521
11384         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
11385         strings with _().
11386
11387 2010-01-13  Richard Guenther  <rguenther@suse.de>
11388
11389         PR tree-optimization/42730
11390         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
11391         offset zero.
11392
11393 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
11394
11395         PR target/pr42542
11396         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
11397         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
11398         them signed.
11399
11400 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
11401
11402         * config/bfin/libgcc-bfin.ver: Regenerate based on current
11403         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
11404         ___umulsi3_highpart.
11405
11406         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
11407         rather than schedule_insns if the pass is enabled.
11408
11409 2010-01-13  Martin Jambor  <mjambor@suse.cz>
11410
11411         PR tree-optimization/42704
11412         * tree-sra.c (sra_modify_assign): Do not delete assignments to
11413         SSA_NAMEs.
11414
11415 2010-01-13  Martin Jambor  <mjambor@suse.cz>
11416
11417         PR tree-optimization/42703
11418         * tree-sra.c (analyze_access_subtree): Check that we can build a
11419         reference to the original data within the aggregate.
11420
11421 2010-01-13  Richard Guenther  <rguenther@suse.de>
11422
11423         PR tree-optimization/42705
11424         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
11425
11426 2010-01-13  Richard Guenther  <rguenther@suse.de>
11427
11428         PR middle-end/42716
11429         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
11430
11431 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
11432
11433         PR debug/41371
11434         * var-tracking.c (values_to_unmark): New variable.
11435         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
11436         values_to_unmark vector.  Moved body to...
11437         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
11438         instead queue it into values_to_unmark vector.
11439         (vt_find_locations): Free values_to_unmark vector.
11440
11441 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
11442
11443         * config/s390/s390.c (override_options): Set
11444         default of max-pending-list-length to 256
11445
11446 2010-01-13  Richard Guenther  <rguenther@suse.de>
11447
11448         PR lto/42678
11449         * tree-pass.h (PROP_gimple_lcx): New.
11450         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
11451         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
11452         before the final cleanup_eh.
11453         (dump_properties): Dump PROP_gimple_lcx.
11454         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
11455         (tree_lower_complex_O0): Remove.
11456         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
11457         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
11458         tree_lower_complex, schedule TODO_update_ssa.
11459         * lto-streamer-out.c (output_function): Stream the functions
11460         properties.
11461         * lto-streamer-in.c (input_function): Likewise.
11462         (lto_read_body): Do not override them here.
11463
11464 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
11465
11466         PR c/42708
11467         * c-typeck.c (build_c_cast): Fold value cast to union type before
11468         wrapping it in a CONSTRUCTOR.
11469
11470 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
11471
11472         PR rtl-optimization/42699
11473         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
11474         involved.
11475
11476 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11477
11478         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
11479         SUBTARGET_WARN_UNUSED_SPEC): Move ...
11480         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
11481         SUBTARGET_WARN_UNUSED_SPEC): ... here
11482         * config/mips/iris5.h (LIBGCC_SPEC): Define.
11483
11484 2010-01-12  Julian Brown  <julian@codesourcery.com>
11485
11486         * config/arm/neon-schedgen.ml (Utils): Don't try to
11487         open missing module.
11488         (find_with_result): New.
11489
11490 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
11491
11492         PR debug/42662
11493         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
11494         sharing when canonicalizing ({lt,ge}u (plus a b) b).
11495
11496         PR tree-optimization/42645
11497         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
11498         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
11499         decl_map, set processing_debug_stmt to -1 and return name without
11500         any remapping.
11501
11502 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
11503
11504         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
11505         binutils version, and reword target configuration description.
11506
11507 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
11508
11509         * config/avr/avr.h (LINKER_NAME): Remove.
11510
11511 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
11512
11513         PR target/42416
11514         * config/rs6000/rs6000.c (rs6000_override_options): On targets
11515         that support VSX, warn for -mno-altivec if vsx is not disabled,
11516         and disable vsx.
11517
11518 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
11519             Shujing Zhao  <pearly.zhao@oracle.com>
11520
11521         PR translation/42469
11522         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
11523         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
11524         character between option name and help text.
11525         * c.opt (imultilib): Likewise.
11526
11527 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
11528
11529         * lto-streamer-out.c (output_unreferenced_globals): Output static
11530         variables.
11531
11532 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
11533
11534         PR rtl-optimization/42621
11535         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
11536         optimizing for size.
11537         (duplicate_computed_gotos): Remove now-redundant check.
11538
11539 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
11540
11541         PR target/37454
11542         * configure.ac: Save and restore LDFLAGS and LIBS
11543         * configure: Regenerate.
11544
11545 2010-01-10  Richard Guenther  <rguenther@suse.de>
11546
11547         PR middle-end/42667
11548         * builtins.c (fold_builtin_strlen): Add type argument and
11549         convert the resulting length to it.
11550         (fold_builtin_1): Adjust.
11551
11552 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
11553
11554         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
11555         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
11556         1 insn.
11557         (num_insns_constant_wide): Adjust for that change.
11558
11559 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11560
11561         PR debug/42631
11562         * web.c (union_defs): Add used argument, to combine uses of
11563         uninitialized regs.
11564         (entry_register): Adjust type and tests of used argument.
11565         (web_main): Widen used for new use.  Pass it to union_defs.
11566         * df.h (union_defs): Adjust prototype.
11567
11568 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11569
11570         PR debug/42630
11571         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
11572         uses in new incoming argument.  Free body.
11573         (reset_debug_uses_in_loop): New.
11574         (analyze_insn_to_expand_var): Call the latter if the former found
11575         anything.  Fix whitespace.  Reject invalid dest overlaps before
11576         going through all insns in the loop.
11577
11578 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11579
11580         PR debug/42629
11581         * haifa-sched.c (dying_use_p): Debug insns don't count.
11582
11583 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11584
11585         PR middle-end/42363
11586         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
11587         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
11588         (verify_gimple_call): Reject LHS in noreturn calls.
11589
11590 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11591
11592         PR debug/42604
11593         PR debug/42395
11594         * tree-vect-loop-manip.c (adjust_info): New type.
11595         (adjust_vec): New pointer to vector.
11596         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
11597         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
11598         (slpeel_update_phis_for_duplicate_loop): Use them.
11599         (slpeel_update_phi_nodes_for_guard1): Likewise.
11600         (slpeel_update_phi_nodes_for_guard2): Likewise.
11601         (slpeel_tree_peel_loop_to_edge): Likewise.
11602         (vect_update_ivs_after_vectorizer): Likewise.
11603
11604 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11605
11606         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
11607         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
11608
11609 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11610
11611         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
11612         bogus uninitialized warning.
11613
11614 2010-01-09  Richard Guenther  <rguenther@suse.de>
11615
11616         PR middle-end/42512
11617         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
11618         the evolution is compatible with the initial condition.
11619
11620 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
11621
11622         * gcc.c (process_command): Update copyright notice dates.
11623         * gcov.c (print_version): Likewise.
11624         * gcov-dump.c (print_version): Likewise.
11625         * mips-tfile.c (main): Likewise.
11626         * mips-tdump.c (main): Likewise.
11627
11628 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
11629
11630         PR target/41885
11631         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
11632         (rotlhi3): Delete.
11633         (rotlhi3_8): Delete.
11634         (rotlsi3): Delete.
11635         (rotlsi3_8): Delete.
11636         (rotlsi3_16): Delete.
11637         (rotlsi3_24): Delete.
11638         (rotl<mode>3): New.
11639         (*rotw<mode>3): New.
11640         (*rotb<mode>3): New.
11641         * config/avr/avr.c (avr_rotate_bytes): New function.
11642         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
11643
11644 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
11645
11646         PR target/37454
11647         * configure.ac: Modify -rdynamic check.
11648         * configure: Regenerate.
11649
11650 2010-01-08  DJ Delorie  <dj@redhat.com>
11651
11652         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
11653         register popping order.
11654
11655 2010-01-08  Richard Guenther  <rguenther@suse.de>
11656
11657         PR lto/42528
11658         * c.opt (fsigned-char): Also let LTO handle this option.
11659         (funsigned-char): Likewise.
11660
11661 2010-01-07  Richard Guenther  <rguenther@suse.de>
11662
11663         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
11664         (gimple_op): Likewise.
11665         (gimple_op_ptr): Likewise.
11666         (gimple_assign_set_lhs): Remove gcc_assert.
11667         (gimple_assign_set_rhs1): Likewise.
11668         (gimple_assign_set_rhs2): Likewise.
11669         (gimple_call_set_lhs): Likewise.
11670         (gimple_call_set_fn): Likewise.
11671         (gimple_call_set_fndecl): Likewise.
11672         (gimple_call_fndecl): Likewise.
11673         (gimple_call_return_type): Likewise.
11674         (gimple_call_set_chain): Likewise.
11675         (gimple_call_num_args): Likewise.
11676         (gimple_call_set_arg): Likewise.
11677         (gimple_cond_set_code): Likewise.
11678         (gimple_cond_set_lhs): Likewise.
11679         (gimple_cond_set_rhs): Likewise.
11680         (gimple_cond_set_true_label): Likewise.
11681         (gimple_cond_set_false_label): Likewise.
11682         (gimple_label_set_label): Likewise.
11683         (gimple_goto_set_dest): Likewise.
11684         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
11685         (gimple_debug_bind_get_value): Likewise.
11686         (gimple_debug_bind_get_value_ptr): Likewise.
11687         (gimple_debug_bind_set_var): Likewise.
11688         (gimple_debug_bind_set_value): Likewise.
11689         (gimple_debug_bind_reset_value): Likewise.
11690         (gimple_debug_bind_has_value_p): Likewise.
11691         (gimple_return_retval_ptr): Remove gcc_assert.
11692         (gimple_return_retval): Likewise.
11693         (gimple_return_set_retval): Likewise.
11694         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
11695         (safe_referenced_var_iterator): Remove.
11696         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
11697         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
11698         (fill_referenced_var_vec): Remove.
11699         (first_readonly_imm_use): Remove redundant gcc_assert.
11700         (phi_arg_index_from_use): Combine gcc_asserts.
11701         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
11702         (first_imm_use_stmt): Remove redundant gcc_assert.
11703         * tree-cfg.c (verify_gimple_call): Verify function and chain
11704         operands.  Verify arguments.
11705         (verify_types_in_gimple_stmt): Verify condition code and labels.
11706
11707 2010-01-07  Richard Guenther  <rguenther@suse.de>
11708
11709         PR tree-optimization/42641
11710         * sese.c (rename_map_elt_info): Use the SSA name version, do
11711         not hash pointers.
11712
11713 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
11714
11715         PR tree-optimization/42625
11716         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
11717         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
11718
11719 2010-01-07  Duncan Sands  <baldrick@free.fr>
11720
11721         * Makefile.in (PLUGIN_HEADERS): Add version.h.
11722
11723 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
11724
11725         PR target/42511
11726         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
11727         note itself is not function_invariant_p.
11728
11729 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
11730
11731         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
11732         Do not add the DF_NOTE problem.
11733         * store-motion.c (execute_rtl_store_motion): Likewise.
11734
11735 2010-01-07  Martin Jambor  <mjambor@suse.cz>
11736
11737         PR tree-optimization/42157
11738         * tree-sra.c (compare_access_positions): Stabilize sort if both
11739         accesses have integer types, return zero immediately if they are the
11740         same.
11741
11742 2010-01-06  Richard Henderson  <rth@redhat.com>
11743
11744         PR middle-end/41883
11745         * haifa-sched.c (add_to_note_list): Merge into ...
11746         (concat_note_lists): ... here, and ...
11747         (unlink_other_notes, rm_other_notes): Merge into...
11748         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
11749         NOTE_INSN_EPILOGUE_BEG.
11750
11751 2010-01-06  Richard Guenther  <rguenther@suse.de>
11752
11753         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
11754         not inline regular functions into always-inline functions.
11755
11756 2010-01-06  Nick Clifton  <nickc@redhat.com>
11757
11758         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
11759         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
11760         used together.
11761         (OVERRIDE_OPTIONS): Delete.
11762         (OPTIMIZATION_OPTIONS): Define.
11763         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
11764         * config/rx/rx.c (rx_handle_option): Issue an error message if
11765         -mcpu=rx200 and -fpu are used together.
11766         (rx_set_optimization_options): New function.  Issue an error
11767         message if an optimization attribute attempts to reset the FPU/
11768         math optimization pairing.
11769         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
11770         * config/rx/rx.opt: Set the default to 32-bit doubles.
11771         * config/rx/t-rx: Add multilibs for -nofpu option.
11772         * doc/invoke.texi: Update documentation of RX options.
11773
11774 2010-01-06  Richard Guenther  <rguenther@suse.de>
11775
11776         * tree-ssa-pre.c (name_to_id): New global.
11777         (alloc_expression_id): Simplify SSA name handling.
11778         (lookup_expression_id): Likewise.
11779         (init_pre): Zero name_to_id.
11780         (fini_pre): Free it.
11781
11782 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
11783
11784         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
11785
11786 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
11787
11788         PR target/42542
11789         * config/i386/sse.md (smaxv2di3): New.
11790         (umaxv2di3): Likewise.
11791         (sminv2di3): Likewise.
11792         (uminv2di3): Likewise.
11793
11794 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
11795
11796         PR target/42564
11797         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
11798         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
11799         (legitimize_tls_address): Likewise.
11800         (sparc_tls_referenced_p): Likewise.
11801         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
11802         and adjust calls to legitimize_pic_address.
11803         (legitimate_constant_p) Use sparc_tls_referenced_p.
11804         (legitimate_pic_operand_p): Likewise.
11805         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
11806         (sparc_tls_symbol_ref_1): Delete.
11807         (sparc_tls_referenced_p): Make static, recognize specific patterns.
11808         (legitimize_tls_address): Make static, handle CONST patterns.
11809         (legitimize_pic_address): Make static, remove unused parameter and
11810         adjust recursive calls.
11811         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
11812         and adjust call to legitimize_pic_address.
11813         (sparc_output_mi_thunk): Likewise.
11814
11815 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
11816             H.J. Lu  <hongjiu.lu@intel.com>
11817
11818         PR target/42542
11819         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
11820         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
11821         operands to make them signed.
11822
11823         Revert:
11824         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11825
11826         PR target/42542
11827         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11828         GTU to GT for V4SI and V2DI.
11829
11830         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11831         (umin<mode>3): Removed.
11832         (uminv8hi3): New.
11833         (uminv4si3): Likewise.
11834
11835 2010-01-05  Martin Jambor  <mjambor@suse.cz>
11836
11837         PR tree-optimization/42462
11838         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
11839         current_function_decl to helper functions and macros.
11840
11841 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11842
11843         PR bootstrap/41771
11844         * flags.h: Don't include real.h.
11845         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
11846         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
11847         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
11848         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
11849         * dominance.c: Update copyright.
11850         * gimple.c (walk_gimple_op): Remove inline.
11851         * tree-ssa-reassoc.c: Include real.h.
11852         * Makefile.in (FLAGS_H): Remove $(REAL_H).
11853         (tree-ssa-reassoc.o): Depend on $(REAL_H).
11854
11855 2010-01-05  Nick Clifton  <nickc@redhat.com>
11856
11857         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
11858         register to push into the stack frame when the accumulator has to
11859         be saved during interrupts.
11860
11861 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
11862
11863         * doc/invoke.texi: Remove the documentation about option
11864         -Wunreachable-code.
11865         * common.opt (Wunreachable-code):  Preserved for backward
11866         compatibility.
11867         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
11868         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
11869         the backward compatibility flag section.
11870
11871 2010-01-05  Richard Guenther  <rguenther@suse.de>
11872
11873         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
11874
11875 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
11876
11877         PR other/42611
11878         * cfgexpand.c (expand_one_var): Diagnose too large variables.
11879
11880         PR tree-optimization/42508
11881         * tree-sra.c (convert_callers): Check for recursive call
11882         by comparing cgraph nodes instead of decls.
11883         (modify_function): Call ipa_modify_formal_parameters also
11884         on all same_body aliases.
11885
11886         * cgraphunit.c (cgraph_materialize_all_clones): Compare
11887         cgraph nodes when checking for same_body aliases.
11888
11889 2010-01-05  Richard Guenther  <rguenther@suse.de>
11890
11891         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
11892         allocation and lookup.
11893         (get_or_alloc_expr_for_constant): Likewise.
11894         (phi_translate): Sink allocation.
11895
11896 2010-01-04  Richard Guenther  <rguenther@suse.de>
11897
11898         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
11899         a new entry only if needed.
11900         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
11901         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
11902         hashtable lookup.
11903         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
11904         the result array.
11905         (phi_translate): Handle CONSTANTs early.
11906
11907 2010-01-04  Martin Jambor  <mjambor@suse.cz>
11908
11909         PR tree-optimization/42398
11910         * tree-sra.c (struct access): Removed flag grp_different_types.
11911         (dump_access): Do not dump the removed flag.
11912         (sort_and_splice_var_accesses): Do not set the removed flag.
11913         (sra_modify_expr): Check for type compatibility directly.
11914
11915 2010-01-04  Martin Jambor  <mjambor@suse.cz>
11916
11917         PR tree-optimization/42366
11918         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
11919         edges with variable number of parameters.
11920         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
11921         flag instead of asserting it.
11922         (ipa_read_node_info): Read uses_analysis_done flag.
11923
11924 2010-01-04  Richard Guenther  <rguenther@suse.de>
11925
11926         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
11927         iterative_hash_* as intended.
11928         (vn_reference_compute_hash): Likewise.  Simplify hashing
11929         SSA names.
11930         (vn_reference_lookup_2): Likewise.
11931         (vn_nary_op_compute_hash): Likewise.
11932         (vn_phi_compute_hash): Likewise.
11933         (expressions_equal_p): Remove strange code.
11934         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
11935         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
11936         (bitmap_insert_into_set_1): Take value-id as parameter.
11937         (add_to_value): Pass it.
11938         (bitmap_insert_into_set): Likewise.
11939         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
11940
11941 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
11942
11943         PR driver/42442
11944         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
11945         (do_self_spec): For switches with SWITCH_IGNORE set set also
11946         SWITCH_IGNORE_PERMANENTLY.
11947         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
11948         of SWITCH_IGNORE.
11949
11950 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
11951
11952         * lto-streamer-out.c (output_unreferenced_globals): Output the full
11953         tree of an unreferenced global var.
11954
11955 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11956
11957         PR target/42542
11958         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11959         GTU to GT for V4SI and V2DI.
11960
11961         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11962         (umin<mode>3): Removed.
11963         (uminv8hi3): New.
11964         (uminv4si3): Likewise.
11965
11966 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11967
11968         PR lto/42581
11969         * collect2.c (main): Turn on trace in collect2 if -v is passed
11970         to gcc with LTO.
11971
11972 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
11973
11974         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
11975         description of expression operand.
11976
11977 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
11978
11979         * configure.ac: Add install-html to target_list for Make-hooks.
11980         * configure: Regenerate.
11981         * fortran/Make-lang.in (F95_HTMLFILES): New.
11982         (fortran.html): Use it.
11983         (fortran.install-html): New.
11984         * Makefile.in (install-html): Add lang.install-html.
11985         * java/Make-lang.in (JAVA_HTMLFILES): New.
11986         (java.html): Use it.
11987         (java.install-html): New.
11988         * objc/Make-lang.in (objc.install-html): New.
11989         * objcp/Make-lang.in (obj-c++.install-html): New.
11990         * cp/Make-lang.in (c++.install-html): New.
11991         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
11992         * lto/Make-lang.in (lto.install-html): New.
11993
11994 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
11995
11996         PR lto/42520
11997         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
11998
11999 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
12000
12001         PR rtl-optimization/41862
12002         * store-motion.c (store_killed_in_insn, compute_store_table,
12003         remove_reachable_equiv_notes, replace_store_insn,
12004         build_store_vectors): Ignore all DEBUG_INSNs.
12005
12006 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
12007
12008         PR lto/41564
12009         * common.opt: Add dumpdir.
12010
12011         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
12012         isn't specified.
12013         (option_map): Add --dumpdir.
12014
12015         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
12016
12017         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
12018
12019         * opts.c (decode_options): Try dump_dir_name first if
12020         dump_base_name isn't an absolute path.
12021         (common_handle_option): Handle OPT_dumpdir.
12022
12023         * toplev.c (dump_dir_name): New.
12024         (print_switch_values): Also ignore -dumpdir.
12025
12026         * toplev.h (dump_dir_name): New.
12027
12028 2010-01-03  Richard Guenther  <rguenther@suse.de>
12029
12030         PR tree-optimization/42589
12031         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
12032         double-word expansion of bswap32.
12033
12034 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
12035
12036         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
12037         with BLOCK_FOR_INSN.
12038         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
12039         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
12040         noce_process_if_block): Likewise.
12041         * gcse.c (compute_local_properties, insert_expr_in_table,
12042         insert_set_in_table, canon_list_insert, find_avail_set,
12043         pre_insert_copy_insn): Likewise.
12044
12045         * basic-block.h (BLOCK_NUM): Move from here...
12046         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
12047
12048 2010-01-03  Richard Guenther  <rguenther@suse.de>
12049
12050         PR tree-optimization/42438
12051         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
12052         contains_may_not_return_call flag.
12053         (BB_MAY_NOTRETURN): New.
12054         (valid_in_sets): Trapping nary operations are not valid
12055         in blocks that may not return.
12056         (insert_into_preds_of_block): Remove check for trapping expressions.
12057         (compute_avail): Compute also BB_MAY_NOTRETURN.
12058
12059 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
12060
12061         * doc/invoke.texi: Add 2010 to copyright years.
12062
12063 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
12064
12065         * config/sparc/sparc.c: Fix formatting nits.
12066
12067 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
12068             Alexander Monakov  <amonakov@ispras.ru>
12069
12070         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
12071
12072 2010-01-02  Richard Guenther  <rguenther@suse.de>
12073
12074         PR middle-end/42577
12075         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
12076         (simplify_switch_using_ranges): Mark to be removed edges
12077         as non-executable.
12078
12079 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12080
12081         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
12082
12083         * collect2.c (scan_libraries): Add missing argument in call to
12084         scan_prog_file.
12085
12086 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
12087
12088         PR target/42448
12089         * config/alpha/predicates.md (aligned_memory_operand): Return false
12090         for CQImode.
12091         (unaligned_memory_operand): Return true for CQImode.
12092         * config/alpha/alpha.c (get_aligned_mem): Assert that location
12093         doesn not cross aligned SImode word boundary.
12094
12095 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
12096
12097         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
12098         Remove.
12099         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
12100         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
12101
12102 2010-01-02  Richard Guenther  <rguenther@suse.de>
12103
12104         PR lto/41597
12105         * toplev.c (compile_file): Emit LTO marker properly.  Change
12106         it to __gnu_lto_v1.
12107         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
12108
12109 2010-01-01  Richard Guenther  <rguenther@suse.de>
12110
12111         PR debug/42455
12112         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
12113
12114 2010-01-01  Richard Guenther  <rguenther@suse.de>
12115
12116         PR c/42570
12117         * c-decl.c (grokdeclarator): For zero-size arrays force
12118         structural equality checks as layout_type does.
12119
12120 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
12121
12122         * builtins.c: Update copyright to 2010.
12123
12124 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
12125
12126         PR lto/42531
12127         * lto-streamer-out.c (produce_asm): Revert the last change.
12128         (copy_function): Likewise.
12129
12130         * lto-streamer.c (lto_get_section_name): Skip any leading
12131         asterisk in name.
12132
12133 2010-01-01  Richard Guenther  <rguenther@suse.de>
12134
12135         PR middle-end/42559
12136         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
12137         for LABEL_DECLs.
12138
12139 \f
12140 Copyright (C) 2010 Free Software Foundation, Inc.
12141
12142 Copying and distribution of this file, with or without modification,
12143 are permitted in any medium without royalty provided the copyright
12144 notice and this notice are preserved.