OSDN Git Service

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