OSDN Git Service

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