OSDN Git Service

71cf0d3c0d2b3c75a5b9b6207dd21b7e8977fcb2
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-05-16  Richard Guenther  <rguenther@suse.de>
2
3         * alias.c (nonoverlapping_memrefs_p): Remove use of
4         IPA type-escape information.
5
6 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
7
8         * c-common.c (c_common_reswords): Add _Static_assert for C.
9         * c-parser.c (c_token_starts_declaration,
10         c_parser_next_token_starts_declaration,
11         c_parser_static_assert_declaration_no_semi,
12         c_parser_static_assert_declaration): New.
13         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
14         Handle static assertions if static_assert_ok.
15         (c_parser_external_declaration, c_parser_declaration_or_fndef,
16         c_parser_compound_statement_nostart, c_parser_label,
17         c_parser_for_statement, c_parser_objc_methodprotolist,
18         c_parser_omp_for_loop): All callers of
19         c_parser_declaration_or_fndef changed.
20         (c_parser_struct_declaration): Handle static assertions.
21         (c_parser_compound_statement_nostart): Use
22         c_parser_next_token_starts_declaration and
23         c_token_starts_declaration to detect start of declarations.
24         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
25         Likewise.
26
27 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
28
29         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
30         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
31         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
32         TARGET_FUNCTION_VALUE_REGNO_P): Define.
33         (mmix_function_outgoing_value): Rename to...
34         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
35         (mmix_function_value_regno_p): Make static.
36         (mmix_libcall_value): New function.
37         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
38         mmix_function_value_regno_p): Remove declaration.
39
40 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
41
42         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
43         BUILT_IN_ALLOCA if stack checking is enabled.
44
45 2010-05-16  Richard Guenther  <rguenther@suse.de>
46
47         * var-tracking.c (vars_copy_1): Inline ...
48         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
49         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
50         (variable_merge_over_cur): Adjust.  Merge asserts.
51         (variable_merge_over_src): Likewise.
52         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
53         (variable_post_merge_new_vals): Merge asserts.
54         (variable_post_merge_perm_vals): Likewise.
55         (find_mem_expr_in_1pdv): Likewise.
56         (dataflow_set_different_value): Remove.
57         (onepart_variable_different_p): Merge asserts.
58         (variable_different_p): Likewise.
59         (dataflow_set_different_1): Inline ...
60         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
61         (emit_notes_for_differences_1): Merge asserts.
62
63 2010-05-16  Richard Guenther  <rguenther@suse.de>
64
65         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
66         * optabs.c (libfunc_decl_hash): Likewise.
67         * varasm.c (emutls_decl): Likewise.
68
69 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
70
71         * c-decl.c: Don't include gimple.h.
72         (merge_decls): Do not copy gimple_body.
73
74 2010-05-15  Jason Merrill  <jason@redhat.com>
75
76         * c.opt: Add -fnothrow-opt.
77
78 2010-05-15  Jan Hubicka  <jh@suse.cz>
79
80         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
81         analyzed.
82         * passes.c (ipa_write_summaries): Write all analyzed nodes.
83
84 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
85
86         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
87         * Makefile.in: Add it.
88         Fix all other Makefile dependencies for changes below.
89         * tree.h: Include it instead of defining VEC primitives here.
90         * gimple.h: Likewise.
91         * rtl.h: Likewise.
92         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
93         * except.h: Include vecir.h, break dependence on tree.h.
94
95         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
96         Move from here...
97         * tree-iterator.c: ...to here.
98         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
99
100         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
101         tm_p.h.
102         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
103         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
104         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
105         tree-mudflap.h, and target.h.
106         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
107         predict.h, tree-inline.h, gimple.h, and langhooks.h.
108         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
109         Add FIXME for why gimple.h is still included (should be unnecessary
110         since GCC 4.5 gimplification unit-at-a-time).
111         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
112         * c-pragma.c: Add FIXME for why function.h needs to be included just
113         for cfun, at front-end level.
114         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
115         Do not include ggc.h, but include vecprim.h for VEC(char).
116         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
117         Explain why target.h is included.
118         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
119         Explain why gimple.h is included.
120         * c-ppoutput.c: Do not include tm.h.
121         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
122         * c-parses.c: Explain why rtl.h is included, and that this (and only
123         this) is also why tm.h must be included.
124         Do not include except.h.
125         * c-lang.c: Do not include ggc.h.
126
127 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
128
129         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
130
131 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
132
133         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
134         unions by default if those structs and unions have no tags.  Do
135         not condition anonymous struct and unions handling on flag_iso.
136         Allow anonymous structs and unions for C1X.
137         (finish_struct): Do not diagnose lack of named fields when
138         anonymous structs and unions present for C1X.  Accept flexible
139         array members in structure with anonymous structs or unions but no
140         directly named fields.
141         * doc/extend.texi (Unnamed Fields): Update.
142
143 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
144
145         * gimple.h (compare_field_offset): Rename into...
146         (gimple_compare_field_offset): ...this.
147         * gimple.c (compare_field_offset): Rename into...
148         (gimple_compare_field_offset): ...this.  Compare the full access if
149         the offset is self-referential.
150         (gimple_types_compatible_p): Adjust for above renaming.
151         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
152         DECL_NONADDRESSABLE_P flag of fields before merging them.
153
154 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
155
156         * tree.h (ctor_to_list): Delete.
157         * tree.c (ctor_to_list): Delete.
158
159 2010-05-15  Jan Hubicka  <jh@suse.cz>
160
161         * ipa-reference.c: Include toplev.h
162         (is_proper_for_analysis): Only add to all_module_statics
163         if it is allocated.
164         (write_node_summary_p, stream_out_bitmap,
165         ipa_reference_write_optimization_summary,
166         ipa_reference_read_optimization_summary): New.
167         (struct ipa_opt_pass_d pass_ipa_reference): Add
168         optimization summary streaming.
169         * lto-cgraph.c (referenced_from_this_partition_p,
170         reachable_from_this_partition_p): New functions.
171         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
172         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
173         * opts.c (decode_options): Enable ipa_reference.
174         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
175         * lto-streamer.h (referenced_from_this_partition_p,
176         reachable_from_this_partition_p): Declare.
177
178 2010-05-15  Richard Guenther  <rguenther@suse.de>
179
180         PR tree-optimization/44038
181         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
182         taking the address of a V_C_E of a constant.
183
184 2010-05-14  Jan Hubicka  <jh@suse.cz>
185
186         * tree.h (memory_identifier_string): Remove.
187         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
188         (ipa_reference_global_vars_info_d): Remove statics_not_read and
189         statics_not_written.
190         (ipa_reference_optimization_summary_d): New structure.
191         (ipa_reference_optimization_summary_t): New type and vector.
192         (ipa_reference_vars_info_d): Embedd structures instead of using
193         pointers.
194         (reference_vars_to_consider): Remove out of GGC space.
195         (module_statics_escape): Remove.
196         (global_info_obstack): Rename to ...
197         (optimization_summary_obstack): ... this one.
198         (initialization_status_t): Remove.
199         (memory_identifier_string): Remove.
200         (get_reference_vars_info): Fix indenting.
201         (set_reference_vars_info): Likewise.
202         (get_reference_optimization_summary): New.
203         (set_reference_optimization_summary): New.
204         (get_global_reference_vars_info): Remove.
205         (ipa_reference_get_read_global): Remove.
206         (ipa_reference_get_written_global): Remove.
207         (ipa_reference_get_not_read_global): Update.
208         (ipa_reference_get_not_written_global): Update.
209         (is_proper_for_analysis): Outlaw addressable.
210         (propagate_bits): Update for new datastructures.
211         (analyze_variable): Remove.
212         (init_function_info): Update for new datastructures.
213         (clean_function_local_data): Remove.
214         (clean_function): Remove.
215         (copy_global_bitmap): Use optimizations_summary_obstack.
216         (duplicate_node_data): Duplicate optimization summary only.
217         (remove_node_data): Remove optimization summary only.
218         (generate_summary): Do not analyze variables; do not compute
219         module_statics_escape; do not prune solutions by it.
220         (read_write_all_from_decl): Fix typos in comments.
221         (propagate): Doscover readonly and nonaddressable first;
222         update for new datastructures; share global bitmaps.
223         * ipa-reference.h (ipa_reference_get_read_global,
224         ipa_reference_get_written_global): Remove.
225         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
226         * Makefile.in: Remove ipa-refereference from GT files.
227
228 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
229
230         PR debug/44112
231         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
232         for all SYMBOL_REF_DECLs.
233
234 2010-05-14  Jan Hubicka  <jh@suse.cz>
235
236         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
237         (varpool_all_refs_explicit_p): New inline function.
238         * ipa-reference.c: Update comment.
239         (module_statics_written): Remove.
240         (get_static_decl): Remove.
241         (ipa_init): Do not initialize module_statics_written.
242         (analyze_function): Likewise.
243         (generate_summary): Likewise; do not compute module_statics_readonly
244         and do not update variable flags.
245         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
246         * ipa.c: Inlucde flags.h
247         (cgraph_local_node_p): New.
248         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
249         promote functions to local.
250         (ipa_discover_readonly_nonaddressable_vars): New function.
251         (function_and_variable_visibility): Use cgraph_local_node_p.
252         * varpool.c (varpool_finalize_decl): Set force_output for
253         DECL_PRESERVE_P vars.
254
255 2010-05-14  Jan Hubicka  <jh@suse.cz>
256
257         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
258
259 2010-05-14  Richard Guenther  <rguenther@suse.de>
260
261         PR tree-optimization/44119
262         * tree-ssa-pre.c (eliminate): Properly mark replacement of
263         a PHI node necessary.
264
265 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
266
267         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
268
269 2010-05-14  Jason Merrill  <jason@redhat.com>
270
271         PR c++/44127
272         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
273         (gimple_call_set_nothrow): New.
274         * gimple.c (gimple_build_call_from_tree): Call it.
275         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
276
277         PR c++/44127
278         * gimplify.c (gimplify_seq_add_stmt): No longer static.
279         * gimple.h: Declare it.
280         * gimple.c (gimple_build_eh_filter): No ops.
281
282 2010-05-14  Jan Hubicka  <jh@suse.cz>
283
284         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
285         nodes already in queue.
286         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
287         re-enqueueing node.
288
289 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
290
291         PR debug/44136
292         * cfgexpand.c (expand_debug_expr): If non-memory op0
293         has BLKmode, return NULL.
294
295 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
296
297         * config.gcc: Add support for --with-cpu option for bdver1.
298         * config/i386/i386.h (TARGET_BDVER1): New macro.
299         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
300         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
301         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
302         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
303         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
304         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
305         (processor_type): Add PROCESSOR_BDVER1.
306         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
307         processor_type in config/i386/i386.h.
308         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
309         movaps <reg, reg> instead of movapd <reg, reg> when replacing
310         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
311         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
312         to emit packed xor instead of packed double/packed integer
313         xor for SSE and AVX when moving a zero value.
314         * config/i386/sse.md: Add check for
315         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
316         movapd/movdqa for SSE and AVX.
317         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
318         single logical operations i.e and, or and xor instead of packed double
319         logical operations for SSE and AVX.
320         * config/i386/i386-c.c (ix86_target_macros_internal):
321         Add PROCESSOR_BDVER1.
322         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
323         (has_fma4, has_xop): New.
324         * config/i386/i386.c (bdver1_cost): New variable.
325         (m_BDVER1): New macro.
326         (m_AMD_MULTIPLE): Add m_BDVER1.
327         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
328         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
329         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
330         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
331         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
332         x86_tune_sse_partial_reg_dependency,
333         x86_tune_sse_unaligned_load_optimal,
334         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
335         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
336         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
337         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
338         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
339         Enable/disable for bdver1.
340         (processor_target_table): Add bdver1_cost.
341         (cpu_names): Add bdver1.
342         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
343          processor_alias_table.
344         (ix86_expand_vector_move_misalign): Change.
345         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
346         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
347         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
348         of movupd/movdqu for SSE and AVX.
349         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
350         (ix86_tune_adjust_cost): Add code for bdver1.
351         (standard_sse_constant_opcode): Add check for
352         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
353         of packed double xor for SSE and AVX.
354
355 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
356
357         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
358         result to unsigned.
359
360 2010-05-14  Tristan Gingold  <gingold@adacore.com>
361
362         * toplev.c (default_debug_hooks): Remove this variable.
363         (process_options): Remove assignments to default_debug_hooks.
364
365 2010-05-14  Martin Jambor  <mjambor@suse.cz>
366
367         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
368         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
369         * langhooks.h (struct lang_hooks_for_decls): Removed field
370         fold_obj_type_ref.
371         * tree.c (free_lang_data): Remove assignment to
372         lang_hooks.fold_obj_type_ref.
373         * tree.def (OBJ_TYPE_REF): Update comment.
374
375 2010-05-14  Richard Guenther  <rguenther@suse.de>
376
377         PR tree-optimization/44124
378         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
379
380 2010-05-14  Alan Modra  <amodra@gmail.com>
381
382         PR target/44075
383         * config/rs6000/rs6000.c (struct machine_function): Reorder
384         fields for better packing.  Add lr_save_state.
385         (rs6000_ra_ever_killed): Return lr_save_state if set.
386         (rs6000_emit_eh_reg_restore): Set lr_save_state.
387
388 2010-05-13  Jan Hubicka  <jh@suse.cz>
389
390         * varpool.c (decide_is_variable_needed): Drop code checking
391         TREE_SYMBOL_REFERENCED.
392
393 2010-05-13  Jan Hubicka  <jh@suse.cz>
394
395         * final.c (output_addr_const): Do not call mark_decl_referenced.
396         * cgraphunit.c (process_function_and_variable_attributes): Use
397         mark_needed_node dirrectly.
398         (assemble_thunk): Do not call mark_decl_referenced.
399
400 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
401
402         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
403
404 2010-05-13  Jeff Law  <law@redhat.com>
405
406         * ira-conflicts.c (print_allocno_conflicts): New function broken out
407         from...
408         (print_conflicts): Call print_allocno_conflicts.
409
410 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
411
412         PR debug/44104
413         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
414         if it is NULL.
415
416 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
417
418         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
419         t-mingw-w64 or t-mingw-w32 for multilib configuration.
420         * config/i386/t-mingw-w32: New.
421         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
422
423 2010-05-13  Martin Jambor  <mjambor@suse.cz>
424
425         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
426         gimple-fold.c).
427         * gimple-fold.c (get_base_binfo_for_type): New function.
428         (gimple_get_relevant_ref_binfo): Likewise.
429         (gimple_fold_obj_type_ref_known_binfo): Likewise.
430         (gimple_fold_obj_type_ref): Likewise.
431         (fold_gimple_call): Simplify condition for folding virtual calls
432         and call gimple_fold_obj_type_ref.
433         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
434         (gimple_fold_obj_type_ref_known_binfo): Likewise.
435
436 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
437
438         * config/rs6000/rs6000-protos.h
439         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
440         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
441         (rs6000_debug_mode_dependent_address)
442         (rs6000_mode_dependent_address_ptr): Likewise.
443
444 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
445
446         PR debug/43983
447         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
448         by SRA.
449         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
450         * tree-sra.c (create_access_replacement): Call unshare_expr before
451         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
452         * dwarf2out.c: Include tree-flow.h.
453         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
454         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
455         Handle DW_OP_bit_piece.
456         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
457         construct_piece_list, adjust_piece_list): New functions.
458         (add_var_loc_to_decl): Handle SRA optimized variables.
459         Adjust for var_loc_note to loc field renaming.
460         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
461         in VAR_LOCATION note.
462         (new_loc_descr_op_bit_piece): New function.
463         (dw_sra_loc_expr): New function.
464         (dw_loc_list): Use it.  Don't handle the last range after the
465         loop, handle it inside of the loop.  Adjust for var_loc_note
466         to loc field renaming.
467         (add_location_or_const_value_attribute): Only special case
468         single entry loc lists if loc is NOTE_P.  Adjust for
469         var_loc_note to loc field renaming.
470         (dwarf2out_var_location): Don't set newloc->var_loc_note
471         and newloc->next here.
472
473 2010-05-12  Jan Hubicka  <jh@suse.cz>
474
475         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
476         flag.
477         * cgraph.h (cgraph_only_called_directly_p,
478         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
479         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
480         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
481         (assemble
482         * ipa.c (cgraph_remove_unreachable_nodes): Use
483         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
484         flags.
485         * tree-inline.c (copy_bb): Check address_taken flag.
486         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
487         externally_visible flag.
488
489 2010-05-12  Jason Merrill  <jason@redhat.com>
490
491         PR bootstrap/44048
492         PR target/44099
493         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
494         * sdbout.c (plain_type_1): Likewise.
495         * dwarf2out.c (is_base_type): Likewise.
496         (gen_type_die_with_usage): Likewise.  Generate
497         DW_TAG_unspecified_type for any LANG_TYPE.
498
499 2010-05-12  Jan Hubicka  <jh@suse.cz>
500
501         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
502         indrect edges too.
503         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
504         (cgraph_clone_edge): Update.
505         (cgraph_node_remove_callees): Remove indirect calls too.
506         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
507         (cgraph_create_indirect_edge): Update prototype.
508         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
509         is_proper_for_analysis.
510         (add_new_function, visited_nodes, function_insertion_hook_holder,
511         get_local_reference_vars_info, mark_address_taken, mark_address,
512         mark_load, mark_store, check_asm_memory_clobber, check_call,
513         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
514         (ipa_init): Do not initialize visited_nodes;
515         function_insertion_hook_holder.
516         (analyze_variable): Rewrite.
517         (analyze_function): Rewrite.
518         (copy_local_bitmap): Remove.
519         (duplicate_node_dat): Do not duplicate local info.
520         (generate_summary): Simplify to only walk cgraph.
521         (write_node_summary_p, ipa_reference_write_summary,
522         ipa_reference_read_summary): Remove.
523         (propagate): Do not remove function insertion;
524         generate summary.
525         (pass_ipa_reference): NULLify summary handling fields.
526         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
527         (input_edge): Input ecf_flags.
528         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
529         (update_indirect_edges_after_inlining): Ignore edges with unknown
530         param.
531
532 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
533
534         * implicit-zee.c: New file.
535         * tree-pass.h (pass_implicit_zee): Declare.
536         * passes.c (init_optimization_passes): Add zee pass.
537         * common.opt (fzee): New flag.
538         * timevar.def (TV_ZEE): Define.
539         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
540         and beyond.
541         * Makefile.in (implicit-zee.o): Add new build file.
542
543 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
544             Nathan Froyd  <froydnj@codesourcery.com>
545
546         * c-common.c (sync_resolve_params): Remove write-only variable.
547
548 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
549
550         * target.h (struct gcc_target): Add mode_dependent_address_p field.
551         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
552         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
553         * targhooks.c (default_mode_dependent_address_p): New function.
554         * targhooks.h (default_mode_dependent_address_p): Declare function.
555         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
556         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
557         * recog.c: (mode_dependent_address_p): Call mode_dependent_address_p
558         target hook. Change return type to bool.
559         * recog.h: (mode_dependent_address_p): Change return type to bool.
560
561 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
562             Nathan Froyd  <froydnj@codesourcery.com>
563
564         * tree-mudflap.c (build_function_type_0, build_function_type_1,
565         build_function_type_2, build_function_type_3): Remove.
566         (mudflap_init): Use build_function_type_list.
567
568 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
569             Nathan Froyd  <froydnj@codesourcery.com>
570
571         * coverage.c (build_fn_info_value): Call build_constructor instead of
572         build_constructor_from_list.
573         (build_ctr_info_value): Likewise.
574         (build_gcov_info): Likewise.
575
576 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
577
578         * tree.c (build_constructor): Compute TREE_CONSTANT for the
579         resultant constructor.
580         (build_constructor_single): Don't set TREE_CONSTANT.
581         (build_constructor_from_list): Don't compute TREE_CONSTANT.
582
583 2010-05-12  Jan Hubicka  <jh@suse.cz>
584
585         * cgraph.h (struct varpool_node): Add aux.
586         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
587         * varpool.c (varpool_remove_node): Do not remove initializer.
588         (varpool_reset_queue): Export.
589         (varpool_finalize_decl): Volatile vars are forced to be output.
590         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
591         replaced decl.
592         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
593         process_references, varpool_can_remove_if_no_refs): New functions.
594         (cgraph_remove_unreachable_nodes): Handle variables too.
595
596 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
597
598         PR target/44088
599         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
600
601 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
602
603         PR middle-end/44085
604         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
605         change value of ORT_TASK.
606         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
607         (omp_notice_threadprivate_variable): New function.
608         (omp_notice_variable): Call it for threadprivate variables.
609         If enclosing ctx is a task, print enclosing task rather than
610         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
611         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
612         if task has untied clause.
613
614         PR debug/42278
615         * dwarf2out.c (base_type_die): Don't add name attribute here.
616         (modified_type_die): Instead of sizetype use
617         its underlying original type.  If a DW_TAG_base_type doesn't
618         have name added, add __unknown__.
619         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
620         always call force_type_die instead.
621
622 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
623
624         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
625         for __stack_chk_guard.
626
627 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
628
629         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
630         don't call start_source_file debug hook here...
631         (finish_options): ... but here, after outputting predefined and
632         command line defines and undefs.
633
634         PR middle-end/44071
635         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
636         no fallthru edge.
637         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
638         optimizing away empty bb with no successors, move over its
639         footer chain to fallthru predecessor.
640         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
641         (rtl_split_edge): For asm goto call patch_jump_insn even if
642         splitting fallthru edge.
643
644         PR c++/44059
645         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
646         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
647         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
648         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
649         on DW.ref.* decls.
650
651         PR c++/44062
652         * c-parser.c (c_parser_expression): Mark LHS of a comma
653         expression as read if it is a decl, handled component or
654         COMPOUND_EXPR with that on the RHS.
655         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
656         if it is a decl or handled component.
657
658 2010-05-11  Jan Hubicka  <jh@suse.cz>
659
660         * lto-symtab.c (lto_symtab_free): New function.
661         * lto-streamer.h (lto_symtab_free): Declare.
662
663 2010-05-11  Jan Hubicka  <jh@suse.cz>
664
665         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
666         that if function is needed it is reachable.
667         (lto_output_node): See if it the function is reachable or referenced.
668         (output_cgraph): Update call of lto_output_node.
669         * lto-streamer.h (reachable_from_other_partition_p): Declare.
670
671 2010-05-11  Jan Hubicka  <jh@suse.cz>
672
673         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
674         Mark as used.
675
676 2010-05-11  Jan Hubicka  <jh@suse.cz>
677
678         PR tree-optimize/44063
679         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
680         queue.
681         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
682         limits.
683         (estimate_function_body_sizes): Compute sizes even when disregarding.
684
685 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
686
687         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
688
689 2010-05-11  Jan Hubicka  <jh@suse.cz>
690
691         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
692         into every boundary.
693
694 2010-05-11  Jan Hubicka  <jh@suse.cz>
695
696         * matrix-reorg.c (matrix_reorg): Rebuild edges.
697
698 2010-05-11  Jan Hubicka  <jh@suse.cz>
699
700         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
701         lto_streamer_cache_delete): Put nodes into heap.
702         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
703         heap.
704
705 2010-05-11  Jan Hubicka  <jh@suse.cz>
706
707         * cgraphbuild.c (cgraph_rebuild_references): New.
708         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
709         out extern inlines.
710         * cgraph.h (cgraph_rebuild_references): Declare.
711         * tree-inline.c (tree_function_versioning): Use it.
712         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
713
714 2010-05-11  Jan Hubicka  <jh@suse.cz>
715
716         * cgraph.c: Include ipa-utils.h
717         (cgraph_create_virtual_clone): Update references.
718         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
719
720 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
721
722         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
723         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
724         cache size.
725
726 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
727
728         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
729
730 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
731
732         * gcc.c (execute): For -### don't quote arguments that
733         contain just alphanumerics and _/-. characters.
734         * doc/invoke.texi: Document that change for -###.
735
736         PR debug/44023
737         * df-problems.c (struct dead_debug): Add to_rescan field.
738         (dead_debug_init): Clear to_rescan field.
739         (dead_debug_finish): Rescan all debug insns in to_rescan
740         bitmap and free the bitmap.
741         (dead_debug_insert_before): Instead of rescanning debug insns
742         immediately queue their rescanning until dead_debug_finish.
743         (df_note_bb_compute): After dead_debug_add do continue instead
744         of break.
745
746 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
747
748         PR debug/44028
749         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
750         clear also INSN_REG_USE_LIST.
751
752 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
753
754         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
755
756 2010-05-10  Jan Hubicka  <jh@suse.cz>
757
758         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
759         commited change.
760
761 2010-05-10  Jan Hubicka  <jh@suse.cz>
762
763         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
764         Allocate encoders.
765         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
766         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
767         (lto_streamer_cache_create): Init alloc pool.
768         (lto_streamer_cache_delete): Free alloc pool.
769         * lto-streamer.h: Include alloc pool.
770         (lto_streamer_cache_d): Use alloc pool.
771         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
772
773 2010-05-10  Jan Hubicka  <jh@suse.cz>
774
775         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
776         * cgraphbuild.c: Include except.h
777         (record_type_list, record_eh_tables): New function.
778         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
779
780 2010-05-10  Jan Hubicka  <jh@suse.cz>
781
782         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
783         __frame_dummy_init_array_entry, force_to_data): Attribute as used
784         rather than unused.
785
786 2010-05-10  Michael Matz  <matz@suse.de>
787
788         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
789         (can_reassociate_p): Use FLOAT_TYPE_P.
790         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
791         (vect_force_simple_reduction): ... this.
792         * tree-parloops.c (gather_scalar_reductions): Use
793         vect_force_simple_reduction.
794         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
795         vect_is_simple_reduction, add modify argument, if true rewrite
796         "a-b" into "a+(-b)".
797         (vect_is_simple_reduction, vect_force_simple_reduction): New
798         functions.
799         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
800
801 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
802             Vladimir Makarov  <vmakarov@redhat.com>
803
804         PR rtl-optimization/44012
805         * ira-build.c (remove_unnecessary_allocnos): Nullify
806         regno_allocno_map of the removed allocno.
807
808 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
809
810         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
811         to /dev/null.
812         * configure: Regenerate.
813
814 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
815
816         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
817         unused.
818         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
819         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
820         support in Sun ld.
821         * configure: Regenerate.
822
823 2010-05-10  Richard Guenther  <rguenther@suse.de>
824
825         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
826         marked if the entry identifier is marked.
827
828 2010-05-10  Richard Guenther  <rguenther@suse.de>
829
830         * c-common.c (struct c_common_attributes): Add fnspec attribute.
831         (handle_fnspec_attribute): New function.
832         * gimple.h (gimple_call_return_flags): Declare.
833         (gimple_call_arg_flags): Likewise.
834         * gimple.c (gimple_call_arg_flags): New function.
835         (gimple_call_return_flags): Likewise.
836         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
837         New argument flags.
838         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
839         return value flags.
840         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
841         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
842         main work to ...
843         (make_heapvar_for): ... this new function.
844         (handle_rhs_call): Handle fnspec attribute argument specifiers.
845         (handle_lhs_call): Likewise.
846         (find_func_aliases): Adjust.
847
848 2010-05-10  Richard Guenther  <rguenther@suse.de>
849
850         PR tree-optimization/44050
851         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
852
853 2010-05-10  Wei Guozhi  <carrot@google.com>
854
855         PR target/42879
856         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
857
858 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
859
860         PR c/10676
861         * c-typeck.c (lookup_field): Take a type directly.  Update
862         recursive calls.
863         (build_component_ref): Update call to lookup_field.
864         (set_init_label): Use lookup_field to find initialized field.
865         Handle returned list of fields like a sequence of designators.
866
867 2010-05-09  Richard Guenther  <rguenther@suse.de>
868
869         PR middle-end/44024
870         * fold-const.c (tree_single_nonzero_warnv_p): Properly
871         handle &FUNCTION_DECL.
872
873 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
874
875         PR c/4784
876         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
877         structures and unions recursively.
878         (detect_field_duplicates): Move duplicate detection with a hash to
879         detect_field_duplicates_hash.  Always use a hash if anonymous
880         structures or unions are present.
881         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
882         give errors.
883
884 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
885
886         PR target/44046
887         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
888         detect Atom, Core 2 and Core i7.
889
890 2010-05-09  Richard Guenther  <rguenther@suse.de>
891
892         * gcc.c (store_arg): Handle temporary file deletion for
893         joined arguments.
894
895 2010-05-09  Richard Guenther  <rguenther@suse.de>
896
897         PR middle-end/44043
898         * ipa-inline.c (estimate_function_body_sizes): Return after
899         disregarding inline limits.
900
901 2010-05-09  Richard Guenther  <rguenther@suse.de>
902
903         * gcc.c (store_arg): Revert last change.
904
905 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
906
907         PR middle-end/28685
908         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
909         (optimize_ops_list): Call it.
910
911 2010-05-08  Richard Guenther  <rguenther@suse.de>
912
913         PR tree-optimization/44030
914         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
915         NECESSARY flag if we propagate from a inserted expression.
916
917 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
918
919         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
920         domain types as equal if they are both PLACEHOLDER_EXPRs.
921
922 2010-05-08  Richard Guenther  <rguenther@suse.de>
923
924         * lto-wrapper.c (run_gcc): Remove linker output from
925         command line for LTRANS invocation.
926
927 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
928
929         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
930         lto-macho as lto_binary_reader.
931         * target.h (struct gcc_target): New hooks lto_start and lto_end.
932         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
933         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
934         in lto_start and lto_end calls.
935         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
936         magic numbers.
937         (scan_prog_file): Update is_elf_or_coff call.
938         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
939
940         * collect2.c (main): Fix enum comparison.
941
942         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
943         Add prototypes.
944         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
945         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
946         and TARGET_ASM_LTO_END.
947         * darwin.c: Include obstack.h and lto-streamer.h.
948         (lto_section_names_offset, lto_section_names_obstack,
949         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
950         global variables.
951         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
952         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
953         to a temporary file.
954         (darwin_asm_lto_end): New function.  Restore asm_out_file.
955         (darwin_asm_named_section): For LTO sections, replace the name with
956         the offset of the section name in a string table, and build this
957         table.
958         (darwin_file_start): Initialize global vars for LTO support.
959         (darwin_file_end): If output to asm_out_file was redirected, append it
960         to the proper asm_out_file here.  Add the section names section.
961
962 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
963
964         * c-pragma.c (pending_weak_d, pending_weak): New.
965         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
966         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
967         handle_pragma_weak): Update the uses of pending_weaks.
968
969 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
970
971         PR documentation/44016
972         * doc/standards.texi (Standards): Link to unversioned
973         cxx0x_status.html page.
974
975 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
976
977         PR target/43708
978         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
979         in addition to TREE_USED, to avoid "set but unused" warnings.
980
981 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
982
983         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
984         (is_loop_prefetching_profitable): Do not insert prefetches
985         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
986         times the prefetch ahead distance.
987
988 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
989
990         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
991         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
992         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
993         the unroll_factor.
994
995 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
996
997         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
998         a diagnostic info when the insn-to-mem ratio is too small.
999
1000 2010-05-07  Richard Guenther <rguenther@suse.de>
1001
1002         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
1003         the linker plugin.
1004         (store_arg): Queue temp_filename for deletion instead of
1005         the whole argument.
1006
1007 2010-05-07  Richard Guenther  <rguenther@suse.de>
1008
1009         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
1010         (run_gcc): Handle LTRANS phase invocation.
1011         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
1012
1013 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
1014
1015         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
1016         this is also meaningful on PARM_DECLs and RESULT_DECLs.
1017
1018 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1019
1020         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
1021
1022 2010-05-07  Richard Guenther  <rguenther@suse.de>
1023
1024         PR tree-optimization/44020
1025         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
1026         code when PRE is not yet initialized.
1027
1028 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1029
1030         * config/mips/dbxmdebug.h: Remove.
1031         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
1032
1033 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
1034
1035         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
1036         with null pointer and also warn about ordered comparison of zero with
1037         pointer if -Wextra.
1038
1039 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
1040
1041         * graphite-blocking.c
1042         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
1043         * graphite-clast-to-gimple.c
1044         (clast_to_gcc_expression): Same.
1045         (precision_for_value): Same.
1046         (precision_for_interval): Same.
1047         (gcc_type_for_interval): Same.
1048         (graphite_create_new_guard): Same.
1049         (compute_bounds_for_level): Same.
1050         (graphite_create_new_loop_guard): Same.
1051         * graphite-interchange.c
1052         (build_linearized_memory_access): Same.
1053         (pdr_stride_in_loop): Same.
1054         (memory_strides_in_loop_1): Same.
1055         (memory_strides_in_loop): Same.
1056         (extend_scattering): Same.
1057         (psct_scattering_dim_for_loop_depth): Same.
1058         (pbb_number_of_iterations): Same.
1059         * graphite-poly.h
1060         (debug_iteration_domains): Same.
1061         * graphite-ppl.c
1062         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
1063         (ppl_set_inhomogeneous_gmp): Same.
1064         (ppl_strip_loop): Same.
1065         (ppl_lexico_compare_linear_expressions): Same.
1066         (ppl_read_polyhedron_matrix): Same.
1067         (ppl_max_for_le_pointset): Same.
1068         * graphite-ppl.h
1069         (ppl_read_polyhedron_matrix): Same.
1070         (tree_int_to_gmp): Same.
1071         (gmp_cst_to_tree): Same.
1072         (ppl_set_inhomogeneous): Same.
1073         (ppl_set_inhomogeneous_tree): Same.
1074         (ppl_set_coef): Same.
1075         (ppl_set_coef_tree): Same.
1076         * graphite-sese-to-poly.c
1077         (build_pbb_scattering_polyhedrons): Same.
1078         (build_scop_scattering): Same.
1079         (scan_tree_for_params_right_scev): Same.
1080         (scan_tree_for_params): Same.
1081         (find_params_in_bb): Same.
1082         (find_scop_parameters): Same.
1083         (add_upper_bounds_from_estimated_nit): Same.
1084         (build_loop_iteration_domains): Same.
1085         (add_condition_to_domain): Same.
1086         (pdr_add_memory_accesses): Same.
1087
1088 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
1089
1090         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
1091         CLooG's value_* macros to their respective mpz_* counterparts.
1092         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
1093         (graphite_create_new_loop_guard): Same.
1094         * graphite-interchange.c (build_linearized_memory_access): Same.
1095         (pdr_stride_in_loop): Same.
1096         (memory_strides_in_loop_1): Same.
1097         (1st_interchange_profitable_p): Same.
1098         * graphite-poly.c (extend_scattering): Same.
1099         (psct_scattering_dim_for_loop_depth): Same.
1100         (pbb_number_of_iterations): Same.
1101         (pbb_number_of_iterations_at_time): Same.
1102         * graphite-poly.h (new_1st_loop): Same.
1103         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
1104         (oppose_constraint): Same.
1105         (insert_constraint_into_matrix): Same.
1106         (ppl_set_inhomogeneous_gmp): Same.
1107         (ppl_set_coef_gmp): Same.
1108         (ppl_strip_loop): Same.
1109         (ppl_lexico_compare_linear_expressions): Same.
1110         (ppl_max_for_le_pointset): Same.
1111         (ppl_min_for_le_pointset): Same.
1112         (ppl_build_realtion): Same.
1113         * graphite-ppl.h (gmp_cst_to_tree): Same.
1114         (ppl_set_inhomogeneous): Same.
1115         (ppl_set_inhomogeneous_tree): Same.
1116         (ppl_set_coef): Same.
1117         (ppl_set_coef_tree): Same.
1118         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
1119         (build_scop_scattering): Same.
1120         (add_value_to_dim): Same.
1121         (scan_tree_for_params_right_scev): Same.
1122         (scan_tree_for_params_int): Same.
1123         (scan_tree_for_params): Same.
1124         (find_params_in_bb): Same.
1125         (find_scop_parameters): Same.
1126         (add_upper_bounds_from_estimated_nit): Same.
1127         (build_loop_iteration_domains): Same.
1128         (create_linear_expr_from_tree): Same.
1129         (add_condition_to_domain): Same.
1130         (pdr_add_memory_accesses): Same.
1131
1132 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
1133             Jason Merrill  <jason@redhat.com>
1134
1135         * c-common.c (c_common_reswords): Add nullptr.
1136         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
1137         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
1138         (gen_type_die_with_usage): Likewise.
1139         * dbxout.c (dbxout_type): Likewise.
1140         * sdbout.c (plain_type_1): Likewise.
1141
1142 2010-05-06  Jason Merrill  <jason@redhat.com>
1143
1144         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
1145         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
1146         ret appropriately.
1147         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
1148
1149         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
1150         stripping WITH_SIZE_EXPR.
1151         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
1152         change.
1153
1154 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1155
1156         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
1157         list of obsolete configurations.
1158         Disabled check for obsolete configurations.
1159         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
1160         Removed support for previous versions.
1161         * config/mips/iris.h: Removed.
1162         * config/mips/iris5.h: Removed.
1163         * config/mips/iris6.h: Merged old iris.h contents.
1164         (TARGET_IRIX): Removed.
1165         (DRIVER_SELF_SPECS): Removed mabi=32.
1166         (IDENT_ASM_OP): Removed undef.
1167         (STARTFILE_SPEC): Removed mabi=32.
1168         (ENDFILE_SPEC): Likewise.
1169         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
1170         (MACHINE_TYPE): Update for IRIX 6.5.
1171         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
1172         TARGET_IRIX by TARGET_IRIX6.
1173         (mips_file_start): Likewise.
1174         (mips_output_external): Remove IRIX 5/6 O32 support.
1175         (mips_output_function_prologue): Likewise.
1176         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
1177         TARGET_IRIX6.
1178         (TARGET_CPU_CPP_BUILTINS): Likewise.
1179         (TARGET_IRIX): Removed.
1180         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
1181         (MULTILIB_DIRNAMES): Removed 32.
1182         (MULTILIB_OSDIRNAMES): Removed ../lib.
1183         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
1184         (Specific, mips-sgi-irix5): Document removal.
1185         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
1186         Remove references to older IRIX 6 releases and the O32 ABI.
1187
1188 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
1189
1190         PR bootstrap/43994
1191         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
1192         instead of DF_REF_REAL_REG.
1193
1194 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
1195
1196         PR target/43888
1197         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
1198         handling to still return true for x64 targets.
1199
1200 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
1201
1202         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
1203
1204 2010-05-06  Jan Hubicka  <jh@suse.cz>
1205
1206         PR tree-optimization/43791
1207         * ipa-inline.c (update_caller_keys): Remove bogus
1208         disregard_inline_limits check.
1209
1210 2010-05-06  Michael Matz  <matz@suse.de>
1211
1212         PR tree-optimization/43984
1213         * tree-ssa-pre.c (inserted_phi_names): Remove.
1214         (inserted_exprs): Change to bitmap.
1215         (create_expression_by_pieces): Set bits, don't append to vector.
1216         (insert_into_preds_of_block): Don't handle inserted_phi_names.
1217         (eliminate): Don't look at inserted_phi_names, remove deleted
1218         insns from inserted_exprs.
1219         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
1220         (init_pre, fini_pre): Allocate and free bitmaps.
1221         (execute_pre): Insert insns on edges before elimination.
1222
1223 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
1224
1225         * tree.c (initializer_zerop): Handle STRING_CST.
1226
1227 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1228
1229         PR 40989
1230         * doc/invoke.texi (Wimplicit): Document as C only.
1231         * opts.c (common_handle_option): Add argument kind.
1232         (handle_option): Rename as read_cmdline_option. Factor out code to...
1233         (handle_option): ... here. New.
1234         (handle_options): Rename as read_cmdline_options.
1235         (decode_options): Update call.
1236         (set_option): Use option index instead of option pointer. Classify
1237         diagnostics correctly.
1238         (enable_warning_as_error): Call handle_option.
1239         * opts.h (set_option): Update declaration.
1240         (handle_option): Declare.
1241         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
1242         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
1243         * c-opts.c (set_Wimplicit): Delete.
1244         (c_family_lang_mask): New static constant.
1245         (c_common_handle_option): Add argument kind. Use handle_option
1246         instead of set_Wimplicit.
1247         (c_common_post_options): warn_implicit and warn_implicit_int
1248         are disabled by default.
1249         * c-common.c (warn_implicit): Do not define here.
1250         * c-common.h (warn_implicit): Do not declare here.
1251         (c_common_handle_option): Update declaration.
1252         * lto-opts.c (lto_reissue_options): Update call to set_option.
1253
1254 2010-05-06  Richard Guenther  <rguenther@suse.de>
1255
1256         PR tree-optimization/43571
1257         * domwalk.c (walk_dominator_tree): Walk the dominator
1258         sons in more optimal order.
1259
1260 2010-05-06  Richard Guenther  <rguenther@suse.de>
1261
1262         PR tree-optimization/43934
1263         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
1264         (stmt_cost): Likewise.
1265         (extract_true_false_args_from_phi): New helper.
1266         (determine_max_movement): For PHI nodes verify we can hoist them
1267         and compute their cost.
1268         (determine_invariantness_stmt): Handle PHI nodes.
1269         (move_computations_stmt): Likewise.  Hoist PHI nodes in
1270         if-converted form using COND_EXPRs.
1271         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
1272         (tree_ssa_lim): Likewise.
1273         * tree-flow.h (tree_ssa_lim): Adjust prototype.
1274         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
1275
1276 2010-05-06  Richard Guenther  <rguenther@suse.de>
1277
1278         PR tree-optimization/43987
1279         * tree-ssa-structalias.c (could_have_pointers): For possibly
1280         address-taken variables force pointers to be recorded.
1281         (create_variable_info_for_1): Likewise.
1282         (push_fields_onto_fieldstack): Pass in wheter all fields
1283         must have pointers.
1284         (find_func_aliases): Query types instead of vars whether
1285         they contain pointers where appropriate.
1286
1287 2010-05-06  Jan Hubicka  <jh@suse.cz>
1288
1289         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
1290         (record_reference, mark_address, mark_load, mark_store): Record
1291         references.
1292         (record_references_in_initializer): Update call of record_references.
1293         (rebuild_cgraph_edges): Remove all references before rebuiding.
1294         * cgraph.c (cgraph_create_node): Clear ref list.
1295         (cgraph_remove_node): Remove references.
1296         (dump_cgraph_node): Dump references.
1297         (cgraph_clone_node): Clone references.
1298         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
1299         (struct cgraph_node, varpool_node): Add ref_lst.
1300         * ipa-ref.c: New file.
1301         * ipa-ref.h: New file.
1302         * ipa-ref-inline.h: New file.
1303         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
1304         (referenced_from_other_partition_p): New function.
1305         (lto_output_varpool_node): Take set arugment; call
1306         referenced_from_other_partition.
1307         (lto_output_ref): New.
1308         (add_references): New.
1309         (output_refs): New.
1310         (output_cgraph): Compute boundary based on references; output refs.
1311         (output_varpool): Accept cgraph_node_set argument.
1312         (input_ref): New.
1313         (input_refs): New.
1314         (input_cgraph): Call input_refs.
1315         * lto-section-in.c (lto_section_name): Add refs.
1316         * Makefile.in: (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
1317         (ipa-ref.o): New file.
1318         * varpool.c (varpool_node): Clear ipa ref list.
1319         (varpool_remove_node): Remove references.
1320         (dump_varpool_node): Dump references.
1321         (varpool_assemble_decl): Only compile finalized ones.
1322         (varpool_extra_name_alias): Initialize ref list.
1323         * lto-streamer.c (lto-get_section_name): Add .refs section.
1324         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
1325         (referenced_from_other_partition_p): Declared.
1326
1327 2010-05-06  Ira Rosen  <irar@il.ibm.com>
1328
1329         PR tree-optimization/43901
1330         * tree-vect-stmts.c (vectorizable_call): Assert that vector
1331         type is not NULL if it's transformation phase, and return
1332         FALSE if it's analysis.
1333         (vectorizable_conversion, vectorizable_operation,
1334         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
1335
1336 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
1337
1338         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
1339         Delete.
1340         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
1341         New define.
1342         * config/mips/mips-protos.h
1343         (mips_small_register_classes_for_mode_p): Delete prototype.
1344
1345 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
1346
1347         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
1348         * config/arm/arm.c (multiple_operation_profitable_p,
1349         compute_offset_order): New static functions.
1350         (load_multiple_sequence, store_multiple_sequence): Use them.
1351         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
1352         memory offsets, not register numbers.
1353         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
1354
1355 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
1356
1357         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
1358         (get_pending_sizes, put_pending_size, put_pending_sizes):
1359         Update the uses of pending_sizes.
1360         * c-decl.c (store_parm_decls): Likewise.
1361         * c-tree.h (struct c_arg_info): Likewise.
1362         * tree.h: Update the prototype for get_pending_sizes and
1363         put_pending_sizes.
1364
1365 2010-05-05  Jason Merrill  <jason@redhat.com>
1366
1367         PR debug/43370
1368         * c-common.c (handle_aligned_attribute): Respect
1369         ATTR_FLAG_TYPE_IN_PLACE.
1370
1371         PR testsuite/43758
1372         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
1373         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
1374         (TARGET_INITIALIZER): Use it.
1375         * c-common.c (attribute_takes_identifier_p): Call it.
1376         * c-common.h: Update prototype.
1377         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
1378         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
1379
1380 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
1381
1382         PR debug/43950
1383         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
1384         DW_ID_down_case for Fortran compilation units.
1385
1386 2010-05-05  Jan Hubicka  <jh@suse.cz>
1387
1388         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
1389         handle aliases.
1390
1391 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
1392
1393         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
1394         a variable-sized RESULT_DECL.
1395
1396 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
1397
1398         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
1399
1400 2010-05-05  Jason Merrill  <jason@redhat.com>
1401
1402         PR c++/43787
1403         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
1404         returns GS_OK.
1405         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
1406
1407 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
1408             Jakub Jelinek  <jakub@redhat.com>
1409
1410         PR debug/43478
1411         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
1412         (dead_debug_init, dead_debug_finish): New functions.
1413         (dead_debug_add, dead_debug_insert_before): Likewise.
1414         (df_note_bb_compute): Initialize a dead_debug object, add dead
1415         debug uses to it, insert debug bind insns before death insns,
1416         reset debug insns that refer to pending uses at the end.
1417         * rtl.h (make_debug_expr_from_rtl): New prototype.
1418         * varasm.c (make_debug_expr_from_rtl): New function.
1419
1420 2010-05-05  Jan Hubicka  <jh@suse.cz>
1421
1422         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
1423         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
1424         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
1425         lto_varpool_encoder_deref, lto_varpool_encoder_size,
1426         lto_varpool_encoder_encode_initializer_p,
1427         lto_set_varpool_encoder_encode_initializer): New functions.
1428         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
1429         call output_varpool.
1430         (input_varpool_node): Do not always set analyzed.
1431         (input_cgraph_1): Return vector of cgraph nodes.
1432         (input_varpool_1): Return vector of varpools.
1433         (input_cgraph): Free the vectors.
1434         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
1435         output only initializers needed.
1436         (lto_output): Only call output_cgraph.
1437         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
1438         * lto-section-out.c (lto_new_out_decl_state): Initialize
1439         state->varpool_node_encoder.
1440         * lto-streamer.h (lto_varpool_encoder_d): New.
1441         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
1442         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
1443         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
1444         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
1445         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
1446         Declare.
1447         (output_varpool, input_varpool): Remove declarations.
1448
1449 2010-05-05  Jan Hubicka  <jh@suse.cz>
1450
1451         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
1452         with body can prevail.
1453
1454 2010-05-05  Jan Hubicka  <jh@suse.cz>
1455
1456         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
1457         size.
1458
1459 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1460
1461         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
1462
1463         * gengtype.h (erro_at_line): Constify pos argument.
1464
1465         * gengtype.c: Include hashtab.h.
1466         (enum gc_used): Document GC_MAYBE_POINTED_TO.
1467         (error_at_line): Constify pos argument.
1468         (do_typedef): Initialize p->opt field.
1469         (get_file_gtfilename): Fix comment typo.
1470         (struct walk_type_data): Constify line field.
1471         (get_output_file_for_structure): New function.
1472         (write_local_func_for_structure): Constify orig_s argument.
1473         Use get_output_file_for_structure.
1474         (write_func_for_structure): Use get_output_file_for_structure.
1475         (INDENT): New define.
1476         (dump_pair, dump_type, dump_type_list, dump_typekind)
1477         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
1478         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
1479         functions.
1480         (seen_types): New variable.
1481         (main): New variable do_dump.  Process "-d" command line option.
1482         Call dump_everything if dump requested.
1483
1484 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
1485
1486         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
1487         in a temporary instead of invoking the macro multiple times.
1488         (track_expr_p): Likewise.
1489
1490 2010-05-04  Neil Vachharajani <nvachhar@google.com>
1491
1492         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
1493         per new semantics.
1494         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
1495         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
1496         conditions for printing notes.
1497         * common.opt (-Wcoverage-mismatch): Allow negative, default to
1498         true, update documentation.
1499         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
1500
1501 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
1502
1503         PR c/43981
1504         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
1505         on dimen.
1506
1507 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
1508
1509         PR target/43799
1510         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
1511         (*sse_prologue_save_insn1): Likewise.
1512         (SSE prologue save splitter): Likewise.
1513
1514 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
1515
1516         * tree.c (free_lang_data_in_one_sizepos): New inline function.
1517         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
1518         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
1519         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
1520         all decls.  Call it on DECL_FIELD_OFFSET of fields.
1521         (find_decls_types_r): Follow DECL_VALUE_EXPR.
1522         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
1523
1524 2010-05-04  Martin Jambor  <mjambor@suse.cz>
1525
1526         * tree-sra.c (build_access_from_expr_1): The first parameter type
1527         changed to simple tree.
1528         (build_access_from_expr): Likewise, gsi parameter was eliminated.
1529         (scan_assign_result): Renamed to assignment_mod_result, enum elements
1530         renamed as well.
1531         (build_accesses_from_assign): Removed all parameters except for a
1532         simple gimple statement.  Now returns a simple bool.
1533         (scan_function): All non-analysis parts moved to separate functions
1534         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
1535         parameters and updated both callers.
1536         (sra_modify_expr): Removed parameter data.
1537         (sra_modify_function_body): New function.
1538         (perform_intra_sra): Call sra_modify_function_body to modify the
1539         function body.
1540         (replace_removed_params_ssa_names): Parameter data changed into
1541         adjustments vector.
1542         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
1543         changed the parameter dont_convert to convert with the opposite
1544         meaning.
1545         (sra_ipa_modify_assign): Parameter data changed into adjustments
1546         vector, return value changed to bool.
1547         (ipa_sra_modify_function_body): New function.
1548         (sra_ipa_reset_debug_stmts): Updated a comment.
1549         (modify_function): Use ipa_sra_modify_function_body to modify function
1550         body.
1551
1552 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
1553
1554         PR middle-end/43671
1555         * alias.c (true_dependence): Handle the same VALUE in x and mem.
1556         (canon_true_dependence): Likewise.
1557         (write_dependence_p): Likewise.
1558
1559 2010-05-04  Jan Hubicka  <jh@suse.cz>
1560
1561         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
1562         * cgraphbuild.c: Include ipa-utils.h
1563         (record_reference_ctx): New struct.
1564         (record_reference): Simplify to work on initializers; not statements.
1565         (mark_address, mark_load, mark_store): New.
1566         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
1567         walk PHI nodes too.
1568         (record_references_in_initializer): Update use of record_reference.
1569         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
1570         walk PHI nodes too.
1571
1572 2010-05-04  Jan Hubicka  <jh@suse.cz>
1573
1574         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
1575         node will be removed anyway.
1576         (lto_varpool_replace_node): Allow also unanalyzed nodes;
1577         relink aliases of node into prevailing node.
1578         * varpool.c (varpool_remove_node): Remove aliases properly;
1579         when removing node, remove all its aliases too; remove DECL_INITIAL
1580         of removed node; ggc_free the varpool node.
1581
1582 2010-05-04  Richard Guenther  <rguenther@suse.de>
1583
1584         PR tree-optimization/43879
1585         * tree-ssa-structalias.c (alias_get_name): Use
1586         DECL_ASSEMBLER_NAME if available.
1587         (create_function_info_for): Return the varinfo node.
1588         (ipa_pta_execute): Associate same-body aliases and extra names
1589         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
1590
1591 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
1592
1593         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
1594
1595 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
1596
1597         PR bootstrap/43964
1598         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
1599         only if HONOR_REG_ALLOC_ORDER is not defined.
1600
1601 2010-05-04  Richard Guenther  <rguenther@suse.de>
1602
1603         PR tree-optimization/43949
1604         * tree-vrp.c (extract_range_from_binary_expr): Only handle
1605         TRUNC_MOD_EXPR.
1606
1607 2010-04-26  Jason Merrill  <jason@redhat.com>
1608
1609         * c.opt (-fstrict-enums): New.
1610         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
1611
1612 2010-05-03  David Ung <davidu@mips.com>
1613             James E. Wilson  <wilson@codesourcery.com>
1614
1615         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
1616         emit the trap instruction before the divide for TUNE_74K.
1617
1618 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
1619
1620         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
1621         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
1622         based on the above, for new target hook.
1623
1624         * hooks.c (hook_bool_mode_true): New generic hook.
1625         * hooks.h (hook_bool_mode_true): Add prototype.
1626
1627         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
1628         target hook.
1629         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
1630         target hook, set to hook_bool_mode_false.
1631         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
1632         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
1633         with targetm.small_register_classes_for_mode_p.
1634         (find_reusable_reload): Likewise.
1635         (combine_reloads): Likewise.
1636         * reload1.c (reload_as_needed): Likewise.
1637         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
1638         * ifcvt.c (noce_process_if_block, check_cond_move_block,
1639         dead_or_predicable): Likewise.
1640         * regmove.c (optimize_reg_copy_1): Likewise.
1641         * calls.c (prepare_call_address): Likewise.
1642         (precompute_register_parameters): Likewise.
1643
1644         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
1645         hook definition.
1646         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
1647         implementation of the hook that considers all register classes
1648         small except for SH64.
1649         (sh_override_options): Use the new hook.
1650         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
1651         Add prototype.
1652
1653         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
1654         hook definition.
1655         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
1656         implementation of the hook that considers all register classes
1657         small for THUMB1.
1658         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
1659         Add prototype.
1660
1661         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
1662         hook definition.
1663         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
1664         implementation of the hook that considers all register classes
1665         small for MIPS16.
1666         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
1667         Add prototype.
1668
1669         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
1670         hook definition.
1671         * config/m32c/m32c.h: Likewise.
1672         * config/pdp11/pdp11.h: Likewise.
1673         * config/avr/avr.h: Likewise.
1674         * config/xtensa/xtensa.h: Likewise.
1675         * config/m68hc11/m68hc11.h: Likewise.
1676         * config/mn10300/mn10300.h: Likewise.
1677         * config/mcore/mcore.h: Likewise.
1678         * config/h8300/h8300.h: Likewise.
1679         * config/bfin/bfin.h: Likewise.
1680
1681         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
1682         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
1683
1684 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
1685
1686         * double-int.h (tree_to_double_int): Remove macro.
1687         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
1688         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
1689         (tree_to_double_int): New function.
1690         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
1691         Move ...
1692         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
1693
1694 2010-05-03  Richard Guenther  <rguenther@suse.de>
1695
1696         PR tree-optimization/43971
1697         * tree-ssa-structalias.c (get_constraint_for_1): Fix
1698         constraints in the !flag_delete_null_pointer_checks case.
1699
1700 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
1701
1702         PR debug/43972
1703         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
1704         result mode matches original rtl mode.
1705
1706 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
1707
1708         PR target/43888
1709         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
1710
1711 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
1712
1713         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
1714         when processing flag options.
1715
1716 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
1717
1718         * gcov-iov.c (main): Change format string placeholder
1719         from %#08x to 0x%08x.
1720         * genchecksum.c (dosum): Change format string placeholder
1721         from %#02x to 0x%02x.
1722
1723 2010-05-02  Richard Guenther  <rguenther@suse.de>
1724
1725         PR tree-optimization/43879
1726         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
1727
1728 2010-05-02  Bruno Haible  <bruno@clisp.org>
1729
1730         * doc/extend.texi (Function Attributes): Fix a typo.
1731
1732 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
1733
1734         Revert:
1735         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
1736         placeholder from 0x%x to %#x.
1737         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
1738         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
1739         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
1740         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
1741         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
1742         * config/i386/i386.c (ix86_target_string): Ditto.
1743         * config/i386/i386.c (output_pic_addr_const): Ditto.
1744         (print_operand): Ditto.
1745
1746 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
1747
1748         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
1749         placeholder from 0x%x to %#x.
1750         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
1751         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
1752         (ASM_OUTPUT_DEBUG_DATA): Ditto.
1753         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
1754         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
1755         * optc-gen.awk: Ditto.
1756         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
1757         (HOST_WIDE_INT_PRINT_HEX): Ditto.
1758         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
1759         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
1760
1761 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
1762
1763         * target.h (struct calls): Add function_value_regno_p field.
1764         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
1765         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
1766         * targhooks.c (default_function_value_regno_p): New function.
1767         * targhooks.h (default_function_value_regno_p): Declare function.
1768         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
1769         * builtins.c. (apply_result_size): (Ditto.).
1770         * combine.c. (likely_spilled_retval_p): (Ditto.).
1771         * mode-switching.c. Include 'target.h'.
1772         (create_pre_exit): Use function_value_regno_p hook.
1773         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
1774         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
1775         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
1776
1777         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
1778         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
1779         (ix86_function_value_regno_p): Declare as static, change argument
1780         type to const unsigned int.
1781         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
1782
1783 2010-05-01  Richard Guenther  <rguenther@suse.de>
1784
1785         PR tree-optimization/43949
1786         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
1787         types.
1788         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
1789
1790 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
1791
1792         * rtl.h (CONST_DOUBLE_P): Define.
1793         (rtx_to_double_int): Declare.
1794         * emit-rtl.c (rtx_to_double_int): New function.
1795         * dwarf2out.c (insert_double): New function.
1796         (loc_descriptor, add_const_value_attribute): Clean up, use
1797         rtx_to_double_int and insert_double functions.
1798
1799 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
1800
1801         * doc/extend.texi (Inline): Add missing return keyword to examples.
1802         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
1803         "command-line".
1804
1805 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
1806
1807         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
1808         the variable part of the offset as well.  Use highest_pow2_factor for
1809         all alignment checks.
1810
1811 2010-04-30  Richard Guenther  <rguenther@suse.de>
1812
1813         PR tree-optimization/43879
1814         * tree-ssa-structalias.c (type_could_have_pointers): Functions
1815         can have pointers.
1816
1817 2010-04-30  Jan Hubicka  <jh@suse.cz>
1818
1819         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
1820         varpool.
1821         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
1822
1823 2010-04-30  Jan Hubicka  <jh@suse.cz>
1824
1825         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
1826         New.
1827         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
1828         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
1829         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
1830         cgraph_node_set_needs_ltrans_p): Remove.
1831
1832 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
1833
1834         * sdbout.c: Include vec.h, do not include varray.h.
1835         (deferred_global_decls, sdbout_global_decl,
1836         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
1837         * toplev.c: Do not include varray.h.
1838         (dump_memory_report): Do not dump VARRAY statistics.
1839         * gengtype.c (open_base_file): Ignore varray.h.
1840         * Makefile.in: Update for abovementioned changes.
1841         Remove all traces of varray.c and varray.h.
1842         * varray.c: Remove file.
1843         * varray.h: Remove file.
1844
1845 2010-04-30  Jan Hubicka  <jh@suse.cz>
1846
1847         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
1848         references.
1849
1850 2010-04-30  Jan Hubicka  <jh@suse.cz>
1851
1852         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
1853         needed.
1854
1855 2010-04-30  Richard Guenther  <rguenther@suse.de>
1856
1857         * tree-ssa-structalias.c (get_constraint_for_1): Generate
1858         constraints for CONSTRUCTOR.
1859
1860 2010-04-30  Richard Guenther  <rguenther@suse.de>
1861
1862         PR lto/43946
1863         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
1864         first after all lowering passes.
1865
1866 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
1867
1868         * toplev.c: Include varray.h for statistics dumping.
1869         * tree.h: Do not declare varray_head_tag.
1870         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
1871         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
1872         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
1873         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
1874         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
1875         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
1876         c-common.c, c-common.h, reg-stack.c, basic-block.h,
1877         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
1878         include varray.h.
1879         * Makefile.in: Update for abovementioned changes.
1880
1881 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
1882
1883         PR debug/43942
1884         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
1885
1886 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
1887
1888         * config/picochip/picochip.c (picochip_legitimize_address): Define.
1889         Use this function to do machine-specific conversion.
1890         (picochip_legitimize_reload_address): Likewise.
1891         (picochip_legitimate_address_p): Check valid base register only if
1892         strict.
1893         (picochip_check_conditional_copy): Check for modw only if opnd is
1894         register.
1895         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
1896         to call the function in c.
1897         * config/picochip/picochip-protos.h
1898         (picochip_legitimize_reload_address): Define.
1899         * config/picochip/picochip.md (supported_compare1): Define.
1900
1901 2010-04-30  Jan Hubicka  <jh@suse.cz>
1902
1903         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
1904         (cgraph_global_info): Remove inlined.
1905         (LTO_cgraph_tag_names): Remove.
1906         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
1907         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
1908         simplify cgraph tags and document.
1909         (lto_output_node): Use only LTO_cgraph_unavail_node and
1910         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
1911         for_functions_valid, global info, process and output flags.
1912         (input_overwrite_node): Initialize estimated stack size and
1913         estimated growth.  Do not read flags we no longer store.
1914         (input_node): Likewise do not read info no longer stored.
1915         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
1916         flag.
1917
1918 2010-04-30  Richard Guenther  <rguenther@suse.de>
1919
1920         PR tree-optimization/43879
1921         * tree-ssa-structalias.c (get_constraint_for_1): Properly
1922         handle non-zero initializers.
1923
1924 2010-04-30  Richard Guenther  <rguenther@suse.de>
1925
1926         * builtins.c (fold_builtin_1): Delete free (0).
1927
1928 2010-04-29  Jan Hubicka  <jh@suse.cz>
1929
1930         * gengtype.c (open_base_files): Add lto-streamer.h
1931         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
1932         (pass_ipa_cp): GGC collect.
1933         * toplev. (compile_file): Do not output symbols.
1934         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
1935         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
1936         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
1937         * lto-section-in.c: Include ggc.h
1938         (lto_new_in_decl_state): Alloc in GGC.
1939         (lto_delete_in_decl_state): Likewise.
1940         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
1941         Collect.
1942
1943 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
1944
1945         PR target/42895
1946         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
1947         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
1948         (HONOR_REG_ALLOC_ORDER): Describe new macro.
1949         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
1950         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
1951         account only if HONOR_REG_ALLOC_ORDER is not defined.
1952         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
1953         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
1954
1955 2010-04-29  Jon Grant  <04@jguk.org>
1956
1957         * collect2.c (vflag): Change type from int to bool.
1958         (debug): Likewise.
1959         (helpflag): New global bool.
1960         (main): Set vflag and debug with boolean, not integer truth values.
1961         Accept new "--help" option and output usage text if found.
1962         * collect2.h (vflag): Update prototype.
1963         (debug): Likewise.
1964
1965 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
1966
1967         PR bootstrap/43936
1968         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
1969
1970 2010-04-29  Richard Guenther  <rguenther@suse.de>
1971
1972         PR bootstrap/43935
1973         * plugin.h (invoke_plugin_callbacks): Annotate arguments
1974         with ATTRIBUTE_UNUSED.
1975
1976 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
1977
1978         PR target/43921
1979         * config/i386/i386.c (get_some_local_dynamic_name): Replace
1980         INSN_P with NONDEBUG_INSN_P.
1981         (distance_non_agu_define): Likewise.
1982         (distance_agu_use): Likewise.
1983
1984 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
1985
1986         From Dominique d'Humieres <dominiq@lps.ens.fr>
1987         PR bootstrap/43858
1988         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
1989         test_set.
1990
1991 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
1992
1993         * plugin.h (invoke_plugin_callbacks): New inline function.
1994         * plugin.c (flag_plugin_added): New global flag.
1995         (add_new_plugin): Initialize above flag.
1996         (invoke_plugin_callbacks): Rename to ...
1997         (invoke_plugin_callbacks_full): ... this.
1998
1999 2010-04-28  Jan Hubicka  <jh@suse.cz>
2000
2001         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
2002         (lto_varpool_replace_node): New.
2003         (lto_symtab_resolve_symbols): Resolve varpool nodes.
2004         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
2005         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
2006         * cgraph.h (varpool_node_ptr): New type.
2007         (varpool_node_ptr): New vector.
2008         (varpool_node_set_def): New structure.
2009         (varpool_node_set): New type.
2010         (varpool_node_set): New vector.
2011         (varpool_node_set_element_def): New structure.
2012         (varpool_node_set_element, const_varpool_node_set_element): New types.
2013         (varpool_node_set_iterator): New type.
2014         (varpool_node): Add prev pointers, add used_from_other_partition,
2015         in_other_partition.
2016         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
2017         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
2018         varpool_get_node, varpool_remove_node): Declare.
2019         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
2020         varpool_node_set_size): New inlines.
2021         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
2022         * tree-pass.h (varpool_node_set_def): Forward declare.
2023         (ipa_opt_pass_d): Summary writting takes vnode sets too.
2024         (ipa_write_optimization_summaries): Update prototype.
2025         * ipa-cp.c (ipcp_write_summary): Update.
2026         * ipa-reference.c (ipa_reference_write_summary): Update.
2027         * lto-cgraph.c (lto_output_varpool_node): New static function.
2028         (output_varpool): New function.
2029         (input_varpool_node): New static function.
2030         (input_varpool_1): New function.
2031         (input_cgraph): Input varpool.
2032         * ipa-pure-const.c (pure_const_write_summary): Update.
2033         * lto-streamer-out.c (lto_output): Update, output varpool too.
2034         (write_global_stream): Kill WPA hack.
2035         (produce_asm_for_decls): Update.
2036         (output_alias_pair_p): Handle variables.
2037         (output_unreferenced_globals): Output only needed partition of varpool.
2038         * ipa-inline.c (inline_write_summary): Update.
2039         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
2040         cgraph.
2041         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
2042         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
2043         varpool_node_set_new, varpool_node_set_add,
2044         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
2045         debug_varpool_node_set): New functions.
2046         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
2047         (execute_one_pass): Process new decls too.
2048         (ipa_write_summaries_2): Pass around vsets.
2049         (ipa_write_summaries_1): Likewise.
2050         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
2051         to add.
2052         (ipa_write_optimization_summaries_1): Pass around vsets.
2053         (ipa_write_optimization_summaries): Likewise.
2054         * varpool.c (varpool_get_node): New.
2055         (varpool_node): Update doubly linked lists.
2056         (varpool_remove_node): New.
2057         (dump_varpool_node): More dumping.
2058         (varpool_enqueue_needed_node): Update doubly linked lists.
2059         (decide_is_variable_needed): Kill ltrans hack.
2060         (varpool_finalize_decl): Kill lto hack.
2061         (varpool_assemble_decl): Skip decls in other partitions.
2062         (varpool_assemble_pending_decls): Update doubly linkes lists.
2063         (varpool_empty_needed_queue): Likewise.
2064         (varpool_extra_name_alias): Likewise.
2065         * lto-streamer.c (lto_get_section_name): Add vars section.
2066         * lto-streamer.h (lto_section_type): Update.
2067         (output_varpool, input_varpool): Declare.
2068
2069 2010-04-28  Mike Stump  <mikestump@comcast.net>
2070
2071         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
2072
2073 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
2074
2075         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
2076         record or union type with RECORD_OR_UNION_TYPE_P predicate.
2077         (lto_input_ts_type_tree_pointers): Likewise.
2078         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
2079         (lto_output_ts_type_tree_pointers): Likewise.
2080
2081 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
2082
2083         Uniquization of constants at the Tree level
2084         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
2085         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
2086         bit to the end.
2087         (tree_output_constant_def): Declare.
2088         * gimplify.c (gimplify_init_constructor): When using block copy, first
2089         uniquize the constant constructor on the RHS.
2090         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
2091         DECL_IN_CONSTANT_POOL flag.
2092         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
2093         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
2094         constant pool.
2095         (assemble_variable): Deal with symbols belonging to the tree constant
2096         pool.
2097         (get_constant_section): Add ALIGN parameter and simplify.
2098         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
2099         (assemble_constant_contents): Use the expression of the VAR_DECL.
2100         (output_constant_def_contents): Use the alignment of the VAR_DECL.
2101         (tree_output_constant_def): New global function.
2102         (mark_constant): Use the expression of the VAR_DECL.
2103         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
2104         its expression.
2105         (output_object_block): Likewise and assemble the expression.
2106
2107 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
2108
2109         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
2110         hash_tree, eq_tree): New tree hash table.
2111         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
2112         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
2113         lto_orig_address_remove): Reimplement.
2114
2115 2010-04-28  Xinliang David Li  <davidxl@google.com>
2116
2117         PR c/42643
2118         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
2119         (compute_uninit_opnds_pos): New function.
2120         (is_non_loop_exit_postdominating): New function.
2121         (compute_control_dep_chain): New function.
2122         (find_pdom): New function.
2123         (convert_control_dep_chain_into_preds): New function.
2124         (find_predicates): New function.
2125         (find_control_equiv_block): New function.
2126         (collect_phi_def_edges): New function.
2127         (find_def_preds): New function.
2128         (find_dom): New function.
2129         (dump_predicates): New function.
2130         (get_cmp_code): New function.
2131         (is_value_included_in): New function.
2132         (find_matching_predicate_in_rest_chains): New function.
2133         (use_pred_not_overlap_with_undef_path_pred): New function.
2134         (is_use_properly_guarded): New function.
2135         (normalize_cond_1): New function.
2136         (is_and_or_or): New function.
2137         (normalize_cond): New function.
2138         (is_gcond_subset_of): New function.
2139         (is_subset_of_any): New function.
2140         (is_or_set_subset_of): New function.
2141         (is_and_set_subset_of): New function.
2142         (is_norm_cond_subset_of): New function.
2143         (is_pred_expr_subset_of): New function.
2144         (is_pred_chain_subset_of): New function.
2145         (is_included_in): New function.
2146         (is_superset_of): New function.
2147         (find_uninit_use): New function.
2148         (warn_uninitialized_phi): New function.
2149         (compute_possibly_undefined_names): New function.
2150         (ssa_undefined_value_p): New function.
2151         (execute_late_warn_uninitialized): New function.
2152         * tree-ssa.c (ssa_undefined_value_p): Removed.
2153         (warn_uninit): Changed to extern.
2154         (warn_uninitialized_phi): Removed.
2155         (warn_uninitialized_vars): Changed to extern.
2156         (execute_late_warn_uninitialized): Removed
2157         * tree-flow.h: Add new prototypes.
2158         * timevar.def: Add new time variable.
2159         * Makefile.in: Add new build file.
2160
2161 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
2162
2163         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
2164         type if available.
2165
2166 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2167
2168         PR target/22224
2169         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
2170
2171 2010-04-28  Martin Jambor  <mjambor@suse.cz>
2172
2173         * cgraph.h (struct cgraph_node): New field indirect_calls.
2174         (struct cgraph_indirect_call_info): New type.
2175         (struct cgraph_edge): Removed field indirect_call. New fields
2176         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
2177         (cgraph_create_indirect_edge): Declare.
2178         (cgraph_make_edge_direct): Likewise.
2179         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
2180         * ipa-prop.h (struct ipa_param_call_note): Removed.
2181         (struct ipa_node_params): Removed field param_calls.
2182         (ipa_create_all_structures_for_iinln): Declare.
2183         * cgraph.c: Described indirect edges and uids in initial comment.
2184         (cgraph_add_edge_to_call_site_hash): New function.
2185         (cgraph_edge): Search also among the indirect edges, use
2186         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
2187         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
2188         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
2189         site hash.
2190         (initialize_inline_failed): Assign a reason to indirect edges.
2191         (cgraph_create_edge_1): New function.
2192         (cgraph_create_edge): Moved some functionality to
2193         cgraph_create_edge_1.
2194         (cgraph_create_indirect_edge): New function.
2195         (cgraph_edge_remove_callee): Add an assert checking for
2196         non-indirectness.
2197         (cgraph_edge_remove_caller): Special-case indirect edges.
2198         (cgraph_remove_edge): Likewise.
2199         (cgraph_set_edge_callee): New function.
2200         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
2201         (cgraph_make_edge_direct): New function.
2202         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
2203         the declaration of the call statement matches.
2204         (cgraph_node_remove_callees): Special-case indirect edges.
2205         (cgraph_clone_edge): Likewise.
2206         (cgraph_clone_node): Clone also the indirect edges.
2207         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
2208         indirect_call, dump count of indirect_calls edges.
2209         * ipa-prop.c (iinlining_processed_edges): New variable.
2210         (ipa_note_param_call): Create indirect edges instead of
2211         creating notes.  New parameter node.
2212         (ipa_analyze_call_uses): New parameter node, pass it on to
2213         ipa_note_param_call.
2214         (ipa_analyze_stmt_uses): Likewise.
2215         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
2216         (print_edge_addition_message): Work on edges rather than on notes.
2217         (update_call_notes_after_inlining): Likewise, renamed to
2218         update_indirect_edges_after_inlining.
2219         (ipa_create_all_structures_for_iinln): New function.
2220         (ipa_free_node_params_substructures): Do not free notes.
2221         (ipa_edge_duplication_hook): Propagate bits within
2222         iinlining_processed_edges bitmap.
2223         (ipa_node_duplication_hook): Do not duplicate notes.
2224         (free_all_ipa_structures_after_ipa_cp): Renamed to
2225         ipa_free_all_structures_after_ipa_cp.
2226         (free_all_ipa_structures_after_iinln): Renamed to
2227         ipa_free_all_structures_after_iinln.
2228         (ipa_write_param_call_note): Removed.
2229         (ipa_read_param_call_note): Removed.
2230         (ipa_write_indirect_edge_info): New function.
2231         (ipa_read_indirect_edge_info): Likewise.
2232         (ipa_write_node_info): Do not stream notes, do stream information
2233         in indirect edges.
2234         (ipa_read_node_info): Likewise.
2235         (lto_ipa_fixup_call_notes): Removed.
2236         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
2237         * ipa-inline.c (pass_ipa_inline): Likewise.
2238         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
2239         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
2240         * tree-inline.c (copy_bb): Removed an unnecessary double check for
2241         is_gimple_call.
2242         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
2243         edges.
2244         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
2245         (output_cgraph): Stream also indirect edges.
2246         (lto_output_edge): Added capability to stream indirect edges.
2247         (input_edge): Likewise.
2248         (input_cgraph_1): Likewise.
2249         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
2250         of indirect edges.
2251
2252 2010-04-28  Richard Guenther  <rguenther@suse.de>
2253
2254         PR tree-optimization/43879
2255         PR tree-optimization/43909
2256         * tree-ssa-structalias.c (struct variable_info): Add
2257         only_restrict_pointers flag.
2258         (new_var_info): Initialize it.  Increment stats.total_vars here.
2259         (create_function_info_for): Do not increment stats.total_vars here.
2260         (get_function_part_constraint): Fix build with C++.
2261         (insert_into_field_list): Remove.
2262         (push_fields_onto_fieldstack): Properly merge fields.
2263         (create_variable_info_for): Split and simplify.
2264         (create_variable_info_for_1): New piece.
2265         (intra_create_variable_infos): Properly make restrict constraints
2266         from parameters.
2267
2268 2010-04-28  Richard Guenther  <rguenther@suse.de>
2269
2270         PR c++/43880
2271         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
2272
2273 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2274             Jan Hubicka <hubicka@ucw.cz>
2275
2276         * doc/invoke.texi (-Wsuggest-attribute=const,
2277         -Wsuggest-attribute=pure): Document.
2278         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
2279         (function_always_visible_to_compiler_p,
2280         suggest_attribute, warn_function_pure, warn_function_const):
2281         New functions.
2282         (check_call): Improve debug info.
2283         (analyze_function): Do not check availability.
2284         (add_new_function): Check availability.
2285         (propagate): Output warnings.
2286         (skip_function_for_local_pure_const): New function.
2287         (local_pure_const): Use it; output warnings.
2288         * common.opt (Wsuggest-attribute=const,
2289         Wsuggest-attribute=pure): New.
2290
2291 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
2292
2293         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
2294         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
2295         or DW_CFA_def_cfa_offset{,_sf}.
2296
2297 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
2298
2299         * tree.h: Fix truncated long macros.
2300
2301 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
2302
2303         * collect2.c (TARGET_64BIT): Redefine to target's default.
2304         * tlink.c: Likewise.
2305         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
2306         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
2307         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
2308         for underscoring __USER_LABEL_PREFIX__.
2309         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
2310         (SUB_LINK_ENTRY32): New.
2311         (SUB_LINK_ENTRY64): New.
2312         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
2313         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
2314         (SUB_LINK_ENTRY64): New.
2315         (SUB_LINK_ENTRY): New.
2316         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
2317         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
2318         x64 target is choosen.
2319         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
2320         * configure: Regenerated.
2321         * configure.ac (leading-mingw64-underscores): Option added.
2322
2323 2010-04-27  Jan Hubicka  <jh@suse.cz>
2324
2325         * doc/invoke.texi (-fipa-profile): Document.
2326         * opts.c (decode_options): Enable ipa-profile at -O1.
2327         * timevar.def (TV_IPA_PROFILE): Define.
2328         * common.opt (fipa-profile): Add.
2329         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
2330         flag for clones.
2331         (cgraph_propagate_frequency): Handle only local ones.
2332         * tree-pass.h (pass_ipa_profile): Declare.
2333         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
2334         (pass_ipa_profile): Use TV_IPA_PROFILE.
2335         * ipa.c (ipa_profile): New function.
2336         (gate_ipa_profile): Likewise.
2337         (pass_ipa_profile): New global variable.
2338         * passes.c (pass_ipa_profile): New.
2339
2340 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
2341
2342         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
2343
2344 2010-04-27  Martin Jambor  <mjambor@suse.cz>
2345
2346         PR middle-end/43812
2347         * ipa.c (dissolve_same_comdat_group_list): New function.
2348         (function_and_variable_visibility): Call
2349         dissolve_same_comdat_group_list when comdat group contains external or
2350         newly local nodes.
2351         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
2352         lists are circular and that they contain only DECL_ONE_ONLY nodes.
2353
2354 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
2355
2356         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
2357         (const_hash_1) <VECTOR_CST>: New case.
2358         (compare_constant) <VECTOR_CST>: Likewise.
2359         <ADDR_EXPR>: Deal with LABEL_REFs.
2360         (copy_constant) <VECTOR_CST>: New case.
2361
2362 2010-04-27  Jan Hubicka  <jh@suse.cz>
2363
2364         * cgraph.c (cgraph_propagate_frequency): New function.
2365         * cgraph.h (cgraph_propagate_frequency): Declare.
2366         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
2367         cgraph_propagate_frequency.
2368
2369 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
2370
2371         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
2372
2373 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
2374
2375         PR target/40657
2376         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
2377         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
2378         here to determine which regs to push and how much stack to reserve.
2379
2380 2010-04-27  Jie Zhang  <jie@codesourcery.com>
2381
2382         * doc/gimple.texi (gimple_statement_with_ops): Remove
2383         addresses_taken field.
2384         (gimple_statement_with_memory_ops): Likewise.
2385
2386 2010-04-27  Jan Hubicka  <jh@suse.cz>
2387
2388         * tree-inline.c (eni_inlining_weights): Remove.
2389         (estimate_num_insns): Special case more builtins.
2390
2391 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
2392
2393         PR c/32207
2394         * c-typeck.c (build_binary_op): Move forward check for comparison
2395         pointer with null pointer constant and adjust the diagnostic message.
2396
2397 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
2398
2399         PR lto/42776
2400         * configure.ac (gcc_cv_as_section_has_align): Set if installed
2401         binutils supports extended .section directive needed by LTO, or
2402         warn if older binutils found.
2403         (LTO_BINARY_READER): New AC_SUBST'd variable.
2404         (LTO_USE_LIBELF): Likewise.
2405         * gcc/config.gcc (lto_binary_reader): New target-specific configure
2406         variable.
2407         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
2408         (LTO_USE_LIBELF): Likewise.
2409         * configure: Regenerate.
2410
2411         * collect2.c (is_elf): Rename from this ...
2412         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
2413          object files in addition to ELF-formatted ones.
2414         (scan_prog_file): Caller updated.  Also allow for LTO info marker
2415         symbol to be prefixed or not by an extra underscore.
2416
2417         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
2418         * config/i386/winnt.c: Also #include lto-streamer.h
2419         (i386_pe_asm_named_section): Specify 1-byte section alignment for
2420         LTO named sections.
2421         (i386_pe_asm_output_aligned_decl_common): Add comment.
2422         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
2423
2424 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
2425
2426         PR target/43889
2427         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
2428         Add missing earlyclobber for second alternative.
2429
2430 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
2431
2432         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
2433         bits for artificial defs at the top of the block.
2434         * fwprop.c (single_def_use_enter_block): Don't call it.
2435
2436 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
2437
2438         PR 43715
2439         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
2440         instead of "$gcc_cv_objdump -T".
2441         Use "-undefined dynamic_lookup" on darwin.
2442         * gcc/configure: Regenerate.
2443
2444 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
2445
2446         PR c/43893
2447         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
2448
2449 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
2450
2451         * c-parser.c (struct c_token): Move location field up.
2452         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
2453         (struct c_declspecs): Convert typespec_word, storage_class, and
2454         default_int_p into bitfields.
2455         (struct c_declarator): Move loc field up.
2456
2457 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
2458
2459         * cfgloop.h (struct loop): Move can_be_parallel field up.
2460         * ipa-prop.h (struct ip_node_params): Move bitfields up.
2461         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
2462         down.
2463         (struct iv_cand): Convert pos field into a bitfield.
2464         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
2465         field up.
2466         (struct _stmt_vec_info): Shuffle fields for better packing.
2467
2468 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
2469
2470         * varasm.c (IN_NAMED_SECTION): Remove guard.
2471         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
2472         (IN_NAMED_SECTION_P): ...this.
2473         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
2474         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
2475
2476 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
2477
2478         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
2479         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
2480         of shadowing it.  Fix comments.
2481
2482 2010-04-26  Jan Hubicka  <jh@suse.cz>
2483
2484         * cgraph.c (cgraph_create_node): Set node frequency to normal.
2485         (cgraph_clone_node): Copy function frequency.
2486         * cgraph.h (node_frequency): New enum
2487         (struct cgraph_node): Add.
2488         * final.c (rest_of_clean_state): Update.
2489         * lto-cgraph.c (lto_output_node): Output node frequency.
2490         (input_overwrite_node): Input node frequency.
2491         * tre-ssa-loop-ivopts (computation_cost): Update.
2492         * lto-streamer-out.c (output_function): Do not output function
2493         frequency.
2494         * predict.c (maybe_hot_frequency_p): Update and handle functions
2495         executed once.
2496         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
2497         attribute lookup.
2498         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
2499         (compute_function_frequency): Set noreturn functions to be executed
2500         once.
2501         (choose_function_section): Update.
2502         * lto-streamer-in.c (input_function): Do not input function frequency.
2503         * function.c (allocate_struct_function): Do not initialize function
2504         frequency.
2505         * function.h (function_frequency): Remove.
2506         (struct function): Remove function frequency.
2507         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
2508         (try_update): Update.
2509         * tree-inline.c (initialize_cfun): Do not update function frequency.
2510         * passes.c (pass_init_dump_file): Update.
2511         * i386.c (ix86_compute_frame_layout): Update.
2512         (ix86_pad_returns): Update.
2513
2514 2010-04-26  Jie Zhang  <jie@codesourcery.com>
2515
2516         PR tree-optimization/43833
2517         * tree-vrp.c (range_int_cst_p): New.
2518         (range_int_cst_singleton_p): New.
2519         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
2520         when both operands are constants.  Use range_int_cst_p in
2521         BIT_IOR_EXPR case.
2522
2523 2010-04-26  Jan Hubicka  <jh@suse.cz>
2524
2525         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
2526
2527 2010-04-26  Richard Guenther  <rguenther@suse.de>
2528
2529         PR lto/43080
2530         * gimple.c (gimple_decl_printable_name): Deal gracefully
2531         with a NULL DECL_NAME.
2532
2533 2010-04-26  Richard Guenther  <rguenther@suse.de>
2534
2535         PR lto/42425
2536         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
2537         if emitting debug information and it is either a function
2538         or a namespace decl.
2539
2540 2010-04-26  Ira Rosen  <irar@il.ibm.com>
2541
2542         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
2543         determine if the statement is vectorizable, and a macro to access it.
2544         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
2545         Skip statements that can't be vectorized. If the analysis fails,
2546         mark the statement as unvectorizable if vectorizing basic block.
2547         (vect_compute_data_refs_alignment): Likewise.
2548         (vect_verify_datarefs_alignment): Skip statements marked as
2549         unvectorizable. Add print.
2550         (vect_analyze_group_access): Skip statements that can't be
2551         vectorized. If the analysis fails, mark the statement as
2552         unvectorizable if vectorizing basic block.
2553         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
2554         * tree-vect-stmts.c (vectorizable_store): Fix the number of
2555         generated stmts for SLP.
2556         (new_stmt_vec_info): Initialize the new field.
2557         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
2558         statements marked as unvectorizable.
2559
2560 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
2561
2562         * c-common.c (flag_isoc1x): New.
2563         (flag_isoc99): Update comment.
2564         * c-common.h (flag_isoc1x): New.
2565         (flag_isoc99): Update comment.
2566         * c-cppbuiltin.c (builtin_define_float_constants): Also define
2567         __<type>_DECIMAL_DIG__.
2568         * c-opts.c (set_std_c1x): New.
2569         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
2570         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
2571         * c.opt (-std=c1x, -std=gnu1x): New options.
2572         * doc/cpp.texi: Mention -std=c1x.
2573         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
2574         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
2575         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
2576         * doc/standards.texi: Mention C1X.
2577         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
2578         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
2579         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
2580         Define for C1X.
2581
2582 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
2583
2584         * config/i386/gmon-sol2.c (_mcleanup): Change format string
2585         placeholder from 0x%x to %#x.
2586         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
2587         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
2588         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
2589         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
2590         * config/i386/i386.c (ix86_target_string): Ditto.
2591         (output_pic_addr_const): Ditto.
2592         (print_operand): Ditto.
2593
2594 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
2595
2596         * combine.c (find_split_point): Add third argument.  Use it
2597         to find nested multiply-accumulate instructions.  Adjust calls.
2598         (try_combine): Adjust call to find_split_point.
2599
2600 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
2601
2602         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
2603
2604 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
2605
2606         PR tree-optimization/41442
2607         * fold-const.c (merge_truthop_with_opposite_arm): New function.
2608         (fold_binary_loc): Call it.
2609
2610 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2611
2612         * toplev.c (general_init): Set default for fdiagnostics-show-option.
2613         * opts.c (common_handle_option): Allow disabling it.
2614         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
2615
2616 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
2617
2618         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
2619         between modes if both types are integral.
2620
2621 2010-04-23  Richard Guenther  <rguenther@suse.de>
2622
2623         PR tree-optimization/43572
2624         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
2625
2626 2010-04-23  Richard Guenther  <rguenther@suse.de>
2627
2628         PR lto/43455
2629         * tree-inline.c (tree_can_inline_p): Also check compatibility
2630         of return types.
2631
2632 2010-04-23  Martin Jambor  <mjambor@suse.cz>
2633
2634         PR tree-optimization/43846
2635         * tree-sra.c (struct access): New flag grp_assignment_read.
2636         (build_accesses_from_assign): Set grp_assignment_read.
2637         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
2638         (enum mark_read_status): New type.
2639         (analyze_access_subtree): Propagate grp_assignment_read, create
2640         accesses also if both direct_read and root->grp_assignment_read.
2641
2642 2010-04-23  Martin Jambor  <mjambor@suse.cz>
2643
2644         PR middle-end/43835
2645         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
2646         function does not have type attributes.
2647
2648 2010-04-23  Richard Guenther  <rguenther@suse.de>
2649
2650         PR lto/42653
2651         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
2652         of FUNCTION_DECLs.
2653
2654 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2655
2656         * sese.h (create_if_region_on_edge): Remove.
2657
2658         * sese.c (create_if_region_on_edge): Make static.
2659
2660         * tree-inline.c: Do not include ggc.h.
2661
2662         * expr.c: Do not include ggc.h.
2663
2664         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
2665         dependencies.
2666
2667 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
2668
2669         PR target/43744
2670         * config/sh/sh.c (find_barrier): Don't emit a constant pool
2671         in the middle of insns for casesi_worker_2.
2672
2673 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
2674
2675         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
2676
2677 2010-04-22  Ira Rosen  <irar@il.ibm.com>
2678
2679         PR tree-optimization/43842
2680         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
2681         loop unrolling in update of exit phis. Fix comment.
2682         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
2683         least two reduction statements in the loop before starting SLP
2684         analysis.
2685
2686 2010-04-22  Nick Clifton  <nickc@redhat.com>
2687
2688         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
2689
2690 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
2691
2692         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
2693         to simplify a + ~a.
2694
2695 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2696
2697         * tree-parloops.c (loop_parallel_p): New argument
2698         parloop_obstack.  Pass it down.
2699         (parallelize_loops): New variable parloop_obstack.  Initialize it,
2700         pass it down, free it.
2701
2702         * tree-loop-linear.c (linear_transform_loops): Pass down
2703         lambda_obstack.
2704
2705         * tree-data-ref.h (lambda_compute_access_matrices): New argument
2706         of type struct obstack *.
2707
2708         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
2709         scratch_obstack.  Initialize it, pass down, free it.
2710
2711         * lambda.h (lambda_loop_new): Remove.
2712         (lambda_matrix_new, lambda_matrix_inverse)
2713         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
2714         argument of type struct obstack *.
2715
2716         * lambda-trans.c (lambda_trans_matrix_new): New argument
2717         lambda_obstack.  Pass it down, use obstack allocation for ret.
2718         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
2719         it down.
2720
2721         * lambda-mat.c (lambda_matrix_get_column)
2722         (lambda_matrix_project_to_null): Remove.
2723         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
2724         allocation for mat.
2725         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
2726         lambda_obstack.
2727
2728         * lambda-code.c (lambda_loop_new): New function.
2729         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
2730         (lambda_compute_auxillary_space, lambda_compute_target_space)
2731         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
2732         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
2733         (build_access_matrix): New argument lambda_obstack.  Use obstack
2734         allocation for am.
2735         (lambda_compute_step_signs, lambda_compute_access_matrices): New
2736         argument lambda_obstack.  Pass it down.
2737
2738 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
2739
2740         * optabs.h (expand_widening_mult): Declare.
2741
2742 2010-04-22  Richard Guenther  <rguenther@suse.de>
2743
2744         PR tree-optimization/43845
2745         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
2746         lookup the CALL_EXPR function and arguments.
2747
2748 2010-04-22  Nick Clifton  <nickc@redhat.com>
2749
2750         * config/stormy16/stormy16.c
2751         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
2752         * config/stormy16/stormy16.h: Tidy up formatting.
2753         (DONT_USE_BUILTIN_SETJMP): Remove definition.
2754         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
2755         (ineqbranchsi): Delete pattern.
2756         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
2757         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
2758         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
2759         stormy16-lib2-ucmpsi2.c.
2760
2761 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
2762
2763         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
2764         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
2765         extra set merge_set_noclobber, and use it to relax the final test
2766         slightly.
2767         * df.h (df_simulate_find_noclobber_defs): Declare.
2768         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
2769         conditional defs.
2770         (df_simulate_find_noclobber_defs): New function.
2771
2772 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
2773
2774         * config/i386/i386.md: Use {} around multi-line preparation statements.
2775
2776 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2777
2778         * c-tree.h (push_init_level, pop_init_level, set_init_index)
2779         (process_init_element): New argument of type struct obstack *.
2780
2781         * c-typeck.c (push_init_level, pop_init_level, set_designator)
2782         (set_init_index, set_init_label, set_nonincremental_init)
2783         (set_nonincremental_init_from_string, find_init_member)
2784         (output_init_element, output_pending_init_elements)
2785         (process_init_element): New argument braced_init_obstack.  Pass it
2786         down.
2787         (push_range_stack, add_pending_init): New argument
2788         braced_init_obstack.  Use obstack allocation.
2789
2790         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
2791         braced_init_obstack.  Pass it down.
2792         (c_parser_braced_init): New variables ret, braced_init_obstack.
2793         Initialize obstack, pass it down and finally free it.
2794
2795 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
2796
2797         PR middle-end/29274
2798         * tree-pass.h (pass_optimize_widening_mul): Declare.
2799         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
2800         gate_optimize_widening_mul): New static functions.
2801         (pass_optimize_widening_mul): New.
2802         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
2803         <case MULT_EXPR>: Remove support for widening multiplies.
2804         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
2805         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
2806         simplify_gen_unary rather than directly building extensions.
2807         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
2808         WIDEN_MULT_EXPR.
2809         * expmed.c (expand_widening_mult): New function.
2810         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
2811
2812 2010-04-21  Jan Hubicka  <jh@suse.cz>
2813
2814         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
2815         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
2816         * lto-wpa-fixup.c: Remove.
2817         * Makefile.in (lto-wpa-fixup.o): Remove.
2818         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
2819         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
2820         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
2821
2822 2010-04-21  Jan Hubicka  <jh@suse.cz>
2823
2824         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
2825         add write_optimization_summary, read_optimization_summary.
2826         (ipa_write_summaries_of_cgraph_node_set): Remove.
2827         (ipa_write_optimization_summaries): Declare.
2828         (ipa_read_optimization_summaries): Declare.
2829         * ipa-cp.c (pass_ipa_cp): Update.
2830         * ipa-reference.c (pass_ipa_reference): Update.
2831         * ipa-pure-const.c (pass_ipa_pure_const): Update.
2832         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
2833         Update.
2834         * ipa-inline.c (pass_ipa_inline): Update.
2835         * ipa.c (pass_ipa_whole_program): Update.
2836         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
2837         * passes.c (ipa_write_summaries_1): Do not test wpa.
2838         (ipa_write_optimization_summaries_1): New.
2839         (ipa_write_optimization_summaries): New.
2840         (ipa_read_summaries): Do not test ltrans.
2841         (ipa_read_optimization_summaries_1): New.
2842         (ipa_read_optimization_summaries): New.
2843
2844 2010-04-21  Jan Hubicka  <jh@suse.cz>
2845
2846         * lto-cgraph.c (lto_output_node): Do not output comdat groups
2847         for boundary nodes.
2848         (output_cgraph): Do not arrange comdat groups for boundary nodes.
2849
2850 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
2851
2852         PR debug/40040
2853         * dwarf2out.c (add_name_and_src_coords_attributes): Add
2854         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
2855
2856 2010-04-21  Jan Hubicka  <jh@suse.cz>
2857
2858         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
2859
2860 2010-04-21  Jan Hubicka  <jh@suse.cz>
2861
2862         * varpool.c (decide_is_variable_needed): Variable is always needed
2863         during ltrans.
2864
2865 2010-04-21  Jan Hubicka  <jh@suse.cz>
2866
2867         * opts.c (decode_options): Enable pure-const pass for whopr.
2868
2869 2010-04-21  Jan Hubicka  <jh@suse.cz>
2870
2871         * cgraph.c (dump_cgraph_node): Dump also assembler name.
2872         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
2873         at WPA dumping.
2874         (cgraph_decide_inlining): Do not expect callee to be removed in all
2875         cases.
2876
2877 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
2878
2879         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
2880
2881 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
2882
2883         * config/i386/i386.md (x86_shrd): Add athlon_decode and
2884         amdfam10_decode attributes.
2885
2886 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
2887
2888         PR middle-end/43570
2889         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
2890         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
2891         (lower_copyprivate_clauses): Use private var in outer
2892         context instead of original var.  Make sure the types
2893         are correct for VLAs.
2894
2895 2010-04-21  Richard Guenther  <rguenther@suse.de>
2896
2897         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
2898         to non-pointer objects.
2899
2900 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
2901
2902         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
2903         last chain entry if it starts with the still current label.
2904         (add_location_or_const_value_attribute): Check that
2905         loc_list->first->next is NULL instead of comparing ->first with ->last.
2906         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
2907         to add_var_loc_to_decl.
2908
2909         * dwarf2out.c (output_call_frame_info): For dw_cie_version
2910         >= 4 add also address size and segment size fields into CIE header.
2911
2912         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
2913         long as address size is the same as sizeof (void *) and
2914         segment size is 0.
2915         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
2916         address size or segment size is unexpected, return DW_EH_PE_omit.
2917         (classify_object_over_fdes): If get_cie_encoding returned
2918         DW_EH_PE_omit, return -1.
2919         (init_object): If classify_object_over_fdes returned -1,
2920         pretend there were no FDEs at all.
2921
2922 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
2923
2924         * config/i386/i386.md (bswap<mode>2): Macroize expander from
2925         bswap{si,di}2 using SWI48 mode iterator.
2926         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
2927         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
2928         set modrm attribute of bswap insn to 0 and remove length attribute.
2929         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
2930         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
2931         set mode attribute to <MODE> and remove length attribute.
2932
2933 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
2934
2935         PR rtl-optimization/43520
2936         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
2937         zero available registers.
2938
2939 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2940
2941         * builtins.c (fold_builtin_cproj): Fold more cases.
2942
2943 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2944
2945         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
2946         (fold_builtin_1): Fold builtin cproj.
2947         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
2948         Use ATTR_CONST_NOTHROW_LIST.
2949
2950 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
2951
2952         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
2953         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
2954         ffsi2_no_cmove for !TARGET_CMOVE.
2955         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
2956         (ffssi2): Remove expander.
2957         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
2958         mode iterator.
2959         (ctz<mode>2): Ditto from ctz{si,di}2.
2960         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
2961         mode iterator.
2962         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
2963         mode iterator.
2964
2965 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
2966
2967         * dwarf2out.c (AT_linkage_name): Define.
2968         (clone_as_declaration): Handle DW_AT_linkage_name.
2969         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
2970         of DW_AT_MIPS_linkage_name.
2971         (move_linkage_attr): Likewise.
2972         (dwarf2out_finish): Likewise.
2973
2974 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
2975
2976         PR middle-end/41952
2977         * fold-const.c (fold_comparison): New folding rule.
2978
2979 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
2980
2981         * double-int.h (double_int_setbit): Declare.
2982         * double-int.c (double_int_setbit): New function.
2983         * rtl.h (immed_double_int_const): Declare.
2984         * emit-rtl.c (immed_double_int_const): New function.
2985         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
2986         and immed_double_int_const functions.
2987         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
2988         expand_copysign_bit):  (Ditto.).
2989         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
2990         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
2991         * dojump.c (prefer_and_bit_test): (Ditto.).
2992         * expr.c (convert_modes, reduce_to_bit_field_precision,
2993         const_vector_from_tree): (Ditto.).
2994         * expmed.c (mask_rtx, lshift_value): (Ditto.).
2995
2996 2010-04-20  Jan Hubicka  <jh@suse.cz>
2997
2998         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
2999         (dump_cgraph_node): Dump new flags.
3000         * cgraph.h (struct cgraph_node): Add flags
3001         reachable_from_other_partition and in_other_partition.
3002         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
3003         other partition can not be removed.
3004         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
3005         the other partition must be output; silence sanity checking on
3006         leaking functions bodies from other paritition.
3007         * lto-cgraph.c (reachable_from_other_partition_p): New function.
3008         (lto_output_node): Output new flags; do not sanity check that inline
3009         clones are output; drop lto_forced_extern_inline_p code; do not mock
3010         visibility flags at partition boundaries.
3011         (add_node_to): New function.
3012         (output_cgraph): Use it to sort functions so masters appear before
3013         clones.
3014         (input_overwrite_node): Input new flags.
3015         * passes.c (ipa_write_summaries): Do not call
3016         lto_new_extern_inline_states.
3017         * lto-section-out.c (forced_extern_inline,
3018         lto_new_extern_inline_states lto_delete_extern_inline_states,
3019         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
3020         * lto-streamer.h (lto_new_extern_inline_states,
3021         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
3022         lto_forced_extern_inline_p): Kill.
3023
3024 2010-04-20  Richard Guenther  <rguenther@suse.de>
3025
3026         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
3027         from vars that can have pointers.
3028         (process_constraint): Dump useless constraints.
3029
3030 2010-04-20  Richard Guenther  <rguenther@suse.de>
3031
3032         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
3033         (dump_sa_points_to_info): Remove asserts.
3034         (init_base_vars): nothing_id isn't an escape point nor does it
3035         have pointers.
3036
3037 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
3038
3039         * tree.h (TYPE_REF_IS_RVALUE): Define.
3040         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
3041         should_move_die_to_comdat, prune_unused_types_walk): Handle
3042         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
3043         (modified_type_die, gen_reference_type_die): Emit
3044         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
3045         if TYPE_REF_IS_RVALUE and -gdwarf-4.
3046
3047 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3048
3049         PR target/43635
3050         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
3051         calls for -fpic -m31 if they have been sibcall optimized.
3052
3053 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
3054
3055         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
3056         ar.lc fixed and call-used.
3057
3058         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
3059
3060 2010-04-19  Jan Hubicka  <jh@suse.cz>
3061
3062         * opts.c (decode_options): Disable whpr incompatible passes.
3063         * lto/lto.c (lto_1_to_1_map): Skip clones.
3064         (read_cgraph_and_symbols): Do not mark everything as needed.
3065         (do_whole_program_analysis): Do map only after optimizing;
3066         set proper cgraph_state; use passmanager.
3067
3068 2010-04-19  DJ Delorie  <dj@redhat.com>
3069
3070         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
3071         POINTER_PLUS_EXPR and fix them.
3072
3073 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
3074
3075         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
3076         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
3077         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
3078         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
3079         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
3080         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
3081         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
3082         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
3083         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
3084         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
3085         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
3086
3087 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
3088
3089         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
3090         (check_cond_move_block): Likewise.
3091         (cond_move_process_if_block): Likewise.
3092         (noce_find_if_block): Improve formatting.
3093         (find_if_header): Pass 0 to memset and tweak conditions.
3094         (cond_exec_find_if_block): Fix long lines and tweak conditions.
3095
3096 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
3097
3098         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
3099         for -gdwarf-4.
3100
3101         PR middle-end/43337
3102         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
3103         with non-local decl doesn't need chain.
3104
3105 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
3106
3107         * ira-color.c (allocno_reload_assign): Avoid accumulating
3108         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
3109
3110 2010-04-19  Martin Jambor  <mjambor@suse.cz>
3111
3112         * gimple.h (create_tmp_reg): Declare.
3113         * gimplify.c (create_tmp_reg): New function.
3114         (gimplify_return_expr): Use create_tmp_reg.
3115         (gimplify_omp_atomic): Likewise.
3116         (gimple_regimplify_operands): Likewise.
3117         * tree-dfa.c (make_rename_temp): Likewise.
3118         * tree-predcom.c (predcom_tmp_var): Likewise.
3119         (reassociate_to_the_same_stmt): Likewise.
3120         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
3121         (get_replaced_param_substitute): Likewise.
3122         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
3123         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
3124         * tree-ssa-pre.c (get_representative_for): Likewise.
3125         (create_expression_by_pieces): Likewise.
3126         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
3127         (create_tailcall_accumulator): Likewise.
3128
3129 2010-04-19  Martin Jambor  <mjambor@suse.cz>
3130
3131         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
3132         new_stmt.
3133         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
3134
3135 2010-04-19  Richard Guenther  <rguenther@suse.de>
3136
3137         PR tree-optimization/43796
3138         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
3139         from SCEV in the lattice.
3140         (vrp_visit_phi_node): Dump change.
3141
3142 2010-04-19  Richard Guenther  <rguenther@suse.de>
3143
3144         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
3145         * configure: Re-generated.
3146
3147 2010-04-19  Richard Guenther  <rguenther@suse.de>
3148
3149         PR tree-optimization/43783
3150         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
3151         constant ARRAY_REF operands two and three if possible.
3152
3153 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
3154
3155         PR target/43766
3156         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
3157
3158 2010-04-19  Jie Zhang  <jie@codesourcery.com>
3159
3160         PR target/43662
3161         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
3162
3163 2010-04-19  Ira Rosen  <irar@il.ibm.com>
3164
3165         PR tree-optimization/37027
3166         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
3167         and macro to access it.
3168         (vectorizable_reduction): Add argument.
3169         (vect_get_slp_defs): Likewise.
3170         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
3171         statements for possible use in SLP.
3172         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
3173         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
3174         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
3175         add new argument.
3176         (vectorizable_reduction): Likewise.
3177         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
3178         vect_get_slp_defs.
3179         (vectorizable_type_demotion, vectorizable_type_promotion,
3180         vectorizable_store): Likewise.
3181         (vect_analyze_stmt): Update call to vectorizable_reduction.
3182         (vect_transform_stmt): Likewise.
3183         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
3184         (vect_build_slp_tree): Fix indentation. Check that there are no loads
3185         from different interleaving chains in same node.
3186         (vect_slp_rearrange_stmts): New function.
3187         (vect_supported_load_permutation_p): Allow load permutations for
3188         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
3189         inside SLP nodes if necessary.
3190         (vect_analyze_slp_instance): Handle reductions.
3191         (vect_analyze_slp): Try to build SLP instances originating from groups
3192         of reductions.
3193         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
3194         (vect_get_constant_vectors): Create initial vectors for reductions
3195         according to reduction code. Add new argument.
3196         (vect_get_slp_defs): Add new argument, pass it to
3197         vect_get_constant_vectors.
3198         (vect_schedule_slp_instance): Remove SLP tree root statements.
3199
3200 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
3201
3202         * tree.h (ENUM_IS_SCOPED): Define.
3203         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
3204         for ENUM_IS_SCOPED enums.
3205
3206 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
3207
3208         * fold-const.c (fold_comparison): Use ssizetype.
3209         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
3210         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
3211         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
3212         * tree-object-size.c (compute_object_sizes): Use size_type_node.
3213
3214         * tree.h (initialize_sizetypes): Remove parameter.
3215         (build_common_tree_nodes): Remove second parameter.
3216         * stor-layout.c (initialize_sizetypes): Remove parameter.
3217         Always create an unsigned type.
3218         (set_sizetype): Assert that the passed type is unsigned and simplify.
3219         * tree.c (build_common_tree_nodes): Remove second parameter.
3220         Adjust call to initialize_sizetypes.
3221         * c-decl.c (c_init_decl_processing): Remove second argument in call to
3222         build_common_tree_nodes.
3223
3224 2010-04-18  Matthias Klose  <doko@ubuntu.com>
3225
3226         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
3227
3228 2010-04-18  Ira Rosen  <irar@il.ibm.com>
3229
3230         PR tree-optimization/43771
3231         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
3232         load permutation doesn't have gaps.
3233
3234 2010-04-18  Jan Hubicka  <jh@suse.cz>
3235
3236         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
3237         (sse_prologue_save_insn expander): Use new pattern.
3238         (sse_prologue_save_insn1): New pattern and splitter.
3239         (sse_prologue_save_insn): Update to deal also with 64bit aligned
3240         blocks.
3241         * i386.c (setup_incoming_varargs_64): Do not compute jump
3242         destination here.
3243         (ix86_gimplify_va_arg): Update alignment needed.
3244         (ix86_local_alignment): Do not align all local arrays to 128bit.
3245
3246 2010-04-17  Jan Hubicka  <jh@suse.cz>
3247
3248         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
3249
3250 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
3251
3252         * arm.md (negdi2): Remove redundant code to force values into a
3253         register.
3254
3255 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
3256
3257         * arm/bpabi.S: Add EABI alignment attributes to objects.
3258         * arm/bpabi-v6m.S: Likewise.
3259         * arm/crti.asm: Likewise.
3260         * arm/crtn.asm: Likewise.
3261         * arm/lib1funcs.asm: Likewise.
3262         * arm/libunwind.S: Likewise.
3263
3264 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
3265
3266         * arm-protos.h (tune_params): New structure.
3267         * arm.c (current_tune): New variable.
3268         (arm_constant_limit): Delete.
3269         (struct processors): Add pointer to the tune parameters.
3270         (arm_slowmul_tune): New tuning option.
3271         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
3272         (all_cores): Adjust to pick up the tuning model.
3273         (arm_constant_limit): New function.
3274         (arm_override_options): Select the appropriate tuning model.  Delete
3275         initialization of arm_const_limit.
3276         (arm_split_constant): Use the new constant-limit model.
3277         (arm_rtx_costs): Pick up the current tuning model.
3278         * arm.md (is_strongarm, is_xscale): Delete.
3279         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
3280         for Xscale variant architectures.
3281         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
3282
3283 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3284
3285         * config/arm/arm.c (arm_gen_constant): Remove unused variable
3286         can_shift.
3287         (arm_rtx_costs_1): Remove unused variable extra_cost.
3288         (arm_unwind_emit_set): Use variable offset.
3289         (thumb1_output_casesi): Remove unused variable flags.
3290
3291 2010-04-16  Jeff Law  <law@redhat.com>
3292
3293         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
3294         needing assignment rather than doing a two-phase assignment.  Remove
3295         unused variable 'm'.
3296
3297 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
3298
3299         PR bootstrap/43767
3300         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
3301
3302 2010-04-16  Doug Kwan  <dougkwan@google.com>
3303
3304         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
3305         (next_operand_entry_id): New static variable.
3306         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
3307         (add_to_ops_vec): Assigned unique ID to operand entry.
3308         (struct oecount_s): New field ID.
3309         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
3310         (undistribute_ops_list): Assign unique IDs to oecounts.
3311         (init_reassoc): reset next_operand_entry_id.
3312
3313 2010-04-16  Doug Kwan  <dougkwan@google.com>
3314
3315         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
3316         missing left parenthesis.
3317
3318 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
3319
3320         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
3321         *btdi_rex64 using SWI48 mode iterator.
3322         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
3323         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
3324         *jcc_btdi_mask_rex64.
3325
3326 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
3327
3328         * double-int.h (tree_to_double_int): Convert to macro.
3329         * double-int.c (tree_to_double_int): Remove.
3330
3331 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
3332
3333         PR debug/43762
3334         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
3335         with want_address 2 and in case a single element list might be
3336         possible, call it again with want_address 0.
3337
3338 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
3339
3340         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
3341         case 'W' print operands for HI mode.
3342         * config/h8300/h8300.h (Y0, Y2) : New constraints.
3343         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
3344         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
3345         * config/h8300/predicate.md (bit_register_indirect_operand): New.
3346
3347         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
3348
3349         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
3350         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
3351         #xx:3 and #xx:4 mode.
3352
3353         * config/h8300/h8300.md (inverted load with HImode dest): Add
3354         support for H8300SX.
3355
3356         * config/h8300/predicate.md (bit_operand): Allow immediate values that
3357         satisfy 'U' constraint.
3358
3359 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3360
3361         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
3362         * configure: Regenerate.
3363         * config.in: Regenerate.
3364         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
3365         works.
3366
3367 2010-04-16  Richard Guenther  <rguenther@suse.de>
3368
3369         * tree.h (struct tree_decl_minimal): Move pt_uid ...
3370         (struct tree_decl_common): ... here.
3371         (DECL_PT_UID): Adjust.
3372         (SET_DECL_PT_UID): Likewise.
3373         (DECL_PT_UID_SET_P): Likewise.
3374
3375 2010-04-16  Richard Guenther  <rguenther@suse.de>
3376
3377         PR tree-optimization/43572
3378         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
3379         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
3380         * tree-flow.h (is_call_clobbered): Remove.
3381         * tree-flow-inline.h (is_call_clobbered): Likewise.
3382         * tree-dfa.c (dump_variable): Do not dump call clobber state.
3383         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
3384         (execute_return_slot_opt): Adjust.
3385         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
3386         check for call clobbered vars here.
3387         (find_tail_calls): Move tailcall verification to the
3388         proper place.
3389
3390 2010-04-16  Diego Novillo  <dnovillo@google.com>
3391
3392         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
3393
3394 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
3395
3396         PR target/40603
3397         * config/arm/arm.md (cbranchqi4): New pattern.
3398         * config/arm/predicates.md (const0_operand,
3399         cbranchqi4_comparison_operator): New predicates.
3400
3401 2010-04-16  Richard Guenther  <rguenther@suse.de>
3402
3403         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
3404         (dump_gimple_stmt): Likewise.
3405
3406 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
3407
3408         * recog.h (struct recog_data): New field is_operator.
3409         (struct insn_operand_data): New field is_operator.
3410         * recog.c (extract_insn): Set recog_data.is_operator.
3411         * genoutput.c (output_operand_data): Emit code to set the
3412         is_operator field.
3413         * reload.c (find_reloads): Use it rather than testing for an
3414         empty constraint string.
3415
3416         PR target/41514
3417         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
3418         If the previous insn is a cbranchsi4_insn with the same arguments,
3419         omit the compare instruction.
3420
3421         * config/arm/arm.md (addsi3_cbranch): If destination is a high
3422         register, inputs must be low registers and we need a low register
3423         scratch.  Handle alternative 2 like alternative 3.
3424
3425 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
3426
3427         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
3428         don't call get_addr on both.  If one expression is a VALUE and
3429         the other a REG, check VALUE's locs if the REG isn't among them.
3430
3431 2010-04-16  Christian Bruel  <christian.bruel@st.com>
3432
3433         * config/sh/sh.h (sh_frame_pointer_required): New function.
3434         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
3435         (flag_omit_frame_pointer) Set.
3436         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
3437         (rounded_frame_size): Adjust size with outgoing_args_size.
3438         (sh_set_return_address): Must return from stack pointer.
3439         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
3440         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
3441         (ACCUMULATE_OUTGOING_ARGS): Define.
3442         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
3443         * gcc/config/sh/sh.opt: (maccumulate-outgoing-args): New option.
3444
3445 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
3446
3447         PR target/43471
3448         * config/sh/sh.c (sh_legitimize_reload_address): Use
3449         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
3450         Remove a unneeded check for offset_base.
3451
3452 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
3453
3454         * configure: Regenerated.
3455
3456 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3457
3458         * config/s390/s390.c (s390_call_save_register_used): Switch back
3459         to HARD_REGNO_NREGS.
3460
3461 2010-04-15  Richard Guenther  <rguenther@suse.de>
3462
3463         * alias.c (alias_set_subset_of): Handle alias-set zero
3464         child properly.
3465
3466 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
3467             Julian Brown  <julian@codesourcery.com>
3468
3469         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
3470         alternatives according to use of high and low regs.
3471         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
3472         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
3473         optimizing for size on Thumb-2.
3474
3475 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
3476
3477         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
3478
3479 2010-04-15  Richard Guenther  <rguenther@suse.de>
3480
3481         * tree-ssa-structalias.c (struct variable_info): Add
3482         is_fn_info flag.
3483         (new_var_info): Initialize it.
3484         (dump_constraints): Support printing last added constraints.
3485         (debug_constraints): Adjust.
3486         (dump_constraint_graph): Likewise.
3487         (make_heapvar_for): Check for NULL cfun.
3488         (get_function_part_constraint): New function.
3489         (get_fi_for_callee): Likewise.
3490         (find_func_aliases): Properly implement IPA PTA constraints.
3491         (process_ipa_clobber): New function.
3492         (find_func_clobbers): Likewise.
3493         (insert_into_field_list_sorted): Remove.
3494         (create_function_info_for): Properly allocate vars for IPA mode.
3495         Do not use insert_into_field_list_sorted.
3496         (create_variable_info_for): Properly generate constraints for
3497         global vars in IPA mode.
3498         (dump_solution_for_var): Always dump the solution.
3499         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
3500         (find_what_var_points_to): Adjust.
3501         (pt_solution_set): Change.
3502         (pt_solution_ior_into): New function.
3503         (pt_solution_empty_p): Export.
3504         (pt_solution_includes_global): Adjust.
3505         (pt_solution_includes_1): Likewise.
3506         (pt_solutions_intersect_1): Likewise.
3507         (dump_sa_points_to_info): Check some invariants.
3508         (solve_constraints): Move constraint dumping ...
3509         (compute_points_to_sets): ... here.
3510         (ipa_pta_execute): ... and here.
3511         (compute_may_aliases): Do not re-compute points-to info
3512         locally if IPA info is available.
3513         (ipa_escaped_pt): New global var.
3514         (ipa_pta_execute): Properly implement IPA PTA.
3515         * tree-into-ssa.c (dump_decl_set): Support dumping
3516         decls not in referenced-vars.
3517         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
3518         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
3519         (dump_points_to_solution): Likewise.
3520         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
3521         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
3522         (remap_gimple_stmt): Reset call clobber/use information if necessary.
3523         (copy_decl_to_var): Copy DECL_PT_UID.
3524         (copy_result_decl_to_var): Likewise.
3525         * tree.c (make_node_stat): Initialize DECL_PT_UID.
3526         (copy_node_stat): Copy it.
3527         * tree.h (DECL_PT_UID): New macro.
3528         (SET_DECL_PT_UID): Likewise.
3529         (DECL_PT_UID_SET_P): Likewise.
3530         (struct tree_decl_minimal): Add pt_uid member.
3531         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
3532         (pt_solution_empty_p): Declare.
3533         (pt_solution_set): Adjust.
3534         (ipa_escaped_pt): Declare.
3535         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
3536         * gimple-pretty-print.c (pp_points_to_solution): New function.
3537         (dump_gimple_call): Dump call clobber/use information.
3538         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
3539         * tree-pass.h (TDF_ALIAS): New dump option.
3540         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
3541         * doc/invoke.texi (-fipa-pta): Update documentation.
3542
3543 2010-04-15  Richard Guenther  <rguenther@suse.de>
3544
3545         * Makefile.in (OBJS-common): Add gimple-fold.o.
3546         (gimple-fold.o): New rule.
3547         * tree.h (maybe_fold_offset_to_reference,
3548         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
3549         prototypes ...
3550         * gimple.h: ... here.
3551         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
3552         may_propagate_address_into_dereference): Move prototypes ...
3553         * gimple.h: ... here.
3554         * tree-ssa-ccp.c (get_symbol_constant_value,
3555         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
3556         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
3557         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
3558         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
3559         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
3560         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
3561         gimplify_and_update_call_from_tree): Move ...
3562         * gimple-fold.c: ... here.  New file.
3563         (ccp_fold_builtin): Rename to ...
3564         (gimple_fold_builtin): ... this.
3565         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
3566
3567 2010-04-15  Richard Guenther  <rguenther@suse.de>
3568
3569         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
3570         fit_double_type, force_fit_type_double, add_double_with_sign,
3571         neg_double, mul_double_with_sign, lshift_double, rshift_double,
3572         lrotate_double, rrotate_double, div_and_round_double): Move ...
3573         * double-int.c: ... here.
3574         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
3575         add_double, neg_double, mul_double_with_sign, mul_double,
3576         lshift_double, rshift_double, lrotate_double, rrotate_double,
3577         div_and_round_double): Move prototypes ...
3578         * double-int.h: ... here.
3579
3580 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
3581
3582         PR target/43742
3583         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
3584         matching constraints to ensure inputs match the output.
3585
3586 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
3587
3588         PR target/43742
3589         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
3590         in an input-only operand.
3591
3592 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
3593
3594         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
3595         (double_int_not, double_int_lshift, double_int_rshift): Declare.
3596         (double_int_negative_p): Convert to static inline function.
3597         * double-int.c (double_int_lshift, double_int_lshift): New functions.
3598         (double_int_negative_p): Remove.
3599         * tree.h (lshift_double, rshift_double):
3600         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
3601         * fold-const.c (fold_convert_const_int_from_real,
3602         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
3603         (lshift_double): Change type of arith argument to bool.
3604         (rshift_double): Change type of arith argument to bool. Correct
3605         comment.
3606         * expmed.c (mask_rtx, lshift_value): (Ditto.).
3607
3608 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
3609
3610         PR target/21803
3611         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
3612         at the start and end of the then/else blocks, and omit them from the
3613         conversion.
3614         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
3615         argument; all callers changed.  Pass zero to old_insns_match_p instead.
3616         (flow_find_head_matching_sequence): New function.
3617         (old_insns_match_p): Check REG_EH_REGION notes for calls.
3618         * basic-block.h (flow_find_cross_jump,
3619         flow_find_head_matching_sequence): Declare functions.
3620
3621 2010-04-14  Jason Merrill  <jason@redhat.com>
3622
3623         PR c++/36625
3624         * c-common.c (attribute_takes_identifier_p): New fn.
3625         * c-common.h: Declare it.
3626
3627 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
3628
3629         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
3630         splitter condition.
3631         (*udivmod<mode>4): Ditto.
3632
3633 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
3634
3635         * config/i386/i386.md (maxmin_int): Rename code attribute from
3636         maxminiprefix and update all users.
3637         (maxmin_float): Ditto from maxminfprefix.
3638         (logic): Ditto from logicprefix.
3639         (absneg_mnemonic): Ditto from absnegprefix.
3640         * config/i386/mmx.md: Update all users of maxminiprefix,
3641         maxminfprefix and logicprefix for rename.
3642         * config/i386/sse.md: Ditto.
3643         * config/i386/sync.md (sync_<code><mode>): Update for
3644         logicprefix rename.
3645
3646 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3647
3648         PR 42966
3649         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
3650         warnings converted to errors.
3651
3652 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
3653
3654         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
3655         used insn_type variable.
3656         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
3657         to avoid set-but-not-used warning.
3658
3659 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
3660
3661         * df-core.c (df_ref_debug): Change format string placeholder
3662         from 0x%x to %#x.
3663         * dwarf2asm.c (dw2_asm_output_data_raw,
3664         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
3665         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
3666         * dwarf2out.c (output_cfi, output_cfi_directive,
3667         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
3668         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
3669         Ditto.
3670         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
3671         * print-rtl.c (print_rtx): Ditto.
3672
3673 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
3674
3675         PR middle-end/42694
3676         * builtins.c (expand_builtin_pow_root): New function to expand pow
3677         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
3678         series of sqrt and cbrt calls under -ffast-math.
3679         (expand_builtin_pow): Call it.
3680
3681 2010-04-14  Michael Matz  <matz@suse.de>
3682
3683         PR tree-optimization/42963
3684         * tree-cfg.c (touched_switch_bbs): New static variable.
3685         (group_case_labels_stmt): New function broken out from ...
3686         (group_case_labels): ... here, use the above.
3687         (start_recording_case_labels): Allocate touched_switch_bbs.
3688         (end_recording_case_labels): Deallocate it, call
3689         group_case_labels_stmt.
3690         (gimple_redirect_edge_and_branch): Remember index of affected BB.
3691
3692 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
3693
3694         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
3695         from insn template.
3696
3697 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
3698
3699         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
3700
3701 2010-04-13  Jan Hubicka  <jh@suse.cz>
3702
3703         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
3704         of optimized out static functions.
3705         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
3706         cost computation.  Also sanity check for overflows.
3707         (update_caller_keys): Update cgraph_edge_badness call; properly
3708         update fibheap and sanity check that it is up to date.
3709         (add_new_edges_to_heap): Update cgraph_edge_badness.
3710         (cgraph_decide_inlining_of_small_function): Likewise;
3711         add sanity checking that badness in heap is up to date;
3712         improve dumping of reason; Update badness of calls to the
3713         offline copy of function currently inlined; dump badness
3714         of functions not inlined because of unit growth limits.
3715
3716 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
3717
3718         PR middle-end/32628
3719         * c-common.c (pointer_int_sum): Disregard overflow that occured only
3720         because of sign-extension change when converting to sizetype here...
3721         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
3722
3723         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
3724         the folding to constants.  Remove redundant final conversion.
3725         (fold_binary) <associate>: Do not associate if the re-association of
3726         constants alone overflows.
3727         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
3728         to the end of the list.
3729         (multiple_of_p) <COND_EXPR>: New case.
3730
3731 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3732
3733         * opt-functions.awk (opt_sanitized_name): New.
3734         (opt_enum): New.
3735         * optc-gen.awk: Use it
3736         * opth-gen.awk: Use it.
3737
3738 2010-04-13  Martin Jambor  <mjambor@suse.cz>
3739
3740         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
3741         (sra_modify_assign): Delete stmts loading dead data even if racc has no
3742         children.  Call replace_uses_with_default_def_ssa_name to handle
3743         SSA_NAES on lhs.
3744
3745 2010-04-13  Michael Matz  <matz@suse.de>
3746
3747         PR middle-end/43730
3748         * builtins.c (expand_builtin_interclass_mathfn): Also create
3749         a register if the predicate doesn't match.
3750
3751 2010-04-13  Diego Novillo  <dnovillo@google.com>
3752
3753         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
3754         * c-pch.c: Include timevar.h.
3755         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
3756         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
3757         * ggc-common.c: Include timevar.h.
3758         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
3759         * timevar.def (TV_PCH_SAVE): Define.
3760         (TV_PCH_CPP_SAVE): Define.
3761         (TV_PCH_PTR_REALLOC): Define.
3762         (TV_PCH_PTR_SORT): Define.
3763         (TV_PCH_RESTORE): Define.
3764         (TV_PCH_CPP_RESTORE): Define.
3765
3766 2010-04-13  Michael Matz  <matz@suse.de>
3767
3768         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
3769         into MINUS_EXPRs.
3770         (can_reassociate_p): New function.
3771         (break_up_subtract_bb, reassociate_bb): Use it.
3772
3773 2010-04-13  Richard Guenther  <rguenther@suse.de>
3774
3775         PR bootstrap/43737
3776         * builtins.c (c_readstr): Fix assert.
3777
3778 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
3779
3780         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
3781         when generating cltd insn.
3782
3783         (*ashl<mode>3_1): Remove special handling for register operand 2.
3784         (*ashlsi3_1_zext): Ditto.
3785         (*ashlhi3_1): Ditto.
3786         (*ashlhi3_1_lea): Ditto.
3787         (*ashlqi3_1): Ditto.
3788         (*ashlqi3_1_lea): Ditto.
3789         (*<shiftrt_insn><mode>3_1): Ditto.
3790         (*<shiftrt_insn>si3_1_zext): Ditto.
3791         (*<shiftrt_insn>qi3_1_slp): Ditto.
3792         (*<rotate_insn><mode>3_1): Ditto.
3793         (*<rotate_insn>si3_1_zext): Ditto.
3794         (*<rotate_insn>qi3_1_slp): Ditto.
3795
3796 2010-04-13  Richard Guenther  <rguenther@suse.de>
3797
3798         * tree-ssa-structalias.c (callused_id): Remove.
3799         (call_stmt_vars): New.
3800         (get_call_vi): Likewise.
3801         (lookup_call_use_vi): Likewise.
3802         (lookup_call_clobber_vi): Likewise.
3803         (get_call_use_vi): Likewise.
3804         (get_call_clobber_vi): Likewise.
3805         (make_transitive_closure_constraints): Likewise.
3806         (handle_const_call): Adjust to do per-call call-used handling.
3807         (handle_pure_call): Likewise.
3808         (find_what_var_points_to): Remove general callused handling.
3809         (init_base_vars): Likewise.
3810         (init_alias_vars): Initialize call_stmt_vars.
3811         (compute_points_to_sets): Process call-used and call-clobbered
3812         vars for call statements.
3813         (delete_points_to_sets): Free call_stmt_vars.
3814
3815 2010-04-13  Richard Guenther  <rguenther@suse.de>
3816
3817         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
3818         Only add RW dependence for dependence distance zero.
3819         Adjust maximal vectorization factor according to dependences.
3820         Move alignment handling ...
3821         (vect_find_same_alignment_drs): ... here.  New function.
3822         (vect_analyze_data_ref_dependences): Adjust.
3823         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
3824         (vect_analyze_data_refs): Adjust minimal vectorization factor
3825         according to data references.
3826         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
3827         dependences before determining the vectorization factor.
3828         Analyze alignment after determining the vectorization factor.
3829         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
3830         dependences before alignment.
3831         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
3832         Adjust prototype.
3833         (vect_analyze_data_refs): Likewise.
3834         (MAX_VECTORIZATION_FACTOR): New define.
3835
3836 2010-04-13  Duncan Sands  <baldrick@free.fr>
3837
3838         * except.h (lang_eh_type_covers): Remove.
3839         * except.c (lang_eh_type_covers): Likewise.
3840
3841 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3842             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3843
3844         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
3845         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
3846         UNITS_PER_LONG where it is ABI relevant.
3847         (s390_return_addr_rtx): Likewise.
3848         (s390_back_chain_rtx): Likewise.
3849         (s390_frame_area): Likewise.
3850         (s390_frame_info): Likewise.
3851         (s390_initial_elimination_offset): Likewise.
3852         (save_gprs): Likewise.
3853         (s390_emit_prologue): Likewise.
3854         (s390_emit_epilogue): Likewise.
3855         (s390_function_arg_advance): Likewise.
3856         (s390_function_arg): Likewise.
3857         (s390_va_start): Likewise.
3858         (s390_gimplify_va_arg): Likewise.
3859         (s390_function_profiler): Likewise.
3860         (s390_optimize_prologue): Likewise.
3861         (s390_rtx_costs): Likewise.
3862         (s390_secondary_reload): Likewise.
3863         (s390_promote_function_mode): Likewise.
3864         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
3865         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
3866         registers available.
3867         (s390_unwind_word_mode): New function.
3868         (s390_function_value): Split 64 bit values into register pair if
3869         used as return value.
3870         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
3871         function call parameters.  Handle parallels.
3872         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
3873         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
3874         (DWARF_CIE_DATA_ALIGNMENT): New macro.
3875         (s390_expand_setmem): Remove unused variable src_addr.
3876         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
3877         deal with 64 bit registers.
3878         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
3879         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
3880         (UNITS_PER_LONG): New macro.
3881         * libjava/include/s390-signal.h: Define extended ucontext
3882         structure containing the upper halfs of the 64 bit registers.
3883
3884 2010-04-13  Simon Baldwin  <simonb@google.com>
3885
3886         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
3887
3888 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
3889
3890         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
3891         rvalue on the RHS if the LHS is of a non-renamable type.
3892         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
3893
3894 2010-04-13  Matthias Klose  <doko@ubuntu.com>
3895
3896         * gcc.c (cc1_options): Handle -iplugindir before processing
3897         the cc1 spec. Only add -iplugindir once.
3898         (cpp_unique_options): Add -iplugindir option if -fplugin* options
3899         found.
3900         * common.opt (iplugindir): Remove `Separate' property, initialize.
3901         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
3902         option.
3903         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
3904         (distclean): Remove plugin dir.
3905         * doc/invoke.texi: Document -iplugindir.
3906
3907 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
3908
3909         * doc/plugins.texi (Loading Plugins): Document short
3910         -fplugin=foo option.
3911         (Plugin API): Mention default_plugin_dir_name function.
3912
3913         * gcc.c (find_file_spec_function): Add new declaration.
3914         (static_spec_func): Use it for "find-file".
3915         (find_file_spec_function): Add new function.
3916         (cc1_options): Add -iplugindir option if -fplugin* options found.
3917
3918         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
3919
3920         * plugin.c (add_new_plugin): Updated comment, and handle short
3921         plugin name.
3922         (default_plugin_dir_name): Added new function.
3923
3924         * common.opt (iplugindir): New option to set the plugin directory.
3925
3926 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
3927
3928         * config/i386/i386.md (any_rotate): New code iterator.
3929         (rotate_insn): New code attribute.
3930         (rotate): Ditto.
3931         (SWIM124): New mode iterator.
3932         (<rotate_insn>ti3): New expander.
3933         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
3934         any_rotate code iterator.
3935         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
3936         using any_rotate code iterator and SWIM124 mode iterator.
3937         (ix86_rotlti3): New insn_and_split pattern.
3938         (ix86_rotrti3): Ditto.
3939         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
3940         ix86_rotl{di,ti}3 patterns.
3941         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
3942         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
3943         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
3944         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
3945         code iterator and SWI mode iterator.
3946         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
3947         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
3948         code iterator.
3949         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
3950         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
3951         (bswap rotatert splitter): Add splitter.
3952         (bswap splitter): Macroize splitter using any_rotate code iterator.
3953         Add insn predicate to split only for TARGET_USE_XCHGB or when
3954         optimizing function for size.
3955
3956 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
3957
3958         * config/pa/pa.c (emit_move_sequence): Remove use of
3959         deleted variable flag_argument_noalias.
3960
3961 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3962
3963         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
3964         configurations.
3965         Add to unsupported targets list.
3966         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
3967         sparc*-sun-solaris2.[567]* from target lists.
3968         * configure: Regenerate.
3969         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
3970         removal.
3971         Remove Solaris 7 patch references.
3972         (Specific, sparc-sun-solaris2.7): Removed.
3973         (sparc-sun-solaris2*): Update Solaris 7 example.
3974         (sparc64-*-solaris2*): Likewise.
3975
3976 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3977
3978         * config.build (alpha*-dec-osf4*): Remove.
3979         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
3980         of obsolete configurations.
3981         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
3982         support.
3983         * config/alpha/t-osf4: Renamed to ...
3984         * config/alpha/t-osf5: ... this.
3985         * config/alpha/osf.h: Renamed to ...
3986         * config/alpha/osf5.h: ... this.
3987         Merged old osf5.h contents.
3988         Update comments.
3989         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
3990         (EXTRA_SPECS): Removed.
3991         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
3992         reflect removal of Tru64 UNIX V4.0/V5.0 support.
3993         Document that.
3994
3995 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3996
3997         * doc/contrib.texi (Contributors, Rainer Orth): Update.
3998
3999 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
4000
4001         PR/43702
4002         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
4003         __thiscall convention.
4004
4005 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
4006
4007         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
4008         orig_base.
4009         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
4010
4011 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
4012
4013         * function.c (assign_parms_initialize_all): Add unused attribute
4014         to fntype.
4015
4016 2010-04-12  Richard Guenther  <rguenther@suse.de>
4017
4018         * gsstruct.def (GSS_CALL): New.
4019         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
4020         * gimple.h: Include tree-ssa-alias.h.
4021         (struct gimple_statement_call): New.
4022         (union gimple_statement_struct_d): Add gimple_call member.
4023         (gimple_call_reset_alias_info): Declare.
4024         (gimple_call_use_set): New function.
4025         (gimple_call_clobber_set): Likewise.
4026         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
4027         * gimple.c (gimple_call_reset_alias_info): New function.
4028         (gimple_build_call_1): Call it.
4029         * lto-streamer-in.c (input_gimple_stmt): Likewise.
4030         * tree-inline.c (remap_gimple_stmt): Likewise.
4031         (expand_call_inline): Remove callused handling.
4032         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
4033         * tree-dfa.c (dump_variable): Likewise.
4034         * tree-parloops.c (parallelize_loops): Likewise.
4035         * tree-ssa.c (init_tree_ssa): Likewise.
4036         (delete_tree_ssa): Likewise.
4037         * tree-flow-inline.h (is_call_used): Remove.
4038         * tree-flow.h (struct gimple_df): Remove callused member.
4039         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
4040         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
4041         (ref_maybe_used_by_call_p_1): Simplify.
4042         (call_may_clobber_ref_p_1): Likewise.
4043         * tree-ssa-structalias.c (compute_points_to_sets): Set
4044         the call stmt used and clobbered sets.
4045         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
4046         (find_tail_calls): Verify the tail call.
4047
4048 2010-04-12  Richard Guenther  <rguenther@suse.de>
4049
4050         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
4051         single-iteration always-inline inlining.
4052         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
4053         (cgraph_decide_inlining): Do not handle always-inline specially.
4054         (try_inline): Remove always-inline cycle detection special case.
4055         Do not recurse on always-inlines.
4056         (cgraph_early_inlining): Do not iterate if not optimizing.
4057         (cgraph_gate_early_inlining): remove.
4058         (pass_early_inline): Run unconditionally.
4059         (gate_cgraph_decide_inlining): New function.
4060         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
4061         not inlining or optimizing.
4062         (cgraph_decide_inlining_of_small_functions): Also consider
4063         always-inline functions.
4064         (cgraph_default_inline_p): Return true for nodes which should
4065         disregard inline limits.
4066         (estimate_function_body_sizes): Assume zero size and time for
4067         nodes which are marked as disregarding inline limits.
4068         (cgraph_decide_recursive_inlining): Do not perform recursive
4069         inlining on always-inline nodes.
4070
4071 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
4072
4073         PR bootstrap/43699
4074         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
4075         for exprs satisfying handled_component_p.
4076
4077 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
4078
4079         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
4080         non-constant aggregate elements.
4081
4082         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
4083         is a real initialization.
4084
4085 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
4086
4087         PR c/36774
4088         * c-decl.c (start_function): Move forward check for nested function.
4089
4090 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4091
4092         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
4093         * config/sh/sh.c: Include reload.h.
4094         (sh_legitimize_reload_address): New.
4095         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
4096         sh_legitimize_reload_address.
4097
4098 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
4099
4100         * config/sh/sh.md (*movqi_pop): New insn pattern.
4101         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
4102
4103 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
4104
4105         * config/i386/i386.md (any_shiftrt): New code iterator.
4106         (shiftrt_insn): New code attribute.
4107         (shiftrt): Ditto.
4108         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
4109         using any_shiftrt code iterator.
4110         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
4111         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
4112         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
4113         pattern from corresponding peephole2 patterns.
4114         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
4115         using any_shiftrt code iterator.
4116         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
4117         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
4118         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
4119         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
4120         *{ashr,lshr}<mode>3_cmp_zext.
4121         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
4122
4123 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
4124
4125         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
4126         scratch register.
4127         (*lshr<mode>3_cconly): Ditto.
4128
4129 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
4130
4131         * config/i386/i386.md (lshr<mode>3): Macroize expander from
4132         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
4133         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
4134         pattern from *lshr{di,ti}3_1 and corresponding splitters using
4135         DWI mode iterator.
4136         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
4137         from corresponding peephole2 patterns.
4138         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
4139         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
4140         and *lshrdi3_1_rex64 using SWI mode iterator.
4141         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
4142         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
4143         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
4144         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
4145         and *lshrdi3_cmp_rex64 using SWI mode iterator.
4146         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
4147         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
4148         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
4149         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
4150         SWI mode iterator.
4151
4152 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
4153
4154         * config/i386/i386.md (ashr<mode>3): Macroize expander from
4155         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
4156         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
4157         pattern from *ashr{di,ti}3_1 and corresponding splitters using
4158         DWI mode iterator.
4159         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
4160         from corresponding peephole2 patterns.
4161         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
4162         (ashrsi3_cvt): Rename from ashrsi3_31.
4163         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
4164         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
4165         and x86_64_shift_adj_3 using SWI48 mode iterator.
4166         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
4167         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
4168         and *ashrdi3_1_rex64 using SWI mode iterator.
4169         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
4170         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
4171         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
4172         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
4173         and *ashrdi3_cmp_rex64 using SWI mode iterator.
4174         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
4175         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
4176         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
4177         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
4178         SWI mode iterator.
4179         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
4180         * config/i386/i386.c (ix86_split_ashr): Update for renamed
4181         x86_shift<mode>_adj_3 expanders.
4182
4183 2010-04-10  Wei Guozhi  <carrot@google.com>
4184
4185         PR target/42601
4186         * config/arm/arm.c (arm_pic_static_addr): New function.
4187         (legitimize_pic_address): Call arm_pic_static_addr when it detects
4188         a static symbol.
4189         (arm_output_addr_const_extra): Output expression for new pattern.
4190         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
4191
4192 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
4193
4194         * ira-costs.c (record_reg_classes): Ignore alternatives that are
4195         not enabled.
4196
4197         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
4198         * web.c: Include "insn-config.h" and "recog.h".
4199         (union_match_dups): New function.
4200         (web_main): Call it.
4201         (union_defs): Don't try to recognize match_dups.
4202
4203         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
4204         if doing so would replace the entire pattern.
4205
4206 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
4207
4208         PR target/43707
4209         PR target/43709
4210         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
4211         and splitter pattern.  Change splitter operand 1 predicate to
4212         nonmemory_operand.
4213
4214 2010-04-09  Martin Jambor  <mjambor@suse.cz>
4215
4216         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
4217         lattices are addresses of CONST_DECLs with the same initial value.
4218         (ipcp_print_all_lattices): Print values of CONST_DECLs.
4219         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
4220
4221 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
4222             Bernd Schmidt  <bernds@codesourcery.com>
4223
4224         * loop-invariant.c (replace_uses): New static function.
4225         (move_invariant_reg): Use it to ensure we can replace the uses.
4226
4227 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
4228
4229         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
4230         function template.
4231         (picochip_override_options): Enable section anchors only above -O1.
4232         (picochip_reorg): Fixed a couple of build warnings.
4233
4234 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4235
4236         * configure.ac (plugin -rdynamic test): Log result.
4237         * configure: Regenerate.
4238         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
4239         (RDYNAMIC_SPEC): Define.
4240         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
4241
4242 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4243
4244         * configure.ac: Determine Sun ld version numbers.
4245         (comdat_group): Restrict GNU ld version checks to gld.
4246         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
4247         (enable_comdat): Support --enable-comdat.
4248         * configure: Regenerate.
4249         * doc/install.texi (Configuration): Document --enable-comdat.
4250
4251 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4252
4253         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
4254         * config/sol2-gld.h: ... here.
4255         * config.gcc (sparc*-*-solaris2*): Reflect this.
4256         (i[34567]86-*-solaris2*): Use it.
4257
4258 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
4259
4260         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
4261         setup_clocks_p.
4262         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
4263
4264 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4265
4266         PR 42965
4267         * diagnostic.c (diagnostic_initialize): Initialize
4268         some_warnings_are_errors.
4269         (diagnostic_finish): New.
4270         (diagnostic_action_after_output): Call it before exiting.
4271         (diagnostic_report_diagnostic): Do not print message here. Set
4272         some_warnings_are_errors.
4273         * diagnostic.h (diagnostic_context): Delete
4274         issue_warnings_are_errors_message. Add some_warnings_are_errors.
4275         (diagnostic_finish): Declare.
4276         * toplev.c (toplev_main): Call it before exit.
4277
4278 2010-04-09  Jason Merrill  <jason@redhat.com>
4279
4280         PR c++/42623
4281         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
4282         for incomplete type.
4283
4284         PR c++/41788
4285         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
4286         based on a warning flag.
4287
4288 2010-04-09  Richard Guenther  <rguenther@suse.de>
4289
4290         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
4291
4292 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
4293
4294         PR bootstrap/43684
4295         * varasm.c (default_assemble_visibility): Wrap vars that are
4296         set, but unused, by targets without GAS.
4297         * config/rs6000/rs6000.c: (paired_emit_vector_compare):
4298         Remove set, but unused, vars.
4299         (rs6000_legitimize_tls_address): Likewise.
4300         (altivec_expand_dst_builtin): Likewise.
4301         * config/darwin.c (machopic_classify_symbol): Likewise.
4302         (machopic_indirection_name): Likewise.
4303
4304 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
4305
4306         * config/i386/i386.md (DWI): New mode iterator.
4307         (S): New mode attribute.
4308         (shift_operand): Ditto.
4309         (shift_immediate_operand): Ditto.
4310         (ashl_input_operand): Ditto.
4311         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
4312         using SDWIM mode iterator.
4313         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
4314         pattern from *ashl{di,ti}3_1 and corresponding splitters using
4315         DWI mode iterator.
4316         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
4317         from corresponding peephole2 patterns.
4318         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
4319         and x86_64_shift_adj_1 using SWI48 mode iterator.
4320         (x86_shift<mode>_adj_2): Ditto.
4321         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
4322         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
4323         using SWI48 mode iterator.
4324         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
4325         *ashldi3_cmp_rex64 using SWI mode iterator.
4326         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
4327         *ashldi3_cconly_rex64 using SWI mode iterator.
4328         * config/i386/i386.c (ix86_split_ashl): Update for renamed
4329         x86_shift<mode>_adj_{1,2}.
4330         (ix86_split_ashr): Ditto.
4331         (ix86_split_lshr): Ditto.
4332
4333 2010-04-09  Richard Guenther  <rguenther@suse.de>
4334
4335         * target.h (builtin_conversion): Pass in input and output types.
4336         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
4337         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
4338         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
4339         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
4340
4341         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
4342         Handle AVX modes.
4343         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
4344
4345 2010-04-09  Richard Guenther  <rguenther@suse.de>
4346
4347         PR target/43152
4348         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
4349
4350 2010-04-09  Richard Guenther  <rguenther@suse.de>
4351
4352         * tree-vectorizer.h (struct _stmt_vec_info): Document
4353         that vectype is the type of the LHS.
4354         (supportable_widening_operation, supportable_narrowing_operation):
4355         Get both input and output vector types as arguments.
4356         (vect_is_simple_use_1): Declare.
4357         (get_same_sized_vectype): Likewise.
4358         * tree-vect-loop.c (vect_determine_vectorization_factor):
4359         Set STMT_VINFO_VECTYPE to the vector type of the def.
4360         (vectorizable_reduction): Adjust.
4361         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
4362         Adjust.  Specify the output vector type.
4363         (vect_pattern_recog_1): Adjust.
4364         * tree-vect-stmts.c (get_same_sized_vectype): New function.
4365         (vectorizable_call): Adjust.
4366         (vectorizable_conversion): Likewise.
4367         (vectorizable_operation): Likewise.
4368         (vectorizable_type_demotion): Likewise.
4369         (vectorizable_type_promotion): Likewise.
4370         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
4371         the def.
4372         (vect_is_simple_use_1): New function.
4373         (supportable_widening_operation): Get both input and output
4374         vector types.
4375         (supportable_narrowing_operation): Likewise.
4376         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
4377
4378 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
4379
4380         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
4381         __thiscall and _thiscall as predefined macros.
4382         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
4383         thiscall attribute handling.
4384         (ix86_comp_type_attributes): Likewise.
4385         (ix86_function_regparm): Likewise.
4386         (ix86_return_pops_args): Likewise.
4387         (init_cumulative_args): Likewise.
4388         (find_drap_reg): Likewise.
4389         (ix86_static_chain): Likewise.
4390         (x86_this_parameter): Likewise.
4391         (x86_output_mi_thunk): Likewise.
4392         (ix86_attribute_table): Add description for thiscall attribute.
4393         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
4394         * doc/extend.texi: Add documentation for thiscall.
4395
4396 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4397
4398         PR c++/28584
4399         * c.opt (Wint-to-pointer-cast): Available in C++.
4400         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
4401
4402 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
4403
4404         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
4405         * calls.c (expand_call): Pass the function type to aggregate_value_p.
4406         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
4407         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
4408         function type instead.  Reorder and simplify checks.
4409
4410         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
4411
4412 2010-04-08  Jing Yu  <jingyu@google.com>
4413             Zdenek Dvorak  <ook@ucw.cz>
4414
4415         PR tree-optimization/42720
4416         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
4417         loop unswitch conditions here from ...
4418         (tree_unswitch_single_loop): ... here.
4419
4420 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
4421
4422         * tree-if-conv.c: Fix comments and simplify logic.
4423
4424 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
4425
4426         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
4427         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
4428         (main_tree_if_conversion): Update call to tree_if_conversion.
4429
4430 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4431
4432         PR 42485
4433         * doc/invoke.texi (-b,-V): Delete.
4434         * doc/tm.texi: Do not mention -b.
4435         * gcc.c (display_help): Delete -b and -V.
4436         (process_command): Delete -b and -V.
4437         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
4438
4439 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
4440             Wolfgang Gellerich  <gellerich@de.ibm.com>
4441
4442         Implement target hook for loop unrolling
4443         * target.h (loop_unroll_adjust): Add a new target hook function.
4444         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
4445         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
4446         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
4447         (s390_loop_unroll_adjust): Implement the new target hook for s390.
4448         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
4449         target hook.
4450         (decide_unroll_stupid): Likewise.
4451
4452 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4453
4454         PR target/43643
4455         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
4456
4457 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4458
4459         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
4460         (Specific, *-*-solaris2*): Likewise.
4461         Don't prefer Sun as over GNU as.
4462
4463 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
4464
4465         * config/s390/s390.c (override_options): Adjust the z10 defaults
4466         for max-unroll-times, max-completely-peeled-insns
4467         and max-completely-peel-times.
4468
4469 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4470
4471         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
4472         instructions for z10.
4473         (s390_expand_setmem): Likewise.
4474         (s390_expand_cmpmem): Likewise.
4475
4476 2010-04-08  Richard Guenther  <rguenther@suse.de>
4477
4478         PR tree-optimization/43679
4479         * tree-ssa-pre.c (eliminate): Only propagate copies.
4480
4481 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
4482
4483         PR bootstrap/43681
4484         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
4485         set but not used variable warning.
4486
4487 2010-04-08  Wei Guozhi  <carrot@google.com>
4488
4489         PR target/41653
4490         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
4491         (arm_size_rtx_costs): Call the new function when optimized for size.
4492
4493 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
4494
4495         PR debug/43670
4496         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
4497         op0 is not a MEM, just return NULL instead of assertion
4498         failure.
4499         (discover_nonconstant_array_refs): Don't walk debug stmts.
4500
4501 2010-04-08  Doug Kwan  <dougkwan@google.com>
4502
4503         * configure.ac: Recognize gold and do not use its version number
4504         to test ld features.
4505         * configure: Regenerate.
4506
4507 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
4508
4509         PR middle-end/40815
4510         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
4511         (negate_value): Move code to push elements to broken_up_substracts ...
4512         (eliminate_plus_minus_pair): ... here.  Push operands that have no
4513         negative pair to plus_negates.
4514         (repropagate_negates, init_reassoc, fini_reassoc): Update.
4515
4516 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4517
4518         * doc/install.texi (Configuration): Move description of
4519         --enable-lto, --with-libelf*, --enable-gold from Java section to
4520         general section.
4521
4522         * doc/generic.texi (Working with declarations)
4523         (Function Properties, C and C++ Trees): Fix typos.
4524         * doc/sourcebuild.texi (Top Level): Likewise.
4525
4526 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
4527
4528         PR c/18624
4529         * tree.h (DECL_READ_P): Define.
4530         (struct tree_decl_common): Add decl_read_flag.
4531         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
4532         a set but not used warning.
4533         (merge_decls): Merge DECL_READ_P flag.
4534         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
4535         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
4536         * c-common.c (handle_used_attribute, handle_unused_attribute):
4537         Likewise.
4538         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
4539         New prototypes.
4540         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
4541         New functions.
4542         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
4543         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
4544         c_parser_binary_expression, c_parser_cast_expression,
4545         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
4546         Call default_function_array_read_conversion instead of
4547         default_function_array_conversion where needed.
4548         (c_parser_unary_expression, c_parser_conditional_expression,
4549         c_parser_postfix_expression_after_primary, c_parser_initelt):
4550         Likewise.  Call mark_exp_read where needed.
4551         (c_parser_statement_after_labels, c_parser_asm_operands,
4552         c_parser_typeof_specifier, c_parser_sizeof_expression,
4553         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
4554         where needed.
4555         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
4556         New.
4557         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
4558         (warn_unused_but_set_parameter): Default to warn_unused
4559         && extra_warnings.
4560         * doc/invoke.texi: Document -Wunused-but-set-variable and
4561         -Wunused-but-set-parameter.
4562
4563         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
4564         used count variable.
4565         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
4566         when operandN variables aren't used in the body of the expander
4567         or splitter.
4568         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
4569         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
4570         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
4571         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
4572         FOR_EACH_IMM_USE_ON_STMT): Likewise.
4573         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
4574         * tree.c (PROCESS_ARG): Likewise.
4575
4576 2010-04-07  Simon Baldwin  <simonb@google.com>
4577
4578         * diagnostic.h (diagnostic_override_option_index): New macro to
4579         set a diagnostic's option_index.
4580         * c-tree.h (c_cpp_error): Add warning reason argument.
4581         * opts.c (_warning_as_error_callback): New.
4582         (register_warning_as_error_callback): Store callback for
4583         warnings enabled via enable_warning_as_error.
4584         (enable_warning_as_error): Call callback, minor code tidy.
4585         * opts.h (register_warning_as_error_callback): Declare.
4586         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
4587         response to -Werror=.
4588         (c_common_init_options): Register warning_as_error_callback in opts.c.
4589         * common.opt: Add -Wno-cpp option.
4590         * c-common.c (struct reason_option_codes_t): Map cpp warning
4591         reason codes to gcc option indexes.
4592         * (c_option_controlling_cpp_error): New function, lookup the gcc
4593         option index for a cpp warning reason code.
4594         * (c_cpp_error): Add warning reason argument, call
4595         c_option_controlling_cpp_error for diagnostic_override_option_index.
4596         * doc/invoke.texi: Document -Wno-cpp.
4597
4598 2010-04-07  Richard Guenther  <rguenther@suse.de>
4599
4600         * ipa-reference.c (mark_load): Use get_base_address.
4601         (mark_store): Likewise.
4602
4603         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
4604         inserting GIMPLE_NOPs into the IL.
4605         * tree-ssa-structalias.c (get_constraint_for_component_ref):
4606         Explicitly strip handled components and indirect references.
4607
4608         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
4609         folding address expressions.
4610         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
4611         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
4612         operand_equal_p to compare decls.
4613         (ptr_deref_may_alias_decl_p): Likewise.
4614         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
4615         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
4616         Handle reversed comparison ops.
4617         * tree-sra.c (asm_visit_addr): Use get_base_address.
4618         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
4619         * ipa-reference.c (mark_address): Use get_base_address.
4620
4621 2010-04-07  Richard Guenther  <rguenther@suse.de>
4622
4623         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
4624         Propagate constants everywhere.
4625
4626 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
4627
4628         PR debug/43516
4629         * tree.c (MAX_INT_CACHED_PREC): Define.
4630         (nonstandard_integer_type_cache): New array.
4631         (build_nonstandard_integer_type): Cache results for precision
4632         <= MAX_INT_CACHED_PREC.
4633
4634 2010-04-07  Richard Guenther  <rguenther@suse.de>
4635
4636         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
4637         -fargument-noalias-global, -fargument-noalias-anything): Remove.
4638         * common.opt: Likewise.
4639         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
4640         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
4641         (nonoverlapping_memrefs_p): Likewise.
4642         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
4643         * opts.c (common_handle_option): Handle OPT_fargument_alias,
4644         OPT_fargument_noalias, OPT_fargument_noalias_anything and
4645         OPT_fargument_noalias_global for backward compatibility.
4646
4647 2010-04-07  Richard Guenther  <rguenther@suse.de>
4648
4649         PR tree-optimization/43270
4650         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
4651         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
4652         * tree-ssa-pre.c (phi_translate_1): Adjust.
4653         (fully_constant_expression): Split out vn_reference handling to ...
4654         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
4655         Fold reads from constant strings.
4656         (vn_reference_lookup): Handle fully constant references.
4657         (vn_reference_lookup_pieces): Likewise.
4658         * Makefile.in (expmed.o-warn): Add -Wno-error.
4659
4660 2010-04-07  Martin Jambor  <mjambor@suse.cz>
4661
4662         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
4663
4664 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
4665
4666         PR driver/41594
4667         * gcc.c: Add -static-libstdc++ to list of recognized options.
4668
4669 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4670
4671         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
4672
4673 2010-04-07  Richard Guenther  <rguenther@suse.de>
4674
4675         PR middle-end/42617
4676         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
4677         bases build simple mem attributes to retain points-to information.
4678
4679 2010-04-07  Richard Guenther  <rguenther@suse.de>
4680
4681         PR middle-end/42617
4682         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
4683         preserve points-to related information.
4684
4685 2010-04-07  Richard Guenther  <rguenther@suse.de>
4686
4687         PR middle-end/42617
4688         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
4689         discard plain indirect references.
4690         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
4691         * tree.c (tree_nop_conversion): Likewise.
4692
4693 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
4694
4695         PR debug/43628
4696         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
4697
4698 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
4699
4700         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
4701         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
4702
4703 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
4704
4705         * tree-if-conv.c: Fix indentation and comments.
4706
4707 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
4708
4709         * tree-if-conv.c: Sort static functions in topological order.
4710
4711 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
4712
4713         * tree-if-conv.c: Fix indentation and comments.
4714
4715 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
4716
4717         PR middle-end/43519
4718         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
4719         lang_hooks.types.type_for_size instead of
4720         build_nonstandard_integer_type.
4721         When converting an unsigned type to signed, double its precision.
4722         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
4723         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
4724         (graphite_create_new_loop_guard): When ub + 1 wraps around,
4725         use lb <= ub.
4726
4727 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
4728
4729         PR middle-end/43519
4730         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
4731         POINTER_PLUS_EXPR for pointer types.
4732
4733 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
4734
4735         PR middle-end/43519
4736         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
4737         * graphite-clast-to-gimple.c: Include langhooks.h.
4738         (max_signed_precision_type): New.
4739         (max_precision_type): Takes two types as arguments.
4740         (precision_for_value): New.
4741         (precision_for_interval): New.
4742         (gcc_type_for_interval): New.
4743         (gcc_type_for_value): New.
4744         (gcc_type_for_clast_term): New.
4745         (gcc_type_for_clast_red): New.
4746         (gcc_type_for_clast_bin): New.
4747         (gcc_type_for_clast_expr): Split up into several functions.
4748         (gcc_type_for_clast_eq): Rewritten.
4749         (compute_bounds_for_level): New.
4750         (compute_type_for_level_1): New.
4751         (compute_type_for_level): New.
4752         (gcc_type_for_cloog_iv): Removed.
4753         (gcc_type_for_iv_of_clast_loop): Rewritten.
4754         (graphite_create_new_loop): Compute the lower and upper bound types
4755         with gcc_type_for_clast_expr.
4756         (graphite_create_new_loop_guard): Same.
4757         (find_cloog_iv_in_expr): Removed.
4758         (compute_cloog_iv_types_1): Removed.
4759         (compute_cloog_iv_types): Removed.
4760         (gloog): Do not call compute_cloog_iv_types.
4761         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
4762         GBB_CLOOG_IV_TYPES.
4763         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
4764         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
4765         (GBB_CLOOG_IV_TYPES): Removed.
4766
4767 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
4768
4769         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
4770         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
4771         (detect_commutative_reduction): Same.
4772
4773 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
4774
4775         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
4776         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
4777         argument.
4778         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
4779         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
4780         (rewrite_commutative_reductions_out_of_ssa): Same.
4781         * passes.c (execute_function_todo): Call verify_ssa for every pass
4782         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
4783         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
4784         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
4785         with an extra argument.
4786         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
4787         verify_ssa only when the extra argument is true.
4788         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
4789         with an extra argument.
4790         (tree_transform_and_unroll_loop): Same.
4791
4792 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
4793
4794         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
4795         for all the passes of the LNO having LOOP_CLOSED_SSA.
4796         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
4797         * tree-loop-distribution.c (pass_loop_distribution): Same.
4798         * tree-pass.h (TODO_verify_loops): Removed.
4799         * tree-ssa-loop.c (pass_tree_loop_init): Same.
4800         (pass_lim): Same.
4801         (pass_tree_unswitch): Same.
4802         (pass_predcom): Same.
4803         (pass_vectorize): Same.
4804         (pass_linear_transform): Same.
4805         (pass_graphite_transforms): Same.
4806         (pass_iv_canon): Same.
4807         (pass_complete_unroll): Same.
4808         (pass_complete_unrolli): Same.
4809         (pass_parallelize_loops): Same.
4810         (pass_loop_prefetch): Same.
4811         (pass_iv_optimize): Same.
4812
4813 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
4814
4815         PR middle-end/32824
4816         * passes.c (init_optimization_passes): Move pass_lim before
4817         pass_copy_prop and pass_dce_loop.
4818
4819 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
4820
4821         PR target/43667
4822         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
4823         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
4824         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
4825         MULTI_* defines for 4 argument vpermil2p* builtins.
4826
4827 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
4828
4829         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
4830         * config/i386/i386.c (x86_maybe_negate_const_int): New.
4831         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
4832         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
4833         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
4834         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
4835         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
4836         Use x86_maybe_negate_const_int to output insn mnemonic.
4837         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
4838         check from instruction predicate.  Update comments.
4839         * config/i386/sync.md (sync_add<mode>): Use
4840         x86_maybe_negate_const_int to output insn mnemonic.
4841
4842 2010-04-06  Jan Hubicka  <jh@suse.cz>
4843
4844         PR tree-optimization/42906
4845         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
4846         IGNORE_SELF argument.  Set visited_control_parents for fully
4847         processed BBs.
4848         (find_obviously_necessary_stmts): Update call of
4849         mark_control_dependent_edges_necessary.
4850         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
4851
4852 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
4853
4854         * config/i386/i386.md: Remove comment about 'e' and 'E'
4855         operand modifier.
4856
4857 2010-04-06  Richard Guenther  <rguenther@suse.de>
4858
4859         PR tree-optimization/43627
4860         * tree-vrp.c (extract_range_from_unary_expr): Widenings
4861         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
4862         not varying.
4863
4864 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
4865
4866         * BASE-VER: Change to 4.6.0.
4867
4868         PR target/43638
4869         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
4870         handling.
4871
4872 2010-04-06  Richard Guenther  <rguenther@suse.de>
4873
4874         PR middle-end/43661
4875         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
4876
4877 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4878
4879         * doc/invoke.texi (Optimize Options): Document that LTO
4880         won't remove object access purely due to incompatible
4881         declarations.
4882
4883 2010-04-04  Matthias Klose  <doko@ubuntu.com>
4884
4885         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
4886         Initialize variable.
4887
4888 2010-04-03  Richard Guenther  <rguenther@suse.de>
4889
4890         PR middle-end/42509
4891         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
4892         require a non-NULL MEM_OFFSET.
4893
4894 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
4895
4896         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
4897         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
4898         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
4899         config/alpha/predicates.md, config/arm/arm.md,
4900         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
4901         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
4902         config/darwin9.h, config/darwin.c, config/darwin.h,
4903         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
4904         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
4905         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
4906         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
4907         config/mips/mips.md, config/mn10300/mn10300.c,
4908         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
4909         config/rs6000/aix.h, config/rs6000/dfp.md,
4910         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
4911         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
4912         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
4913         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
4914         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
4915         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
4916         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
4917         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
4918         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
4919         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
4920         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
4921         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
4922         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
4923         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
4924         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
4925         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
4926         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
4927         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
4928         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
4929         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
4930         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
4931         opt-functions.awk, opth-gen.awk, params.def, passes.c,
4932         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
4933         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
4934         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
4935         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
4936         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
4937         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
4938         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
4939         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
4940         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
4941         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
4942         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
4943         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
4944         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
4945         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
4946
4947 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4948
4949         PR other/43620
4950         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
4951         * aclocal.m4: Regenerate.
4952
4953 2010-04-02  Richard Guenther  <rguenther@suse.de>
4954
4955         PR tree-optimization/43629
4956         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
4957         if we have seen a constant value.
4958
4959 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
4960
4961         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
4962
4963 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
4964
4965         PR target/43469
4966         * arm.c (legitimize_tls_address): Adjust call to
4967         gen_tls_load_dot_plus_four.
4968         (arm_note_pic_base): New function.
4969         (arm_cannot_copy_insn_p): Use it.
4970         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
4971         constraint.
4972
4973 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4974
4975         PR bootstrap/43531
4976
4977         Revert:
4978         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4979
4980         * Makefile.in ($(out_object_file)): Depend on
4981         gt-$(basename $(notdir $(out_file))).h.
4982
4983 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
4984
4985         * config.gcc (lm32-*-rtems*): Add t-lm32.
4986
4987 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
4988
4989         * config.gcc: Add lm32-*-rtems*.
4990         * config/lm32/rtems.h: New file.
4991
4992 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
4993
4994         PR target/42609
4995         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
4996
4997 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
4998
4999         * dwarf2out.c (output_compilation_unit_header): For
5000         -gdwarf-4 use version 4 instead of version 3.
5001         (output_line_info): For version 4 and above emit additional
5002         maximum ops per insn header field.
5003         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
5004
5005         * dwarf2out.c (is_c_family, is_java): Remove.
5006         (lower_bound_default): New function.
5007         (add_bound_info, gen_descr_array_type_die): Use it.
5008
5009 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
5010
5011         PR debug/43325
5012         * dwarf2out.c (gen_variable_die): Allow debug info for variable
5013         re-declaration when it happens in a function.
5014
5015 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
5016
5017         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
5018         (cgraph_remove_function_insertion_hook): Same.
5019         (cgraph_call_function_insertion_hooks): Same.
5020
5021 2010-04-01  Richard Guenther  <rguenther@suse.de>
5022
5023         PR middle-end/43614
5024         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
5025         and TREE_THIS_VOLATILE.
5026         (copy_ref_info): Likewise.
5027         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
5028         * tree.c (build6_stat): Ignore side-effects of all but arg5
5029         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
5030         TARGET_MEM_REF.
5031
5032 2010-04-01  Richard Guenther  <rguenther@suse.de>
5033
5034         PR tree-optimization/43607
5035         * ipa-type-escape.c (check_call): Do not access non-existing
5036         arguments.
5037
5038 2010-04-01  Richard Guenther  <rguenther@suse.de>
5039
5040         PR middle-end/43602
5041         Revert
5042         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
5043                     Jack Howarth <howarth@bromo.med.uc.edu>
5044
5045         * tree-profile.c (tree_init_ic_make_global_vars): Make static
5046         variables TLS.
5047
5048 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5049
5050         * doc/install.texi (Prerequisites): Document libelf usability on
5051         IRIX 5/6 and Solaris 2.
5052         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
5053         Update GNU as, GNU ld requirements.
5054         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
5055         Document Sun Studio compiler download.
5056         Update and simplify as, ld recommendations.
5057         (Specific, *-*-solaris2.7): Note obsoletion, removal.
5058
5059 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5060
5061         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
5062         with_tune_32 to pentium4.
5063
5064 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
5065
5066         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
5067
5068 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5069
5070         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
5071         obsoletion, removal.
5072         Update IDO URL.
5073         Document GNU as requirement.
5074         Update configure requirements.
5075         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
5076         Recomment IRIX 6.5.18+.
5077         Document IDF/IDL requirement.
5078         Document GNU as requirement.
5079         Document GNU ld bootstrap failure.
5080         Remove freeware.sgi.com reference.
5081
5082 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5083
5084         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
5085         UNIX V4.0, V5.0 obsoletion, removal.
5086         Remove --with-gc=simple reference.
5087         Update VM requirements during bootstrap.
5088         Remove -oldas bootstrap description.
5089         Update binutils reference.
5090         Remove comparison failure note.
5091
5092 2010-03-31  Richard Guenther  <rguenther@suse.de>
5093             Zdenek Dvorak  <ook@ucw.cz>
5094             Sebastian Pop  <sebastian.pop@amd.com>
5095
5096         PR middle-end/43464
5097         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
5098         with multiple arguments.
5099         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
5100
5101 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
5102
5103         * graphite-dependences.c (print_pddr): Call print_pdr with an
5104         extra argument.
5105         * graphite-poly.c (debug_pdr): Add an extra argument for the
5106         verbosity level.
5107         (print_pdr): Same.
5108         (print_pbb_domain): Same.
5109         (print_pbb): Same.
5110         (print_scop_context): Same.
5111         (print_scop): Same.
5112         (print_cloog): Same.
5113         (debug_pbb_domain): Same.
5114         (debug_pbb): Same.
5115         (print_pdrs): Same.
5116         (debug_pdrs): Same.
5117         (debug_scop_context): Same.
5118         (debug_scop): Same.
5119         (debug_cloog): Same.
5120         (print_scop_params): Same.
5121         (debug_scop_params): Same.
5122         (print_iteration_domain): Same.
5123         (print_iteration_domains): Same.
5124         (debug_iteration_domain): Same.
5125         (debug_iteration_domains): Same.
5126         (print_scattering_function): Same.
5127         (print_scattering_functions): Same.
5128         (debug_scattering_function): Same.
5129         (debug_scattering_functions): Same.
5130         * graphite-poly.h (debug_pdr): Update declaration.
5131         (print_pdr): Same.
5132         (print_pbb_domain): Same.
5133         (print_pbb): Same.
5134         (print_scop_context): Same.
5135         (print_scop): Same.
5136         (print_cloog): Same.
5137         (debug_pbb_domain): Same.
5138         (debug_pbb): Same.
5139         (print_pdrs): Same.
5140         (debug_pdrs): Same.
5141         (debug_scop_context): Same.
5142         (debug_scop): Same.
5143         (debug_cloog): Same.
5144         (print_scop_params): Same.
5145         (debug_scop_params): Same.
5146         (print_iteration_domain): Same.
5147         (print_iteration_domains): Same.
5148         (debug_iteration_domain): Same.
5149         (debug_iteration_domains): Same.
5150         (print_scattering_function): Same.
5151         (print_scattering_functions): Same.
5152         (debug_scattering_function): Same.
5153         (debug_scattering_functions): Same.
5154
5155 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
5156
5157         * graphite-poly.c (print_scattering_function_1): New.
5158         (print_scattering_function): Call it.
5159         (print_scop_params): Remove spaces at the end of lines.
5160         (print_cloog): New.
5161         (debug_cloog): New.
5162         * graphite-poly.h (print_cloog): Declared.
5163         (debug_cloog): Declared.
5164
5165 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
5166
5167         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
5168         in loop->header.
5169         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
5170         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
5171         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
5172         to switch between adding the IV bump in loop->latch or in loop->header.
5173
5174 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
5175
5176         * graphite-poly.c (print_scattering_function): Pretty print following
5177         the scoplib format.
5178         (print_pdr): Same.
5179         (print_pbb_domain): Same.
5180         (dump_gbb_cases): Same.
5181         (dump_gbb_conditions): Same.
5182         (print_pdrs): Same.
5183         (print_pbb): Same.
5184         (print_scop_params): Same.
5185         (print_scop_context): Same.
5186         (print_scop): Same.
5187         (print_pbb_body): New.
5188         (lst_indent_to): New.
5189         (print_lst): Start new lines with a #.
5190         * graphite-poly.h (pbb_bb): New.
5191         (pbb_index): Use pbb_bb.
5192         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
5193         disjuncts.
5194         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
5195
5196 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
5197
5198         * dwarf2out.c (size_of_die): For -gdwarf-4 use
5199         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
5200         and 0 instead of 1 for dw_val_class_flag.
5201         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
5202         dw_val_class_range_list, dw_val_class_loc_list,
5203         dw_val_class_lineptr and dw_val_class_macptr, use
5204         DW_FORM_flag_present for dw_val_class_flag and
5205         DW_FORM_exprloc for dw_val_class_loc.
5206         (output_die): For -gdwarf-4 print dw_val_class_loc
5207         size as uleb128 instead of 1 or 2 bytes and don't print
5208         anything for dw_val_class_flag.
5209
5210         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
5211         instead of cselib_lookup following by tweaking locs->setting_insn.
5212
5213         PR bootstrap/43596
5214         * cselib.c (cselib_process_insn): Clear cselib_current_insn
5215         even before returning from label, setjmp call or volatile asm
5216         handling.
5217
5218 2010-03-31  Richard Guenther  <rguenther@suse.de>
5219
5220         PR middle-end/43600
5221         * cgraphunit.c (cgraph_output_in_order): Do not allocate
5222         temporary data on stack.
5223
5224 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5225
5226         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
5227         (PUSHSECTION_ASM_OP): Remove.
5228         (POPSECTION_ASM_OP): Remove.
5229         (PUSHSECTION_FORMAT): Remove.
5230         * config/sol2.h (PUSHSECTION_FORMAT): Define.
5231         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
5232         * config/sol2.c (solaris_output_init_fini): Use it.
5233
5234 2010-03-31  Jie Zhang  <jie@codesourcery.com>
5235
5236         PR 43574
5237         * opt-functions.awk (var_type_struct): Use signed char type
5238         for simple variables.
5239
5240 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5241
5242         * config/sol2.c: Include output.h.
5243         (solaris_assemble_visibility): New function.
5244         * config/t-sol2 (sol2.o): Add output.h dependency.
5245         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
5246         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
5247         Redefine.
5248
5249 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
5250
5251         PR target/43580
5252         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
5253         V2SImode or XFmode on PRE_DEC.
5254
5255         PR debug/43557
5256         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
5257         BLKmode.
5258
5259 2010-03-31  Jie Zhang  <jie@codesourcery.com>
5260
5261         PR 43562
5262         * reload.h (caller_save_initialized_p): Declare.
5263         * toplev.c (backend_init_target): Don't call
5264         init_caller_save but set caller_save_initialized_p to false.
5265         * caller-save.c (caller_save_initialized_p): Define.
5266         (init_caller_save): Check caller_save_initialized_p.
5267         * ira.c (ira): Call init_caller_save if flag_caller_saves.
5268
5269 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5270
5271         PR target/39048
5272         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
5273         and soft-fp/t-softfp to tmake_file.
5274         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
5275         (LIBGCC2_TF_CEXT): Define.
5276         (TF_SIZE): Define.
5277
5278 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
5279
5280         PR debug/42977
5281         * cselib.c (n_useless_values): Document handling of debug locs.
5282         (n_useless_debug_values, n_debug_values): New variables.
5283         (new_elt_loc_list): Don't add to debug values, keep count.
5284         (promote_debug_loc): New.
5285         (cselib_reset_table): Zero new variables.
5286         (entry_and_rtx_equal_p): Promote debug locs.
5287         (discard_useless_locs): Increment n_useless_debug_values for
5288         debug values.
5289         (remove_useless_values): Adjust n_useless_values and n_debug_values
5290         with n_useless_debug_values.
5291         (add_mem_for_addr): Promote debug locs.
5292         (cselib_lookup_mem): Likewise.
5293         (cselib_lookup_addr): Renamed to...
5294         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
5295         (cselib_log_lookup): ... this.  Turn into...
5296         (cselib_lookup_addr): ... new wrapper.
5297         (cselib_lookup_from_insn): New.
5298         (cselib_invalidate_regno): Increment n_useless_debug_values for
5299         debug values.
5300         (cselib_invalidate_mem): Likewise.
5301         (cselib_process_insn): Take n_deleted and n_debug_values into
5302         account to guard remove_useless_value call.
5303         (cselib_finish): Zero n_useless_debug_values.
5304         * cselib.h (cselib_lookup_from_insn): Declare.
5305         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
5306         (sched_analyze_2): Likewise.
5307
5308 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
5309
5310         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
5311         functions.
5312         (adjust_mems): Replace narrowing SUBREG of expression containing
5313         just PLUS, MINUS, MULT and ASHIFT of registers and constants
5314         with operations in the narrower mode.
5315
5316         PR debug/43593
5317         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
5318         regs_invalidated_by_call instead all call_used_reg_set registers.
5319
5320 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
5321
5322         PR middle-end/43430
5323         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
5324         pointer comparisons with types_compatible_p.
5325         * tree-vect-stmts.c (vectorizable_call): Same.
5326         (vectorizable_condition): Same.
5327
5328 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5329
5330         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
5331         stack check if the mask would be zero.
5332
5333 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
5334             Jack Howarth <howarth@bromo.med.uc.edu>
5335
5336         * tree-profile.c (tree_init_ic_make_global_vars): Make static
5337         variables TLS.
5338
5339 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
5340
5341         PR other/25232
5342         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
5343         and __unordtf2.
5344         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
5345         Include ___unordxf2 and ___unordtf2.
5346         * config/i386/libgcc-glibc.ver: Do not define inheritance from
5347         GCC_4.4.0 here.
5348
5349 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
5350
5351         * config/lm32/t-lm32: New file.
5352         * config.gcc: Use the above file when targetting lm32.
5353
5354 2010-03-28  Duncan Sands  <baldrick@free.fr>
5355
5356         * Makefile.in (PLUGIN_HEADERS): Add except.h.
5357
5358 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
5359
5360         PR middle-end/43431
5361         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
5362         Improve vectorization cost model diagnostic.
5363
5364 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
5365
5366         PR middle-end/43436
5367         * tree-vect-data-refs.c (vect_analyze_data_refs): When
5368         compute_data_dependences_for_loop returns false, early exit
5369         and output an extra diagnostic for the failed data reference
5370         analysis.
5371
5372 2010-03-29  Richard Guenther  <rguenther@suse.de>
5373
5374         PR tree-optimization/43560
5375         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
5376         (can_sm_ref_p): Treat stores to readonly locations as trapping.
5377
5378 2010-03-29  Jie Zhang  <jie@codesourcery.com>
5379
5380         PR 43564
5381         * toplev.c (process_options): Set optimization_default_node
5382         and optimization_current_node.
5383         * opts.c (decode_options): Don't set optimization_default_node
5384         and optimization_current_node.
5385
5386 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
5387
5388         * config/rtems.h: Abandon -qrtems_debug.
5389
5390 2010-03-28  Jan Hubicka  <jh@suse.cz>
5391
5392         PR tree-optimization/43505
5393         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
5394         map should not be copied.
5395
5396 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5397
5398         PR middle-end/41674
5399         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
5400         cdtors, set DECL_PRESERVE_P.
5401         * ipa.c (cgraph_externally_visible_p): Return true if declaration
5402         should be preseved.
5403
5404 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
5405
5406         PR tree-optimization/43528
5407         * stor-layout.c (place_field): Check that constant fits into
5408         unsigned HWI when skipping calculation of MS bitfield layout.
5409
5410 2010-03-27  Jan Hubicka  <jh@suse.cz>
5411
5412         PR middle-end/43391
5413         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
5414         notice_global_symbol work.
5415
5416 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
5417
5418         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
5419         instead of dwarf2out_decl.
5420         (struct var_loc_node): Remove section_label field.
5421         (dwarf2out_function_decl): New function.
5422         (dwarf2out_var_location): Don't set section_label field.
5423         (dwarf2out_begin_function): Don't empty decl_loc_table here.
5424
5425 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
5426
5427         PR tree-optimization/43544
5428         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
5429         First argument for builtin vectorized function hook is now a
5430         tree to be able to distinguish between machine specific and
5431         standard builtins.
5432         * targhooks.c (default_builtin_vectorized_function): Ditto.
5433         * targhooks.h (default_builtin_vectorized_function): Ditto.
5434         * target.h (struct gcc_target): Ditto.
5435         * tree-vect-stmts.c (vectorizable_function): Ditto.
5436         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
5437         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
5438         Ditto.
5439
5440 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
5441
5442         PR c/43381
5443         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
5444         nested binding iff it is a FUNCTION_DECL.
5445         (store_parm_decls_newstyle): Pass nested=true to bind for
5446         FUNCTION_DECLs amongst parameters.
5447
5448 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
5449
5450         * var-tracking.c (vt_expand_loc_callback): Don't run
5451         cselib_expand_value_rtx_cb in dummy mode if
5452         cselib_dummy_expand_value_rtx_cb returned false.
5453
5454         * var-tracking.c (emit_note_insn_var_location): For one part
5455         notes with offset 0, don't add EXPR_LIST around the location.
5456         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
5457         add_location_or_const_value_attribute): Adjust for that change.
5458
5459         PR debug/43540
5460         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
5461         into first operand and location into second.
5462         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
5463         dw_cfi_oprnd_loc for DW_CFA_expression.
5464         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
5465         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
5466         assume first argument is regnum and second argument is location.
5467
5468 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
5469
5470         PR target/42113
5471         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
5472         of scratch register to DImode.  Split to DImode comparison operator.
5473         Use SImode subreg of scratch register in the multiplication.
5474         (*cmp_sadd_sidi): Ditto.
5475         (*cmp_ssub_si): Ditto.
5476         (*cmp_ssub_sidi): Ditto.
5477
5478 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
5479
5480         PR target/43524
5481         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
5482         Remove invalid assert and wrong comment.
5483
5484 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
5485
5486         PR debug/43516
5487         * flags.h (final_insns_dump_p): New extern.
5488         * final.c (final_insns_dump_p): New variable.
5489         (rest_of_clean_state): Set it before -fdump-final-insns=
5490         dumping, clear afterwards.
5491         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
5492         MEM_ALIAS_SET on MEMs.
5493
5494 2010-03-26  David S. Miller  <davem@davemloft.net>
5495
5496         * configure.ac: Fix sparc GOTDATA_OP bug check.
5497         * configure: Rebuild.
5498
5499 2010-03-26  Alan Modra  <amodra@gmail.com>
5500
5501         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
5502
5503 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5504
5505         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
5506         TLS_SECTION_ASM_FLAG.
5507
5508 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
5509
5510         PR bootstrap/43511
5511         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
5512         Clear first_function_block_is_cold.
5513
5514         PR c/43385
5515         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
5516         argument if the argument is truth_value_p.
5517
5518 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
5519
5520         * config/rs6000/constraints.md: Update copyright year for my changes.
5521
5522         PR target/43484
5523         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
5524         used in reg+reg addressing, swap registers.
5525
5526 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
5527
5528         PR debug/43293
5529         * target.h (struct gcc_target): Add code_end hook.
5530         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
5531         if not yet defined.
5532         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
5533         * toplev.c (compile_file): Call targetm.asm_out.code_end
5534         hook before unwind info/debug info output.
5535         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
5536         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
5537         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
5538         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
5539         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
5540         * config/i386/i386.c (ix86_file_end): Renamed to...
5541         (ix86_code_end): ... this.  Make static.  Don't call
5542         file_end_indicate_exec_stack.  Emit unwind info using
5543         final_start_function/final_end_function.
5544         (darwin_x86_file_end): Remove.
5545         (TARGET_ASM_CODE_END): Define.
5546         * config/i386/i386.h (TARGET_ASM_FILE_END,
5547         NEED_INDICATE_EXEC_STACK): Don't define.
5548         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
5549         (TARGET_ASM_FILE_END): Define to darwin_file_end.
5550         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
5551         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
5552
5553         PR target/43498
5554         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
5555         at the beginning and final_end_function at the end.
5556         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
5557
5558 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5559
5560         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
5561         and Sun as TLS syntax.
5562         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
5563         * configure: Regenerate.
5564         * config.in: Regenerate.
5565         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
5566         (default_elf_asm_named_section): Use it.
5567         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
5568         (i386_output_dwarf_dtprel): Likewise.
5569         (output_addr_const_extra): Likewise.
5570         (output_pic_addr_const): Lowercase @GOTTPOFF.
5571         (output_addr_const_extra): Likewise.
5572         (output_pic_addr_const): Lowercase @GOTNTPOFF.
5573         (output_addr_const_extra): Likewise.
5574         (output_pic_addr_const): Lowercase @INDNTPOFF.
5575         (output_addr_const_extra): Likewise.
5576         (output_pic_addr_const): Lowercase @NTPOFF.
5577         (output_addr_const_extra): Likewise.
5578         (output_pic_addr_const): Lowercase @TPOFF.
5579         (output_addr_const_extra): Likewise.
5580         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
5581         (*tls_global_dynamic_64): Likewise.
5582         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
5583         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
5584
5585         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
5586         (ASM_OUTPUT_TLS_COMMON): Use it.
5587         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
5588
5589         PR target/38118
5590         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
5591         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
5592         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
5593         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
5594         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
5595         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
5596
5597 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5598
5599         * config/i386/i386.c (override_options): Don't accept
5600         -mtls-dialect=sun any longer.
5601         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
5602         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
5603         (*tls_local_dynamic_base_32_sun): Likewise.
5604         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
5605
5606 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
5607
5608         PR debug/43508
5609         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
5610         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
5611
5612         PR debug/43479
5613         * ira.c (adjust_cleared_regs): New function.
5614         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
5615
5616         PR debug/19192
5617         PR debug/43479
5618         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
5619         from gimple_block.
5620         * expr.c (expand_expr_real): Restore previous
5621         curr_insn_source_location and curr_insn_block after
5622         expand_expr_real_1 call.
5623         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
5624         instead of expand_expr_real_1.
5625
5626 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
5627
5628         PR rtl-optimization/43413
5629         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
5630         hard regs too.
5631
5632 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
5633
5634         PR target/43348
5635         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
5636         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
5637
5638 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
5639
5640         * config/i386/i386.c (ix86_target_string): Add -mfma.
5641         Fix a typo in comment.
5642
5643 2010-03-22  Mike Stump  <mikestump@comcast.net>
5644
5645         PR target/23071
5646         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
5647         Don't overly align based upon packed packed fields.
5648
5649 2010-03-22  Jason Merrill  <jason@redhat.com>
5650
5651         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
5652         Use () rather than [], and move before the element type.
5653
5654 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5655
5656         * doc/configfiles.texi (Configuration Files): Removed
5657         fixinc/Makefile*, intl/Makefile.*.
5658         * doc/makefile.texi: Fixed markup. Abstract from version
5659         control system used.
5660         (Makefile): Removed obsolete gcc/java/parse.y example.
5661         * doc/sourcebuild.texi: Likewise.
5662         (Top Level): Added config, gnattools, libdecnumber, libgcc,
5663         libgomp, libssp.  Removed fastjar.
5664         (Miscellaneous Docs): Clarify location.
5665         Added COPYING3, COPYING3.LIB.
5666         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
5667
5668 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5669
5670         PR target/38085
5671         * config/i386/i386.c (x86_function_profiler)
5672         [!NO_PROFILE_COUNTERS]: Fix typo.
5673         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
5674         instead of callq.
5675
5676 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
5677             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5678
5679         * doc/sourcebuild.texi (Test Directives): Split into six
5680         subsections, with most of the current text in new subsections
5681         Directives, Selectors, and Final Actions.
5682         (Directives): Split list of test directives into multiple
5683         subsubsections.
5684         (Selectors): Describe use and syntax of selectors.
5685         (Effective-Target Keywords): Describe all existing keywords.
5686         (Add Options): Describe features for dg-add-options.
5687         (Require Support): Describe variants of dg-require-support.
5688         (Final Actions): Describe commands to use in dg-final.
5689
5690 2010-03-22  Michael Matz  <matz@suse.de>
5691
5692         PR middle-end/43475
5693         * recog.c (validate_replace_rtx_group): Replace also in
5694         REG_EQUAL and REG_EQUIV notes.
5695
5696 2010-03-22  Richard Guenther  <rguenther@suse.de>
5697
5698         PR tree-optimization/43390
5699         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
5700         sure vector extracts are type correct.
5701
5702 2010-03-22  Richard Guenther  <rguenther@suse.de>
5703
5704         PR middle-end/40106
5705         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
5706         x * sqrt (x) even when optimizing for size if the target
5707         has native support for sqrt.
5708
5709 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
5710
5711         * varasm.c (make_decl_rtl_for_debug): Also clear
5712         flag_mudflap for the duration of make_decl_rtl call.
5713
5714         PR debug/43443
5715         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
5716         locs from preserved VALUEs.
5717
5718 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5719
5720         PR middle-end/42718
5721         * pa.md (movmemsi): Set align to one if zero.
5722         (movmemdi): Likewise.
5723
5724 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
5725
5726         PR target/42321
5727         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
5728         with their corresponding prologue pushes.
5729
5730 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
5731
5732         PR target/43156
5733         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
5734         at the begining or end.
5735         (spu_expand_epilogue): Likewise.
5736
5737 2010-03-20  Richard Guenther  <rguenther@suse.de>
5738
5739         PR rtl-optimization/43438
5740         * combine.c (make_extraction): Properly zero-/sign-extend an
5741         extraction of the low part of a CONST_INT.  Also handle
5742         CONST_DOUBLE.
5743
5744 2010-03-19  Mike Stump  <mikestump@comcast.net>
5745
5746         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
5747         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
5748         (override_options): Use SUBTARGET32_DEFAULT_CPU.
5749
5750 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
5751
5752         PR c/43211
5753         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
5754         an error.
5755
5756 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
5757
5758         PR rtl-optimization/42258
5759         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
5760         use that may match DEF.
5761
5762         PR target/40697
5763         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
5764         the cost of loading the constant rather than assuming
5765         COSTS_N_INSNS (1).
5766         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
5767         outer code is AND, do the same tests as the andsi3 expander and
5768         return COSTS_N_INSNS (1) if and is cheap.
5769
5770         * optabs.c (avoid_expensive_constant): Fix formatting.
5771
5772 2010-03-19  Michael Matz  <matz@suse.de>
5773
5774         PR c++/43116
5775         * attribs.c (decl_attributes): When rebuilding a function pointer
5776         type use the same qualifiers as the original pointer type.
5777
5778 2010-03-19  Martin Jambor  <mjambor@suse.cz>
5779
5780         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
5781         and is_gimple_ip_invariant_address.
5782
5783 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5784
5785         Revert
5786         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5787
5788         * config/arm/arm.c (arm_override_options): Turn off
5789         flag_dwarf2_cfi_asm for AAPCS variants.
5790
5791 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5792
5793         PR target/43399
5794         * config/arm/arm.c (emit_multi_reg_push): Update comments.
5795         Use PRE_MODIFY instead of PRE_DEC.
5796         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
5797         (vfp_emit_fstmd): Likewise.
5798
5799 2010-03-19  Michael Matz  <matz@suse.de>
5800
5801         PR target/43305
5802         * builtins.c (expand_builtin_interclass_mathfn,
5803         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
5804         if that fails.
5805
5806 2010-03-19  Richard Guenther  <rguenther@suse.de>
5807
5808         PR tree-optimization/43415
5809         * tree-ssa-pre.c (phi_translate): Split out worker to ...
5810         (phi_translate_1): ... this.
5811         (phi_translate): Move all caching here.  Cache all NARY
5812         and REFERENCE translations.
5813
5814 2010-03-19  David S. Miller  <davem@davemloft.net>
5815
5816         With help from Eric Botcazou.
5817         * config/sparc/sparc.c: Include dwarf2out.h.
5818         (emit_pic_helper): Delete.
5819         (pic_helper_symbol_name): Delete.
5820         (pic_helper_emitted_p): Delete.
5821         (pic_helper_needed): New.
5822         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
5823         (get_pc_thunk_name): New.
5824         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
5825         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
5826         Set pic_helper_needed to true.  Don't call emit_pic_helper.
5827         (sparc_expand_prologue): Update load_pic_register call.
5828         (sparc_output_mi_thunk): Likewise.
5829         (sparc_file_end): Emit a hidden comdat symbol for the PIC
5830         thunk if possible.  Output CFI information as needed.
5831
5832 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
5833             Jack Howarth <howarth@bromo.med.uc.edu>
5834
5835         PR target/36399
5836         * config/i386/i386.h: Fix ABI on darwin x86-32.
5837
5838 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
5839
5840         * tree.h: Declare make_decl_rtl_for_debug.
5841         * varasm.c (make_decl_rtl_for_debug): New.
5842         * dwarf2out.c (rtl_for_decl_location): Call it.
5843         * cfgexpand.c (expand_debug_expr): Call it.
5844
5845 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
5846
5847         PR bootstrap/43399
5848         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
5849         mem_mode.
5850
5851         PR bootstrap/43403
5852         * var-tracking.c (vt_init_cfa_base): Do nothing if
5853         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
5854
5855 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
5856
5857         PR debug/42873
5858         * var-tracking.c (canonicalize_vars_star): New.
5859         (dataflow_post_merge_adjust): Use it.
5860
5861 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
5862
5863         PR debug/43058
5864         * var-tracking.c (non_suitable_const): New function.
5865         (add_uses): For DEBUG_INSNs with constants, don't record any
5866         value, instead just the constant value itself.
5867         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
5868         is not VAR_LOC_UNKNOWN_P, set var to the constant.
5869         (emit_notes_in_bb): Likewise.
5870         (emit_note_insn_var_location): For onepart variables if
5871         cur_loc is a VOIDmode constant, use DECL_MODE.
5872
5873 2010-03-18  Martin Jambor  <mjambor@suse.cz>
5874
5875         PR middle-end/42450
5876         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
5877         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
5878         all non-clones.  Moved call redirection...
5879         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
5880         (cgraph_materialize_all_clones): Dispose of all
5881         combined_args_to_skip bitmaps.
5882         (verify_cgraph_node): Do not check for edges pointing to wrong
5883         nodes in inline clones.
5884         * tree-inline.c (copy_bb): Call
5885         cgraph_redirect_edge_call_stmt_to_callee.
5886         * ipa.c (cgraph_remove_unreachable_nodes): Call
5887         cgraph_node_remove_callees even when there are used clones.
5888
5889 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
5890
5891         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
5892
5893 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
5894
5895         PR target/43383
5896         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
5897         for 32bit.
5898
5899 2010-03-18  Michael Matz  <matz@suse.de>
5900
5901         PR middle-end/43419
5902         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
5903         into sqrt(x) if we need to preserve signed zeros.
5904
5905 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
5906             Eric Botcazou  <ebotcazou@adacore.com>
5907
5908         PR rtl-optimization/43360
5909         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
5910         note if we don't know its invariant status.
5911
5912 2010-03-18  Michael Matz  <matz@suse.de>
5913
5914         PR tree-optimization/43402
5915         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
5916         PHI chains of ssa names registered for update.
5917
5918 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
5919
5920         PR target/42427
5921         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
5922         non-offsettable and pre_modify update addressing.
5923         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
5924         and "2" alternatives "#".
5925         (*movdd_softfloat32): Make all alternatives "#";
5926         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
5927         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
5928         (*movdf_softfloat32): Make all alternatives "#";
5929         (movdi): Use the new DIFD mode iterator to create a common splitter
5930         for movdi, movdf and movdd patterns.
5931
5932 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
5933
5934         * common.opt (dumpdir): Remove redundant tab.
5935
5936 2010-03-17  Martin Jambor  <mjambor@suse.cz>
5937
5938         PR tree-optimization/43347
5939         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
5940         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
5941
5942 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
5943
5944         PR rtl-optimization/42216
5945         * regrename.c (create_new_chain): New function, broken out from...
5946         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
5947         appending a use to an empty chain.
5948         (build_def_use): Remove previous changes that convert OP_INOUT to
5949         OP_OUT operands; instead detect the case where an OP_INOUT operand
5950         uses a previously untracked register and create an empty chain for it.
5951
5952 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5953
5954         * doc/extend.texi (Function Attributes): Rewrite unfinished
5955         sentence in ms_abi documentation.
5956
5957 2010-03-17  Alan Modra  <amodra@gmail.com>
5958
5959         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
5960         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
5961         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
5962         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
5963
5964 2010-03-16  Richard Henderson  <rth@redhat.com>
5965
5966         PR middle-end/43365
5967         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
5968         (lower_try_finally): Save and restore eh_seq around the expansion
5969         of the try-finally.
5970
5971 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
5972
5973         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
5974         statements before splitting block.
5975
5976 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5977
5978         * doc/sourcebuild.texi (Testsuites): Fix markup.
5979         Use pathnames relative to gcc/testsuite.
5980         (Test Directives): Move description of how timeout is determined.
5981         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
5982         (C Tests): Correct gcc.misc-tests directory.
5983         Framework tests now live in gcc.test-framework.
5984
5985 2010-03-16  Richard Guenther  <rguenther@suse.de>
5986
5987         PR middle-end/43379
5988         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
5989         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
5990
5991 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
5992             Alexandre Oliva  <aoliva@redhat.com>
5993
5994         PR tree-optimization/42917
5995         * lambda-code.c (remove_iv): Skip debug statements.
5996         (lambda_loopnest_to_gcc_loopnest): Likewise.
5997         (not_interesting_stmt): Debug statements are not interesting.
5998
5999 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
6000
6001         PR debug/43051
6002         PR debug/43092
6003         * cselib.c (cselib_preserve_constants,
6004         cfa_base_preserved_val): New static variables.
6005         (preserve_only_constants): New function.
6006         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
6007         clear its REG_VALUES.  If cselib_preserve_constants, don't
6008         empty the whole hash table, but preserve there VALUEs with constants,
6009         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
6010         (cselib_preserve_cfa_base_value): New function.
6011         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
6012         (cselib_init): Change argument to int bitfield.  Set
6013         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
6014         is in it.
6015         (cselib_finish): Clear cselib_preserve_constants and
6016         cfa_base_preserved_val.
6017         * cselib.h (enum cselib_record_what): New enum.
6018         (cselib_init): Change argument to int.
6019         (cselib_preserve_cfa_base_value): New prototype.
6020         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
6021         * dse.c (dse_step1): Likewise.
6022         * cfgcleanup.c (thread_jump): Likewise.
6023         * sched-deps.c (sched_analyze): Likewise.
6024         * gcse.c (local_cprop_pass): Likewise.
6025         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
6026         If FN is non-NULL, call the callback always and whenever it returns
6027         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
6028         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
6029         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
6030         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
6031         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
6032         * var-tracking.c: Include recog.h.
6033         (bb_stack_adjust_offset): Remove.
6034         (vt_stack_adjustments): Don't call it, instead just gather the
6035         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
6036         (adjust_stack_reference): Remove.
6037         (compute_cfa_pointer): New function.
6038         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
6039         (struct adjust_mem_data): New type.
6040         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
6041         functions.
6042         (get_address_mode): New function.
6043         (replace_expr_with_values): Use it.
6044         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
6045         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
6046         (adjust_sets): Remove.
6047         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
6048         Use get_address_mode.
6049         (get_adjusted_src): Remove.
6050         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
6051         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
6052         (add_with_sets): Don't call adjust_sets.
6053         (fp_setter, vt_init_cfa_base): New functions.
6054         (vt_initialize): Change return type to bool.  Move most of pool etc.
6055         initialization to the beginning of the function from end.  Pass
6056         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
6057         If !frame_pointer_needed, call vt_stack_adjustment before mos
6058         vector is filled, call vt_init_cfa_base if argp/framep has been
6059         eliminated to sp.  If frame_pointer_needed and argp/framep has
6060         been eliminated to hard frame pointer, set
6061         hard_frame_pointer_adjustment and call vt_init_cfa_base after
6062         encountering fp setter in the prologue.  For MO_ADJUST, call
6063         log_op_type before pusing the op into mos vector, not afterwards.
6064         Call adjust_insn before cselib_process_insn/add_with_sets,
6065         call cancel_changes (0) afterwards.
6066         (variable_tracking_main_1): Adjust for vt_initialize calling
6067         vt_stack_adjustments and returning whether it succeeded or not.
6068
6069 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
6070
6071         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
6072         debug statements.
6073
6074 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
6075
6076         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
6077         has been set.
6078         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
6079         drap_reg has not been set.
6080
6081 2010-03-15  Michael Matz  <matz@suse.de>
6082
6083         PR middle-end/43300
6084         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
6085         use it to expand block copies.
6086         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
6087         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
6088         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
6089
6090 2010-03-15  Richard Guenther  <rguenther@suse.de>
6091
6092         PR tree-optimization/43367
6093         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
6094         elimination check.
6095
6096 2010-03-15  Richard Guenther  <rguenther@suse.de>
6097
6098         PR tree-optimization/43317
6099         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
6100
6101 2010-03-15  Martin Jambor  <mjambor@suse.cz>
6102
6103         PR tree-optimization/43141
6104         * tree-sra.c (create_abstract_origin): New function.
6105         (modify_function): Call create_abstract_origin.
6106
6107 2010-03-15  Chris Demetriou  <cgd@google.com>
6108
6109         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
6110         wasn't copied.
6111
6112 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
6113
6114         PR middle-end/43354
6115         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
6116         call insert_out_of_ssa_copy for default definitions.
6117
6118 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
6119
6120         * graphite-clast-to-gimple.c (my_long_long): Defined.
6121         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
6122         * graphite-sese-to-poly.c (my_long_long): Defined.
6123         (scop_ivs_can_be_represented): Use it.
6124
6125 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
6126
6127         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
6128         graphite-max-bbs-per-function, and loop-block-tile-size.
6129         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
6130         with "maximum".
6131         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
6132
6133 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
6134
6135         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
6136         forward declaration.
6137         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
6138         (add_upper_bounds_from_estimated_nit): New.
6139         (build_loop_iteration_domains): Use it.
6140
6141 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
6142
6143         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
6144
6145 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
6146
6147         PR middle-end/43306
6148         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
6149         should be an INTEGER_CST.  Also handle CASE_CONVERT.
6150
6151 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
6152
6153         * graphite.c (graphite_initialize): To bound the number of bbs per
6154         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
6155         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
6156         * doc/invoke.texi: Document it.
6157
6158 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
6159
6160         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
6161         * graphite-sese-to-poly.h (build_poly_scop): Same.
6162
6163 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
6164
6165         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
6166         the number of parameters in the scop.  Use as an upper bound
6167         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
6168         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
6169         * doc/invoke.texi: Document it.
6170
6171 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
6172
6173         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
6174         * doc/c-tree.texi: Remove.
6175         * doc/generic.texi: Merge c-tree.texi here.
6176         * doc/gccint.texi (Trees): Remove menu entry.
6177         (c-tree.texi): Remove @include.
6178         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
6179         * doc/languages.texi (Reading RTL): Ditto.
6180
6181 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
6182
6183         PR target/42869
6184         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
6185
6186 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
6187
6188         PR middle-end/42431
6189         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
6190         code added to work around reload clobbering CONST insns.
6191
6192 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
6193
6194         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
6195         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
6196         (cselib_preserve_only_values): Remove retain argument, don't
6197         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
6198         * cselib.h (cselib_preserve_only_values): Remove retain argument.
6199         * var-tracking.c (micro_operation): Move insn field before union.
6200         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
6201         (struct variable_tracking_info_def): Remove n_mos field, change
6202         mos into a vector of micro_operations.
6203         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
6204         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
6205         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
6206         changing into a vector.
6207         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
6208         come before all other uops generated by add_stores.
6209         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
6210         argument removal.
6211         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
6212         a vector.  Run just one pass over the bbs instead of separate counting
6213         and computation phase.
6214         (vt_finalize): Free VTI (bb)->mos vector instead of array.
6215
6216         PR debug/43329
6217         * tree-inline.c (remap_decls): Put old_var rather than origin_var
6218         into *nonlocalized_list vector.
6219         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
6220         even if origin is non-NULL.
6221         (gen_variable_die): Likewise.
6222         (process_scope_var): Don't change origin.
6223         (gen_decl_die): Likewise.
6224         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
6225         before adding new edges instead of after it, fix moving over
6226         debug stmts.
6227
6228 2010-03-11  David S. Miller  <davem@davemloft.net>
6229
6230         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
6231         of four.
6232         * configure: Rebuild.
6233
6234 2010-03-11  Martin Jambor  <mjambor@suse.cz>
6235
6236         PR tree-optimization/43257
6237         * tree.c (assign_assembler_name_if_neeeded): New function.
6238         (free_lang_data_in_cgraph): Assembler name assignment moved to the
6239         above new function.
6240         * tree.h (assign_assembler_name_if_neeeded): Declare.
6241         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
6242         the function if needed.
6243
6244 2010-03-11  Chris Demetriou  <cgd@google.com>
6245
6246         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
6247         include/stdint-gcc.h, and include/stdint.h world-readable.
6248
6249 2010-03-11  Richard Guenther  <rguenther@suse.de>
6250
6251         PR tree-optimization/43255
6252         * tree-vrp.c (process_assert_insertions_for): Do not insert
6253         asserts for trivial conditions.
6254
6255 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6256
6257         PR tree-optimization/43280
6258         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
6259         generation.  Move calculation of size out of the if branch.
6260         (find_bswap): Modify compare number generation.
6261
6262 2010-03-11  Richard Guenther  <rguenther@suse.de>
6263
6264         PR lto/43200
6265         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
6266         (input_gimple_stmt): Fixup handled component types during
6267         operand read.  Also fix up decls in ADDR_EXPRs.
6268
6269 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
6270
6271         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
6272         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
6273
6274 2010-03-10  Jan Hubicka  <jh@suse.cz>
6275
6276         PR c/43288
6277         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
6278         * varasm.c (get_variable_section): Don't do that here...
6279         (make_decl_rtl): ... and here.
6280         (do_assemble_alias): Produce decl RTL.
6281         (assemble_alias): Likewise.
6282
6283 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
6284
6285         PR debug/43290
6286         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
6287         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
6288         of fde->vdrap_reg.
6289         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
6290         (based_loc_descr): Only express drap or vdrap regno based expressions
6291         using DW_OP_fbreg when not optimizing.
6292         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
6293         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
6294         REG_CFA_SET_VDRAP note.
6295
6296 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
6297
6298         PR tree-optimization/43236
6299         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
6300         error in calculation of base address in reverse iteration case.
6301         (generate_builtin): Take number of latch executions if the statement
6302         is in the latch.
6303
6304 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
6305
6306         PR middle-end/42859
6307         * tree-eh.c: Include pointer-set.h.
6308         (lower_eh_dispatch): Filter out duplicate case labels and
6309         remove the unneeded edge when the label is unused.  Return
6310         true when some edges are removed.
6311         (execute_lower_eh_dispatch): When any lowering resulted in
6312         removing an edge, also delete unreachable blocks.
6313
6314 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
6315
6316         PR bootstrap/43287
6317         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
6318         UNSPEC_MACHOPIC_OFFSET.
6319
6320 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
6321
6322         PR target/43294
6323         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
6324         (m68k_delegitimize_address): New function.
6325
6326 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
6327
6328         PR debug/43299
6329         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
6330
6331         PR debug/43299
6332         * var-tracking.c (adjust_sets): New function.
6333         (count_with_sets, add_with_sets): Use it.
6334         (get_adjusted_src): New inline function.
6335         (add_stores): Use it.
6336
6337         PR debug/43304
6338         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
6339         call cselib_dummy_expand_value_rtx_cb instead of
6340         cselib_expand_value_rtx_cb.
6341
6342         PR debug/43293
6343         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
6344         * config/i386/i386.c: Include debug.h and dwarf2out.h.
6345         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
6346         and .cfi_endproc around the pic thunks.
6347         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
6348         all queued unwind info register saves are saved before the call.
6349         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
6350         considered as sp-=4 for unwind info and the pop as sp+=4 which
6351         also clobbers dest, but doesn't actually restore it.
6352
6353         PR debug/43290
6354         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
6355         RTX_FRAME_RELATED_P.
6356
6357 2010-03-09  Jie Zhang  <jie@codesourcery.com>
6358
6359         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
6360         whitespaces in output template.
6361
6362 2010-03-09  Jie Zhang  <jie@codesourcery.com>
6363
6364         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
6365         out array boundary.
6366
6367 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
6368
6369         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
6370         builtins.exp in a separate job.
6371
6372 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
6373
6374         * graphite-sese-to-poly.c (add_param_constraints): Use
6375         lower_bound_in_type and upper_bound_in_type.
6376
6377 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
6378
6379         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
6380         instead of unsigned_type_node.
6381
6382 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
6383             Reza Yazdani  <reza.yazdani@amd.com>
6384
6385         PR middle-end/43065
6386         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
6387         on pointer type parameters.
6388
6389 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
6390
6391         PR middle-end/42644
6392         PR middle-end/42130
6393         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
6394         handle conversions from pointer to integers.
6395         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
6396         induction variable, to be able to work with code generated by CLooG.
6397         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
6398         (build_poly_scop): Bail out if we cannot codegen a loop.
6399
6400 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
6401
6402         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
6403         code generation with gloog_error.
6404
6405 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
6406
6407         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
6408         Call fold_convert on all the returned values.
6409         (expand_scalar_variables_expr): Pass to
6410         expand_scalar_variables_ssa_name the type of the resulting expression.
6411
6412 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
6413
6414         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
6415         ppl_min_for_le_pointset.
6416         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
6417         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
6418
6419 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
6420
6421         * graphite-dependences.c (map_into_dep_poly): Removed.
6422         (dependence_polyhedron_1): Use combine_context_id_scat.
6423
6424 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
6425
6426         * graphite-poly.h (struct poly_scattering): Add layout documentation.
6427         (struct poly_bb): Same.
6428         (combine_context_id_scat): New.
6429
6430 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
6431
6432         PR middle-end/42326
6433         * sese.c (name_defined_in_loop_p): Return false for default
6434         definitions.
6435
6436 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
6437
6438         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
6439         and clean up the logic.
6440
6441 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
6442
6443         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
6444         early return.
6445
6446 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
6447
6448         * var-tracking.c (remove_cselib_value_chains): Define only for
6449         ENABLE_CHECKING.
6450         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
6451         delete_slot_part, emit_notes_for_differences_1): Don't call
6452         remove_cselib_value_chains here.
6453         (set_slot_part, emit_notes_for_differences_2): Don't call
6454         add_cselib_value_chains here.
6455         (preserved_values): New vector.
6456         (preserve_value): New function.
6457         (add_uses, add_stores, vt_add_function_parameters): Use it
6458         instead of cselib_preserve_value.
6459         (changed_values_stack): New vector.
6460         (check_changed_vars_0): New function.
6461         (check_changed_vars_1, check_changed_vars_2): Use it.
6462         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
6463         changed_values_stack VALUEs.
6464         (vt_emit_notes): For all preserved_values call
6465         add_cselib_value_chains.  If ENABLE_CHECKING call
6466         remove_cselib_value_chains before verifying value_chains is empty.
6467         Initialize and free changed_values_stack.
6468         (vt_initialize): Initialize preserved_values.
6469         (vt_finalize): Free preserved_values.
6470
6471 2010-03-08  Richard Guenther  <rguenther@suse.de>
6472
6473         PR tree-optimization/43269
6474         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
6475         region detection.
6476
6477 2010-03-08  Martin Jambor  <mjambor@suse.cz>
6478
6479         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
6480         (ipa_is_param_called): Removed.
6481         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
6482         (ipa_print_node_params): Do not print the called flag.
6483         (ipa_write_node_info): Do not stream the called flag.
6484         (ipa_read_node_info): Likewise.
6485
6486 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
6487
6488         PR debug/43176
6489         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
6490         * cselib.c (struct expand_value_data): Add dummy field.
6491         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
6492         dummy to false.
6493         (cselib_dummy_expand_value_rtx_cb): New function.
6494         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
6495         any rtl.
6496         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
6497         * var-tracking.c: Include pointer-set.h.
6498         (variable): Change n_var_parts to char from int.  Add
6499         cur_loc_changed and in_changed_variables fields.
6500         (variable_canonicalize): Remove.
6501         (shared_var_p): New inline function.
6502         (unshare_variable): Maintain cur_loc_changed and
6503         in_changed_variables fields.  If var was in changed_variables,
6504         replace it there with new_var.  Just copy cur_loc instead of
6505         resetting it to something else.
6506         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
6507         (dataflow_set_union): Don't call variable_canonicalize.
6508         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
6509         of their DEBUG_EXPR_TREE_DECLs.
6510         (canonicalize_loc_order_check): Verify that cur_loc is NULL
6511         and in_changed_variables and cur_loc_changed is false.
6512         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
6513         and cur_loc_changed.  Don't update cur_loc here.
6514         (variable_merge_over_src): Don't call variable_canonicalize.
6515         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
6516         removing loc that is equal to cur_loc, clear cur_loc,
6517         set cur_loc_changed and ensure variable_was_changed is called.
6518         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
6519         compare pointers in cur_loc check, if it is equal to loc,
6520         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
6521         (variable_different_p): Remove compare_current_location argument,
6522         don't compare cur_loc.
6523         (dataflow_set_different_1): Adjust variable_different_p caller.
6524         (variable_was_changed): If dv had some var in changed_variables
6525         already, reset in_changed_variables flag for it and propagate
6526         cur_loc_changed over to the new variable.  On empty var
6527         always set cur_loc_changed.  Set in_changed_variables on whatever
6528         var is added to changed_variables.
6529         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
6530         Use shared_var_p.  When removing loc that is equal to cur_loc,
6531         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
6532         end, don't set it to something else, just call variable_was_changed.
6533         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
6534         loc being removed, clear cur_loc and set cur_loc_changed.
6535         Set cur_loc_changed if all locations have been removed.
6536         (struct expand_loc_callback_data): New type.
6537         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
6538         allocated.  Always create SUBREGs if simplify_subreg failed.
6539         Prefer to use cur_loc, when that fails and still in
6540         changed_variables (and seen first time) recompute it.  Set
6541         cur_loc_changed of variables which had to change cur_loc and
6542         compute elcd->cur_loc_changed if any of the subexpressions used
6543         had to change cur_loc.
6544         (vt_expand_loc): Adjust to pass arguments in
6545         expand_loc_callback_data structure.
6546         (vt_expand_loc_dummy): New function.
6547         (emitted_notes): New variable.
6548         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
6549         that weren't used for any other decl in current
6550         emit_notes_for_changes call call vt_expand_loc_dummy to update
6551         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
6552         first loc_chain location if NULL before.  Always use just
6553         cur_loc instead of first loc_chain location.  When cur_loc_changed
6554         is false, when not --enable-checking=rtl just don't emit any note.
6555         When rtl checking, compute the note and assert it is the same
6556         as previous note.  Clear cur_loc_changed and in_changed_variables
6557         at the end before removing from changed_variables.
6558         (check_changed_vars_3): New function.
6559         (emit_notes_for_changes): Traverse changed_vars to call
6560         check_changed_vars_3 on each changed var.
6561         (emit_notes_for_differences_1): Clear cur_loc_changed and
6562         in_changed_variables.  Recompute cur_loc of new_var.
6563         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
6564         (vt_emit_notes): Initialize and destroy emitted_notes.
6565
6566 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
6567
6568         PR rtl-optimization/42220
6569         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
6570         Use verify_reg_tracked to determine if we should use OP_OUT rather
6571         than OP_INOUT.
6572         (build_def_use): If we see an in-out operand for a register that we
6573         know nothing about, treat is an output if possible, fail the block if
6574         not.
6575
6576 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
6577
6578         PR debug/42897
6579         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
6580         permanently.
6581
6582 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
6583
6584         PR debug/42897
6585         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
6586         uses of relevant DEFs that are dead outside the loop too.
6587
6588 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
6589
6590         * var-tracking.c (dataflow_set_merge): Swap src and src2.
6591         Reverted:
6592         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
6593         PR debug/41371
6594         * var-tracking.c (values_to_unmark): New variable.
6595         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
6596         values_to_unmark vector.  Moved body to...
6597         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
6598         instead queue it into values_to_unmark vector.
6599         (vt_find_locations): Free values_to_unmark vector.
6600
6601 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
6602
6603         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
6604         (site.exp): Export them when plugins are enabled.
6605
6606 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
6607
6608         PR middle-end/42326
6609         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
6610         that contain scevs.
6611         (chrec_fold_multiply): Same.
6612
6613 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
6614
6615         PR c/43248
6616         * c-decl.c (build_compound_literal): Return early if init is
6617         an error_mark_node.
6618
6619 2010-03-04  Martin Jambor  <mjambor@suse.cz>
6620
6621         PR tree-optimization/43164
6622         PR tree-optimization/43191
6623         * tree-sra.c (type_consists_of_records_p): Reject records with
6624         zero-size bit-fields at the end.
6625
6626 2010-03-04  Mike Stump  <mikestump@comcast.net>
6627
6628         * Makefile.in (TAGS): Remove *.y.
6629
6630 2010-03-04  Richard Guenther  <rguenther@suse.de>
6631
6632         PR tree-optimization/40761
6633         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
6634         in reverse order.
6635         (my_rev_post_order_compute): New function.
6636         (init_pre): Call it.
6637
6638 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
6639
6640         PR middle-end/43209
6641         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
6642         decrease the cost of an IV candidate when the cost is infinite.
6643
6644 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6645
6646         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
6647         Use '3DNow!' for the extension of that name, ensure normal space
6648         after the string.
6649         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
6650
6651 2010-03-03  Jeff Law  <law@redhat.com>
6652
6653         * PR middle-end/32693
6654         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
6655         than gen_rtx_SUBREG.
6656         (extract_bit_field_1): Likewise.
6657
6658 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
6659
6660         * doc/sourcebuild.texi (Test directives): Document that arguments
6661         include-opts and exclude-opts are now optional for dg-skip-if,
6662         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
6663
6664 2010-03-03  Jason Merrill  <jason@redhat.com>
6665
6666         PR c++/12909
6667         * cgraph.h (varpool_node): Add extra_name field.
6668         * varpool.c (varpool_extra_name_alias): New.
6669         (varpool_assemble_decl): Emit extra name aliases.
6670         (varpool_mark_needed_node): Look past an extra name alias.
6671         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
6672         * lto-streamer-in.c (lto_input_tree): Read it.
6673         * lto-streamer-out.c (output_unreferenced_globals): Write it.
6674
6675 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
6676
6677         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
6678         (sparc*-*-solaris2*): ...this.
6679
6680 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
6681
6682         PR debug/43229
6683         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
6684         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
6685         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
6686         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
6687
6688         PR debug/43237
6689         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
6690         fallthrough to default handling, just with want_address 0 instead of 2.
6691         For single element lists, add_AT_loc directly, otherwise create an
6692         artificial variable DIE and stick location list to it.
6693
6694         PR debug/43177
6695         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
6696         (VAL_EXPR_HAS_REVERSE): Define.
6697         (reverse_op): New function.
6698         (add_stores): For reversible operations add an extra MO_VAL_USE.
6699
6700 2010-03-02  Jason Merrill  <jason@redhat.com>
6701
6702         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
6703
6704 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
6705
6706         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
6707         (sparc64-*-linux*): Likewise.
6708         (sparc64-*-solaris2*): Include assembler files before linker ones.
6709         (sparc-*-solaris2*): Simplify and reorder to match previous case.
6710         * config/sparc/gas.h: Delete.
6711         * config/sparc/sol2-64.h: Add copyright notice.
6712         * config/sparc/sol2-gas-bi.h: Likewise.
6713         * config/sparc/sol2-gld.h: Likewise.
6714         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
6715         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
6716         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
6717         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
6718         (sparc_elf_asm_named_section): Rename into...
6719         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
6720
6721 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
6722
6723         * config/alpha/alpha.c (override_options): Fix -mtune error message.
6724
6725 2010-03-02  Jeff Law  <law@redhat.com>
6726
6727         PR middle-end/42431
6728         * reload1.c (rtx_p, substitute_stack): Declare.
6729         (substitute): Record addresses of changed rtxs.
6730         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
6731         Restore the original rtx when complete.
6732         (reload): Free subsitute_stack when complete.
6733
6734 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
6735
6736         * doc/gccint.texi (menu): Add Testsuites as a chapter.
6737         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
6738         new chapter.
6739         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
6740         LTO Testing, gcov Testing, profopt Testing, compat Testing,
6741         Torture Tests): Change from subsection to section.
6742
6743 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
6744             Steven Bosscher  <steven@gcc.gnu.org>
6745
6746         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
6747         instead of bb.
6748
6749 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
6750
6751         PR middle-end/42640
6752         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
6753         the assignment from the new induction variable to the assignment
6754         of the value from the original loop PHI function.
6755
6756 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
6757             Daniel Jacobowitz  <dan@codesourcery.com>
6758
6759         * doc/sourcebuild.texi (Test directives): Clarify options to
6760         dg-skip-if.
6761
6762 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6763
6764         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
6765         Disable cfi directives unless GCC and gas agree on using read-only
6766         .eh_frame sections for 64-bit.
6767         * configure: Regenerate.
6768
6769 2010-03-01  Richard Guenther  <rguenther@suse.de>
6770
6771         PR tree-optimization/43220
6772         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
6773         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
6774
6775 2010-03-01  Richard Guenther  <rguenther@suse.de>
6776             Martin Jambor  <mjambor@suse.cz>
6777
6778         PR middle-end/41250
6779         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
6780         gimplified parameters.
6781
6782 2010-03-01  Christian Bruel  <christian.bruel@st.com>
6783
6784         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
6785
6786 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
6787
6788         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
6789
6790 2010-03-01  Richard Guenther  <rguenther@suse.de>
6791
6792         PR middle-end/43213
6793         * expr.c (expand_assignment): Use the alias-oracle to tell
6794         if the rhs aliases the result decl.
6795
6796 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6797
6798         PR pch/14940
6799         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
6800         to sol_gt_pch_get_address.
6801         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
6802         64-bit, SPARC and x86.
6803         (sol_gt_pch_get_address): New function.
6804
6805 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
6806
6807         * toplev.h (inform_n, error_n): Declare.
6808         * diagnostic.c (inform_n, error_n): New function.
6809
6810 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
6811
6812         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
6813         has no rtl yet when processing local_decls, queue it and recheck
6814         if deferred stack allocation hasn't assigned it rtl.
6815
6816 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
6817
6818         * config/sh/sh.c (unspec_bbr_uid): New.
6819         (gen_block_redirect): Use it instead of INSN_UID.
6820         (gen_far_branch): Likewise.
6821
6822 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
6823
6824         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
6825         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
6826
6827 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6828
6829         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
6830         (Warning Options): -Wno-conversion-null is valid for
6831         Objective-C++ as well.
6832         * doc/tm.texi (Named Address Spaces): Likewise.
6833         * doc/plugins.texi (Plugins): Replace TABs with spaces.
6834         * doc/tree-ssa.texi (Tree SSA): Likewise.
6835
6836 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
6837
6838         PR bootstrap/43202
6839         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
6840         by default.  Don't set the default arch for
6841         i[34567]86-*-darwin*|x86_64-*-darwin*.
6842
6843 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
6844
6845         PR bootstrap/43202
6846         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
6847         default.  Set the default 32bit/64bit archs with $with_arch
6848         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
6849
6850 2010-02-27  Richard Guenther  <rguenther@suse.de>
6851
6852         PR tree-optimization/43186
6853         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
6854         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
6855         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
6856         unroller iterations.
6857
6858 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
6859
6860         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
6861         required and i[34567]86-*-* targets don't support 64bit ISA.
6862
6863 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
6864
6865         PR ada/43096
6866         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
6867         the same alias set.
6868
6869 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
6870
6871         * config.gcc: Set the default arch at least to Prescott for
6872         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
6873         if SSE math is enabled.
6874
6875 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6876
6877         * diagnostic.c (diagnostic_initialize): Update.
6878         (diagnostic_report_diagnostic): Test inhibit_notes_p for
6879         informative notes.
6880         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
6881         (diagnostic_inhibit_notes): New.
6882         * toplev.c (process_options): inhibit notes with -fcompare-debug.
6883
6884 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6885
6886         PR c/20631
6887         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
6888         * doc/standards.texi: Likewise.
6889         * doc/extend.texi: Likewise.
6890         * doc/trouble.texi: Likewise.
6891         * doc/cppopts.texi: Likewise.
6892         * doc/install.texi: Likewise.
6893         * c.opt (std=c90,std=gnu90): New options.
6894         * c-opts.c (c_common_handle_option): Handle them.
6895
6896 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6897
6898         PR c/24577
6899         * c-decl.c (undeclared_variable): Use an informative note.
6900
6901 2010-02-26  Richard Guenther  <rguenther@suse.de>
6902
6903         PR tree-optimization/43186
6904         * gimple.h (gimple_fold): Remove.
6905         * gimple.c (gimple_fold): Remove.  Inline into single user ...
6906         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
6907         Try harder for conditions.
6908
6909 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
6910
6911         PR debug/43190
6912         * function.c (used_types_insert): Don't skip through named pointer
6913         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
6914         and it is different from the main variant's type.
6915
6916 2010-02-26  Nick Clifton  <nickc@redhat.com>
6917
6918         * config/rx/rx.md (sminsi3): Remove bogus alternative.
6919
6920 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
6921
6922         * config.gcc: Support --with-fpmath=sse for x86.
6923
6924         * config/i386/ssemath.h: New.
6925
6926         * doc/install.texi (--with-fpmath=sse): Documented.
6927
6928 2010-02-26  Richard Guenther  <rguenther@suse.de>
6929
6930         PR tree-optimization/43188
6931         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
6932         vector types of over-aligned element type.
6933
6934 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
6935
6936         PR target/43175
6937         * config/i386/i386.c (expand_vec_perm_blend): Use correct
6938         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
6939
6940 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
6941
6942         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
6943
6944 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
6945
6946         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
6947         * var-tracking.c: Include diagnostic.h.
6948         (debug_dv): New function.
6949         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
6950
6951         PR debug/43160
6952         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
6953         (add_value_chain, add_value_chains, remove_value_chain,
6954         remove_value_chains): Handle DEBUG_EXPRs.
6955         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
6956
6957         PR debug/43161
6958         * regcprop.c (struct queued_debug_insn_change): New type.
6959         (struct value_data_entry): Add debug_insn_changes field.
6960         (struct value_data): Add n_debug_insn_changes field.
6961         (debug_insn_changes_pool): New variable.
6962         (free_debug_insn_changes, apply_debug_insn_changes,
6963         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
6964         (kill_value_one_regno): Call free_debug_insn_changes if needed.
6965         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
6966         fields.
6967         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
6968         changes for them.
6969         (copyprop_hardreg_forward_1): Don't call apply_change_group for
6970         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
6971         changes, call cprop_find_used_regs via note_stores.
6972         (copyprop_hardreg_forward): When copying vd from predecessor
6973         which has any queued DEBUG_INSN changes, make sure the pointers are
6974         cleared.  At the end call df_analyze and then if there are any
6975         DEBUG_INSN changes queued at the end of some basic block for still
6976         live registers, apply them.
6977         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
6978
6979 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
6980
6981         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
6982         (arm*-*-*): Ditto.
6983
6984 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
6985
6986         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
6987         targets.  Set the default with_cpu/with_arch from arch/cpu.
6988         Allow x86-64 and native for with_cpu/with_arch.
6989
6990 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
6991
6992         * ebitmap.c: Change calls to verify_popcount with calls to
6993         sbitmap_verify_popcount.
6994         (ebitmap_clear_bit): Fixed map->cacheindex test and
6995         map>cache update when bit clearing results in an empty
6996         element.
6997
6998 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
6999
7000         PR target/43154
7001         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
7002         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
7003         and support both V2DF and V2DI modes.
7004         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
7005         support both V2DF and V2DI modes.
7006         (general): Delete trailing whitespace from a few patterns.
7007
7008         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7009         V2DF/V2DI interleave high/low builtins.
7010
7011         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
7012         new VSX builtins.
7013
7014         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
7015         interleave high/low functions.
7016
7017 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
7018
7019         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
7020         #pragma extern_prefix.
7021
7022 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
7023
7024         PR debug/43166
7025         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
7026         BLKmode, assert op0 is a MEM and just adjust its mode.
7027
7028         PR debug/43165
7029         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
7030         if bitpos isn't multiple of mode's bitsize.
7031
7032 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7033
7034         * c.opt (-ftemplate-depth=): New.
7035         (-ftemplate-depth-): Deprecate.
7036         * optc-gen.awk: Handle -ftemplate-depth=.
7037         * opth-gen.awk: Likewise.
7038         * c-opts.c (c_common_handle_option): Likewise.
7039         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
7040
7041 2010-02-24  Jason Merrill  <jason@redhat.com>
7042
7043         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
7044
7045 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7046
7047         * cfg.c (alloc_aux_for_block): Remove inline.
7048         (alloc_aux_for_edge): Likewise.
7049
7050 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7051
7052         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
7053
7054 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7055
7056         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
7057         * config/i386/sol2-gas.h: New file.
7058         * config.gcc (i[34567]86-*-solaris2*): Use it.
7059
7060 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7061
7062         PR c/43128
7063         * c-typeck.c (ep_convert_and_check): New.
7064         (build_conditional_expr): Use it.
7065         (build_binary_op): Likewise.
7066
7067 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
7068
7069         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
7070
7071         PR debug/43150
7072         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
7073         bounds even for -O+.
7074         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
7075         expr needs to have DECL_NAME set.
7076
7077 2010-02-24  Nick Clifton  <nickc@redhat.com>
7078
7079         * config/mep/mep.c: Include gimple.h.
7080         (mep_function_uses_sp): Delete unused function.
7081         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
7082         parameters.  Use unsigned integers to count args.  Return a
7083         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
7084
7085 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
7086
7087         PR target/43107
7088         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
7089         greater or equal to nelt instead of 2 * nelt.
7090         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
7091         with nelt - 1.
7092
7093 2010-02-23  Jason Merrill  <jason@redhat.com>
7094
7095         PR debug/42800
7096         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
7097         in cfun->local_decls even if they have register types.
7098
7099         PR c++/42837
7100         * stor-layout.c (place_field): Don't warn about unnecessary
7101         DECL_PACKED if the type is packed.
7102
7103 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
7104
7105         PR target/43139
7106         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
7107         GOTOFF relocs, even when the base reg isn't pic pointer.
7108
7109 2010-02-23  Michael Matz  <matz@suse.de>
7110
7111         PR debug/43077
7112         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
7113         (expand_gimple_basic_block): Generate and use debug temps if there
7114         are debug uses left after the last real use of TERed ssa names.
7115         Unlink debug immediate uses when they are expanded.
7116
7117 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7118
7119         PR 43123
7120         * config/i386/i386.c (override_options): Reorganise to provide
7121         better error messages.
7122
7123 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
7124
7125         PR middle-end/43083
7126         * graphite-scop-detection.c (create_single_exit_edge): Move
7127         the call to find_single_exit_edge to....
7128         (create_sese_edges): ...here.  Don't handle multiple edges
7129         exiting the function.
7130         (build_graphite_scops): Don't handle multiple edges
7131         exiting the function.
7132
7133 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
7134
7135         PR middle-end/43097
7136         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
7137         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
7138
7139 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
7140
7141         PR middle-end/43026
7142         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
7143
7144 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7145
7146         PR c++/43126
7147         * c-typeck.c (convert_arguments): Print declaration location.
7148         * c-common.c (validate_nargs): Rename as
7149         builtin_function_validate_nargs.
7150         (check_builtin_function_arguments): Update.
7151
7152 2010-02-22  Richard Guenther  <rguenther@suse.de>
7153
7154         PR lto/43045
7155         * tree-inline.c (declare_return_variable): Use the type of
7156         the call stmt lhs if available.
7157
7158 2010-02-22  Duncan Sands  <baldrick@free.fr>
7159
7160         * passes.c (register_pass): Always consider all pass lists when
7161         ref_pass_instance_number is zero.
7162
7163 2010-02-22  Richard Guenther  <rguenther@suse.de>
7164
7165         PR tree-optimization/42749
7166         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
7167         parameter.  Do arithmetic in the original type.
7168         (update_accumulator_with_ops): Likewise.
7169         (adjust_accumulator_values): Adjust.
7170
7171 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7172
7173         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
7174         (QI to BLKmode splitter): New splitter.
7175
7176 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
7177
7178         * config/i386/i386.c (initial_ix86_tune_features): Turn on
7179         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
7180
7181 2010-02-22  Richard Guenther  <rguenther@suse.de>
7182
7183         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
7184
7185 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
7186
7187         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
7188         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
7189         ($(T)crti.o, $(T)crtn.o): Remove rules.
7190
7191 2010-02-21  Tobias Burnus  <burnus@net-b.de>
7192
7193         PR fortran/35259
7194         * doc/invoke.texi (-fassociative-math): Document that this
7195         option is automatically enabled for Fortran.
7196
7197 2010-02-20  David S. Miller  <davem@davemloft.net>
7198
7199         * configure.ac: Test if linker and assembler properly support
7200         GOTDATA_OP relocations.
7201         * configure: Rebuild.
7202         * config.in: Likewise.
7203         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
7204         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
7205         (movsi_high_pic): Likewise.
7206         (movdi_lo_sum_pic): Likewise.
7207         (movdi_high_pic): Likewise.
7208         (movsi_pic_gotdata_op): New pattern.
7209         (movdi_pic_gotdata_op): Likewise.
7210         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
7211         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
7212
7213 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
7214
7215         PR target/43067
7216         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
7217         attribute to ssemul.
7218         (xop_mulv2div2di3_high): Ditto.
7219
7220 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7221
7222         PR c++/35669
7223         * c.opt (Wconversion-null): New option.
7224         * doc/invoke.texi (Wconversion-null): Document.
7225
7226 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7227
7228         * common.opt (Wlarger-than-): Add Undocumented.
7229
7230 2010-02-19  Mike Stump  <mikestump@comcast.net>
7231
7232         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
7233
7234 2010-02-19  Jason Merrill  <jason@redhat.com>
7235
7236         PR target/40332
7237         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
7238         * configure: Likewise.
7239
7240 2010-02-20  Alan Modra  <amodra@gmail.com>
7241
7242         PR middle-end/42344
7243         * cgraph.h (cgraph_make_decl_local): Declare.
7244         * cgraph.c (cgraph_make_decl_local): New function.
7245         (cgraph_make_node_local): Use it.
7246         * cgraphunit.c (cgraph_function_versioning): Likewise.
7247         * ipa.c (function_and_variable_visibility): Likewise.
7248
7249 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
7250
7251         PR bootstrap/43121
7252         * except.c (sjlj_emit_function_enter): Don't call
7253         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
7254         directly.
7255         * rtl.h (add_reg_br_prob_note): Remove prototype.
7256
7257 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7258
7259         PR 41779
7260         * c-common.c (conversion_warning): Remove widening conversions
7261         before checking the conversion of integers to reals.
7262
7263 2010-02-19  Mike Stump  <mikestump@comcast.net>
7264
7265         PR middle-end/43125
7266         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
7267
7268         PR objc/43061
7269         * cgraphunit.c (process_function_and_variable_attributes): Check
7270         DECL_PRESERVE_P instead of looking up attribute "used".
7271         * ipa-pure-const.c (check_decl): Likewise.
7272         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
7273         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
7274         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
7275         instead of attribute "used".
7276         * config/sol2-c.c (solaris_pragma_init): Likewise.
7277         (solaris_pragma_fini): Likewise.
7278
7279 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
7280
7281         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
7282         Use XCNEW instead of xcalloc.
7283         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
7284         XNEW instead of xmalloc.
7285         (get_fields): Use XNEWVEC instead of xmalloc.
7286
7287         PR debug/43084
7288         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
7289         populate vars array.
7290         (create_new_general_access): For debug stmts just reset value.
7291         (get_stmt_accesses): For accesses within debug stmts just record them
7292         using add_access_to_acc_sites instead of preventing the peeling or
7293         counting them as accesses.
7294
7295         PR middle-end/42233
7296         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
7297
7298 2010-02-19  Richard Guenther  <rguenther@suse.de>
7299
7300         PR tree-optimization/42916
7301         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
7302         instructions.
7303
7304 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
7305
7306         * configure.ac: Replace all uses of changequote in macro arguments
7307         with proper quoting.
7308
7309 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
7310
7311         PR middle-end/42233
7312         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
7313
7314 2010-02-19  Richard Guenther  <rguenther@suse.de>
7315
7316         PR tree-optimization/42944
7317         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
7318         test for aliasing with errno.
7319
7320 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
7321
7322         PR middle-end/42233
7323         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
7324         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
7325         * dojump.c: Include output.h.
7326         (inv): New inline function.
7327         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
7328         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
7329         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
7330         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
7331         argument, pass it down to other calls.
7332         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
7333         add REG_BR_PROB note to the conditional jump.
7334         * cfgexpand.c (add_reg_br_prob_note): Removed.
7335         (expand_gimple_cond): Don't call it, add the probability
7336         as last argument to jumpif_1/jumpifnot_1.
7337         * Makefile.in (dojump.o): Depend on output.h.
7338         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
7339         callers.
7340         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
7341         * stmt.c (do_jump_if_equal): Likewise.
7342         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
7343         * loop-unswitch.c (compare_and_jump_seq): Likewise.
7344         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
7345         Likewise.
7346         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
7347         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
7348         jumpifnot_1 callers.
7349         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
7350         callers.
7351         (store_expr): Adjust jumpifnot caller.
7352         (store_constructor): Adjust jumpif caller.
7353
7354         PR middle-end/42233
7355         * gimplify.c (gimple_boolify): For __builtin_expect call
7356         gimple_boolify also on its first argument.
7357
7358 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
7359
7360         * configure.ac (gnu-unique-object): Wrap regexps using [] in
7361         changequote block.
7362         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
7363         * configure: Regenerated.
7364
7365 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7366
7367         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
7368         lang_hooks.types_compatible_p instead of comptypes.
7369
7370 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
7371
7372         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
7373         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
7374         if __prefer_thumb__ is defined.
7375
7376 2010-02-18  Martin Jambor  <mjambor@suse.cz>
7377
7378         PR tree-optimization/43066
7379         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
7380         array with zero-sized element type.
7381
7382 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
7383
7384         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
7385         rtx, allocate struct var_loc_node here and return it to the
7386         caller, and only if it is actually needed.
7387         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
7388         move it earlier and return immediately if it returns NULL.
7389
7390 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
7391
7392         * config/sparc/gas.h: New file.  Restore
7393         TARGET_ASM_NAMED_SECTION to its ELF default.
7394         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
7395         check !HAVE_GNU_AS.
7396         * config/sparc/sparc.c (sparc_elf_asm_named_section):
7397         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
7398         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
7399         after sparc/sysv4.h.
7400
7401 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
7402
7403         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
7404
7405 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
7406
7407         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
7408         patterns from predicated pattern.
7409
7410 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
7411
7412         PR target/43103
7413         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
7414         for insn mnemonic suffix.
7415
7416 2010-02-17  Richard Guenther  <rguenther@suse.de>
7417
7418         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
7419         to loop PHI nodes.
7420
7421 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
7422
7423         PR debug/42918
7424         * caller-save.c (save_call_clobbered_regs): If BB ends with
7425         a DEBUG_INSN, move any notes in between last real insn and the last
7426         DEBUG_INSN after the last DEBUG_INSN.
7427
7428 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
7429
7430         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
7431         Fix return type.  Fix argument type.  Explain meaning of return value.
7432
7433 2010-02-16  Richard Guenther  <rguenther@suse.de>
7434
7435         PR tree-optimization/41043
7436         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
7437         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
7438         statements ...
7439         (vrp_visit_phi_node): ... but only for loop PHI nodes.
7440
7441 2010-02-16  Ira Rosen  <irar@il.ibm.com>
7442
7443         PR tree-optimization/43074
7444         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
7445         * tree-vect-loop.c (vect_analyze_loop_operations): Add
7446         vectorizable cycles in hybrid SLP check.
7447         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
7448
7449 2010-02-16  Richard Guenther  <rguenther@suse.de>
7450
7451         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
7452         (true_dependence): If memrefs_conflict_p computes must-alias
7453         trust it.  Move TBAA check after offset-based disambiguation.
7454         (canon_true_dependence): Likewise.
7455
7456 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
7457
7458         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
7459         * doc/invoke.texi: Document it.
7460         * var-tracking.c: Include toplev.h and params.h.
7461         (vt_find_locations): Return bool indicating success.  Compute
7462         hash sizes unconditionally.  Check new parameter, report.
7463         (variable_tracking_main_1): Check vt_find_locations results and
7464         retry.  Renamed from...
7465         (variable_tracking_main): ... this.  New wrapper to preserve
7466         flag_var_tracking_assignments.
7467         * Makefile.in (var-tracking.o): Adjust dependencies.
7468
7469 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
7470             Jakub Jelinek <jakub@redhat.com>
7471
7472         PR target/42854
7473         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
7474         if weak_import attribute is present.
7475         * config/darwin.c (machopic_select_section): Likewise.
7476
7477 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
7478
7479         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
7480         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
7481         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
7482         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
7483
7484         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
7485         types.
7486
7487         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
7488         Fix argument types.
7489
7490         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
7491         Rewrite text to refer to the names.
7492
7493 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
7494
7495         * config/i386/i386-builtin-types.def
7496         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
7497         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
7498         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
7499         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
7500         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
7501         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
7502         IX86_BUILTIN_VPERMIL2PS256.
7503         (MULTI_ARG_4_DF2_DI_I): Defined.
7504         (MULTI_ARG_4_DF2_DI_I1): Defined.
7505         (MULTI_ARG_4_SF2_SI_I): Defined.
7506         (MULTI_ARG_4_SF2_SI_I1): Defined.
7507         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
7508         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
7509         __builtin_ia32_vpermil2ps256.
7510         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
7511         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
7512         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
7513         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
7514         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
7515         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
7516         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
7517         CODE_FOR_xop_vpermil2v8sf3.
7518         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
7519         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
7520         * config/i386/xopintrin.h (_mm_permute2_pd): New.
7521         (_mm256_permute2_pd): New.
7522         (_mm_permute2_ps): New.
7523         (_mm256_permute2_ps): New.
7524
7525 2010-02-15  Nick Clifton  <nickc@redhat.com>
7526
7527         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
7528         boolean parameters.  Use emit_jump_insn when emitting a pop
7529         instruction containing a return insn.
7530         (push): Use 'true' rather than '1' as second parameter to F.
7531         (h8300_expand_prologue): Likewise.
7532         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
7533         (h8300_expand_epilogue): Likewise.
7534
7535 2010-02-15  Richard Guenther  <rguenther@suse.de>
7536
7537         PR middle-end/43068
7538         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
7539         if that is zero.
7540
7541 2010-02-15  Nick Clifton  <nickc@redhat.com>
7542
7543         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
7544         delta.
7545
7546 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
7547
7548         * intl.c (fake_ngettext): New function.
7549         * intl.h (fake_ngettext): Declare.
7550         (ngettext): Define macro.
7551         * collect2.c (notice_translated): New function.
7552         (main): Use notice_translated and ngettext.
7553         * collect2.h (notice_translated): Declare.
7554
7555 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
7556
7557         * reorg.c (delete_computation): Comment fixes.
7558         * caller-save.c (setup_save_areas): Idem.
7559         * sel-sched-dump.c (dump_lv_set): Idem.
7560         * rtl.def: Idem.
7561
7562 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7563
7564         * config/s390/s390.c (s390_sched_init): New function.
7565         (TARGET_SCHED_INIT): Target hook defined.
7566
7567 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
7568             Jack Howarth  <howarth@bromo.med.uc.edu>
7569             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
7570
7571         PR target/42982
7572         Partial revert of unintended change in fix for PR41605.
7573         * config/darwin.h: Fix typo.
7574         * config/darwin9.h: Same.
7575
7576 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
7577
7578         * c-pch.c (pch_init): Clear v.
7579
7580 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
7581
7582         PR middle-end/42930
7583         * graphite-scop-detection.c (graphite_can_represent_scev): Call
7584         graphite_can_represent_init for MULT_EXPR.
7585
7586 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
7587
7588         PR middle-end/42914
7589         PR middle-end/42530
7590         * graphite-sese-to-poly.c (remove_phi): New.
7591         (translate_scalar_reduction_to_array): Call remove_phi.
7592
7593 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
7594
7595         PR middle-end/42771
7596         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
7597         * graphite-clast-to-gimple.h (gloog): Update declaration.
7598         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
7599         * graphite-poly.h (struct poly_bb): Add missing comments.
7600         (struct scop): Add poly_scop_p field.
7601         (POLY_SCOP_P): New.
7602         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
7603         * graphite.c (graphite_transform_loops): Build the polyhedral
7604         representation for each scop before code generation.
7605         * sese.c (rename_variables_in_operand): Removed.
7606         (rename_variables_in_expr): Return the renamed expression.
7607         (rename_sese_parameters): New.
7608         * sese.h (rename_sese_parameters): Declared.
7609
7610 2010-02-11  Richard Guenther  <rguenther@suse.de>
7611
7612         PR tree-optimization/42998
7613         * tree-ssa-pre.c (create_expression_by_pieces): Treat
7614         POINTER_PLUS_EXPR properly.
7615
7616 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
7617             Changpeng Fang  <changpeng.fang@amd.com>
7618
7619         PR middle-end/40886
7620         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
7621         the cost of an IV candidate when the IV is used in a test against zero.
7622
7623         * gcc.dg/tree-ssa/ivopts-3.c: New.
7624
7625 2010-02-11  Richard Guenther  <rguenther@suse.de>
7626
7627         PR lto/41664
7628         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
7629         pointer-vs-decl case by swapping refs.  Handle some cases
7630         of pointer-vs-decl disambiguations more conservatively.
7631         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
7632         to false after expanding.
7633
7634 2010-02-11  Richard Guenther  <rguenther@suse.de>
7635
7636         PR driver/43021
7637         * gcc.c (process_command): Handle LTO file@offset case more
7638         appropriately.
7639
7640 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
7641
7642         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
7643         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
7644         of DEBUG_INSNs.
7645         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
7646
7647         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
7648         if MEM's mode size isn't DWARF2_ADDR_SIZE.
7649         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
7650         Optimize eq/ne comparisons when both arguments are known to be
7651         zero-extended.
7652         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
7653         Don't mask operands unnecessarily if they are known to be already
7654         zero-extended.
7655
7656 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
7657
7658         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
7659         instead of loop.
7660
7661 2010-02-10  Richard Guenther  <rguenther@suse.de>
7662
7663         PR tree-optimization/43017
7664         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
7665         for wrapping signed arithmetic.
7666
7667 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
7668
7669         PR debug/43010
7670         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
7671         if no debug info should be emitted for it.
7672
7673 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
7674
7675         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
7676         note when flag_exceptions is set.
7677
7678 2010-02-10  Duncan Sands  <baldrick@free.fr>
7679
7680         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
7681
7682 2010-02-10  Richard Guenther  <rguenther@suse.de>
7683
7684         PR c/43007
7685         * tree.c (get_unwidened): Handle constants.
7686         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
7687
7688 2010-02-10  Martin Jambor  <mjambor@suse.cz>
7689
7690         PR lto/42985
7691         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
7692         check for variable argument counts independently.
7693
7694 2010-02-10  Christian Bruel  <christian.bruel@st.com>
7695
7696         PR target/42841
7697         * config/sh/sh.c (find_barrier): Increase length for non delayed
7698         conditional branches.
7699
7700 2010-02-10  Christian Bruel  <christian.bruel@st.com>
7701
7702         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
7703
7704 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
7705
7706         * builtins.c (set_builtin_user_assembler_name): Also handle
7707         ffs if int is smaller than word.
7708
7709 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
7710
7711         PR middle-end/42973
7712         * ira-conflicts.c (get_dup): Remove.
7713         (process_reg_shuffles): Add new parameter.  Use it as an
7714         additional guard for copy generation.
7715         (add_insn_allocno_copies): Rewrite.
7716
7717 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
7718
7719         * common.opt (fsched2-use-traces): Preserved for backward
7720         compatibility.
7721         * doc/invoke.texi: Remove the documentation about option
7722         -fsched2-use-traces.
7723         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
7724         flag_sched2_use_traces.
7725         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
7726         the backward compatibility flag section.
7727
7728 2010-02-09  Richard Guenther  <rguenther@suse.de>
7729
7730         PR tree-optimization/43008
7731         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
7732         make HEAP variables initialized from global memory if they
7733         are not known builtin functions.
7734         (find_func_aliases): Adjust.
7735
7736 2010-02-09  Richard Guenther  <rguenther@suse.de>
7737
7738         PR tree-optimization/43000
7739         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
7740         arithmetic manually.
7741
7742 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
7743
7744         PR tree-optimization/42931
7745         * tree-loop-linear.c (try_interchange_loops): Don't call
7746         double_int_mul if estimated_loop_iterations failed.
7747
7748 2010-02-08  Martin Jambor  <mjambor@suse.cz>
7749
7750         PR middle-end/42898
7751         * tree-sra.c (build_accesses_from_assign): Do not mark in
7752         should_scalarize_away_bitmap if stmt has volatile ops.
7753         (sra_modify_assign): Do not process assigns piecemeal if if stmt
7754         has volatile ops.
7755
7756 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
7757
7758         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
7759
7760 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
7761
7762         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
7763         before the pattern.
7764
7765 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
7766
7767         PR middle-end/42946
7768         * df-core.c (df_finish_pass): Change type of saved_flags to int.
7769
7770 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
7771
7772         PR middle-end/42988
7773         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
7774         to unknown_dependence.
7775         (graphite_legal_transform_dr): Handle the unknown_dependence.
7776         (graphite_carried_dependence_level_k): Same.
7777
7778 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
7779
7780         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
7781
7782 2010-02-07  Richard Guenther  <rguenther@suse.de>
7783
7784         PR middle-end/42991
7785         * expr.c (get_inner_reference): Always initialize *pbitsize.
7786
7787 2010-02-07  Richard Guenther  <rguenther@suse.de>
7788
7789         PR middle-end/42956
7790         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
7791         new ARRAY_REFs on variable size element or minimal index arrays.
7792         Complete.
7793         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
7794         gimple_fold_indirect_ref.
7795
7796 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
7797
7798         PR target/42957
7799         * arm.c (arm_override_options): Just return if the user has specified
7800         an invalid fpu name.
7801
7802 2010-02-03  Jason Merrill  <jason@redhat.com>
7803
7804         PR c++/42870
7805         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
7806         i386_pe_maybe_record_exported_symbol.
7807
7808 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
7809
7810         PR target/42924
7811         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
7812         (pa_delegitimize_address): New function.
7813
7814 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
7815
7816         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
7817         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
7818
7819 2010-02-05  Richard Guenther  <rguenther@suse.de>
7820
7821         PR lto/42762
7822         * lto-streamer-in.c (get_resolution): Deal with references
7823         to undefined functions.
7824
7825 2010-02-05  Richard Guenther  <rguenther@suse.de>
7826
7827         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
7828         (fold_const_aggregate_ref): Likewise.
7829         (ccp_fold_stmt): Substitute loads.
7830         (maybe_fold_reference): Verify types before substituting.
7831         Unshare properly.
7832         (fold_gimple_assign): Unshare properly.
7833         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
7834
7835 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
7836
7837         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
7838         for rs6000_gen_cell_microcode.
7839
7840 2010-02-04  Richard Guenther  <rguenther@suse.de>
7841
7842         PR rtl-optimization/42952
7843         * dse.c (const_or_frame_p): Remove MEM handling.
7844
7845 2010-02-04  Nick Clifton  <nickc@redhat.com>
7846
7847         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
7848         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
7849         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
7850         (mn10300_asm_output_mi_thunk): New function.
7851         (mn10300_can_output_mu_thunk): New function.
7852         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
7853         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
7854         (FUNCTION_ARG): Delete incorrect comment.
7855
7856 2010-02-03  Jason Merrill  <jason@redhat.com>
7857
7858         PR c++/40138
7859         * fold-const.c (operand_equal_p): Handle erroneous types.
7860
7861 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
7862
7863         * config/h8300/h8300.md (can_delay): Fix attibute condition.
7864
7865 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
7866
7867         PR rtl-optimization/42941
7868         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
7869         of xmalloc.
7870
7871 2010-02-03  Jason Merrill  <jason@redhat.com>
7872
7873         PR c++/35652
7874         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
7875
7876 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
7877
7878         PR debug/42896
7879         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
7880         (cselib_reset_table): Renamed from...
7881         (cselib_reset_table_with_next_value): ... this.
7882         (cselib_get_next_uid): Renamed from...
7883         (cselib_get_next_unknown_value): ... this.
7884         * cselib.c (next_uid): Renamed from...
7885         (next_unknown_value): ... this.
7886         (cselib_clear_table): Adjust.
7887         (cselib_reset_table): Adjust.  Renamed from...
7888         (cselib_reset_table_with_next_value): ... this.
7889         (cselib_get_next_uid): Adjust.  Renamed from...
7890         (cselib_get_next_unknown_value): ... this.
7891         (get_value_hash): Use hash.
7892         (cselib_hash_rtx): Likewise.
7893         (new_cselib_val): Adjust.  Set and dump uid.
7894         (cselib_lookup_mem): Pass next_uid as hash.
7895         (cselib_subst_to_values): Likewise.
7896         (cselib_log_lookup): Dump uid.
7897         (cselib_lookup): Pass next_uid as hash.  Adjust.
7898         (cselib_process_insn): Adjust.
7899         (cselib_init): Initialize next_uid.
7900         (cselib_finish): Adjust.
7901         (dump_cselib_table): Likewise.
7902         * dse.c (canon_address): Dump value uid.
7903         * print-rtl.c (print_rtx): Print value uid.
7904         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
7905         (dvuid): New type.
7906         (dv_uid): New function, sort of renamed from...
7907         (dv_htab_hash): ... this, reimplemented in terms of it and...
7908         (dv_uid2hash): ... this.  New.
7909         (variable_htab_eq): Drop excess assertions.
7910         (tie_break_pointers): Removed.
7911         (canon_value_cmp): Compare uids.
7912         (variable_post_merge_New_vals): Print uids.
7913         (vt_add_function_parameters): Adjust.
7914         (vt_initialize): Reset table.  Adjust.
7915
7916 2010-02-03  Richard Guenther  <rguenther@suse.de>
7917
7918         PR tree-optimization/42944
7919         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
7920         (call_may_clobber_ref_p_1): Likewise.  Properly handle
7921         malloc and calloc clobbering errno.
7922
7923 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
7924
7925         * doc/invoke.texi: Fix name of sched1 dump.
7926
7927         * opts.c (decode_options): Set flag_tree_switch_conversion
7928         only conditionally on optimize >= 2.
7929
7930         * gcse.c: Assorted comment fixes in pass description.
7931
7932 2010-02-03  Anthony Green  <green@moxielogic.com>
7933
7934         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
7935         nop padding in order to maintain alignment of storage location of
7936         target function address.
7937         (moxie_trampoline_init): Store target function address at newly
7938         aligned location.
7939         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
7940         to 32.
7941         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
7942
7943 2010-02-03  Richard Guenther  <rguenther@suse.de>
7944
7945         PR middle-end/42927
7946         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
7947
7948 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7949
7950         * config.gcc: Reenable check for obsolete targets.
7951         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
7952         mips-sgi-irix6.[0-4]*.
7953
7954 2010-02-02  Nick Clifton  <nickc@redhat.com>
7955
7956         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
7957         constant size of 4 as being the same as 0.
7958         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
7959         can take values in the range 0..4.
7960
7961 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
7962
7963         PR java/41991
7964         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
7965         as _darwin10_Unwind_FindEnclosingFunction().
7966         * libgcc-libsystem.ver: New.
7967
7968 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
7969
7970         PR target/41399
7971         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
7972         implicitly set registers.
7973
7974 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
7975
7976         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
7977         (arm_override_options): Allow automatic selection of the thread
7978         pointer register if thumb2.
7979         (legitimize_pic_address): Improve code sequences for Thumb2.
7980         (arm_call_tls_get_addr): Likewise.
7981         (legitimize_tls_address): Likewise.
7982         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
7983         (pic_load_addr_32bit): ... this.  New named pattern.
7984         * thumb2.md (pic_load_addr_thumb2): Delete.
7985         (pic_load_dot_plus_four): Delete.
7986         (tls_load_dot_plus_four): New named pattern.
7987
7988 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7989
7990         PR libgomp/29986
7991         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
7992         Document fix for TLS bug.
7993
7994 2010-01-31  Richard Guenther  <rguenther@suse.de>
7995
7996         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
7997         conservatively correct.
7998
7999 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8000
8001         PR target/42850
8002         Revert:
8003         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8004
8005         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
8006
8007 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8008
8009         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
8010
8011 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
8012
8013         * config.gcc: Adjust order of makefile fragments for mingw targets.
8014
8015 2010-01-31  Richard Guenther  <rguenther@suse.de>
8016
8017         PR middle-end/42898
8018         * gimplify.c (gimplify_init_constructor): For volatile LHS
8019         initialize a temporary.
8020
8021 2010-01-31  Matthias Klose  <doko@ubuntu.com>
8022
8023         * configure.ac: Fix __stack_chk_fail check for cross builds configured
8024         --with-headers
8025         * configure: Regenerate.
8026
8027 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
8028
8029         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
8030         the same alias set and their sizes different constantness.
8031         (aliasing_component_refs_p): Revert 2009-10-24 change.
8032
8033 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8034
8035         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
8036         unused.
8037
8038 2010-01-29  Richard Guenther  <rguenther@suse.de>
8039
8040         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
8041         Assert we successfully updated the call.
8042
8043 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
8044
8045         PR rtl-optimization/42889
8046         * df.h (df_set_bb_dirty_nonlr): New prototype.
8047         * df-core.c (df_set_bb_dirty_nonlr): New function.
8048         * df-scan.c (df_insn_rescan): Call it instead of
8049         df_set_bb_dirty for DEBUG_INSNs.
8050
8051 2010-01-29  Richard Guenther  <rguenther@suse.de>
8052
8053         PR middle-end/37448
8054         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
8055         quadratic behavior in most cases.
8056
8057 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
8058
8059         PR target/42891
8060         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
8061         in the call to gen_x86_movsicc_0_m1.
8062
8063 2010-01-28  Richard Guenther  <rguenther@suse.de>
8064
8065         PR tree-optimization/42871
8066         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
8067
8068 2010-01-28  Richard Guenther  <rguenther@suse.de>
8069
8070         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
8071         into call arguments.
8072
8073 2010-01-28  Richard Guenther  <rguenther@suse.de>
8074
8075         PR middle-end/42883
8076         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
8077         the forwarder if the destination is an EH landing pad.
8078
8079 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
8080
8081         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
8082         block list passed to gimple_duplicate_sese_tail.
8083         (parallelize_loops): Avoid parallelization when the function
8084         has_nonlocal_label.
8085         Avoid parallelization when the preheader is IRREDUCIBLE.
8086         Try to optimize when estimated_loop_iterations_int is unresolved.
8087         Add the loop's location to the dump file.
8088         * tree-cfg.c (add_phi_args_after_redirect): Remove.
8089         (gimple_duplicate_sese_tail): Remove the check for the latch.
8090         Redirect nexits to the exit block.
8091         Remove handling of the incoming edges to the latch.
8092         Redirect the backedge from the copied latch to the exit bb.
8093
8094 2010-01-28  Michael Matz  <matz@suse.de>
8095
8096         PR target/42881
8097         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
8098         Wrap force_reg into a sequence, emit it before user.
8099
8100 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
8101
8102         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
8103         (arm_rev): New.
8104         (arm_legacy_rev): Likewise.
8105         (thumb_legacy_rev): Likewise.
8106
8107 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
8108
8109         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
8110         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
8111         on MEM's address failed, try avoid_constant_pool_reference and
8112         recurse if it returned something different.
8113         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
8114         address, try avoid_constant_pool_reference and recurse if it
8115         returned something different.
8116         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
8117         address and avoid_constant_pool_reference returned something
8118         different, don't set have_address.
8119
8120 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
8121
8122         PR debug/42861
8123         * var-tracking.c (val_store): Add modified argument, obey it.
8124         Adjust callers.
8125         (count_uses): Move down logging of main.
8126         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
8127         don't need resolution.
8128         (emit_notes_in_bb): Likewise.
8129
8130 2010-01-27  Richard Guenther  <rguenther@suse.de>
8131
8132         PR middle-end/42878
8133         * tree-inline.c (remap_decl): Delay remapping of SSA name
8134         default definitions until we need them.
8135
8136 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
8137
8138         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
8139         (rs6000_delegitimize_address): New function.
8140
8141         * config/s390/s390.c (s390_delegitimize_address): Call
8142         delegitimize_mem_from_attrs.
8143
8144         PR middle-end/42874
8145         * tree-inline.c (cannot_copy_type_1): Removed.
8146         (copy_forbidden): Don't forbid copying of functions containing
8147         records/unions with variable length fields.
8148
8149 2010-01-27  Christian Bruel  <christian.bruel@st.com>
8150
8151         Revert:
8152         PR target/42841
8153         * config/sh/sh.c (find_barrier): Increase length for non delayed
8154         conditional branches.
8155
8156 2010-01-27  Matthias Klose  <doko@ubuntu.com>
8157
8158         * configure.ac (gnu-unique-object): Fix ldd version check.
8159         * configure: Regenerate.
8160
8161 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8162
8163         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
8164         HAVE_GNU_AS value.
8165         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
8166         Test for HAVE_GNU_AS value.
8167
8168 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8169
8170         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
8171         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
8172         INT64_TYPE): Define.
8173         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
8174         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
8175         INT_LEAST64_TYPE): Define.
8176         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
8177         UINT_LEAST64_TYPE): Define.
8178         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
8179         INT_FAST64_TYPE): Define.
8180         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
8181         UINT_FAST64_TYPE): Define.
8182         (INTMAX_TYPE, UINTMAX_TYPE): Define.
8183         (INTPTR_TYPE, UINTPTR_TYPE): Define.
8184         (SIG_ATOMIC_TYPE): Define.
8185
8186 2010-01-26  Richard Guenther  <rguenther@suse.de>
8187
8188         * df-scan.c (df_scan_set_bb_info): Remove assert.
8189         (df_insn_rescan_debug_internal): Merge asserts.
8190         (df_install_ref): Likewise.
8191         (df_mark_reg): Use bitmap_set_range.
8192         (df_hard_reg_used_p): Remove assert.
8193         (df_hard_reg_used_count): Likewise.
8194
8195 2010-01-26  Richard Guenther  <rguenther@suse.de>
8196
8197         PR rtl-optimization/42685
8198         * web.c (web_main): Ignore DEBUG_INSNs.
8199
8200 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
8201
8202         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
8203
8204         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
8205         Fix types of fndecl and arglist parameters.
8206
8207 2010-01-26  Richard Guenther  <rguenther@suse.de>
8208
8209         PR middle-end/42806
8210         * tree-eh.c (unsplit_eh): Skip debug insns.
8211
8212 2010-01-26  Richard Guenther  <rguenther@suse.de>
8213
8214         PR tree-optimization/42250
8215         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
8216
8217 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
8218
8219         PR fortran/42866
8220         * omp-low.c (expand_omp_sections): Only use single_pred if
8221         l2_bb is single_pred_p.
8222
8223 2010-01-25  Christian Bruel  <christian.bruel@st.com>
8224
8225         PR target/42841
8226         * config/sh/sh.c (find_barrier): Increase length for non delayed
8227         conditional branches.
8228         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
8229
8230 2010-01-24  David S. Miller  <davem@davemloft.net>
8231
8232         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
8233         define if not using GAS.
8234         * config/sparc/sparc.c (sparc_elf_asm_named_section):
8235         Likewise.  Delete SECTION_MERGE code, which is only applicable
8236         when using GAS.
8237
8238 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
8239
8240         PR c++/42748
8241         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
8242         mangling of va_list in system headers.
8243
8244 2010-01-23  Toon Moene  <toon@moene.org>
8245
8246         * tree-predcom.c (combine_chains): Return NULL, not false.
8247
8248 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
8249
8250         * tree-loop-distribution.c (distribute_loop): Fix declaration and
8251         initialization of variable res to agree with return type.
8252
8253 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
8254
8255         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
8256         * tree-sra.c: Add include of expr.h.
8257
8258 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
8259
8260         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
8261         insert the debug stmt on the single non-EH edge from the stmt.
8262
8263 2010-01-22  Richard Henderson  <rth@redhat.com>
8264
8265         PR tree-opt/42833
8266         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
8267         the RHS until after generate_subtree_copies has insertted its
8268         code before the current statement.
8269
8270 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
8271
8272         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
8273
8274         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
8275
8276 2010-01-21  Martin Jambor  <mjambor@suse.cz>
8277
8278         PR tree-optimization/42585
8279         * tree-sra.c (struct access): New field grp_total_scalarization.
8280         (dump_access): Dump the new field.
8281         (should_scalarize_away_bitmap): New variable.
8282         (cannot_scalarize_away_bitmap): Likewise.
8283         (sra_initialize): Allocate new bitmaps.
8284         (sra_deinitialize): Free new bitmaps.
8285         (create_access_1): New function.
8286         (create_access): Parts moved to create_access_1.
8287         (type_consists_of_records_p): New function.
8288         (completely_scalarize_record): Likewise.
8289         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
8290         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
8291         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
8292         access.
8293         (analyze_all_variable_accesses): Completely scalarize small eligible
8294         records.
8295
8296 2010-01-21  Martin Jambor  <mjambor@suse.cz>
8297
8298         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
8299
8300 2010-01-21  Andrew Haley  <aph@redhat.com>
8301
8302         * gcc.c (process_command): Move lang_specific_driver before
8303         setting cc_libexec_prefix.
8304
8305 2010-01-21  Richard Guenther  <rguenther@suse.de>
8306
8307         PR middle-end/19988
8308         * fold-const.c (negate_expr_p): Pretend only negative
8309         real constants are easily negatable.
8310
8311 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
8312             Jason Merrill  <jason@redhat.com>
8313
8314         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
8315         (TYPE_TRANSPARENT_AGGR): this, for union and record.
8316         * calls.c (initialize argument_information): Handle it.
8317         * c-common.c (handle_transparent_union_attribute): Use new name.
8318         * c-decl.c (finish_struct): Ditto.
8319         * c-typeck.c (type_lists_compatible_p): Ditto.
8320         (convert_for_assignment): Use new name and also handle record.
8321         * function.c (aggregate_value_p): Handle it.
8322         (pass_by_reference): Ditto.
8323         (assign_parm_data_types): Ditto.
8324         * print-tree.c (print_node): Ditto.
8325         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
8326         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
8327         * tree.c (first_field): New fn.
8328
8329 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
8330
8331         PR target/42818
8332         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
8333         even when linking statically, for now.
8334
8335 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
8336
8337         PR debug/42715
8338         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
8339         without a cselib val.
8340         (count_uses): Accept MO_VAL_SET with no val on stores.
8341         (add_stores): Likewise.
8342
8343 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
8344
8345         * var-tracking.c (check_value_val): Add a compile time assertion.
8346         (dv_is_decl_p): Simplify.
8347         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
8348         gcc_assert if ENABLE_CHECKING.
8349
8350 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
8351
8352         PR debug/42782
8353         * var-tracking.c: Include tree-flow.h.
8354         (mem_dies_at_call): New.
8355         (dataflow_set_preserve_mem_locs): Use it.
8356         (dataflow_set_remove_mem_locs): Likewise.
8357         (dump_var): Renamed from dump_variable.  Adjust all callers.
8358         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
8359         * Makefile.in (var-tracking.o): Adjust deps.
8360
8361 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
8362
8363         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
8364
8365 2010-01-20  Richard Guenther  <rguenther@suse.de>
8366
8367         PR tree-optimization/42717
8368         * tree-ssa-dce.c (get_live_post_dom): Remove.
8369         (forward_edge_to_pdom): Take an arbitrary edge to copy
8370         degenerate PHI args from.
8371         (remove_dead_stmt): Use the first post-dominator even if it
8372         does not contain live statements as redirection destination.
8373
8374 2010-01-20  Richard Guenther  <rguenther@suse.de>
8375
8376         * tree-inline.c (estimate_num_insns): Handle EH builtins.
8377
8378 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
8379
8380         * sel-sched.c (create_speculation_check): Remove set but not used
8381         variable twin.
8382         (try_transformation_cache): Remove set but not used variable ds.
8383         (calculate_privileged_insns): Remove set but not used variables
8384         cur_insn and min_spec_insn.
8385         (find_best_expr): Remove set but not used variable avail_n.
8386         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
8387         variable e.
8388         * cgraphunit.c (assemble_thunk): Remove set but not used variable
8389         false_label.
8390         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
8391         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
8392         new_scop_exit_edge.
8393
8394 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
8395
8396         PR bootstrap/42786
8397         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
8398         cpu types.  Add support for *-sse3 cpu types.
8399         (x86_64-*-*): Ditto.
8400
8401 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
8402
8403         PR middle-end/42803
8404         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
8405         argument, call initializer_constant_valid_p_1 instead of
8406         initializer_constant_valid_p, pass CACHE to it, return NULL
8407         immediately if first call returns NULL.
8408         (initializer_constant_valid_p_1): New function.
8409         (initializer_constant_valid_p): Use it.
8410
8411 2010-01-20  Thomas Quinot  <quinot@adacore.com>
8412
8413         * tree.def (PLACEHOLDER_EXPR): Fix comment.
8414
8415 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
8416
8417         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
8418         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
8419         (loc_list_from_tree): Don't handle unsigned division.  Handle
8420         signed modulo using DW_OP_{over,over,div,mul,minus}.
8421         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
8422         modulo instead of signed.
8423
8424 2010-01-20  DJ Delorie  <dj@redhat.com>
8425
8426         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
8427         (Fpa): Pass it
8428         (h8300_emit_stack_adjustment): Propogate it.
8429         (push): Pass it.
8430         (h8300_expand_prologue): Likewise.
8431         (h8300_expand_epilogue): Likewise.
8432
8433 2010-01-19  Michael Matz  <matz@suse.de>
8434
8435         PR tree-optimization/41783
8436         * tree-data-ref.c (toplevel): Include flags.h.
8437         (dump_data_dependence_relation):  Also dump the inputs if the
8438         result will be unknown.
8439         (split_constant_offset_1): Look through some conversions.
8440         * tree-predcom.c (determine_roots_comp): Restart a new chain if
8441         the offset from last element is too large.
8442         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
8443         (reassociate_to_the_same_stmt): Handle vector registers.
8444         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
8445         (e.g. conversions).
8446         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
8447         wide_prolog_niters argument, emit widening instructions.
8448         (vect_do_peeling_for_alignment): Adjust caller, use widened
8449         variant of the iteration cound.
8450         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
8451
8452 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8453
8454         PR target/38697
8455         * config/arm/neon-testgen.m (emit_automatics): New parameter
8456         features. Adjust for Fixed_return_reg feature.
8457         (test_intrinsic): Call emit_automatics with new feature.
8458         * config/arm/neon.ml: Update copyright years.
8459         (features): New Fixed_return_reg feature.
8460         (ops): Update feature for Vget_low.
8461
8462 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
8463
8464         PR tree-optimization/42719
8465         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
8466         stmt uses.
8467
8468         PR debug/42728
8469         * fwprop.c (all_uses_available_at): Return false if def_set dest
8470         is a REG that is used in def_insn.
8471
8472 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
8473
8474         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
8475
8476         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
8477         Add argument names.
8478
8479         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
8480
8481         * target.h (struct gcc_target) <secondary_reload>: Change type
8482         of last argument to secondary_reload_info *.
8483
8484 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
8485
8486         PR target/42774
8487         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
8488         memory references with unaligned offsets.  Remove CQImode handling.
8489         (unaligned_memory_operand): Return 1 for memory references with
8490         unaligned offsets.  Remove CQImode handling.
8491
8492 2010-01-18  Richard Guenther  <rguenther@suse.de>
8493
8494         PR middle-end/39954
8495         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
8496         builtin calls.
8497
8498 2010-01-18  Richard Guenther  <rguenther@suse.de>
8499
8500         PR tree-optimization/42781
8501         * tree-ssa-structalias.c (find_what_var_points_to): Skip
8502         restrict processing only if the original variable was artificial.
8503
8504 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
8505
8506         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
8507         find number of popped argument bytes.
8508
8509         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
8510         Fix the text that describes the return value for invalid insns.
8511
8512         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
8513
8514         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
8515         Clarify what 'cost of the -dependence' is.  Fix quoting.
8516
8517         * toplev.c (default_get_pch_validity): Rename argument to "sz".
8518         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
8519
8520 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
8521
8522         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
8523         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
8524
8525 2010-01-17  Richard Guenther  <rguenther@suse.de>
8526
8527         PR middle-end/42248
8528         * function.c (split_complex_args): Take a VEC to modify.
8529         (assign_parms_augmented_arg_list): Build a VEC instead of
8530         a chain of PARM_DECLs.
8531         (assign_parms_unsplit_complex): Take a VEC of arguments.
8532         Do not fixup unmodified parms.
8533         (assign_parms): Deal with the VEC.
8534         (gimplify_parameters): Likewise.
8535
8536 2010-01-17  Richard Guenther  <rguenther@suse.de>
8537
8538         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
8539         node existence check.
8540         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
8541         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
8542         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
8543         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
8544         (gimple_execute_on_growing_pred): Likewise.
8545
8546 2010-01-17  Richard Guenther  <rguenther@suse.de>
8547
8548         PR tree-optimization/42773
8549         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
8550         (compute_antic_aux): Likewise.
8551         (compute_partial_antic_aux): Likewise.
8552
8553 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
8554
8555         PR debug/42767
8556         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
8557         and US_TRUNCATE.
8558
8559 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
8560
8561         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
8562         appearance.
8563
8564         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
8565         Fix markup for strict argument.
8566
8567         (TARGET_SCHED_REORDER2): Fix argument types.
8568
8569         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
8570         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
8571
8572         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
8573         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
8574
8575         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
8576         Add argument name.
8577
8578         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
8579         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
8580         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
8581         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
8582         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
8583
8584         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
8585
8586         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
8587
8588         (TARGET_ASM_RELOC_RW_MASK): Add return type.
8589         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
8590
8591         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
8592
8593         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
8594         Use prototype.
8595
8596         (TARGET_ASM_NAMED_SECTION): Fix argument list.
8597
8598         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
8599         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
8600
8601         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
8602
8603         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
8604
8605         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
8606         referring to it.  Fix language.
8607
8608         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
8609
8610         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
8611
8612         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
8613
8614         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
8615
8616         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
8617         '@var{stream}.  Remove stray 'and'.
8618
8619         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
8620
8621         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
8622
8623         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
8624
8625         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
8626         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
8627
8628         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
8629         Fix description of return value.
8630         Rename argument "sz" to "len."
8631
8632         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
8633         Clarify meaning of 'true' return value.
8634
8635         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
8636
8637         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
8638         rep_mode versus mode_rep.
8639
8640         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
8641
8642         (TARGET_BUILTIN_DECL): Fix name.
8643
8644         (TARGET_COMMUTATIVE_P): Fix type of first argument.
8645
8646         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
8647
8648         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
8649
8650         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
8651
8652         (TARGET_RELAXED_ORDERING): Use @deftypevr.
8653
8654         (TARGET_GET_DRAP_RTX): Note that this is a hook.
8655         Clarify language.
8656
8657         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
8658         Rename argument tm_fn to md_fn.
8659
8660         (TARGET_OPTION_PRINT): Fix argument list.
8661
8662 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
8663
8664         PR target/42664
8665         * config/i386/i386.c (ix86_fixup_binary_operands):
8666         Revert FMA4 fixup of operands.
8667
8668 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8669
8670         PR gcc/42525
8671         * Makefile.in (write_entries_to_file, install-plugin):
8672         Use \012 instead of \n with tr.
8673
8674 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
8675
8676         * configure.ac (HAVE_AS_REF): New C macro.
8677         * configure: Regenerate.
8678         * config.in: Likewise.
8679         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
8680         if HAVE_AS_REF.
8681         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
8682         if HAVE_AS_REF.
8683
8684 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
8685
8686         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
8687
8688         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
8689
8690         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
8691
8692         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
8693
8694         (TARGET_IN_SMALL_DATA_P): Fix argument type.
8695
8696         (TARGET_BINDS_LOCAL_P): Fix argument type.
8697
8698         (TARGET_ASM_FILE_END): Use prototype.
8699
8700         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
8701
8702         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
8703
8704         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
8705
8706         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
8707
8708         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
8709         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
8710
8711         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
8712         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
8713
8714         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
8715         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
8716         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
8717         (TARGET_ADDR_SPACE_CONVERT): Likewise.
8718
8719         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
8720
8721         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
8722
8723         (TARGET_INIT_BUILTINS): Use prototype.
8724
8725         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
8726         Put 'const char *' in braces.  Fix parameter types.
8727         (TARGET_INVALID_CONVERSION): Fix parameter types.
8728         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
8729         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
8730
8731         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
8732         Fix argument type.
8733
8734         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
8735
8736         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
8737
8738 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
8739
8740         * doc/tm.texi (TARGET_HELP): Fix return type.
8741
8742         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
8743         in braces.  Fix argument types.
8744
8745         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
8746
8747         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
8748
8749         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
8750
8751         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
8752         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
8753
8754         (TARGET_MANGLE_TYPE): Fix argument types.
8755
8756         (TARGET_IRA_COVER_CLASSES): Use prototype.
8757
8758         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
8759
8760         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
8761
8762         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
8763
8764         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
8765
8766         (TARGET_CALLEE_COPIES): Fix argument types.
8767
8768         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
8769
8770         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
8771
8772         (TARGET_FUNCTION_VALUE): Fix argument types.
8773
8774         (TARGET_RETURN_IN_MSB): Fix argument type.
8775
8776         (TARGET_RETURN_IN_MEMORY): Fix argument types.
8777
8778         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
8779
8780         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
8781
8782         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
8783         agree with return type.
8784
8785         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
8786
8787 2010-01-15  Jing Yu  <jingyu@google.com>
8788
8789         PR rtl-optimization/42691
8790         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
8791         a pseudo to a constant and are merged, and adjust comments.
8792
8793 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
8794
8795         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
8796
8797 2010-01-15  Richard Guenther  <rguenther@suse.de>
8798
8799         PR middle-end/42739
8800         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
8801         labels of computed or non-local gotos to the destination.
8802         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
8803         landing pad label is the first label.
8804
8805 2010-01-15  Richard Guenther  <rguenther@suse.de>
8806
8807         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
8808
8809 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
8810
8811         PR target/42747
8812         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
8813         to allow generation of the xssqrtdp instruction on power7.
8814         (sqrtdf2_fpr): Ditto.
8815
8816 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
8817
8818         PR middle-end/42674
8819         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
8820         functions with noreturn attribute.
8821
8822         PR c++/42608
8823         * varasm.c (declare_weak): Add weak attribute to decl if it
8824         doesn't have one already.
8825         (assemble_external): Only add decls to weak_decls if they also
8826         have weak attribute.
8827
8828 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
8829
8830         * var-tracking.c (var_reg_delete): Don't delete the association
8831         between REGs and values or one-part variables if the register
8832         isn't clobbered.
8833
8834 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
8835
8836         PR debug/42657
8837         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
8838         because its first operand is a non-localized variable.
8839
8840 2010-01-14  Martin Jambor  <mjambor@suse.cz>
8841
8842         PR tree-optimization/42706
8843         * tree-sra.c (encountered_recursive_call): New variable.
8844         (encountered_unchangable_recursive_call): Likewise.
8845         (sra_initialize): Initialize both new variables.
8846         (callsite_has_enough_arguments_p): New function.
8847         (scan_function): Call decl and flags check only for IPA-SRA, check
8848         whether there is a recursive call and whether it has enough arguments.
8849         (all_callers_have_enough_arguments_p): New function.
8850         (convert_callers): Look for recursive calls only when
8851         encountered_recursive_call is set.
8852         (ipa_early_sra): Bail out either if
8853         !all_callers_have_enough_arguments_p or
8854         encountered_unchangable_recursive_call.
8855
8856 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
8857
8858         * sel-sched.c: Add 2010 to copyright years.
8859         * sel-sched-ir.c: Likewise.
8860         * sel-sched-ir.h: Likewise.
8861
8862 2010-01-14  Martin Jambor  <mjambor@suse.cz>
8863
8864         PR tree-optimization/42714
8865         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
8866         constructors specially.
8867
8868 2010-01-14  Andi Kleen  <ak@linux.intel.com>
8869
8870         * config/i386/drivers-i386.c (detect_caches_intel):
8871         Add l2sizekb parameter and fill in.
8872         (host_detect_local_cpu): Add l2sizekb, fill in.
8873         Add Atom small cache heuristic.
8874
8875 2010-01-14  Andi Kleen  <ak@linux.intel.com>
8876
8877         * config/i386/drivers-i386.c (detect_caches_cpuid4):
8878         Add level3 parameter and fill in.
8879         (detect_caches_intel): Handle level3 cache.
8880
8881 2010-01-14  Andi Kleen  <ak@linux.intel.com>
8882
8883         * config/i386/drivers-i386.c (host_detect_local_cpu):
8884         Fix core duo detection.
8885
8886 2010-01-14  Andi Kleen  <ak@linux.intel.com>
8887
8888         * config/i386/drivers-i386.c (host_detect_local_cpu):
8889         Fix Atom detection.
8890
8891 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
8892
8893         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
8894         (rs6000_variable_issue_1): this.  Use...
8895         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
8896
8897 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
8898
8899         * sel-sched-ir.c (sel_restore_other_notes): Rename to
8900         sel_restore_notes.  Update all callers.  Call reemit_notes
8901         for all insns.
8902
8903 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
8904
8905         PR rtl-optimization/42246
8906         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
8907         loops.
8908
8909 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
8910
8911         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
8912         all successors is the same as number of successors in current region.
8913
8914 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
8915
8916         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
8917         to rename is not separable.  Otherwise check that its LHS is not NULL.
8918
8919 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
8920
8921         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
8922
8923 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
8924
8925         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
8926         available registers when failed to discover LHS register class.
8927         Fix indentation.  Update comment.
8928
8929 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
8930             Alexander Monakov  <amonakov@ispras.ru>
8931
8932         PR rtl-optimization/42389
8933         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
8934         to can_issue_more.
8935         (advance_state_on_fence): Likewise.
8936         (sel_target_adjust_priority): Print debug output only when
8937         sched_verbose >= 4, not 2.
8938         (get_expr_cost): Do not issue all unique insns on the next cycle.
8939         (fill_insns): Initialize can_issue_more from the value saved
8940         with the fence.
8941         * sel-sched-ir.c (flist_add): New parameter issue_more.
8942         Init FENCE_ISSUE_MORE with it.
8943         (merge_fences): Likewise.
8944         (init_fences): Update call to flist_add.
8945         (add_to_fences, add_clean_fence_to_fences)
8946         (add_dirty_fence_to_fences): Likewise.
8947         (move_fence_to_fences): Update call to merge_fences.
8948         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
8949         sched groups.
8950         * sel-sched-ir.h (struct _fence): New field issue_more.
8951         (FENCE_ISSUE_MORE): New accessor macro.
8952
8953 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
8954
8955         PR rtl-optimization/42388
8956         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
8957         that have no predecessors nor successors.  Do not call move_bb_info
8958         for empty blocks outside of current region.
8959
8960 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
8961
8962         PR rtl-optimization/42294
8963         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
8964         * sel-sched.c (move_exprs_to_boundary): Transitively add all
8965         originators' originators.
8966
8967 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
8968
8969         PR rtl-optimization/39453
8970         PR rtl-optimization/42246
8971         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
8972         for pipelining_p.
8973         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
8974
8975 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
8976             Alexander Monakov  <amonakov@ispras.ru>
8977
8978         PR middle-end/42245
8979         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
8980         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
8981         argument.  Update all callers.
8982         (tidy_control_flow): ... and here.  Recompute topological order
8983         of basic blocks in region if necessary.
8984         (sel_redirect_edge_and_branch): Change return type.  Return true
8985         if topological order might have been invalidated.
8986         (purge_empty_blocks): Export and move from...
8987         * sel-sched.c (purge_empty_blocks): ... here.
8988         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
8989         (maybe_tidy_empty_bb): Delete prototype.
8990         (purge_empty_blocks): Declare.
8991
8992 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
8993
8994         PR rtl-optimization/42249
8995         * sel-sched.c (try_replace_dest_reg): When chosen register
8996         and original register is the same, do not bail out early, but
8997         still check all original insns for validity of replacing destination
8998         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
8999         in this case.
9000
9001 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
9002
9003         PR c/42721
9004         Port from no-undefined-overflow branch:
9005         2009-03-09  Richard Guenther  <rguenther@suse.de>
9006
9007         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
9008
9009 2010-01-14  Richard Guenther  <rguenther@suse.de>
9010
9011         PR lto/42665
9012         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
9013
9014 2010-01-14  Ira Rosen  <irar@il.ibm.com>
9015
9016         PR tree-optimization/42709
9017         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
9018         as scalar type in creation of constant vector operand.
9019
9020 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9021
9022         PR testsuite/42414
9023         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
9024         (check-parallel-%): Match `testsuite' directory component only
9025         at the end.
9026
9027 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
9028
9029         PR translation/39521
9030         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
9031         strings with _().
9032
9033 2010-01-13  Richard Guenther  <rguenther@suse.de>
9034
9035         PR tree-optimization/42730
9036         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
9037         offset zero.
9038
9039 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
9040
9041         PR target/pr42542
9042         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
9043         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
9044         them signed.
9045
9046 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
9047
9048         * config/bfin/libgcc-bfin.ver: Regenerate based on current
9049         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
9050         ___umulsi3_highpart.
9051
9052         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
9053         rather than schedule_insns if the pass is enabled.
9054
9055 2010-01-13  Martin Jambor  <mjambor@suse.cz>
9056
9057         PR tree-optimization/42704
9058         * tree-sra.c (sra_modify_assign): Do not delete assignments to
9059         SSA_NAMEs.
9060
9061 2010-01-13  Martin Jambor  <mjambor@suse.cz>
9062
9063         PR tree-optimization/42703
9064         * tree-sra.c (analyze_access_subtree): Check that we can build a
9065         reference to the original data within the aggregate.
9066
9067 2010-01-13  Richard Guenther  <rguenther@suse.de>
9068
9069         PR tree-optimization/42705
9070         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
9071
9072 2010-01-13  Richard Guenther  <rguenther@suse.de>
9073
9074         PR middle-end/42716
9075         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
9076
9077 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
9078
9079         PR debug/41371
9080         * var-tracking.c (values_to_unmark): New variable.
9081         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
9082         values_to_unmark vector.  Moved body to...
9083         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
9084         instead queue it into values_to_unmark vector.
9085         (vt_find_locations): Free values_to_unmark vector.
9086
9087 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
9088
9089         * config/s390/s390.c (override_options): Set
9090         default of max-pending-list-length to 256
9091
9092 2010-01-13  Richard Guenther  <rguenther@suse.de>
9093
9094         PR lto/42678
9095         * tree-pass.h (PROP_gimple_lcx): New.
9096         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
9097         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
9098         before the final cleanup_eh.
9099         (dump_properties): Dump PROP_gimple_lcx.
9100         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
9101         (tree_lower_complex_O0): Remove.
9102         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
9103         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
9104         tree_lower_complex, schedule TODO_update_ssa.
9105         * lto-streamer-out.c (output_function): Stream the functions
9106         properties.
9107         * lto-streamer-in.c (input_function): Likewise.
9108         (lto_read_body): Do not override them here.
9109
9110 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
9111
9112         PR c/42708
9113         * c-typeck.c (build_c_cast): Fold value cast to union type before
9114         wrapping it in a CONSTRUCTOR.
9115
9116 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
9117
9118         PR rtl-optimization/42699
9119         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
9120         involved.
9121
9122 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9123
9124         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
9125         SUBTARGET_WARN_UNUSED_SPEC): Move ...
9126         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
9127         SUBTARGET_WARN_UNUSED_SPEC): ... here
9128         * config/mips/iris5.h (LIBGCC_SPEC): Define.
9129
9130 2010-01-12  Julian Brown  <julian@codesourcery.com>
9131
9132         * config/arm/neon-schedgen.ml (Utils): Don't try to
9133         open missing module.
9134         (find_with_result): New.
9135
9136 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
9137
9138         PR debug/42662
9139         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
9140         sharing when canonicalizing ({lt,ge}u (plus a b) b).
9141
9142         PR tree-optimization/42645
9143         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
9144         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
9145         decl_map, set processing_debug_stmt to -1 and return name without
9146         any remapping.
9147
9148 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
9149
9150         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
9151         binutils version, and reword target configuration description.
9152
9153 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
9154
9155         * config/avr/avr.h (LINKER_NAME): Remove.
9156
9157 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
9158
9159         PR target/42416
9160         * config/rs6000/rs6000.c (rs6000_override_options): On targets
9161         that support VSX, warn for -mno-altivec if vsx is not disabled,
9162         and disable vsx.
9163
9164 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
9165             Shujing Zhao  <pearly.zhao@oracle.com>
9166
9167         PR translation/42469
9168         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
9169         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
9170         character between option name and help text.
9171         * c.opt (imultilib): Likewise.
9172
9173 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
9174
9175         * lto-streamer-out.c (output_unreferenced_globals): Output static
9176         variables.
9177
9178 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
9179
9180         PR rtl-optimization/42621
9181         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
9182         optimizing for size.
9183         (duplicate_computed_gotos): Remove now-redundant check.
9184
9185 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
9186
9187         PR target/37454
9188         * configure.ac: Save and restore LDFLAGS and LIBS
9189         * configure: Regenerate.
9190
9191 2010-01-10  Richard Guenther  <rguenther@suse.de>
9192
9193         PR middle-end/42667
9194         * builtins.c (fold_builtin_strlen): Add type argument and
9195         convert the resulting length to it.
9196         (fold_builtin_1): Adjust.
9197
9198 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
9199
9200         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
9201         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
9202         1 insn.
9203         (num_insns_constant_wide): Adjust for that change.
9204
9205 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
9206
9207         PR debug/42631
9208         * web.c (union_defs): Add used argument, to combine uses of
9209         uninitialized regs.
9210         (entry_register): Adjust type and tests of used argument.
9211         (web_main): Widen used for new use.  Pass it to union_defs.
9212         * df.h (union_defs): Adjust prototype.
9213
9214 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
9215
9216         PR debug/42630
9217         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
9218         uses in new incoming argument.  Free body.
9219         (reset_debug_uses_in_loop): New.
9220         (analyze_insn_to_expand_var): Call the latter if the former found
9221         anything.  Fix whitespace.  Reject invalid dest overlaps before
9222         going through all insns in the loop.
9223
9224 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
9225
9226         PR debug/42629
9227         * haifa-sched.c (dying_use_p): Debug insns don't count.
9228
9229 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
9230
9231         PR middle-end/42363
9232         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
9233         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
9234         (verify_gimple_call): Reject LHS in noreturn calls.
9235
9236 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
9237
9238         PR debug/42604
9239         PR debug/42395
9240         * tree-vect-loop-manip.c (adjust_info): New type.
9241         (adjust_vec): New pointer to vector.
9242         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
9243         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
9244         (slpeel_update_phis_for_duplicate_loop): Use them.
9245         (slpeel_update_phi_nodes_for_guard1): Likewise.
9246         (slpeel_update_phi_nodes_for_guard2): Likewise.
9247         (slpeel_tree_peel_loop_to_edge): Likewise.
9248         (vect_update_ivs_after_vectorizer): Likewise.
9249
9250 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
9251
9252         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
9253         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
9254
9255 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
9256
9257         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
9258         bogus uninitialized warning.
9259
9260 2010-01-09  Richard Guenther  <rguenther@suse.de>
9261
9262         PR middle-end/42512
9263         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
9264         the evolution is compatible with the initial condition.
9265
9266 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
9267
9268         * gcc.c (process_command): Update copyright notice dates.
9269         * gcov.c (print_version): Likewise.
9270         * gcov-dump.c (print_version): Likewise.
9271         * mips-tfile.c (main): Likewise.
9272         * mips-tdump.c (main): Likewise.
9273
9274 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
9275
9276         PR target/41885
9277         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
9278         (rotlhi3): Delete.
9279         (rotlhi3_8): Delete.
9280         (rotlsi3): Delete.
9281         (rotlsi3_8): Delete.
9282         (rotlsi3_16): Delete.
9283         (rotlsi3_24): Delete.
9284         (rotl<mode>3): New.
9285         (*rotw<mode>3): New.
9286         (*rotb<mode>3): New.
9287         * config/avr/avr.c (avr_rotate_bytes): New function.
9288         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
9289
9290 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
9291
9292         PR target/37454
9293         * configure.ac: Modify -rdynamic check.
9294         * configure: Regenerate.
9295
9296 2010-01-08  DJ Delorie  <dj@redhat.com>
9297
9298         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
9299         register popping order.
9300
9301 2010-01-08  Richard Guenther  <rguenther@suse.de>
9302
9303         PR lto/42528
9304         * c.opt (fsigned-char): Also let LTO handle this option.
9305         (funsigned-char): Likewise.
9306
9307 2010-01-07  Richard Guenther  <rguenther@suse.de>
9308
9309         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
9310         (gimple_op): Likewise.
9311         (gimple_op_ptr): Likewise.
9312         (gimple_assign_set_lhs): Remove gcc_assert.
9313         (gimple_assign_set_rhs1): Likewise.
9314         (gimple_assign_set_rhs2): Likewise.
9315         (gimple_call_set_lhs): Likewise.
9316         (gimple_call_set_fn): Likewise.
9317         (gimple_call_set_fndecl): Likewise.
9318         (gimple_call_fndecl): Likewise.
9319         (gimple_call_return_type): Likewise.
9320         (gimple_call_set_chain): Likewise.
9321         (gimple_call_num_args): Likewise.
9322         (gimple_call_set_arg): Likewise.
9323         (gimple_cond_set_code): Likewise.
9324         (gimple_cond_set_lhs): Likewise.
9325         (gimple_cond_set_rhs): Likewise.
9326         (gimple_cond_set_true_label): Likewise.
9327         (gimple_cond_set_false_label): Likewise.
9328         (gimple_label_set_label): Likewise.
9329         (gimple_goto_set_dest): Likewise.
9330         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
9331         (gimple_debug_bind_get_value): Likewise.
9332         (gimple_debug_bind_get_value_ptr): Likewise.
9333         (gimple_debug_bind_set_var): Likewise.
9334         (gimple_debug_bind_set_value): Likewise.
9335         (gimple_debug_bind_reset_value): Likewise.
9336         (gimple_debug_bind_has_value_p): Likewise.
9337         (gimple_return_retval_ptr): Remove gcc_assert.
9338         (gimple_return_retval): Likewise.
9339         (gimple_return_set_retval): Likewise.
9340         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
9341         (safe_referenced_var_iterator): Remove.
9342         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
9343         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
9344         (fill_referenced_var_vec): Remove.
9345         (first_readonly_imm_use): Remove redundant gcc_assert.
9346         (phi_arg_index_from_use): Combine gcc_asserts.
9347         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
9348         (first_imm_use_stmt): Remove redundant gcc_assert.
9349         * tree-cfg.c (verify_gimple_call): Verify function and chain
9350         operands.  Verify arguments.
9351         (verify_types_in_gimple_stmt): Verify condition code and labels.
9352
9353 2010-01-07  Richard Guenther  <rguenther@suse.de>
9354
9355         PR tree-optimization/42641
9356         * sese.c (rename_map_elt_info): Use the SSA name version, do
9357         not hash pointers.
9358
9359 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
9360
9361         PR tree-optimization/42625
9362         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
9363         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
9364
9365 2010-01-07  Duncan Sands  <baldrick@free.fr>
9366
9367         * Makefile.in (PLUGIN_HEADERS): Add version.h.
9368
9369 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
9370
9371         PR target/42511
9372         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
9373         note itself is not function_invariant_p.
9374
9375 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
9376
9377         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
9378         Do not add the DF_NOTE problem.
9379         * store-motion.c (execute_rtl_store_motion): Likewise.
9380
9381 2010-01-07  Martin Jambor  <mjambor@suse.cz>
9382
9383         PR tree-optimization/42157
9384         * tree-sra.c (compare_access_positions): Stabilize sort if both
9385         accesses have integer types, return zero immediately if they are the
9386         same.
9387
9388 2010-01-06  Richard Henderson  <rth@redhat.com>
9389
9390         PR middle-end/41883
9391         * haifa-sched.c (add_to_note_list): Merge into ...
9392         (concat_note_lists): ... here, and ...
9393         (unlink_other_notes, rm_other_notes): Merge into...
9394         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
9395         NOTE_INSN_EPILOGUE_BEG.
9396
9397 2010-01-06  Richard Guenther  <rguenther@suse.de>
9398
9399         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
9400         not inline regular functions into always-inline functions.
9401
9402 2010-01-06  Nick Clifton  <nickc@redhat.com>
9403
9404         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
9405         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
9406         used together.
9407         (OVERRIDE_OPTIONS): Delete.
9408         (OPTIMIZATION_OPTIONS): Define.
9409         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
9410         * config/rx/rx.c (rx_handle_option): Issue an error message if
9411         -mcpu=rx200 and -fpu are used together.
9412         (rx_set_optimization_options): New function.  Issue an error
9413         message if an optimization attribute attempts to reset the FPU/
9414         math optimization pairing.
9415         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
9416         * config/rx/rx.opt: Set the default to 32-bit doubles.
9417         * config/rx/t-rx: Add multilibs for -nofpu option.
9418         * doc/invoke.texi: Update documentation of RX options.
9419
9420 2010-01-06  Richard Guenther  <rguenther@suse.de>
9421
9422         * tree-ssa-pre.c (name_to_id): New global.
9423         (alloc_expression_id): Simplify SSA name handling.
9424         (lookup_expression_id): Likewise.
9425         (init_pre): Zero name_to_id.
9426         (fini_pre): Free it.
9427
9428 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
9429
9430         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
9431
9432 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
9433
9434         PR target/42542
9435         * config/i386/sse.md (smaxv2di3): New.
9436         (umaxv2di3): Likewise.
9437         (sminv2di3): Likewise.
9438         (uminv2di3): Likewise.
9439
9440 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
9441
9442         PR target/42564
9443         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
9444         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
9445         (legitimize_tls_address): Likewise.
9446         (sparc_tls_referenced_p): Likewise.
9447         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
9448         and adjust calls to legitimize_pic_address.
9449         (legitimate_constant_p) Use sparc_tls_referenced_p.
9450         (legitimate_pic_operand_p): Likewise.
9451         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
9452         (sparc_tls_symbol_ref_1): Delete.
9453         (sparc_tls_referenced_p): Make static, recognize specific patterns.
9454         (legitimize_tls_address): Make static, handle CONST patterns.
9455         (legitimize_pic_address): Make static, remove unused parameter and
9456         adjust recursive calls.
9457         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
9458         and adjust call to legitimize_pic_address.
9459         (sparc_output_mi_thunk): Likewise.
9460
9461 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
9462             H.J. Lu  <hongjiu.lu@intel.com>
9463
9464         PR target/42542
9465         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
9466         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
9467         operands to make them signed.
9468
9469         Revert:
9470         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
9471
9472         PR target/42542
9473         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
9474         GTU to GT for V4SI and V2DI.
9475
9476         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
9477         (umin<mode>3): Removed.
9478         (uminv8hi3): New.
9479         (uminv4si3): Likewise.
9480
9481 2010-01-05  Martin Jambor  <mjambor@suse.cz>
9482
9483         PR tree-optimization/42462
9484         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
9485         current_function_decl to helper functions and macros.
9486
9487 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9488
9489         PR bootstrap/41771
9490         * flags.h: Don't include real.h.
9491         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
9492         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
9493         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
9494         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
9495         * dominance.c: Update copyright.
9496         * gimple.c (walk_gimple_op): Remove inline.
9497         * tree-ssa-reassoc.c: Include real.h.
9498         * Makefile.in (FLAGS_H): Remove $(REAL_H).
9499         (tree-ssa-reassoc.o): Depend on $(REAL_H).
9500
9501 2010-01-05  Nick Clifton  <nickc@redhat.com>
9502
9503         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
9504         register to push into the stack frame when the accumulator has to
9505         be saved during interrupts.
9506
9507 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
9508
9509         * doc/invoke.texi: Remove the documentation about option
9510         -Wunreachable-code.
9511         * common.opt (Wunreachable-code):  Preserved for backward
9512         compatibility.
9513         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
9514         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
9515         the backward compatibility flag section.
9516
9517 2010-01-05  Richard Guenther  <rguenther@suse.de>
9518
9519         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
9520
9521 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
9522
9523         PR other/42611
9524         * cfgexpand.c (expand_one_var): Diagnose too large variables.
9525
9526         PR tree-optimization/42508
9527         * tree-sra.c (convert_callers): Check for recursive call
9528         by comparing cgraph nodes instead of decls.
9529         (modify_function): Call ipa_modify_formal_parameters also
9530         on all same_body aliases.
9531
9532         * cgraphunit.c (cgraph_materialize_all_clones): Compare
9533         cgraph nodes when checking for same_body aliases.
9534
9535 2010-01-05  Richard Guenther  <rguenther@suse.de>
9536
9537         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
9538         allocation and lookup.
9539         (get_or_alloc_expr_for_constant): Likewise.
9540         (phi_translate): Sink allocation.
9541
9542 2010-01-04  Richard Guenther  <rguenther@suse.de>
9543
9544         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
9545         a new entry only if needed.
9546         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
9547         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
9548         hashtable lookup.
9549         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
9550         the result array.
9551         (phi_translate): Handle CONSTANTs early.
9552
9553 2010-01-04  Martin Jambor  <mjambor@suse.cz>
9554
9555         PR tree-optimization/42398
9556         * tree-sra.c (struct access): Removed flag grp_different_types.
9557         (dump_access): Do not dump the removed flag.
9558         (sort_and_splice_var_accesses): Do not set the removed flag.
9559         (sra_modify_expr): Check for type compatibility directly.
9560
9561 2010-01-04  Martin Jambor  <mjambor@suse.cz>
9562
9563         PR tree-optimization/42366
9564         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
9565         edges with variable number of parameters.
9566         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
9567         flag instead of asserting it.
9568         (ipa_read_node_info): Read uses_analysis_done flag.
9569
9570 2010-01-04  Richard Guenther  <rguenther@suse.de>
9571
9572         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
9573         iterative_hash_* as intended.
9574         (vn_reference_compute_hash): Likewise.  Simplify hashing
9575         SSA names.
9576         (vn_reference_lookup_2): Likewise.
9577         (vn_nary_op_compute_hash): Likewise.
9578         (vn_phi_compute_hash): Likewise.
9579         (expressions_equal_p): Remove strange code.
9580         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
9581         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
9582         (bitmap_insert_into_set_1): Take value-id as parameter.
9583         (add_to_value): Pass it.
9584         (bitmap_insert_into_set): Likewise.
9585         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
9586
9587 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
9588
9589         PR driver/42442
9590         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
9591         (do_self_spec): For switches with SWITCH_IGNORE set set also
9592         SWITCH_IGNORE_PERMANENTLY.
9593         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
9594         of SWITCH_IGNORE.
9595
9596 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
9597
9598         * lto-streamer-out.c (output_unreferenced_globals): Output the full
9599         tree of an unreferenced global var.
9600
9601 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
9602
9603         PR target/42542
9604         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
9605         GTU to GT for V4SI and V2DI.
9606
9607         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
9608         (umin<mode>3): Removed.
9609         (uminv8hi3): New.
9610         (uminv4si3): Likewise.
9611
9612 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
9613
9614         PR lto/42581
9615         * collect2.c (main): Turn on trace in collect2 if -v is passed
9616         to gcc with LTO.
9617
9618 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
9619
9620         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
9621         description of expression operand.
9622
9623 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
9624
9625         * configure.ac: Add install-html to target_list for Make-hooks.
9626         * configure: Regenerate.
9627         * fortran/Make-lang.in (F95_HTMLFILES): New.
9628         (fortran.html): Use it.
9629         (fortran.install-html): New.
9630         * Makefile.in (install-html): Add lang.install-html.
9631         * java/Make-lang.in (JAVA_HTMLFILES): New.
9632         (java.html): Use it.
9633         (java.install-html): New.
9634         * objc/Make-lang.in (objc.install-html): New.
9635         * objcp/Make-lang.in (obj-c++.install-html): New.
9636         * cp/Make-lang.in (c++.install-html): New.
9637         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
9638         * lto/Make-lang.in (lto.install-html): New.
9639
9640 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
9641
9642         PR lto/42520
9643         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
9644
9645 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
9646
9647         PR rtl-optimization/41862
9648         * store-motion.c (store_killed_in_insn, compute_store_table,
9649         remove_reachable_equiv_notes, replace_store_insn,
9650         build_store_vectors): Ignore all DEBUG_INSNs.
9651
9652 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
9653
9654         PR lto/41564
9655         * common.opt: Add dumpdir.
9656
9657         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
9658         isn't specified.
9659         (option_map): Add --dumpdir.
9660
9661         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
9662
9663         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
9664
9665         * opts.c (decode_options): Try dump_dir_name first if
9666         dump_base_name isn't an absolute path.
9667         (common_handle_option): Handle OPT_dumpdir.
9668
9669         * toplev.c (dump_dir_name): New.
9670         (print_switch_values): Also ignore -dumpdir.
9671
9672         * toplev.h (dump_dir_name): New.
9673
9674 2010-01-03  Richard Guenther  <rguenther@suse.de>
9675
9676         PR tree-optimization/42589
9677         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
9678         double-word expansion of bswap32.
9679
9680 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
9681
9682         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
9683         with BLOCK_FOR_INSN.
9684         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
9685         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
9686         noce_process_if_block): Likewise.
9687         * gcse.c (compute_local_properties, insert_expr_in_table,
9688         insert_set_in_table, canon_list_insert, find_avail_set,
9689         pre_insert_copy_insn): Likewise.
9690
9691         * basic-block.h (BLOCK_NUM): Move from here...
9692         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
9693
9694 2010-01-03  Richard Guenther  <rguenther@suse.de>
9695
9696         PR tree-optimization/42438
9697         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
9698         contains_may_not_return_call flag.
9699         (BB_MAY_NOTRETURN): New.
9700         (valid_in_sets): Trapping nary operations are not valid
9701         in blocks that may not return.
9702         (insert_into_preds_of_block): Remove check for trapping expressions.
9703         (compute_avail): Compute also BB_MAY_NOTRETURN.
9704
9705 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
9706
9707         * doc/invoke.texi: Add 2010 to copyright years.
9708
9709 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
9710
9711         * config/sparc/sparc.c: Fix formatting nits.
9712
9713 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
9714             Alexander Monakov  <amonakov@ispras.ru>
9715
9716         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
9717
9718 2010-01-02  Richard Guenther  <rguenther@suse.de>
9719
9720         PR middle-end/42577
9721         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
9722         (simplify_switch_using_ranges): Mark to be removed edges
9723         as non-executable.
9724
9725 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9726
9727         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
9728
9729         * collect2.c (scan_libraries): Add missing argument in call to
9730         scan_prog_file.
9731
9732 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
9733
9734         PR target/42448
9735         * config/alpha/predicates.md (aligned_memory_operand): Return false
9736         for CQImode.
9737         (unaligned_memory_operand): Return true for CQImode.
9738         * config/alpha/alpha.c (get_aligned_mem): Assert that location
9739         doesn not cross aligned SImode word boundary.
9740
9741 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
9742
9743         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
9744         Remove.
9745         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
9746         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
9747
9748 2010-01-02  Richard Guenther  <rguenther@suse.de>
9749
9750         PR lto/41597
9751         * toplev.c (compile_file): Emit LTO marker properly.  Change
9752         it to __gnu_lto_v1.
9753         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
9754
9755 2010-01-01  Richard Guenther  <rguenther@suse.de>
9756
9757         PR debug/42455
9758         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
9759
9760 2010-01-01  Richard Guenther  <rguenther@suse.de>
9761
9762         PR c/42570
9763         * c-decl.c (grokdeclarator): For zero-size arrays force
9764         structural equality checks as layout_type does.
9765
9766 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
9767
9768         * builtins.c: Update copyright to 2010.
9769
9770 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
9771
9772         PR lto/42531
9773         * lto-streamer-out.c (produce_asm): Revert the last change.
9774         (copy_function): Likewise.
9775
9776         * lto-streamer.c (lto_get_section_name): Skip any leading
9777         asterisk in name.
9778
9779 2010-01-01  Richard Guenther  <rguenther@suse.de>
9780
9781         PR middle-end/42559
9782         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
9783         for LABEL_DECLs.
9784
9785 \f
9786 Copyright (C) 2010 Free Software Foundation, Inc.
9787
9788 Copying and distribution of this file, with or without modification,
9789 are permitted in any medium without royalty provided the copyright
9790 notice and this notice are preserved.