OSDN Git Service

* c-decl.c: Don't include gimple.h.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
2
3         * c-decl.c: Don't include gimple.h.
4         (merge_decls): Do not copy gimple_body.
5
6 2010-05-15  Jason Merrill  <jason@redhat.com>
7
8         * c.opt: Add -fnothrow-opt.
9
10 2010-05-15  Jan Hubicka  <jh@suse.cz>
11
12         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is analyzed.
13         * passes.c (ipa_write_summaries): Write all analyzed nodes.
14
15 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
16
17         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
18         * Makefile.in: Add it.
19         Fix all other Makefile dependencies for changes below.
20         * tree.h: Include it instead of defining VEC primitives here.
21         * gimple.h: Likewise.
22         * rtl.h: Likewise.
23         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
24         * except.h: Include vecir.h, break dependence on tree.h.
25
26         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
27         Move from here...
28         * tree-iterator.c: ...to here.
29         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
30
31         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
32         tm_p.h.
33         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
34         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
35         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
36         tree-mudflap.h, and target.h.
37         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
38         predict.h, tree-inline.h, gimple.h, and langhooks.h.
39         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
40         Add FIXME for why gimple.h is still included (should be unnecessary
41         since GCC 4.5 gimplification unit-at-a-time).
42         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
43         * c-pragma.c: Add FIXME for why function.h needs to be included just
44         for cfun, at front-end level.
45         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
46         Do not include ggc.h, but include vecprim.h for VEC(char).
47         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
48         Explain why target.h is included.
49         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
50         Explain why gimple.h is included.
51         * c-ppoutput.c: Do not include tm.h.
52         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
53         * c-parses.c: Explain why rtl.h is included, and that this (and only
54         this) is also why tm.h must be included.
55         Do not include except.h.
56         * c-lang.c: Do not include ggc.h.
57
58 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
59
60         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
61
62 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
63
64         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
65         unions by default if those structs and unions have no tags.  Do
66         not condition anonymous struct and unions handling on flag_iso.
67         Allow anonymous structs and unions for C1X.
68         (finish_struct): Do not diagnose lack of named fields when
69         anonymous structs and unions present for C1X.  Accept flexible
70         array members in structure with anonymous structs or unions but no
71         directly named fields.
72         * doc/extend.texi (Unnamed Fields): Update.
73
74 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
75
76         * gimple.h (compare_field_offset): Rename into...
77         (gimple_compare_field_offset): ...this.
78         * gimple.c (compare_field_offset): Rename into...
79         (gimple_compare_field_offset): ...this.  Compare the full access if
80         the offset is self-referential.
81         (gimple_types_compatible_p): Adjust for above renaming.
82         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
83         DECL_NONADDRESSABLE_P flag of fields before merging them.
84
85 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
86
87         * tree.h (ctor_to_list): Delete.
88         * tree.c (ctor_to_list): Delete.
89
90 2010-05-15  Jan Hubicka  <jh@suse.cz>
91
92         * ipa-reference.c: Include toplev.h
93         (is_proper_for_analysis): Only add to all_module_statics
94         if it is allocated.
95         (write_node_summary_p, stream_out_bitmap,
96         ipa_reference_write_optimization_summary,
97         ipa_reference_read_optimization_summary): New.
98         (struct ipa_opt_pass_d pass_ipa_reference): Add
99         optimization summary streaming.
100         * lto-cgraph.c (referenced_from_this_partition_p,
101         reachable_from_this_partition_p): New functions.
102         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
103         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
104         * opts.c (decode_options): Enable ipa_reference.
105         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
106         * lto-streamer.h (referenced_from_this_partition_p,
107         reachable_from_this_partition_p): Declare.
108
109 2010-05-15  Richard Guenther  <rguenther@suse.de>
110
111         PR tree-optimization/44038
112         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
113         taking the address of a V_C_E of a constant.
114
115 2010-05-14  Jan Hubicka  <jh@suse.cz>
116
117         * tree.h (memory_identifier_string): Remove.
118         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
119         (ipa_reference_global_vars_info_d): Remove statics_not_read and
120         statics_not_written.
121         (ipa_reference_optimization_summary_d): New structure.
122         (ipa_reference_optimization_summary_t): New type and vector.
123         (ipa_reference_vars_info_d): Embedd structures instead of using
124         pointers.
125         (reference_vars_to_consider): Remove out of GGC space.
126         (module_statics_escape): Remove.
127         (global_info_obstack): Rename to ...
128         (optimization_summary_obstack): ... this one.
129         (initialization_status_t): Remove.
130         (memory_identifier_string): Remove.
131         (get_reference_vars_info): Fix indenting.
132         (set_reference_vars_info): Likewise.
133         (get_reference_optimization_summary): New.
134         (set_reference_optimization_summary): New.
135         (get_global_reference_vars_info): Remove.
136         (ipa_reference_get_read_global): Remove.
137         (ipa_reference_get_written_global): Remove.
138         (ipa_reference_get_not_read_global): Update.
139         (ipa_reference_get_not_written_global): Update.
140         (is_proper_for_analysis): Outlaw addressable.
141         (propagate_bits): Update for new datastructures.
142         (analyze_variable): Remove.
143         (init_function_info): Update for new datastructures.
144         (clean_function_local_data): Remove.
145         (clean_function): Remove.
146         (copy_global_bitmap): Use optimizations_summary_obstack.
147         (duplicate_node_data): Duplicate optimization summary only.
148         (remove_node_data): Remove optimization summary only.
149         (generate_summary): Do not analyze variables; do not compute
150         module_statics_escape; do not prune solutions by it.
151         (read_write_all_from_decl): Fix typos in comments.
152         (propagate): Doscover readonly and nonaddressable first;
153         update for new datastructures; share global bitmaps.
154         * ipa-reference.h (ipa_reference_get_read_global,
155         ipa_reference_get_written_global): Remove.
156         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
157         * Makefile.in: Remove ipa-refereference from GT files.
158
159 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
160
161         PR debug/44112
162         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
163         for all SYMBOL_REF_DECLs.
164
165 2010-05-14  Jan Hubicka  <jh@suse.cz>
166
167         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
168         (varpool_all_refs_explicit_p): New inline function.
169         * ipa-reference.c: Update comment.
170         (module_statics_written): Remove.
171         (get_static_decl): Remove.
172         (ipa_init): Do not initialize module_statics_written.
173         (analyze_function): Likewise.
174         (generate_summary): Likewise; do not compute module_statics_readonly
175         and do not update variable flags.
176         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
177         * ipa.c: Inlucde flags.h
178         (cgraph_local_node_p): New.
179         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
180         promote functions to local.
181         (ipa_discover_readonly_nonaddressable_vars): New function.
182         (function_and_variable_visibility): Use cgraph_local_node_p.
183         * varpool.c (varpool_finalize_decl): Set force_output for
184         DECL_PRESERVE_P vars.
185
186 2010-05-14  Jan Hubicka  <jh@suse.cz>
187
188         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
189
190 2010-05-14  Richard Guenther  <rguenther@suse.de>
191
192         PR tree-optimization/44119
193         * tree-ssa-pre.c (eliminate): Properly mark replacement of
194         a PHI node necessary.
195
196 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
197
198         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
199
200 2010-05-14  Jason Merrill  <jason@redhat.com>
201
202         PR c++/44127
203         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
204         (gimple_call_set_nothrow): New.
205         * gimple.c (gimple_build_call_from_tree): Call it.
206         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
207
208         PR c++/44127
209         * gimplify.c (gimplify_seq_add_stmt): No longer static.
210         * gimple.h: Declare it.
211         * gimple.c (gimple_build_eh_filter): No ops.
212
213 2010-05-14  Jan Hubicka  <jh@suse.cz>
214
215         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
216         nodes already in queue.
217         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
218         re-enqueueing node.
219
220 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
221
222         PR debug/44136
223         * cfgexpand.c (expand_debug_expr): If non-memory op0
224         has BLKmode, return NULL.
225
226 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
227
228         * config.gcc: Add support for --with-cpu option for bdver1.
229         * config/i386/i386.h (TARGET_BDVER1): New macro.
230         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
231         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
232         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
233         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
234         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
235         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
236         (processor_type): Add PROCESSOR_BDVER1.
237         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
238         processor_type in config/i386/i386.h.
239         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
240         movaps <reg, reg> instead of movapd <reg, reg> when replacing
241         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
242         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
243         to emit packed xor instead of packed double/packed integer
244         xor for SSE and AVX when moving a zero value.
245         * config/i386/sse.md: Add check for
246         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
247         movapd/movdqa for SSE and AVX.
248         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
249         single logical operations i.e and, or and xor instead of packed double
250         logical operations for SSE and AVX.
251         * config/i386/i386-c.c (ix86_target_macros_internal):
252         Add PROCESSOR_BDVER1.
253         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
254         (has_fma4, has_xop): New.
255         * config/i386/i386.c (bdver1_cost): New variable.
256         (m_BDVER1): New macro.
257         (m_AMD_MULTIPLE): Add m_BDVER1.
258         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
259         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
260         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
261         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
262         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
263         x86_tune_sse_partial_reg_dependency,
264         x86_tune_sse_unaligned_load_optimal,
265         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
266         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
267         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
268         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
269         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
270         Enable/disable for bdver1.
271         (processor_target_table): Add bdver1_cost.
272         (cpu_names): Add bdver1.
273         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
274          processor_alias_table.
275         (ix86_expand_vector_move_misalign): Change.
276         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
277         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
278         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
279         of movupd/movdqu for SSE and AVX.
280         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
281         (ix86_tune_adjust_cost): Add code for bdver1.
282         (standard_sse_constant_opcode): Add check for
283         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
284         of packed double xor for SSE and AVX.
285
286 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
287
288         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
289         result to unsigned.
290
291 2010-05-14  Tristan Gingold  <gingold@adacore.com>
292
293         * toplev.c (default_debug_hooks): Remove this variable.
294         (process_options): Remove assignments to default_debug_hooks.
295
296 2010-05-14  Martin Jambor  <mjambor@suse.cz>
297
298         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
299         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
300         * langhooks.h (struct lang_hooks_for_decls): Removed field
301         fold_obj_type_ref.
302         * tree.c (free_lang_data): Remove assignment to
303         lang_hooks.fold_obj_type_ref.
304         * tree.def (OBJ_TYPE_REF): Update comment.
305
306 2010-05-14  Richard Guenther  <rguenther@suse.de>
307
308         PR tree-optimization/44124
309         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
310
311 2010-05-14  Alan Modra  <amodra@gmail.com>
312
313         PR target/44075
314         * config/rs6000/rs6000.c (struct machine_function): Reorder
315         fields for better packing.  Add lr_save_state.
316         (rs6000_ra_ever_killed): Return lr_save_state if set.
317         (rs6000_emit_eh_reg_restore): Set lr_save_state.
318
319 2010-05-13  Jan Hubicka  <jh@suse.cz>
320
321         * varpool.c (decide_is_variable_needed): Drop code checking
322         TREE_SYMBOL_REFERENCED.
323
324 2010-05-13  Jan Hubicka  <jh@suse.cz>
325
326         * final.c (output_addr_const): Do not call mark_decl_referenced.
327         * cgraphunit.c (process_function_and_variable_attributes): Use
328         mark_needed_node dirrectly.
329         (assemble_thunk): Do not call mark_decl_referenced.
330
331 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
332
333         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
334
335 2010-05-13  Jeff Law  <law@redhat.com>
336
337         * ira-conflicts.c (print_allocno_conflicts): New function broken out
338         from...
339         (print_conflicts): Call print_allocno_conflicts.
340
341 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
342
343         PR debug/44104
344         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
345         if it is NULL.
346
347 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
348
349         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
350         t-mingw-w64 or t-mingw-w32 for multilib configuration.
351         * config/i386/t-mingw-w32: New.
352         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
353
354 2010-05-13  Martin Jambor  <mjambor@suse.cz>
355
356         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
357         gimple-fold.c).
358         * gimple-fold.c (get_base_binfo_for_type): New function.
359         (gimple_get_relevant_ref_binfo): Likewise.
360         (gimple_fold_obj_type_ref_known_binfo): Likewise.
361         (gimple_fold_obj_type_ref): Likewise.
362         (fold_gimple_call): Simplify condition for folding virtual calls
363         and call gimple_fold_obj_type_ref.
364         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
365         (gimple_fold_obj_type_ref_known_binfo): Likewise.
366
367 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
368
369         * config/rs6000/rs6000-protos.h
370         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
371         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
372         (rs6000_debug_mode_dependent_address)
373         (rs6000_mode_dependent_address_ptr): Likewise.
374
375 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
376
377         PR debug/43983
378         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
379         by SRA.
380         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
381         * tree-sra.c (create_access_replacement): Call unshare_expr before
382         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
383         * dwarf2out.c: Include tree-flow.h.
384         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
385         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
386         Handle DW_OP_bit_piece.
387         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
388         construct_piece_list, adjust_piece_list): New functions.
389         (add_var_loc_to_decl): Handle SRA optimized variables.
390         Adjust for var_loc_note to loc field renaming.
391         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
392         in VAR_LOCATION note.
393         (new_loc_descr_op_bit_piece): New function.
394         (dw_sra_loc_expr): New function.
395         (dw_loc_list): Use it.  Don't handle the last range after the
396         loop, handle it inside of the loop.  Adjust for var_loc_note
397         to loc field renaming.
398         (add_location_or_const_value_attribute): Only special case
399         single entry loc lists if loc is NOTE_P.  Adjust for
400         var_loc_note to loc field renaming.
401         (dwarf2out_var_location): Don't set newloc->var_loc_note
402         and newloc->next here.
403
404 2010-05-12  Jan Hubicka  <jh@suse.cz>
405
406         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
407         flag.
408         * cgraph.h (cgraph_only_called_directly_p,
409         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
410         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
411         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
412         (assemble
413         * ipa.c (cgraph_remove_unreachable_nodes): Use
414         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
415         flags.
416         * tree-inline.c (copy_bb): Check address_taken flag.
417         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
418         externally_visible flag.
419
420 2010-05-12  Jason Merrill  <jason@redhat.com>
421
422         PR bootstrap/44048
423         PR target/44099
424         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
425         * sdbout.c (plain_type_1): Likewise.
426         * dwarf2out.c (is_base_type): Likewise.
427         (gen_type_die_with_usage): Likewise.  Generate
428         DW_TAG_unspecified_type for any LANG_TYPE.
429
430 2010-05-12  Jan Hubicka  <jh@suse.cz>
431
432         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
433         indrect edges too.
434         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
435         (cgraph_clone_edge): Update.
436         (cgraph_node_remove_callees): Remove indirect calls too.
437         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
438         (cgraph_create_indirect_edge): Update prototype.
439         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
440         is_proper_for_analysis.
441         (add_new_function, visited_nodes, function_insertion_hook_holder,
442         get_local_reference_vars_info, mark_address_taken, mark_address,
443         mark_load, mark_store, check_asm_memory_clobber, check_call,
444         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
445         (ipa_init): Do not initialize visited_nodes;
446         function_insertion_hook_holder.
447         (analyze_variable): Rewrite.
448         (analyze_function): Rewrite.
449         (copy_local_bitmap): Remove.
450         (duplicate_node_dat): Do not duplicate local info.
451         (generate_summary): Simplify to only walk cgraph.
452         (write_node_summary_p, ipa_reference_write_summary,
453         ipa_reference_read_summary): Remove.
454         (propagate): Do not remove function insertion;
455         generate summary.
456         (pass_ipa_reference): NULLify summary handling fields.
457         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
458         (input_edge): Input ecf_flags.
459         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
460         (update_indirect_edges_after_inlining): Ignore edges with unknown
461         param.
462
463 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
464
465         * implicit-zee.c: New file.
466         * tree-pass.h (pass_implicit_zee): Declare.
467         * passes.c (init_optimization_passes): Add zee pass.
468         * common.opt (fzee): New flag.
469         * timevar.def (TV_ZEE): Define.
470         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
471         and beyond.
472         * Makefile.in (implicit-zee.o): Add new build file.
473
474 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
475             Nathan Froyd  <froydnj@codesourcery.com>
476
477         * c-common.c (sync_resolve_params): Remove write-only variable.
478
479 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
480
481         * target.h (struct gcc_target): Add mode_dependent_address_p field.
482         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
483         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
484         * targhooks.c (default_mode_dependent_address_p): New function.
485         * targhooks.h (default_mode_dependent_address_p): Declare function.
486         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
487         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
488         * recog.c: (mode_dependent_address_p): Call mode_dependent_address_p
489         target hook. Change return type to bool.
490         * recog.h: (mode_dependent_address_p): Change return type to bool.
491
492 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
493             Nathan Froyd  <froydnj@codesourcery.com>
494
495         * tree-mudflap.c (build_function_type_0, build_function_type_1,
496         build_function_type_2, build_function_type_3): Remove.
497         (mudflap_init): Use build_function_type_list.
498
499 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
500             Nathan Froyd  <froydnj@codesourcery.com>
501
502         * coverage.c (build_fn_info_value): Call build_constructor instead of
503         build_constructor_from_list.
504         (build_ctr_info_value): Likewise.
505         (build_gcov_info): Likewise.
506
507 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
508
509         * tree.c (build_constructor): Compute TREE_CONSTANT for the
510         resultant constructor.
511         (build_constructor_single): Don't set TREE_CONSTANT.
512         (build_constructor_from_list): Don't compute TREE_CONSTANT.
513
514 2010-05-12  Jan Hubicka  <jh@suse.cz>
515
516         * cgraph.h (struct varpool_node): Add aux.
517         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
518         * varpool.c (varpool_remove_node): Do not remove initializer.
519         (varpool_reset_queue): Export.
520         (varpool_finalize_decl): Volatile vars are forced to be output.
521         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
522         replaced decl.
523         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
524         process_references, varpool_can_remove_if_no_refs): New functions.
525         (cgraph_remove_unreachable_nodes): Handle variables too.
526
527 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
528
529         PR target/44088
530         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
531
532 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
533
534         PR middle-end/44085
535         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
536         change value of ORT_TASK.
537         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
538         (omp_notice_threadprivate_variable): New function.
539         (omp_notice_variable): Call it for threadprivate variables.
540         If enclosing ctx is a task, print enclosing task rather than
541         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
542         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
543         if task has untied clause.
544
545         PR debug/42278
546         * dwarf2out.c (base_type_die): Don't add name attribute here.
547         (modified_type_die): Instead of sizetype use
548         its underlying original type.  If a DW_TAG_base_type doesn't
549         have name added, add __unknown__.
550         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
551         always call force_type_die instead.
552
553 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
554
555         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
556         for __stack_chk_guard.
557
558 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
559
560         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
561         don't call start_source_file debug hook here...
562         (finish_options): ... but here, after outputting predefined and
563         command line defines and undefs.
564
565         PR middle-end/44071
566         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
567         no fallthru edge.
568         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
569         optimizing away empty bb with no successors, move over its
570         footer chain to fallthru predecessor.
571         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
572         (rtl_split_edge): For asm goto call patch_jump_insn even if
573         splitting fallthru edge.
574
575         PR c++/44059
576         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
577         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
578         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
579         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
580         on DW.ref.* decls.
581
582         PR c++/44062
583         * c-parser.c (c_parser_expression): Mark LHS of a comma
584         expression as read if it is a decl, handled component or
585         COMPOUND_EXPR with that on the RHS.
586         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
587         if it is a decl or handled component.
588
589 2010-05-11  Jan Hubicka  <jh@suse.cz>
590
591         * lto-symtab.c (lto_symtab_free): New function.
592         * lto-streamer.h (lto_symtab_free): Declare.
593
594 2010-05-11  Jan Hubicka  <jh@suse.cz>
595
596         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
597         that if function is needed it is reachable.
598         (lto_output_node): See if it the function is reachable or referenced.
599         (output_cgraph): Update call of lto_output_node.
600         * lto-streamer.h (reachable_from_other_partition_p): Declare.
601
602 2010-05-11  Jan Hubicka  <jh@suse.cz>
603
604         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
605         Mark as used.
606
607 2010-05-11  Jan Hubicka  <jh@suse.cz>
608
609         PR tree-optimize/44063
610         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
611         queue.
612         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
613         limits.
614         (estimate_function_body_sizes): Compute sizes even when disregarding.
615
616 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
617
618         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
619
620 2010-05-11  Jan Hubicka  <jh@suse.cz>
621
622         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
623         into every boundary.
624
625 2010-05-11  Jan Hubicka  <jh@suse.cz>
626
627         * matrix-reorg.c (matrix_reorg): Rebuild edges.
628
629 2010-05-11  Jan Hubicka  <jh@suse.cz>
630
631         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
632         lto_streamer_cache_delete): Put nodes into heap.
633         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
634         heap.
635
636 2010-05-11  Jan Hubicka  <jh@suse.cz>
637
638         * cgraphbuild.c (cgraph_rebuild_references): New.
639         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
640         out extern inlines.
641         * cgraph.h (cgraph_rebuild_references): Declare.
642         * tree-inline.c (tree_function_versioning): Use it.
643         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
644
645 2010-05-11  Jan Hubicka  <jh@suse.cz>
646
647         * cgraph.c: Include ipa-utils.h
648         (cgraph_create_virtual_clone): Update references.
649         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
650
651 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
652
653         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
654         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
655         cache size.
656
657 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
658
659         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
660
661 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
662
663         * gcc.c (execute): For -### don't quote arguments that
664         contain just alphanumerics and _/-. characters.
665         * doc/invoke.texi: Document that change for -###.
666
667         PR debug/44023
668         * df-problems.c (struct dead_debug): Add to_rescan field.
669         (dead_debug_init): Clear to_rescan field.
670         (dead_debug_finish): Rescan all debug insns in to_rescan
671         bitmap and free the bitmap.
672         (dead_debug_insert_before): Instead of rescanning debug insns
673         immediately queue their rescanning until dead_debug_finish.
674         (df_note_bb_compute): After dead_debug_add do continue instead
675         of break.
676
677 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
678
679         PR debug/44028
680         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
681         clear also INSN_REG_USE_LIST.
682
683 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
684
685         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
686
687 2010-05-10  Jan Hubicka  <jh@suse.cz>
688
689         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
690         commited change.
691
692 2010-05-10  Jan Hubicka  <jh@suse.cz>
693
694         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
695         Allocate encoders.
696         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
697         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
698         (lto_streamer_cache_create): Init alloc pool.
699         (lto_streamer_cache_delete): Free alloc pool.
700         * lto-streamer.h: Include alloc pool.
701         (lto_streamer_cache_d): Use alloc pool.
702         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
703
704 2010-05-10  Jan Hubicka  <jh@suse.cz>
705
706         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
707         * cgraphbuild.c: Include except.h
708         (record_type_list, record_eh_tables): New function.
709         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
710
711 2010-05-10  Jan Hubicka  <jh@suse.cz>
712
713         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
714         __frame_dummy_init_array_entry, force_to_data): Attribute as used
715         rather than unused.
716
717 2010-05-10  Michael Matz  <matz@suse.de>
718
719         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
720         (can_reassociate_p): Use FLOAT_TYPE_P.
721         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
722         (vect_force_simple_reduction): ... this.
723         * tree-parloops.c (gather_scalar_reductions): Use
724         vect_force_simple_reduction.
725         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
726         vect_is_simple_reduction, add modify argument, if true rewrite
727         "a-b" into "a+(-b)".
728         (vect_is_simple_reduction, vect_force_simple_reduction): New
729         functions.
730         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
731
732 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
733             Vladimir Makarov  <vmakarov@redhat.com>
734
735         PR rtl-optimization/44012
736         * ira-build.c (remove_unnecessary_allocnos): Nullify
737         regno_allocno_map of the removed allocno.
738
739 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
740
741         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
742         to /dev/null.
743         * configure: Regenerate.
744
745 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
746
747         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
748         unused.
749         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
750         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
751         support in Sun ld.
752         * configure: Regenerate.
753
754 2010-05-10  Richard Guenther  <rguenther@suse.de>
755
756         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
757         marked if the entry identifier is marked.
758
759 2010-05-10  Richard Guenther  <rguenther@suse.de>
760
761         * c-common.c (struct c_common_attributes): Add fnspec attribute.
762         (handle_fnspec_attribute): New function.
763         * gimple.h (gimple_call_return_flags): Declare.
764         (gimple_call_arg_flags): Likewise.
765         * gimple.c (gimple_call_arg_flags): New function.
766         (gimple_call_return_flags): Likewise.
767         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
768         New argument flags.
769         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
770         return value flags.
771         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
772         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
773         main work to ...
774         (make_heapvar_for): ... this new function.
775         (handle_rhs_call): Handle fnspec attribute argument specifiers.
776         (handle_lhs_call): Likewise.
777         (find_func_aliases): Adjust.
778
779 2010-05-10  Richard Guenther  <rguenther@suse.de>
780
781         PR tree-optimization/44050
782         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
783
784 2010-05-10  Wei Guozhi  <carrot@google.com>
785
786         PR target/42879
787         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
788
789 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
790
791         PR c/10676
792         * c-typeck.c (lookup_field): Take a type directly.  Update
793         recursive calls.
794         (build_component_ref): Update call to lookup_field.
795         (set_init_label): Use lookup_field to find initialized field.
796         Handle returned list of fields like a sequence of designators.
797
798 2010-05-09  Richard Guenther  <rguenther@suse.de>
799
800         PR middle-end/44024
801         * fold-const.c (tree_single_nonzero_warnv_p): Properly
802         handle &FUNCTION_DECL.
803
804 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
805
806         PR c/4784
807         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
808         structures and unions recursively.
809         (detect_field_duplicates): Move duplicate detection with a hash to
810         detect_field_duplicates_hash.  Always use a hash if anonymous
811         structures or unions are present.
812         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
813         give errors.
814
815 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
816
817         PR target/44046
818         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
819         detect Atom, Core 2 and Core i7.
820
821 2010-05-09  Richard Guenther  <rguenther@suse.de>
822
823         * gcc.c (store_arg): Handle temporary file deletion for
824         joined arguments.
825
826 2010-05-09  Richard Guenther  <rguenther@suse.de>
827
828         PR middle-end/44043
829         * ipa-inline.c (estimate_function_body_sizes): Return after
830         disregarding inline limits.
831
832 2010-05-09  Richard Guenther  <rguenther@suse.de>
833
834         * gcc.c (store_arg): Revert last change.
835
836 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
837
838         PR middle-end/28685
839         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
840         (optimize_ops_list): Call it.
841
842 2010-05-08  Richard Guenther  <rguenther@suse.de>
843
844         PR tree-optimization/44030
845         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
846         NECESSARY flag if we propagate from a inserted expression.
847
848 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
849
850         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
851         domain types as equal if they are both PLACEHOLDER_EXPRs.
852
853 2010-05-08  Richard Guenther  <rguenther@suse.de>
854
855         * lto-wrapper.c (run_gcc): Remove linker output from
856         command line for LTRANS invocation.
857
858 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
859
860         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
861         lto-macho as lto_binary_reader.
862         * target.h (struct gcc_target): New hooks lto_start and lto_end.
863         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
864         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
865         in lto_start and lto_end calls.
866         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
867         magic numbers.
868         (scan_prog_file): Update is_elf_or_coff call.
869         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
870
871         * collect2.c (main): Fix enum comparison.
872
873         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
874         Add prototypes.
875         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
876         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
877         and TARGET_ASM_LTO_END.
878         * darwin.c: Include obstack.h and lto-streamer.h.
879         (lto_section_names_offset, lto_section_names_obstack,
880         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
881         global variables.
882         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
883         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
884         to a temporary file.
885         (darwin_asm_lto_end): New function.  Restore asm_out_file.
886         (darwin_asm_named_section): For LTO sections, replace the name with
887         the offset of the section name in a string table, and build this
888         table.
889         (darwin_file_start): Initialize global vars for LTO support.
890         (darwin_file_end): If output to asm_out_file was redirected, append it
891         to the proper asm_out_file here.  Add the section names section.
892
893 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
894
895         * c-pragma.c (pending_weak_d, pending_weak): New.
896         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
897         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
898         handle_pragma_weak): Update the uses of pending_weaks.
899
900 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
901
902         PR documentation/44016
903         * doc/standards.texi (Standards): Link to unversioned
904         cxx0x_status.html page.
905
906 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
907
908         PR target/43708
909         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
910         in addition to TREE_USED, to avoid "set but unused" warnings.
911
912 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
913
914         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
915         (is_loop_prefetching_profitable): Do not insert prefetches
916         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
917         times the prefetch ahead distance.
918
919 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
920
921         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
922         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
923         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
924         the unroll_factor.
925
926 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
927
928         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
929         a diagnostic info when the insn-to-mem ratio is too small.
930
931 2010-05-07  Richard Guenther <rguenther@suse.de>
932
933         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
934         the linker plugin.
935         (store_arg): Queue temp_filename for deletion instead of
936         the whole argument.
937
938 2010-05-07  Richard Guenther  <rguenther@suse.de>
939
940         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
941         (run_gcc): Handle LTRANS phase invocation.
942         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
943
944 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
945
946         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
947         this is also meaningful on PARM_DECLs and RESULT_DECLs.
948
949 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
950
951         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
952
953 2010-05-07  Richard Guenther  <rguenther@suse.de>
954
955         PR tree-optimization/44020
956         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
957         code when PRE is not yet initialized.
958
959 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
960
961         * config/mips/dbxmdebug.h: Remove.
962         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
963
964 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
965
966         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
967         with null pointer and also warn about ordered comparison of zero with
968         pointer if -Wextra.
969
970 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
971
972         * graphite-blocking.c
973         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
974         * graphite-clast-to-gimple.c
975         (clast_to_gcc_expression): Same.
976         (precision_for_value): Same.
977         (precision_for_interval): Same.
978         (gcc_type_for_interval): Same.
979         (graphite_create_new_guard): Same.
980         (compute_bounds_for_level): Same.
981         (graphite_create_new_loop_guard): Same.
982         * graphite-interchange.c
983         (build_linearized_memory_access): Same.
984         (pdr_stride_in_loop): Same.
985         (memory_strides_in_loop_1): Same.
986         (memory_strides_in_loop): Same.
987         (extend_scattering): Same.
988         (psct_scattering_dim_for_loop_depth): Same.
989         (pbb_number_of_iterations): Same.
990         * graphite-poly.h
991         (debug_iteration_domains): Same.
992         * graphite-ppl.c
993         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
994         (ppl_set_inhomogeneous_gmp): Same.
995         (ppl_strip_loop): Same.
996         (ppl_lexico_compare_linear_expressions): Same.
997         (ppl_read_polyhedron_matrix): Same.
998         (ppl_max_for_le_pointset): Same.
999         * graphite-ppl.h
1000         (ppl_read_polyhedron_matrix): Same.
1001         (tree_int_to_gmp): Same.
1002         (gmp_cst_to_tree): Same.
1003         (ppl_set_inhomogeneous): Same.
1004         (ppl_set_inhomogeneous_tree): Same.
1005         (ppl_set_coef): Same.
1006         (ppl_set_coef_tree): Same.
1007         * graphite-sese-to-poly.c
1008         (build_pbb_scattering_polyhedrons): Same.
1009         (build_scop_scattering): Same.
1010         (scan_tree_for_params_right_scev): Same.
1011         (scan_tree_for_params): Same.
1012         (find_params_in_bb): Same.
1013         (find_scop_parameters): Same.
1014         (add_upper_bounds_from_estimated_nit): Same.
1015         (build_loop_iteration_domains): Same.
1016         (add_condition_to_domain): Same.
1017         (pdr_add_memory_accesses): Same.
1018
1019 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
1020
1021         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
1022         CLooG's value_* macros to their respective mpz_* counterparts.
1023         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
1024         (graphite_create_new_loop_guard): Same.
1025         * graphite-interchange.c (build_linearized_memory_access): Same.
1026         (pdr_stride_in_loop): Same.
1027         (memory_strides_in_loop_1): Same.
1028         (1st_interchange_profitable_p): Same.
1029         * graphite-poly.c (extend_scattering): Same.
1030         (psct_scattering_dim_for_loop_depth): Same.
1031         (pbb_number_of_iterations): Same.
1032         (pbb_number_of_iterations_at_time): Same.
1033         * graphite-poly.h (new_1st_loop): Same.
1034         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
1035         (oppose_constraint): Same.
1036         (insert_constraint_into_matrix): Same.
1037         (ppl_set_inhomogeneous_gmp): Same.
1038         (ppl_set_coef_gmp): Same.
1039         (ppl_strip_loop): Same.
1040         (ppl_lexico_compare_linear_expressions): Same.
1041         (ppl_max_for_le_pointset): Same.
1042         (ppl_min_for_le_pointset): Same.
1043         (ppl_build_realtion): Same.
1044         * graphite-ppl.h (gmp_cst_to_tree): Same.
1045         (ppl_set_inhomogeneous): Same.
1046         (ppl_set_inhomogeneous_tree): Same.
1047         (ppl_set_coef): Same.
1048         (ppl_set_coef_tree): Same.
1049         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
1050         (build_scop_scattering): Same.
1051         (add_value_to_dim): Same.
1052         (scan_tree_for_params_right_scev): Same.
1053         (scan_tree_for_params_int): Same.
1054         (scan_tree_for_params): Same.
1055         (find_params_in_bb): Same.
1056         (find_scop_parameters): Same.
1057         (add_upper_bounds_from_estimated_nit): Same.
1058         (build_loop_iteration_domains): Same.
1059         (create_linear_expr_from_tree): Same.
1060         (add_condition_to_domain): Same.
1061         (pdr_add_memory_accesses): Same.
1062
1063 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
1064             Jason Merrill  <jason@redhat.com>
1065
1066         * c-common.c (c_common_reswords): Add nullptr.
1067         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
1068         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
1069         (gen_type_die_with_usage): Likewise.
1070         * dbxout.c (dbxout_type): Likewise.
1071         * sdbout.c (plain_type_1): Likewise.
1072
1073 2010-05-06  Jason Merrill  <jason@redhat.com>
1074
1075         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
1076         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
1077         ret appropriately.
1078         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
1079
1080         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
1081         stripping WITH_SIZE_EXPR.
1082         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
1083         change.
1084
1085 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1086
1087         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
1088         list of obsolete configurations.
1089         Disabled check for obsolete configurations.
1090         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
1091         Removed support for previous versions.
1092         * config/mips/iris.h: Removed.
1093         * config/mips/iris5.h: Removed.
1094         * config/mips/iris6.h: Merged old iris.h contents.
1095         (TARGET_IRIX): Removed.
1096         (DRIVER_SELF_SPECS): Removed mabi=32.
1097         (IDENT_ASM_OP): Removed undef.
1098         (STARTFILE_SPEC): Removed mabi=32.
1099         (ENDFILE_SPEC): Likewise.
1100         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
1101         (MACHINE_TYPE): Update for IRIX 6.5.
1102         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
1103         TARGET_IRIX by TARGET_IRIX6.
1104         (mips_file_start): Likewise.
1105         (mips_output_external): Remove IRIX 5/6 O32 support.
1106         (mips_output_function_prologue): Likewise.
1107         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
1108         TARGET_IRIX6.
1109         (TARGET_CPU_CPP_BUILTINS): Likewise.
1110         (TARGET_IRIX): Removed.
1111         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
1112         (MULTILIB_DIRNAMES): Removed 32.
1113         (MULTILIB_OSDIRNAMES): Removed ../lib.
1114         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
1115         (Specific, mips-sgi-irix5): Document removal.
1116         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
1117         Remove references to older IRIX 6 releases and the O32 ABI.
1118
1119 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
1120
1121         PR bootstrap/43994
1122         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
1123         instead of DF_REF_REAL_REG.
1124
1125 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
1126
1127         PR target/43888
1128         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
1129         handling to still return true for x64 targets.
1130
1131 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
1132
1133         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
1134
1135 2010-05-06  Jan Hubicka  <jh@suse.cz>
1136
1137         PR tree-optimization/43791
1138         * ipa-inline.c (update_caller_keys): Remove bogus
1139         disregard_inline_limits check.
1140
1141 2010-05-06  Michael Matz  <matz@suse.de>
1142
1143         PR tree-optimization/43984
1144         * tree-ssa-pre.c (inserted_phi_names): Remove.
1145         (inserted_exprs): Change to bitmap.
1146         (create_expression_by_pieces): Set bits, don't append to vector.
1147         (insert_into_preds_of_block): Don't handle inserted_phi_names.
1148         (eliminate): Don't look at inserted_phi_names, remove deleted
1149         insns from inserted_exprs.
1150         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
1151         (init_pre, fini_pre): Allocate and free bitmaps.
1152         (execute_pre): Insert insns on edges before elimination.
1153
1154 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
1155
1156         * tree.c (initializer_zerop): Handle STRING_CST.
1157
1158 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1159
1160         PR 40989
1161         * doc/invoke.texi (Wimplicit): Document as C only.
1162         * opts.c (common_handle_option): Add argument kind.
1163         (handle_option): Rename as read_cmdline_option. Factor out code to...
1164         (handle_option): ... here. New.
1165         (handle_options): Rename as read_cmdline_options.
1166         (decode_options): Update call.
1167         (set_option): Use option index instead of option pointer. Classify
1168         diagnostics correctly.
1169         (enable_warning_as_error): Call handle_option.
1170         * opts.h (set_option): Update declaration.
1171         (handle_option): Declare.
1172         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
1173         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
1174         * c-opts.c (set_Wimplicit): Delete.
1175         (c_family_lang_mask): New static constant.
1176         (c_common_handle_option): Add argument kind. Use handle_option
1177         instead of set_Wimplicit.
1178         (c_common_post_options): warn_implicit and warn_implicit_int
1179         are disabled by default.
1180         * c-common.c (warn_implicit): Do not define here.
1181         * c-common.h (warn_implicit): Do not declare here.
1182         (c_common_handle_option): Update declaration.
1183         * lto-opts.c (lto_reissue_options): Update call to set_option.
1184
1185 2010-05-06  Richard Guenther  <rguenther@suse.de>
1186
1187         PR tree-optimization/43571
1188         * domwalk.c (walk_dominator_tree): Walk the dominator
1189         sons in more optimal order.
1190
1191 2010-05-06  Richard Guenther  <rguenther@suse.de>
1192
1193         PR tree-optimization/43934
1194         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
1195         (stmt_cost): Likewise.
1196         (extract_true_false_args_from_phi): New helper.
1197         (determine_max_movement): For PHI nodes verify we can hoist them
1198         and compute their cost.
1199         (determine_invariantness_stmt): Handle PHI nodes.
1200         (move_computations_stmt): Likewise.  Hoist PHI nodes in
1201         if-converted form using COND_EXPRs.
1202         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
1203         (tree_ssa_lim): Likewise.
1204         * tree-flow.h (tree_ssa_lim): Adjust prototype.
1205         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
1206
1207 2010-05-06  Richard Guenther  <rguenther@suse.de>
1208
1209         PR tree-optimization/43987
1210         * tree-ssa-structalias.c (could_have_pointers): For possibly
1211         address-taken variables force pointers to be recorded.
1212         (create_variable_info_for_1): Likewise.
1213         (push_fields_onto_fieldstack): Pass in wheter all fields
1214         must have pointers.
1215         (find_func_aliases): Query types instead of vars whether
1216         they contain pointers where appropriate.
1217
1218 2010-05-06  Jan Hubicka  <jh@suse.cz>
1219
1220         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
1221         (record_reference, mark_address, mark_load, mark_store): Record
1222         references.
1223         (record_references_in_initializer): Update call of record_references.
1224         (rebuild_cgraph_edges): Remove all references before rebuiding.
1225         * cgraph.c (cgraph_create_node): Clear ref list.
1226         (cgraph_remove_node): Remove references.
1227         (dump_cgraph_node): Dump references.
1228         (cgraph_clone_node): Clone references.
1229         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
1230         (struct cgraph_node, varpool_node): Add ref_lst.
1231         * ipa-ref.c: New file.
1232         * ipa-ref.h: New file.
1233         * ipa-ref-inline.h: New file.
1234         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
1235         (referenced_from_other_partition_p): New function.
1236         (lto_output_varpool_node): Take set arugment; call
1237         referenced_from_other_partition.
1238         (lto_output_ref): New.
1239         (add_references): New.
1240         (output_refs): New.
1241         (output_cgraph): Compute boundary based on references; output refs.
1242         (output_varpool): Accept cgraph_node_set argument.
1243         (input_ref): New.
1244         (input_refs): New.
1245         (input_cgraph): Call input_refs.
1246         * lto-section-in.c (lto_section_name): Add refs.
1247         * Makefile.in: (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
1248         (ipa-ref.o): New file.
1249         * varpool.c (varpool_node): Clear ipa ref list.
1250         (varpool_remove_node): Remove references.
1251         (dump_varpool_node): Dump references.
1252         (varpool_assemble_decl): Only compile finalized ones.
1253         (varpool_extra_name_alias): Initialize ref list.
1254         * lto-streamer.c (lto-get_section_name): Add .refs section.
1255         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
1256         (referenced_from_other_partition_p): Declared.
1257
1258 2010-05-06  Ira Rosen  <irar@il.ibm.com>
1259
1260         PR tree-optimization/43901
1261         * tree-vect-stmts.c (vectorizable_call): Assert that vector
1262         type is not NULL if it's transformation phase, and return
1263         FALSE if it's analysis.
1264         (vectorizable_conversion, vectorizable_operation,
1265         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
1266
1267 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
1268
1269         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
1270         Delete.
1271         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
1272         New define.
1273         * config/mips/mips-protos.h
1274         (mips_small_register_classes_for_mode_p): Delete prototype.
1275
1276 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
1277
1278         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
1279         * config/arm/arm.c (multiple_operation_profitable_p,
1280         compute_offset_order): New static functions.
1281         (load_multiple_sequence, store_multiple_sequence): Use them.
1282         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
1283         memory offsets, not register numbers.
1284         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
1285
1286 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
1287
1288         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
1289         (get_pending_sizes, put_pending_size, put_pending_sizes):
1290         Update the uses of pending_sizes.
1291         * c-decl.c (store_parm_decls): Likewise.
1292         * c-tree.h (struct c_arg_info): Likewise.
1293         * tree.h: Update the prototype for get_pending_sizes and
1294         put_pending_sizes.
1295
1296 2010-05-05  Jason Merrill  <jason@redhat.com>
1297
1298         PR debug/43370
1299         * c-common.c (handle_aligned_attribute): Respect
1300         ATTR_FLAG_TYPE_IN_PLACE.
1301
1302         PR testsuite/43758
1303         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
1304         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
1305         (TARGET_INITIALIZER): Use it.
1306         * c-common.c (attribute_takes_identifier_p): Call it.
1307         * c-common.h: Update prototype.
1308         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
1309         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
1310
1311 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
1312
1313         PR debug/43950
1314         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
1315         DW_ID_down_case for Fortran compilation units.
1316
1317 2010-05-05  Jan Hubicka  <jh@suse.cz>
1318
1319         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
1320         handle aliases.
1321
1322 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
1323
1324         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
1325         a variable-sized RESULT_DECL.
1326
1327 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
1328
1329         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
1330
1331 2010-05-05  Jason Merrill  <jason@redhat.com>
1332
1333         PR c++/43787
1334         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
1335         returns GS_OK.
1336         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
1337
1338 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
1339             Jakub Jelinek  <jakub@redhat.com>
1340
1341         PR debug/43478
1342         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
1343         (dead_debug_init, dead_debug_finish): New functions.
1344         (dead_debug_add, dead_debug_insert_before): Likewise.
1345         (df_note_bb_compute): Initialize a dead_debug object, add dead
1346         debug uses to it, insert debug bind insns before death insns,
1347         reset debug insns that refer to pending uses at the end.
1348         * rtl.h (make_debug_expr_from_rtl): New prototype.
1349         * varasm.c (make_debug_expr_from_rtl): New function.
1350
1351 2010-05-05  Jan Hubicka  <jh@suse.cz>
1352
1353         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
1354         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
1355         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
1356         lto_varpool_encoder_deref, lto_varpool_encoder_size,
1357         lto_varpool_encoder_encode_initializer_p,
1358         lto_set_varpool_encoder_encode_initializer): New functions.
1359         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
1360         call output_varpool.
1361         (input_varpool_node): Do not always set analyzed.
1362         (input_cgraph_1): Return vector of cgraph nodes.
1363         (input_varpool_1): Return vector of varpools.
1364         (input_cgraph): Free the vectors.
1365         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
1366         output only initializers needed.
1367         (lto_output): Only call output_cgraph.
1368         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
1369         * lto-section-out.c (lto_new_out_decl_state): Initialize
1370         state->varpool_node_encoder.
1371         * lto-streamer.h (lto_varpool_encoder_d): New.
1372         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
1373         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
1374         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
1375         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
1376         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
1377         Declare.
1378         (output_varpool, input_varpool): Remove declarations.
1379
1380 2010-05-05  Jan Hubicka  <jh@suse.cz>
1381
1382         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
1383         with body can prevail.
1384
1385 2010-05-05  Jan Hubicka  <jh@suse.cz>
1386
1387         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
1388         size.
1389
1390 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1391
1392         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
1393
1394         * gengtype.h (erro_at_line): Constify pos argument.
1395
1396         * gengtype.c: Include hashtab.h.
1397         (enum gc_used): Document GC_MAYBE_POINTED_TO.
1398         (error_at_line): Constify pos argument.
1399         (do_typedef): Initialize p->opt field.
1400         (get_file_gtfilename): Fix comment typo.
1401         (struct walk_type_data): Constify line field.
1402         (get_output_file_for_structure): New function.
1403         (write_local_func_for_structure): Constify orig_s argument.
1404         Use get_output_file_for_structure.
1405         (write_func_for_structure): Use get_output_file_for_structure.
1406         (INDENT): New define.
1407         (dump_pair, dump_type, dump_type_list, dump_typekind)
1408         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
1409         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
1410         functions.
1411         (seen_types): New variable.
1412         (main): New variable do_dump.  Process "-d" command line option.
1413         Call dump_everything if dump requested.
1414
1415 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
1416
1417         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
1418         in a temporary instead of invoking the macro multiple times.
1419         (track_expr_p): Likewise.
1420
1421 2010-05-04  Neil Vachharajani <nvachhar@google.com>
1422
1423         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
1424         per new semantics.
1425         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
1426         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
1427         conditions for printing notes.
1428         * common.opt (-Wcoverage-mismatch): Allow negative, default to
1429         true, update documentation.
1430         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
1431
1432 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
1433
1434         PR c/43981
1435         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
1436         on dimen.
1437
1438 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
1439
1440         PR target/43799
1441         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
1442         (*sse_prologue_save_insn1): Likewise.
1443         (SSE prologue save splitter): Likewise.
1444
1445 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
1446
1447         * tree.c (free_lang_data_in_one_sizepos): New inline function.
1448         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
1449         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
1450         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
1451         all decls.  Call it on DECL_FIELD_OFFSET of fields.
1452         (find_decls_types_r): Follow DECL_VALUE_EXPR.
1453         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
1454
1455 2010-05-04  Martin Jambor  <mjambor@suse.cz>
1456
1457         * tree-sra.c (build_access_from_expr_1): The first parameter type
1458         changed to simple tree.
1459         (build_access_from_expr): Likewise, gsi parameter was eliminated.
1460         (scan_assign_result): Renamed to assignment_mod_result, enum elements
1461         renamed as well.
1462         (build_accesses_from_assign): Removed all parameters except for a
1463         simple gimple statement.  Now returns a simple bool.
1464         (scan_function): All non-analysis parts moved to separate functions
1465         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
1466         parameters and updated both callers.
1467         (sra_modify_expr): Removed parameter data.
1468         (sra_modify_function_body): New function.
1469         (perform_intra_sra): Call sra_modify_function_body to modify the
1470         function body.
1471         (replace_removed_params_ssa_names): Parameter data changed into
1472         adjustments vector.
1473         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
1474         changed the parameter dont_convert to convert with the opposite
1475         meaning.
1476         (sra_ipa_modify_assign): Parameter data changed into adjustments
1477         vector, return value changed to bool.
1478         (ipa_sra_modify_function_body): New function.
1479         (sra_ipa_reset_debug_stmts): Updated a comment.
1480         (modify_function): Use ipa_sra_modify_function_body to modify function
1481         body.
1482
1483 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
1484
1485         PR middle-end/43671
1486         * alias.c (true_dependence): Handle the same VALUE in x and mem.
1487         (canon_true_dependence): Likewise.
1488         (write_dependence_p): Likewise.
1489
1490 2010-05-04  Jan Hubicka  <jh@suse.cz>
1491
1492         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
1493         * cgraphbuild.c: Include ipa-utils.h
1494         (record_reference_ctx): New struct.
1495         (record_reference): Simplify to work on initializers; not statements.
1496         (mark_address, mark_load, mark_store): New.
1497         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
1498         walk PHI nodes too.
1499         (record_references_in_initializer): Update use of record_reference.
1500         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
1501         walk PHI nodes too.
1502
1503 2010-05-04  Jan Hubicka  <jh@suse.cz>
1504
1505         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
1506         node will be removed anyway.
1507         (lto_varpool_replace_node): Allow also unanalyzed nodes;
1508         relink aliases of node into prevailing node.
1509         * varpool.c (varpool_remove_node): Remove aliases properly;
1510         when removing node, remove all its aliases too; remove DECL_INITIAL
1511         of removed node; ggc_free the varpool node.
1512
1513 2010-05-04  Richard Guenther  <rguenther@suse.de>
1514
1515         PR tree-optimization/43879
1516         * tree-ssa-structalias.c (alias_get_name): Use
1517         DECL_ASSEMBLER_NAME if available.
1518         (create_function_info_for): Return the varinfo node.
1519         (ipa_pta_execute): Associate same-body aliases and extra names
1520         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
1521
1522 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
1523
1524         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
1525
1526 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
1527
1528         PR bootstrap/43964
1529         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
1530         only if HONOR_REG_ALLOC_ORDER is not defined.
1531
1532 2010-05-04  Richard Guenther  <rguenther@suse.de>
1533
1534         PR tree-optimization/43949
1535         * tree-vrp.c (extract_range_from_binary_expr): Only handle
1536         TRUNC_MOD_EXPR.
1537
1538 2010-04-26  Jason Merrill  <jason@redhat.com>
1539
1540         * c.opt (-fstrict-enums): New.
1541         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
1542
1543 2010-05-03  David Ung <davidu@mips.com>
1544             James E. Wilson  <wilson@codesourcery.com>
1545
1546         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
1547         emit the trap instruction before the divide for TUNE_74K.
1548
1549 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
1550
1551         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
1552         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
1553         based on the above, for new target hook.
1554
1555         * hooks.c (hook_bool_mode_true): New generic hook.
1556         * hooks.h (hook_bool_mode_true): Add prototype.
1557
1558         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
1559         target hook.
1560         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
1561         target hook, set to hook_bool_mode_false.
1562         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
1563         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
1564         with targetm.small_register_classes_for_mode_p.
1565         (find_reusable_reload): Likewise.
1566         (combine_reloads): Likewise.
1567         * reload1.c (reload_as_needed): Likewise.
1568         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
1569         * ifcvt.c (noce_process_if_block, check_cond_move_block,
1570         dead_or_predicable): Likewise.
1571         * regmove.c (optimize_reg_copy_1): Likewise.
1572         * calls.c (prepare_call_address): Likewise.
1573         (precompute_register_parameters): Likewise.
1574
1575         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
1576         hook definition.
1577         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
1578         implementation of the hook that considers all register classes
1579         small except for SH64.
1580         (sh_override_options): Use the new hook.
1581         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
1582         Add prototype.
1583
1584         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
1585         hook definition.
1586         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
1587         implementation of the hook that considers all register classes
1588         small for THUMB1.
1589         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
1590         Add prototype.
1591
1592         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
1593         hook definition.
1594         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
1595         implementation of the hook that considers all register classes
1596         small for MIPS16.
1597         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
1598         Add prototype.
1599
1600         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
1601         hook definition.
1602         * config/m32c/m32c.h: Likewise.
1603         * config/pdp11/pdp11.h: Likewise.
1604         * config/avr/avr.h: Likewise.
1605         * config/xtensa/xtensa.h: Likewise.
1606         * config/m68hc11/m68hc11.h: Likewise.
1607         * config/mn10300/mn10300.h: Likewise.
1608         * config/mcore/mcore.h: Likewise.
1609         * config/h8300/h8300.h: Likewise.
1610         * config/bfin/bfin.h: Likewise.
1611
1612         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
1613         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
1614
1615 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
1616
1617         * double-int.h (tree_to_double_int): Remove macro.
1618         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
1619         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
1620         (tree_to_double_int): New function.
1621         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
1622         Move ...
1623         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
1624
1625 2010-05-03  Richard Guenther  <rguenther@suse.de>
1626
1627         PR tree-optimization/43971
1628         * tree-ssa-structalias.c (get_constraint_for_1): Fix
1629         constraints in the !flag_delete_null_pointer_checks case.
1630
1631 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
1632
1633         PR debug/43972
1634         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
1635         result mode matches original rtl mode.
1636
1637 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
1638
1639         PR target/43888
1640         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
1641
1642 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
1643
1644         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
1645         when processing flag options.
1646
1647 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
1648
1649         * gcov-iov.c (main): Change format string placeholder
1650         from %#08x to 0x%08x.
1651         * genchecksum.c (dosum): Change format string placeholder
1652         from %#02x to 0x%02x.
1653
1654 2010-05-02  Richard Guenther  <rguenther@suse.de>
1655
1656         PR tree-optimization/43879
1657         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
1658
1659 2010-05-02  Bruno Haible  <bruno@clisp.org>
1660
1661         * doc/extend.texi (Function Attributes): Fix a typo.
1662
1663 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
1664
1665         Revert:
1666         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
1667         placeholder from 0x%x to %#x.
1668         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
1669         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
1670         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
1671         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
1672         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
1673         * config/i386/i386.c (ix86_target_string): Ditto.
1674         * config/i386/i386.c (output_pic_addr_const): Ditto.
1675         (print_operand): Ditto.
1676
1677 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
1678
1679         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
1680         placeholder from 0x%x to %#x.
1681         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
1682         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
1683         (ASM_OUTPUT_DEBUG_DATA): Ditto.
1684         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
1685         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
1686         * optc-gen.awk: Ditto.
1687         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
1688         (HOST_WIDE_INT_PRINT_HEX): Ditto.
1689         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
1690         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
1691
1692 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
1693
1694         * target.h (struct calls): Add function_value_regno_p field.
1695         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
1696         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
1697         * targhooks.c (default_function_value_regno_p): New function.
1698         * targhooks.h (default_function_value_regno_p): Declare function.
1699         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
1700         * builtins.c. (apply_result_size): (Ditto.).
1701         * combine.c. (likely_spilled_retval_p): (Ditto.).
1702         * mode-switching.c. Include 'target.h'.
1703         (create_pre_exit): Use function_value_regno_p hook.
1704         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
1705         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
1706         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
1707
1708         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
1709         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
1710         (ix86_function_value_regno_p): Declare as static, change argument
1711         type to const unsigned int.
1712         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
1713
1714 2010-05-01  Richard Guenther  <rguenther@suse.de>
1715
1716         PR tree-optimization/43949
1717         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
1718         types.
1719         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
1720
1721 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
1722
1723         * rtl.h (CONST_DOUBLE_P): Define.
1724         (rtx_to_double_int): Declare.
1725         * emit-rtl.c (rtx_to_double_int): New function.
1726         * dwarf2out.c (insert_double): New function.
1727         (loc_descriptor, add_const_value_attribute): Clean up, use
1728         rtx_to_double_int and insert_double functions.
1729
1730 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
1731
1732         * doc/extend.texi (Inline): Add missing return keyword to examples.
1733         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
1734         "command-line".
1735
1736 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
1737
1738         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
1739         the variable part of the offset as well.  Use highest_pow2_factor for
1740         all alignment checks.
1741
1742 2010-04-30  Richard Guenther  <rguenther@suse.de>
1743
1744         PR tree-optimization/43879
1745         * tree-ssa-structalias.c (type_could_have_pointers): Functions
1746         can have pointers.
1747
1748 2010-04-30  Jan Hubicka  <jh@suse.cz>
1749
1750         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
1751         varpool.
1752         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
1753
1754 2010-04-30  Jan Hubicka  <jh@suse.cz>
1755
1756         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
1757         New.
1758         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
1759         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
1760         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
1761         cgraph_node_set_needs_ltrans_p): Remove.
1762
1763 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
1764
1765         * sdbout.c: Include vec.h, do not include varray.h.
1766         (deferred_global_decls, sdbout_global_decl,
1767         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
1768         * toplev.c: Do not include varray.h.
1769         (dump_memory_report): Do not dump VARRAY statistics.
1770         * gengtype.c (open_base_file): Ignore varray.h.
1771         * Makefile.in: Update for abovementioned changes.
1772         Remove all traces of varray.c and varray.h.
1773         * varray.c: Remove file.
1774         * varray.h: Remove file.
1775
1776 2010-04-30  Jan Hubicka  <jh@suse.cz>
1777
1778         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
1779         references.
1780
1781 2010-04-30  Jan Hubicka  <jh@suse.cz>
1782
1783         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
1784         needed.
1785
1786 2010-04-30  Richard Guenther  <rguenther@suse.de>
1787
1788         * tree-ssa-structalias.c (get_constraint_for_1): Generate
1789         constraints for CONSTRUCTOR.
1790
1791 2010-04-30  Richard Guenther  <rguenther@suse.de>
1792
1793         PR lto/43946
1794         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
1795         first after all lowering passes.
1796
1797 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
1798
1799         * toplev.c: Include varray.h for statistics dumping.
1800         * tree.h: Do not declare varray_head_tag.
1801         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
1802         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
1803         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
1804         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
1805         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
1806         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
1807         c-common.c, c-common.h, reg-stack.c, basic-block.h,
1808         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
1809         include varray.h.
1810         * Makefile.in: Update for abovementioned changes.
1811
1812 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
1813
1814         PR debug/43942
1815         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
1816
1817 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
1818
1819         * config/picochip/picochip.c (picochip_legitimize_address): Define.
1820         Use this function to do machine-specific conversion.
1821         (picochip_legitimize_reload_address): Likewise.
1822         (picochip_legitimate_address_p): Check valid base register only if
1823         strict.
1824         (picochip_check_conditional_copy): Check for modw only if opnd is
1825         register.
1826         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
1827         to call the function in c.
1828         * config/picochip/picochip-protos.h
1829         (picochip_legitimize_reload_address): Define.
1830         * config/picochip/picochip.md (supported_compare1): Define.
1831
1832 2010-04-30  Jan Hubicka  <jh@suse.cz>
1833
1834         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
1835         (cgraph_global_info): Remove inlined.
1836         (LTO_cgraph_tag_names): Remove.
1837         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
1838         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
1839         simplify cgraph tags and document.
1840         (lto_output_node): Use only LTO_cgraph_unavail_node and
1841         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
1842         for_functions_valid, global info, process and output flags.
1843         (input_overwrite_node): Initialize estimated stack size and
1844         estimated growth.  Do not read flags we no longer store.
1845         (input_node): Likewise do not read info no longer stored.
1846         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
1847         flag.
1848
1849 2010-04-30  Richard Guenther  <rguenther@suse.de>
1850
1851         PR tree-optimization/43879
1852         * tree-ssa-structalias.c (get_constraint_for_1): Properly
1853         handle non-zero initializers.
1854
1855 2010-04-30  Richard Guenther  <rguenther@suse.de>
1856
1857         * builtins.c (fold_builtin_1): Delete free (0).
1858
1859 2010-04-29  Jan Hubicka  <jh@suse.cz>
1860
1861         * gengtype.c (open_base_files): Add lto-streamer.h
1862         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
1863         (pass_ipa_cp): GGC collect.
1864         * toplev. (compile_file): Do not output symbols.
1865         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
1866         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
1867         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
1868         * lto-section-in.c: Include ggc.h
1869         (lto_new_in_decl_state): Alloc in GGC.
1870         (lto_delete_in_decl_state): Likewise.
1871         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
1872         Collect.
1873
1874 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
1875
1876         PR target/42895
1877         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
1878         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
1879         (HONOR_REG_ALLOC_ORDER): Describe new macro.
1880         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
1881         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
1882         account only if HONOR_REG_ALLOC_ORDER is not defined.
1883         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
1884         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
1885
1886 2010-04-29  Jon Grant  <04@jguk.org>
1887
1888         * collect2.c (vflag): Change type from int to bool.
1889         (debug): Likewise.
1890         (helpflag): New global bool.
1891         (main): Set vflag and debug with boolean, not integer truth values.
1892         Accept new "--help" option and output usage text if found.
1893         * collect2.h (vflag): Update prototype.
1894         (debug): Likewise.
1895
1896 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
1897
1898         PR bootstrap/43936
1899         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
1900
1901 2010-04-29  Richard Guenther  <rguenther@suse.de>
1902
1903         PR bootstrap/43935
1904         * plugin.h (invoke_plugin_callbacks): Annotate arguments
1905         with ATTRIBUTE_UNUSED.
1906
1907 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
1908
1909         PR target/43921
1910         * config/i386/i386.c (get_some_local_dynamic_name): Replace
1911         INSN_P with NONDEBUG_INSN_P.
1912         (distance_non_agu_define): Likewise.
1913         (distance_agu_use): Likewise.
1914
1915 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
1916
1917         From Dominique d'Humieres <dominiq@lps.ens.fr>
1918         PR bootstrap/43858
1919         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
1920         test_set.
1921
1922 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
1923
1924         * plugin.h (invoke_plugin_callbacks): New inline function.
1925         * plugin.c (flag_plugin_added): New global flag.
1926         (add_new_plugin): Initialize above flag.
1927         (invoke_plugin_callbacks): Rename to ...
1928         (invoke_plugin_callbacks_full): ... this.
1929
1930 2010-04-28  Jan Hubicka  <jh@suse.cz>
1931
1932         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
1933         (lto_varpool_replace_node): New.
1934         (lto_symtab_resolve_symbols): Resolve varpool nodes.
1935         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
1936         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
1937         * cgraph.h (varpool_node_ptr): New type.
1938         (varpool_node_ptr): New vector.
1939         (varpool_node_set_def): New structure.
1940         (varpool_node_set): New type.
1941         (varpool_node_set): New vector.
1942         (varpool_node_set_element_def): New structure.
1943         (varpool_node_set_element, const_varpool_node_set_element): New types.
1944         (varpool_node_set_iterator): New type.
1945         (varpool_node): Add prev pointers, add used_from_other_partition,
1946         in_other_partition.
1947         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
1948         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
1949         varpool_get_node, varpool_remove_node): Declare.
1950         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
1951         varpool_node_set_size): New inlines.
1952         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
1953         * tree-pass.h (varpool_node_set_def): Forward declare.
1954         (ipa_opt_pass_d): Summary writting takes vnode sets too.
1955         (ipa_write_optimization_summaries): Update prototype.
1956         * ipa-cp.c (ipcp_write_summary): Update.
1957         * ipa-reference.c (ipa_reference_write_summary): Update.
1958         * lto-cgraph.c (lto_output_varpool_node): New static function.
1959         (output_varpool): New function.
1960         (input_varpool_node): New static function.
1961         (input_varpool_1): New function.
1962         (input_cgraph): Input varpool.
1963         * ipa-pure-const.c (pure_const_write_summary): Update.
1964         * lto-streamer-out.c (lto_output): Update, output varpool too.
1965         (write_global_stream): Kill WPA hack.
1966         (produce_asm_for_decls): Update.
1967         (output_alias_pair_p): Handle variables.
1968         (output_unreferenced_globals): Output only needed partition of varpool.
1969         * ipa-inline.c (inline_write_summary): Update.
1970         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
1971         cgraph.
1972         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
1973         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
1974         varpool_node_set_new, varpool_node_set_add,
1975         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
1976         debug_varpool_node_set): New functions.
1977         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
1978         (execute_one_pass): Process new decls too.
1979         (ipa_write_summaries_2): Pass around vsets.
1980         (ipa_write_summaries_1): Likewise.
1981         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
1982         to add.
1983         (ipa_write_optimization_summaries_1): Pass around vsets.
1984         (ipa_write_optimization_summaries): Likewise.
1985         * varpool.c (varpool_get_node): New.
1986         (varpool_node): Update doubly linked lists.
1987         (varpool_remove_node): New.
1988         (dump_varpool_node): More dumping.
1989         (varpool_enqueue_needed_node): Update doubly linked lists.
1990         (decide_is_variable_needed): Kill ltrans hack.
1991         (varpool_finalize_decl): Kill lto hack.
1992         (varpool_assemble_decl): Skip decls in other partitions.
1993         (varpool_assemble_pending_decls): Update doubly linkes lists.
1994         (varpool_empty_needed_queue): Likewise.
1995         (varpool_extra_name_alias): Likewise.
1996         * lto-streamer.c (lto_get_section_name): Add vars section.
1997         * lto-streamer.h (lto_section_type): Update.
1998         (output_varpool, input_varpool): Declare.
1999
2000 2010-04-28  Mike Stump  <mikestump@comcast.net>
2001
2002         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
2003
2004 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
2005
2006         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
2007         record or union type with RECORD_OR_UNION_TYPE_P predicate.
2008         (lto_input_ts_type_tree_pointers): Likewise.
2009         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
2010         (lto_output_ts_type_tree_pointers): Likewise.
2011
2012 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
2013
2014         Uniquization of constants at the Tree level
2015         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
2016         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
2017         bit to the end.
2018         (tree_output_constant_def): Declare.
2019         * gimplify.c (gimplify_init_constructor): When using block copy, first
2020         uniquize the constant constructor on the RHS.
2021         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
2022         DECL_IN_CONSTANT_POOL flag.
2023         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
2024         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
2025         constant pool.
2026         (assemble_variable): Deal with symbols belonging to the tree constant
2027         pool.
2028         (get_constant_section): Add ALIGN parameter and simplify.
2029         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
2030         (assemble_constant_contents): Use the expression of the VAR_DECL.
2031         (output_constant_def_contents): Use the alignment of the VAR_DECL.
2032         (tree_output_constant_def): New global function.
2033         (mark_constant): Use the expression of the VAR_DECL.
2034         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
2035         its expression.
2036         (output_object_block): Likewise and assemble the expression.
2037
2038 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
2039
2040         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
2041         hash_tree, eq_tree): New tree hash table.
2042         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
2043         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
2044         lto_orig_address_remove): Reimplement.
2045
2046 2010-04-28  Xinliang David Li  <davidxl@google.com>
2047
2048         PR c/42643
2049         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
2050         (compute_uninit_opnds_pos): New function.
2051         (is_non_loop_exit_postdominating): New function.
2052         (compute_control_dep_chain): New function.
2053         (find_pdom): New function.
2054         (convert_control_dep_chain_into_preds): New function.
2055         (find_predicates): New function.
2056         (find_control_equiv_block): New function.
2057         (collect_phi_def_edges): New function.
2058         (find_def_preds): New function.
2059         (find_dom): New function.
2060         (dump_predicates): New function.
2061         (get_cmp_code): New function.
2062         (is_value_included_in): New function.
2063         (find_matching_predicate_in_rest_chains): New function.
2064         (use_pred_not_overlap_with_undef_path_pred): New function.
2065         (is_use_properly_guarded): New function.
2066         (normalize_cond_1): New function.
2067         (is_and_or_or): New function.
2068         (normalize_cond): New function.
2069         (is_gcond_subset_of): New function.
2070         (is_subset_of_any): New function.
2071         (is_or_set_subset_of): New function.
2072         (is_and_set_subset_of): New function.
2073         (is_norm_cond_subset_of): New function.
2074         (is_pred_expr_subset_of): New function.
2075         (is_pred_chain_subset_of): New function.
2076         (is_included_in): New function.
2077         (is_superset_of): New function.
2078         (find_uninit_use): New function.
2079         (warn_uninitialized_phi): New function.
2080         (compute_possibly_undefined_names): New function.
2081         (ssa_undefined_value_p): New function.
2082         (execute_late_warn_uninitialized): New function.
2083         * tree-ssa.c (ssa_undefined_value_p): Removed.
2084         (warn_uninit): Changed to extern.
2085         (warn_uninitialized_phi): Removed.
2086         (warn_uninitialized_vars): Changed to extern.
2087         (execute_late_warn_uninitialized): Removed
2088         * tree-flow.h: Add new prototypes.
2089         * timevar.def: Add new time variable.
2090         * Makefile.in: Add new build file.
2091
2092 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
2093
2094         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
2095         type if available.
2096
2097 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2098
2099         PR target/22224
2100         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
2101
2102 2010-04-28  Martin Jambor  <mjambor@suse.cz>
2103
2104         * cgraph.h (struct cgraph_node): New field indirect_calls.
2105         (struct cgraph_indirect_call_info): New type.
2106         (struct cgraph_edge): Removed field indirect_call. New fields
2107         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
2108         (cgraph_create_indirect_edge): Declare.
2109         (cgraph_make_edge_direct): Likewise.
2110         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
2111         * ipa-prop.h (struct ipa_param_call_note): Removed.
2112         (struct ipa_node_params): Removed field param_calls.
2113         (ipa_create_all_structures_for_iinln): Declare.
2114         * cgraph.c: Described indirect edges and uids in initial comment.
2115         (cgraph_add_edge_to_call_site_hash): New function.
2116         (cgraph_edge): Search also among the indirect edges, use
2117         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
2118         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
2119         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
2120         site hash.
2121         (initialize_inline_failed): Assign a reason to indirect edges.
2122         (cgraph_create_edge_1): New function.
2123         (cgraph_create_edge): Moved some functionality to
2124         cgraph_create_edge_1.
2125         (cgraph_create_indirect_edge): New function.
2126         (cgraph_edge_remove_callee): Add an assert checking for
2127         non-indirectness.
2128         (cgraph_edge_remove_caller): Special-case indirect edges.
2129         (cgraph_remove_edge): Likewise.
2130         (cgraph_set_edge_callee): New function.
2131         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
2132         (cgraph_make_edge_direct): New function.
2133         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
2134         the declaration of the call statement matches.
2135         (cgraph_node_remove_callees): Special-case indirect edges.
2136         (cgraph_clone_edge): Likewise.
2137         (cgraph_clone_node): Clone also the indirect edges.
2138         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
2139         indirect_call, dump count of indirect_calls edges.
2140         * ipa-prop.c (iinlining_processed_edges): New variable.
2141         (ipa_note_param_call): Create indirect edges instead of
2142         creating notes.  New parameter node.
2143         (ipa_analyze_call_uses): New parameter node, pass it on to
2144         ipa_note_param_call.
2145         (ipa_analyze_stmt_uses): Likewise.
2146         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
2147         (print_edge_addition_message): Work on edges rather than on notes.
2148         (update_call_notes_after_inlining): Likewise, renamed to
2149         update_indirect_edges_after_inlining.
2150         (ipa_create_all_structures_for_iinln): New function.
2151         (ipa_free_node_params_substructures): Do not free notes.
2152         (ipa_edge_duplication_hook): Propagate bits within
2153         iinlining_processed_edges bitmap.
2154         (ipa_node_duplication_hook): Do not duplicate notes.
2155         (free_all_ipa_structures_after_ipa_cp): Renamed to
2156         ipa_free_all_structures_after_ipa_cp.
2157         (free_all_ipa_structures_after_iinln): Renamed to
2158         ipa_free_all_structures_after_iinln.
2159         (ipa_write_param_call_note): Removed.
2160         (ipa_read_param_call_note): Removed.
2161         (ipa_write_indirect_edge_info): New function.
2162         (ipa_read_indirect_edge_info): Likewise.
2163         (ipa_write_node_info): Do not stream notes, do stream information
2164         in indirect edges.
2165         (ipa_read_node_info): Likewise.
2166         (lto_ipa_fixup_call_notes): Removed.
2167         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
2168         * ipa-inline.c (pass_ipa_inline): Likewise.
2169         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
2170         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
2171         * tree-inline.c (copy_bb): Removed an unnecessary double check for
2172         is_gimple_call.
2173         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
2174         edges.
2175         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
2176         (output_cgraph): Stream also indirect edges.
2177         (lto_output_edge): Added capability to stream indirect edges.
2178         (input_edge): Likewise.
2179         (input_cgraph_1): Likewise.
2180         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
2181         of indirect edges.
2182
2183 2010-04-28  Richard Guenther  <rguenther@suse.de>
2184
2185         PR tree-optimization/43879
2186         PR tree-optimization/43909
2187         * tree-ssa-structalias.c (struct variable_info): Add
2188         only_restrict_pointers flag.
2189         (new_var_info): Initialize it.  Increment stats.total_vars here.
2190         (create_function_info_for): Do not increment stats.total_vars here.
2191         (get_function_part_constraint): Fix build with C++.
2192         (insert_into_field_list): Remove.
2193         (push_fields_onto_fieldstack): Properly merge fields.
2194         (create_variable_info_for): Split and simplify.
2195         (create_variable_info_for_1): New piece.
2196         (intra_create_variable_infos): Properly make restrict constraints
2197         from parameters.
2198
2199 2010-04-28  Richard Guenther  <rguenther@suse.de>
2200
2201         PR c++/43880
2202         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
2203
2204 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2205             Jan Hubicka <hubicka@ucw.cz>
2206
2207         * doc/invoke.texi (-Wsuggest-attribute=const,
2208         -Wsuggest-attribute=pure): Document.
2209         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
2210         (function_always_visible_to_compiler_p,
2211         suggest_attribute, warn_function_pure, warn_function_const):
2212         New functions.
2213         (check_call): Improve debug info.
2214         (analyze_function): Do not check availability.
2215         (add_new_function): Check availability.
2216         (propagate): Output warnings.
2217         (skip_function_for_local_pure_const): New function.
2218         (local_pure_const): Use it; output warnings.
2219         * common.opt (Wsuggest-attribute=const,
2220         Wsuggest-attribute=pure): New.
2221
2222 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
2223
2224         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
2225         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
2226         or DW_CFA_def_cfa_offset{,_sf}.
2227
2228 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
2229
2230         * tree.h: Fix truncated long macros.
2231
2232 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
2233
2234         * collect2.c (TARGET_64BIT): Redefine to target's default.
2235         * tlink.c: Likewise.
2236         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
2237         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
2238         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
2239         for underscoring __USER_LABEL_PREFIX__.
2240         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
2241         (SUB_LINK_ENTRY32): New.
2242         (SUB_LINK_ENTRY64): New.
2243         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
2244         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
2245         (SUB_LINK_ENTRY64): New.
2246         (SUB_LINK_ENTRY): New.
2247         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
2248         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
2249         x64 target is choosen.
2250         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
2251         * configure: Regenerated.
2252         * configure.ac (leading-mingw64-underscores): Option added.
2253
2254 2010-04-27  Jan Hubicka  <jh@suse.cz>
2255
2256         * doc/invoke.texi (-fipa-profile): Document.
2257         * opts.c (decode_options): Enable ipa-profile at -O1.
2258         * timevar.def (TV_IPA_PROFILE): Define.
2259         * common.opt (fipa-profile): Add.
2260         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
2261         flag for clones.
2262         (cgraph_propagate_frequency): Handle only local ones.
2263         * tree-pass.h (pass_ipa_profile): Declare.
2264         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
2265         (pass_ipa_profile): Use TV_IPA_PROFILE.
2266         * ipa.c (ipa_profile): New function.
2267         (gate_ipa_profile): Likewise.
2268         (pass_ipa_profile): New global variable.
2269         * passes.c (pass_ipa_profile): New.
2270
2271 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
2272
2273         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
2274
2275 2010-04-27  Martin Jambor  <mjambor@suse.cz>
2276
2277         PR middle-end/43812
2278         * ipa.c (dissolve_same_comdat_group_list): New function.
2279         (function_and_variable_visibility): Call
2280         dissolve_same_comdat_group_list when comdat group contains external or
2281         newly local nodes.
2282         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
2283         lists are circular and that they contain only DECL_ONE_ONLY nodes.
2284
2285 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
2286
2287         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
2288         (const_hash_1) <VECTOR_CST>: New case.
2289         (compare_constant) <VECTOR_CST>: Likewise.
2290         <ADDR_EXPR>: Deal with LABEL_REFs.
2291         (copy_constant) <VECTOR_CST>: New case.
2292
2293 2010-04-27  Jan Hubicka  <jh@suse.cz>
2294
2295         * cgraph.c (cgraph_propagate_frequency): New function.
2296         * cgraph.h (cgraph_propagate_frequency): Declare.
2297         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
2298         cgraph_propagate_frequency.
2299
2300 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
2301
2302         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
2303
2304 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
2305
2306         PR target/40657
2307         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
2308         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
2309         here to determine which regs to push and how much stack to reserve.
2310
2311 2010-04-27  Jie Zhang  <jie@codesourcery.com>
2312
2313         * doc/gimple.texi (gimple_statement_with_ops): Remove
2314         addresses_taken field.
2315         (gimple_statement_with_memory_ops): Likewise.
2316
2317 2010-04-27  Jan Hubicka  <jh@suse.cz>
2318
2319         * tree-inline.c (eni_inlining_weights): Remove.
2320         (estimate_num_insns): Special case more builtins.
2321
2322 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
2323
2324         PR c/32207
2325         * c-typeck.c (build_binary_op): Move forward check for comparison
2326         pointer with null pointer constant and adjust the diagnostic message.
2327
2328 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
2329
2330         PR lto/42776
2331         * configure.ac (gcc_cv_as_section_has_align): Set if installed
2332         binutils supports extended .section directive needed by LTO, or
2333         warn if older binutils found.
2334         (LTO_BINARY_READER): New AC_SUBST'd variable.
2335         (LTO_USE_LIBELF): Likewise.
2336         * gcc/config.gcc (lto_binary_reader): New target-specific configure
2337         variable.
2338         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
2339         (LTO_USE_LIBELF): Likewise.
2340         * configure: Regenerate.
2341
2342         * collect2.c (is_elf): Rename from this ...
2343         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
2344          object files in addition to ELF-formatted ones.
2345         (scan_prog_file): Caller updated.  Also allow for LTO info marker
2346         symbol to be prefixed or not by an extra underscore.
2347
2348         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
2349         * config/i386/winnt.c: Also #include lto-streamer.h
2350         (i386_pe_asm_named_section): Specify 1-byte section alignment for
2351         LTO named sections.
2352         (i386_pe_asm_output_aligned_decl_common): Add comment.
2353         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
2354
2355 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
2356
2357         PR target/43889
2358         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
2359         Add missing earlyclobber for second alternative.
2360
2361 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
2362
2363         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
2364         bits for artificial defs at the top of the block.
2365         * fwprop.c (single_def_use_enter_block): Don't call it.
2366
2367 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
2368
2369         PR 43715
2370         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
2371         instead of "$gcc_cv_objdump -T".
2372         Use "-undefined dynamic_lookup" on darwin.
2373         * gcc/configure: Regenerate.
2374
2375 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
2376
2377         PR c/43893
2378         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
2379
2380 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
2381
2382         * c-parser.c (struct c_token): Move location field up.
2383         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
2384         (struct c_declspecs): Convert typespec_word, storage_class, and
2385         default_int_p into bitfields.
2386         (struct c_declarator): Move loc field up.
2387
2388 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
2389
2390         * cfgloop.h (struct loop): Move can_be_parallel field up.
2391         * ipa-prop.h (struct ip_node_params): Move bitfields up.
2392         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
2393         down.
2394         (struct iv_cand): Convert pos field into a bitfield.
2395         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
2396         field up.
2397         (struct _stmt_vec_info): Shuffle fields for better packing.
2398
2399 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
2400
2401         * varasm.c (IN_NAMED_SECTION): Remove guard.
2402         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
2403         (IN_NAMED_SECTION_P): ...this.
2404         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
2405         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
2406
2407 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
2408
2409         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
2410         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
2411         of shadowing it.  Fix comments.
2412
2413 2010-04-26  Jan Hubicka  <jh@suse.cz>
2414
2415         * cgraph.c (cgraph_create_node): Set node frequency to normal.
2416         (cgraph_clone_node): Copy function frequency.
2417         * cgraph.h (node_frequency): New enum
2418         (struct cgraph_node): Add.
2419         * final.c (rest_of_clean_state): Update.
2420         * lto-cgraph.c (lto_output_node): Output node frequency.
2421         (input_overwrite_node): Input node frequency.
2422         * tre-ssa-loop-ivopts (computation_cost): Update.
2423         * lto-streamer-out.c (output_function): Do not output function
2424         frequency.
2425         * predict.c (maybe_hot_frequency_p): Update and handle functions
2426         executed once.
2427         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
2428         attribute lookup.
2429         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
2430         (compute_function_frequency): Set noreturn functions to be executed
2431         once.
2432         (choose_function_section): Update.
2433         * lto-streamer-in.c (input_function): Do not input function frequency.
2434         * function.c (allocate_struct_function): Do not initialize function
2435         frequency.
2436         * function.h (function_frequency): Remove.
2437         (struct function): Remove function frequency.
2438         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
2439         (try_update): Update.
2440         * tree-inline.c (initialize_cfun): Do not update function frequency.
2441         * passes.c (pass_init_dump_file): Update.
2442         * i386.c (ix86_compute_frame_layout): Update.
2443         (ix86_pad_returns): Update.
2444
2445 2010-04-26  Jie Zhang  <jie@codesourcery.com>
2446
2447         PR tree-optimization/43833
2448         * tree-vrp.c (range_int_cst_p): New.
2449         (range_int_cst_singleton_p): New.
2450         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
2451         when both operands are constants.  Use range_int_cst_p in
2452         BIT_IOR_EXPR case.
2453
2454 2010-04-26  Jan Hubicka  <jh@suse.cz>
2455
2456         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
2457
2458 2010-04-26  Richard Guenther  <rguenther@suse.de>
2459
2460         PR lto/43080
2461         * gimple.c (gimple_decl_printable_name): Deal gracefully
2462         with a NULL DECL_NAME.
2463
2464 2010-04-26  Richard Guenther  <rguenther@suse.de>
2465
2466         PR lto/42425
2467         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
2468         if emitting debug information and it is either a function
2469         or a namespace decl.
2470
2471 2010-04-26  Ira Rosen  <irar@il.ibm.com>
2472
2473         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
2474         determine if the statement is vectorizable, and a macro to access it.
2475         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
2476         Skip statements that can't be vectorized. If the analysis fails,
2477         mark the statement as unvectorizable if vectorizing basic block.
2478         (vect_compute_data_refs_alignment): Likewise.
2479         (vect_verify_datarefs_alignment): Skip statements marked as
2480         unvectorizable. Add print.
2481         (vect_analyze_group_access): Skip statements that can't be
2482         vectorized. If the analysis fails, mark the statement as
2483         unvectorizable if vectorizing basic block.
2484         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
2485         * tree-vect-stmts.c (vectorizable_store): Fix the number of
2486         generated stmts for SLP.
2487         (new_stmt_vec_info): Initialize the new field.
2488         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
2489         statements marked as unvectorizable.
2490
2491 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
2492
2493         * c-common.c (flag_isoc1x): New.
2494         (flag_isoc99): Update comment.
2495         * c-common.h (flag_isoc1x): New.
2496         (flag_isoc99): Update comment.
2497         * c-cppbuiltin.c (builtin_define_float_constants): Also define
2498         __<type>_DECIMAL_DIG__.
2499         * c-opts.c (set_std_c1x): New.
2500         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
2501         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
2502         * c.opt (-std=c1x, -std=gnu1x): New options.
2503         * doc/cpp.texi: Mention -std=c1x.
2504         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
2505         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
2506         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
2507         * doc/standards.texi: Mention C1X.
2508         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
2509         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
2510         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
2511         Define for C1X.
2512
2513 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
2514
2515         * config/i386/gmon-sol2.c (_mcleanup): Change format string
2516         placeholder from 0x%x to %#x.
2517         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
2518         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
2519         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
2520         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
2521         * config/i386/i386.c (ix86_target_string): Ditto.
2522         (output_pic_addr_const): Ditto.
2523         (print_operand): Ditto.
2524
2525 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
2526
2527         * combine.c (find_split_point): Add third argument.  Use it
2528         to find nested multiply-accumulate instructions.  Adjust calls.
2529         (try_combine): Adjust call to find_split_point.
2530
2531 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
2532
2533         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
2534
2535 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
2536
2537         PR tree-optimization/41442
2538         * fold-const.c (merge_truthop_with_opposite_arm): New function.
2539         (fold_binary_loc): Call it.
2540
2541 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2542
2543         * toplev.c (general_init): Set default for fdiagnostics-show-option.
2544         * opts.c (common_handle_option): Allow disabling it.
2545         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
2546
2547 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
2548
2549         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
2550         between modes if both types are integral.
2551
2552 2010-04-23  Richard Guenther  <rguenther@suse.de>
2553
2554         PR tree-optimization/43572
2555         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
2556
2557 2010-04-23  Richard Guenther  <rguenther@suse.de>
2558
2559         PR lto/43455
2560         * tree-inline.c (tree_can_inline_p): Also check compatibility
2561         of return types.
2562
2563 2010-04-23  Martin Jambor  <mjambor@suse.cz>
2564
2565         PR tree-optimization/43846
2566         * tree-sra.c (struct access): New flag grp_assignment_read.
2567         (build_accesses_from_assign): Set grp_assignment_read.
2568         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
2569         (enum mark_read_status): New type.
2570         (analyze_access_subtree): Propagate grp_assignment_read, create
2571         accesses also if both direct_read and root->grp_assignment_read.
2572
2573 2010-04-23  Martin Jambor  <mjambor@suse.cz>
2574
2575         PR middle-end/43835
2576         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
2577         function does not have type attributes.
2578
2579 2010-04-23  Richard Guenther  <rguenther@suse.de>
2580
2581         PR lto/42653
2582         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
2583         of FUNCTION_DECLs.
2584
2585 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2586
2587         * sese.h (create_if_region_on_edge): Remove.
2588
2589         * sese.c (create_if_region_on_edge): Make static.
2590
2591         * tree-inline.c: Do not include ggc.h.
2592
2593         * expr.c: Do not include ggc.h.
2594
2595         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
2596         dependencies.
2597
2598 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
2599
2600         PR target/43744
2601         * config/sh/sh.c (find_barrier): Don't emit a constant pool
2602         in the middle of insns for casesi_worker_2.
2603
2604 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
2605
2606         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
2607
2608 2010-04-22  Ira Rosen  <irar@il.ibm.com>
2609
2610         PR tree-optimization/43842
2611         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
2612         loop unrolling in update of exit phis. Fix comment.
2613         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
2614         least two reduction statements in the loop before starting SLP
2615         analysis.
2616
2617 2010-04-22  Nick Clifton  <nickc@redhat.com>
2618
2619         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
2620
2621 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
2622
2623         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
2624         to simplify a + ~a.
2625
2626 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2627
2628         * tree-parloops.c (loop_parallel_p): New argument
2629         parloop_obstack.  Pass it down.
2630         (parallelize_loops): New variable parloop_obstack.  Initialize it,
2631         pass it down, free it.
2632
2633         * tree-loop-linear.c (linear_transform_loops): Pass down
2634         lambda_obstack.
2635
2636         * tree-data-ref.h (lambda_compute_access_matrices): New argument
2637         of type struct obstack *.
2638
2639         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
2640         scratch_obstack.  Initialize it, pass down, free it.
2641
2642         * lambda.h (lambda_loop_new): Remove.
2643         (lambda_matrix_new, lambda_matrix_inverse)
2644         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
2645         argument of type struct obstack *.
2646
2647         * lambda-trans.c (lambda_trans_matrix_new): New argument
2648         lambda_obstack.  Pass it down, use obstack allocation for ret.
2649         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
2650         it down.
2651
2652         * lambda-mat.c (lambda_matrix_get_column)
2653         (lambda_matrix_project_to_null): Remove.
2654         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
2655         allocation for mat.
2656         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
2657         lambda_obstack.
2658
2659         * lambda-code.c (lambda_loop_new): New function.
2660         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
2661         (lambda_compute_auxillary_space, lambda_compute_target_space)
2662         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
2663         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
2664         (build_access_matrix): New argument lambda_obstack.  Use obstack
2665         allocation for am.
2666         (lambda_compute_step_signs, lambda_compute_access_matrices): New
2667         argument lambda_obstack.  Pass it down.
2668
2669 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
2670
2671         * optabs.h (expand_widening_mult): Declare.
2672
2673 2010-04-22  Richard Guenther  <rguenther@suse.de>
2674
2675         PR tree-optimization/43845
2676         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
2677         lookup the CALL_EXPR function and arguments.
2678
2679 2010-04-22  Nick Clifton  <nickc@redhat.com>
2680
2681         * config/stormy16/stormy16.c
2682         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
2683         * config/stormy16/stormy16.h: Tidy up formatting.
2684         (DONT_USE_BUILTIN_SETJMP): Remove definition.
2685         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
2686         (ineqbranchsi): Delete pattern.
2687         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
2688         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
2689         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
2690         stormy16-lib2-ucmpsi2.c.
2691
2692 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
2693
2694         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
2695         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
2696         extra set merge_set_noclobber, and use it to relax the final test
2697         slightly.
2698         * df.h (df_simulate_find_noclobber_defs): Declare.
2699         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
2700         conditional defs.
2701         (df_simulate_find_noclobber_defs): New function.
2702
2703 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
2704
2705         * config/i386/i386.md: Use {} around multi-line preparation statements.
2706
2707 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2708
2709         * c-tree.h (push_init_level, pop_init_level, set_init_index)
2710         (process_init_element): New argument of type struct obstack *.
2711
2712         * c-typeck.c (push_init_level, pop_init_level, set_designator)
2713         (set_init_index, set_init_label, set_nonincremental_init)
2714         (set_nonincremental_init_from_string, find_init_member)
2715         (output_init_element, output_pending_init_elements)
2716         (process_init_element): New argument braced_init_obstack.  Pass it
2717         down.
2718         (push_range_stack, add_pending_init): New argument
2719         braced_init_obstack.  Use obstack allocation.
2720
2721         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
2722         braced_init_obstack.  Pass it down.
2723         (c_parser_braced_init): New variables ret, braced_init_obstack.
2724         Initialize obstack, pass it down and finally free it.
2725
2726 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
2727
2728         PR middle-end/29274
2729         * tree-pass.h (pass_optimize_widening_mul): Declare.
2730         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
2731         gate_optimize_widening_mul): New static functions.
2732         (pass_optimize_widening_mul): New.
2733         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
2734         <case MULT_EXPR>: Remove support for widening multiplies.
2735         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
2736         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
2737         simplify_gen_unary rather than directly building extensions.
2738         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
2739         WIDEN_MULT_EXPR.
2740         * expmed.c (expand_widening_mult): New function.
2741         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
2742
2743 2010-04-21  Jan Hubicka  <jh@suse.cz>
2744
2745         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
2746         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
2747         * lto-wpa-fixup.c: Remove.
2748         * Makefile.in (lto-wpa-fixup.o): Remove.
2749         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
2750         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
2751         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
2752
2753 2010-04-21  Jan Hubicka  <jh@suse.cz>
2754
2755         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
2756         add write_optimization_summary, read_optimization_summary.
2757         (ipa_write_summaries_of_cgraph_node_set): Remove.
2758         (ipa_write_optimization_summaries): Declare.
2759         (ipa_read_optimization_summaries): Declare.
2760         * ipa-cp.c (pass_ipa_cp): Update.
2761         * ipa-reference.c (pass_ipa_reference): Update.
2762         * ipa-pure-const.c (pass_ipa_pure_const): Update.
2763         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
2764         Update.
2765         * ipa-inline.c (pass_ipa_inline): Update.
2766         * ipa.c (pass_ipa_whole_program): Update.
2767         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
2768         * passes.c (ipa_write_summaries_1): Do not test wpa.
2769         (ipa_write_optimization_summaries_1): New.
2770         (ipa_write_optimization_summaries): New.
2771         (ipa_read_summaries): Do not test ltrans.
2772         (ipa_read_optimization_summaries_1): New.
2773         (ipa_read_optimization_summaries): New.
2774
2775 2010-04-21  Jan Hubicka  <jh@suse.cz>
2776
2777         * lto-cgraph.c (lto_output_node): Do not output comdat groups
2778         for boundary nodes.
2779         (output_cgraph): Do not arrange comdat groups for boundary nodes.
2780
2781 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
2782
2783         PR debug/40040
2784         * dwarf2out.c (add_name_and_src_coords_attributes): Add
2785         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
2786
2787 2010-04-21  Jan Hubicka  <jh@suse.cz>
2788
2789         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
2790
2791 2010-04-21  Jan Hubicka  <jh@suse.cz>
2792
2793         * varpool.c (decide_is_variable_needed): Variable is always needed
2794         during ltrans.
2795
2796 2010-04-21  Jan Hubicka  <jh@suse.cz>
2797
2798         * opts.c (decode_options): Enable pure-const pass for whopr.
2799
2800 2010-04-21  Jan Hubicka  <jh@suse.cz>
2801
2802         * cgraph.c (dump_cgraph_node): Dump also assembler name.
2803         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
2804         at WPA dumping.
2805         (cgraph_decide_inlining): Do not expect callee to be removed in all
2806         cases.
2807
2808 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
2809
2810         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
2811
2812 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
2813
2814         * config/i386/i386.md (x86_shrd): Add athlon_decode and
2815         amdfam10_decode attributes.
2816
2817 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
2818
2819         PR middle-end/43570
2820         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
2821         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
2822         (lower_copyprivate_clauses): Use private var in outer
2823         context instead of original var.  Make sure the types
2824         are correct for VLAs.
2825
2826 2010-04-21  Richard Guenther  <rguenther@suse.de>
2827
2828         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
2829         to non-pointer objects.
2830
2831 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
2832
2833         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
2834         last chain entry if it starts with the still current label.
2835         (add_location_or_const_value_attribute): Check that
2836         loc_list->first->next is NULL instead of comparing ->first with ->last.
2837         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
2838         to add_var_loc_to_decl.
2839
2840         * dwarf2out.c (output_call_frame_info): For dw_cie_version
2841         >= 4 add also address size and segment size fields into CIE header.
2842
2843         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
2844         long as address size is the same as sizeof (void *) and
2845         segment size is 0.
2846         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
2847         address size or segment size is unexpected, return DW_EH_PE_omit.
2848         (classify_object_over_fdes): If get_cie_encoding returned
2849         DW_EH_PE_omit, return -1.
2850         (init_object): If classify_object_over_fdes returned -1,
2851         pretend there were no FDEs at all.
2852
2853 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
2854
2855         * config/i386/i386.md (bswap<mode>2): Macroize expander from
2856         bswap{si,di}2 using SWI48 mode iterator.
2857         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
2858         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
2859         set modrm attribute of bswap insn to 0 and remove length attribute.
2860         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
2861         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
2862         set mode attribute to <MODE> and remove length attribute.
2863
2864 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
2865
2866         PR rtl-optimization/43520
2867         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
2868         zero available registers.
2869
2870 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2871
2872         * builtins.c (fold_builtin_cproj): Fold more cases.
2873
2874 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2875
2876         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
2877         (fold_builtin_1): Fold builtin cproj.
2878         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
2879         Use ATTR_CONST_NOTHROW_LIST.
2880
2881 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
2882
2883         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
2884         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
2885         ffsi2_no_cmove for !TARGET_CMOVE.
2886         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
2887         (ffssi2): Remove expander.
2888         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
2889         mode iterator.
2890         (ctz<mode>2): Ditto from ctz{si,di}2.
2891         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
2892         mode iterator.
2893         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
2894         mode iterator.
2895
2896 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
2897
2898         * dwarf2out.c (AT_linkage_name): Define.
2899         (clone_as_declaration): Handle DW_AT_linkage_name.
2900         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
2901         of DW_AT_MIPS_linkage_name.
2902         (move_linkage_attr): Likewise.
2903         (dwarf2out_finish): Likewise.
2904
2905 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
2906
2907         PR middle-end/41952
2908         * fold-const.c (fold_comparison): New folding rule.
2909
2910 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
2911
2912         * double-int.h (double_int_setbit): Declare.
2913         * double-int.c (double_int_setbit): New function.
2914         * rtl.h (immed_double_int_const): Declare.
2915         * emit-rtl.c (immed_double_int_const): New function.
2916         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
2917         and immed_double_int_const functions.
2918         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
2919         expand_copysign_bit):  (Ditto.).
2920         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
2921         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
2922         * dojump.c (prefer_and_bit_test): (Ditto.).
2923         * expr.c (convert_modes, reduce_to_bit_field_precision,
2924         const_vector_from_tree): (Ditto.).
2925         * expmed.c (mask_rtx, lshift_value): (Ditto.).
2926
2927 2010-04-20  Jan Hubicka  <jh@suse.cz>
2928
2929         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
2930         (dump_cgraph_node): Dump new flags.
2931         * cgraph.h (struct cgraph_node): Add flags
2932         reachable_from_other_partition and in_other_partition.
2933         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
2934         other partition can not be removed.
2935         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
2936         the other partition must be output; silence sanity checking on
2937         leaking functions bodies from other paritition.
2938         * lto-cgraph.c (reachable_from_other_partition_p): New function.
2939         (lto_output_node): Output new flags; do not sanity check that inline
2940         clones are output; drop lto_forced_extern_inline_p code; do not mock
2941         visibility flags at partition boundaries.
2942         (add_node_to): New function.
2943         (output_cgraph): Use it to sort functions so masters appear before
2944         clones.
2945         (input_overwrite_node): Input new flags.
2946         * passes.c (ipa_write_summaries): Do not call
2947         lto_new_extern_inline_states.
2948         * lto-section-out.c (forced_extern_inline,
2949         lto_new_extern_inline_states lto_delete_extern_inline_states,
2950         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
2951         * lto-streamer.h (lto_new_extern_inline_states,
2952         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
2953         lto_forced_extern_inline_p): Kill.
2954
2955 2010-04-20  Richard Guenther  <rguenther@suse.de>
2956
2957         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
2958         from vars that can have pointers.
2959         (process_constraint): Dump useless constraints.
2960
2961 2010-04-20  Richard Guenther  <rguenther@suse.de>
2962
2963         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
2964         (dump_sa_points_to_info): Remove asserts.
2965         (init_base_vars): nothing_id isn't an escape point nor does it
2966         have pointers.
2967
2968 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
2969
2970         * tree.h (TYPE_REF_IS_RVALUE): Define.
2971         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
2972         should_move_die_to_comdat, prune_unused_types_walk): Handle
2973         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
2974         (modified_type_die, gen_reference_type_die): Emit
2975         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
2976         if TYPE_REF_IS_RVALUE and -gdwarf-4.
2977
2978 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2979
2980         PR target/43635
2981         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
2982         calls for -fpic -m31 if they have been sibcall optimized.
2983
2984 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
2985
2986         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
2987         ar.lc fixed and call-used.
2988
2989         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
2990
2991 2010-04-19  Jan Hubicka  <jh@suse.cz>
2992
2993         * opts.c (decode_options): Disable whpr incompatible passes.
2994         * lto/lto.c (lto_1_to_1_map): Skip clones.
2995         (read_cgraph_and_symbols): Do not mark everything as needed.
2996         (do_whole_program_analysis): Do map only after optimizing;
2997         set proper cgraph_state; use passmanager.
2998
2999 2010-04-19  DJ Delorie  <dj@redhat.com>
3000
3001         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
3002         POINTER_PLUS_EXPR and fix them.
3003
3004 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
3005
3006         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
3007         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
3008         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
3009         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
3010         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
3011         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
3012         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
3013         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
3014         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
3015         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
3016         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
3017
3018 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
3019
3020         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
3021         (check_cond_move_block): Likewise.
3022         (cond_move_process_if_block): Likewise.
3023         (noce_find_if_block): Improve formatting.
3024         (find_if_header): Pass 0 to memset and tweak conditions.
3025         (cond_exec_find_if_block): Fix long lines and tweak conditions.
3026
3027 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
3028
3029         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
3030         for -gdwarf-4.
3031
3032         PR middle-end/43337
3033         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
3034         with non-local decl doesn't need chain.
3035
3036 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
3037
3038         * ira-color.c (allocno_reload_assign): Avoid accumulating
3039         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
3040
3041 2010-04-19  Martin Jambor  <mjambor@suse.cz>
3042
3043         * gimple.h (create_tmp_reg): Declare.
3044         * gimplify.c (create_tmp_reg): New function.
3045         (gimplify_return_expr): Use create_tmp_reg.
3046         (gimplify_omp_atomic): Likewise.
3047         (gimple_regimplify_operands): Likewise.
3048         * tree-dfa.c (make_rename_temp): Likewise.
3049         * tree-predcom.c (predcom_tmp_var): Likewise.
3050         (reassociate_to_the_same_stmt): Likewise.
3051         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
3052         (get_replaced_param_substitute): Likewise.
3053         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
3054         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
3055         * tree-ssa-pre.c (get_representative_for): Likewise.
3056         (create_expression_by_pieces): Likewise.
3057         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
3058         (create_tailcall_accumulator): Likewise.
3059
3060 2010-04-19  Martin Jambor  <mjambor@suse.cz>
3061
3062         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
3063         new_stmt.
3064         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
3065
3066 2010-04-19  Richard Guenther  <rguenther@suse.de>
3067
3068         PR tree-optimization/43796
3069         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
3070         from SCEV in the lattice.
3071         (vrp_visit_phi_node): Dump change.
3072
3073 2010-04-19  Richard Guenther  <rguenther@suse.de>
3074
3075         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
3076         * configure: Re-generated.
3077
3078 2010-04-19  Richard Guenther  <rguenther@suse.de>
3079
3080         PR tree-optimization/43783
3081         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
3082         constant ARRAY_REF operands two and three if possible.
3083
3084 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
3085
3086         PR target/43766
3087         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
3088
3089 2010-04-19  Jie Zhang  <jie@codesourcery.com>
3090
3091         PR target/43662
3092         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
3093
3094 2010-04-19  Ira Rosen  <irar@il.ibm.com>
3095
3096         PR tree-optimization/37027
3097         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
3098         and macro to access it.
3099         (vectorizable_reduction): Add argument.
3100         (vect_get_slp_defs): Likewise.
3101         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
3102         statements for possible use in SLP.
3103         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
3104         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
3105         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
3106         add new argument.
3107         (vectorizable_reduction): Likewise.
3108         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
3109         vect_get_slp_defs.
3110         (vectorizable_type_demotion, vectorizable_type_promotion,
3111         vectorizable_store): Likewise.
3112         (vect_analyze_stmt): Update call to vectorizable_reduction.
3113         (vect_transform_stmt): Likewise.
3114         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
3115         (vect_build_slp_tree): Fix indentation. Check that there are no loads
3116         from different interleaving chains in same node.
3117         (vect_slp_rearrange_stmts): New function.
3118         (vect_supported_load_permutation_p): Allow load permutations for
3119         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
3120         inside SLP nodes if necessary.
3121         (vect_analyze_slp_instance): Handle reductions.
3122         (vect_analyze_slp): Try to build SLP instances originating from groups
3123         of reductions.
3124         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
3125         (vect_get_constant_vectors): Create initial vectors for reductions
3126         according to reduction code. Add new argument.
3127         (vect_get_slp_defs): Add new argument, pass it to
3128         vect_get_constant_vectors.
3129         (vect_schedule_slp_instance): Remove SLP tree root statements.
3130
3131 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
3132
3133         * tree.h (ENUM_IS_SCOPED): Define.
3134         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
3135         for ENUM_IS_SCOPED enums.
3136
3137 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
3138
3139         * fold-const.c (fold_comparison): Use ssizetype.
3140         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
3141         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
3142         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
3143         * tree-object-size.c (compute_object_sizes): Use size_type_node.
3144
3145         * tree.h (initialize_sizetypes): Remove parameter.
3146         (build_common_tree_nodes): Remove second parameter.
3147         * stor-layout.c (initialize_sizetypes): Remove parameter.
3148         Always create an unsigned type.
3149         (set_sizetype): Assert that the passed type is unsigned and simplify.
3150         * tree.c (build_common_tree_nodes): Remove second parameter.
3151         Adjust call to initialize_sizetypes.
3152         * c-decl.c (c_init_decl_processing): Remove second argument in call to
3153         build_common_tree_nodes.
3154
3155 2010-04-18  Matthias Klose  <doko@ubuntu.com>
3156
3157         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
3158
3159 2010-04-18  Ira Rosen  <irar@il.ibm.com>
3160
3161         PR tree-optimization/43771
3162         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
3163         load permutation doesn't have gaps.
3164
3165 2010-04-18  Jan Hubicka  <jh@suse.cz>
3166
3167         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
3168         (sse_prologue_save_insn expander): Use new pattern.
3169         (sse_prologue_save_insn1): New pattern and splitter.
3170         (sse_prologue_save_insn): Update to deal also with 64bit aligned
3171         blocks.
3172         * i386.c (setup_incoming_varargs_64): Do not compute jump
3173         destination here.
3174         (ix86_gimplify_va_arg): Update alignment needed.
3175         (ix86_local_alignment): Do not align all local arrays to 128bit.
3176
3177 2010-04-17  Jan Hubicka  <jh@suse.cz>
3178
3179         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
3180
3181 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
3182
3183         * arm.md (negdi2): Remove redundant code to force values into a
3184         register.
3185
3186 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
3187
3188         * arm/bpabi.S: Add EABI alignment attributes to objects.
3189         * arm/bpabi-v6m.S: Likewise.
3190         * arm/crti.asm: Likewise.
3191         * arm/crtn.asm: Likewise.
3192         * arm/lib1funcs.asm: Likewise.
3193         * arm/libunwind.S: Likewise.
3194
3195 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
3196
3197         * arm-protos.h (tune_params): New structure.
3198         * arm.c (current_tune): New variable.
3199         (arm_constant_limit): Delete.
3200         (struct processors): Add pointer to the tune parameters.
3201         (arm_slowmul_tune): New tuning option.
3202         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
3203         (all_cores): Adjust to pick up the tuning model.
3204         (arm_constant_limit): New function.
3205         (arm_override_options): Select the appropriate tuning model.  Delete
3206         initialization of arm_const_limit.
3207         (arm_split_constant): Use the new constant-limit model.
3208         (arm_rtx_costs): Pick up the current tuning model.
3209         * arm.md (is_strongarm, is_xscale): Delete.
3210         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
3211         for Xscale variant architectures.
3212         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
3213
3214 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3215
3216         * config/arm/arm.c (arm_gen_constant): Remove unused variable
3217         can_shift.
3218         (arm_rtx_costs_1): Remove unused variable extra_cost.
3219         (arm_unwind_emit_set): Use variable offset.
3220         (thumb1_output_casesi): Remove unused variable flags.
3221
3222 2010-04-16  Jeff Law  <law@redhat.com>
3223
3224         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
3225         needing assignment rather than doing a two-phase assignment.  Remove
3226         unused variable 'm'.
3227
3228 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
3229
3230         PR bootstrap/43767
3231         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
3232
3233 2010-04-16  Doug Kwan  <dougkwan@google.com>
3234
3235         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
3236         (next_operand_entry_id): New static variable.
3237         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
3238         (add_to_ops_vec): Assigned unique ID to operand entry.
3239         (struct oecount_s): New field ID.
3240         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
3241         (undistribute_ops_list): Assign unique IDs to oecounts.
3242         (init_reassoc): reset next_operand_entry_id.
3243
3244 2010-04-16  Doug Kwan  <dougkwan@google.com>
3245
3246         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
3247         missing left parenthesis.
3248
3249 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
3250
3251         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
3252         *btdi_rex64 using SWI48 mode iterator.
3253         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
3254         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
3255         *jcc_btdi_mask_rex64.
3256
3257 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
3258
3259         * double-int.h (tree_to_double_int): Convert to macro.
3260         * double-int.c (tree_to_double_int): Remove.
3261
3262 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
3263
3264         PR debug/43762
3265         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
3266         with want_address 2 and in case a single element list might be
3267         possible, call it again with want_address 0.
3268
3269 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
3270
3271         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
3272         case 'W' print operands for HI mode.
3273         * config/h8300/h8300.h (Y0, Y2) : New constraints.
3274         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
3275         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
3276         * config/h8300/predicate.md (bit_register_indirect_operand): New.
3277
3278         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
3279
3280         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
3281         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
3282         #xx:3 and #xx:4 mode.
3283
3284         * config/h8300/h8300.md (inverted load with HImode dest): Add
3285         support for H8300SX.
3286
3287         * config/h8300/predicate.md (bit_operand): Allow immediate values that
3288         satisfy 'U' constraint.
3289
3290 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3291
3292         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
3293         * configure: Regenerate.
3294         * config.in: Regenerate.
3295         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
3296         works.
3297
3298 2010-04-16  Richard Guenther  <rguenther@suse.de>
3299
3300         * tree.h (struct tree_decl_minimal): Move pt_uid ...
3301         (struct tree_decl_common): ... here.
3302         (DECL_PT_UID): Adjust.
3303         (SET_DECL_PT_UID): Likewise.
3304         (DECL_PT_UID_SET_P): Likewise.
3305
3306 2010-04-16  Richard Guenther  <rguenther@suse.de>
3307
3308         PR tree-optimization/43572
3309         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
3310         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
3311         * tree-flow.h (is_call_clobbered): Remove.
3312         * tree-flow-inline.h (is_call_clobbered): Likewise.
3313         * tree-dfa.c (dump_variable): Do not dump call clobber state.
3314         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
3315         (execute_return_slot_opt): Adjust.
3316         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
3317         check for call clobbered vars here.
3318         (find_tail_calls): Move tailcall verification to the
3319         proper place.
3320
3321 2010-04-16  Diego Novillo  <dnovillo@google.com>
3322
3323         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
3324
3325 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
3326
3327         PR target/40603
3328         * config/arm/arm.md (cbranchqi4): New pattern.
3329         * config/arm/predicates.md (const0_operand,
3330         cbranchqi4_comparison_operator): New predicates.
3331
3332 2010-04-16  Richard Guenther  <rguenther@suse.de>
3333
3334         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
3335         (dump_gimple_stmt): Likewise.
3336
3337 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
3338
3339         * recog.h (struct recog_data): New field is_operator.
3340         (struct insn_operand_data): New field is_operator.
3341         * recog.c (extract_insn): Set recog_data.is_operator.
3342         * genoutput.c (output_operand_data): Emit code to set the
3343         is_operator field.
3344         * reload.c (find_reloads): Use it rather than testing for an
3345         empty constraint string.
3346
3347         PR target/41514
3348         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
3349         If the previous insn is a cbranchsi4_insn with the same arguments,
3350         omit the compare instruction.
3351
3352         * config/arm/arm.md (addsi3_cbranch): If destination is a high
3353         register, inputs must be low registers and we need a low register
3354         scratch.  Handle alternative 2 like alternative 3.
3355
3356 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
3357
3358         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
3359         don't call get_addr on both.  If one expression is a VALUE and
3360         the other a REG, check VALUE's locs if the REG isn't among them.
3361
3362 2010-04-16  Christian Bruel  <christian.bruel@st.com>
3363
3364         * config/sh/sh.h (sh_frame_pointer_required): New function.
3365         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
3366         (flag_omit_frame_pointer) Set.
3367         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
3368         (rounded_frame_size): Adjust size with outgoing_args_size.
3369         (sh_set_return_address): Must return from stack pointer.
3370         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
3371         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
3372         (ACCUMULATE_OUTGOING_ARGS): Define.
3373         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
3374         * gcc/config/sh/sh.opt: (maccumulate-outgoing-args): New option.
3375
3376 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
3377
3378         PR target/43471
3379         * config/sh/sh.c (sh_legitimize_reload_address): Use
3380         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
3381         Remove a unneeded check for offset_base.
3382
3383 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
3384
3385         * configure: Regenerated.
3386
3387 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3388
3389         * config/s390/s390.c (s390_call_save_register_used): Switch back
3390         to HARD_REGNO_NREGS.
3391
3392 2010-04-15  Richard Guenther  <rguenther@suse.de>
3393
3394         * alias.c (alias_set_subset_of): Handle alias-set zero
3395         child properly.
3396
3397 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
3398             Julian Brown  <julian@codesourcery.com>
3399
3400         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
3401         alternatives according to use of high and low regs.
3402         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
3403         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
3404         optimizing for size on Thumb-2.
3405
3406 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
3407
3408         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
3409
3410 2010-04-15  Richard Guenther  <rguenther@suse.de>
3411
3412         * tree-ssa-structalias.c (struct variable_info): Add
3413         is_fn_info flag.
3414         (new_var_info): Initialize it.
3415         (dump_constraints): Support printing last added constraints.
3416         (debug_constraints): Adjust.
3417         (dump_constraint_graph): Likewise.
3418         (make_heapvar_for): Check for NULL cfun.
3419         (get_function_part_constraint): New function.
3420         (get_fi_for_callee): Likewise.
3421         (find_func_aliases): Properly implement IPA PTA constraints.
3422         (process_ipa_clobber): New function.
3423         (find_func_clobbers): Likewise.
3424         (insert_into_field_list_sorted): Remove.
3425         (create_function_info_for): Properly allocate vars for IPA mode.
3426         Do not use insert_into_field_list_sorted.
3427         (create_variable_info_for): Properly generate constraints for
3428         global vars in IPA mode.
3429         (dump_solution_for_var): Always dump the solution.
3430         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
3431         (find_what_var_points_to): Adjust.
3432         (pt_solution_set): Change.