OSDN Git Service

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