OSDN Git Service

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