OSDN Git Service

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