OSDN Git Service

2010-05-07 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-05-07  Richard Guenther  <rguenther@suse.de>
2
3         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
4         (run_gcc): Handle LTRANS phase invocation.
5         * collect2.c (maybe_run_lto_and_relink): Do not set
6         WPA_SAVE_LTRANS.
7
8 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
9
10         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
11         this is also meaningful on PARM_DECLs and RESULT_DECLs.
12
13 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14
15         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
16
17 2010-05-07  Richard Guenther  <rguenther@suse.de>
18
19         PR tree-optimization/44020
20         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
21         code when PRE is not yet initialized.
22
23 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24
25         * config/mips/dbxmdebug.h: Remove.
26         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
27
28 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
29
30         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
31         with null pointer and also warn about ordered comparison of zero with
32         pointer if -Wextra.
33
34 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
35
36         * graphite-blocking.c
37         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
38         * graphite-clast-to-gimple.c
39         (clast_to_gcc_expression): Same.
40         (precision_for_value): Same.
41         (precision_for_interval): Same.
42         (gcc_type_for_interval): Same.
43         (graphite_create_new_guard): Same.
44         (compute_bounds_for_level): Same.
45         (graphite_create_new_loop_guard): Same.
46         * graphite-interchange.c
47         (build_linearized_memory_access): Same.
48         (pdr_stride_in_loop): Same.
49         (memory_strides_in_loop_1): Same.
50         (memory_strides_in_loop): Same.
51         (extend_scattering): Same.
52         (psct_scattering_dim_for_loop_depth): Same.
53         (pbb_number_of_iterations): Same.
54         * graphite-poly.h
55         (debug_iteration_domains): Same.
56         * graphite-ppl.c
57         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
58         (ppl_set_inhomogeneous_gmp): Same.
59         (ppl_strip_loop): Same.
60         (ppl_lexico_compare_linear_expressions): Same.
61         (ppl_read_polyhedron_matrix): Same.
62         (ppl_max_for_le_pointset): Same.
63         * graphite-ppl.h
64         (ppl_read_polyhedron_matrix): Same.
65         (tree_int_to_gmp): Same.
66         (gmp_cst_to_tree): Same.
67         (ppl_set_inhomogeneous): Same.
68         (ppl_set_inhomogeneous_tree): Same.
69         (ppl_set_coef): Same.
70         (ppl_set_coef_tree): Same.
71         * graphite-sese-to-poly.c
72         (build_pbb_scattering_polyhedrons): Same.
73         (build_scop_scattering): Same.
74         (scan_tree_for_params_right_scev): Same.
75         (scan_tree_for_params): Same.
76         (find_params_in_bb): Same.
77         (find_scop_parameters): Same.
78         (add_upper_bounds_from_estimated_nit): Same.
79         (build_loop_iteration_domains): Same.
80         (add_condition_to_domain): Same.
81         (pdr_add_memory_accesses): Same.
82
83 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
84
85         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
86         CLooG's value_* macros to their respective mpz_* counterparts.
87         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
88         (graphite_create_new_loop_guard): Same.
89         * graphite-interchange.c (build_linearized_memory_access): Same.
90         (pdr_stride_in_loop): Same.
91         (memory_strides_in_loop_1): Same.
92         (1st_interchange_profitable_p): Same.
93         * graphite-poly.c (extend_scattering): Same.
94         (psct_scattering_dim_for_loop_depth): Same.
95         (pbb_number_of_iterations): Same.
96         (pbb_number_of_iterations_at_time): Same.
97         * graphite-poly.h (new_1st_loop): Same.
98         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
99         (oppose_constraint): Same.
100         (insert_constraint_into_matrix): Same.
101         (ppl_set_inhomogeneous_gmp): Same.
102         (ppl_set_coef_gmp): Same.
103         (ppl_strip_loop): Same.
104         (ppl_lexico_compare_linear_expressions): Same.
105         (ppl_max_for_le_pointset): Same.
106         (ppl_min_for_le_pointset): Same.
107         (ppl_build_realtion): Same.
108         * graphite-ppl.h (gmp_cst_to_tree): Same.
109         (ppl_set_inhomogeneous): Same.
110         (ppl_set_inhomogeneous_tree): Same.
111         (ppl_set_coef): Same.
112         (ppl_set_coef_tree): Same.
113         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
114         (build_scop_scattering): Same.
115         (add_value_to_dim): Same.
116         (scan_tree_for_params_right_scev): Same.
117         (scan_tree_for_params_int): Same.
118         (scan_tree_for_params): Same.
119         (find_params_in_bb): Same.
120         (find_scop_parameters): Same.
121         (add_upper_bounds_from_estimated_nit): Same.
122         (build_loop_iteration_domains): Same.
123         (create_linear_expr_from_tree): Same.
124         (add_condition_to_domain): Same.
125         (pdr_add_memory_accesses): Same.
126
127 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
128             Jason Merrill  <jason@redhat.com>
129
130         * c-common.c (c_common_reswords): Add nullptr.
131         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
132         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
133         (gen_type_die_with_usage): Likewise.
134         * dbxout.c (dbxout_type): Likewise.
135         * sdbout.c (plain_type_1): Likewise.
136
137 2010-05-06  Jason Merrill  <jason@redhat.com>
138
139         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
140         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
141         ret appropriately.
142         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
143
144         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
145         stripping WITH_SIZE_EXPR.
146         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
147         change.
148
149 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
150
151         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
152         list of obsolete configurations.
153         Disabled check for obsolete configurations.
154         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
155         Removed support for previous versions.
156         * config/mips/iris.h: Removed.
157         * config/mips/iris5.h: Removed.
158         * config/mips/iris6.h: Merged old iris.h contents.
159         (TARGET_IRIX): Removed.
160         (DRIVER_SELF_SPECS): Removed mabi=32.
161         (IDENT_ASM_OP): Removed undef.
162         (STARTFILE_SPEC): Removed mabi=32.
163         (ENDFILE_SPEC): Likewise.
164         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
165         (MACHINE_TYPE): Update for IRIX 6.5.
166         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
167         TARGET_IRIX by TARGET_IRIX6.
168         (mips_file_start): Likewise.
169         (mips_output_external): Remove IRIX 5/6 O32 support.
170         (mips_output_function_prologue): Likewise.
171         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
172         TARGET_IRIX6.
173         (TARGET_CPU_CPP_BUILTINS): Likewise.
174         (TARGET_IRIX): Removed.
175         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
176         (MULTILIB_DIRNAMES): Removed 32.
177         (MULTILIB_OSDIRNAMES): Removed ../lib.
178         * doc/install.texi (Prerequisites): Don't reference IRIX before
179         6.5.
180         (Specific, mips-sgi-irix5): Document removal.
181         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI
182         removal.
183         Remove references to older IRIX 6 releases and the O32 ABI.
184
185 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
186
187         * gcc.dg/Wunused-var-8.c: Move to...
188         * c-c++-common/Wunused-var-6.c: ... here.  New test.
189
190         PR bootstrap/43994
191         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
192         instead of DF_REF_REAL_REG.
193
194 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
195
196         PR target/43888
197         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
198         handling to still return true for x64 targets.
199
200 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
201
202         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
203
204 2010-05-06  Jan Hubicka  <jh@suse.cz>
205
206         PR tree-optimization/43791
207         * ipa-inline.c (update_caller_keys): Remove bogus
208         disregard_inline_limits check.
209
210 2010-05-06  Michael Matz  <matz@suse.de>
211
212         PR tree-optimization/43984
213         * tree-ssa-pre.c (inserted_phi_names): Remove.
214         (inserted_exprs): Change to bitmap.
215         (create_expression_by_pieces): Set bits, don't append to vector.
216         (insert_into_preds_of_block): Don't handle inserted_phi_names.
217         (eliminate): Don't look at inserted_phi_names, remove deleted
218         insns from inserted_exprs.
219         (remove_dead_inserted_code): Adjust to use bitmaps instead of
220         vectors.
221         (init_pre, fini_pre): Allocate and free bitmaps.
222         (execute_pre): Insert insns on edges before elimination.
223
224 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
225
226         * tree.c (initializer_zerop): Handle STRING_CST.
227
228 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
229
230         PR 40989
231         * doc/invoke.texi (Wimplicit): Document as C only.
232         * opts.c (common_handle_option): Add argument kind.
233         (handle_option): Rename as read_cmdline_option. Factor out code to...
234         (handle_option): ... here. New.
235         (handle_options): Rename as read_cmdline_options.
236         (decode_options): Update call.
237         (set_option): Use option index instead of option pointer. Classify
238         diagnostics correctly.
239         (enable_warning_as_error): Call handle_option.
240         * opts.h (set_option): Update declaration.
241         (handle_option): Declare.
242         * langhooks.h (struct lang_hooks): Add argument kind to
243         handle_option.
244         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
245         * c-opts.c (set_Wimplicit): Delete.
246         (c_family_lang_mask): New static constant.
247         (c_common_handle_option): Add argument kind. Use handle_option
248         instead of set_Wimplicit.
249         (c_common_post_options): warn_implicit and warn_implicit_int
250         are disabled by default.
251         * c-common.c (warn_implicit): Do not define here.
252         * c-common.h (warn_implicit): Do not declare here.
253         (c_common_handle_option): Update declaration.
254         * lto-opts.c (lto_reissue_options): Update call to set_option.
255
256 2010-05-06  Richard Guenther  <rguenther@suse.de>
257
258         PR tree-optimization/43571
259         * domwalk.c (walk_dominator_tree): Walk the dominator
260         sons in more optimal order.
261
262 2010-05-06  Richard Guenther  <rguenther@suse.de>
263
264         PR tree-optimization/43934
265         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
266         (stmt_cost): Likewise.
267         (extract_true_false_args_from_phi): New helper.
268         (determine_max_movement): For PHI nodes verify we can hoist them
269         and compute their cost.
270         (determine_invariantness_stmt): Handle PHI nodes.
271         (move_computations_stmt): Likewise.  Hoist PHI nodes in
272         if-converted form using COND_EXPRs.
273         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI
274         nodes.
275         (tree_ssa_lim): Likewise.
276         * tree-flow.h (tree_ssa_lim): Adjust prototype.
277         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
278
279 2010-05-06  Richard Guenther  <rguenther@suse.de>
280
281         PR tree-optimization/43987
282         * tree-ssa-structalias.c (could_have_pointers): For possibly
283         address-taken variables force pointers to be recorded.
284         (create_variable_info_for_1): Likewise.
285         (push_fields_onto_fieldstack): Pass in wheter all fields
286         must have pointers.
287         (find_func_aliases): Query types instead of vars whether
288         they contain pointers where appropriate.
289
290 2010-05-06  Jan Hubicka  <jh@suse.cz>
291
292         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
293         (record_reference, mark_address, mark_load, mark_store): Record
294         references.
295         (record_references_in_initializer): Update call of record_references.
296         (rebuild_cgraph_edges): Remove all references before rebuiding.
297         * cgraph.c (cgraph_create_node): Clear ref list.
298         (cgraph_remove_node): Remove references.
299         (dump_cgraph_node): Dump references.
300         (cgraph_clone_node): Clone references.
301         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
302         (struct cgraph_node, varpool_node): Add ref_lst.
303         * ipa-ref.c: New file.
304         * ipa-ref.h: New file.
305         * ipa-ref-inline.h: New file.
306         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
307         (referenced_from_other_partition_p): New function.
308         (lto_output_varpool_node): Take set arugment; call
309         referenced_from_other_partition.
310         (lto_output_ref): New.
311         (add_references): New.
312         (output_refs): New.
313         (output_cgraph): Compute boundary based on references;
314         output refs.
315         (output_varpool): Accept cgraph_node_set argument.
316         (input_ref): New.
317         (input_refs): New.
318         (input_cgraph): Call input_refs.
319         * lto-section-in.c (lto_section_name): Add refs.
320         * Makefile.in: (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
321         (ipa-ref.o): New file.
322         * varpool.c (varpool_node): Clear ipa ref list.
323         (varpool_remove_node): Remove references.
324         (dump_varpool_node): Dump references.
325         (varpool_assemble_decl): Only compile finalized ones.
326         (varpool_extra_name_alias): Initialize ref list.
327         * lto-streamer.c (lto-get_section_name): Add .refs section.
328         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
329         (referenced_from_other_partition_p): Declared.
330
331 2010-05-06  Ira Rosen  <irar@il.ibm.com>
332
333         PR tree-optimization/43901
334         * tree-vect-stmts.c (vectorizable_call): Assert that vector
335         type is not NULL if it's transformation phase, and return
336         FALSE if it's analysis.
337         (vectorizable_conversion, vectorizable_operation, 
338         vectorizable_type_demotion, vectorizable_type_promotion):
339         Likewise.
340
341 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
342
343         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
344         Delete.
345         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
346         New define.
347         * config/mips/mips-protos.h
348         (mips_small_register_classes_for_mode_p): Delete prototype.
349
350 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
351
352         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
353         * config/arm/arm.c (multiple_operation_profitable_p,
354         compute_offset_order): New static functions.
355         (load_multiple_sequence, store_multiple_sequence): Use them.
356         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
357         memory offsets, not register numbers.
358         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
359
360 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
361
362         * stor-layout.c (pending_sizes): Change the type to
363         VEC(tree,gc) *.
364         (get_pending_sizes, put_pending_size, put_pending_sizes):
365         Update the uses of pending_sizes.
366         * c-decl.c (store_parm_decls): Likewise.
367         * c-tree.h (struct c_arg_info): Likewise.
368         * tree.h: Update the prototype for get_pending_sizes and
369         put_pending_sizes.
370
371 2010-05-05  Jason Merrill  <jason@redhat.com>
372
373         PR debug/43370
374         * c-common.c (handle_aligned_attribute): Respect
375         ATTR_FLAG_TYPE_IN_PLACE.
376
377         PR testsuite/43758
378         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
379         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
380         (TARGET_INITIALIZER): Use it.
381         * c-common.c (attribute_takes_identifier_p): Call it.
382         * c-common.h: Update prototype.
383         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
384         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
385
386 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
387
388         PR debug/43950
389         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
390         DW_ID_down_case for Fortran compilation units.
391
392 2010-05-05  Jan Hubicka  <jh@suse.cz>
393
394         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
395         handle aliases.
396
397 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
398
399         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
400         a variable-sized RESULT_DECL.
401
402 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
403
404         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
405
406 2010-05-05  Jason Merrill  <jason@redhat.com>
407
408         PR c++/43787
409         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
410         returns GS_OK.
411         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
412
413 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
414             Jakub Jelinek  <jakub@redhat.com>
415
416         PR debug/43478
417         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
418         (dead_debug_init, dead_debug_finish): New functions.
419         (dead_debug_add, dead_debug_insert_before): Likewise.
420         (df_note_bb_compute): Initialize a dead_debug object, add dead
421         debug uses to it, insert debug bind insns before death insns,
422         reset debug insns that refer to pending uses at the end.
423         * rtl.h (make_debug_expr_from_rtl): New prototype.
424         * varasm.c (make_debug_expr_from_rtl): New function.
425
426 2010-05-05  Jan Hubicka  <jh@suse.cz>
427
428         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
429         (lto_varpool_encoder_new, lto_varpool_encoder_delete, lto_varpool_encoder_encode
430         lto_varpool_encoder_lookup, lto_varpool_encoder_deref, lto_varpool_encoder_size,
431         lto_varpool_encoder_encode_initializer_p,
432         lto_set_varpool_encoder_encode_initializer): New functions.
433         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
434         call output_varpool.
435         (input_varpool_node): Do not always set analyzed.
436         (input_cgraph_1): Return vector of cgraph nodes.
437         (input_varpool_1): Return vector of varpools.
438         (input_cgraph): Free the vectors.
439         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
440         output only initializers needed.
441         (lto_output): Only call output_cgraph.
442         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
443         * lto-section-out.c (lto_new_out_decl_state): Initialize
444         state->varpool_node_encoder.
445         * lto-streamer.h (lto_varpool_encoder_d): New.
446         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.     
447         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
448         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
449         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
450         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
451         Declare.
452         (output_varpool, input_varpool): Remove declarations.
453
454 2010-05-05  Jan Hubicka  <jh@suse.cz>
455
456         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
457         with body can prevail.
458
459 2010-05-05  Jan Hubicka  <jh@suse.cz>
460
461         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
462         size.
463
464 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
465
466         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to
467         dependencies.
468
469         * gengtype.h (erro_at_line): Constify pos argument.
470
471         * gengtype.c: Include hashtab.h.
472         (enum gc_used): Document GC_MAYBE_POINTED_TO.
473         (error_at_line): Constify pos argument.
474         (do_typedef): Initialize p->opt field.
475         (get_file_gtfilename): Fix comment typo.
476         (struct walk_type_data): Constify line field.
477         (get_output_file_for_structure): New function.
478         (write_local_func_for_structure): Constify orig_s argument.
479         Use get_output_file_for_structure.
480         (write_func_for_structure): Use get_output_file_for_structure.
481         (INDENT): New define.
482         (dump_pair, dump_type, dump_type_list, dump_typekind)
483         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
484         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
485         functions.
486         (seen_types): New variable.
487         (main): New variable do_dump.  Process "-d" command line option.
488         Call dump_everything if dump requested.
489
490 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
491
492         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
493         in a temporary instead of invoking the macro multiple times.
494         (track_expr_p): Likewise.
495
496 2010-05-04  Neil Vachharajani <nvachhar@google.com>
497
498         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
499         per new semantics.
500         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
501         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
502         conditions for printing notes.
503         * common.opt (-Wcoverage-mismatch): Allow negative, default to
504         true, update documentation.
505         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
506
507 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
508
509         PR c/43981
510         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
511         on dimen.
512
513 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
514
515         PR target/43799
516         * config/i386/i386.md (sse_prologue_save): Add clobber CC
517         register.
518         (*sse_prologue_save_insn1): Likewise.
519         (SSE prologue save splitter): Likewise.
520
521 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
522
523         * tree.c (free_lang_data_in_one_sizepos): New inline function.
524         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
525         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
526         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
527         all decls.  Call it on DECL_FIELD_OFFSET of fields.
528         (find_decls_types_r): Follow DECL_VALUE_EXPR.
529         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
530
531 2010-05-04  Martin Jambor  <mjambor@suse.cz>
532
533         * tree-sra.c (build_access_from_expr_1): The first parameter type
534         changed to simple tree.
535         (build_access_from_expr): Likewise, gsi parameter was eliminated.
536         (scan_assign_result): Renamed to assignment_mod_result, enum elements
537         renamed as well.
538         (build_accesses_from_assign): Removed all parameters except for a
539         simple gimple statement.  Now returns a simple bool.
540         (scan_function): All non-analysis parts moved to separate functions
541         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
542         parameters and updated both callers.
543         (sra_modify_expr): Removed parameter data.
544         (sra_modify_function_body): New function.
545         (perform_intra_sra): Call sra_modify_function_body to modify the
546         function body.
547         (replace_removed_params_ssa_names): Parameter data changed into
548         adjustments vector.
549         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
550         changed the parameter dont_convert to convert with the opposite
551         meaning.
552         (sra_ipa_modify_assign): Parameter data changed into adjustments
553         vector, return value changed to bool.
554         (ipa_sra_modify_function_body): New function.
555         (sra_ipa_reset_debug_stmts): Updated a comment.
556         (modify_function): Use ipa_sra_modify_function_body to modify function
557         body.
558
559 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
560
561         PR middle-end/43671
562         * alias.c (true_dependence): Handle the same VALUE in x and mem.
563         (canon_true_dependence): Likewise.
564         (write_dependence_p): Likewise.
565
566 2010-05-04  Jan Hubicka  <jh@suse.cz>
567
568         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
569         * cgraphbuild.c: Include ipa-utils.h
570         (record_reference_ctx): New struct.
571         (record_reference): Simplify to work on initializers; not statements.
572         (mark_address, mark_load, mark_store): New.
573         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
574         walk PHI nodes too.
575         (record_references_in_initializer): Update use of record_reference.
576         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
577         walk PHI nodes too.
578
579 2010-05-04  Jan Hubicka  <jh@suse.cz>
580
581         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
582         node will be removed anyway.
583         (lto_varpool_replace_node): Allow also unanalyzed nodes;
584         relink aliases of node into prevailing node.
585         * varpool.c (varpool_remove_node): Remove aliases properly;
586         when removing node, remove all its aliases too; remove DECL_INITIAL
587         of removed node; ggc_free the varpool node.
588
589 2010-05-04  Richard Guenther  <rguenther@suse.de>
590
591         PR tree-optimization/43879
592         * tree-ssa-structalias.c (alias_get_name): Use
593         DECL_ASSEMBLER_NAME if available.
594         (create_function_info_for): Return the varinfo node.
595         (ipa_pta_execute): Associate same-body aliases and extra names
596         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
597
598 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
599
600         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove
601         static.
602
603 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
604
605         PR bootstrap/43964
606         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
607         only if HONOR_REG_ALLOC_ORDER is not defined.
608
609 2010-05-04  Richard Guenther  <rguenther@suse.de>
610
611         PR tree-optimization/43949
612         * tree-vrp.c (extract_range_from_binary_expr): Only handle
613         TRUNC_MOD_EXPR.
614
615 2010-04-26  Jason Merrill  <jason@redhat.com>
616
617         * c.opt (-fstrict-enums): New.
618         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
619
620 2010-05-03  David Ung <davidu@mips.com>
621             James E. Wilson  <wilson@codesourcery.com>
622
623         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
624         emit the trap instruction before the divide for TUNE_74K.
625
626 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
627
628         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
629         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
630         based on the above, for new target hook.
631
632         * hooks.c (hook_bool_mode_true): New generic hook.
633         * hooks.h (hook_bool_mode_true): Add prototype.
634
635         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
636         target hook.
637         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
638         target hook, set to hook_bool_mode_false.
639         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
640         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
641         with targetm.small_register_classes_for_mode_p.
642         (find_reusable_reload): Likewise.
643         (combine_reloads): Likewise.
644         * reload1.c (reload_as_needed): Likewise.
645         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
646         * ifcvt.c (noce_process_if_block, check_cond_move_block,
647         dead_or_predicable): Likewise.
648         * regmove.c (optimize_reg_copy_1): Likewise.
649         * calls.c (prepare_call_address): Likewise.
650         (precompute_register_parameters): Likewise.
651
652         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
653         hook definition.
654         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
655         implementation of the hook that considers all register classes
656         small except for SH64.
657         (sh_override_options): Use the new hook.
658         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
659         Add prototype.
660
661         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
662         hook definition.
663         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
664         implementation of the hook that considers all register classes
665         small for THUMB1.
666         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
667         Add prototype.
668
669         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
670         hook definition.
671         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
672         implementation of the hook that considers all register classes
673         small for MIPS16.
674         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
675         Add prototype.
676
677         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
678         hook definition.
679         * config/m32c/m32c.h: Likewise.
680         * config/pdp11/pdp11.h: Likewise.
681         * config/avr/avr.h: Likewise.
682         * config/xtensa/xtensa.h: Likewise.
683         * config/m68hc11/m68hc11.h: Likewise.
684         * config/mn10300/mn10300.h: Likewise.
685         * config/mcore/mcore.h: Likewise.
686         * config/h8300/h8300.h: Likewise.
687         * config/bfin/bfin.h: Likewise.
688
689         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
690         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
691
692 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
693
694         * double-int.h (tree_to_double_int): Remove macro.
695         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
696         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
697         (tree_to_double_int): New function.
698         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
699         Move ...
700         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
701
702 2010-05-03  Richard Guenther  <rguenther@suse.de>
703
704         PR tree-optimization/43971
705         * tree-ssa-structalias.c (get_constraint_for_1): Fix
706         constraints in the !flag_delete_null_pointer_checks case.
707
708 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
709
710         PR debug/43972
711         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
712         result mode matches original rtl mode.
713
714 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
715
716         PR target/43888
717         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
718
719 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
720
721         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
722         when processing flag options.
723
724 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
725
726         * gcov-iov.c (main): Change format string placeholder
727         from %#08x to 0x%08x.
728         * genchecksum.c (dosum): Change format string placeholder
729         from %#02x to 0x%02x.
730
731 2010-05-02  Richard Guenther  <rguenther@suse.de>
732
733         PR tree-optimization/43879
734         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
735
736 2010-05-02  Bruno Haible  <bruno@clisp.org>
737
738         * doc/extend.texi (Function Attributes): Fix a typo.
739
740 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
741
742         Revert:
743         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
744         placeholder from 0x%x to %#x.
745         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
746         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
747         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
748         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
749         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
750         * config/i386/i386.c (ix86_target_string): Ditto.
751         * config/i386/i386.c (output_pic_addr_const): Ditto.
752         (print_operand): Ditto.
753
754 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
755
756         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
757         placeholder from 0x%x to %#x.
758         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
759         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
760         (ASM_OUTPUT_DEBUG_DATA): Ditto.
761         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
762         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
763         * optc-gen.awk: Ditto.
764         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
765         (HOST_WIDE_INT_PRINT_HEX): Ditto.
766         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
767         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
768
769 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
770
771         * target.h (struct calls): Add function_value_regno_p field.
772         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
773         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
774         * targhooks.c (default_function_value_regno_p): New function.
775         * targhooks.h (default_function_value_regno_p): Declare function.
776         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
777         * builtins.c. (apply_result_size): (Ditto.).
778         * combine.c. (likely_spilled_retval_p): (Ditto.).
779         * mode-switching.c. Include 'target.h'.
780         (create_pre_exit): Use function_value_regno_p hook.
781         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
782         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
783         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
784
785         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
786         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
787         (ix86_function_value_regno_p): Declare as static, change argument
788         type to const unsigned int.
789         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
790
791 2010-05-01  Richard Guenther  <rguenther@suse.de>
792
793         PR tree-optimization/43949
794         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
795         types.
796         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
797
798 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
799
800         * rtl.h (CONST_DOUBLE_P): Define.
801         (rtx_to_double_int): Declare.
802         * emit-rtl.c (rtx_to_double_int): New function.
803         * dwarf2out.c (insert_double): New function.
804         (loc_descriptor, add_const_value_attribute): Clean up, use
805         rtx_to_double_int and insert_double functions.
806
807 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
808
809         * doc/extend.texi (Inline): Add missing return keyword to examples.
810         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
811         "command-line".
812
813 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
814
815         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
816         the variable part of the offset as well.  Use highest_pow2_factor for
817         all alignment checks.
818
819 2010-04-30  Richard Guenther  <rguenther@suse.de>
820
821         PR tree-optimization/43879
822         * tree-ssa-structalias.c (type_could_have_pointers): Functions
823         can have pointers.
824
825 2010-04-30  Jan Hubicka  <jh@suse.cz>
826
827         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
828         varpool.
829         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
830
831 2010-04-30  Jan Hubicka  <jh@suse.cz>
832
833         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
834         New.
835         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
836         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
837         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
838         cgraph_node_set_needs_ltrans_p): Remove.
839
840 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
841
842         * sdbout.c: Include vec.h, do not include varray.h.
843         (deferred_global_decls, sdbout_global_decl,
844         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
845         * toplev.c: Do not include varray.h.
846         (dump_memory_report): Do not dump VARRAY statistics.
847         * gengtype.c (open_base_file): Ignore varray.h.
848         * Makefile.in: Update for abovementioned changes.
849         Remove all traces of varray.c and varray.h.
850         * varray.c: Remove file.
851         * varray.h: Remove file.
852
853 2010-04-30  Jan Hubicka  <jh@suse.cz>
854
855         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
856         references.
857
858 2010-04-30  Jan Hubicka  <jh@suse.cz>
859
860         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
861         needed.
862
863 2010-04-30  Richard Guenther  <rguenther@suse.de>
864
865         * tree-ssa-structalias.c (get_constraint_for_1): Generate
866         constraints for CONSTRUCTOR.
867
868 2010-04-30  Richard Guenther  <rguenther@suse.de>
869
870         PR lto/43946
871         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
872         first after all lowering passes.
873
874 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
875
876         * toplev.c: Include varray.h for statistics dumping.
877         * tree.h: Do not declare varray_head_tag.
878         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
879         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
880         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
881         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
882         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
883         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
884         c-common.c, c-common.h, reg-stack.c, basic-block.h,
885         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
886         include varray.h.
887         * Makefile.in: Update for abovementioned changes.
888
889 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
890
891         PR debug/43942
892         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
893
894 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
895
896         * config/picochip/picochip.c (picochip_legitimize_address): Define.
897         Use this function to do machine-specific conversion.
898         (picochip_legitimize_reload_address): Likewise.
899         (picochip_legitimate_address_p): Check valid base register only if
900         strict.
901         (picochip_check_conditional_copy): Check for modw only if opnd is
902         register.
903         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
904         to call the function in c.
905         * config/picochip/picochip-protos.h
906         (picochip_legitimize_reload_address): Define.
907         * config/picochip/picochip.md (supported_compare1): Define.
908
909 2010-04-30  Jan Hubicka  <jh@suse.cz>
910
911         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
912         (cgraph_global_info): Remove inlined.
913         (LTO_cgraph_tag_names): Remove.
914         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
915         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
916         simplify cgraph tags and document.
917         (lto_output_node): Use only LTO_cgraph_unavail_node and
918         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
919         for_functions_valid, global info, process and output flags.
920         (input_overwrite_node): Initialize estimated stack size and
921         estimated growth.  Do not read flags we no longer store.
922         (input_node): Likewise do not read info no longer stored.
923         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
924         flag.
925
926 2010-04-30  Richard Guenther  <rguenther@suse.de>
927
928         PR tree-optimization/43879
929         * tree-ssa-structalias.c (get_constraint_for_1): Properly
930         handle non-zero initializers.
931
932 2010-04-30  Richard Guenther  <rguenther@suse.de>
933
934         * builtins.c (fold_builtin_1): Delete free (0).
935
936 2010-04-29  Jan Hubicka  <jh@suse.cz>
937
938         * gengtype.c (open_base_files): Add lto-streamer.h
939         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
940         (pass_ipa_cp): GGC collect.
941         * toplev. (compile_file): Do not output symbols.
942         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
943         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
944         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
945         * lto-section-in.c: Include ggc.h
946         (lto_new_in_decl_state): Alloc in GGC.
947         (lto_delete_in_decl_state): Likewise.
948         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
949         Collect.
950
951 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
952
953         PR target/42895
954         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
955         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
956         (HONOR_REG_ALLOC_ORDER): Describe new macro.
957         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
958         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
959         account only if HONOR_REG_ALLOC_ORDER is not defined.
960         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
961         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
962
963 2010-04-29  Jon Grant  <04@jguk.org>
964
965         * collect2.c (vflag): Change type from int to bool.
966         (debug): Likewise.
967         (helpflag): New global bool.
968         (main): Set vflag and debug with boolean, not integer truth values.
969         Accept new "--help" option and output usage text if found.
970         * collect2.h (vflag): Update prototype.
971         (debug): Likewise.
972
973 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
974
975         PR bootstrap/43936
976         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
977
978 2010-04-29  Richard Guenther  <rguenther@suse.de>
979
980         PR bootstrap/43935
981         * plugin.h (invoke_plugin_callbacks): Annotate arguments
982         with ATTRIBUTE_UNUSED.
983
984 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
985
986         PR target/43921
987         * config/i386/i386.c (get_some_local_dynamic_name): Replace
988         INSN_P with NONDEBUG_INSN_P.
989         (distance_non_agu_define): Likewise.
990         (distance_agu_use): Likewise.
991
992 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
993
994         From Dominique d'Humieres <dominiq@lps.ens.fr>
995         PR bootstrap/43858
996         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
997         test_set.
998
999 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
1000
1001         * plugin.h (invoke_plugin_callbacks): New inline function.
1002         * plugin.c (flag_plugin_added): New global flag.
1003         (add_new_plugin): Initialize above flag.
1004         (invoke_plugin_callbacks): Rename to ...
1005         (invoke_plugin_callbacks_full): ... this.
1006
1007 2010-04-28  Jan Hubicka  <jh@suse.cz>
1008
1009         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
1010         (lto_varpool_replace_node): New.
1011         (lto_symtab_resolve_symbols): Resolve varpool nodes.
1012         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
1013         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
1014         * cgraph.h (varpool_node_ptr): New type.
1015         (varpool_node_ptr): New vector.
1016         (varpool_node_set_def): New structure.
1017         (varpool_node_set): New type.
1018         (varpool_node_set): New vector.
1019         (varpool_node_set_element_def): New structure.
1020         (varpool_node_set_element, const_varpool_node_set_element): New types.
1021         (varpool_node_set_iterator): New type.
1022         (varpool_node): Add prev pointers, add used_from_other_partition,
1023         in_other_partition.
1024         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
1025         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
1026         varpool_get_node, varpool_remove_node): Declare.
1027         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
1028         varpool_node_set_size): New inlines.
1029         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
1030         * tree-pass.h (varpool_node_set_def): Forward declare.
1031         (ipa_opt_pass_d): Summary writting takes vnode sets too.
1032         (ipa_write_optimization_summaries): Update prototype.
1033         * ipa-cp.c (ipcp_write_summary): Update.
1034         * ipa-reference.c (ipa_reference_write_summary): Update.
1035         * lto-cgraph.c (lto_output_varpool_node): New static function.
1036         (output_varpool): New function.
1037         (input_varpool_node): New static function.
1038         (input_varpool_1): New function.
1039         (input_cgraph): Input varpool.
1040         * ipa-pure-const.c (pure_const_write_summary): Update.
1041         * lto-streamer-out.c (lto_output): Update, output varpool too.
1042         (write_global_stream): Kill WPA hack.
1043         (produce_asm_for_decls): Update.
1044         (output_alias_pair_p): Handle variables.
1045         (output_unreferenced_globals): Output only needed partition of varpool.
1046         * ipa-inline.c (inline_write_summary): Update.
1047         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
1048         cgraph.
1049         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
1050         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
1051         varpool_node_set_new, varpool_node_set_add,
1052         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
1053         debug_varpool_node_set): New functions.
1054         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
1055         (execute_one_pass): Process new decls too.
1056         (ipa_write_summaries_2): Pass around vsets.
1057         (ipa_write_summaries_1): Likewise.
1058         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
1059         to add.
1060         (ipa_write_optimization_summaries_1): Pass around vsets.
1061         (ipa_write_optimization_summaries): Likewise.
1062         * varpool.c (varpool_get_node): New.
1063         (varpool_node): Update doubly linked lists.
1064         (varpool_remove_node): New.
1065         (dump_varpool_node): More dumping.
1066         (varpool_enqueue_needed_node): Update doubly linked lists.
1067         (decide_is_variable_needed): Kill ltrans hack.
1068         (varpool_finalize_decl): Kill lto hack.
1069         (varpool_assemble_decl): Skip decls in other partitions.
1070         (varpool_assemble_pending_decls): Update doubly linkes lists.
1071         (varpool_empty_needed_queue): Likewise.
1072         (varpool_extra_name_alias): Likewise.
1073         * lto-streamer.c (lto_get_section_name): Add vars section.
1074         * lto-streamer.h (lto_section_type): Update.
1075         (output_varpool, input_varpool): Declare.
1076
1077 2010-04-28  Mike Stump  <mikestump@comcast.net>
1078
1079         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
1080
1081 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
1082
1083         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
1084         record or union type with RECORD_OR_UNION_TYPE_P predicate.
1085         (lto_input_ts_type_tree_pointers): Likewise.
1086         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
1087         (lto_output_ts_type_tree_pointers): Likewise.
1088
1089 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
1090
1091         Uniquization of constants at the Tree level
1092         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
1093         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
1094         bit to the end.
1095         (tree_output_constant_def): Declare.
1096         * gimplify.c (gimplify_init_constructor): When using block copy, first
1097         uniquize the constant constructor on the RHS.
1098         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
1099         DECL_IN_CONSTANT_POOL flag.
1100         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
1101         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
1102         constant pool.
1103         (assemble_variable): Deal with symbols belonging to the tree constant
1104         pool.
1105         (get_constant_section): Add ALIGN parameter and simplify.
1106         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
1107         (assemble_constant_contents): Use the expression of the VAR_DECL.
1108         (output_constant_def_contents): Use the alignment of the VAR_DECL.
1109         (tree_output_constant_def): New global function.
1110         (mark_constant): Use the expression of the VAR_DECL.
1111         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
1112         its expression.
1113         (output_object_block): Likewise and assemble the expression.
1114
1115 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
1116
1117         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
1118         hash_tree, eq_tree): New tree hash table.
1119         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
1120         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
1121         lto_orig_address_remove): Reimplement.
1122
1123 2010-04-28  Xinliang David Li  <davidxl@google.com>
1124
1125         PR c/42643
1126         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
1127         (compute_uninit_opnds_pos): New function.
1128         (is_non_loop_exit_postdominating): New function.
1129         (compute_control_dep_chain): New function.
1130         (find_pdom): New function.
1131         (convert_control_dep_chain_into_preds): New function.
1132         (find_predicates): New function.
1133         (find_control_equiv_block): New function.
1134         (collect_phi_def_edges): New function.
1135         (find_def_preds): New function.
1136         (find_dom): New function.
1137         (dump_predicates): New function.
1138         (get_cmp_code): New function.
1139         (is_value_included_in): New function.
1140         (find_matching_predicate_in_rest_chains): New function.
1141         (use_pred_not_overlap_with_undef_path_pred): New function.
1142         (is_use_properly_guarded): New function.
1143         (normalize_cond_1): New function.
1144         (is_and_or_or): New function.
1145         (normalize_cond): New function.
1146         (is_gcond_subset_of): New function.
1147         (is_subset_of_any): New function.
1148         (is_or_set_subset_of): New function.
1149         (is_and_set_subset_of): New function.
1150         (is_norm_cond_subset_of): New function.
1151         (is_pred_expr_subset_of): New function.
1152         (is_pred_chain_subset_of): New function.
1153         (is_included_in): New function.
1154         (is_superset_of): New function.
1155         (find_uninit_use): New function.
1156         (warn_uninitialized_phi): New function.
1157         (compute_possibly_undefined_names): New function.
1158         (ssa_undefined_value_p): New function.
1159         (execute_late_warn_uninitialized): New function.
1160         * tree-ssa.c (ssa_undefined_value_p): Removed.
1161         (warn_uninit): Changed to extern.
1162         (warn_uninitialized_phi): Removed.
1163         (warn_uninitialized_vars): Changed to extern.
1164         (execute_late_warn_uninitialized): Removed
1165         * tree-flow.h: Add new prototypes.
1166         * timevar.def: Add new time variable.
1167         * Makefile.in: Add new build file.
1168
1169 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
1170
1171         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
1172         type if available.
1173
1174 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1175
1176         PR target/22224
1177         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
1178
1179 2010-04-28  Martin Jambor  <mjambor@suse.cz>
1180
1181         * cgraph.h (struct cgraph_node): New field indirect_calls.
1182         (struct cgraph_indirect_call_info): New type.
1183         (struct cgraph_edge): Removed field indirect_call. New fields
1184         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
1185         (cgraph_create_indirect_edge): Declare.
1186         (cgraph_make_edge_direct): Likewise.
1187         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
1188         * ipa-prop.h (struct ipa_param_call_note): Removed.
1189         (struct ipa_node_params): Removed field param_calls.
1190         (ipa_create_all_structures_for_iinln): Declare.
1191         * cgraph.c: Described indirect edges and uids in initial comment.
1192         (cgraph_add_edge_to_call_site_hash): New function.
1193         (cgraph_edge): Search also among the indirect edges, use
1194         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
1195         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
1196         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
1197         site hash.
1198         (initialize_inline_failed): Assign a reason to indirect edges.
1199         (cgraph_create_edge_1): New function.
1200         (cgraph_create_edge): Moved some functionality to
1201         cgraph_create_edge_1.
1202         (cgraph_create_indirect_edge): New function.
1203         (cgraph_edge_remove_callee): Add an assert checking for
1204         non-indirectness.
1205         (cgraph_edge_remove_caller): Special-case indirect edges.
1206         (cgraph_remove_edge): Likewise.
1207         (cgraph_set_edge_callee): New function.
1208         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
1209         (cgraph_make_edge_direct): New function.
1210         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
1211         the declaration of the call statement matches.
1212         (cgraph_node_remove_callees): Special-case indirect edges.
1213         (cgraph_clone_edge): Likewise.
1214         (cgraph_clone_node): Clone also the indirect edges.
1215         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
1216         indirect_call, dump count of indirect_calls edges.
1217         * ipa-prop.c (iinlining_processed_edges): New variable.
1218         (ipa_note_param_call): Create indirect edges instead of
1219         creating notes.  New parameter node.
1220         (ipa_analyze_call_uses): New parameter node, pass it on to
1221         ipa_note_param_call.
1222         (ipa_analyze_stmt_uses): Likewise.
1223         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
1224         (print_edge_addition_message): Work on edges rather than on notes.
1225         (update_call_notes_after_inlining): Likewise, renamed to
1226         update_indirect_edges_after_inlining.
1227         (ipa_create_all_structures_for_iinln): New function.
1228         (ipa_free_node_params_substructures): Do not free notes.
1229         (ipa_edge_duplication_hook): Propagate bits within
1230         iinlining_processed_edges bitmap.
1231         (ipa_node_duplication_hook): Do not duplicate notes.
1232         (free_all_ipa_structures_after_ipa_cp): Renamed to
1233         ipa_free_all_structures_after_ipa_cp.
1234         (free_all_ipa_structures_after_iinln): Renamed to
1235         ipa_free_all_structures_after_iinln.g
1236         (ipa_write_param_call_note): Removed.
1237         (ipa_read_param_call_note): Removed.
1238         (ipa_write_indirect_edge_info): New function.
1239         (ipa_read_indirect_edge_info): Likewise.
1240         (ipa_write_node_info): Do not stream notes, do stream information
1241         in indirect edges.
1242         (ipa_read_node_info): Likewise.
1243         (lto_ipa_fixup_call_notes): Removed.
1244         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
1245         * ipa-inline.c (pass_ipa_inline): Likewise.
1246         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
1247         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
1248         * tree-inline.c (copy_bb): Removed an unnecessary double check for
1249         is_gimple_call.
1250         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
1251         edges.
1252         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
1253         (output_cgraph): Stream also indirect edges.
1254         (lto_output_edge): Added capability to stream indirect edges.
1255         (input_edge): Likewise.
1256         (input_cgraph_1): Likewise.
1257         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
1258         of indirect edges.
1259
1260 2010-04-28  Richard Guenther  <rguenther@suse.de>
1261
1262         PR tree-optimization/43879
1263         PR tree-optimization/43909
1264         * tree-ssa-structalias.c (struct variable_info): Add
1265         only_restrict_pointers flag.
1266         (new_var_info): Initialize it.  Increment stats.total_vars here.
1267         (create_function_info_for): Do not increment stats.total_vars
1268         here.
1269         (get_function_part_constraint): Fix build with C++.
1270         (insert_into_field_list): Remove.
1271         (push_fields_onto_fieldstack): Properly merge fields.
1272         (create_variable_info_for): Split and simplify.
1273         (create_variable_info_for_1): New piece.
1274         (intra_create_variable_infos): Properly make restrict constraints
1275         from parameters.
1276
1277 2010-04-28  Richard Guenther  <rguenther@suse.de>
1278
1279         PR c++/43880
1280         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
1281
1282 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1283             Jan Hubicka <hubicka@ucw.cz>
1284
1285         * doc/invoke.texi (-Wsuggest-attribute=const,
1286         -Wsuggest-attribute=pure): Document.
1287         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
1288         (function_always_visible_to_compiler_p,
1289         suggest_attribute, warn_function_pure, warn_function_const):
1290         New functions.
1291         (check_call): Improve debug info.
1292         (analyze_function): Do not check availability.
1293         (add_new_function): Check availability.
1294         (propagate): Output warnings.
1295         (skip_function_for_local_pure_const): New function.
1296         (local_pure_const): Use it; output warnings.
1297         * common.opt (Wsuggest-attribute=const,
1298         Wsuggest-attribute=pure): New.
1299
1300 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
1301
1302         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
1303         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
1304         or DW_CFA_def_cfa_offset{,_sf}.
1305
1306 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
1307
1308         * tree.h: Fix truncated long macros.
1309
1310 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
1311
1312         * collect2.c (TARGET_64BIT): Redefine to target's default.
1313         * tlink.c: Likewise.
1314         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
1315         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
1316         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
1317         for underscoring __USER_LABEL_PREFIX__.
1318         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
1319         (SUB_LINK_ENTRY32): New.
1320         (SUB_LINK_ENTRY64): New.
1321         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
1322         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
1323         (SUB_LINK_ENTRY64): New.
1324         (SUB_LINK_ENTRY): New.
1325         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
1326         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
1327         x64 target is choosen.
1328         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
1329         * configure: Regenerated.
1330         * configure.ac (leading-mingw64-underscores): Option added.
1331
1332 2010-04-27  Jan Hubicka  <jh@suse.cz>
1333
1334         * doc/invoke.texi (-fipa-profile): Document.
1335         * opts.c (decode_options): Enable ipa-profile at -O1.
1336         * timevar.def (TV_IPA_PROFILE): Define.
1337         * common.opt (fipa-profile): Add.
1338         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
1339         flag for clones.
1340         (cgraph_propagate_frequency): Handle only local ones.
1341         * tree-pass.h (pass_ipa_profile): Declare.
1342         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
1343         (pass_ipa_profile): Use TV_IPA_PROFILE.
1344         * ipa.c (ipa_profile): New function.
1345         (gate_ipa_profile): Likewise.
1346         (pass_ipa_profile): New global variable.
1347         * passes.c (pass_ipa_profile): New.
1348
1349 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
1350
1351         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
1352
1353 2010-04-27  Martin Jambor  <mjambor@suse.cz>
1354
1355         PR middle-end/43812
1356         * ipa.c (dissolve_same_comdat_group_list): New function.
1357         (function_and_variable_visibility): Call
1358         dissolve_same_comdat_group_list when comdat group contains external or
1359         newly local nodes.
1360         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
1361         lists are circular and that they contain only DECL_ONE_ONLY nodes.
1362
1363 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
1364
1365         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
1366         (const_hash_1) <VECTOR_CST>: New case.
1367         (compare_constant) <VECTOR_CST>: Likewise.
1368         <ADDR_EXPR>: Deal with LABEL_REFs.
1369         (copy_constant) <VECTOR_CST>: New case.
1370
1371 2010-04-27  Jan Hubicka  <jh@suse.cz>
1372
1373         * cgraph.c (cgraph_propagate_frequency): New function.
1374         * cgraph.h (cgraph_propagate_frequency): Declare.
1375         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
1376         cgraph_propagate_frequency.
1377
1378 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
1379
1380         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
1381
1382 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
1383
1384         PR target/40657
1385         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
1386         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
1387         here to determine which regs to push and how much stack to reserve.
1388
1389 2010-04-27  Jie Zhang  <jie@codesourcery.com>
1390
1391         * doc/gimple.texi (gimple_statement_with_ops): Remove
1392         addresses_taken field.
1393         (gimple_statement_with_memory_ops): Likewise.
1394
1395 2010-04-27  Jan Hubicka  <jh@suse.cz>
1396
1397         * tree-inline.c (eni_inlining_weights): Remove.
1398         (estimate_num_insns): Special case more builtins.
1399
1400 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
1401
1402         PR c/32207
1403         * c-typeck.c (build_binary_op): Move forward check for comparison
1404         pointer with null pointer constant and adjust the diagnostic message.
1405
1406 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
1407
1408         PR lto/42776
1409         * configure.ac (gcc_cv_as_section_has_align): Set if installed
1410         binutils supports extended .section directive needed by LTO, or
1411         warn if older binutils found.
1412         (LTO_BINARY_READER): New AC_SUBST'd variable.
1413         (LTO_USE_LIBELF): Likewise.
1414         * gcc/config.gcc (lto_binary_reader): New target-specific configure
1415         variable.
1416         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
1417         (LTO_USE_LIBELF): Likewise.
1418         * configure: Regenerate.
1419
1420         * collect2.c (is_elf): Rename from this ...
1421         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
1422          object files in addition to ELF-formatted ones.
1423         (scan_prog_file): Caller updated.  Also allow for LTO info marker
1424         symbol to be prefixed or not by an extra underscore.
1425
1426         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
1427         * config/i386/winnt.c: Also #include lto-streamer.h
1428         (i386_pe_asm_named_section): Specify 1-byte section alignment for
1429         LTO named sections.
1430         (i386_pe_asm_output_aligned_decl_common): Add comment.
1431         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
1432
1433 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
1434
1435         PR target/43889
1436         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
1437         Add missing earlyclobber for second alternative.
1438
1439 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
1440
1441         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
1442         bits for artificial defs at the top of the block.
1443         * fwprop.c (single_def_use_enter_block): Don't call it.
1444
1445 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
1446
1447         PR 43715
1448         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
1449         instead of "$gcc_cv_objdump -T".
1450         Use "-undefined dynamic_lookup" on darwin.
1451         * gcc/configure: Regenerate.
1452
1453 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
1454
1455         PR c/43893
1456         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
1457
1458 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
1459
1460         * c-parser.c (struct c_token): Move location field up.
1461         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
1462         (struct c_declspecs): Convert typespec_word, storage_class, and
1463         default_int_p into bitfields.
1464         (struct c_declarator): Move loc field up.
1465
1466 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
1467
1468         * cfgloop.h (struct loop): Move can_be_parallel field up.
1469         * ipa-prop.h (struct ip_node_params): Move bitfields up.
1470         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
1471         down.
1472         (struct iv_cand): Convert pos field into a bitfield.
1473         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
1474         field up.
1475         (struct _stmt_vec_info): Shuffle fields for better packing.
1476
1477 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
1478
1479         * varasm.c (IN_NAMED_SECTION): Remove guard.
1480         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
1481         (IN_NAMED_SECTION_P): ...this.
1482         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
1483         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
1484
1485 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
1486
1487         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
1488         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
1489         of shadowing it.  Fix comments.
1490
1491 2010-04-26  Jan Hubicka  <jh@suse.cz>
1492
1493         * cgraph.c (cgraph_create_node): Set node frequency to normal.
1494         (cgraph_clone_node): Copy function frequency.
1495         * cgraph.h (node_frequency): New enum
1496         (struct cgraph_node): Add.
1497         * final.c (rest_of_clean_state): Update.
1498         * lto-cgraph.c (lto_output_node): Output node frequency.
1499         (input_overwrite_node): Input node frequency.
1500         * tre-ssa-loop-ivopts (computation_cost): Update.
1501         * lto-streamer-out.c (output_function): Do not output function
1502         frequency.
1503         * predict.c (maybe_hot_frequency_p): Update and handle functions
1504         executed once.
1505         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
1506         attribute lookup.
1507         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
1508         (compute_function_frequency): Set noreturn functions to be executed
1509         once.
1510         (choose_function_section): Update.
1511         * lto-streamer-in.c (input_function): Do not input function frequency.
1512         * function.c (allocate_struct_function): Do not initialize function
1513         frequency.
1514         * function.h (function_frequency): Remove.
1515         (struct function): Remove function frequency.
1516         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
1517         (try_update): Update.
1518         * tree-inline.c (initialize_cfun): Do not update function frequency.
1519         * passes.c (pass_init_dump_file): Update.
1520         * i386.c (ix86_compute_frame_layout): Update.
1521         (ix86_pad_returns): Update.
1522
1523 2010-04-26  Jie Zhang  <jie@codesourcery.com>
1524
1525         PR tree-optimization/43833
1526         * tree-vrp.c (range_int_cst_p): New.
1527         (range_int_cst_singleton_p): New.
1528         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
1529         when both operands are constants.  Use range_int_cst_p in
1530         BIT_IOR_EXPR case.
1531
1532 2010-04-26  Jan Hubicka  <jh@suse.cz>
1533
1534         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
1535
1536 2010-04-26  Richard Guenther  <rguenther@suse.de>
1537
1538         PR lto/43080
1539         * gimple.c (gimple_decl_printable_name): Deal gracefully
1540         with a NULL DECL_NAME.
1541
1542 2010-04-26  Richard Guenther  <rguenther@suse.de>
1543
1544         PR lto/42425
1545         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
1546         if emitting debug information and it is either a function
1547         or a namespace decl.
1548
1549 2010-04-26  Ira Rosen  <irar@il.ibm.com>
1550
1551         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
1552         determine if the statement is vectorizable, and a macro to access it.
1553         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
1554         Skip statements that can't be vectorized. If the analysis fails,
1555         mark the statement as unvectorizable if vectorizing basic block.
1556         (vect_compute_data_refs_alignment): Likewise.
1557         (vect_verify_datarefs_alignment): Skip statements marked as
1558         unvectorizable. Add print.
1559         (vect_analyze_group_access): Skip statements that can't be
1560         vectorized. If the analysis fails, mark the statement as
1561         unvectorizable if vectorizing basic block.
1562         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
1563         * tree-vect-stmts.c (vectorizable_store): Fix the number of
1564         generated stmts for SLP.
1565         (new_stmt_vec_info): Initialize the new field.
1566         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
1567         statements marked as unvectorizable.
1568
1569 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
1570
1571         * c-common.c (flag_isoc1x): New.
1572         (flag_isoc99): Update comment.
1573         * c-common.h (flag_isoc1x): New.
1574         (flag_isoc99): Update comment.
1575         * c-cppbuiltin.c (builtin_define_float_constants): Also define
1576         __<type>_DECIMAL_DIG__.
1577         * c-opts.c (set_std_c1x): New.
1578         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
1579         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
1580         * c.opt (-std=c1x, -std=gnu1x): New options.
1581         * doc/cpp.texi: Mention -std=c1x.
1582         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
1583         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
1584         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
1585         * doc/standards.texi: Mention C1X.
1586         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
1587         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
1588         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
1589         Define for C1X.
1590
1591 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
1592
1593         * config/i386/gmon-sol2.c (_mcleanup): Change format string
1594         placeholder from 0x%x to %#x.
1595         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
1596         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
1597         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
1598         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
1599         * config/i386/i386.c (ix86_target_string): Ditto.
1600         (output_pic_addr_const): Ditto.
1601         (print_operand): Ditto.
1602
1603 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
1604
1605         * combine.c (find_split_point): Add third argument.  Use it
1606         to find nested multiply-accumulate instructions.  Adjust calls.
1607         (try_combine): Adjust call to find_split_point.
1608
1609 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
1610
1611         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
1612
1613 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
1614
1615         PR tree-optimization/41442
1616         * fold-const.c (merge_truthop_with_opposite_arm): New function.
1617         (fold_binary_loc): Call it.
1618
1619 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1620
1621         * toplev.c (general_init): Set default for fdiagnostics-show-option.
1622         * opts.c (common_handle_option): Allow disabling it.
1623         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
1624
1625 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
1626
1627         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
1628         between modes if both types are integral.
1629
1630 2010-04-23  Richard Guenther  <rguenther@suse.de>
1631
1632         PR tree-optimization/43572
1633         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
1634
1635 2010-04-23  Richard Guenther  <rguenther@suse.de>
1636
1637         PR lto/43455
1638         * tree-inline.c (tree_can_inline_p): Also check compatibility
1639         of return types.
1640
1641 2010-04-23  Martin Jambor  <mjambor@suse.cz>
1642
1643         PR tree-optimization/43846
1644         * tree-sra.c (struct access): New flag grp_assignment_read.
1645         (build_accesses_from_assign): Set grp_assignment_read.
1646         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
1647         (enum mark_read_status): New type.
1648         (analyze_access_subtree): Propagate grp_assignment_read, create
1649         accesses also if both direct_read and root->grp_assignment_read.
1650
1651 2010-04-23  Martin Jambor  <mjambor@suse.cz>
1652
1653         PR middle-end/43835
1654         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
1655         function does not have type attributes.
1656
1657 2010-04-23  Richard Guenther  <rguenther@suse.de>
1658
1659         PR lto/42653
1660         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
1661         of FUNCTION_DECLs.
1662
1663 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1664
1665         * sese.h (create_if_region_on_edge): Remove.
1666
1667         * sese.c (create_if_region_on_edge): Make static.
1668
1669         * tree-inline.c: Do not include ggc.h.
1670
1671         * expr.c: Do not include ggc.h.
1672
1673         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
1674         dependencies.
1675
1676 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
1677
1678         PR target/43744
1679         * config/sh/sh.c (find_barrier): Don't emit a constant pool
1680         in the middle of insns for casesi_worker_2.
1681
1682 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
1683
1684         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
1685
1686 2010-04-22  Ira Rosen  <irar@il.ibm.com>
1687
1688         PR tree-optimization/43842
1689         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
1690         loop unrolling in update of exit phis. Fix comment.
1691         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
1692         least two reduction statements in the loop before starting SLP
1693         analysis.
1694
1695 2010-04-22  Nick Clifton  <nickc@redhat.com>
1696
1697         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
1698
1699 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
1700
1701         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
1702         to simplify a + ~a.
1703
1704 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1705
1706         * tree-parloops.c (loop_parallel_p): New argument
1707         parloop_obstack.  Pass it down.
1708         (parallelize_loops): New variable parloop_obstack.  Initialize it,
1709         pass it down, free it.
1710
1711         * tree-loop-linear.c (linear_transform_loops): Pass down
1712         lambda_obstack.
1713
1714         * tree-data-ref.h (lambda_compute_access_matrices): New argument
1715         of type struct obstack *.
1716
1717         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
1718         scratch_obstack.  Initialize it, pass down, free it.
1719
1720         * lambda.h (lambda_loop_new): Remove.
1721         (lambda_matrix_new, lambda_matrix_inverse)
1722         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
1723         argument of type struct obstack *.
1724
1725         * lambda-trans.c (lambda_trans_matrix_new): New argument
1726         lambda_obstack.  Pass it down, use obstack allocation for ret.
1727         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
1728         it down.
1729
1730         * lambda-mat.c (lambda_matrix_get_column)
1731         (lambda_matrix_project_to_null): Remove.
1732         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
1733         allocation for mat.
1734         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
1735         lambda_obstack.
1736
1737         * lambda-code.c (lambda_loop_new): New function.
1738         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
1739         (lambda_compute_auxillary_space, lambda_compute_target_space)
1740         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
1741         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
1742         (build_access_matrix): New argument lambda_obstack.  Use obstack
1743         allocation for am.
1744         (lambda_compute_step_signs, lambda_compute_access_matrices): New
1745         argument lambda_obstack.  Pass it down.
1746
1747 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1748
1749         * optabs.h (expand_widening_mult): Declare.
1750
1751 2010-04-22  Richard Guenther  <rguenther@suse.de>
1752
1753         PR tree-optimization/43845
1754         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
1755         lookup the CALL_EXPR function and arguments.
1756
1757 2010-04-22  Nick Clifton  <nickc@redhat.com>
1758
1759         * config/stormy16/stormy16.c
1760         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
1761         * config/stormy16/stormy16.h: Tidy up formatting.
1762         (DONT_USE_BUILTIN_SETJMP): Remove definition.
1763         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
1764         (ineqbranchsi): Delete pattern.
1765         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
1766         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
1767         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
1768         stormy16-lib2-ucmpsi2.c.
1769
1770 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1771
1772         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
1773         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
1774         extra set merge_set_noclobber, and use it to relax the final test
1775         slightly.
1776         * df.h (df_simulate_find_noclobber_defs): Declare.
1777         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
1778         conditional defs.
1779         (df_simulate_find_noclobber_defs): New function.
1780
1781 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
1782
1783         * config/i386/i386.md: Use {} around multi-line preparation statements.
1784
1785 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1786
1787         * c-tree.h (push_init_level, pop_init_level, set_init_index)
1788         (process_init_element): New argument of type struct obstack *.
1789
1790         * c-typeck.c (push_init_level, pop_init_level, set_designator)
1791         (set_init_index, set_init_label, set_nonincremental_init)
1792         (set_nonincremental_init_from_string, find_init_member)
1793         (output_init_element, output_pending_init_elements)
1794         (process_init_element): New argument braced_init_obstack.  Pass it
1795         down.
1796         (push_range_stack, add_pending_init): New argument
1797         braced_init_obstack.  Use obstack allocation.
1798
1799         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
1800         braced_init_obstack.  Pass it down.
1801         (c_parser_braced_init): New variables ret, braced_init_obstack.
1802         Initialize obstack, pass it down and finally free it.
1803
1804 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1805
1806         PR middle-end/29274
1807         * tree-pass.h (pass_optimize_widening_mul): Declare.
1808         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
1809         gate_optimize_widening_mul): New static functions.
1810         (pass_optimize_widening_mul): New.
1811         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
1812         <case MULT_EXPR>: Remove support for widening multiplies.
1813         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
1814         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
1815         simplify_gen_unary rather than directly building extensions.
1816         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
1817         WIDEN_MULT_EXPR.
1818         * expmed.c (expand_widening_mult): New function.
1819         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
1820
1821 2010-04-21  Jan Hubicka  <jh@suse.cz>
1822
1823         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
1824         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
1825         * lto-wpa-fixup.c: Remove.
1826         * Makefile.in (lto-wpa-fixup.o): Remove.
1827         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
1828         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
1829         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
1830
1831 2010-04-21  Jan Hubicka  <jh@suse.cz>
1832
1833         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
1834         add write_optimization_summary, read_optimization_summary.
1835         (ipa_write_summaries_of_cgraph_node_set): Remove.
1836         (ipa_write_optimization_summaries): Declare.
1837         (ipa_read_optimization_summaries): Declare.
1838         * ipa-cp.c (pass_ipa_cp): Update.
1839         * ipa-reference.c (pass_ipa_reference): Update.
1840         * ipa-pure-const.c (pass_ipa_pure_const): Update.
1841         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
1842         Update.
1843         * ipa-inline.c (pass_ipa_inline): Update.
1844         * ipa.c (pass_ipa_whole_program): Update.
1845         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
1846         * passes.c (ipa_write_summaries_1): Do not test wpa.
1847         (ipa_write_optimization_summaries_1): New.
1848         (ipa_write_optimization_summaries): New.
1849         (ipa_read_summaries): Do not test ltrans.
1850         (ipa_read_optimization_summaries_1): New.
1851         (ipa_read_optimization_summaries): New.
1852
1853 2010-04-21  Jan Hubicka  <jh@suse.cz>
1854
1855         * lto-cgraph.c (lto_output_node): Do not output comdat groups
1856         for boundary nodes.
1857         (output_cgraph): Do not arrange comdat groups for boundary nodes.
1858
1859 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1860
1861         PR debug/40040
1862         * dwarf2out.c (add_name_and_src_coords_attributes): Add
1863         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
1864
1865 2010-04-21  Jan Hubicka  <jh@suse.cz>
1866
1867         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
1868
1869 2010-04-21  Jan Hubicka  <jh@suse.cz>
1870
1871         * varpool.c (decide_is_variable_needed): Variable is always needed
1872         during ltrans.
1873
1874 2010-04-21  Jan Hubicka  <jh@suse.cz>
1875
1876         * opts.c (decode_options): Enable pure-const pass for whopr.
1877
1878 2010-04-21  Jan Hubicka  <jh@suse.cz>
1879
1880         * cgraph.c (dump_cgraph_node): Dump also assembler name.
1881         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
1882         at WPA dumping.
1883         (cgraph_decide_inlining): Do not expect callee to be removed in all
1884         cases.
1885
1886 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
1887
1888         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
1889
1890 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
1891
1892         * config/i386/i386.md (x86_shrd): Add athlon_decode and
1893         amdfam10_decode attributes.
1894
1895 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1896
1897         PR middle-end/43570
1898         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
1899         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
1900         (lower_copyprivate_clauses): Use private var in outer
1901         context instead of original var.  Make sure the types
1902         are correct for VLAs.
1903
1904 2010-04-21  Richard Guenther  <rguenther@suse.de>
1905
1906         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
1907         to non-pointer objects.
1908
1909 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1910
1911         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
1912         last chain entry if it starts with the still current label.
1913         (add_location_or_const_value_attribute): Check that
1914         loc_list->first->next is NULL instead of comparing ->first with ->last.
1915         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
1916         to add_var_loc_to_decl.
1917
1918         * dwarf2out.c (output_call_frame_info): For dw_cie_version
1919         >= 4 add also address size and segment size fields into CIE header.
1920
1921         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
1922         long as address size is the same as sizeof (void *) and
1923         segment size is 0.
1924         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
1925         address size or segment size is unexpected, return DW_EH_PE_omit.
1926         (classify_object_over_fdes): If get_cie_encoding returned
1927         DW_EH_PE_omit, return -1.
1928         (init_object): If classify_object_over_fdes returned -1,
1929         pretend there were no FDEs at all.
1930
1931 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
1932
1933         * config/i386/i386.md (bswap<mode>2): Macroize expander from
1934         bswap{si,di}2 using SWI48 mode iterator.
1935         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
1936         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
1937         set modrm attribute of bswap insn to 0 and remove length attribute.
1938         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
1939         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
1940         set mode attribute to <MODE> and remove length attribute.
1941
1942 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
1943
1944         PR rtl-optimization/43520
1945         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
1946         zero available registers.
1947
1948 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1949
1950         * builtins.c (fold_builtin_cproj): Fold more cases.
1951
1952 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1953
1954         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
1955         (fold_builtin_1): Fold builtin cproj.
1956         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
1957         Use ATTR_CONST_NOTHROW_LIST.
1958
1959 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
1960
1961         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
1962         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
1963         ffsi2_no_cmove for !TARGET_CMOVE.
1964         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
1965         (ffssi2): Remove expander.
1966         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
1967         mode iterator.
1968         (ctz<mode>2): Ditto from ctz{si,di}2.
1969         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
1970         mode iterator.
1971         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
1972         mode iterator.
1973
1974 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
1975
1976         * dwarf2out.c (AT_linkage_name): Define.
1977         (clone_as_declaration): Handle DW_AT_linkage_name.
1978         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
1979         of DW_AT_MIPS_linkage_name.
1980         (move_linkage_attr): Likewise.
1981         (dwarf2out_finish): Likewise.
1982
1983 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
1984
1985         PR middle-end/41952
1986         * fold-const.c (fold_comparison): New folding rule.
1987
1988 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
1989
1990         * double-int.h (double_int_setbit): Declare.
1991         * double-int.c (double_int_setbit): New function.
1992         * rtl.h (immed_double_int_const): Declare.
1993         * emit-rtl.c (immed_double_int_const): New function.
1994         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
1995         and immed_double_int_const functions.
1996         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
1997         expand_copysign_bit):  (Ditto.).
1998         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
1999         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
2000         * dojump.c (prefer_and_bit_test): (Ditto.).
2001         * expr.c (convert_modes, reduce_to_bit_field_precision,
2002         const_vector_from_tree): (Ditto.).
2003         * expmed.c (mask_rtx, lshift_value): (Ditto.).
2004
2005 2010-04-20  Jan Hubicka  <jh@suse.cz>
2006
2007         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
2008         (dump_cgraph_node): Dump new flags.
2009         * cgraph.h (struct cgraph_node): Add flags
2010         reachable_from_other_partition and in_other_partition.
2011         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
2012         other partition can not be removed.
2013         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
2014         the other partition must be output; silence sanity checking on
2015         leaking functions bodies from other paritition.
2016         * lto-cgraph.c (reachable_from_other_partition_p): New function.
2017         (lto_output_node): Output new flags; do not sanity check that inline
2018         clones are output; drop lto_forced_extern_inline_p code; do not mock
2019         visibility flags at partition boundaries.
2020         (add_node_to): New function.
2021         (output_cgraph): Use it to sort functions so masters appear before
2022         clones.
2023         (input_overwrite_node): Input new flags.
2024         * passes.c (ipa_write_summaries): Do not call
2025         lto_new_extern_inline_states.
2026         * lto-section-out.c (forced_extern_inline,
2027         lto_new_extern_inline_states lto_delete_extern_inline_states,
2028         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
2029         * lto-streamer.h (lto_new_extern_inline_states,
2030         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
2031         lto_forced_extern_inline_p): Kill.
2032
2033 2010-04-20  Richard Guenther  <rguenther@suse.de>
2034
2035         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
2036         from vars that can have pointers.
2037         (process_constraint): Dump useless constraints.
2038
2039 2010-04-20  Richard Guenther  <rguenther@suse.de>
2040
2041         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
2042         (dump_sa_points_to_info): Remove asserts.
2043         (init_base_vars): nothing_id isn't an escape point nor does it
2044         have pointers.
2045
2046 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
2047
2048         * tree.h (TYPE_REF_IS_RVALUE): Define.
2049         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
2050         should_move_die_to_comdat, prune_unused_types_walk): Handle
2051         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
2052         (modified_type_die, gen_reference_type_die): Emit
2053         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
2054         if TYPE_REF_IS_RVALUE and -gdwarf-4.
2055
2056 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2057
2058         PR target/43635
2059         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
2060         calls for -fpic -m31 if they have been sibcall optimized.
2061
2062 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
2063
2064         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
2065         ar.lc fixed and call-used.
2066
2067         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
2068
2069 2010-04-19  Jan Hubicka  <jh@suse.cz>
2070
2071         * opts.c (decode_options): Disable whpr incompatible passes.
2072         * lto/lto.c (lto_1_to_1_map): Skip clones.
2073         (read_cgraph_and_symbols): Do not mark everything as needed.
2074         (do_whole_program_analysis): Do map only after optimizing;
2075         set proper cgraph_state; use passmanager.
2076
2077 2010-04-19  DJ Delorie  <dj@redhat.com>
2078
2079         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
2080         POINTER_PLUS_EXPR and fix them.
2081
2082 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
2083
2084         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
2085         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
2086         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
2087         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
2088         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
2089         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
2090         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
2091         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
2092         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
2093         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
2094         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
2095
2096 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
2097
2098         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
2099         (check_cond_move_block): Likewise.
2100         (cond_move_process_if_block): Likewise.
2101         (noce_find_if_block): Improve formatting.
2102         (find_if_header): Pass 0 to memset and tweak conditions.
2103         (cond_exec_find_if_block): Fix long lines and tweak conditions.
2104
2105 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
2106
2107         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
2108         for -gdwarf-4.
2109
2110         PR middle-end/43337
2111         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
2112         with non-local decl doesn't need chain.
2113
2114 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
2115
2116         * ira-color.c (allocno_reload_assign): Avoid accumulating
2117         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
2118
2119 2010-04-19  Martin Jambor  <mjambor@suse.cz>
2120
2121         * gimple.h (create_tmp_reg): Declare.
2122         * gimplify.c (create_tmp_reg): New function.
2123         (gimplify_return_expr): Use create_tmp_reg.
2124         (gimplify_omp_atomic): Likewise.
2125         (gimple_regimplify_operands): Likewise.
2126         * tree-dfa.c (make_rename_temp): Likewise.
2127         * tree-predcom.c (predcom_tmp_var): Likewise.
2128         (reassociate_to_the_same_stmt): Likewise.
2129         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
2130         (get_replaced_param_substitute): Likewise.
2131         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
2132         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
2133         * tree-ssa-pre.c (get_representative_for): Likewise.
2134         (create_expression_by_pieces): Likewise.
2135         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
2136         (create_tailcall_accumulator): Likewise.
2137
2138 2010-04-19  Martin Jambor  <mjambor@suse.cz>
2139
2140         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
2141         new_stmt.
2142         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
2143
2144 2010-04-19  Richard Guenther  <rguenther@suse.de>
2145
2146         PR tree-optimization/43796
2147         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
2148         from SCEV in the lattice.
2149         (vrp_visit_phi_node): Dump change.
2150
2151 2010-04-19  Richard Guenther  <rguenther@suse.de>
2152
2153         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
2154         * configure: Re-generated.
2155
2156 2010-04-19  Richard Guenther  <rguenther@suse.de>
2157
2158         PR tree-optimization/43783
2159         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
2160         constant ARRAY_REF operands two and three if possible.
2161
2162 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
2163
2164         PR target/43766
2165         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
2166
2167 2010-04-19  Jie Zhang  <jie@codesourcery.com>
2168
2169         PR target/43662
2170         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
2171
2172 2010-04-19  Ira Rosen  <irar@il.ibm.com>
2173
2174         PR tree-optimization/37027
2175         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
2176         and macro to access it.
2177         (vectorizable_reduction): Add argument.
2178         (vect_get_slp_defs): Likewise.
2179         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
2180         statements for possible use in SLP.
2181         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
2182         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
2183         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
2184         add new argument.
2185         (vectorizable_reduction): Likewise.
2186         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
2187         vect_get_slp_defs.
2188         (vectorizable_type_demotion, vectorizable_type_promotion,
2189         vectorizable_store): Likewise.
2190         (vect_analyze_stmt): Update call to vectorizable_reduction.
2191         (vect_transform_stmt): Likewise.
2192         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
2193         (vect_build_slp_tree): Fix indentation. Check that there are no loads
2194         from different interleaving chains in same node.
2195         (vect_slp_rearrange_stmts): New function.
2196         (vect_supported_load_permutation_p): Allow load permutations for
2197         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
2198         inside SLP nodes if necessary.
2199         (vect_analyze_slp_instance): Handle reductions.
2200         (vect_analyze_slp): Try to build SLP instances originating from groups
2201         of reductions.
2202         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
2203         (vect_get_constant_vectors): Create initial vectors for reductions
2204         according to reduction code. Add new argument.
2205         (vect_get_slp_defs): Add new argument, pass it to
2206         vect_get_constant_vectors.
2207         (vect_schedule_slp_instance): Remove SLP tree root statements.
2208
2209 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
2210
2211         * tree.h (ENUM_IS_SCOPED): Define.
2212         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
2213         for ENUM_IS_SCOPED enums.
2214
2215 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2216
2217         * fold-const.c (fold_comparison): Use ssizetype.
2218         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
2219         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
2220         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
2221         * tree-object-size.c (compute_object_sizes): Use size_type_node.
2222
2223         * tree.h (initialize_sizetypes): Remove parameter.
2224         (build_common_tree_nodes): Remove second parameter.
2225         * stor-layout.c (initialize_sizetypes): Remove parameter.
2226         Always create an unsigned type.
2227         (set_sizetype): Assert that the passed type is unsigned and simplify.
2228         * tree.c (build_common_tree_nodes): Remove second parameter.
2229         Adjust call to initialize_sizetypes.
2230         * c-decl.c (c_init_decl_processing): Remove second argument in call to
2231         build_common_tree_nodes.
2232
2233 2010-04-18  Matthias Klose  <doko@ubuntu.com>
2234
2235         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
2236
2237 2010-04-18  Ira Rosen  <irar@il.ibm.com>
2238
2239         PR tree-optimization/43771
2240         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
2241         load permutation doesn't have gaps.
2242
2243 2010-04-18  Jan Hubicka  <jh@suse.cz>
2244
2245         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
2246         (sse_prologue_save_insn expander): Use new pattern.
2247         (sse_prologue_save_insn1): New pattern and splitter.
2248         (sse_prologue_save_insn): Update to deal also with 64bit aligned
2249         blocks.
2250         * i386.c (setup_incoming_varargs_64): Do not compute jump
2251         destination here.
2252         (ix86_gimplify_va_arg): Update alignment needed.
2253         (ix86_local_alignment): Do not align all local arrays to 128bit.
2254
2255 2010-04-17  Jan Hubicka  <jh@suse.cz>
2256
2257         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
2258
2259 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
2260
2261         * arm.md (negdi2): Remove redundant code to force values into a
2262         register.
2263
2264 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
2265
2266         * arm/bpabi.S: Add EABI alignment attributes to objects.
2267         * arm/bpabi-v6m.S: Likewise.
2268         * arm/crti.asm: Likewise.
2269         * arm/crtn.asm: Likewise.
2270         * arm/lib1funcs.asm: Likewise.
2271         * arm/libunwind.S: Likewise.
2272
2273 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
2274
2275         * arm-protos.h (tune_params): New structure.
2276         * arm.c (current_tune): New variable.
2277         (arm_constant_limit): Delete.
2278         (struct processors): Add pointer to the tune parameters.
2279         (arm_slowmul_tune): New tuning option.
2280         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
2281         (all_cores): Adjust to pick up the tuning model.
2282         (arm_constant_limit): New function.
2283         (arm_override_options): Select the appropriate tuning model.  Delete
2284         initialization of arm_const_limit.
2285         (arm_split_constant): Use the new constant-limit model.
2286         (arm_rtx_costs): Pick up the current tuning model.
2287         * arm.md (is_strongarm, is_xscale): Delete.
2288         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
2289         for Xscale variant architectures.
2290         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
2291
2292 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2293
2294         * config/arm/arm.c (arm_gen_constant): Remove unused variable
2295         can_shift.
2296         (arm_rtx_costs_1): Remove unused variable extra_cost.
2297         (arm_unwind_emit_set): Use variable offset.
2298         (thumb1_output_casesi): Remove unused variable flags.
2299
2300 2010-04-16  Jeff Law  <law@redhat.com>
2301
2302         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
2303         needing assignment rather than doing a two-phase assignment.  Remove
2304         unused variable 'm'.
2305
2306 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2307
2308         PR bootstrap/43767
2309         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
2310
2311 2010-04-16  Doug Kwan  <dougkwan@google.com>
2312
2313         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
2314         (next_operand_entry_id): New static variable.
2315         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
2316         (add_to_ops_vec): Assigned unique ID to operand entry.
2317         (struct oecount_s): New field ID.
2318         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
2319         (undistribute_ops_list): Assign unique IDs to oecounts.
2320         (init_reassoc): reset next_operand_entry_id.
2321
2322 2010-04-16  Doug Kwan  <dougkwan@google.com>
2323
2324         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
2325         missing left parenthesis.
2326
2327 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
2328
2329         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
2330         *btdi_rex64 using SWI48 mode iterator.
2331         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
2332         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
2333         *jcc_btdi_mask_rex64.
2334
2335 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
2336
2337         * double-int.h (tree_to_double_int): Convert to macro.
2338         * double-int.c (tree_to_double_int): Remove.
2339
2340 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2341
2342         PR debug/43762
2343         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
2344         with want_address 2 and in case a single element list might be
2345         possible, call it again with want_address 0.
2346
2347 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
2348
2349         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
2350         case 'W' print operands for HI mode.
2351         * config/h8300/h8300.h (Y0, Y2) : New constraints.
2352         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
2353         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
2354         * config/h8300/predicate.md (bit_register_indirect_operand): New.
2355
2356         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
2357
2358         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
2359         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
2360         #xx:3 and #xx:4 mode.
2361
2362         * config/h8300/h8300.md (inverted load with HImode dest): Add
2363         support for H8300SX.
2364
2365         * config/h8300/predicate.md (bit_operand): Allow immediate values that
2366         satisfy 'U' constraint.
2367
2368 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2369
2370         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
2371         * configure: Regenerate.
2372         * config.in: Regenerate.
2373         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
2374         works.
2375
2376 2010-04-16  Richard Guenther  <rguenther@suse.de>
2377
2378         * tree.h (struct tree_decl_minimal): Move pt_uid ...
2379         (struct tree_decl_common): ... here.
2380         (DECL_PT_UID): Adjust.
2381         (SET_DECL_PT_UID): Likewise.
2382         (DECL_PT_UID_SET_P): Likewise.
2383
2384 2010-04-16  Richard Guenther  <rguenther@suse.de>
2385
2386         PR tree-optimization/43572
2387         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
2388         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
2389         * tree-flow.h (is_call_clobbered): Remove.
2390         * tree-flow-inline.h (is_call_clobbered): Likewise.
2391         * tree-dfa.c (dump_variable): Do not dump call clobber state.
2392         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
2393         (execute_return_slot_opt): Adjust.
2394         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
2395         check for call clobbered vars here.
2396         (find_tail_calls): Move tailcall verification to the
2397         proper place.
2398
2399 2010-04-16  Diego Novillo  <dnovillo@google.com>
2400
2401         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
2402
2403 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
2404
2405         PR target/40603
2406         * config/arm/arm.md (cbranchqi4): New pattern.
2407         * config/arm/predicates.md (const0_operand,
2408         cbranchqi4_comparison_operator): New predicates.
2409
2410 2010-04-16  Richard Guenther  <rguenther@suse.de>
2411
2412         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
2413         (dump_gimple_stmt): Likewise.
2414
2415 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
2416
2417         * recog.h (struct recog_data): New field is_operator.
2418         (struct insn_operand_data): New field is_operator.
2419         * recog.c (extract_insn): Set recog_data.is_operator.
2420         * genoutput.c (output_operand_data): Emit code to set the
2421         is_operator field.
2422         * reload.c (find_reloads): Use it rather than testing for an
2423         empty constraint string.
2424
2425         PR target/41514
2426         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
2427         If the previous insn is a cbranchsi4_insn with the same arguments,
2428         omit the compare instruction.
2429
2430         * config/arm/arm.md (addsi3_cbranch): If destination is a high
2431         register, inputs must be low registers and we need a low register
2432         scratch.  Handle alternative 2 like alternative 3.
2433
2434 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2435
2436         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
2437         don't call get_addr on both.  If one expression is a VALUE and
2438         the other a REG, check VALUE's locs if the REG isn't among them.
2439
2440 2010-04-16  Christian Bruel  <christian.bruel@st.com>
2441
2442         * config/sh/sh.h (sh_frame_pointer_required): New function.
2443         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
2444         (flag_omit_frame_pointer) Set.
2445         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
2446         (rounded_frame_size): Adjust size with outgoing_args_size.
2447         (sh_set_return_address): Must return from stack pointer.
2448         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
2449         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
2450         (ACCUMULATE_OUTGOING_ARGS): Define.
2451         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
2452         * gcc/config/sh/sh.opt: (maccumulate-outgoing-args): New option.
2453
2454 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
2455
2456         PR target/43471
2457         * config/sh/sh.c (sh_legitimize_reload_address): Use
2458         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
2459         Remove a unneeded check for offset_base.
2460
2461 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
2462
2463         * configure: Regenerated.
2464
2465 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2466
2467         * config/s390/s390.c (s390_call_save_register_used): Switch back
2468         to HARD_REGNO_NREGS.
2469
2470 2010-04-15  Richard Guenther  <rguenther@suse.de>
2471
2472         * alias.c (alias_set_subset_of): Handle alias-set zero
2473         child properly.
2474
2475 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
2476             Julian Brown  <julian@codesourcery.com>
2477
2478         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
2479         alternatives according to use of high and low regs.
2480         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
2481         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
2482         optimizing for size on Thumb-2.
2483
2484 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
2485
2486         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
2487
2488 2010-04-15  Richard Guenther  <rguenther@suse.de>
2489
2490         * tree-ssa-structalias.c (struct variable_info): Add
2491         is_fn_info flag.
2492         (new_var_info): Initialize it.
2493         (dump_constraints): Support printing last added constraints.
2494         (debug_constraints): Adjust.
2495         (dump_constraint_graph): Likewise.
2496         (make_heapvar_for): Check for NULL cfun.
2497         (get_function_part_constraint): New function.
2498         (get_fi_for_callee): Likewise.
2499         (find_func_aliases): Properly implement IPA PTA constraints.
2500         (process_ipa_clobber): New function.
2501         (find_func_clobbers): Likewise.
2502         (insert_into_field_list_sorted): Remove.
2503         (create_function_info_for): Properly allocate vars for IPA mode.
2504         Do not use insert_into_field_list_sorted.
2505         (create_variable_info_for): Properly generate constraints for
2506         global vars in IPA mode.
2507         (dump_solution_for_var): Always dump the solution.
2508         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
2509         (find_what_var_points_to): Adjust.
2510         (pt_solution_set): Change.
2511         (pt_solution_ior_into): New function.
2512         (pt_solution_empty_p): Export.
2513         (pt_solution_includes_global): Adjust.
2514         (pt_solution_includes_1): Likewise.
2515         (pt_solutions_intersect_1): Likewise.
2516         (dump_sa_points_to_info): Check some invariants.
2517         (solve_constraints): Move constraint dumping ...
2518         (compute_points_to_sets): ... here.
2519         (ipa_pta_execute): ... and here.
2520         (compute_may_aliases): Do not re-compute points-to info
2521         locally if IPA info is available.
2522         (ipa_escaped_pt): New global var.
2523         (ipa_pta_execute): Properly implement IPA PTA.
2524         * tree-into-ssa.c (dump_decl_set): Support dumping
2525         decls not in referenced-vars.
2526         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
2527         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
2528         (dump_points_to_solution): Likewise.
2529         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
2530         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
2531         (remap_gimple_stmt): Reset call clobber/use information if necessary.
2532         (copy_decl_to_var): Copy DECL_PT_UID.
2533         (copy_result_decl_to_var): Likewise.
2534         * tree.c (make_node_stat): Initialize DECL_PT_UID.
2535         (copy_node_stat): Copy it.
2536         * tree.h (DECL_PT_UID): New macro.
2537         (SET_DECL_PT_UID): Likewise.
2538         (DECL_PT_UID_SET_P): Likewise.
2539         (struct tree_decl_minimal): Add pt_uid member.
2540         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
2541         (pt_solution_empty_p): Declare.
2542         (pt_solution_set): Adjust.
2543         (ipa_escaped_pt): Declare.
2544         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
2545         * gimple-pretty-print.c (pp_points_to_solution): New function.
2546         (dump_gimple_call): Dump call clobber/use information.
2547         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
2548         * tree-pass.h (TDF_ALIAS): New dump option.
2549         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
2550         * doc/invoke.texi (-fipa-pta): Update documentation.
2551
2552 2010-04-15  Richard Guenther  <rguenther@suse.de>
2553
2554         * Makefile.in (OBJS-common): Add gimple-fold.o.
2555         (gimple-fold.o): New rule.
2556         * tree.h (maybe_fold_offset_to_reference,
2557         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
2558         prototypes ...
2559         * gimple.h: ... here.
2560         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
2561         may_propagate_address_into_dereference): Move prototypes ...
2562         * gimple.h: ... here.
2563         * tree-ssa-ccp.c (get_symbol_constant_value,
2564         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
2565         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
2566         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
2567         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
2568         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
2569         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
2570         gimplify_and_update_call_from_tree): Move ...
2571         * gimple-fold.c: ... here.  New file.
2572         (ccp_fold_builtin): Rename to ...
2573         (gimple_fold_builtin): ... this.
2574         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
2575
2576 2010-04-15  Richard Guenther  <rguenther@suse.de>
2577
2578         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
2579         fit_double_type, force_fit_type_double, add_double_with_sign,
2580         neg_double, mul_double_with_sign, lshift_double, rshift_double,
2581         lrotate_double, rrotate_double, div_and_round_double): Move ...
2582         * double-int.c: ... here.
2583         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
2584         add_double, neg_double, mul_double_with_sign, mul_double,
2585         lshift_double, rshift_double, lrotate_double, rrotate_double,
2586         div_and_round_double): Move prototypes ...
2587         * double-int.h: ... here.
2588
2589 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
2590
2591         PR target/43742
2592         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
2593         matching constraints to ensure inputs match the output.
2594
2595 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
2596
2597         PR target/43742
2598         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
2599         in an input-only operand.
2600
2601 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
2602
2603         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
2604         (double_int_not, double_int_lshift, double_int_rshift): Declare.
2605         (double_int_negative_p): Convert to static inline function.
2606         * double-int.c (double_int_lshift, double_int_lshift): New functions.
2607         (double_int_negative_p): Remove.
2608         * tree.h (lshift_double, rshift_double):
2609         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
2610         * fold-const.c (fold_convert_const_int_from_real,
2611         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
2612         (lshift_double): Change type of arith argument to bool.
2613         (rshift_double): Change type of arith argument to bool. Correct
2614         comment.
2615         * expmed.c (mask_rtx, lshift_value): (Ditto.).
2616
2617 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
2618
2619         PR target/21803
2620         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
2621         at the start and end of the then/else blocks, and omit them from the
2622         conversion.
2623         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
2624         argument; all callers changed.  Pass zero to old_insns_match_p instead.
2625         (flow_find_head_matching_sequence): New function.
2626         (old_insns_match_p): Check REG_EH_REGION notes for calls.
2627         * basic-block.h (flow_find_cross_jump,
2628         flow_find_head_matching_sequence): Declare functions.
2629
2630 2010-04-14  Jason Merrill  <jason@redhat.com>
2631
2632         PR c++/36625
2633         * c-common.c (attribute_takes_identifier_p): New fn.
2634         * c-common.h: Declare it.
2635
2636 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2637
2638         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
2639         splitter condition.
2640         (*udivmod<mode>4): Ditto.
2641
2642 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2643
2644         * config/i386/i386.md (maxmin_int): Rename code attribute from
2645         maxminiprefix and update all users.
2646         (maxmin_float): Ditto from maxminfprefix.
2647         (logic): Ditto from logicprefix.
2648         (absneg_mnemonic): Ditto from absnegprefix.
2649         * config/i386/mmx.md: Update all users of maxminiprefix,
2650         maxminfprefix and logicprefix for rename.
2651         * config/i386/sse.md: Ditto.
2652         * config/i386/sync.md (sync_<code><mode>): Update for
2653         logicprefix rename.
2654
2655 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2656
2657         PR 42966
2658         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
2659         warnings converted to errors.
2660
2661 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2662
2663         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
2664         used insn_type variable.
2665         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
2666         to avoid set-but-not-used warning.
2667
2668 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2669
2670         * df-core.c (df_ref_debug): Change format string placeholder
2671         from 0x%x to %#x.
2672         * dwarf2asm.c (dw2_asm_output_data_raw,
2673         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
2674         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
2675         * dwarf2out.c (output_cfi, output_cfi_directive,
2676         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
2677         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
2678         Ditto.
2679         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
2680         * print-rtl.c (print_rtx): Ditto.
2681
2682 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
2683
2684         PR middle-end/42694
2685         * builtins.c (expand_builtin_pow_root): New function to expand pow
2686         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
2687         series of sqrt and cbrt calls under -ffast-math.
2688         (expand_builtin_pow): Call it.
2689
2690 2010-04-14  Michael Matz  <matz@suse.de>
2691
2692         PR tree-optimization/42963
2693         * tree-cfg.c (touched_switch_bbs): New static variable.
2694         (group_case_labels_stmt): New function broken out from ...
2695         (group_case_labels): ... here, use the above.
2696         (start_recording_case_labels): Allocate touched_switch_bbs.
2697         (end_recording_case_labels): Deallocate it, call
2698         group_case_labels_stmt.
2699         (gimple_redirect_edge_and_branch): Remember index of affected BB.
2700
2701 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2702
2703         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
2704         from insn template.
2705
2706 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2707
2708         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
2709
2710 2010-04-13  Jan Hubicka  <jh@suse.cz>
2711
2712         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
2713         of optimized out static functions.
2714         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
2715         cost computation.  Also sanity check for overflows.
2716         (update_caller_keys): Update cgraph_edge_badness call; properly
2717         update fibheap and sanity check that it is up to date.
2718         (add_new_edges_to_heap): Update cgraph_edge_badness.
2719         (cgraph_decide_inlining_of_small_function): Likewise;
2720         add sanity checking that badness in heap is up to date;
2721         improve dumping of reason; Update badness of calls to the
2722         offline copy of function currently inlined; dump badness
2723         of functions not inlined because of unit growth limits.
2724
2725 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
2726
2727         PR middle-end/32628
2728         * c-common.c (pointer_int_sum): Disregard overflow that occured only
2729         because of sign-extension change when converting to sizetype here...
2730         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
2731
2732         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
2733         the folding to constants.  Remove redundant final conversion.
2734         (fold_binary) <associate>: Do not associate if the re-association of
2735         constants alone overflows.
2736         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
2737         to the end of the list.
2738         (multiple_of_p) <COND_EXPR>: New case.
2739
2740 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2741
2742         * opt-functions.awk (opt_sanitized_name): New.
2743         (opt_enum): New.
2744         * optc-gen.awk: Use it
2745         * opth-gen.awk: Use it.
2746
2747 2010-04-13  Martin Jambor  <mjambor@suse.cz>
2748
2749         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
2750         (sra_modify_assign): Delete stmts loading dead data even if racc has no
2751         children.  Call replace_uses_with_default_def_ssa_name to handle
2752         SSA_NAES on lhs.
2753
2754 2010-04-13  Michael Matz  <matz@suse.de>
2755
2756         PR middle-end/43730
2757         * builtins.c (expand_builtin_interclass_mathfn): Also create
2758         a register if the predicate doesn't match.
2759
2760 2010-04-13  Diego Novillo  <dnovillo@google.com>
2761
2762         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
2763         * c-pch.c: Include timevar.h.
2764         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
2765         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
2766         * ggc-common.c: Include timevar.h.
2767         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
2768         * timevar.def (TV_PCH_SAVE): Define.
2769         (TV_PCH_CPP_SAVE): Define.
2770         (TV_PCH_PTR_REALLOC): Define.
2771         (TV_PCH_PTR_SORT): Define.
2772         (TV_PCH_RESTORE): Define.
2773         (TV_PCH_CPP_RESTORE): Define.
2774
2775 2010-04-13  Michael Matz  <matz@suse.de>
2776
2777         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
2778         into MINUS_EXPRs.
2779         (can_reassociate_p): New function.
2780         (break_up_subtract_bb, reassociate_bb): Use it.
2781
2782 2010-04-13  Richard Guenther  <rguenther@suse.de>
2783
2784         PR bootstrap/43737
2785         * builtins.c (c_readstr): Fix assert.
2786
2787 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
2788
2789         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
2790         when generating cltd insn.
2791
2792         (*ashl<mode>3_1): Remove special handling for register operand 2.
2793         (*ashlsi3_1_zext): Ditto.
2794         (*ashlhi3_1): Ditto.
2795         (*ashlhi3_1_lea): Ditto.
2796         (*ashlqi3_1): Ditto.
2797         (*ashlqi3_1_lea): Ditto.
2798         (*<shiftrt_insn><mode>3_1): Ditto.
2799         (*<shiftrt_insn>si3_1_zext): Ditto.
2800         (*<shiftrt_insn>qi3_1_slp): Ditto.
2801         (*<rotate_insn><mode>3_1): Ditto.
2802         (*<rotate_insn>si3_1_zext): Ditto.
2803         (*<rotate_insn>qi3_1_slp): Ditto.
2804
2805 2010-04-13  Richard Guenther  <rguenther@suse.de>
2806
2807         * tree-ssa-structalias.c (callused_id): Remove.
2808         (call_stmt_vars): New.
2809         (get_call_vi): Likewise.
2810         (lookup_call_use_vi): Likewise.
2811         (lookup_call_clobber_vi): Likewise.
2812         (get_call_use_vi): Likewise.
2813         (get_call_clobber_vi): Likewise.
2814         (make_transitive_closure_constraints): Likewise.
2815         (handle_const_call): Adjust to do per-call call-used handling.
2816         (handle_pure_call): Likewise.
2817         (find_what_var_points_to): Remove general callused handling.
2818         (init_base_vars): Likewise.
2819         (init_alias_vars): Initialize call_stmt_vars.
2820         (compute_points_to_sets): Process call-used and call-clobbered
2821         vars for call statements.
2822         (delete_points_to_sets): Free call_stmt_vars.
2823
2824 2010-04-13  Richard Guenther  <rguenther@suse.de>
2825
2826         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
2827         Only add RW dependence for dependence distance zero.
2828         Adjust maximal vectorization factor according to dependences.
2829         Move alignment handling ...
2830         (vect_find_same_alignment_drs): ... here.  New function.
2831         (vect_analyze_data_ref_dependences): Adjust.
2832         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
2833         (vect_analyze_data_refs): Adjust minimal vectorization factor
2834         according to data references.
2835         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
2836         dependences before determining the vectorization factor.
2837         Analyze alignment after determining the vectorization factor.
2838         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
2839         dependences before alignment.
2840         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
2841         Adjust prototype.
2842         (vect_analyze_data_refs): Likewise.
2843         (MAX_VECTORIZATION_FACTOR): New define.
2844
2845 2010-04-13  Duncan Sands  <baldrick@free.fr>
2846
2847         * except.h (lang_eh_type_covers): Remove.
2848         * except.c (lang_eh_type_covers): Likewise.
2849
2850 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2851             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2852
2853         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
2854         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
2855         UNITS_PER_LONG where it is ABI relevant.
2856         (s390_return_addr_rtx): Likewise.
2857         (s390_back_chain_rtx): Likewise.
2858         (s390_frame_area): Likewise.
2859         (s390_frame_info): Likewise.
2860         (s390_initial_elimination_offset): Likewise.
2861         (save_gprs): Likewise.
2862         (s390_emit_prologue): Likewise.
2863         (s390_emit_epilogue): Likewise.
2864         (s390_function_arg_advance): Likewise.
2865         (s390_function_arg): Likewise.
2866         (s390_va_start): Likewise.
2867         (s390_gimplify_va_arg): Likewise.
2868         (s390_function_profiler): Likewise.
2869         (s390_optimize_prologue): Likewise.
2870         (s390_rtx_costs): Likewise.
2871         (s390_secondary_reload): Likewise.
2872         (s390_promote_function_mode): Likewise.
2873         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
2874         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
2875         registers available.
2876         (s390_unwind_word_mode): New function.
2877         (s390_function_value): Split 64 bit values into register pair if
2878         used as return value.
2879         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
2880         function call parameters.  Handle parallels.
2881         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
2882         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
2883         (DWARF_CIE_DATA_ALIGNMENT): New macro.
2884         (s390_expand_setmem): Remove unused variable src_addr.
2885         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
2886         deal with 64 bit registers.
2887         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
2888         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
2889         (UNITS_PER_LONG): New macro.
2890         * libjava/include/s390-signal.h: Define extended ucontext
2891         structure containing the upper halfs of the 64 bit registers.
2892
2893 2010-04-13  Simon Baldwin  <simonb@google.com>
2894
2895         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
2896
2897 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
2898
2899         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
2900         rvalue on the RHS if the LHS is of a non-renamable type.
2901         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
2902
2903 2010-04-13  Matthias Klose  <doko@ubuntu.com>
2904
2905         * gcc.c (cc1_options): Handle -iplugindir before processing
2906         the cc1 spec. Only add -iplugindir once.
2907         (cpp_unique_options): Add -iplugindir option if -fplugin* options
2908         found.
2909         * common.opt (iplugindir): Remove `Separate' property, initialize.
2910         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
2911         option.
2912         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
2913         (distclean): Remove plugin dir.
2914         * doc/invoke.texi: Document -iplugindir.
2915
2916 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
2917
2918         * doc/plugins.texi (Loading Plugins): Document short
2919         -fplugin=foo option.
2920         (Plugin API): Mention default_plugin_dir_name function.
2921
2922         * gcc.c (find_file_spec_function): Add new declaration.
2923         (static_spec_func): Use it for "find-file".
2924         (find_file_spec_function): Add new function.
2925         (cc1_options): Add -iplugindir option if -fplugin* options found.
2926
2927         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
2928
2929         * plugin.c (add_new_plugin): Updated comment, and handle short
2930         plugin name.
2931         (default_plugin_dir_name): Added new function.
2932
2933         * common.opt (iplugindir): New option to set the plugin directory.
2934
2935 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
2936
2937         * config/i386/i386.md (any_rotate): New code iterator.
2938         (rotate_insn): New code attribute.
2939         (rotate): Ditto.
2940         (SWIM124): New mode iterator.
2941         (<rotate_insn>ti3): New expander.
2942         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
2943         any_rotate code iterator.
2944         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
2945         using any_rotate code iterator and SWIM124 mode iterator.
2946         (ix86_rotlti3): New insn_and_split pattern.
2947         (ix86_rotrti3): Ditto.
2948         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
2949         ix86_rotl{di,ti}3 patterns.
2950         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
2951         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
2952         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
2953         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
2954         code iterator and SWI mode iterator.
2955         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
2956         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
2957         code iterator.
2958         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
2959         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
2960         (bswap rotatert splitter): Add splitter.
2961         (bswap splitter): Macroize splitter using any_rotate code iterator.
2962         Add insn predicate to split only for TARGET_USE_XCHGB or when
2963         optimizing function for size.
2964
2965 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
2966
2967         * config/pa/pa.c (emit_move_sequence): Remove use of
2968         deleted variable flag_argument_noalias.
2969
2970 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2971
2972         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
2973         configurations.
2974         Add to unsupported targets list.
2975         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
2976         sparc*-sun-solaris2.[567]* from target lists.
2977         * configure: Regenerate.
2978         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
2979         removal.
2980         Remove Solaris 7 patch references.
2981         (Specific, sparc-sun-solaris2.7): Removed.
2982         (sparc-sun-solaris2*): Update Solaris 7 example.
2983         (sparc64-*-solaris2*): Likewise.
2984
2985 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2986
2987         * config.build (alpha*-dec-osf4*): Remove.
2988         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
2989         of obsolete configurations.
2990         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
2991         support.
2992         * config/alpha/t-osf4: Renamed to ...
2993         * config/alpha/t-osf5: ... this.
2994         * config/alpha/osf.h: Renamed to ...
2995         * config/alpha/osf5.h: ... this.
2996         Merged old osf5.h contents.
2997         Update comments.
2998         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
2999         (EXTRA_SPECS): Removed.
3000         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
3001         reflect removal of Tru64 UNIX V4.0/V5.0 support.
3002         Document that.
3003
3004 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3005
3006         * doc/contrib.texi (Contributors, Rainer Orth): Update.
3007
3008 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
3009
3010         PR/43702
3011         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
3012         __thiscall convention.
3013
3014 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
3015
3016         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
3017         orig_base.
3018         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
3019
3020 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
3021
3022         * function.c (assign_parms_initialize_all): Add unused attribute
3023         to fntype.
3024
3025 2010-04-12  Richard Guenther  <rguenther@suse.de>
3026
3027         * gsstruct.def (GSS_CALL): New.
3028         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
3029         * gimple.h: Include tree-ssa-alias.h.
3030         (struct gimple_statement_call): New.
3031         (union gimple_statement_struct_d): Add gimple_call member.
3032         (gimple_call_reset_alias_info): Declare.
3033         (gimple_call_use_set): New function.
3034         (gimple_call_clobber_set): Likewise.
3035         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
3036         * gimple.c (gimple_call_reset_alias_info): New function.
3037         (gimple_build_call_1): Call it.
3038         * lto-streamer-in.c (input_gimple_stmt): Likewise.
3039         * tree-inline.c (remap_gimple_stmt): Likewise.
3040         (expand_call_inline): Remove callused handling.
3041         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
3042         * tree-dfa.c (dump_variable): Likewise.
3043         * tree-parloops.c (parallelize_loops): Likewise.
3044         * tree-ssa.c (init_tree_ssa): Likewise.
3045         (delete_tree_ssa): Likewise.
3046         * tree-flow-inline.h (is_call_used): Remove.
3047         * tree-flow.h (struct gimple_df): Remove callused member.
3048         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
3049         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
3050         (ref_maybe_used_by_call_p_1): Simplify.
3051         (call_may_clobber_ref_p_1): Likewise.
3052         * tree-ssa-structalias.c (compute_points_to_sets): Set
3053         the call stmt used and clobbered sets.
3054         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
3055         (find_tail_calls): Verify the tail call.
3056
3057 2010-04-12  Richard Guenther  <rguenther@suse.de>
3058
3059         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
3060         single-iteration always-inline inlining.
3061         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
3062         (cgraph_decide_inlining): Do not handle always-inline specially.
3063         (try_inline): Remove always-inline cycle detection special case.
3064         Do not recurse on always-inlines.
3065         (cgraph_early_inlining): Do not iterate if not optimizing.
3066         (cgraph_gate_early_inlining): remove.
3067         (pass_early_inline): Run unconditionally.
3068         (gate_cgraph_decide_inlining): New function.
3069         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
3070         not inlining or optimizing.
3071         (cgraph_decide_inlining_of_small_functions): Also consider
3072         always-inline functions.
3073         (cgraph_default_inline_p): Return true for nodes which should
3074         disregard inline limits.
3075         (estimate_function_body_sizes): Assume zero size and time for
3076         nodes which are marked as disregarding inline limits.
3077         (cgraph_decide_recursive_inlining): Do not perform recursive
3078         inlining on always-inline nodes.
3079
3080 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
3081
3082         PR bootstrap/43699
3083         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
3084         for exprs satisfying handled_component_p.
3085
3086 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
3087
3088         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
3089         non-constant aggregate elements.
3090
3091         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
3092         is a real initialization.
3093
3094 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
3095
3096         PR c/36774
3097         * c-decl.c (start_function): Move forward check for nested function.
3098
3099 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
3100
3101         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
3102         * config/sh/sh.c: Include reload.h.
3103         (sh_legitimize_reload_address): New.
3104         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
3105         sh_legitimize_reload_address.
3106
3107 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
3108
3109         * config/sh/sh.md (*movqi_pop): New insn pattern.
3110         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
3111
3112 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
3113
3114         * config/i386/i386.md (any_shiftrt): New code iterator.
3115         (shiftrt_insn): New code attribute.
3116         (shiftrt): Ditto.
3117         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
3118         using any_shiftrt code iterator.
3119         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
3120         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
3121         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
3122         pattern from corresponding peephole2 patterns.
3123         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
3124         using any_shiftrt code iterator.
3125         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
3126         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
3127         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
3128         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
3129         *{ashr,lshr}<mode>3_cmp_zext.
3130         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
3131
3132 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
3133
3134         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
3135         scratch register.
3136         (*lshr<mode>3_cconly): Ditto.
3137
3138 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
3139
3140         * config/i386/i386.md (lshr<mode>3): Macroize expander from
3141         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
3142         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
3143         pattern from *lshr{di,ti}3_1 and corresponding splitters using
3144         DWI mode iterator.
3145         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
3146         from corresponding peephole2 patterns.
3147         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
3148         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
3149         and *lshrdi3_1_rex64 using SWI mode iterator.
3150         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
3151         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
3152         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
3153         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
3154         and *lshrdi3_cmp_rex64 using SWI mode iterator.
3155         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
3156         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
3157         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
3158         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
3159         SWI mode iterator.
3160
3161 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
3162
3163         * config/i386/i386.md (ashr<mode>3): Macroize expander from
3164         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
3165         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
3166         pattern from *ashr{di,ti}3_1 and corresponding splitters using
3167         DWI mode iterator.
3168         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
3169         from corresponding peephole2 patterns.
3170         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
3171         (ashrsi3_cvt): Rename from ashrsi3_31.
3172         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
3173         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
3174         and x86_64_shift_adj_3 using SWI48 mode iterator.
3175         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
3176         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
3177         and *ashrdi3_1_rex64 using SWI mode iterator.
3178         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
3179         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
3180         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
3181         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
3182         and *ashrdi3_cmp_rex64 using SWI mode iterator.
3183         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
3184         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
3185         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
3186         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
3187         SWI mode iterator.
3188         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
3189         * config/i386/i386.c (ix86_split_ashr): Update for renamed
3190         x86_shift<mode>_adj_3 expanders.
3191
3192 2010-04-10  Wei Guozhi  <carrot@google.com>
3193
3194         PR target/42601
3195         * config/arm/arm.c (arm_pic_static_addr): New function.
3196         (legitimize_pic_address): Call arm_pic_static_addr when it detects
3197         a static symbol.
3198         (arm_output_addr_const_extra): Output expression for new pattern.
3199         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
3200
3201 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
3202
3203         * ira-costs.c (record_reg_classes): Ignore alternatives that are
3204         not enabled.
3205
3206         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
3207         * web.c: Include "insn-config.h" and "recog.h".
3208         (union_match_dups): New function.
3209         (web_main): Call it.
3210         (union_defs): Don't try to recognize match_dups.
3211
3212         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
3213         if doing so would replace the entire pattern.
3214
3215 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
3216
3217         PR target/43707
3218         PR target/43709
3219         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
3220         and splitter pattern.  Change splitter operand 1 predicate to
3221         nonmemory_operand.
3222
3223 2010-04-09  Martin Jambor  <mjambor@suse.cz>
3224
3225         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
3226         lattices are addresses of CONST_DECLs with the same initial value.
3227         (ipcp_print_all_lattices): Print values of CONST_DECLs.
3228         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
3229
3230 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
3231             Bernd Schmidt  <bernds@codesourcery.com>
3232
3233         * loop-invariant.c (replace_uses): New static function.
3234         (move_invariant_reg): Use it to ensure we can replace the uses.
3235
3236 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
3237
3238         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
3239         function template.
3240         (picochip_override_options): Enable section anchors only above -O1.
3241         (picochip_reorg): Fixed a couple of build warnings.
3242
3243 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3244
3245         * configure.ac (plugin -rdynamic test): Log result.
3246         * configure: Regenerate.
3247         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
3248         (RDYNAMIC_SPEC): Define.
3249         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
3250
3251 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3252
3253         * configure.ac: Determine Sun ld version numbers.
3254         (comdat_group): Restrict GNU ld version checks to gld.
3255         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
3256         (enable_comdat): Support --enable-comdat.
3257         * configure: Regenerate.
3258         * doc/install.texi (Configuration): Document --enable-comdat.
3259
3260 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3261
3262         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
3263         * config/sol2-gld.h: ... here.
3264         * config.gcc (sparc*-*-solaris2*): Reflect this.
3265         (i[34567]86-*-solaris2*): Use it.
3266
3267 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
3268
3269         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
3270         setup_clocks_p.
3271         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
3272
3273 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3274
3275         PR 42965
3276         * diagnostic.c (diagnostic_initialize): Initialize
3277         some_warnings_are_errors.
3278         (diagnostic_finish): New.
3279         (diagnostic_action_after_output): Call it before exiting.
3280         (diagnostic_report_diagnostic): Do not print message here. Set
3281         some_warnings_are_errors.
3282         * diagnostic.h (diagnostic_context): Delete
3283         issue_warnings_are_errors_message. Add some_warnings_are_errors.
3284         (diagnostic_finish): Declare.
3285         * toplev.c (toplev_main): Call it before exit.
3286
3287 2010-04-09  Jason Merrill  <jason@redhat.com>
3288
3289         PR c++/42623
3290         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
3291         for incomplete type.
3292
3293         PR c++/41788
3294         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
3295         based on a warning flag.
3296
3297 2010-04-09  Richard Guenther  <rguenther@suse.de>
3298
3299         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
3300
3301 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
3302
3303         PR bootstrap/43684
3304         * varasm.c (default_assemble_visibility): Wrap vars that are
3305         set, but unused, by targets without GAS.
3306         * config/rs6000/rs6000.c: (paired_emit_vector_compare):
3307         Remove set, but unused, vars.
3308         (rs6000_legitimize_tls_address): Likewise.
3309         (altivec_expand_dst_builtin): Likewise.
3310         * config/darwin.c (machopic_classify_symbol): Likewise.
3311         (machopic_indirection_name): Likewise.
3312
3313 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
3314
3315         * config/i386/i386.md (DWI): New mode iterator.
3316         (S): New mode attribute.
3317         (shift_operand): Ditto.
3318         (shift_immediate_operand): Ditto.
3319         (ashl_input_operand): Ditto.
3320         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
3321         using SDWIM mode iterator.
3322         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
3323         pattern from *ashl{di,ti}3_1 and corresponding splitters using
3324         DWI mode iterator.
3325         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
3326         from corresponding peephole2 patterns.
3327         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
3328         and x86_64_shift_adj_1 using SWI48 mode iterator.
3329         (x86_shift<mode>_adj_2): Ditto.
3330         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
3331         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
3332         using SWI48 mode iterator.
3333         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
3334         *ashldi3_cmp_rex64 using SWI mode iterator.
3335         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
3336         *ashldi3_cconly_rex64 using SWI mode iterator.
3337         * config/i386/i386.c (ix86_split_ashl): Update for renamed
3338         x86_shift<mode>_adj_{1,2}.
3339         (ix86_split_ashr): Ditto.
3340         (ix86_split_lshr): Ditto.
3341
3342 2010-04-09  Richard Guenther  <rguenther@suse.de>
3343
3344         * target.h (builtin_conversion): Pass in input and output types.
3345         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
3346         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
3347         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
3348         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
3349
3350         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
3351         Handle AVX modes.
3352         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
3353
3354 2010-04-09  Richard Guenther  <rguenther@suse.de>
3355
3356         PR target/43152
3357         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
3358
3359 2010-04-09  Richard Guenther  <rguenther@suse.de>
3360
3361         * tree-vectorizer.h (struct _stmt_vec_info): Document
3362         that vectype is the type of the LHS.
3363         (supportable_widening_operation, supportable_narrowing_operation):
3364         Get both input and output vector types as arguments.
3365         (vect_is_simple_use_1): Declare.
3366         (get_same_sized_vectype): Likewise.
3367         * tree-vect-loop.c (vect_determine_vectorization_factor):
3368         Set STMT_VINFO_VECTYPE to the vector type of the def.
3369         (vectorizable_reduction): Adjust.
3370         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
3371         Adjust.  Specify the output vector type.
3372         (vect_pattern_recog_1): Adjust.
3373         * tree-vect-stmts.c (get_same_sized_vectype): New function.
3374         (vectorizable_call): Adjust.
3375         (vectorizable_conversion): Likewise.
3376         (vectorizable_operation): Likewise.
3377         (vectorizable_type_demotion): Likewise.
3378         (vectorizable_type_promotion): Likewise.
3379         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
3380         the def.
3381         (vect_is_simple_use_1): New function.
3382         (supportable_widening_operation): Get both input and output
3383         vector types.
3384         (supportable_narrowing_operation): Likewise.
3385         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
3386
3387 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
3388
3389         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
3390         __thiscall and _thiscall as predefined macros.
3391         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
3392         thiscall attribute handling.
3393         (ix86_comp_type_attributes): Likewise.
3394         (ix86_function_regparm): Likewise.
3395         (ix86_return_pops_args): Likewise.
3396         (init_cumulative_args): Likewise.
3397         (find_drap_reg): Likewise.
3398         (ix86_static_chain): Likewise.
3399         (x86_this_parameter): Likewise.
3400         (x86_output_mi_thunk): Likewise.
3401         (ix86_attribute_table): Add description for thiscall attribute.
3402         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
3403         * doc/extend.texi: Add documentation for thiscall.
3404
3405 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3406
3407         PR c++/28584
3408         * c.opt (Wint-to-pointer-cast): Available in C++.
3409         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
3410
3411 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
3412
3413         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
3414         * calls.c (expand_call): Pass the function type to aggregate_value_p.
3415         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
3416         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
3417         function type instead.  Reorder and simplify checks.
3418
3419         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
3420
3421 2010-04-08  Jing Yu  <jingyu@google.com>
3422             Zdenek Dvorak  <ook@ucw.cz>
3423