OSDN Git Service

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