OSDN Git Service

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