OSDN Git Service

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