OSDN Git Service

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