OSDN Git Service

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