OSDN Git Service

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