OSDN Git Service

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