OSDN Git Service

* ChangeLog: Fix whitespace.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-05-10  Michael Matz  <matz@suse.de>
2
3         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
4         (can_reassociate_p): Use FLOAT_TYPE_P.
5         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
6         (vect_force_simple_reduction): ... this.
7         * tree-parloops.c (gather_scalar_reductions): Use
8         vect_force_simple_reduction.
9         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
10         vect_is_simple_reduction, add modify argument, if true rewrite
11         "a-b" into "a+(-b)".
12         (vect_is_simple_reduction, vect_force_simple_reduction): New
13         functions.
14         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
15
16 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
17             Vladimir Makarov  <vmakarov@redhat.com>
18
19         PR rtl-optimization/44012
20         * ira-build.c (remove_unnecessary_allocnos): Nullify
21         regno_allocno_map of the removed allocno.
22
23 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24
25         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
26         to /dev/null.
27         * configure: Regenerate.
28
29 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30
31         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
32         unused.
33         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
34         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
35         support in Sun ld.
36         * configure: Regenerate.
37
38 2010-05-10  Richard Guenther  <rguenther@suse.de>
39
40         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
41         marked if the entry identifier is marked.
42
43 2010-05-10  Richard Guenther  <rguenther@suse.de>
44
45         * c-common.c (struct c_common_attributes): Add fnspec attribute.
46         (handle_fnspec_attribute): New function.
47         * gimple.h (gimple_call_return_flags): Declare.
48         (gimple_call_arg_flags): Likewise.
49         * gimple.c (gimple_call_arg_flags): New function.
50         (gimple_call_return_flags): Likewise.
51         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
52         New argument flags.
53         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
54         return value flags.
55         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
56         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
57         main work to ...
58         (make_heapvar_for): ... this new function.
59         (handle_rhs_call): Handle fnspec attribute argument specifiers.
60         (handle_lhs_call): Likewise.
61         (find_func_aliases): Adjust.
62
63 2010-05-10  Richard Guenther  <rguenther@suse.de>
64
65         PR tree-optimization/44050
66         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
67
68 2010-05-10  Wei Guozhi  <carrot@google.com>
69
70         PR target/42879
71         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
72
73 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
74
75         PR c/10676
76         * c-typeck.c (lookup_field): Take a type directly.  Update
77         recursive calls.
78         (build_component_ref): Update call to lookup_field.
79         (set_init_label): Use lookup_field to find initialized field.
80         Handle returned list of fields like a sequence of designators.
81
82 2010-05-09  Richard Guenther  <rguenther@suse.de>
83
84         PR middle-end/44024
85         * fold-const.c (tree_single_nonzero_warnv_p): Properly
86         handle &FUNCTION_DECL.
87
88 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
89
90         PR c/4784
91         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
92         structures and unions recursively.
93         (detect_field_duplicates): Move duplicate detection with a hash to
94         detect_field_duplicates_hash.  Always use a hash if anonymous
95         structures or unions are present.
96         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
97         give errors.
98
99 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
100
101         PR target/44046
102         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
103         detect Atom, Core 2 and Core i7.
104
105 2010-05-09  Richard Guenther  <rguenther@suse.de>
106
107         * gcc.c (store_arg): Handle temporary file deletion for
108         joined arguments.
109
110 2010-05-09  Richard Guenther  <rguenther@suse.de>
111
112         PR middle-end/44043
113         * ipa-inline.c (estimate_function_body_sizes): Return after
114         disregarding inline limits.
115
116 2010-05-09  Richard Guenther  <rguenther@suse.de>
117
118         * gcc.c (store_arg): Revert last change.
119
120 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
121
122         PR middle-end/28685
123         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
124         (optimize_ops_list): Call it.
125
126 2010-05-08  Richard Guenther  <rguenther@suse.de>
127
128         PR tree-optimization/44030
129         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
130         NECESSARY flag if we propagate from a inserted expression.
131
132 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
133
134         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
135         domain types as equal if they are both PLACEHOLDER_EXPRs.
136
137 2010-05-08  Richard Guenther  <rguenther@suse.de>
138
139         * lto-wrapper.c (run_gcc): Remove linker output from
140         command line for LTRANS invocation.
141
142 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
143
144         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
145         lto-macho as lto_binary_reader.
146         * target.h (struct gcc_target): New hooks lto_start and lto_end.
147         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
148         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
149         in lto_start and lto_end calls.
150         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
151         magic numbers.
152         (scan_prog_file): Update is_elf_or_coff call.
153         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
154
155         * collect2.c (main): Fix enum comparison.
156
157         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
158         Add prototypes.
159         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
160         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
161         and TARGET_ASM_LTO_END.
162         * darwin.c: Include obstack.h and lto-streamer.h.
163         (lto_section_names_offset, lto_section_names_obstack,
164         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
165         global variables.
166         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
167         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
168         to a temporary file.
169         (darwin_asm_lto_end): New function.  Restore asm_out_file.
170         (darwin_asm_named_section): For LTO sections, replace the name with
171         the offset of the section name in a string table, and build this
172         table.
173         (darwin_file_start): Initialize global vars for LTO support.
174         (darwin_file_end): If output to asm_out_file was redirected, append it
175         to the proper asm_out_file here.  Add the section names section.
176
177 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
178
179         * c-pragma.c (pending_weak_d, pending_weak): New.
180         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
181         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
182         handle_pragma_weak): Update the uses of pending_weaks.
183
184 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
185
186         PR documentation/44016
187         * doc/standards.texi (Standards): Link to unversioned
188         cxx0x_status.html page.
189
190 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
191
192         PR target/43708
193         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
194         in addition to TREE_USED, to avoid "set but unused" warnings.
195
196 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
197
198         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
199         (is_loop_prefetching_profitable): Do not insert prefetches
200         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
201         times the prefetch ahead distance.
202
203 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
204
205         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
206         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
207         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
208         the unroll_factor.
209
210 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
211
212         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
213         a diagnostic info when the insn-to-mem ratio is too small.
214
215 2010-05-07  Richard Guenther <rguenther@suse.de>
216
217         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
218         the linker plugin.
219         (store_arg): Queue temp_filename for deletion instead of
220         the whole argument.
221
222 2010-05-07  Richard Guenther  <rguenther@suse.de>
223
224         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
225         (run_gcc): Handle LTRANS phase invocation.
226         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
227
228 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
229
230         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
231         this is also meaningful on PARM_DECLs and RESULT_DECLs.
232
233 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
234
235         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
236
237 2010-05-07  Richard Guenther  <rguenther@suse.de>
238
239         PR tree-optimization/44020
240         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
241         code when PRE is not yet initialized.
242
243 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
244
245         * config/mips/dbxmdebug.h: Remove.
246         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
247
248 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
249
250         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
251         with null pointer and also warn about ordered comparison of zero with
252         pointer if -Wextra.
253
254 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
255
256         * graphite-blocking.c
257         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
258         * graphite-clast-to-gimple.c
259         (clast_to_gcc_expression): Same.
260         (precision_for_value): Same.
261         (precision_for_interval): Same.
262         (gcc_type_for_interval): Same.
263         (graphite_create_new_guard): Same.
264         (compute_bounds_for_level): Same.
265         (graphite_create_new_loop_guard): Same.
266         * graphite-interchange.c
267         (build_linearized_memory_access): Same.
268         (pdr_stride_in_loop): Same.
269         (memory_strides_in_loop_1): Same.
270         (memory_strides_in_loop): Same.
271         (extend_scattering): Same.
272         (psct_scattering_dim_for_loop_depth): Same.
273         (pbb_number_of_iterations): Same.
274         * graphite-poly.h
275         (debug_iteration_domains): Same.
276         * graphite-ppl.c
277         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
278         (ppl_set_inhomogeneous_gmp): Same.
279         (ppl_strip_loop): Same.
280         (ppl_lexico_compare_linear_expressions): Same.
281         (ppl_read_polyhedron_matrix): Same.
282         (ppl_max_for_le_pointset): Same.
283         * graphite-ppl.h
284         (ppl_read_polyhedron_matrix): Same.
285         (tree_int_to_gmp): Same.
286         (gmp_cst_to_tree): Same.
287         (ppl_set_inhomogeneous): Same.
288         (ppl_set_inhomogeneous_tree): Same.
289         (ppl_set_coef): Same.
290         (ppl_set_coef_tree): Same.
291         * graphite-sese-to-poly.c
292         (build_pbb_scattering_polyhedrons): Same.
293         (build_scop_scattering): Same.
294         (scan_tree_for_params_right_scev): Same.
295         (scan_tree_for_params): Same.
296         (find_params_in_bb): Same.
297         (find_scop_parameters): Same.
298         (add_upper_bounds_from_estimated_nit): Same.
299         (build_loop_iteration_domains): Same.
300         (add_condition_to_domain): Same.
301         (pdr_add_memory_accesses): Same.
302
303 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
304
305         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
306         CLooG's value_* macros to their respective mpz_* counterparts.
307         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
308         (graphite_create_new_loop_guard): Same.
309         * graphite-interchange.c (build_linearized_memory_access): Same.
310         (pdr_stride_in_loop): Same.
311         (memory_strides_in_loop_1): Same.
312         (1st_interchange_profitable_p): Same.
313         * graphite-poly.c (extend_scattering): Same.
314         (psct_scattering_dim_for_loop_depth): Same.
315         (pbb_number_of_iterations): Same.
316         (pbb_number_of_iterations_at_time): Same.
317         * graphite-poly.h (new_1st_loop): Same.
318         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
319         (oppose_constraint): Same.
320         (insert_constraint_into_matrix): Same.
321         (ppl_set_inhomogeneous_gmp): Same.
322         (ppl_set_coef_gmp): Same.
323         (ppl_strip_loop): Same.
324         (ppl_lexico_compare_linear_expressions): Same.
325         (ppl_max_for_le_pointset): Same.
326         (ppl_min_for_le_pointset): Same.
327         (ppl_build_realtion): Same.
328         * graphite-ppl.h (gmp_cst_to_tree): Same.
329         (ppl_set_inhomogeneous): Same.
330         (ppl_set_inhomogeneous_tree): Same.
331         (ppl_set_coef): Same.
332         (ppl_set_coef_tree): Same.
333         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
334         (build_scop_scattering): Same.
335         (add_value_to_dim): Same.
336         (scan_tree_for_params_right_scev): Same.
337         (scan_tree_for_params_int): Same.
338         (scan_tree_for_params): Same.
339         (find_params_in_bb): Same.
340         (find_scop_parameters): Same.
341         (add_upper_bounds_from_estimated_nit): Same.
342         (build_loop_iteration_domains): Same.
343         (create_linear_expr_from_tree): Same.
344         (add_condition_to_domain): Same.
345         (pdr_add_memory_accesses): Same.
346
347 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
348             Jason Merrill  <jason@redhat.com>
349
350         * c-common.c (c_common_reswords): Add nullptr.
351         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
352         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
353         (gen_type_die_with_usage): Likewise.
354         * dbxout.c (dbxout_type): Likewise.
355         * sdbout.c (plain_type_1): Likewise.
356
357 2010-05-06  Jason Merrill  <jason@redhat.com>
358
359         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
360         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
361         ret appropriately.
362         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
363
364         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
365         stripping WITH_SIZE_EXPR.
366         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
367         change.
368
369 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
370
371         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
372         list of obsolete configurations.
373         Disabled check for obsolete configurations.
374         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
375         Removed support for previous versions.
376         * config/mips/iris.h: Removed.
377         * config/mips/iris5.h: Removed.
378         * config/mips/iris6.h: Merged old iris.h contents.
379         (TARGET_IRIX): Removed.
380         (DRIVER_SELF_SPECS): Removed mabi=32.
381         (IDENT_ASM_OP): Removed undef.
382         (STARTFILE_SPEC): Removed mabi=32.
383         (ENDFILE_SPEC): Likewise.
384         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
385         (MACHINE_TYPE): Update for IRIX 6.5.
386         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
387         TARGET_IRIX by TARGET_IRIX6.
388         (mips_file_start): Likewise.
389         (mips_output_external): Remove IRIX 5/6 O32 support.
390         (mips_output_function_prologue): Likewise.
391         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
392         TARGET_IRIX6.
393         (TARGET_CPU_CPP_BUILTINS): Likewise.
394         (TARGET_IRIX): Removed.
395         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
396         (MULTILIB_DIRNAMES): Removed 32.
397         (MULTILIB_OSDIRNAMES): Removed ../lib.
398         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
399         (Specific, mips-sgi-irix5): Document removal.
400         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
401         Remove references to older IRIX 6 releases and the O32 ABI.
402
403 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
404
405         PR bootstrap/43994
406         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
407         instead of DF_REF_REAL_REG.
408
409 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
410
411         PR target/43888
412         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
413         handling to still return true for x64 targets.
414
415 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
416
417         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
418
419 2010-05-06  Jan Hubicka  <jh@suse.cz>
420
421         PR tree-optimization/43791
422         * ipa-inline.c (update_caller_keys): Remove bogus
423         disregard_inline_limits check.
424
425 2010-05-06  Michael Matz  <matz@suse.de>
426
427         PR tree-optimization/43984
428         * tree-ssa-pre.c (inserted_phi_names): Remove.
429         (inserted_exprs): Change to bitmap.
430         (create_expression_by_pieces): Set bits, don't append to vector.
431         (insert_into_preds_of_block): Don't handle inserted_phi_names.
432         (eliminate): Don't look at inserted_phi_names, remove deleted
433         insns from inserted_exprs.
434         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
435         (init_pre, fini_pre): Allocate and free bitmaps.
436         (execute_pre): Insert insns on edges before elimination.
437
438 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
439
440         * tree.c (initializer_zerop): Handle STRING_CST.
441
442 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
443
444         PR 40989
445         * doc/invoke.texi (Wimplicit): Document as C only.
446         * opts.c (common_handle_option): Add argument kind.
447         (handle_option): Rename as read_cmdline_option. Factor out code to...
448         (handle_option): ... here. New.
449         (handle_options): Rename as read_cmdline_options.
450         (decode_options): Update call.
451         (set_option): Use option index instead of option pointer. Classify
452         diagnostics correctly.
453         (enable_warning_as_error): Call handle_option.
454         * opts.h (set_option): Update declaration.
455         (handle_option): Declare.
456         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
457         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
458         * c-opts.c (set_Wimplicit): Delete.
459         (c_family_lang_mask): New static constant.
460         (c_common_handle_option): Add argument kind. Use handle_option
461         instead of set_Wimplicit.
462         (c_common_post_options): warn_implicit and warn_implicit_int
463         are disabled by default.
464         * c-common.c (warn_implicit): Do not define here.
465         * c-common.h (warn_implicit): Do not declare here.
466         (c_common_handle_option): Update declaration.
467         * lto-opts.c (lto_reissue_options): Update call to set_option.
468
469 2010-05-06  Richard Guenther  <rguenther@suse.de>
470
471         PR tree-optimization/43571
472         * domwalk.c (walk_dominator_tree): Walk the dominator
473         sons in more optimal order.
474
475 2010-05-06  Richard Guenther  <rguenther@suse.de>
476
477         PR tree-optimization/43934
478         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
479         (stmt_cost): Likewise.
480         (extract_true_false_args_from_phi): New helper.
481         (determine_max_movement): For PHI nodes verify we can hoist them
482         and compute their cost.
483         (determine_invariantness_stmt): Handle PHI nodes.
484         (move_computations_stmt): Likewise.  Hoist PHI nodes in
485         if-converted form using COND_EXPRs.
486         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
487         (tree_ssa_lim): Likewise.
488         * tree-flow.h (tree_ssa_lim): Adjust prototype.
489         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
490
491 2010-05-06  Richard Guenther  <rguenther@suse.de>
492
493         PR tree-optimization/43987
494         * tree-ssa-structalias.c (could_have_pointers): For possibly
495         address-taken variables force pointers to be recorded.
496         (create_variable_info_for_1): Likewise.
497         (push_fields_onto_fieldstack): Pass in wheter all fields
498         must have pointers.
499         (find_func_aliases): Query types instead of vars whether
500         they contain pointers where appropriate.
501
502 2010-05-06  Jan Hubicka  <jh@suse.cz>
503
504         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
505         (record_reference, mark_address, mark_load, mark_store): Record
506         references.
507         (record_references_in_initializer): Update call of record_references.
508         (rebuild_cgraph_edges): Remove all references before rebuiding.
509         * cgraph.c (cgraph_create_node): Clear ref list.
510         (cgraph_remove_node): Remove references.
511         (dump_cgraph_node): Dump references.
512         (cgraph_clone_node): Clone references.
513         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
514         (struct cgraph_node, varpool_node): Add ref_lst.
515         * ipa-ref.c: New file.
516         * ipa-ref.h: New file.
517         * ipa-ref-inline.h: New file.
518         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
519         (referenced_from_other_partition_p): New function.
520         (lto_output_varpool_node): Take set arugment; call
521         referenced_from_other_partition.
522         (lto_output_ref): New.
523         (add_references): New.
524         (output_refs): New.
525         (output_cgraph): Compute boundary based on references; output refs.
526         (output_varpool): Accept cgraph_node_set argument.
527         (input_ref): New.
528         (input_refs): New.
529         (input_cgraph): Call input_refs.
530         * lto-section-in.c (lto_section_name): Add refs.
531         * Makefile.in: (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
532         (ipa-ref.o): New file.
533         * varpool.c (varpool_node): Clear ipa ref list.
534         (varpool_remove_node): Remove references.
535         (dump_varpool_node): Dump references.
536         (varpool_assemble_decl): Only compile finalized ones.
537         (varpool_extra_name_alias): Initialize ref list.
538         * lto-streamer.c (lto-get_section_name): Add .refs section.
539         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
540         (referenced_from_other_partition_p): Declared.
541
542 2010-05-06  Ira Rosen  <irar@il.ibm.com>
543
544         PR tree-optimization/43901
545         * tree-vect-stmts.c (vectorizable_call): Assert that vector
546         type is not NULL if it's transformation phase, and return
547         FALSE if it's analysis.
548         (vectorizable_conversion, vectorizable_operation,
549         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
550
551 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
552
553         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
554         Delete.
555         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
556         New define.
557         * config/mips/mips-protos.h
558         (mips_small_register_classes_for_mode_p): Delete prototype.
559
560 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
561
562         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
563         * config/arm/arm.c (multiple_operation_profitable_p,
564         compute_offset_order): New static functions.
565         (load_multiple_sequence, store_multiple_sequence): Use them.
566         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
567         memory offsets, not register numbers.
568         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
569
570 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
571
572         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
573         (get_pending_sizes, put_pending_size, put_pending_sizes):
574         Update the uses of pending_sizes.
575         * c-decl.c (store_parm_decls): Likewise.
576         * c-tree.h (struct c_arg_info): Likewise.
577         * tree.h: Update the prototype for get_pending_sizes and
578         put_pending_sizes.
579
580 2010-05-05  Jason Merrill  <jason@redhat.com>
581
582         PR debug/43370
583         * c-common.c (handle_aligned_attribute): Respect
584         ATTR_FLAG_TYPE_IN_PLACE.
585
586         PR testsuite/43758
587         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
588         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
589         (TARGET_INITIALIZER): Use it.
590         * c-common.c (attribute_takes_identifier_p): Call it.
591         * c-common.h: Update prototype.
592         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
593         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
594
595 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
596
597         PR debug/43950
598         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
599         DW_ID_down_case for Fortran compilation units.
600
601 2010-05-05  Jan Hubicka  <jh@suse.cz>
602
603         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
604         handle aliases.
605
606 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
607
608         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
609         a variable-sized RESULT_DECL.
610
611 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
612
613         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
614
615 2010-05-05  Jason Merrill  <jason@redhat.com>
616
617         PR c++/43787
618         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
619         returns GS_OK.
620         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
621
622 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
623             Jakub Jelinek  <jakub@redhat.com>
624
625         PR debug/43478
626         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
627         (dead_debug_init, dead_debug_finish): New functions.
628         (dead_debug_add, dead_debug_insert_before): Likewise.
629         (df_note_bb_compute): Initialize a dead_debug object, add dead
630         debug uses to it, insert debug bind insns before death insns,
631         reset debug insns that refer to pending uses at the end.
632         * rtl.h (make_debug_expr_from_rtl): New prototype.
633         * varasm.c (make_debug_expr_from_rtl): New function.
634
635 2010-05-05  Jan Hubicka  <jh@suse.cz>
636
637         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
638         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
639         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
640         lto_varpool_encoder_deref, lto_varpool_encoder_size,
641         lto_varpool_encoder_encode_initializer_p,
642         lto_set_varpool_encoder_encode_initializer): New functions.
643         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
644         call output_varpool.
645         (input_varpool_node): Do not always set analyzed.
646         (input_cgraph_1): Return vector of cgraph nodes.
647         (input_varpool_1): Return vector of varpools.
648         (input_cgraph): Free the vectors.
649         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
650         output only initializers needed.
651         (lto_output): Only call output_cgraph.
652         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
653         * lto-section-out.c (lto_new_out_decl_state): Initialize
654         state->varpool_node_encoder.
655         * lto-streamer.h (lto_varpool_encoder_d): New.
656         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
657         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
658         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
659         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
660         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
661         Declare.
662         (output_varpool, input_varpool): Remove declarations.
663
664 2010-05-05  Jan Hubicka  <jh@suse.cz>
665
666         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
667         with body can prevail.
668
669 2010-05-05  Jan Hubicka  <jh@suse.cz>
670
671         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
672         size.
673
674 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
675
676         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
677
678         * gengtype.h (erro_at_line): Constify pos argument.
679
680         * gengtype.c: Include hashtab.h.
681         (enum gc_used): Document GC_MAYBE_POINTED_TO.
682         (error_at_line): Constify pos argument.
683         (do_typedef): Initialize p->opt field.
684         (get_file_gtfilename): Fix comment typo.
685         (struct walk_type_data): Constify line field.
686         (get_output_file_for_structure): New function.
687         (write_local_func_for_structure): Constify orig_s argument.
688         Use get_output_file_for_structure.
689         (write_func_for_structure): Use get_output_file_for_structure.
690         (INDENT): New define.
691         (dump_pair, dump_type, dump_type_list, dump_typekind)
692         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
693         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
694         functions.
695         (seen_types): New variable.
696         (main): New variable do_dump.  Process "-d" command line option.
697         Call dump_everything if dump requested.
698
699 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
700
701         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
702         in a temporary instead of invoking the macro multiple times.
703         (track_expr_p): Likewise.
704
705 2010-05-04  Neil Vachharajani <nvachhar@google.com>
706
707         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
708         per new semantics.
709         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
710         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
711         conditions for printing notes.
712         * common.opt (-Wcoverage-mismatch): Allow negative, default to
713         true, update documentation.
714         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
715
716 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
717
718         PR c/43981
719         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
720         on dimen.
721
722 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
723
724         PR target/43799
725         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
726         (*sse_prologue_save_insn1): Likewise.
727         (SSE prologue save splitter): Likewise.
728
729 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
730
731         * tree.c (free_lang_data_in_one_sizepos): New inline function.
732         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
733         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
734         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
735         all decls.  Call it on DECL_FIELD_OFFSET of fields.
736         (find_decls_types_r): Follow DECL_VALUE_EXPR.
737         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
738
739 2010-05-04  Martin Jambor  <mjambor@suse.cz>
740
741         * tree-sra.c (build_access_from_expr_1): The first parameter type
742         changed to simple tree.
743         (build_access_from_expr): Likewise, gsi parameter was eliminated.
744         (scan_assign_result): Renamed to assignment_mod_result, enum elements
745         renamed as well.
746         (build_accesses_from_assign): Removed all parameters except for a
747         simple gimple statement.  Now returns a simple bool.
748         (scan_function): All non-analysis parts moved to separate functions
749         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
750         parameters and updated both callers.
751         (sra_modify_expr): Removed parameter data.
752         (sra_modify_function_body): New function.
753         (perform_intra_sra): Call sra_modify_function_body to modify the
754         function body.
755         (replace_removed_params_ssa_names): Parameter data changed into
756         adjustments vector.
757         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
758         changed the parameter dont_convert to convert with the opposite
759         meaning.
760         (sra_ipa_modify_assign): Parameter data changed into adjustments
761         vector, return value changed to bool.
762         (ipa_sra_modify_function_body): New function.
763         (sra_ipa_reset_debug_stmts): Updated a comment.
764         (modify_function): Use ipa_sra_modify_function_body to modify function
765         body.
766
767 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
768
769         PR middle-end/43671
770         * alias.c (true_dependence): Handle the same VALUE in x and mem.
771         (canon_true_dependence): Likewise.
772         (write_dependence_p): Likewise.
773
774 2010-05-04  Jan Hubicka  <jh@suse.cz>
775
776         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
777         * cgraphbuild.c: Include ipa-utils.h
778         (record_reference_ctx): New struct.
779         (record_reference): Simplify to work on initializers; not statements.
780         (mark_address, mark_load, mark_store): New.
781         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
782         walk PHI nodes too.
783         (record_references_in_initializer): Update use of record_reference.
784         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
785         walk PHI nodes too.
786
787 2010-05-04  Jan Hubicka  <jh@suse.cz>
788
789         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
790         node will be removed anyway.
791         (lto_varpool_replace_node): Allow also unanalyzed nodes;
792         relink aliases of node into prevailing node.
793         * varpool.c (varpool_remove_node): Remove aliases properly;
794         when removing node, remove all its aliases too; remove DECL_INITIAL
795         of removed node; ggc_free the varpool node.
796
797 2010-05-04  Richard Guenther  <rguenther@suse.de>
798
799         PR tree-optimization/43879
800         * tree-ssa-structalias.c (alias_get_name): Use
801         DECL_ASSEMBLER_NAME if available.
802         (create_function_info_for): Return the varinfo node.
803         (ipa_pta_execute): Associate same-body aliases and extra names
804         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
805
806 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
807
808         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
809
810 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
811
812         PR bootstrap/43964
813         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
814         only if HONOR_REG_ALLOC_ORDER is not defined.
815
816 2010-05-04  Richard Guenther  <rguenther@suse.de>
817
818         PR tree-optimization/43949
819         * tree-vrp.c (extract_range_from_binary_expr): Only handle
820         TRUNC_MOD_EXPR.
821
822 2010-04-26  Jason Merrill  <jason@redhat.com>
823
824         * c.opt (-fstrict-enums): New.
825         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
826
827 2010-05-03  David Ung <davidu@mips.com>
828             James E. Wilson  <wilson@codesourcery.com>
829
830         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
831         emit the trap instruction before the divide for TUNE_74K.
832
833 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
834
835         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
836         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
837         based on the above, for new target hook.
838
839         * hooks.c (hook_bool_mode_true): New generic hook.
840         * hooks.h (hook_bool_mode_true): Add prototype.
841
842         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
843         target hook.
844         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
845         target hook, set to hook_bool_mode_false.
846         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
847         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
848         with targetm.small_register_classes_for_mode_p.
849         (find_reusable_reload): Likewise.
850         (combine_reloads): Likewise.
851         * reload1.c (reload_as_needed): Likewise.
852         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
853         * ifcvt.c (noce_process_if_block, check_cond_move_block,
854         dead_or_predicable): Likewise.
855         * regmove.c (optimize_reg_copy_1): Likewise.
856         * calls.c (prepare_call_address): Likewise.
857         (precompute_register_parameters): Likewise.
858
859         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
860         hook definition.
861         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
862         implementation of the hook that considers all register classes
863         small except for SH64.
864         (sh_override_options): Use the new hook.
865         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
866         Add prototype.
867
868         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
869         hook definition.
870         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
871         implementation of the hook that considers all register classes
872         small for THUMB1.
873         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
874         Add prototype.
875
876         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
877         hook definition.
878         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
879         implementation of the hook that considers all register classes
880         small for MIPS16.
881         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
882         Add prototype.
883
884         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
885         hook definition.
886         * config/m32c/m32c.h: Likewise.
887         * config/pdp11/pdp11.h: Likewise.
888         * config/avr/avr.h: Likewise.
889         * config/xtensa/xtensa.h: Likewise.
890         * config/m68hc11/m68hc11.h: Likewise.
891         * config/mn10300/mn10300.h: Likewise.
892         * config/mcore/mcore.h: Likewise.
893         * config/h8300/h8300.h: Likewise.
894         * config/bfin/bfin.h: Likewise.
895
896         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
897         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
898
899 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
900
901         * double-int.h (tree_to_double_int): Remove macro.
902         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
903         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
904         (tree_to_double_int): New function.
905         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
906         Move ...
907         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
908
909 2010-05-03  Richard Guenther  <rguenther@suse.de>
910
911         PR tree-optimization/43971
912         * tree-ssa-structalias.c (get_constraint_for_1): Fix
913         constraints in the !flag_delete_null_pointer_checks case.
914
915 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
916
917         PR debug/43972
918         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
919         result mode matches original rtl mode.
920
921 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
922
923         PR target/43888
924         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
925
926 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
927
928         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
929         when processing flag options.
930
931 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
932
933         * gcov-iov.c (main): Change format string placeholder
934         from %#08x to 0x%08x.
935         * genchecksum.c (dosum): Change format string placeholder
936         from %#02x to 0x%02x.
937
938 2010-05-02  Richard Guenther  <rguenther@suse.de>
939
940         PR tree-optimization/43879
941         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
942
943 2010-05-02  Bruno Haible  <bruno@clisp.org>
944
945         * doc/extend.texi (Function Attributes): Fix a typo.
946
947 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
948
949         Revert:
950         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
951         placeholder from 0x%x to %#x.
952         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
953         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
954         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
955         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
956         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
957         * config/i386/i386.c (ix86_target_string): Ditto.
958         * config/i386/i386.c (output_pic_addr_const): Ditto.
959         (print_operand): Ditto.
960
961 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
962
963         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
964         placeholder from 0x%x to %#x.
965         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
966         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
967         (ASM_OUTPUT_DEBUG_DATA): Ditto.
968         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
969         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
970         * optc-gen.awk: Ditto.
971         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
972         (HOST_WIDE_INT_PRINT_HEX): Ditto.
973         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
974         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
975
976 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
977
978         * target.h (struct calls): Add function_value_regno_p field.
979         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
980         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
981         * targhooks.c (default_function_value_regno_p): New function.
982         * targhooks.h (default_function_value_regno_p): Declare function.
983         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
984         * builtins.c. (apply_result_size): (Ditto.).
985         * combine.c. (likely_spilled_retval_p): (Ditto.).
986         * mode-switching.c. Include 'target.h'.
987         (create_pre_exit): Use function_value_regno_p hook.
988         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
989         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
990         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
991
992         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
993         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
994         (ix86_function_value_regno_p): Declare as static, change argument
995         type to const unsigned int.
996         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
997
998 2010-05-01  Richard Guenther  <rguenther@suse.de>
999
1000         PR tree-optimization/43949
1001         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
1002         types.
1003         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
1004
1005 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
1006
1007         * rtl.h (CONST_DOUBLE_P): Define.
1008         (rtx_to_double_int): Declare.
1009         * emit-rtl.c (rtx_to_double_int): New function.
1010         * dwarf2out.c (insert_double): New function.
1011         (loc_descriptor, add_const_value_attribute): Clean up, use
1012         rtx_to_double_int and insert_double functions.
1013
1014 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
1015
1016         * doc/extend.texi (Inline): Add missing return keyword to examples.
1017         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
1018         "command-line".
1019
1020 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
1021
1022         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
1023         the variable part of the offset as well.  Use highest_pow2_factor for
1024         all alignment checks.
1025
1026 2010-04-30  Richard Guenther  <rguenther@suse.de>
1027
1028         PR tree-optimization/43879
1029         * tree-ssa-structalias.c (type_could_have_pointers): Functions
1030         can have pointers.
1031
1032 2010-04-30  Jan Hubicka  <jh@suse.cz>
1033
1034         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
1035         varpool.
1036         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
1037
1038 2010-04-30  Jan Hubicka  <jh@suse.cz>
1039
1040         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
1041         New.
1042         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
1043         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
1044         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
1045         cgraph_node_set_needs_ltrans_p): Remove.
1046
1047 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
1048
1049         * sdbout.c: Include vec.h, do not include varray.h.
1050         (deferred_global_decls, sdbout_global_decl,
1051         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
1052         * toplev.c: Do not include varray.h.
1053         (dump_memory_report): Do not dump VARRAY statistics.
1054         * gengtype.c (open_base_file): Ignore varray.h.
1055         * Makefile.in: Update for abovementioned changes.
1056         Remove all traces of varray.c and varray.h.
1057         * varray.c: Remove file.
1058         * varray.h: Remove file.
1059
1060 2010-04-30  Jan Hubicka  <jh@suse.cz>
1061
1062         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
1063         references.
1064
1065 2010-04-30  Jan Hubicka  <jh@suse.cz>
1066
1067         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
1068         needed.
1069
1070 2010-04-30  Richard Guenther  <rguenther@suse.de>
1071
1072         * tree-ssa-structalias.c (get_constraint_for_1): Generate
1073         constraints for CONSTRUCTOR.
1074
1075 2010-04-30  Richard Guenther  <rguenther@suse.de>
1076
1077         PR lto/43946
1078         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
1079         first after all lowering passes.
1080
1081 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
1082
1083         * toplev.c: Include varray.h for statistics dumping.
1084         * tree.h: Do not declare varray_head_tag.
1085         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
1086         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
1087         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
1088         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
1089         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
1090         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
1091         c-common.c, c-common.h, reg-stack.c, basic-block.h,
1092         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
1093         include varray.h.
1094         * Makefile.in: Update for abovementioned changes.
1095
1096 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
1097
1098         PR debug/43942
1099         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
1100
1101 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
1102
1103         * config/picochip/picochip.c (picochip_legitimize_address): Define.
1104         Use this function to do machine-specific conversion.
1105         (picochip_legitimize_reload_address): Likewise.
1106         (picochip_legitimate_address_p): Check valid base register only if
1107         strict.
1108         (picochip_check_conditional_copy): Check for modw only if opnd is
1109         register.
1110         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
1111         to call the function in c.
1112         * config/picochip/picochip-protos.h
1113         (picochip_legitimize_reload_address): Define.
1114         * config/picochip/picochip.md (supported_compare1): Define.
1115
1116 2010-04-30  Jan Hubicka  <jh@suse.cz>
1117
1118         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
1119         (cgraph_global_info): Remove inlined.
1120         (LTO_cgraph_tag_names): Remove.
1121         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
1122         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
1123         simplify cgraph tags and document.
1124         (lto_output_node): Use only LTO_cgraph_unavail_node and
1125         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
1126         for_functions_valid, global info, process and output flags.
1127         (input_overwrite_node): Initialize estimated stack size and
1128         estimated growth.  Do not read flags we no longer store.
1129         (input_node): Likewise do not read info no longer stored.
1130         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
1131         flag.
1132
1133 2010-04-30  Richard Guenther  <rguenther@suse.de>
1134
1135         PR tree-optimization/43879
1136         * tree-ssa-structalias.c (get_constraint_for_1): Properly
1137         handle non-zero initializers.
1138
1139 2010-04-30  Richard Guenther  <rguenther@suse.de>
1140
1141         * builtins.c (fold_builtin_1): Delete free (0).
1142
1143 2010-04-29  Jan Hubicka  <jh@suse.cz>
1144
1145         * gengtype.c (open_base_files): Add lto-streamer.h
1146         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
1147         (pass_ipa_cp): GGC collect.
1148         * toplev. (compile_file): Do not output symbols.
1149         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
1150         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
1151         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
1152         * lto-section-in.c: Include ggc.h
1153         (lto_new_in_decl_state): Alloc in GGC.
1154         (lto_delete_in_decl_state): Likewise.
1155         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
1156         Collect.
1157
1158 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
1159
1160         PR target/42895
1161         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
1162         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
1163         (HONOR_REG_ALLOC_ORDER): Describe new macro.
1164         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
1165         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
1166         account only if HONOR_REG_ALLOC_ORDER is not defined.
1167         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
1168         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
1169
1170 2010-04-29  Jon Grant  <04@jguk.org>
1171
1172         * collect2.c (vflag): Change type from int to bool.
1173         (debug): Likewise.
1174         (helpflag): New global bool.
1175         (main): Set vflag and debug with boolean, not integer truth values.
1176         Accept new "--help" option and output usage text if found.
1177         * collect2.h (vflag): Update prototype.
1178         (debug): Likewise.
1179
1180 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
1181
1182         PR bootstrap/43936
1183         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
1184
1185 2010-04-29  Richard Guenther  <rguenther@suse.de>
1186
1187         PR bootstrap/43935
1188         * plugin.h (invoke_plugin_callbacks): Annotate arguments
1189         with ATTRIBUTE_UNUSED.
1190
1191 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
1192
1193         PR target/43921
1194         * config/i386/i386.c (get_some_local_dynamic_name): Replace
1195         INSN_P with NONDEBUG_INSN_P.
1196         (distance_non_agu_define): Likewise.
1197         (distance_agu_use): Likewise.
1198
1199 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
1200
1201         From Dominique d'Humieres <dominiq@lps.ens.fr>
1202         PR bootstrap/43858
1203         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
1204         test_set.
1205
1206 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
1207
1208         * plugin.h (invoke_plugin_callbacks): New inline function.
1209         * plugin.c (flag_plugin_added): New global flag.
1210         (add_new_plugin): Initialize above flag.
1211         (invoke_plugin_callbacks): Rename to ...
1212         (invoke_plugin_callbacks_full): ... this.
1213
1214 2010-04-28  Jan Hubicka  <jh@suse.cz>
1215
1216         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
1217         (lto_varpool_replace_node): New.
1218         (lto_symtab_resolve_symbols): Resolve varpool nodes.
1219         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
1220         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
1221         * cgraph.h (varpool_node_ptr): New type.
1222         (varpool_node_ptr): New vector.
1223         (varpool_node_set_def): New structure.
1224         (varpool_node_set): New type.
1225         (varpool_node_set): New vector.
1226         (varpool_node_set_element_def): New structure.
1227         (varpool_node_set_element, const_varpool_node_set_element): New types.
1228         (varpool_node_set_iterator): New type.
1229         (varpool_node): Add prev pointers, add used_from_other_partition,
1230         in_other_partition.
1231         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
1232         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
1233         varpool_get_node, varpool_remove_node): Declare.
1234         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
1235         varpool_node_set_size): New inlines.
1236         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
1237         * tree-pass.h (varpool_node_set_def): Forward declare.
1238         (ipa_opt_pass_d): Summary writting takes vnode sets too.
1239         (ipa_write_optimization_summaries): Update prototype.
1240         * ipa-cp.c (ipcp_write_summary): Update.
1241         * ipa-reference.c (ipa_reference_write_summary): Update.
1242         * lto-cgraph.c (lto_output_varpool_node): New static function.
1243         (output_varpool): New function.
1244         (input_varpool_node): New static function.
1245         (input_varpool_1): New function.
1246         (input_cgraph): Input varpool.
1247         * ipa-pure-const.c (pure_const_write_summary): Update.
1248         * lto-streamer-out.c (lto_output): Update, output varpool too.
1249         (write_global_stream): Kill WPA hack.
1250         (produce_asm_for_decls): Update.
1251         (output_alias_pair_p): Handle variables.
1252         (output_unreferenced_globals): Output only needed partition of varpool.
1253         * ipa-inline.c (inline_write_summary): Update.
1254         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
1255         cgraph.
1256         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
1257         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
1258         varpool_node_set_new, varpool_node_set_add,
1259         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
1260         debug_varpool_node_set): New functions.
1261         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
1262         (execute_one_pass): Process new decls too.
1263         (ipa_write_summaries_2): Pass around vsets.
1264         (ipa_write_summaries_1): Likewise.
1265         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
1266         to add.
1267         (ipa_write_optimization_summaries_1): Pass around vsets.
1268         (ipa_write_optimization_summaries): Likewise.
1269         * varpool.c (varpool_get_node): New.
1270         (varpool_node): Update doubly linked lists.
1271         (varpool_remove_node): New.
1272         (dump_varpool_node): More dumping.
1273         (varpool_enqueue_needed_node): Update doubly linked lists.
1274         (decide_is_variable_needed): Kill ltrans hack.
1275         (varpool_finalize_decl): Kill lto hack.
1276         (varpool_assemble_decl): Skip decls in other partitions.
1277         (varpool_assemble_pending_decls): Update doubly linkes lists.
1278         (varpool_empty_needed_queue): Likewise.
1279         (varpool_extra_name_alias): Likewise.
1280         * lto-streamer.c (lto_get_section_name): Add vars section.
1281         * lto-streamer.h (lto_section_type): Update.
1282         (output_varpool, input_varpool): Declare.
1283
1284 2010-04-28  Mike Stump  <mikestump@comcast.net>
1285
1286         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
1287
1288 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
1289
1290         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
1291         record or union type with RECORD_OR_UNION_TYPE_P predicate.
1292         (lto_input_ts_type_tree_pointers): Likewise.
1293         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
1294         (lto_output_ts_type_tree_pointers): Likewise.
1295
1296 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
1297
1298         Uniquization of constants at the Tree level
1299         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
1300         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
1301         bit to the end.
1302         (tree_output_constant_def): Declare.
1303         * gimplify.c (gimplify_init_constructor): When using block copy, first
1304         uniquize the constant constructor on the RHS.
1305         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
1306         DECL_IN_CONSTANT_POOL flag.
1307         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
1308         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
1309         constant pool.
1310         (assemble_variable): Deal with symbols belonging to the tree constant
1311         pool.
1312         (get_constant_section): Add ALIGN parameter and simplify.
1313         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
1314         (assemble_constant_contents): Use the expression of the VAR_DECL.
1315         (output_constant_def_contents): Use the alignment of the VAR_DECL.
1316         (tree_output_constant_def): New global function.
1317         (mark_constant): Use the expression of the VAR_DECL.
1318         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
1319         its expression.
1320         (output_object_block): Likewise and assemble the expression.
1321
1322 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
1323
1324         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
1325         hash_tree, eq_tree): New tree hash table.
1326         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
1327         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
1328         lto_orig_address_remove): Reimplement.
1329
1330 2010-04-28  Xinliang David Li  <davidxl@google.com>
1331
1332         PR c/42643
1333         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
1334         (compute_uninit_opnds_pos): New function.
1335         (is_non_loop_exit_postdominating): New function.
1336         (compute_control_dep_chain): New function.
1337         (find_pdom): New function.
1338         (convert_control_dep_chain_into_preds): New function.
1339         (find_predicates): New function.
1340         (find_control_equiv_block): New function.
1341         (collect_phi_def_edges): New function.
1342         (find_def_preds): New function.
1343         (find_dom): New function.
1344         (dump_predicates): New function.
1345         (get_cmp_code): New function.
1346         (is_value_included_in): New function.
1347         (find_matching_predicate_in_rest_chains): New function.
1348         (use_pred_not_overlap_with_undef_path_pred): New function.
1349         (is_use_properly_guarded): New function.
1350         (normalize_cond_1): New function.
1351         (is_and_or_or): New function.
1352         (normalize_cond): New function.
1353         (is_gcond_subset_of): New function.
1354         (is_subset_of_any): New function.
1355         (is_or_set_subset_of): New function.
1356         (is_and_set_subset_of): New function.
1357         (is_norm_cond_subset_of): New function.
1358         (is_pred_expr_subset_of): New function.
1359         (is_pred_chain_subset_of): New function.
1360         (is_included_in): New function.
1361         (is_superset_of): New function.
1362         (find_uninit_use): New function.
1363         (warn_uninitialized_phi): New function.
1364         (compute_possibly_undefined_names): New function.
1365         (ssa_undefined_value_p): New function.
1366         (execute_late_warn_uninitialized): New function.
1367         * tree-ssa.c (ssa_undefined_value_p): Removed.
1368         (warn_uninit): Changed to extern.
1369         (warn_uninitialized_phi): Removed.
1370         (warn_uninitialized_vars): Changed to extern.
1371         (execute_late_warn_uninitialized): Removed
1372         * tree-flow.h: Add new prototypes.
1373         * timevar.def: Add new time variable.
1374         * Makefile.in: Add new build file.
1375
1376 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
1377
1378         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
1379         type if available.
1380
1381 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1382
1383         PR target/22224
1384         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
1385
1386 2010-04-28  Martin Jambor  <mjambor@suse.cz>
1387
1388         * cgraph.h (struct cgraph_node): New field indirect_calls.
1389         (struct cgraph_indirect_call_info): New type.
1390         (struct cgraph_edge): Removed field indirect_call. New fields
1391         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
1392         (cgraph_create_indirect_edge): Declare.
1393         (cgraph_make_edge_direct): Likewise.
1394         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
1395         * ipa-prop.h (struct ipa_param_call_note): Removed.
1396         (struct ipa_node_params): Removed field param_calls.
1397         (ipa_create_all_structures_for_iinln): Declare.
1398         * cgraph.c: Described indirect edges and uids in initial comment.
1399         (cgraph_add_edge_to_call_site_hash): New function.
1400         (cgraph_edge): Search also among the indirect edges, use
1401         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
1402         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
1403         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
1404         site hash.
1405         (initialize_inline_failed): Assign a reason to indirect edges.
1406         (cgraph_create_edge_1): New function.
1407         (cgraph_create_edge): Moved some functionality to
1408         cgraph_create_edge_1.
1409         (cgraph_create_indirect_edge): New function.
1410         (cgraph_edge_remove_callee): Add an assert checking for
1411         non-indirectness.
1412         (cgraph_edge_remove_caller): Special-case indirect edges.
1413         (cgraph_remove_edge): Likewise.
1414         (cgraph_set_edge_callee): New function.
1415         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
1416         (cgraph_make_edge_direct): New function.
1417         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
1418         the declaration of the call statement matches.
1419         (cgraph_node_remove_callees): Special-case indirect edges.
1420         (cgraph_clone_edge): Likewise.
1421         (cgraph_clone_node): Clone also the indirect edges.
1422         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
1423         indirect_call, dump count of indirect_calls edges.
1424         * ipa-prop.c (iinlining_processed_edges): New variable.
1425         (ipa_note_param_call): Create indirect edges instead of
1426         creating notes.  New parameter node.
1427         (ipa_analyze_call_uses): New parameter node, pass it on to
1428         ipa_note_param_call.
1429         (ipa_analyze_stmt_uses): Likewise.
1430         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
1431         (print_edge_addition_message): Work on edges rather than on notes.
1432         (update_call_notes_after_inlining): Likewise, renamed to
1433         update_indirect_edges_after_inlining.
1434         (ipa_create_all_structures_for_iinln): New function.
1435         (ipa_free_node_params_substructures): Do not free notes.
1436         (ipa_edge_duplication_hook): Propagate bits within
1437         iinlining_processed_edges bitmap.
1438         (ipa_node_duplication_hook): Do not duplicate notes.
1439         (free_all_ipa_structures_after_ipa_cp): Renamed to
1440         ipa_free_all_structures_after_ipa_cp.
1441         (free_all_ipa_structures_after_iinln): Renamed to
1442         ipa_free_all_structures_after_iinln.
1443         (ipa_write_param_call_note): Removed.
1444         (ipa_read_param_call_note): Removed.
1445         (ipa_write_indirect_edge_info): New function.
1446         (ipa_read_indirect_edge_info): Likewise.
1447         (ipa_write_node_info): Do not stream notes, do stream information
1448         in indirect edges.
1449         (ipa_read_node_info): Likewise.
1450         (lto_ipa_fixup_call_notes): Removed.
1451         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
1452         * ipa-inline.c (pass_ipa_inline): Likewise.
1453         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
1454         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
1455         * tree-inline.c (copy_bb): Removed an unnecessary double check for
1456         is_gimple_call.
1457         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
1458         edges.
1459         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
1460         (output_cgraph): Stream also indirect edges.
1461         (lto_output_edge): Added capability to stream indirect edges.
1462         (input_edge): Likewise.
1463         (input_cgraph_1): Likewise.
1464         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
1465         of indirect edges.
1466
1467 2010-04-28  Richard Guenther  <rguenther@suse.de>
1468
1469         PR tree-optimization/43879
1470         PR tree-optimization/43909
1471         * tree-ssa-structalias.c (struct variable_info): Add
1472         only_restrict_pointers flag.
1473         (new_var_info): Initialize it.  Increment stats.total_vars here.
1474         (create_function_info_for): Do not increment stats.total_vars here.
1475         (get_function_part_constraint): Fix build with C++.
1476         (insert_into_field_list): Remove.
1477         (push_fields_onto_fieldstack): Properly merge fields.
1478         (create_variable_info_for): Split and simplify.
1479         (create_variable_info_for_1): New piece.
1480         (intra_create_variable_infos): Properly make restrict constraints
1481         from parameters.
1482
1483 2010-04-28  Richard Guenther  <rguenther@suse.de>
1484
1485         PR c++/43880
1486         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
1487
1488 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1489             Jan Hubicka <hubicka@ucw.cz>
1490
1491         * doc/invoke.texi (-Wsuggest-attribute=const,
1492         -Wsuggest-attribute=pure): Document.
1493         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
1494         (function_always_visible_to_compiler_p,
1495         suggest_attribute, warn_function_pure, warn_function_const):
1496         New functions.
1497         (check_call): Improve debug info.
1498         (analyze_function): Do not check availability.
1499         (add_new_function): Check availability.
1500         (propagate): Output warnings.
1501         (skip_function_for_local_pure_const): New function.
1502         (local_pure_const): Use it; output warnings.
1503         * common.opt (Wsuggest-attribute=const,
1504         Wsuggest-attribute=pure): New.
1505
1506 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
1507
1508         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
1509         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
1510         or DW_CFA_def_cfa_offset{,_sf}.
1511
1512 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
1513
1514         * tree.h: Fix truncated long macros.
1515
1516 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
1517
1518         * collect2.c (TARGET_64BIT): Redefine to target's default.
1519         * tlink.c: Likewise.
1520         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
1521         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
1522         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
1523         for underscoring __USER_LABEL_PREFIX__.
1524         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
1525         (SUB_LINK_ENTRY32): New.
1526         (SUB_LINK_ENTRY64): New.
1527         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
1528         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
1529         (SUB_LINK_ENTRY64): New.
1530         (SUB_LINK_ENTRY): New.
1531         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
1532         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
1533         x64 target is choosen.
1534         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
1535         * configure: Regenerated.
1536         * configure.ac (leading-mingw64-underscores): Option added.
1537
1538 2010-04-27  Jan Hubicka  <jh@suse.cz>
1539
1540         * doc/invoke.texi (-fipa-profile): Document.
1541         * opts.c (decode_options): Enable ipa-profile at -O1.
1542         * timevar.def (TV_IPA_PROFILE): Define.
1543         * common.opt (fipa-profile): Add.
1544         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
1545         flag for clones.
1546         (cgraph_propagate_frequency): Handle only local ones.
1547         * tree-pass.h (pass_ipa_profile): Declare.
1548         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
1549         (pass_ipa_profile): Use TV_IPA_PROFILE.
1550         * ipa.c (ipa_profile): New function.
1551         (gate_ipa_profile): Likewise.
1552         (pass_ipa_profile): New global variable.
1553         * passes.c (pass_ipa_profile): New.
1554
1555 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
1556
1557         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
1558
1559 2010-04-27  Martin Jambor  <mjambor@suse.cz>
1560
1561         PR middle-end/43812
1562         * ipa.c (dissolve_same_comdat_group_list): New function.
1563         (function_and_variable_visibility): Call
1564         dissolve_same_comdat_group_list when comdat group contains external or
1565         newly local nodes.
1566         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
1567         lists are circular and that they contain only DECL_ONE_ONLY nodes.
1568
1569 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
1570
1571         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
1572         (const_hash_1) <VECTOR_CST>: New case.
1573         (compare_constant) <VECTOR_CST>: Likewise.
1574         <ADDR_EXPR>: Deal with LABEL_REFs.
1575         (copy_constant) <VECTOR_CST>: New case.
1576
1577 2010-04-27  Jan Hubicka  <jh@suse.cz>
1578
1579         * cgraph.c (cgraph_propagate_frequency): New function.
1580         * cgraph.h (cgraph_propagate_frequency): Declare.
1581         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
1582         cgraph_propagate_frequency.
1583
1584 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
1585
1586         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
1587
1588 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
1589
1590         PR target/40657
1591         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
1592         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
1593         here to determine which regs to push and how much stack to reserve.
1594
1595 2010-04-27  Jie Zhang  <jie@codesourcery.com>
1596
1597         * doc/gimple.texi (gimple_statement_with_ops): Remove
1598         addresses_taken field.
1599         (gimple_statement_with_memory_ops): Likewise.
1600
1601 2010-04-27  Jan Hubicka  <jh@suse.cz>
1602
1603         * tree-inline.c (eni_inlining_weights): Remove.
1604         (estimate_num_insns): Special case more builtins.
1605
1606 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
1607
1608         PR c/32207
1609         * c-typeck.c (build_binary_op): Move forward check for comparison
1610         pointer with null pointer constant and adjust the diagnostic message.
1611
1612 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
1613
1614         PR lto/42776
1615         * configure.ac (gcc_cv_as_section_has_align): Set if installed
1616         binutils supports extended .section directive needed by LTO, or
1617         warn if older binutils found.
1618         (LTO_BINARY_READER): New AC_SUBST'd variable.
1619         (LTO_USE_LIBELF): Likewise.
1620         * gcc/config.gcc (lto_binary_reader): New target-specific configure
1621         variable.
1622         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
1623         (LTO_USE_LIBELF): Likewise.
1624         * configure: Regenerate.
1625
1626         * collect2.c (is_elf): Rename from this ...
1627         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
1628          object files in addition to ELF-formatted ones.
1629         (scan_prog_file): Caller updated.  Also allow for LTO info marker
1630         symbol to be prefixed or not by an extra underscore.
1631
1632         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
1633         * config/i386/winnt.c: Also #include lto-streamer.h
1634         (i386_pe_asm_named_section): Specify 1-byte section alignment for
1635         LTO named sections.
1636         (i386_pe_asm_output_aligned_decl_common): Add comment.
1637         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
1638
1639 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
1640
1641         PR target/43889
1642         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
1643         Add missing earlyclobber for second alternative.
1644
1645 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
1646
1647         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
1648         bits for artificial defs at the top of the block.
1649         * fwprop.c (single_def_use_enter_block): Don't call it.
1650
1651 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
1652
1653         PR 43715
1654         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
1655         instead of "$gcc_cv_objdump -T".
1656         Use "-undefined dynamic_lookup" on darwin.
1657         * gcc/configure: Regenerate.
1658
1659 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
1660
1661         PR c/43893
1662         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
1663
1664 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
1665
1666         * c-parser.c (struct c_token): Move location field up.
1667         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
1668         (struct c_declspecs): Convert typespec_word, storage_class, and
1669         default_int_p into bitfields.
1670         (struct c_declarator): Move loc field up.
1671
1672 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
1673
1674         * cfgloop.h (struct loop): Move can_be_parallel field up.
1675         * ipa-prop.h (struct ip_node_params): Move bitfields up.
1676         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
1677         down.
1678         (struct iv_cand): Convert pos field into a bitfield.
1679         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
1680         field up.
1681         (struct _stmt_vec_info): Shuffle fields for better packing.
1682
1683 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
1684
1685         * varasm.c (IN_NAMED_SECTION): Remove guard.
1686         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
1687         (IN_NAMED_SECTION_P): ...this.
1688         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
1689         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
1690
1691 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
1692
1693         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
1694         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
1695         of shadowing it.  Fix comments.
1696
1697 2010-04-26  Jan Hubicka  <jh@suse.cz>
1698
1699         * cgraph.c (cgraph_create_node): Set node frequency to normal.
1700         (cgraph_clone_node): Copy function frequency.
1701         * cgraph.h (node_frequency): New enum
1702         (struct cgraph_node): Add.
1703         * final.c (rest_of_clean_state): Update.
1704         * lto-cgraph.c (lto_output_node): Output node frequency.
1705         (input_overwrite_node): Input node frequency.
1706         * tre-ssa-loop-ivopts (computation_cost): Update.
1707         * lto-streamer-out.c (output_function): Do not output function
1708         frequency.
1709         * predict.c (maybe_hot_frequency_p): Update and handle functions
1710         executed once.
1711         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
1712         attribute lookup.
1713         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
1714         (compute_function_frequency): Set noreturn functions to be executed
1715         once.
1716         (choose_function_section): Update.
1717         * lto-streamer-in.c (input_function): Do not input function frequency.
1718         * function.c (allocate_struct_function): Do not initialize function
1719         frequency.
1720         * function.h (function_frequency): Remove.
1721         (struct function): Remove function frequency.
1722         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
1723         (try_update): Update.
1724         * tree-inline.c (initialize_cfun): Do not update function frequency.
1725         * passes.c (pass_init_dump_file): Update.
1726         * i386.c (ix86_compute_frame_layout): Update.
1727         (ix86_pad_returns): Update.
1728
1729 2010-04-26  Jie Zhang  <jie@codesourcery.com>
1730
1731         PR tree-optimization/43833
1732         * tree-vrp.c (range_int_cst_p): New.
1733         (range_int_cst_singleton_p): New.
1734         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
1735         when both operands are constants.  Use range_int_cst_p in
1736         BIT_IOR_EXPR case.
1737
1738 2010-04-26  Jan Hubicka  <jh@suse.cz>
1739
1740         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
1741
1742 2010-04-26  Richard Guenther  <rguenther@suse.de>
1743
1744         PR lto/43080
1745         * gimple.c (gimple_decl_printable_name): Deal gracefully
1746         with a NULL DECL_NAME.
1747
1748 2010-04-26  Richard Guenther  <rguenther@suse.de>
1749
1750         PR lto/42425
1751         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
1752         if emitting debug information and it is either a function
1753         or a namespace decl.
1754
1755 2010-04-26  Ira Rosen  <irar@il.ibm.com>
1756
1757         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
1758         determine if the statement is vectorizable, and a macro to access it.
1759         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
1760         Skip statements that can't be vectorized. If the analysis fails,
1761         mark the statement as unvectorizable if vectorizing basic block.
1762         (vect_compute_data_refs_alignment): Likewise.
1763         (vect_verify_datarefs_alignment): Skip statements marked as
1764         unvectorizable. Add print.
1765         (vect_analyze_group_access): Skip statements that can't be
1766         vectorized. If the analysis fails, mark the statement as
1767         unvectorizable if vectorizing basic block.
1768         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
1769         * tree-vect-stmts.c (vectorizable_store): Fix the number of
1770         generated stmts for SLP.
1771         (new_stmt_vec_info): Initialize the new field.
1772         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
1773         statements marked as unvectorizable.
1774
1775 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
1776
1777         * c-common.c (flag_isoc1x): New.
1778         (flag_isoc99): Update comment.
1779         * c-common.h (flag_isoc1x): New.
1780         (flag_isoc99): Update comment.
1781         * c-cppbuiltin.c (builtin_define_float_constants): Also define
1782         __<type>_DECIMAL_DIG__.
1783         * c-opts.c (set_std_c1x): New.
1784         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
1785         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
1786         * c.opt (-std=c1x, -std=gnu1x): New options.
1787         * doc/cpp.texi: Mention -std=c1x.
1788         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
1789         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
1790         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
1791         * doc/standards.texi: Mention C1X.
1792         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
1793         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
1794         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
1795         Define for C1X.
1796
1797 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
1798
1799         * config/i386/gmon-sol2.c (_mcleanup): Change format string
1800         placeholder from 0x%x to %#x.
1801         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
1802         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
1803         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
1804         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
1805         * config/i386/i386.c (ix86_target_string): Ditto.
1806         (output_pic_addr_const): Ditto.
1807         (print_operand): Ditto.
1808
1809 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
1810
1811         * combine.c (find_split_point): Add third argument.  Use it
1812         to find nested multiply-accumulate instructions.  Adjust calls.
1813         (try_combine): Adjust call to find_split_point.
1814
1815 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
1816
1817         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
1818
1819 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
1820
1821         PR tree-optimization/41442
1822         * fold-const.c (merge_truthop_with_opposite_arm): New function.
1823         (fold_binary_loc): Call it.
1824
1825 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1826
1827         * toplev.c (general_init): Set default for fdiagnostics-show-option.
1828         * opts.c (common_handle_option): Allow disabling it.
1829         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
1830
1831 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
1832
1833         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
1834         between modes if both types are integral.
1835
1836 2010-04-23  Richard Guenther  <rguenther@suse.de>
1837
1838         PR tree-optimization/43572
1839         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
1840
1841 2010-04-23  Richard Guenther  <rguenther@suse.de>
1842
1843         PR lto/43455
1844         * tree-inline.c (tree_can_inline_p): Also check compatibility
1845         of return types.
1846
1847 2010-04-23  Martin Jambor  <mjambor@suse.cz>
1848
1849         PR tree-optimization/43846
1850         * tree-sra.c (struct access): New flag grp_assignment_read.
1851         (build_accesses_from_assign): Set grp_assignment_read.
1852         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
1853         (enum mark_read_status): New type.
1854         (analyze_access_subtree): Propagate grp_assignment_read, create
1855         accesses also if both direct_read and root->grp_assignment_read.
1856
1857 2010-04-23  Martin Jambor  <mjambor@suse.cz>
1858
1859         PR middle-end/43835
1860         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
1861         function does not have type attributes.
1862
1863 2010-04-23  Richard Guenther  <rguenther@suse.de>
1864
1865         PR lto/42653
1866         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
1867         of FUNCTION_DECLs.
1868
1869 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1870
1871         * sese.h (create_if_region_on_edge): Remove.
1872
1873         * sese.c (create_if_region_on_edge): Make static.
1874
1875         * tree-inline.c: Do not include ggc.h.
1876
1877         * expr.c: Do not include ggc.h.
1878
1879         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
1880         dependencies.
1881
1882 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
1883
1884         PR target/43744
1885         * config/sh/sh.c (find_barrier): Don't emit a constant pool
1886         in the middle of insns for casesi_worker_2.
1887
1888 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
1889
1890         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
1891
1892 2010-04-22  Ira Rosen  <irar@il.ibm.com>
1893
1894         PR tree-optimization/43842
1895         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
1896         loop unrolling in update of exit phis. Fix comment.
1897         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
1898         least two reduction statements in the loop before starting SLP
1899         analysis.
1900
1901 2010-04-22  Nick Clifton  <nickc@redhat.com>
1902
1903         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
1904
1905 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
1906
1907         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
1908         to simplify a + ~a.
1909
1910 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1911
1912         * tree-parloops.c (loop_parallel_p): New argument
1913         parloop_obstack.  Pass it down.
1914         (parallelize_loops): New variable parloop_obstack.  Initialize it,
1915         pass it down, free it.
1916
1917         * tree-loop-linear.c (linear_transform_loops): Pass down
1918         lambda_obstack.
1919
1920         * tree-data-ref.h (lambda_compute_access_matrices): New argument
1921         of type struct obstack *.
1922
1923         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
1924         scratch_obstack.  Initialize it, pass down, free it.
1925
1926         * lambda.h (lambda_loop_new): Remove.
1927         (lambda_matrix_new, lambda_matrix_inverse)
1928         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
1929         argument of type struct obstack *.
1930
1931         * lambda-trans.c (lambda_trans_matrix_new): New argument
1932         lambda_obstack.  Pass it down, use obstack allocation for ret.
1933         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
1934         it down.
1935
1936         * lambda-mat.c (lambda_matrix_get_column)
1937         (lambda_matrix_project_to_null): Remove.
1938         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
1939         allocation for mat.
1940         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
1941         lambda_obstack.
1942
1943         * lambda-code.c (lambda_loop_new): New function.
1944         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
1945         (lambda_compute_auxillary_space, lambda_compute_target_space)
1946         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
1947         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
1948         (build_access_matrix): New argument lambda_obstack.  Use obstack
1949         allocation for am.
1950         (lambda_compute_step_signs, lambda_compute_access_matrices): New
1951         argument lambda_obstack.  Pass it down.
1952
1953 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1954
1955         * optabs.h (expand_widening_mult): Declare.
1956
1957 2010-04-22  Richard Guenther  <rguenther@suse.de>
1958
1959         PR tree-optimization/43845
1960         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
1961         lookup the CALL_EXPR function and arguments.
1962
1963 2010-04-22  Nick Clifton  <nickc@redhat.com>
1964
1965         * config/stormy16/stormy16.c
1966         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
1967         * config/stormy16/stormy16.h: Tidy up formatting.
1968         (DONT_USE_BUILTIN_SETJMP): Remove definition.
1969         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
1970         (ineqbranchsi): Delete pattern.
1971         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
1972         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
1973         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
1974         stormy16-lib2-ucmpsi2.c.
1975
1976 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1977
1978         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
1979         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
1980         extra set merge_set_noclobber, and use it to relax the final test
1981         slightly.
1982         * df.h (df_simulate_find_noclobber_defs): Declare.
1983         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
1984         conditional defs.
1985         (df_simulate_find_noclobber_defs): New function.
1986
1987 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
1988
1989         * config/i386/i386.md: Use {} around multi-line preparation statements.
1990
1991 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1992
1993         * c-tree.h (push_init_level, pop_init_level, set_init_index)
1994         (process_init_element): New argument of type struct obstack *.
1995
1996         * c-typeck.c (push_init_level, pop_init_level, set_designator)
1997         (set_init_index, set_init_label, set_nonincremental_init)
1998         (set_nonincremental_init_from_string, find_init_member)
1999         (output_init_element, output_pending_init_elements)
2000         (process_init_element): New argument braced_init_obstack.  Pass it
2001         down.
2002         (push_range_stack, add_pending_init): New argument
2003         braced_init_obstack.  Use obstack allocation.
2004
2005         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
2006         braced_init_obstack.  Pass it down.
2007         (c_parser_braced_init): New variables ret, braced_init_obstack.
2008         Initialize obstack, pass it down and finally free it.
2009
2010 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
2011
2012         PR middle-end/29274
2013         * tree-pass.h (pass_optimize_widening_mul): Declare.
2014         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
2015         gate_optimize_widening_mul): New static functions.
2016         (pass_optimize_widening_mul): New.
2017         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
2018         <case MULT_EXPR>: Remove support for widening multiplies.
2019         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
2020         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
2021         simplify_gen_unary rather than directly building extensions.
2022         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
2023         WIDEN_MULT_EXPR.
2024         * expmed.c (expand_widening_mult): New function.
2025         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
2026
2027 2010-04-21  Jan Hubicka  <jh@suse.cz>
2028
2029         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
2030         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
2031         * lto-wpa-fixup.c: Remove.
2032         * Makefile.in (lto-wpa-fixup.o): Remove.
2033         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
2034         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
2035         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
2036
2037 2010-04-21  Jan Hubicka  <jh@suse.cz>
2038
2039         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
2040         add write_optimization_summary, read_optimization_summary.
2041         (ipa_write_summaries_of_cgraph_node_set): Remove.
2042         (ipa_write_optimization_summaries): Declare.
2043         (ipa_read_optimization_summaries): Declare.
2044         * ipa-cp.c (pass_ipa_cp): Update.
2045         * ipa-reference.c (pass_ipa_reference): Update.
2046         * ipa-pure-const.c (pass_ipa_pure_const): Update.
2047         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
2048         Update.
2049         * ipa-inline.c (pass_ipa_inline): Update.
2050         * ipa.c (pass_ipa_whole_program): Update.
2051         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
2052         * passes.c (ipa_write_summaries_1): Do not test wpa.
2053         (ipa_write_optimization_summaries_1): New.
2054         (ipa_write_optimization_summaries): New.
2055         (ipa_read_summaries): Do not test ltrans.
2056         (ipa_read_optimization_summaries_1): New.
2057         (ipa_read_optimization_summaries): New.
2058
2059 2010-04-21  Jan Hubicka  <jh@suse.cz>
2060
2061         * lto-cgraph.c (lto_output_node): Do not output comdat groups
2062         for boundary nodes.
2063         (output_cgraph): Do not arrange comdat groups for boundary nodes.
2064
2065 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
2066
2067         PR debug/40040
2068         * dwarf2out.c (add_name_and_src_coords_attributes): Add
2069         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
2070
2071 2010-04-21  Jan Hubicka  <jh@suse.cz>
2072
2073         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
2074
2075 2010-04-21  Jan Hubicka  <jh@suse.cz>
2076
2077         * varpool.c (decide_is_variable_needed): Variable is always needed
2078         during ltrans.
2079
2080 2010-04-21  Jan Hubicka  <jh@suse.cz>
2081
2082         * opts.c (decode_options): Enable pure-const pass for whopr.
2083
2084 2010-04-21  Jan Hubicka  <jh@suse.cz>
2085
2086         * cgraph.c (dump_cgraph_node): Dump also assembler name.
2087         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
2088         at WPA dumping.
2089         (cgraph_decide_inlining): Do not expect callee to be removed in all
2090         cases.
2091
2092 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
2093
2094         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
2095
2096 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
2097
2098         * config/i386/i386.md (x86_shrd): Add athlon_decode and
2099         amdfam10_decode attributes.
2100
2101 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
2102
2103         PR middle-end/43570
2104         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
2105         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
2106         (lower_copyprivate_clauses): Use private var in outer
2107         context instead of original var.  Make sure the types
2108         are correct for VLAs.
2109
2110 2010-04-21  Richard Guenther  <rguenther@suse.de>
2111
2112         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
2113         to non-pointer objects.
2114
2115 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
2116
2117         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
2118         last chain entry if it starts with the still current label.
2119         (add_location_or_const_value_attribute): Check that
2120         loc_list->first->next is NULL instead of comparing ->first with ->last.
2121         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
2122         to add_var_loc_to_decl.
2123
2124         * dwarf2out.c (output_call_frame_info): For dw_cie_version
2125         >= 4 add also address size and segment size fields into CIE header.
2126
2127         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
2128         long as address size is the same as sizeof (void *) and
2129         segment size is 0.
2130         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
2131         address size or segment size is unexpected, return DW_EH_PE_omit.
2132         (classify_object_over_fdes): If get_cie_encoding returned
2133         DW_EH_PE_omit, return -1.
2134         (init_object): If classify_object_over_fdes returned -1,
2135         pretend there were no FDEs at all.
2136
2137 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
2138
2139         * config/i386/i386.md (bswap<mode>2): Macroize expander from
2140         bswap{si,di}2 using SWI48 mode iterator.
2141         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
2142         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
2143         set modrm attribute of bswap insn to 0 and remove length attribute.
2144         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
2145         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
2146         set mode attribute to <MODE> and remove length attribute.
2147
2148 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
2149
2150         PR rtl-optimization/43520
2151         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
2152         zero available registers.
2153
2154 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2155
2156         * builtins.c (fold_builtin_cproj): Fold more cases.
2157
2158 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2159
2160         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
2161         (fold_builtin_1): Fold builtin cproj.
2162         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
2163         Use ATTR_CONST_NOTHROW_LIST.
2164
2165 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
2166
2167         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
2168         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
2169         ffsi2_no_cmove for !TARGET_CMOVE.
2170         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
2171         (ffssi2): Remove expander.
2172         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
2173         mode iterator.
2174         (ctz<mode>2): Ditto from ctz{si,di}2.
2175         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
2176         mode iterator.
2177         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
2178         mode iterator.
2179
2180 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
2181
2182         * dwarf2out.c (AT_linkage_name): Define.
2183         (clone_as_declaration): Handle DW_AT_linkage_name.
2184         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
2185         of DW_AT_MIPS_linkage_name.
2186         (move_linkage_attr): Likewise.
2187         (dwarf2out_finish): Likewise.
2188
2189 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
2190
2191         PR middle-end/41952
2192         * fold-const.c (fold_comparison): New folding rule.
2193
2194 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
2195
2196         * double-int.h (double_int_setbit): Declare.
2197         * double-int.c (double_int_setbit): New function.
2198         * rtl.h (immed_double_int_const): Declare.
2199         * emit-rtl.c (immed_double_int_const): New function.
2200         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
2201         and immed_double_int_const functions.
2202         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
2203         expand_copysign_bit):  (Ditto.).
2204         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
2205         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
2206         * dojump.c (prefer_and_bit_test): (Ditto.).
2207         * expr.c (convert_modes, reduce_to_bit_field_precision,
2208         const_vector_from_tree): (Ditto.).
2209         * expmed.c (mask_rtx, lshift_value): (Ditto.).
2210
2211 2010-04-20  Jan Hubicka  <jh@suse.cz>
2212
2213         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
2214         (dump_cgraph_node): Dump new flags.
2215         * cgraph.h (struct cgraph_node): Add flags
2216         reachable_from_other_partition and in_other_partition.
2217         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
2218         other partition can not be removed.
2219         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
2220         the other partition must be output; silence sanity checking on
2221         leaking functions bodies from other paritition.
2222         * lto-cgraph.c (reachable_from_other_partition_p): New function.
2223         (lto_output_node): Output new flags; do not sanity check that inline
2224         clones are output; drop lto_forced_extern_inline_p code; do not mock
2225         visibility flags at partition boundaries.
2226         (add_node_to): New function.
2227         (output_cgraph): Use it to sort functions so masters appear before
2228         clones.
2229         (input_overwrite_node): Input new flags.
2230         * passes.c (ipa_write_summaries): Do not call
2231         lto_new_extern_inline_states.
2232         * lto-section-out.c (forced_extern_inline,
2233         lto_new_extern_inline_states lto_delete_extern_inline_states,
2234         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
2235         * lto-streamer.h (lto_new_extern_inline_states,
2236         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
2237         lto_forced_extern_inline_p): Kill.
2238
2239 2010-04-20  Richard Guenther  <rguenther@suse.de>
2240
2241         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
2242         from vars that can have pointers.
2243         (process_constraint): Dump useless constraints.
2244
2245 2010-04-20  Richard Guenther  <rguenther@suse.de>
2246
2247         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
2248         (dump_sa_points_to_info): Remove asserts.
2249         (init_base_vars): nothing_id isn't an escape point nor does it
2250         have pointers.
2251
2252 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
2253
2254         * tree.h (TYPE_REF_IS_RVALUE): Define.
2255         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
2256         should_move_die_to_comdat, prune_unused_types_walk): Handle
2257         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
2258         (modified_type_die, gen_reference_type_die): Emit
2259         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
2260         if TYPE_REF_IS_RVALUE and -gdwarf-4.
2261
2262 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2263
2264         PR target/43635
2265         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
2266         calls for -fpic -m31 if they have been sibcall optimized.
2267
2268 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
2269
2270         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
2271         ar.lc fixed and call-used.
2272
2273         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
2274
2275 2010-04-19  Jan Hubicka  <jh@suse.cz>
2276
2277         * opts.c (decode_options): Disable whpr incompatible passes.
2278         * lto/lto.c (lto_1_to_1_map): Skip clones.
2279         (read_cgraph_and_symbols): Do not mark everything as needed.
2280         (do_whole_program_analysis): Do map only after optimizing;
2281         set proper cgraph_state; use passmanager.
2282
2283 2010-04-19  DJ Delorie  <dj@redhat.com>
2284
2285         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
2286         POINTER_PLUS_EXPR and fix them.
2287
2288 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
2289
2290         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
2291         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
2292         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
2293         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
2294         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
2295         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
2296         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
2297         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
2298         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
2299         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
2300         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
2301
2302 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
2303
2304         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
2305         (check_cond_move_block): Likewise.
2306         (cond_move_process_if_block): Likewise.
2307         (noce_find_if_block): Improve formatting.
2308         (find_if_header): Pass 0 to memset and tweak conditions.
2309         (cond_exec_find_if_block): Fix long lines and tweak conditions.
2310
2311 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
2312
2313         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
2314         for -gdwarf-4.
2315
2316         PR middle-end/43337
2317         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
2318         with non-local decl doesn't need chain.
2319
2320 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
2321
2322         * ira-color.c (allocno_reload_assign): Avoid accumulating
2323         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
2324
2325 2010-04-19  Martin Jambor  <mjambor@suse.cz>
2326
2327         * gimple.h (create_tmp_reg): Declare.
2328         * gimplify.c (create_tmp_reg): New function.
2329         (gimplify_return_expr): Use create_tmp_reg.
2330         (gimplify_omp_atomic): Likewise.
2331         (gimple_regimplify_operands): Likewise.
2332         * tree-dfa.c (make_rename_temp): Likewise.
2333         * tree-predcom.c (predcom_tmp_var): Likewise.
2334         (reassociate_to_the_same_stmt): Likewise.
2335         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
2336         (get_replaced_param_substitute): Likewise.
2337         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
2338         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
2339         * tree-ssa-pre.c (get_representative_for): Likewise.
2340         (create_expression_by_pieces): Likewise.
2341         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
2342         (create_tailcall_accumulator): Likewise.
2343
2344 2010-04-19  Martin Jambor  <mjambor@suse.cz>
2345
2346         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
2347         new_stmt.
2348         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
2349
2350 2010-04-19  Richard Guenther  <rguenther@suse.de>
2351
2352         PR tree-optimization/43796
2353         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
2354         from SCEV in the lattice.
2355         (vrp_visit_phi_node): Dump change.
2356
2357 2010-04-19  Richard Guenther  <rguenther@suse.de>
2358
2359         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
2360         * configure: Re-generated.
2361
2362 2010-04-19  Richard Guenther  <rguenther@suse.de>
2363
2364         PR tree-optimization/43783
2365         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
2366         constant ARRAY_REF operands two and three if possible.
2367
2368 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
2369
2370         PR target/43766
2371         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
2372
2373 2010-04-19  Jie Zhang  <jie@codesourcery.com>
2374
2375         PR target/43662
2376         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
2377
2378 2010-04-19  Ira Rosen  <irar@il.ibm.com>
2379
2380         PR tree-optimization/37027
2381         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
2382         and macro to access it.
2383         (vectorizable_reduction): Add argument.
2384         (vect_get_slp_defs): Likewise.
2385         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
2386         statements for possible use in SLP.
2387         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
2388         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
2389         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
2390         add new argument.
2391         (vectorizable_reduction): Likewise.
2392         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
2393         vect_get_slp_defs.
2394         (vectorizable_type_demotion, vectorizable_type_promotion,
2395         vectorizable_store): Likewise.
2396         (vect_analyze_stmt): Update call to vectorizable_reduction.
2397         (vect_transform_stmt): Likewise.
2398         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
2399         (vect_build_slp_tree): Fix indentation. Check that there are no loads
2400         from different interleaving chains in same node.
2401         (vect_slp_rearrange_stmts): New function.
2402         (vect_supported_load_permutation_p): Allow load permutations for
2403         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
2404         inside SLP nodes if necessary.
2405         (vect_analyze_slp_instance): Handle reductions.
2406         (vect_analyze_slp): Try to build SLP instances originating from groups
2407         of reductions.
2408         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
2409         (vect_get_constant_vectors): Create initial vectors for reductions
2410         according to reduction code. Add new argument.
2411         (vect_get_slp_defs): Add new argument, pass it to
2412         vect_get_constant_vectors.
2413         (vect_schedule_slp_instance): Remove SLP tree root statements.
2414
2415 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
2416
2417         * tree.h (ENUM_IS_SCOPED): Define.
2418         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
2419         for ENUM_IS_SCOPED enums.
2420
2421 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2422
2423         * fold-const.c (fold_comparison): Use ssizetype.
2424         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
2425         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
2426         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
2427         * tree-object-size.c (compute_object_sizes): Use size_type_node.
2428
2429         * tree.h (initialize_sizetypes): Remove parameter.
2430         (build_common_tree_nodes): Remove second parameter.
2431         * stor-layout.c (initialize_sizetypes): Remove parameter.
2432         Always create an unsigned type.
2433         (set_sizetype): Assert that the passed type is unsigned and simplify.
2434         * tree.c (build_common_tree_nodes): Remove second parameter.
2435         Adjust call to initialize_sizetypes.
2436         * c-decl.c (c_init_decl_processing): Remove second argument in call to
2437         build_common_tree_nodes.
2438
2439 2010-04-18  Matthias Klose  <doko@ubuntu.com>
2440
2441         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
2442
2443 2010-04-18  Ira Rosen  <irar@il.ibm.com>
2444
2445         PR tree-optimization/43771
2446         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
2447         load permutation doesn't have gaps.
2448
2449 2010-04-18  Jan Hubicka  <jh@suse.cz>
2450
2451         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
2452         (sse_prologue_save_insn expander): Use new pattern.
2453         (sse_prologue_save_insn1): New pattern and splitter.
2454         (sse_prologue_save_insn): Update to deal also with 64bit aligned
2455         blocks.
2456         * i386.c (setup_incoming_varargs_64): Do not compute jump
2457         destination here.
2458         (ix86_gimplify_va_arg): Update alignment needed.
2459         (ix86_local_alignment): Do not align all local arrays to 128bit.
2460
2461 2010-04-17  Jan Hubicka  <jh@suse.cz>
2462
2463         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
2464
2465 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
2466
2467         * arm.md (negdi2): Remove redundant code to force values into a
2468         register.
2469
2470 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
2471
2472         * arm/bpabi.S: Add EABI alignment attributes to objects.
2473         * arm/bpabi-v6m.S: Likewise.
2474         * arm/crti.asm: Likewise.
2475         * arm/crtn.asm: Likewise.
2476         * arm/lib1funcs.asm: Likewise.
2477         * arm/libunwind.S: Likewise.
2478
2479 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
2480
2481         * arm-protos.h (tune_params): New structure.
2482         * arm.c (current_tune): New variable.
2483         (arm_constant_limit): Delete.
2484         (struct processors): Add pointer to the tune parameters.
2485         (arm_slowmul_tune): New tuning option.
2486         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
2487         (all_cores): Adjust to pick up the tuning model.
2488         (arm_constant_limit): New function.
2489         (arm_override_options): Select the appropriate tuning model.  Delete
2490         initialization of arm_const_limit.
2491         (arm_split_constant): Use the new constant-limit model.
2492         (arm_rtx_costs): Pick up the current tuning model.
2493         * arm.md (is_strongarm, is_xscale): Delete.
2494         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
2495         for Xscale variant architectures.
2496         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
2497
2498 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2499
2500         * config/arm/arm.c (arm_gen_constant): Remove unused variable
2501         can_shift.
2502         (arm_rtx_costs_1): Remove unused variable extra_cost.
2503         (arm_unwind_emit_set): Use variable offset.
2504         (thumb1_output_casesi): Remove unused variable flags.
2505
2506 2010-04-16  Jeff Law  <law@redhat.com>
2507
2508         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
2509         needing assignment rather than doing a two-phase assignment.  Remove
2510         unused variable 'm'.
2511
2512 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2513
2514         PR bootstrap/43767
2515         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
2516
2517 2010-04-16  Doug Kwan  <dougkwan@google.com>
2518
2519         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
2520         (next_operand_entry_id): New static variable.
2521         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
2522         (add_to_ops_vec): Assigned unique ID to operand entry.
2523         (struct oecount_s): New field ID.
2524         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
2525         (undistribute_ops_list): Assign unique IDs to oecounts.
2526         (init_reassoc): reset next_operand_entry_id.
2527
2528 2010-04-16  Doug Kwan  <dougkwan@google.com>
2529
2530         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
2531         missing left parenthesis.
2532
2533 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
2534
2535         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
2536         *btdi_rex64 using SWI48 mode iterator.
2537         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
2538         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
2539         *jcc_btdi_mask_rex64.
2540
2541 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
2542
2543         * double-int.h (tree_to_double_int): Convert to macro.
2544         * double-int.c (tree_to_double_int): Remove.
2545
2546 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2547
2548         PR debug/43762
2549         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
2550         with want_address 2 and in case a single element list might be
2551         possible, call it again with want_address 0.
2552
2553 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
2554
2555         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
2556         case 'W' print operands for HI mode.
2557         * config/h8300/h8300.h (Y0, Y2) : New constraints.
2558         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
2559         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
2560         * config/h8300/predicate.md (bit_register_indirect_operand): New.
2561
2562         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
2563
2564         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
2565         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
2566         #xx:3 and #xx:4 mode.
2567
2568         * config/h8300/h8300.md (inverted load with HImode dest): Add
2569         support for H8300SX.
2570
2571         * config/h8300/predicate.md (bit_operand): Allow immediate values that
2572         satisfy 'U' constraint.
2573
2574 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2575
2576         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
2577         * configure: Regenerate.
2578         * config.in: Regenerate.
2579         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
2580         works.
2581
2582 2010-04-16  Richard Guenther  <rguenther@suse.de>
2583
2584         * tree.h (struct tree_decl_minimal): Move pt_uid ...
2585         (struct tree_decl_common): ... here.
2586         (DECL_PT_UID): Adjust.
2587         (SET_DECL_PT_UID): Likewise.
2588         (DECL_PT_UID_SET_P): Likewise.
2589
2590 2010-04-16  Richard Guenther  <rguenther@suse.de>
2591
2592         PR tree-optimization/43572
2593         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
2594         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
2595         * tree-flow.h (is_call_clobbered): Remove.
2596         * tree-flow-inline.h (is_call_clobbered): Likewise.
2597         * tree-dfa.c (dump_variable): Do not dump call clobber state.
2598         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
2599         (execute_return_slot_opt): Adjust.
2600         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
2601         check for call clobbered vars here.
2602         (find_tail_calls): Move tailcall verification to the
2603         proper place.
2604
2605 2010-04-16  Diego Novillo  <dnovillo@google.com>
2606
2607         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
2608
2609 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
2610
2611         PR target/40603
2612         * config/arm/arm.md (cbranchqi4): New pattern.
2613         * config/arm/predicates.md (const0_operand,
2614         cbranchqi4_comparison_operator): New predicates.
2615
2616 2010-04-16  Richard Guenther  <rguenther@suse.de>
2617
2618         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
2619         (dump_gimple_stmt): Likewise.
2620
2621 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
2622
2623         * recog.h (struct recog_data): New field is_operator.
2624         (struct insn_operand_data): New field is_operator.
2625         * recog.c (extract_insn): Set recog_data.is_operator.
2626         * genoutput.c (output_operand_data): Emit code to set the
2627         is_operator field.
2628         * reload.c (find_reloads): Use it rather than testing for an
2629         empty constraint string.
2630
2631         PR target/41514
2632         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
2633         If the previous insn is a cbranchsi4_insn with the same arguments,
2634         omit the compare instruction.
2635
2636         * config/arm/arm.md (addsi3_cbranch): If destination is a high
2637         register, inputs must be low registers and we need a low register
2638         scratch.  Handle alternative 2 like alternative 3.
2639
2640 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2641
2642         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
2643         don't call get_addr on both.  If one expression is a VALUE and
2644         the other a REG, check VALUE's locs if the REG isn't among them.
2645
2646 2010-04-16  Christian Bruel  <christian.bruel@st.com>
2647
2648         * config/sh/sh.h (sh_frame_pointer_required): New function.
2649         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
2650         (flag_omit_frame_pointer) Set.
2651         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
2652         (rounded_frame_size): Adjust size with outgoing_args_size.
2653         (sh_set_return_address): Must return from stack pointer.
2654         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
2655         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
2656         (ACCUMULATE_OUTGOING_ARGS): Define.
2657         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
2658         * gcc/config/sh/sh.opt: (maccumulate-outgoing-args): New option.
2659
2660 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
2661
2662         PR target/43471
2663         * config/sh/sh.c (sh_legitimize_reload_address): Use
2664         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
2665         Remove a unneeded check for offset_base.
2666
2667 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
2668
2669         * configure: Regenerated.
2670
2671 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2672
2673         * config/s390/s390.c (s390_call_save_register_used): Switch back
2674         to HARD_REGNO_NREGS.
2675
2676 2010-04-15  Richard Guenther  <rguenther@suse.de>
2677
2678         * alias.c (alias_set_subset_of): Handle alias-set zero
2679         child properly.
2680
2681 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
2682             Julian Brown  <julian@codesourcery.com>
2683
2684         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
2685         alternatives according to use of high and low regs.
2686         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
2687         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
2688         optimizing for size on Thumb-2.
2689
2690 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
2691
2692         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
2693
2694 2010-04-15  Richard Guenther  <rguenther@suse.de>
2695
2696         * tree-ssa-structalias.c (struct variable_info): Add
2697         is_fn_info flag.
2698         (new_var_info): Initialize it.
2699         (dump_constraints): Support printing last added constraints.
2700         (debug_constraints): Adjust.
2701         (dump_constraint_graph): Likewise.
2702         (make_heapvar_for): Check for NULL cfun.
2703         (get_function_part_constraint): New function.
2704         (get_fi_for_callee): Likewise.
2705         (find_func_aliases): Properly implement IPA PTA constraints.
2706         (process_ipa_clobber): New function.
2707         (find_func_clobbers): Likewise.
2708         (insert_into_field_list_sorted): Remove.
2709         (create_function_info_for): Properly allocate vars for IPA mode.
2710         Do not use insert_into_field_list_sorted.
2711         (create_variable_info_for): Properly generate constraints for
2712         global vars in IPA mode.
2713         (dump_solution_for_var): Always dump the solution.
2714         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
2715         (find_what_var_points_to): Adjust.
2716         (pt_solution_set): Change.
2717         (pt_solution_ior_into): New function.
2718         (pt_solution_empty_p): Export.
2719         (pt_solution_includes_global): Adjust.
2720         (pt_solution_includes_1): Likewise.
2721         (pt_solutions_intersect_1): Likewise.
2722         (dump_sa_points_to_info): Check some invariants.
2723         (solve_constraints): Move constraint dumping ...
2724         (compute_points_to_sets): ... here.
2725         (ipa_pta_execute): ... and here.
2726         (compute_may_aliases): Do not re-compute points-to info
2727         locally if IPA info is available.
2728         (ipa_escaped_pt): New global var.
2729         (ipa_pta_execute): Properly implement IPA PTA.
2730         * tree-into-ssa.c (dump_decl_set): Support dumping
2731         decls not in referenced-vars.
2732         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
2733         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
2734         (dump_points_to_solution): Likewise.
2735         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
2736         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
2737         (remap_gimple_stmt): Reset call clobber/use information if necessary.
2738         (copy_decl_to_var): Copy DECL_PT_UID.
2739         (copy_result_decl_to_var): Likewise.
2740         * tree.c (make_node_stat): Initialize DECL_PT_UID.
2741         (copy_node_stat): Copy it.
2742         * tree.h (DECL_PT_UID): New macro.
2743         (SET_DECL_PT_UID): Likewise.
2744         (DECL_PT_UID_SET_P): Likewise.
2745         (struct tree_decl_minimal): Add pt_uid member.
2746         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
2747         (pt_solution_empty_p): Declare.
2748         (pt_solution_set): Adjust.
2749         (ipa_escaped_pt): Declare.
2750         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
2751         * gimple-pretty-print.c (pp_points_to_solution): New function.
2752         (dump_gimple_call): Dump call clobber/use information.
2753         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
2754         * tree-pass.h (TDF_ALIAS): New dump option.
2755         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
2756         * doc/invoke.texi (-fipa-pta): Update documentation.
2757
2758 2010-04-15  Richard Guenther  <rguenther@suse.de>
2759
2760         * Makefile.in (OBJS-common): Add gimple-fold.o.
2761         (gimple-fold.o): New rule.
2762         * tree.h (maybe_fold_offset_to_reference,
2763         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
2764         prototypes ...
2765         * gimple.h: ... here.
2766         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
2767         may_propagate_address_into_dereference): Move prototypes ...
2768         * gimple.h: ... here.
2769         * tree-ssa-ccp.c (get_symbol_constant_value,
2770         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
2771         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
2772         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
2773         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
2774         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
2775         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
2776         gimplify_and_update_call_from_tree): Move ...
2777         * gimple-fold.c: ... here.  New file.
2778         (ccp_fold_builtin): Rename to ...
2779         (gimple_fold_builtin): ... this.
2780         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
2781
2782 2010-04-15  Richard Guenther  <rguenther@suse.de>
2783
2784         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
2785         fit_double_type, force_fit_type_double, add_double_with_sign,
2786         neg_double, mul_double_with_sign, lshift_double, rshift_double,
2787         lrotate_double, rrotate_double, div_and_round_double): Move ...
2788         * double-int.c: ... here.
2789         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
2790         add_double, neg_double, mul_double_with_sign, mul_double,
2791         lshift_double, rshift_double, lrotate_double, rrotate_double,
2792         div_and_round_double): Move prototypes ...
2793         * double-int.h: ... here.
2794
2795 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
2796
2797         PR target/43742
2798         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
2799         matching constraints to ensure inputs match the output.
2800
2801 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
2802
2803         PR target/43742
2804         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
2805         in an input-only operand.
2806
2807 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
2808
2809         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
2810         (double_int_not, double_int_lshift, double_int_rshift): Declare.
2811         (double_int_negative_p): Convert to static inline function.
2812         * double-int.c (double_int_lshift, double_int_lshift): New functions.
2813         (double_int_negative_p): Remove.
2814         * tree.h (lshift_double, rshift_double):
2815         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
2816         * fold-const.c (fold_convert_const_int_from_real,
2817         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
2818         (lshift_double): Change type of arith argument to bool.
2819         (rshift_double): Change type of arith argument to bool. Correct
2820         comment.
2821         * expmed.c (mask_rtx, lshift_value): (Ditto.).
2822
2823 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
2824
2825         PR target/21803
2826         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
2827         at the start and end of the then/else blocks, and omit them from the
2828         conversion.
2829         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
2830         argument; all callers changed.  Pass zero to old_insns_match_p instead.
2831         (flow_find_head_matching_sequence): New function.
2832         (old_insns_match_p): Check REG_EH_REGION notes for calls.
2833         * basic-block.h (flow_find_cross_jump,
2834         flow_find_head_matching_sequence): Declare functions.
2835
2836 2010-04-14  Jason Merrill  <jason@redhat.com>
2837
2838         PR c++/36625
2839         * c-common.c (attribute_takes_identifier_p): New fn.
2840         * c-common.h: Declare it.
2841
2842 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2843
2844         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
2845         splitter condition.
2846         (*udivmod<mode>4): Ditto.
2847
2848 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2849
2850         * config/i386/i386.md (maxmin_int): Rename code attribute from
2851         maxminiprefix and update all users.
2852         (maxmin_float): Ditto from maxminfprefix.
2853         (logic): Ditto from logicprefix.
2854         (absneg_mnemonic): Ditto from absnegprefix.
2855         * config/i386/mmx.md: Update all users of maxminiprefix,
2856         maxminfprefix and logicprefix for rename.
2857         * config/i386/sse.md: Ditto.
2858         * config/i386/sync.md (sync_<code><mode>): Update for
2859         logicprefix rename.
2860
2861 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2862
2863         PR 42966
2864         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
2865         warnings converted to errors.
2866
2867 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2868
2869         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
2870         used insn_type variable.
2871         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
2872         to avoid set-but-not-used warning.
2873
2874 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2875
2876         * df-core.c (df_ref_debug): Change format string placeholder
2877         from 0x%x to %#x.
2878         * dwarf2asm.c (dw2_asm_output_data_raw,
2879         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
2880         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
2881         * dwarf2out.c (output_cfi, output_cfi_directive,
2882         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
2883         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
2884         Ditto.
2885         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
2886         * print-rtl.c (print_rtx): Ditto.
2887
2888 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
2889
2890         PR middle-end/42694
2891         * builtins.c (expand_builtin_pow_root): New function to expand pow
2892         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
2893         series of sqrt and cbrt calls under -ffast-math.
2894         (expand_builtin_pow): Call it.
2895
2896 2010-04-14  Michael Matz  <matz@suse.de>
2897
2898         PR tree-optimization/42963
2899         * tree-cfg.c (touched_switch_bbs): New static variable.
2900         (group_case_labels_stmt): New function broken out from ...
2901         (group_case_labels): ... here, use the above.
2902         (start_recording_case_labels): Allocate touched_switch_bbs.
2903         (end_recording_case_labels): Deallocate it, call
2904         group_case_labels_stmt.
2905         (gimple_redirect_edge_and_branch): Remember index of affected BB.
2906
2907 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2908
2909         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
2910         from insn template.
2911
2912 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2913
2914         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
2915
2916 2010-04-13  Jan Hubicka  <jh@suse.cz>
2917
2918         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
2919         of optimized out static functions.
2920         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
2921         cost computation.  Also sanity check for overflows.
2922         (update_caller_keys): Update cgraph_edge_badness call; properly
2923         update fibheap and sanity check that it is up to date.
2924         (add_new_edges_to_heap): Update cgraph_edge_badness.
2925         (cgraph_decide_inlining_of_small_function): Likewise;
2926         add sanity checking that badness in heap is up to date;
2927         improve dumping of reason; Update badness of calls to the
2928         offline copy of function currently inlined; dump badness
2929         of functions not inlined because of unit growth limits.
2930
2931 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
2932
2933         PR middle-end/32628
2934         * c-common.c (pointer_int_sum): Disregard overflow that occured only
2935         because of sign-extension change when converting to sizetype here...
2936         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
2937
2938         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
2939         the folding to constants.  Remove redundant final conversion.
2940         (fold_binary) <associate>: Do not associate if the re-association of
2941         constants alone overflows.
2942         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
2943         to the end of the list.
2944         (multiple_of_p) <COND_EXPR>: New case.
2945
2946 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2947
2948         * opt-functions.awk (opt_sanitized_name): New.
2949         (opt_enum): New.
2950         * optc-gen.awk: Use it
2951         * opth-gen.awk: Use it.
2952
2953 2010-04-13  Martin Jambor  <mjambor@suse.cz>
2954
2955         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
2956         (sra_modify_assign): Delete stmts loading dead data even if racc has no
2957         children.  Call replace_uses_with_default_def_ssa_name to handle
2958         SSA_NAES on lhs.
2959
2960 2010-04-13  Michael Matz  <matz@suse.de>
2961
2962         PR middle-end/43730
2963         * builtins.c (expand_builtin_interclass_mathfn): Also create
2964         a register if the predicate doesn't match.
2965
2966 2010-04-13  Diego Novillo  <dnovillo@google.com>
2967
2968         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
2969         * c-pch.c: Include timevar.h.
2970         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
2971         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
2972         * ggc-common.c: Include timevar.h.
2973         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
2974         * timevar.def (TV_PCH_SAVE): Define.
2975         (TV_PCH_CPP_SAVE): Define.
2976         (TV_PCH_PTR_REALLOC): Define.
2977         (TV_PCH_PTR_SORT): Define.
2978         (TV_PCH_RESTORE): Define.
2979         (TV_PCH_CPP_RESTORE): Define.
2980
2981 2010-04-13  Michael Matz  <matz@suse.de>
2982
2983         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
2984         into MINUS_EXPRs.
2985         (can_reassociate_p): New function.
2986         (break_up_subtract_bb, reassociate_bb): Use it.
2987
2988 2010-04-13  Richard Guenther  <rguenther@suse.de>
2989
2990         PR bootstrap/43737
2991         * builtins.c (c_readstr): Fix assert.
2992
2993 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
2994
2995         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
2996         when generating cltd insn.
2997
2998         (*ashl<mode>3_1): Remove special handling for register operand 2.
2999         (*ashlsi3_1_zext): Ditto.
3000         (*ashlhi3_1): Ditto.
3001         (*ashlhi3_1_lea): Ditto.
3002         (*ashlqi3_1): Ditto.
3003         (*ashlqi3_1_lea): Ditto.
3004         (*<shiftrt_insn><mode>3_1): Ditto.
3005         (*<shiftrt_insn>si3_1_zext): Ditto.
3006         (*<shiftrt_insn>qi3_1_slp): Ditto.
3007         (*<rotate_insn><mode>3_1): Ditto.
3008         (*<rotate_insn>si3_1_zext): Ditto.
3009         (*<rotate_insn>qi3_1_slp): Ditto.
3010
3011 2010-04-13  Richard Guenther  <rguenther@suse.de>
3012
3013         * tree-ssa-structalias.c (callused_id): Remove.
3014         (call_stmt_vars): New.
3015         (get_call_vi): Likewise.
3016         (lookup_call_use_vi): Likewise.
3017         (lookup_call_clobber_vi): Likewise.
3018         (get_call_use_vi): Likewise.
3019         (get_call_clobber_vi): Likewise.
3020         (make_transitive_closure_constraints): Likewise.
3021         (handle_const_call): Adjust to do per-call call-used handling.
3022         (handle_pure_call): Likewise.
3023         (find_what_var_points_to): Remove general callused handling.
3024         (init_base_vars): Likewise.
3025         (init_alias_vars): Initialize call_stmt_vars.
3026         (compute_points_to_sets): Process call-used and call-clobbered
3027         vars for call statements.
3028         (delete_points_to_sets): Free call_stmt_vars.
3029
3030 2010-04-13  Richard Guenther  <rguenther@suse.de>
3031
3032         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
3033         Only add RW dependence for dependence distance zero.
3034         Adjust maximal vectorization factor according to dependences.
3035         Move alignment handling ...
3036         (vect_find_same_alignment_drs): ... here.  New function.
3037         (vect_analyze_data_ref_dependences): Adjust.
3038         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
3039         (vect_analyze_data_refs): Adjust minimal vectorization factor
3040         according to data references.
3041         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
3042         dependences before determining the vectorization factor.
3043         Analyze alignment after determining the vectorization factor.
3044         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
3045         dependences before alignment.
3046         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
3047         Adjust prototype.
3048         (vect_analyze_data_refs): Likewise.
3049         (MAX_VECTORIZATION_FACTOR): New define.
3050
3051 2010-04-13  Duncan Sands  <baldrick@free.fr>
3052
3053         * except.h (lang_eh_type_covers): Remove.
3054         * except.c (lang_eh_type_covers): Likewise.
3055
3056 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3057             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3058
3059         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
3060         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
3061         UNITS_PER_LONG where it is ABI relevant.
3062         (s390_return_addr_rtx): Likewise.
3063         (s390_back_chain_rtx): Likewise.
3064         (s390_frame_area): Likewise.
3065         (s390_frame_info): Likewise.
3066         (s390_initial_elimination_offset): Likewise.
3067         (save_gprs): Likewise.
3068         (s390_emit_prologue): Likewise.
3069         (s390_emit_epilogue): Likewise.
3070         (s390_function_arg_advance): Likewise.
3071         (s390_function_arg): Likewise.
3072         (s390_va_start): Likewise.
3073         (s390_gimplify_va_arg): Likewise.
3074         (s390_function_profiler): Likewise.
3075         (s390_optimize_prologue): Likewise.
3076         (s390_rtx_costs): Likewise.
3077         (s390_secondary_reload): Likewise.
3078         (s390_promote_function_mode): Likewise.
3079         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
3080         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
3081         registers available.
3082         (s390_unwind_word_mode): New function.
3083         (s390_function_value): Split 64 bit values into register pair if
3084         used as return value.
3085         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
3086         function call parameters.  Handle parallels.
3087         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
3088         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
3089         (DWARF_CIE_DATA_ALIGNMENT): New macro.
3090         (s390_expand_setmem): Remove unused variable src_addr.
3091         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
3092         deal with 64 bit registers.
3093         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
3094         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
3095         (UNITS_PER_LONG): New macro.
3096         * libjava/include/s390-signal.h: Define extended ucontext
3097         structure containing the upper halfs of the 64 bit registers.
3098
3099 2010-04-13  Simon Baldwin  <simonb@google.com>
3100
3101         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
3102
3103 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
3104
3105         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
3106         rvalue on the RHS if the LHS is of a non-renamable type.
3107         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
3108
3109 2010-04-13  Matthias Klose  <doko@ubuntu.com>
3110
3111         * gcc.c (cc1_options): Handle -iplugindir before processing
3112         the cc1 spec. Only add -iplugindir once.
3113         (cpp_unique_options): Add -iplugindir option if -fplugin* options
3114         found.
3115         * common.opt (iplugindir): Remove `Separate' property, initialize.
3116         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
3117         option.
3118         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
3119         (distclean): Remove plugin dir.
3120         * doc/invoke.texi: Document -iplugindir.
3121
3122 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
3123
3124         * doc/plugins.texi (Loading Plugins): Document short
3125         -fplugin=foo option.
3126         (Plugin API): Mention default_plugin_dir_name function.
3127
3128         * gcc.c (find_file_spec_function): Add new declaration.
3129         (static_spec_func): Use it for "find-file".
3130         (find_file_spec_function): Add new function.
3131         (cc1_options): Add -iplugindir option if -fplugin* options found.
3132
3133         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
3134
3135         * plugin.c (add_new_plugin): Updated comment, and handle short
3136         plugin name.
3137         (default_plugin_dir_name): Added new function.
3138
3139         * common.opt (iplugindir): New option to set the plugin directory.
3140
3141 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
3142
3143         * config/i386/i386.md (any_rotate): New code iterator.
3144         (rotate_insn): New code attribute.
3145         (rotate): Ditto.
3146         (SWIM124): New mode iterator.
3147         (<rotate_insn>ti3): New expander.
3148         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
3149         any_rotate code iterator.
3150         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
3151         using any_rotate code iterator and SWIM124 mode iterator.
3152         (ix86_rotlti3): New insn_and_split pattern.
3153         (ix86_rotrti3): Ditto.
3154         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
3155         ix86_rotl{di,ti}3 patterns.
3156         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
3157         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
3158         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
3159         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
3160         code iterator and SWI mode iterator.
3161         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
3162         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
3163         code iterator.
3164         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
3165         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
3166         (bswap rotatert splitter): Add splitter.
3167         (bswap splitter): Macroize splitter using any_rotate code iterator.
3168         Add insn predicate to split only for TARGET_USE_XCHGB or when
3169         optimizing function for size.
3170
3171 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
3172
3173         * config/pa/pa.c (emit_move_sequence): Remove use of
3174         deleted variable flag_argument_noalias.
3175
3176 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3177
3178         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
3179         configurations.
3180         Add to unsupported targets list.
3181         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
3182         sparc*-sun-solaris2.[567]* from target lists.
3183         * configure: Regenerate.
3184         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
3185         removal.
3186         Remove Solaris 7 patch references.
3187         (Specific, sparc-sun-solaris2.7): Removed.
3188         (sparc-sun-solaris2*): Update Solaris 7 example.
3189         (sparc64-*-solaris2*): Likewise.
3190
3191 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3192
3193         * config.build (alpha*-dec-osf4*): Remove.
3194         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
3195         of obsolete configurations.
3196         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
3197         support.
3198         * config/alpha/t-osf4: Renamed to ...
3199         * config/alpha/t-osf5: ... this.
3200         * config/alpha/osf.h: Renamed to ...
3201         * config/alpha/osf5.h: ... this.
3202         Merged old osf5.h contents.
3203         Update comments.
3204         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
3205         (EXTRA_SPECS): Removed.
3206         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
3207         reflect removal of Tru64 UNIX V4.0/V5.0 support.
3208         Document that.
3209
3210 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3211
3212         * doc/contrib.texi (Contributors, Rainer Orth): Update.
3213
3214 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
3215
3216         PR/43702
3217         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
3218         __thiscall convention.
3219
3220 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
3221
3222         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
3223         orig_base.
3224         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
3225
3226 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
3227
3228         * function.c (assign_parms_initialize_all): Add unused attribute
3229         to fntype.
3230
3231 2010-04-12  Richard Guenther  <rguenther@suse.de>
3232
3233         * gsstruct.def (GSS_CALL): New.
3234         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
3235         * gimple.h: Include tree-ssa-alias.h.
3236         (struct gimple_statement_call): New.
3237         (union gimple_statement_struct_d): Add gimple_call member.
3238         (gimple_call_reset_alias_info): Declare.
3239         (gimple_call_use_set): New function.
3240         (gimple_call_clobber_set): Likewise.
3241         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
3242         * gimple.c (gimple_call_reset_alias_info): New function.
3243         (gimple_build_call_1): Call it.
3244         * lto-streamer-in.c (input_gimple_stmt): Likewise.
3245         * tree-inline.c (remap_gimple_stmt): Likewise.
3246         (expand_call_inline): Remove callused handling.
3247         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
3248         * tree-dfa.c (dump_variable): Likewise.
3249         * tree-parloops.c (parallelize_loops): Likewise.
3250         * tree-ssa.c (init_tree_ssa): Likewise.
3251         (delete_tree_ssa): Likewise.
3252         * tree-flow-inline.h (is_call_used): Remove.
3253         * tree-flow.h (struct gimple_df): Remove callused member.
3254         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
3255         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
3256         (ref_maybe_used_by_call_p_1): Simplify.
3257         (call_may_clobber_ref_p_1): Likewise.
3258         * tree-ssa-structalias.c (compute_points_to_sets): Set
3259         the call stmt used and clobbered sets.
3260         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
3261         (find_tail_calls): Verify the tail call.
3262
3263 2010-04-12  Richard Guenther  <rguenther@suse.de>
3264
3265         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
3266         single-iteration always-inline inlining.
3267         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
3268         (cgraph_decide_inlining): Do not handle always-inline specially.
3269         (try_inline): Remove always-inline cycle detection special case.
3270         Do not recurse on always-inlines.
3271         (cgraph_early_inlining): Do not iterate if not optimizing.
3272         (cgraph_gate_early_inlining): remove.
3273         (pass_early_inline): Run unconditionally.
3274         (gate_cgraph_decide_inlining): New function.
3275         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
3276         not inlining or optimizing.
3277         (cgraph_decide_inlining_of_small_functions): Also consider
3278         always-inline functions.
3279         (cgraph_default_inline_p): Return true for nodes which should
3280         disregard inline limits.
3281         (estimate_function_body_sizes): Assume zero size and time for
3282         nodes which are marked as disregarding inline limits.
3283         (cgraph_decide_recursive_inlining): Do not perform recursive
3284         inlining on always-inline nodes.
3285
3286 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
3287
3288         PR bootstrap/43699
3289         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
3290         for exprs satisfying handled_component_p.
3291
3292 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
3293
3294         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
3295         non-constant aggregate elements.
3296
3297         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
3298         is a real initialization.
3299
3300 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
3301
3302         PR c/36774
3303         * c-decl.c (start_function): Move forward check for nested function.
3304
3305 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
3306
3307         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
3308         * config/sh/sh.c: Include reload.h.
3309         (sh_legitimize_reload_address): New.
3310         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
3311         sh_legitimize_reload_address.
3312
3313 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
3314
3315         * config/sh/sh.md (*movqi_pop): New insn pattern.
3316         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
3317
3318 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
3319
3320         * config/i386/i386.md (any_shiftrt): New code iterator.
3321         (shiftrt_insn): New code attribute.
3322         (shiftrt): Ditto.
3323         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
3324         using any_shiftrt code iterator.
3325         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
3326         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
3327         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
3328         pattern from corresponding peephole2 patterns.
3329         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
3330         using any_shiftrt code iterator.
3331         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
3332         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
3333         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
3334         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
3335         *{ashr,lshr}<mode>3_cmp_zext.
3336         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
3337
3338 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
3339
3340         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
3341         scratch register.
3342         (*lshr<mode>3_cconly): Ditto.
3343
3344 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
3345
3346         * config/i386/i386.md (lshr<mode>3): Macroize expander from
3347         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
3348         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
3349         pattern from *lshr{di,ti}3_1 and corresponding splitters using
3350         DWI mode iterator.
3351         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
3352         from corresponding peephole2 patterns.
3353         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
3354         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
3355         and *lshrdi3_1_rex64 using SWI mode iterator.
3356         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
3357         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
3358         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
3359         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
3360         and *lshrdi3_cmp_rex64 using SWI mode iterator.
3361         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
3362         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
3363         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
3364         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
3365         SWI mode iterator.
3366
3367 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
3368
3369         * config/i386/i386.md (ashr<mode>3): Macroize expander from
3370         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
3371         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
3372         pattern from *ashr{di,ti}3_1 and corresponding splitters using
3373         DWI mode iterator.
3374         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
3375         from corresponding peephole2 patterns.
3376         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
3377         (ashrsi3_cvt): Rename from ashrsi3_31.
3378         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
3379         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
3380         and x86_64_shift_adj_3 using SWI48 mode iterator.
3381         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
3382         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
3383         and *ashrdi3_1_rex64 using SWI mode iterator.
3384         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
3385         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
3386         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
3387         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
3388         and *ashrdi3_cmp_rex64 using SWI mode iterator.
3389         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
3390         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
3391         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
3392         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
3393         SWI mode iterator.
3394         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
3395         * config/i386/i386.c (ix86_split_ashr): Update for renamed
3396         x86_shift<mode>_adj_3 expanders.
3397
3398 2010-04-10  Wei Guozhi  <carrot@google.com>
3399
3400         PR target/42601
3401         * config/arm/arm.c (arm_pic_static_addr): New function.
3402         (legitimize_pic_address): Call arm_pic_static_addr when it detects
3403         a static symbol.
3404         (arm_output_addr_const_extra): Output expression for new pattern.
3405         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
3406
3407 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
3408
3409         * ira-costs.c (record_reg_classes): Ignore alternatives that are
3410         not enabled.
3411
3412         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
3413         * web.c: Include "insn-config.h" and "recog.h".
3414         (union_match_dups): New function.
3415         (web_main): Call it.
3416         (union_defs): Don't try to recognize match_dups.
3417
3418         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
3419         if doing so would replace the entire pattern.
3420
3421 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
3422
3423         PR target/43707
3424         PR target/43709
3425         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
3426         and splitter pattern.  Change splitter operand 1 predicate to
3427         nonmemory_operand.
3428
3429 2010-04-09  Martin Jambor  <mjambor@suse.cz>
3430
3431         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
3432         lattices are addresses of CONST_DECLs with the same initial value.
3433         (ipcp_print_all_lattices): Print values of CONST_DECLs.
3434         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
3435
3436 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
3437             Bernd Schmidt  <bernds@codesourcery.com>
3438
3439         * loop-invariant.c (replace_uses): New static function.
3440         (move_invariant_reg): Use it to ensure we can replace the uses.
3441
3442 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
3443
3444         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
3445         function template.
3446         (picochip_override_options): Enable section anchors only above -O1.
3447         (picochip_reorg): Fixed a couple of build warnings.
3448
3449 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3450
3451         * configure.ac (plugin -rdynamic test): Log result.
3452         * configure: Regenerate.
3453         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
3454         (RDYNAMIC_SPEC): Define.
3455         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
3456
3457 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3458
3459         * configure.ac: Determine Sun ld version numbers.
3460         (comdat_group): Restrict GNU ld version checks to gld.
3461         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
3462         (enable_comdat): Support --enable-comdat.
3463         * configure: Regenerate.
3464         * doc/install.texi (Configuration): Document --enable-comdat.
3465
3466 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3467
3468         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
3469         * config/sol2-gld.h: ... here.
3470         * config.gcc (sparc*-*-solaris2*): Reflect this.
3471         (i[34567]86-*-solaris2*): Use it.
3472
3473 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
3474
3475         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
3476         setup_clocks_p.
3477         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
3478
3479 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3480
3481         PR 42965
3482         * diagnostic.c (diagnostic_initialize): Initialize
3483         some_warnings_are_errors.
3484         (diagnostic_finish): New.
3485         (diagnostic_action_after_output): Call it before exiting.
3486         (diagnostic_report_diagnostic): Do not print message here. Set
3487         some_warnings_are_errors.
3488         * diagnostic.h (diagnostic_context): Delete
3489         issue_warnings_are_errors_message. Add some_warnings_are_errors.
3490         (diagnostic_finish): Declare.
3491         * toplev.c (toplev_main): Call it before exit.
3492
3493 2010-04-09  Jason Merrill  <jason@redhat.com>
3494
3495         PR c++/42623
3496         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
3497         for incomplete type.
3498
3499         PR c++/41788
3500         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
3501         based on a warning flag.
3502
3503 2010-04-09  Richard Guenther  <rguenther@suse.de>
3504
3505         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
3506
3507 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
3508
3509         PR bootstrap/43684
3510         * varasm.c (default_assemble_visibility): Wrap vars that are
3511         set, but unused, by targets without GAS.
3512         * config/rs6000/rs6000.c: (paired_emit_vector_compare):
3513         Remove set, but unused, vars.
3514         (rs6000_legitimize_tls_address): Likewise.
3515         (altivec_expand_dst_builtin): Likewise.
3516         * config/darwin.c (machopic_classify_symbol): Likewise.
3517         (machopic_indirection_name): Likewise.
3518
3519 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
3520
3521         * config/i386/i386.md (DWI): New mode iterator.
3522         (S): New mode attribute.
3523         (shift_operand): Ditto.
3524         (shift_immediate_operand): Ditto.
3525         (ashl_input_operand): Ditto.
3526         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
3527         using SDWIM mode iterator.
3528         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
3529         pattern from *ashl{di,ti}3_1 and corresponding splitters using
3530         DWI mode iterator.
3531         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
3532         from corresponding peephole2 patterns.
3533         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
3534         and x86_64_shift_adj_1 using SWI48 mode iterator.
3535         (x86_shift<mode>_adj_2): Ditto.
3536         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
3537         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
3538         using SWI48 mode iterator.
3539         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
3540         *ashldi3_cmp_rex64 using SWI mode iterator.
3541         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
3542         *ashldi3_cconly_rex64 using SWI mode iterator.
3543         * config/i386/i386.c (ix86_split_ashl): Update for renamed
3544         x86_shift<mode>_adj_{1,2}.
3545         (ix86_split_ashr): Ditto.
3546         (ix86_split_lshr): Ditto.
3547
3548 2010-04-09  Richard Guenther  <rguenther@suse.de>
3549
3550         * target.h (builtin_conversion): Pass in input and output types.
3551         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
3552         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
3553         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
3554         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
3555
3556         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
3557         Handle AVX modes.
3558         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
3559
3560 2010-04-09  Richard Guenther  <rguenther@suse.de>
3561
3562         PR target/43152
3563         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
3564
3565 2010-04-09  Richard Guenther  <rguenther@suse.de>
3566
3567         * tree-vectorizer.h (struct _stmt_vec_info): Document
3568         that vectype is the type of the LHS.
3569         (supportable_widening_operation, supportable_narrowing_operation):
3570         Get both input and output vector types as arguments.
3571         (vect_is_simple_use_1): Declare.
3572         (get_same_sized_vectype): Likewise.
3573         * tree-vect-loop.c (vect_determine_vectorization_factor):
3574         Set STMT_VINFO_VECTYPE to the vector type of the def.
3575         (vectorizable_reduction): Adjust.
3576         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
3577         Adjust.  Specify the output vector type.
3578         (vect_pattern_recog_1): Adjust.
3579         * tree-vect-stmts.c (get_same_sized_vectype): New function.
3580         (vectorizable_call): Adjust.
3581         (vectorizable_conversion): Likewise.
3582         (vectorizable_operation): Likewise.
3583         (vectorizable_type_demotion): Likewise.
3584         (vectorizable_type_promotion): Likewise.
3585         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
3586         the def.
3587         (vect_is_simple_use_1): New function.
3588         (supportable_widening_operation): Get both input and output
3589         vector types.
3590         (supportable_narrowing_operation): Likewise.
3591         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
3592
3593 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
3594
3595         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
3596         __thiscall and _thiscall as predefined macros.
3597         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
3598         thiscall attribute handling.
3599         (ix86_comp_type_attributes): Likewise.
3600         (ix86_function_regparm): Likewise.
3601         (ix86_return_pops_args): Likewise.
3602         (init_cumulative_args): Likewise.
3603         (find_drap_reg): Likewise.
3604         (ix86_static_chain): Likewise.
3605         (x86_this_parameter): Likewise.
3606         (x86_output_mi_thunk): Likewise.
3607         (ix86_attribute_table): Add description for thiscall attribute.
3608         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
3609         * doc/extend.texi: Add documentation for thiscall.
3610
3611 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3612
3613         PR c++/28584
3614         * c.opt (Wint-to-pointer-cast): Available in C++.
3615         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
3616
3617 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
3618
3619         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
3620         * calls.c (expand_call): Pass the function type to aggregate_value_p.
3621         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
3622         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
3623         function type instead.  Reorder and simplify checks.
3624
3625         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
3626
3627 2010-04-08  Jing Yu  <jingyu@google.com>
3628             Zdenek Dvorak  <ook@ucw.cz>
3629
3630         PR tree-optimization/42720
3631         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
3632         loop unswitch conditions here from ...
3633         (tree_unswitch_single_loop): ... here.
3634
3635 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
3636
3637         * tree-if-conv.c: Fix comments and simplify logic.
3638
3639 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
3640
3641         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
3642         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
3643         (main_tree_if_conversion): Update call to tree_if_conversion.
3644
3645 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3646
3647         PR 42485
3648         * doc/invoke.texi (-b,-V): Delete.
3649         * doc/tm.texi: Do not mention -b.
3650         * gcc.c (display_help): Delete -b and -V.
3651         (process_command): Delete -b and -V.
3652         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
3653
3654 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
3655             Wolfgang Gellerich  <gellerich@de.ibm.com>
3656
3657         Implement target hook for loop unrolling
3658         * target.h (loop_unroll_adjust): Add a new target hook function.
3659         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
3660         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
3661         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
3662         (s390_loop_unroll_adjust): Implement the new target hook for s390.
3663         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
3664         target hook.
3665         (decide_unroll_stupid): Likewise.
3666
3667 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3668
3669         PR target/43643
3670         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
3671
3672 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3673
3674         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
3675         (Specific, *-*-solaris2*): Likewise.
3676         Don't prefer Sun as over GNU as.
3677
3678 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
3679
3680         * config/s390/s390.c (override_options): Adjust the z10
3681           defaults for max-unroll-times, max-completely-peeled-insns
3682           and max-completely-peel-times.
3683
3684 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3685
3686         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
3687         instructions for z10.
3688         (s390_expand_setmem): Likewise.
3689         (s390_expand_cmpmem): Likewise.
3690
3691 2010-04-08  Richard Guenther  <rguenther@suse.de>
3692
3693         PR tree-optimization/43679
3694         * tree-ssa-pre.c (eliminate): Only propagate copies.
3695
3696 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
3697
3698         PR bootstrap/43681
3699         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
3700         set but not used variable warning.
3701
3702 2010-04-08  Wei Guozhi  <carrot@google.com>
3703
3704         PR target/41653
3705         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
3706         (arm_size_rtx_costs): Call the new function when optimized for size.
3707
3708 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
3709
3710         PR debug/43670
3711         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
3712         op0 is not a MEM, just return NULL instead of assertion
3713         failure.
3714         (discover_nonconstant_array_refs): Don't walk debug stmts.
3715
3716 2010-04-08  Doug Kwan  <dougkwan@google.com>
3717
3718         * configure.ac: Recognize gold and do not use its version number
3719         to test ld features.
3720         * configure: Regenerate.
3721
3722 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
3723
3724         PR middle-end/40815
3725         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
3726         (negate_value): Move code to push elements to broken_up_substracts ...
3727         (eliminate_plus_minus_pair): ... here.  Push operands that have no
3728         negative pair to plus_negates.
3729         (repropagate_negates, init_reassoc, fini_reassoc): Update.
3730
3731 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3732
3733         * doc/install.texi (Configuration): Move description of
3734         --enable-lto, --with-libelf*, --enable-gold from Java section to
3735         general section.
3736
3737         * doc/generic.texi (Working with declarations)
3738         (Function Properties, C and C++ Trees): Fix typos.
3739         * doc/sourcebuild.texi (Top Level): Likewise.
3740
3741 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
3742
3743         PR c/18624
3744         * tree.h (DECL_READ_P): Define.
3745         (struct tree_decl_common): Add decl_read_flag.
3746         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
3747         a set but not used warning.
3748         (merge_decls): Merge DECL_READ_P flag.
3749         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
3750         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
3751         * c-common.c (handle_used_attribute, handle_unused_attribute):
3752         Likewise.
3753         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
3754         New prototypes.
3755         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
3756         New functions.
3757         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
3758         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
3759         c_parser_binary_expression, c_parser_cast_expression,
3760         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
3761         Call default_function_array_read_conversion instead of
3762         default_function_array_conversion where needed.
3763         (c_parser_unary_expression, c_parser_conditional_expression,
3764         c_parser_postfix_expression_after_primary, c_parser_initelt):
3765         Likewise.  Call mark_exp_read where needed.
3766         (c_parser_statement_after_labels, c_parser_asm_operands,
3767         c_parser_typeof_specifier, c_parser_sizeof_expression,
3768         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
3769         where needed.
3770         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
3771         New.
3772         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
3773         (warn_unused_but_set_parameter): Default to warn_unused
3774         && extra_warnings.
3775         * doc/invoke.texi: Document -Wunused-but-set-variable and
3776         -Wunused-but-set-parameter.
3777
3778         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
3779         used count variable.
3780         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
3781         when operandN variables aren't used in the body of the expander
3782         or splitter.
3783         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
3784         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
3785         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
3786         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
3787         FOR_EACH_IMM_USE_ON_STMT): Likewise.
3788         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
3789         * tree.c (PROCESS_ARG): Likewise.
3790
3791 2010-04-07  Simon Baldwin  <simonb@google.com>
3792
3793         * diagnostic.h (diagnostic_override_option_index): New macro to
3794         set a diagnostic's option_index.
3795         * c-tree.h (c_cpp_error): Add warning reason argument.
3796         * opts.c (_warning_as_error_callback): New.
3797         (register_warning_as_error_callback): Store callback for
3798         warnings enabled via enable_warning_as_error.
3799         (enable_warning_as_error): Call callback, minor code tidy.
3800         * opts.h (register_warning_as_error_callback): Declare.
3801         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
3802         response to -Werror=.
3803         (c_common_init_options): Register warning_as_error_callback in opts.c.
3804         * common.opt: Add -Wno-cpp option.
3805         * c-common.c (struct reason_option_codes_t): Map cpp warning
3806         reason codes to gcc option indexes.
3807         * (c_option_controlling_cpp_error): New function, lookup the gcc
3808         option index for a cpp warning reason code.
3809         * (c_cpp_error): Add warning reason argument, call
3810         c_option_controlling_cpp_error for diagnostic_override_option_index.
3811         * doc/invoke.texi: Document -Wno-cpp.
3812
3813 2010-04-07  Richard Guenther  <rguenther@suse.de>
3814
3815         * ipa-reference.c (mark_load): Use get_base_address.
3816         (mark_store): Likewise.
3817
3818         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
3819         inserting GIMPLE_NOPs into the IL.
3820         * tree-ssa-structalias.c (get_constraint_for_component_ref):
3821         Explicitly strip handled components and indirect references.
3822
3823         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
3824         folding address expressions.
3825         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
3826         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
3827         operand_equal_p to compare decls.
3828         (ptr_deref_may_alias_decl_p): Likewise.
3829         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
3830         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
3831         Handle reversed comparison ops.
3832         * tree-sra.c (asm_visit_addr): Use get_base_address.
3833         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
3834         * ipa-reference.c (mark_address): Use get_base_address.
3835
3836 2010-04-07  Richard Guenther  <rguenther@suse.de>
3837
3838         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
3839         Propagate constants everywhere.
3840
3841 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
3842
3843         PR debug/43516
3844         * tree.c (MAX_INT_CACHED_PREC): Define.
3845         (nonstandard_integer_type_cache): New array.
3846         (build_nonstandard_integer_type): Cache results for precision
3847         <= MAX_INT_CACHED_PREC.
3848
3849 2010-04-07  Richard Guenther  <rguenther@suse.de>
3850
3851         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
3852         -fargument-noalias-global, -fargument-noalias-anything): Remove.
3853         * common.opt: Likewise.
3854         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
3855         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
3856         (nonoverlapping_memrefs_p): Likewise.
3857         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
3858         * opts.c (common_handle_option): Handle OPT_fargument_alias,
3859         OPT_fargument_noalias, OPT_fargument_noalias_anything and
3860         OPT_fargument_noalias_global for backward compatibility.
3861
3862 2010-04-07  Richard Guenther  <rguenther@suse.de>
3863
3864         PR tree-optimization/43270
3865         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
3866         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
3867         * tree-ssa-pre.c (phi_translate_1): Adjust.
3868         (fully_constant_expression): Split out vn_reference handling to ...
3869         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
3870         Fold reads from constant strings.
3871         (vn_reference_lookup): Handle fully constant references.
3872         (vn_reference_lookup_pieces): Likewise.
3873         * Makefile.in (expmed.o-warn): Add -Wno-error.
3874
3875 2010-04-07  Martin Jambor  <mjambor@suse.cz>
3876
3877         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
3878
3879 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
3880
3881         PR driver/41594
3882         * gcc.c: Add -static-libstdc++ to list of recognized options.
3883
3884 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3885
3886         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
3887
3888 2010-04-07  Richard Guenther  <rguenther@suse.de>
3889
3890         PR middle-end/42617
3891         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
3892         bases build simple mem attributes to retain points-to information.
3893
3894 2010-04-07  Richard Guenther  <rguenther@suse.de>
3895
3896         PR middle-end/42617
3897         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
3898         preserve points-to related information.
3899
3900 2010-04-07  Richard Guenther  <rguenther@suse.de>
3901
3902         PR middle-end/42617
3903         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
3904         discard plain indirect references.
3905         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
3906         * tree.c (tree_nop_conversion): Likewise.
3907
3908 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
3909
3910         PR debug/43628
3911         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
3912
3913 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
3914
3915         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
3916         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
3917
3918 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3919
3920         * tree-if-conv.c: Fix indentation and comments.
3921
3922 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3923
3924         * tree-if-conv.c: Sort static functions in topological order.
3925
3926 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3927
3928         * tree-if-conv.c: Fix indentation and comments.
3929
3930 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3931
3932         PR middle-end/43519
3933         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
3934         lang_hooks.types.type_for_size instead of
3935         build_nonstandard_integer_type.
3936         When converting an unsigned type to signed, double its precision.
3937         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
3938         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
3939         (graphite_create_new_loop_guard): When ub + 1 wraps around,
3940         use lb <= ub.
3941
3942 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3943
3944         PR middle-end/43519
3945         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
3946         POINTER_PLUS_EXPR for pointer types.
3947
3948 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3949
3950         PR middle-end/43519
3951         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
3952         * graphite-clast-to-gimple.c: Include langhooks.h.
3953         (max_signed_precision_type): New.
3954         (max_precision_type): Takes two types as arguments.
3955         (precision_for_value): New.
3956         (precision_for_interval): New.
3957         (gcc_type_for_interval): New.
3958         (gcc_type_for_value): New.
3959         (gcc_type_for_clast_term): New.
3960         (gcc_type_for_clast_red): New.
3961         (gcc_type_for_clast_bin): New.
3962         (gcc_type_for_clast_expr): Split up into several functions.
3963         (gcc_type_for_clast_eq): Rewritten.
3964         (compute_bounds_for_level): New.
3965         (compute_type_for_level_1): New.
3966         (compute_type_for_level): New.
3967         (gcc_type_for_cloog_iv): Removed.
3968         (gcc_type_for_iv_of_clast_loop): Rewritten.
3969         (graphite_create_new_loop): Compute the lower and upper bound types
3970         with gcc_type_for_clast_expr.
3971         (graphite_create_new_loop_guard): Same.
3972         (find_cloog_iv_in_expr): Removed.
3973         (compute_cloog_iv_types_1): Removed.
3974         (compute_cloog_iv_types): Removed.
3975         (gloog): Do not call compute_cloog_iv_types.
3976         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
3977         GBB_CLOOG_IV_TYPES.
3978         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
3979         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
3980         (GBB_CLOOG_IV_TYPES): Removed.
3981
3982 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3983
3984         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
3985         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
3986         (detect_commutative_reduction): Same.
3987
3988 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3989
3990         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
3991         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
3992         argument.
3993         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
3994         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
3995         (rewrite_commutative_reductions_out_of_ssa): Same.
3996         * passes.c (execute_function_todo): Call verify_ssa for every pass
3997         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
3998         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
3999         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
4000         with an extra argument.
4001         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
4002         verify_ssa only when the extra argument is true.
4003         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
4004         with an extra argument.
4005         (tree_transform_and_unroll_loop): Same.
4006
4007 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
4008
4009         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
4010         for all the passes of the LNO having LOOP_CLOSED_SSA.
4011         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
4012         * tree-loop-distribution.c (pass_loop_distribution): Same.
4013         * tree-pass.h (TODO_verify_loops): Removed.
4014         * tree-ssa-loop.c (pass_tree_loop_init): Same.
4015         (pass_lim): Same.
4016         (pass_tree_unswitch): Same.
4017         (pass_predcom): Same.
4018         (pass_vectorize): Same.
4019         (pass_linear_transform): Same.
4020         (pass_graphite_transforms): Same.
4021         (pass_iv_canon): Same.
4022         (pass_complete_unroll): Same.
4023         (pass_complete_unrolli): Same.
4024         (pass_parallelize_loops): Same.
4025         (pass_loop_prefetch): Same.
4026         (pass_iv_optimize): Same.
4027
4028 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
4029
4030         PR middle-end/32824
4031         * passes.c (init_optimization_passes): Move pass_lim before
4032         pass_copy_prop and pass_dce_loop.
4033
4034 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
4035
4036         PR target/43667
4037         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
4038         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
4039         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
4040         MULTI_* defines for 4 argument vpermil2p* builtins.
4041
4042 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
4043
4044         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
4045         * config/i386/i386.c (x86_maybe_negate_const_int): New.
4046         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
4047         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
4048         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
4049         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
4050         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
4051         Use x86_maybe_negate_const_int to output insn mnemonic.
4052         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
4053         check from instruction predicate.  Update comments.
4054         * config/i386/sync.md (sync_add<mode>): Use
4055         x86_maybe_negate_const_int to output insn mnemonic.
4056
4057 2010-04-06  Jan Hubicka  <jh@suse.cz>
4058
4059         PR tree-optimization/42906
4060         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
4061         IGNORE_SELF argument.  Set visited_control_parents for fully
4062         processed BBs.
4063         (find_obviously_necessary_stmts): Update call of
4064         mark_control_dependent_edges_necessary.
4065         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
4066
4067 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
4068
4069         * config/i386/i386.md: Remove comment about 'e' and 'E'
4070         operand modifier.
4071
4072 2010-04-06  Richard Guenther  <rguenther@suse.de>
4073
4074         PR tree-optimization/43627
4075         * tree-vrp.c (extract_range_from_unary_expr): Widenings
4076         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
4077         not varying.
4078
4079 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
4080
4081         * BASE-VER: Change to 4.6.0.
4082
4083         PR target/43638
4084         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
4085         handling.
4086
4087 2010-04-06  Richard Guenther  <rguenther@suse.de>
4088
4089         PR middle-end/43661
4090         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
4091
4092 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4093
4094         * doc/invoke.texi (Optimize Options): Document that LTO
4095         won't remove object access purely due to incompatible
4096         declarations.
4097
4098 2010-04-04  Matthias Klose  <doko@ubuntu.com>
4099
4100         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
4101         Initialize variable.
4102
4103 2010-04-03  Richard Guenther  <rguenther@suse.de>
4104
4105         PR middle-end/42509
4106         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
4107         require a non-NULL MEM_OFFSET.
4108
4109 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
4110
4111         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
4112         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
4113         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
4114         config/alpha/predicates.md, config/arm/arm.md,
4115         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
4116         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
4117         config/darwin9.h, config/darwin.c, config/darwin.h,
4118         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
4119         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
4120         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
4121         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
4122         config/mips/mips.md, config/mn10300/mn10300.c,
4123         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
4124         config/rs6000/aix.h, config/rs6000/dfp.md,
4125         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
4126         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
4127         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
4128         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
4129         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
4130         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
4131         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
4132         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
4133         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
4134         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
4135         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
4136         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
4137         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
4138         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
4139         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
4140         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
4141         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
4142         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
4143         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
4144         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
4145         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
4146         opt-functions.awk, opth-gen.awk, params.def, passes.c,
4147         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
4148         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
4149         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
4150         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
4151         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
4152         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
4153         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
4154         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
4155         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
4156         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
4157         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
4158         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
4159         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
4160         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
4161
4162 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4163
4164         PR other/43620
4165         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
4166         * aclocal.m4: Regenerate.
4167
4168 2010-04-02  Richard Guenther  <rguenther@suse.de>
4169
4170         PR tree-optimization/43629
4171         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
4172         if we have seen a constant value.
4173
4174 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
4175
4176         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
4177
4178 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
4179
4180         PR target/43469
4181         * arm.c (legitimize_tls_address): Adjust call to
4182         gen_tls_load_dot_plus_four.
4183         (arm_note_pic_base): New function.
4184         (arm_cannot_copy_insn_p): Use it.
4185         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
4186         constraint.
4187
4188 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4189
4190         PR bootstrap/43531
4191
4192         Revert:
4193         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4194
4195         * Makefile.in ($(out_object_file)): Depend on
4196         gt-$(basename $(notdir $(out_file))).h.
4197
4198 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
4199
4200         * config.gcc (lm32-*-rtems*): Add t-lm32.
4201
4202 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
4203
4204         * config.gcc: Add lm32-*-rtems*.
4205         * config/lm32/rtems.h: New file.
4206
4207 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
4208
4209         PR target/42609
4210         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
4211
4212 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
4213
4214         * dwarf2out.c (output_compilation_unit_header): For
4215         -gdwarf-4 use version 4 instead of version 3.
4216         (output_line_info): For version 4 and above emit additional
4217         maximum ops per insn header field.
4218         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
4219
4220         * dwarf2out.c (is_c_family, is_java): Remove.
4221         (lower_bound_default): New function.
4222         (add_bound_info, gen_descr_array_type_die): Use it.
4223
4224 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
4225
4226         PR debug/43325
4227         * dwarf2out.c (gen_variable_die): Allow debug info for variable
4228         re-declaration when it happens in a function.
4229
4230 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
4231
4232         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
4233         (cgraph_remove_function_insertion_hook): Same.
4234         (cgraph_call_function_insertion_hooks): Same.
4235
4236 2010-04-01  Richard Guenther  <rguenther@suse.de>
4237
4238         PR middle-end/43614
4239         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
4240         and TREE_THIS_VOLATILE.
4241         (copy_ref_info): Likewise.
4242         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
4243         * tree.c (build6_stat): Ignore side-effects of all but arg5
4244         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
4245         TARGET_MEM_REF.
4246
4247 2010-04-01  Richard Guenther  <rguenther@suse.de>
4248
4249         PR tree-optimization/43607
4250         * ipa-type-escape.c (check_call): Do not access non-existing
4251         arguments.
4252
4253 2010-04-01  Richard Guenther  <rguenther@suse.de>
4254
4255         PR middle-end/43602
4256         Revert
4257         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
4258                     Jack Howarth <howarth@bromo.med.uc.edu>
4259
4260         * tree-profile.c (tree_init_ic_make_global_vars): Make static
4261         variables TLS.
4262
4263 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4264
4265         * doc/install.texi (Prerequisites): Document libelf usability on
4266         IRIX 5/6 and Solaris 2.
4267         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
4268         Update GNU as, GNU ld requirements.
4269         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
4270         Document Sun Studio compiler download.
4271         Update and simplify as, ld recommendations.
4272         (Specific, *-*-solaris2.7): Note obsoletion, removal.
4273
4274 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4275
4276         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
4277         with_tune_32 to pentium4.
4278
4279 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
4280
4281         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
4282
4283 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4284
4285         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
4286         obsoletion, removal.
4287         Update IDO URL.
4288         Document GNU as requirement.
4289         Update configure requirements.
4290         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
4291         Recomment IRIX 6.5.18+.
4292         Document IDF/IDL requirement.
4293         Document GNU as requirement.
4294         Document GNU ld bootstrap failure.
4295         Remove freeware.sgi.com reference.
4296
4297 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4298
4299         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
4300         UNIX V4.0, V5.0 obsoletion, removal.
4301         Remove --with-gc=simple reference.
4302         Update VM requirements during bootstrap.
4303         Remove -oldas bootstrap description.
4304         Update binutils reference.
4305         Remove comparison failure note.
4306
4307 2010-03-31  Richard Guenther  <rguenther@suse.de>
4308             Zdenek Dvorak  <ook@ucw.cz>
4309             Sebastian Pop  <sebastian.pop@amd.com>
4310
4311         PR middle-end/43464
4312         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
4313         with multiple arguments.
4314         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
4315
4316 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
4317
4318         * graphite-dependences.c (print_pddr): Call print_pdr with an
4319         extra argument.
4320         * graphite-poly.c (debug_pdr): Add an extra argument for the
4321         verbosity level.
4322         (print_pdr): Same.
4323         (print_pbb_domain): Same.
4324         (print_pbb): Same.
4325         (print_scop_context): Same.
4326         (print_scop): Same.
4327         (print_cloog): Same.
4328         (debug_pbb_domain): Same.
4329         (debug_pbb): Same.
4330         (print_pdrs): Same.
4331         (debug_pdrs): Same.
4332         (debug_scop_context): Same.
4333         (debug_scop): Same.
4334         (debug_cloog): Same.
4335         (print_scop_params): Same.
4336         (debug_scop_params): Same.
4337         (print_iteration_domain): Same.
4338         (print_iteration_domains): Same.
4339         (debug_iteration_domain): Same.
4340         (debug_iteration_domains): Same.
4341         (print_scattering_function): Same.
4342         (print_scattering_functions): Same.
4343         (debug_scattering_function): Same.
4344         (debug_scattering_functions): Same.
4345         * graphite-poly.h (debug_pdr): Update declaration.
4346         (print_pdr): Same.
4347         (print_pbb_domain): Same.
4348         (print_pbb): Same.
4349         (print_scop_context): Same.
4350         (print_scop): Same.
4351         (print_cloog): Same.
4352         (debug_pbb_domain): Same.
4353         (debug_pbb): Same.
4354         (print_pdrs): Same.
4355         (debug_pdrs): Same.
4356         (debug_scop_context): Same.
4357         (debug_scop): Same.
4358         (debug_cloog): Same.
4359         (print_scop_params): Same.
4360         (debug_scop_params): Same.
4361         (print_iteration_domain): Same.
4362         (print_iteration_domains): Same.
4363         (debug_iteration_domain): Same.
4364         (debug_iteration_domains): Same.
4365         (print_scattering_function): Same.
4366         (print_scattering_functions): Same.
4367         (debug_scattering_function): Same.
4368         (debug_scattering_functions): Same.
4369
4370 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
4371
4372         * graphite-poly.c (print_scattering_function_1): New.
4373         (print_scattering_function): Call it.
4374         (print_scop_params): Remove spaces at the end of lines.
4375         (print_cloog): New.
4376         (debug_cloog): New.
4377         * graphite-poly.h (print_cloog): Declared.
4378         (debug_cloog): Declared.
4379
4380 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
4381
4382         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
4383         in loop->header.
4384         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
4385         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
4386         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
4387         to switch between adding the IV bump in loop->latch or in loop->header.
4388
4389 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
4390
4391         * graphite-poly.c (print_scattering_function): Pretty print following
4392         the scoplib format.
4393         (print_pdr): Same.
4394         (print_pbb_domain): Same.
4395         (dump_gbb_cases): Same.
4396         (dump_gbb_conditions): Same.
4397         (print_pdrs): Same.
4398         (print_pbb): Same.
4399         (print_scop_params): Same.
4400         (print_scop_context): Same.
4401         (print_scop): Same.
4402         (print_pbb_body): New.
4403         (lst_indent_to): New.
4404         (print_lst): Start new lines with a #.
4405         * graphite-poly.h (pbb_bb): New.
4406         (pbb_index): Use pbb_bb.
4407         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
4408         disjuncts.
4409         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
4410
4411 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
4412
4413         * dwarf2out.c (size_of_die): For -gdwarf-4 use
4414         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
4415         and 0 instead of 1 for dw_val_class_flag.
4416         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
4417         dw_val_class_range_list, dw_val_class_loc_list,
4418         dw_val_class_lineptr and dw_val_class_macptr, use
4419         DW_FORM_flag_present for dw_val_class_flag and
4420         DW_FORM_exprloc for dw_val_class_loc.
4421         (output_die): For -gdwarf-4 print dw_val_class_loc
4422         size as uleb128 instead of 1 or 2 bytes and don't print
4423         anything for dw_val_class_flag.
4424
4425         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
4426         instead of cselib_lookup following by tweaking locs->setting_insn.
4427
4428         PR bootstrap/43596
4429         * cselib.c (cselib_process_insn): Clear cselib_current_insn
4430         even before returning from label, setjmp call or volatile asm
4431         handling.
4432
4433 2010-03-31  Richard Guenther  <rguenther@suse.de>
4434
4435         PR middle-end/43600
4436         * cgraphunit.c (cgraph_output_in_order): Do not allocate
4437         temporary data on stack.
4438
4439 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4440
4441         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
4442         (PUSHSECTION_ASM_OP): Remove.
4443         (POPSECTION_ASM_OP): Remove.
4444         (PUSHSECTION_FORMAT): Remove.
4445         * config/sol2.h (PUSHSECTION_FORMAT): Define.
4446         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
4447         * config/sol2.c (solaris_output_init_fini): Use it.
4448
4449 2010-03-31  Jie Zhang  <jie@codesourcery.com>
4450
4451         PR 43574
4452         * opt-functions.awk (var_type_struct): Use signed char type
4453         for simple variables.
4454
4455 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4456
4457         * config/sol2.c: Include output.h.
4458         (solaris_assemble_visibility): New function.
4459         * config/t-sol2 (sol2.o): Add output.h dependency.
4460         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
4461         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
4462         Redefine.
4463
4464 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
4465
4466         PR target/43580
4467         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
4468         V2SImode or XFmode on PRE_DEC.
4469
4470         PR debug/43557
4471         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
4472         BLKmode.
4473
4474 2010-03-31  Jie Zhang  <jie@codesourcery.com>
4475
4476         PR 43562
4477         * reload.h (caller_save_initialized_p): Declare.
4478         * toplev.c (backend_init_target): Don't call
4479         init_caller_save but set caller_save_initialized_p to false.
4480         * caller-save.c (caller_save_initialized_p): Define.
4481         (init_caller_save): Check caller_save_initialized_p.
4482         * ira.c (ira): Call init_caller_save if flag_caller_saves.
4483
4484 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4485
4486         PR target/39048
4487         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
4488         and soft-fp/t-softfp to tmake_file.
4489         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
4490         (LIBGCC2_TF_CEXT): Define.
4491         (TF_SIZE): Define.
4492
4493 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
4494
4495         PR debug/42977
4496         * cselib.c (n_useless_values): Document handling of debug locs.
4497         (n_useless_debug_values, n_debug_values): New variables.
4498         (new_elt_loc_list): Don't add to debug values, keep count.
4499         (promote_debug_loc): New.
4500         (cselib_reset_table): Zero new variables.
4501         (entry_and_rtx_equal_p): Promote debug locs.
4502         (discard_useless_locs): Increment n_useless_debug_values for
4503         debug values.
4504         (remove_useless_values): Adjust n_useless_values and n_debug_values
4505         with n_useless_debug_values.
4506         (add_mem_for_addr): Promote debug locs.
4507         (cselib_lookup_mem): Likewise.
4508         (cselib_lookup_addr): Renamed to...
4509         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
4510         (cselib_log_lookup): ... this.  Turn into...
4511         (cselib_lookup_addr): ... new wrapper.
4512         (cselib_lookup_from_insn): New.
4513         (cselib_invalidate_regno): Increment n_useless_debug_values for
4514         debug values.
4515         (cselib_invalidate_mem): Likewise.
4516         (cselib_process_insn): Take n_deleted and n_debug_values into
4517         account to guard remove_useless_value call.
4518         (cselib_finish): Zero n_useless_debug_values.
4519         * cselib.h (cselib_lookup_from_insn): Declare.
4520         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
4521         (sched_analyze_2): Likewise.
4522
4523 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
4524
4525         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
4526         functions.
4527         (adjust_mems): Replace narrowing SUBREG of expression containing
4528         just PLUS, MINUS, MULT and ASHIFT of registers and constants
4529         with operations in the narrower mode.
4530
4531         PR debug/43593
4532         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
4533         regs_invalidated_by_call instead all call_used_reg_set registers.
4534
4535 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
4536
4537         PR middle-end/43430
4538         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
4539         pointer comparisons with types_compatible_p.
4540         * tree-vect-stmts.c (vectorizable_call): Same.
4541         (vectorizable_condition): Same.
4542
4543 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4544
4545         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
4546         stack check if the mask would be zero.
4547
4548 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
4549             Jack Howarth <howarth@bromo.med.uc.edu>
4550
4551         * tree-profile.c (tree_init_ic_make_global_vars): Make static
4552         variables TLS.
4553
4554 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
4555
4556         PR other/25232
4557         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
4558         and __unordtf2.
4559         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
4560         Include ___unordxf2 and ___unordtf2.
4561         * config/i386/libgcc-glibc.ver: Do not define inheritance from
4562         GCC_4.4.0 here.
4563
4564 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
4565
4566         * config/lm32/t-lm32: New file.
4567         * config.gcc: Use the above file when targetting lm32.
4568
4569 2010-03-28  Duncan Sands  <baldrick@free.fr>
4570
4571         * Makefile.in (PLUGIN_HEADERS): Add except.h.
4572
4573 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
4574
4575         PR middle-end/43431
4576         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
4577         Improve vectorization cost model diagnostic.
4578
4579 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
4580
4581         PR middle-end/43436
4582         * tree-vect-data-refs.c (vect_analyze_data_refs): When
4583         compute_data_dependences_for_loop returns false, early exit
4584         and output an extra diagnostic for the failed data reference
4585         analysis.
4586
4587 2010-03-29  Richard Guenther  <rguenther@suse.de>
4588
4589         PR tree-optimization/43560
4590         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
4591         (can_sm_ref_p): Treat stores to readonly locations as trapping.
4592
4593 2010-03-29  Jie Zhang  <jie@codesourcery.com>
4594
4595         PR 43564
4596         * toplev.c (process_options): Set optimization_default_node
4597         and optimization_current_node.
4598         * opts.c (decode_options): Don't set optimization_default_node
4599         and optimization_current_node.
4600
4601 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
4602
4603         * config/rtems.h: Abandon -qrtems_debug.
4604
4605 2010-03-28  Jan Hubicka  <jh@suse.cz>
4606
4607         PR tree-optimization/43505
4608         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
4609         map should not be copied.
4610
4611 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4612
4613         PR middle-end/41674
4614         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
4615         cdtors, set DECL_PRESERVE_P.
4616         * ipa.c (cgraph_externally_visible_p): Return true if declaration
4617         should be preseved.
4618
4619 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
4620
4621         PR tree-optimization/43528
4622         * stor-layout.c (place_field): Check that constant fits into
4623         unsigned HWI when skipping calculation of MS bitfield layout.
4624
4625 2010-03-27  Jan Hubicka  <jh@suse.cz>
4626
4627         PR middle-end/43391
4628         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
4629         notice_global_symbol work.
4630
4631 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
4632
4633         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
4634         instead of dwarf2out_decl.
4635         (struct var_loc_node): Remove section_label field.
4636         (dwarf2out_function_decl): New function.
4637         (dwarf2out_var_location): Don't set section_label field.
4638         (dwarf2out_begin_function): Don't empty decl_loc_table here.
4639
4640 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
4641
4642         PR tree-optimization/43544
4643         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
4644         First argument for builtin vectorized function hook is now a
4645         tree to be able to distinguish between machine specific and
4646         standard builtins.
4647         * targhooks.c (default_builtin_vectorized_function): Ditto.
4648         * targhooks.h (default_builtin_vectorized_function): Ditto.
4649         * target.h (struct gcc_target): Ditto.
4650         * tree-vect-stmts.c (vectorizable_function): Ditto.
4651         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
4652         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
4653         Ditto.
4654
4655 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
4656
4657         PR c/43381
4658         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
4659         nested binding iff it is a FUNCTION_DECL.
4660         (store_parm_decls_newstyle): Pass nested=true to bind for
4661         FUNCTION_DECLs amongst parameters.
4662
4663 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
4664
4665         * var-tracking.c (vt_expand_loc_callback): Don't run
4666         cselib_expand_value_rtx_cb in dummy mode if
4667         cselib_dummy_expand_value_rtx_cb returned false.
4668
4669         * var-tracking.c (emit_note_insn_var_location): For one part
4670         notes with offset 0, don't add EXPR_LIST around the location.
4671         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
4672         add_location_or_const_value_attribute): Adjust for that change.
4673
4674         PR debug/43540
4675         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
4676         into first operand and location into second.
4677         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
4678         dw_cfi_oprnd_loc for DW_CFA_expression.
4679         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
4680         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
4681         assume first argument is regnum and second argument is location.
4682
4683 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
4684
4685         PR target/42113
4686         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
4687         of scratch register to DImode.  Split to DImode comparison operator.
4688         Use SImode subreg of scratch register in the multiplication.
4689         (*cmp_sadd_sidi): Ditto.
4690         (*cmp_ssub_si): Ditto.
4691         (*cmp_ssub_sidi): Ditto.
4692
4693 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
4694
4695         PR target/43524
4696         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
4697         Remove invalid assert and wrong comment.
4698
4699 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
4700
4701         PR debug/43516
4702         * flags.h (final_insns_dump_p): New extern.
4703         * final.c (final_insns_dump_p): New variable.
4704         (rest_of_clean_state): Set it before -fdump-final-insns=
4705         dumping, clear afterwards.
4706         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
4707         MEM_ALIAS_SET on MEMs.
4708
4709 2010-03-26  David S. Miller  <davem@davemloft.net>
4710
4711         * configure.ac: Fix sparc GOTDATA_OP bug check.
4712         * configure: Rebuild.
4713
4714 2010-03-26  Alan Modra  <amodra@gmail.com>
4715
4716         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
4717
4718 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4719
4720         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
4721         TLS_SECTION_ASM_FLAG.
4722
4723 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
4724
4725         PR bootstrap/43511
4726         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
4727         Clear first_function_block_is_cold.
4728
4729         PR c/43385
4730         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
4731         argument if the argument is truth_value_p.
4732
4733 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
4734
4735         * config/rs6000/constraints.md: Update copyright year for my changes.
4736
4737         PR target/43484
4738         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
4739         used in reg+reg addressing, swap registers.
4740
4741 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
4742
4743         PR debug/43293
4744         * target.h (struct gcc_target): Add code_end hook.
4745         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
4746         if not yet defined.
4747         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
4748         * toplev.c (compile_file): Call targetm.asm_out.code_end
4749         hook before unwind info/debug info output.
4750         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
4751         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
4752         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
4753         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
4754         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
4755         * config/i386/i386.c (ix86_file_end): Renamed to...
4756         (ix86_code_end): ... this.  Make static.  Don't call
4757         file_end_indicate_exec_stack.  Emit unwind info using
4758         final_start_function/final_end_function.
4759         (darwin_x86_file_end): Remove.
4760         (TARGET_ASM_CODE_END): Define.
4761         * config/i386/i386.h (TARGET_ASM_FILE_END,
4762         NEED_INDICATE_EXEC_STACK): Don't define.
4763         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
4764         (TARGET_ASM_FILE_END): Define to darwin_file_end.
4765         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
4766         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
4767
4768         PR target/43498
4769         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
4770         at the beginning and final_end_function at the end.
4771         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
4772
4773 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4774
4775         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
4776         and Sun as TLS syntax.
4777         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
4778         * configure: Regenerate.
4779         * config.in: Regenerate.
4780         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
4781         (default_elf_asm_named_section): Use it.
4782         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
4783         (i386_output_dwarf_dtprel): Likewise.
4784         (output_addr_const_extra): Likewise.
4785         (output_pic_addr_const): Lowercase @GOTTPOFF.
4786         (output_addr_const_extra): Likewise.
4787         (output_pic_addr_const): Lowercase @GOTNTPOFF.
4788         (output_addr_const_extra): Likewise.
4789         (output_pic_addr_const): Lowercase @INDNTPOFF.
4790         (output_addr_const_extra): Likewise.
4791         (output_pic_addr_const): Lowercase @NTPOFF.
4792         (output_addr_const_extra): Likewise.
4793         (output_pic_addr_const): Lowercase @TPOFF.
4794         (output_addr_const_extra): Likewise.
4795         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
4796         (*tls_global_dynamic_64): Likewise.
4797         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
4798         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
4799
4800         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
4801         (ASM_OUTPUT_TLS_COMMON): Use it.
4802         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
4803
4804         PR target/38118
4805         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
4806         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
4807         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
4808         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
4809         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
4810         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
4811
4812 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4813
4814         * config/i386/i386.c (override_options): Don't accept
4815         -mtls-dialect=sun any longer.
4816         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
4817         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
4818         (*tls_local_dynamic_base_32_sun): Likewise.
4819         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
4820
4821 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
4822
4823         PR debug/43508
4824         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
4825         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
4826
4827         PR debug/43479
4828         * ira.c (adjust_cleared_regs): New function.
4829         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
4830
4831         PR debug/19192
4832         PR debug/43479
4833         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
4834         from gimple_block.
4835         * expr.c (expand_expr_real): Restore previous
4836         curr_insn_source_location and curr_insn_block after
4837         expand_expr_real_1 call.
4838         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
4839         instead of expand_expr_real_1.
4840
4841 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
4842
4843         PR rtl-optimization/43413
4844         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
4845         hard regs too.
4846
4847 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
4848
4849         PR target/43348
4850         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
4851         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
4852
4853 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
4854
4855         * config/i386/i386.c (ix86_target_string): Add -mfma.
4856         Fix a typo in comment.
4857
4858 2010-03-22  Mike Stump  <mikestump@comcast.net>
4859
4860         PR target/23071
4861         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
4862         Don't overly align based upon packed packed fields.
4863
4864 2010-03-22  Jason Merrill  <jason@redhat.com>
4865
4866         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
4867         Use () rather than [], and move before the element type.
4868
4869 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4870
4871         * doc/configfiles.texi (Configuration Files): Removed
4872         fixinc/Makefile*, intl/Makefile.*.
4873         * doc/makefile.texi: Fixed markup. Abstract from version
4874         control system used.
4875         (Makefile): Removed obsolete gcc/java/parse.y example.
4876         * doc/sourcebuild.texi: Likewise.
4877         (Top Level): Added config, gnattools, libdecnumber, libgcc,
4878         libgomp, libssp.  Removed fastjar.
4879         (Miscellaneous Docs): Clarify location.
4880         Added COPYING3, COPYING3.LIB.
4881         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
4882
4883 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4884
4885         PR target/38085
4886         * config/i386/i386.c (x86_function_profiler)
4887         [!NO_PROFILE_COUNTERS]: Fix typo.
4888         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
4889         instead of callq.
4890
4891 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
4892             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4893
4894         * doc/sourcebuild.texi (Test Directives): Split into six
4895         subsections, with most of the current text in new subsections
4896         Directives, Selectors, and Final Actions.
4897         (Directives): Split list of test directives into multiple
4898         subsubsections.
4899         (Selectors): Describe use and syntax of selectors.
4900         (Effective-Target Keywords): Describe all existing keywords.
4901         (Add Options): Describe features for dg-add-options.
4902         (Require Support): Describe variants of dg-require-support.
4903         (Final Actions): Describe commands to use in dg-final.
4904
4905 2010-03-22  Michael Matz  <matz@suse.de>
4906
4907         PR middle-end/43475
4908         * recog.c (validate_replace_rtx_group): Replace also in
4909         REG_EQUAL and REG_EQUIV notes.
4910
4911 2010-03-22  Richard Guenther  <rguenther@suse.de>
4912
4913         PR tree-optimization/43390
4914         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
4915         sure vector extracts are type correct.
4916
4917 2010-03-22  Richard Guenther  <rguenther@suse.de>
4918
4919         PR middle-end/40106
4920         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
4921         x * sqrt (x) even when optimizing for size if the target
4922         has native support for sqrt.
4923
4924 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
4925
4926         * varasm.c (make_decl_rtl_for_debug): Also clear
4927         flag_mudflap for the duration of make_decl_rtl call.
4928
4929         PR debug/43443
4930         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
4931         locs from preserved VALUEs.
4932
4933 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4934
4935         PR middle-end/42718
4936         * pa.md (movmemsi): Set align to one if zero.
4937         (movmemdi): Likewise.
4938
4939 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
4940
4941         PR target/42321
4942         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
4943         with their corresponding prologue pushes.
4944
4945 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
4946
4947         PR target/43156
4948         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
4949         at the begining or end.
4950         (spu_expand_epilogue): Likewise.
4951
4952 2010-03-20  Richard Guenther  <rguenther@suse.de>
4953
4954         PR rtl-optimization/43438
4955         * combine.c (make_extraction): Properly zero-/sign-extend an
4956         extraction of the low part of a CONST_INT.  Also handle
4957         CONST_DOUBLE.
4958
4959 2010-03-19  Mike Stump  <mikestump@comcast.net>
4960
4961         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
4962         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
4963         (override_options): Use SUBTARGET32_DEFAULT_CPU.
4964
4965 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
4966
4967         PR c/43211
4968         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
4969         an error.
4970
4971 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
4972
4973         PR rtl-optimization/42258
4974         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
4975         use that may match DEF.
4976
4977         PR target/40697
4978         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
4979         the cost of loading the constant rather than assuming
4980         COSTS_N_INSNS (1).
4981         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
4982         outer code is AND, do the same tests as the andsi3 expander and
4983         return COSTS_N_INSNS (1) if and is cheap.
4984
4985         * optabs.c (avoid_expensive_constant): Fix formatting.
4986
4987 2010-03-19  Michael Matz  <matz@suse.de>
4988
4989         PR c++/43116
4990         * attribs.c (decl_attributes): When rebuilding a function pointer
4991         type use the same qualifiers as the original pointer type.
4992
4993 2010-03-19  Martin Jambor  <mjambor@suse.cz>
4994
4995         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
4996         and is_gimple_ip_invariant_address.
4997
4998 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4999
5000         Revert
5001         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5002
5003         * config/arm/arm.c (arm_override_options): Turn off
5004         flag_dwarf2_cfi_asm for AAPCS variants.
5005
5006 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5007
5008         PR target/43399
5009         * config/arm/arm.c (emit_multi_reg_push): Update comments.
5010         Use PRE_MODIFY instead of PRE_DEC.
5011         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
5012         (vfp_emit_fstmd): Likewise.
5013
5014 2010-03-19  Michael Matz  <matz@suse.de>
5015
5016         PR target/43305
5017         * builtins.c (expand_builtin_interclass_mathfn,
5018         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
5019         if that fails.
5020
5021 2010-03-19  Richard Guenther  <rguenther@suse.de>
5022
5023         PR tree-optimization/43415
5024         * tree-ssa-pre.c (phi_translate): Split out worker to ...
5025         (phi_translate_1): ... this.
5026         (phi_translate): Move all caching here.  Cache all NARY
5027         and REFERENCE translations.
5028
5029 2010-03-19  David S. Miller  <davem@davemloft.net>
5030
5031         With help from Eric Botcazou.
5032         * config/sparc/sparc.c: Include dwarf2out.h.
5033         (emit_pic_helper): Delete.
5034         (pic_helper_symbol_name): Delete.
5035         (pic_helper_emitted_p): Delete.
5036         (pic_helper_needed): New.
5037         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
5038         (get_pc_thunk_name): New.
5039         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
5040         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
5041         Set pic_helper_needed to true.  Don't call emit_pic_helper.
5042         (sparc_expand_prologue): Update load_pic_register call.
5043         (sparc_output_mi_thunk): Likewise.
5044         (sparc_file_end): Emit a hidden comdat symbol for the PIC
5045         thunk if possible.  Output CFI information as needed.
5046
5047 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
5048             Jack Howarth <howarth@bromo.med.uc.edu>
5049
5050         PR target/36399
5051         * config/i386/i386.h: Fix ABI on darwin x86-32.
5052
5053 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
5054
5055         * tree.h: Declare make_decl_rtl_for_debug.
5056         * varasm.c (make_decl_rtl_for_debug): New.
5057         * dwarf2out.c (rtl_for_decl_location): Call it.
5058         * cfgexpand.c (expand_debug_expr): Call it.
5059
5060 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
5061
5062         PR bootstrap/43399
5063         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
5064         mem_mode.
5065
5066         PR bootstrap/43403
5067         * var-tracking.c (vt_init_cfa_base): Do nothing if
5068         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
5069
5070 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
5071
5072         PR debug/42873
5073         * var-tracking.c (canonicalize_vars_star): New.
5074         (dataflow_post_merge_adjust): Use it.
5075
5076 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
5077
5078         PR debug/43058
5079         * var-tracking.c (non_suitable_const): New function.
5080         (add_uses): For DEBUG_INSNs with constants, don't record any
5081         value, instead just the constant value itself.
5082         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
5083         is not VAR_LOC_UNKNOWN_P, set var to the constant.
5084         (emit_notes_in_bb): Likewise.
5085         (emit_note_insn_var_location): For onepart variables if
5086         cur_loc is a VOIDmode constant, use DECL_MODE.
5087
5088 2010-03-18  Martin Jambor  <mjambor@suse.cz>
5089
5090         PR middle-end/42450
5091         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
5092         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
5093         all non-clones.  Moved call redirection...
5094         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
5095         (cgraph_materialize_all_clones): Dispose of all
5096         combined_args_to_skip bitmaps.
5097         (verify_cgraph_node): Do not check for edges pointing to wrong
5098         nodes in inline clones.
5099         * tree-inline.c (copy_bb): Call
5100         cgraph_redirect_edge_call_stmt_to_callee.
5101         * ipa.c (cgraph_remove_unreachable_nodes): Call
5102         cgraph_node_remove_callees even when there are used clones.
5103
5104 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
5105
5106         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
5107
5108 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
5109
5110         PR target/43383
5111         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
5112         for 32bit.
5113
5114 2010-03-18  Michael Matz  <matz@suse.de>
5115
5116         PR middle-end/43419
5117         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
5118         into sqrt(x) if we need to preserve signed zeros.
5119
5120 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
5121             Eric Botcazou  <ebotcazou@adacore.com>
5122
5123         PR rtl-optimization/43360
5124         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
5125         note if we don't know its invariant status.
5126
5127 2010-03-18  Michael Matz  <matz@suse.de>
5128
5129         PR tree-optimization/43402
5130         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
5131         PHI chains of ssa names registered for update.
5132
5133 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
5134
5135         PR target/42427
5136         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
5137         non-offsettable and pre_modify update addressing.
5138         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
5139         and "2" alternatives "#".
5140         (*movdd_softfloat32): Make all alternatives "#";
5141         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
5142         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
5143         (*movdf_softfloat32): Make all alternatives "#";
5144         (movdi): Use the new DIFD mode iterator to create a common splitter
5145         for movdi, movdf and movdd patterns.
5146
5147 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
5148
5149         * common.opt (dumpdir): Remove redundant tab.
5150
5151 2010-03-17  Martin Jambor  <mjambor@suse.cz>
5152
5153         PR tree-optimization/43347
5154         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
5155         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
5156
5157 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
5158
5159         PR rtl-optimization/42216
5160         * regrename.c (create_new_chain): New function, broken out from...
5161         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
5162         appending a use to an empty chain.
5163         (build_def_use): Remove previous changes that convert OP_INOUT to
5164         OP_OUT operands; instead detect the case where an OP_INOUT operand
5165         uses a previously untracked register and create an empty chain for it.
5166
5167 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5168
5169         * doc/extend.texi (Function Attributes): Rewrite unfinished
5170         sentence in ms_abi documentation.
5171
5172 2010-03-17  Alan Modra  <amodra@gmail.com>
5173
5174         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
5175         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
5176         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
5177         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
5178
5179 2010-03-16  Richard Henderson  <rth@redhat.com>
5180
5181         PR middle-end/43365
5182         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
5183         (lower_try_finally): Save and restore eh_seq around the expansion
5184         of the try-finally.
5185
5186 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
5187
5188         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
5189         statements before splitting block.
5190
5191 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5192
5193         * doc/sourcebuild.texi (Testsuites): Fix markup.
5194         Use pathnames relative to gcc/testsuite.
5195         (Test Directives): Move description of how timeout is determined.
5196         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
5197         (C Tests): Correct gcc.misc-tests directory.
5198         Framework tests now live in gcc.test-framework.
5199
5200 2010-03-16  Richard Guenther  <rguenther@suse.de>
5201
5202         PR middle-end/43379
5203         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
5204         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
5205
5206 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
5207             Alexandre Oliva  <aoliva@redhat.com>
5208
5209         PR tree-optimization/42917
5210         * lambda-code.c (remove_iv): Skip debug statements.
5211         (lambda_loopnest_to_gcc_loopnest): Likewise.
5212         (not_interesting_stmt): Debug statements are not interesting.
5213
5214 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
5215
5216         PR debug/43051
5217         PR debug/43092
5218         * cselib.c (cselib_preserve_constants,
5219         cfa_base_preserved_val): New static variables.
5220         (preserve_only_constants): New function.
5221         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
5222         clear its REG_VALUES.  If cselib_preserve_constants, don't
5223         empty the whole hash table, but preserve there VALUEs with constants,
5224         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
5225         (cselib_preserve_cfa_base_value): New function.
5226         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
5227         (cselib_init): Change argument to int bitfield.  Set
5228         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
5229         is in it.
5230         (cselib_finish): Clear cselib_preserve_constants and
5231         cfa_base_preserved_val.
5232         * cselib.h (enum cselib_record_what): New enum.
5233         (cselib_init): Change argument to int.
5234         (cselib_preserve_cfa_base_value): New prototype.
5235         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
5236         * dse.c (dse_step1): Likewise.
5237         * cfgcleanup.c (thread_jump): Likewise.
5238         * sched-deps.c (sched_analyze): Likewise.
5239         * gcse.c (local_cprop_pass): Likewise.
5240         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
5241         If FN is non-NULL, call the callback always and whenever it returns
5242         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
5243         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
5244         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
5245         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
5246         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
5247         * var-tracking.c: Include recog.h.
5248         (bb_stack_adjust_offset): Remove.
5249         (vt_stack_adjustments): Don't call it, instead just gather the
5250         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
5251         (adjust_stack_reference): Remove.
5252         (compute_cfa_pointer): New function.
5253         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
5254         (struct adjust_mem_data): New type.
5255         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
5256         functions.
5257         (get_address_mode): New function.
5258         (replace_expr_with_values): Use it.
5259         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
5260         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
5261         (adjust_sets): Remove.
5262         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
5263         Use get_address_mode.
5264         (get_adjusted_src): Remove.
5265         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
5266         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
5267         (add_with_sets): Don't call adjust_sets.
5268         (fp_setter, vt_init_cfa_base): New functions.
5269         (vt_initialize): Change return type to bool.  Move most of pool etc.
5270         initialization to the beginning of the function from end.  Pass
5271         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
5272         If !frame_pointer_needed, call vt_stack_adjustment before mos
5273         vector is filled, call vt_init_cfa_base if argp/framep has been
5274         eliminated to sp.  If frame_pointer_needed and argp/framep has
5275         been eliminated to hard frame pointer, set
5276         hard_frame_pointer_adjustment and call vt_init_cfa_base after
5277         encountering fp setter in the prologue.  For MO_ADJUST, call
5278         log_op_type before pusing the op into mos vector, not afterwards.
5279         Call adjust_insn before cselib_process_insn/add_with_sets,
5280         call cancel_changes (0) afterwards.
5281         (variable_tracking_main_1): Adjust for vt_initialize calling
5282         vt_stack_adjustments and returning whether it succeeded or not.
5283
5284 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
5285
5286         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
5287         debug statements.
5288
5289 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
5290
5291         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
5292         has been set.
5293         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
5294         drap_reg has not been set.
5295
5296 2010-03-15  Michael Matz  <matz@suse.de>
5297
5298         PR middle-end/43300
5299         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
5300         use it to expand block copies.
5301         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
5302         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
5303         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
5304
5305 2010-03-15  Richard Guenther  <rguenther@suse.de>
5306
5307         PR tree-optimization/43367
5308         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
5309         elimination check.
5310
5311 2010-03-15  Richard Guenther  <rguenther@suse.de>
5312
5313         PR tree-optimization/43317
5314         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
5315
5316 2010-03-15  Martin Jambor  <mjambor@suse.cz>
5317
5318         PR tree-optimization/43141
5319         * tree-sra.c (create_abstract_origin): New function.
5320         (modify_function): Call create_abstract_origin.
5321
5322 2010-03-15  Chris Demetriou  <cgd@google.com>
5323
5324         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
5325         wasn't copied.
5326
5327 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5328
5329         PR middle-end/43354
5330         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
5331         call insert_out_of_ssa_copy for default definitions.
5332
5333 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5334
5335         * graphite-clast-to-gimple.c (my_long_long): Defined.
5336         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
5337         * graphite-sese-to-poly.c (my_long_long): Defined.
5338         (scop_ivs_can_be_represented): Use it.
5339
5340 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5341
5342         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
5343         graphite-max-bbs-per-function, and loop-block-tile-size.
5344         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
5345         with "maximum".
5346         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
5347
5348 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5349
5350         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
5351         forward declaration.
5352         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
5353         (add_upper_bounds_from_estimated_nit): New.
5354         (build_loop_iteration_domains): Use it.
5355
5356 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5357
5358         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
5359
5360 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5361
5362         PR middle-end/43306
5363         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
5364         should be an INTEGER_CST.  Also handle CASE_CONVERT.
5365
5366 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5367
5368         * graphite.c (graphite_initialize): To bound the number of bbs per
5369         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
5370         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
5371         * doc/invoke.texi: Document it.
5372
5373 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5374
5375         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
5376         * graphite-sese-to-poly.h (build_poly_scop): Same.
5377
5378 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
5379
5380         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
5381         the number of parameters in the scop.  Use as an upper bound
5382         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
5383         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
5384         * doc/invoke.texi: Document it.
5385
5386 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
5387
5388         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
5389         * doc/c-tree.texi: Remove.
5390         * doc/generic.texi: Merge c-tree.texi here.
5391         * doc/gccint.texi (Trees): Remove menu entry.
5392         (c-tree.texi): Remove @include.
5393         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
5394         * doc/languages.texi (Reading RTL): Ditto.
5395
5396 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
5397
5398         PR target/42869
5399         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
5400
5401 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
5402
5403         PR middle-end/42431
5404         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
5405         code added to work around reload clobbering CONST insns.
5406
5407 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
5408
5409         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
5410         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
5411         (cselib_preserve_only_values): Remove retain argument, don't
5412         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
5413         * cselib.h (cselib_preserve_only_values): Remove retain argument.
5414         * var-tracking.c (micro_operation): Move insn field before union.
5415         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
5416         (struct variable_tracking_info_def): Remove n_mos field, change
5417         mos into a vector of micro_operations.
5418         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
5419         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
5420         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
5421         changing into a vector.
5422         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
5423         come before all other uops generated by add_stores.
5424         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
5425         argument removal.
5426         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
5427         a vector.  Run just one pass over the bbs instead of separate counting
5428         and computation phase.
5429         (vt_finalize): Free VTI (bb)->mos vector instead of array.
5430
5431         PR debug/43329
5432         * tree-inline.c (remap_decls): Put old_var rather than origin_var
5433         into *nonlocalized_list vector.
5434         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
5435         even if origin is non-NULL.
5436         (gen_variable_die): Likewise.
5437         (process_scope_var): Don't change origin.
5438         (gen_decl_die): Likewise.
5439         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
5440         before adding new edges instead of after it, fix moving over
5441         debug stmts.
5442
5443 2010-03-11  David S. Miller  <davem@davemloft.net>
5444
5445         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
5446         of four.
5447         * configure: Rebuild.
5448
5449 2010-03-11  Martin Jambor  <mjambor@suse.cz>
5450
5451         PR tree-optimization/43257
5452         * tree.c (assign_assembler_name_if_neeeded): New function.
5453         (free_lang_data_in_cgraph): Assembler name assignment moved to the
5454         above new function.
5455         * tree.h (assign_assembler_name_if_neeeded): Declare.
5456         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
5457         the function if needed.
5458
5459 2010-03-11  Chris Demetriou  <cgd@google.com>
5460
5461         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
5462         include/stdint-gcc.h, and include/stdint.h world-readable.
5463
5464 2010-03-11  Richard Guenther  <rguenther@suse.de>
5465
5466         PR tree-optimization/43255
5467         * tree-vrp.c (process_assert_insertions_for): Do not insert
5468         asserts for trivial conditions.
5469
5470 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5471
5472         PR tree-optimization/43280
5473         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
5474         generation.  Move calculation of size out of the if branch.
5475         (find_bswap): Modify compare number generation.
5476
5477 2010-03-11  Richard Guenther  <rguenther@suse.de>
5478
5479         PR lto/43200
5480         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
5481         (input_gimple_stmt): Fixup handled component types during
5482         operand read.  Also fix up decls in ADDR_EXPRs.
5483
5484 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
5485
5486         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
5487         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
5488
5489 2010-03-10  Jan Hubicka  <jh@suse.cz>
5490
5491         PR c/43288
5492         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
5493         * varasm.c (get_variable_section): Don't do that here...
5494         (make_decl_rtl): ... and here.
5495         (do_assemble_alias): Produce decl RTL.
5496         (assemble_alias): Likewise.
5497
5498 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
5499
5500         PR debug/43290
5501         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
5502         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
5503         of fde->vdrap_reg.
5504         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
5505         (based_loc_descr): Only express drap or vdrap regno based expressions
5506         using DW_OP_fbreg when not optimizing.
5507         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
5508         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
5509         REG_CFA_SET_VDRAP note.
5510
5511 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
5512
5513         PR tree-optimization/43236
5514         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
5515         error in calculation of base address in reverse iteration case.
5516         (generate_builtin): Take number of latch executions if the statement
5517         is in the latch.
5518
5519 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
5520
5521         PR middle-end/42859
5522         * tree-eh.c: Include pointer-set.h.
5523         (lower_eh_dispatch): Filter out duplicate case labels and
5524         remove the unneeded edge when the label is unused.  Return
5525         true when some edges are removed.
5526         (execute_lower_eh_dispatch): When any lowering resulted in
5527         removing an edge, also delete unreachable blocks.
5528
5529 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
5530
5531         PR bootstrap/43287
5532         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
5533         UNSPEC_MACHOPIC_OFFSET.
5534
5535 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
5536
5537         PR target/43294
5538         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
5539         (m68k_delegitimize_address): New function.
5540
5541 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
5542
5543         PR debug/43299
5544         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
5545
5546         PR debug/43299
5547         * var-tracking.c (adjust_sets): New function.
5548         (count_with_sets, add_with_sets): Use it.
5549         (get_adjusted_src): New inline function.
5550         (add_stores): Use it.
5551
5552         PR debug/43304
5553         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
5554         call cselib_dummy_expand_value_rtx_cb instead of
5555         cselib_expand_value_rtx_cb.
5556
5557         PR debug/43293
5558         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
5559         * config/i386/i386.c: Include debug.h and dwarf2out.h.
5560         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
5561         and .cfi_endproc around the pic thunks.
5562         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
5563         all queued unwind info register saves are saved before the call.
5564         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
5565         considered as sp-=4 for unwind info and the pop as sp+=4 which
5566         also clobbers dest, but doesn't actually restore it.
5567
5568         PR debug/43290
5569         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
5570         RTX_FRAME_RELATED_P.
5571
5572 2010-03-09  Jie Zhang  <jie@codesourcery.com>
5573
5574         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
5575         whitespaces in output template.
5576
5577 2010-03-09  Jie Zhang  <jie@codesourcery.com>
5578
5579         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
5580         out array boundary.
5581
5582 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
5583
5584         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
5585         builtins.exp in a separate job.
5586
5587 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5588
5589         * graphite-sese-to-poly.c (add_param_constraints): Use
5590         lower_bound_in_type and upper_bound_in_type.
5591
5592 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5593
5594         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
5595         instead of unsigned_type_node.
5596
5597 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5598             Reza Yazdani  <reza.yazdani@amd.com>
5599
5600         PR middle-end/43065
5601         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
5602         on pointer type parameters.
5603
5604 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
5605
5606         PR middle-end/42644
5607         PR middle-end/42130
5608         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
5609         handle conversions from pointer to integers.
5610         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
5611         induction variable, to be able to work with code generated by CLooG.
5612         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
5613         (build_poly_scop): Bail out if we cannot codegen a loop.
5614
5615 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
5616
5617         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
5618         code generation with gloog_error.
5619
5620 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5621
5622         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
5623         Call fold_convert on all the returned values.
5624         (expand_scalar_variables_expr): Pass to
5625         expand_scalar_variables_ssa_name the type of the resulting expression.
5626
5627 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5628
5629         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
5630         ppl_min_for_le_pointset.
5631         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
5632         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
5633
5634 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5635
5636         * graphite-dependences.c (map_into_dep_poly): Removed.
5637         (dependence_polyhedron_1): Use combine_context_id_scat.
5638
5639 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5640
5641         * graphite-poly.h (struct poly_scattering): Add layout documentation.
5642         (struct poly_bb): Same.
5643         (combine_context_id_scat): New.
5644
5645 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5646
5647         PR middle-end/42326
5648         * sese.c (name_defined_in_loop_p): Return false for default
5649         definitions.
5650
5651 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5652
5653         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
5654         and clean up the logic.
5655
5656 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5657
5658         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
5659         early return.
5660
5661 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
5662
5663         * var-tracking.c (remove_cselib_value_chains): Define only for
5664         ENABLE_CHECKING.
5665         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
5666         delete_slot_part, emit_notes_for_differences_1): Don't call
5667         remove_cselib_value_chains here.
5668         (set_slot_part, emit_notes_for_differences_2): Don't call
5669         add_cselib_value_chains here.
5670         (preserved_values): New vector.
5671         (preserve_value): New function.
5672         (add_uses, add_stores, vt_add_function_parameters): Use it
5673         instead of cselib_preserve_value.
5674         (changed_values_stack): New vector.
5675         (check_changed_vars_0): New function.
5676         (check_changed_vars_1, check_changed_vars_2): Use it.
5677         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
5678         changed_values_stack VALUEs.
5679         (vt_emit_notes): For all preserved_values call
5680         add_cselib_value_chains.  If ENABLE_CHECKING call
5681         remove_cselib_value_chains before verifying value_chains is empty.
5682         Initialize and free changed_values_stack.
5683         (vt_initialize): Initialize preserved_values.
5684         (vt_finalize): Free preserved_values.
5685
5686 2010-03-08  Richard Guenther  <rguenther@suse.de>
5687
5688         PR tree-optimization/43269
5689         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
5690         region detection.
5691
5692 2010-03-08  Martin Jambor  <mjambor@suse.cz>
5693
5694         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
5695         (ipa_is_param_called): Removed.
5696         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
5697         (ipa_print_node_params): Do not print the called flag.
5698         (ipa_write_node_info): Do not stream the called flag.
5699         (ipa_read_node_info): Likewise.
5700
5701 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
5702
5703         PR debug/43176
5704         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
5705         * cselib.c (struct expand_value_data): Add dummy field.
5706         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
5707         dummy to false.
5708         (cselib_dummy_expand_value_rtx_cb): New function.
5709         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
5710         any rtl.
5711         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
5712         * var-tracking.c: Include pointer-set.h.
5713         (variable): Change n_var_parts to char from int.  Add
5714         cur_loc_changed and in_changed_variables fields.
5715         (variable_canonicalize): Remove.
5716         (shared_var_p): New inline function.
5717         (unshare_variable): Maintain cur_loc_changed and
5718         in_changed_variables fields.  If var was in changed_variables,
5719         replace it there with new_var.  Just copy cur_loc instead of
5720         resetting it to something else.
5721         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
5722         (dataflow_set_union): Don't call variable_canonicalize.
5723         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
5724         of their DEBUG_EXPR_TREE_DECLs.
5725         (canonicalize_loc_order_check): Verify that cur_loc is NULL
5726         and in_changed_variables and cur_loc_changed is false.
5727         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
5728         and cur_loc_changed.  Don't update cur_loc here.
5729         (variable_merge_over_src): Don't call variable_canonicalize.
5730         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
5731         removing loc that is equal to cur_loc, clear cur_loc,
5732         set cur_loc_changed and ensure variable_was_changed is called.
5733         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
5734         compare pointers in cur_loc check, if it is equal to loc,
5735         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
5736         (variable_different_p): Remove compare_current_location argument,
5737         don't compare cur_loc.
5738         (dataflow_set_different_1): Adjust variable_different_p caller.
5739         (variable_was_changed): If dv had some var in changed_variables
5740         already, reset in_changed_variables flag for it and propagate
5741         cur_loc_changed over to the new variable.  On empty var
5742         always set cur_loc_changed.  Set in_changed_variables on whatever
5743         var is added to changed_variables.
5744         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
5745         Use shared_var_p.  When removing loc that is equal to cur_loc,
5746         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
5747         end, don't set it to something else, just call variable_was_changed.
5748         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
5749         loc being removed, clear cur_loc and set cur_loc_changed.
5750         Set cur_loc_changed if all locations have been removed.
5751         (struct expand_loc_callback_data): New type.
5752         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
5753         allocated.  Always create SUBREGs if simplify_subreg failed.
5754         Prefer to use cur_loc, when that fails and still in
5755         changed_variables (and seen first time) recompute it.  Set
5756         cur_loc_changed of variables which had to change cur_loc and
5757         compute elcd->cur_loc_changed if any of the subexpressions used
5758         had to change cur_loc.
5759         (vt_expand_loc): Adjust to pass arguments in
5760         expand_loc_callback_data structure.
5761         (vt_expand_loc_dummy): New function.
5762         (emitted_notes): New variable.
5763         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
5764         that weren't used for any other decl in current
5765         emit_notes_for_changes call call vt_expand_loc_dummy to update
5766         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
5767         first loc_chain location if NULL before.  Always use just
5768         cur_loc instead of first loc_chain location.  When cur_loc_changed
5769         is false, when not --enable-checking=rtl just don't emit any note.
5770         When rtl checking, compute the note and assert it is the same
5771         as previous note.  Clear cur_loc_changed and in_changed_variables
5772         at the end before removing from changed_variables.
5773         (check_changed_vars_3): New function.
5774         (emit_notes_for_changes): Traverse changed_vars to call
5775         check_changed_vars_3 on each changed var.
5776         (emit_notes_for_differences_1): Clear cur_loc_changed and
5777         in_changed_variables.  Recompute cur_loc of new_var.
5778         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
5779         (vt_emit_notes): Initialize and destroy emitted_notes.
5780
5781 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
5782
5783         PR rtl-optimization/42220
5784         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
5785         Use verify_reg_tracked to determine if we should use OP_OUT rather
5786         than OP_INOUT.
5787         (build_def_use): If we see an in-out operand for a register that we
5788         know nothing about, treat is an output if possible, fail the block if
5789         not.
5790
5791 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
5792
5793         PR debug/42897
5794         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
5795         permanently.
5796
5797 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
5798
5799         PR debug/42897
5800         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
5801         uses of relevant DEFs that are dead outside the loop too.
5802
5803 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
5804
5805         * var-tracking.c (dataflow_set_merge): Swap src and src2.
5806         Reverted:
5807         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
5808         PR debug/41371
5809         * var-tracking.c (values_to_unmark): New variable.
5810         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
5811         values_to_unmark vector.  Moved body to...
5812         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
5813         instead queue it into values_to_unmark vector.
5814         (vt_find_locations): Free values_to_unmark vector.
5815
5816 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
5817
5818         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
5819         (site.exp): Export them when plugins are enabled.
5820
5821 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
5822
5823         PR middle-end/42326
5824         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
5825         that contain scevs.
5826         (chrec_fold_multiply): Same.
5827
5828 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
5829
5830         PR c/43248
5831         * c-decl.c (build_compound_literal): Return early if init is
5832         an error_mark_node.
5833
5834 2010-03-04  Martin Jambor  <mjambor@suse.cz>
5835
5836         PR tree-optimization/43164
5837         PR tree-optimization/43191
5838         * tree-sra.c (type_consists_of_records_p): Reject records with
5839         zero-size bit-fields at the end.
5840
5841 2010-03-04  Mike Stump  <mikestump@comcast.net>
5842
5843         * Makefile.in (TAGS): Remove *.y.
5844
5845 2010-03-04  Richard Guenther  <rguenther@suse.de>
5846
5847         PR tree-optimization/40761
5848         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
5849         in reverse order.
5850         (my_rev_post_order_compute): New function.
5851         (init_pre): Call it.
5852
5853 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
5854
5855         PR middle-end/43209
5856         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
5857         decrease the cost of an IV candidate when the cost is infinite.
5858
5859 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5860
5861         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
5862         Use '3DNow!' for the extension of that name, ensure normal space
5863         after the string.
5864         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
5865
5866 2010-03-03  Jeff Law  <law@redhat.com>
5867
5868         * PR middle-end/32693
5869         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
5870         than gen_rtx_SUBREG.
5871         (extract_bit_field_1): Likewise.
5872
5873 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
5874
5875         * doc/sourcebuild.texi (Test directives): Document that arguments
5876         include-opts and exclude-opts are now optional for dg-skip-if,
5877         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
5878
5879 2010-03-03  Jason Merrill  <jason@redhat.com>
5880
5881         PR c++/12909
5882         * cgraph.h (varpool_node): Add extra_name field.
5883         * varpool.c (varpool_extra_name_alias): New.
5884         (varpool_assemble_decl): Emit extra name aliases.
5885         (varpool_mark_needed_node): Look past an extra name alias.
5886         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
5887         * lto-streamer-in.c (lto_input_tree): Read it.
5888         * lto-streamer-out.c (output_unreferenced_globals): Write it.
5889
5890 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
5891
5892         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
5893         (sparc*-*-solaris2*): ...this.
5894
5895 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
5896
5897         PR debug/43229
5898         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
5899         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
5900         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
5901         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
5902
5903         PR debug/43237
5904         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
5905         fallthrough to default handling, just with want_address 0 instead of 2.
5906         For single element lists, add_AT_loc directly, otherwise create an
5907         artificial variable DIE and stick location list to it.
5908
5909         PR debug/43177
5910         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
5911         (VAL_EXPR_HAS_REVERSE): Define.
5912         (reverse_op): New function.
5913         (add_stores): For reversible operations add an extra MO_VAL_USE.
5914
5915 2010-03-02  Jason Merrill  <jason@redhat.com>
5916
5917         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
5918
5919 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
5920
5921         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
5922         (sparc64-*-linux*): Likewise.
5923         (sparc64-*-solaris2*): Include assembler files before linker ones.
5924         (sparc-*-solaris2*): Simplify and reorder to match previous case.
5925         * config/sparc/gas.h: Delete.
5926         * config/sparc/sol2-64.h: Add copyright notice.
5927         * config/sparc/sol2-gas-bi.h: Likewise.
5928         * config/sparc/sol2-gld.h: Likewise.
5929         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
5930         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
5931         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
5932         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
5933         (sparc_elf_asm_named_section): Rename into...
5934         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
5935
5936 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
5937
5938         * config/alpha/alpha.c (override_options): Fix -mtune error message.
5939
5940 2010-03-02  Jeff Law  <law@redhat.com>
5941
5942         PR middle-end/42431
5943         * reload1.c (rtx_p, substitute_stack): Declare.
5944         (substitute): Record addresses of changed rtxs.
5945         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
5946         Restore the original rtx when complete.
5947         (reload): Free subsitute_stack when complete.
5948
5949 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
5950
5951         * doc/gccint.texi (menu): Add Testsuites as a chapter.
5952         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
5953         new chapter.
5954         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
5955         LTO Testing, gcov Testing, profopt Testing, compat Testing,
5956         Torture Tests): Change from subsection to section.
5957
5958 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
5959             Steven Bosscher  <steven@gcc.gnu.org>
5960
5961         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
5962         instead of bb.
5963
5964 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
5965
5966         PR middle-end/42640
5967         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
5968         the assignment from the new induction variable to the assignment
5969         of the value from the original loop PHI function.
5970
5971 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
5972             Daniel Jacobowitz  <dan@codesourcery.com>
5973
5974         * doc/sourcebuild.texi (Test directives): Clarify options to
5975         dg-skip-if.
5976
5977 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5978
5979         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
5980         Disable cfi directives unless GCC and gas agree on using read-only
5981         .eh_frame sections for 64-bit.
5982         * configure: Regenerate.
5983
5984 2010-03-01  Richard Guenther  <rguenther@suse.de>
5985
5986         PR tree-optimization/43220
5987         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
5988         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
5989
5990 2010-03-01  Richard Guenther  <rguenther@suse.de>
5991             Martin Jambor  <mjambor@suse.cz>
5992
5993         PR middle-end/41250
5994         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
5995         gimplified parameters.
5996
5997 2010-03-01  Christian Bruel  <christian.bruel@st.com>
5998
5999         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
6000
6001 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
6002
6003         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
6004
6005 2010-03-01  Richard Guenther  <rguenther@suse.de>
6006
6007         PR middle-end/43213
6008         * expr.c (expand_assignment): Use the alias-oracle to tell
6009         if the rhs aliases the result decl.
6010
6011 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6012
6013         PR pch/14940
6014         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
6015         to sol_gt_pch_get_address.
6016         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
6017         64-bit, SPARC and x86.
6018         (sol_gt_pch_get_address): New function.
6019
6020 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
6021
6022         * toplev.h (inform_n, error_n): Declare.
6023         * diagnostic.c (inform_n, error_n): New function.
6024
6025 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
6026
6027         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
6028         has no rtl yet when processing local_decls, queue it and recheck
6029         if deferred stack allocation hasn't assigned it rtl.
6030
6031 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
6032
6033         * config/sh/sh.c (unspec_bbr_uid): New.
6034         (gen_block_redirect): Use it instead of INSN_UID.
6035         (gen_far_branch): Likewise.
6036
6037 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
6038
6039         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
6040         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
6041
6042 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6043
6044         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
6045         (Warning Options): -Wno-conversion-null is valid for
6046         Objective-C++ as well.
6047         * doc/tm.texi (Named Address Spaces): Likewise.
6048         * doc/plugins.texi (Plugins): Replace TABs with spaces.
6049         * doc/tree-ssa.texi (Tree SSA): Likewise.
6050
6051 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
6052
6053         PR bootstrap/43202
6054         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
6055         by default.  Don't set the default arch for
6056         i[34567]86-*-darwin*|x86_64-*-darwin*.
6057
6058 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
6059
6060         PR bootstrap/43202
6061         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
6062         default.  Set the default 32bit/64bit archs with $with_arch
6063         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
6064
6065 2010-02-27  Richard Guenther  <rguenther@suse.de>
6066
6067         PR tree-optimization/43186
6068         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
6069         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
6070         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
6071         unroller iterations.
6072
6073 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
6074
6075         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
6076         required and i[34567]86-*-* targets don't support 64bit ISA.
6077
6078 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
6079
6080         PR ada/43096
6081         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
6082         the same alias set.
6083
6084 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
6085
6086         * config.gcc: Set the default arch at least to Prescott for
6087         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
6088         if SSE math is enabled.
6089
6090 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6091
6092         * diagnostic.c (diagnostic_initialize): Update.
6093         (diagnostic_report_diagnostic): Test inhibit_notes_p for
6094         informative notes.
6095         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
6096         (diagnostic_inhibit_notes): New.
6097         * toplev.c (process_options): inhibit notes with -fcompare-debug.
6098
6099 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6100
6101         PR c/20631
6102         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
6103         * doc/standards.texi: Likewise.
6104         * doc/extend.texi: Likewise.
6105         * doc/trouble.texi: Likewise.
6106         * doc/cppopts.texi: Likewise.
6107         * doc/install.texi: Likewise.
6108         * c.opt (std=c90,std=gnu90): New options.
6109         * c-opts.c (c_common_handle_option): Handle them.
6110
6111 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6112
6113         PR c/24577
6114         * c-decl.c (undeclared_variable): Use an informative note.
6115
6116 2010-02-26  Richard Guenther  <rguenther@suse.de>
6117
6118         PR tree-optimization/43186
6119         * gimple.h (gimple_fold): Remove.
6120         * gimple.c (gimple_fold): Remove.  Inline into single user ...
6121         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
6122         Try harder for conditions.
6123
6124 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
6125
6126         PR debug/43190
6127         * function.c (used_types_insert): Don't skip through named pointer
6128         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
6129         and it is different from the main variant's type.
6130
6131 2010-02-26  Nick Clifton  <nickc@redhat.com>
6132
6133         * config/rx/rx.md (sminsi3): Remove bogus alternative.
6134
6135 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
6136
6137         * config.gcc: Support --with-fpmath=sse for x86.
6138
6139         * config/i386/ssemath.h: New.
6140
6141         * doc/install.texi (--with-fpmath=sse): Documented.
6142
6143 2010-02-26  Richard Guenther  <rguenther@suse.de>
6144
6145         PR tree-optimization/43188
6146         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
6147         vector types of over-aligned element type.
6148
6149 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
6150
6151         PR target/43175
6152         * config/i386/i386.c (expand_vec_perm_blend): Use correct
6153         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
6154
6155 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
6156
6157         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
6158
6159 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
6160
6161         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
6162         * var-tracking.c: Include diagnostic.h.
6163         (debug_dv): New function.
6164         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
6165
6166         PR debug/43160
6167         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
6168         (add_value_chain, add_value_chains, remove_value_chain,
6169         remove_value_chains): Handle DEBUG_EXPRs.
6170         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
6171
6172         PR debug/43161
6173         * regcprop.c (struct queued_debug_insn_change): New type.
6174         (struct value_data_entry): Add debug_insn_changes field.
6175         (struct value_data): Add n_debug_insn_changes field.
6176         (debug_insn_changes_pool): New variable.
6177         (free_debug_insn_changes, apply_debug_insn_changes,
6178         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
6179         (kill_value_one_regno): Call free_debug_insn_changes if needed.
6180         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
6181         fields.
6182         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
6183         changes for them.
6184         (copyprop_hardreg_forward_1): Don't call apply_change_group for
6185         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
6186         changes, call cprop_find_used_regs via note_stores.
6187         (copyprop_hardreg_forward): When copying vd from predecessor
6188         which has any queued DEBUG_INSN changes, make sure the pointers are
6189         cleared.  At the end call df_analyze and then if there are any
6190         DEBUG_INSN changes queued at the end of some basic block for still
6191         live registers, apply them.
6192         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
6193
6194 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
6195
6196         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
6197         (arm*-*-*): Ditto.
6198
6199 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
6200
6201         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
6202         targets.  Set the default with_cpu/with_arch from arch/cpu.
6203         Allow x86-64 and native for with_cpu/with_arch.
6204
6205 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
6206
6207         * ebitmap.c: Change calls to verify_popcount with calls to
6208         sbitmap_verify_popcount.
6209         (ebitmap_clear_bit): Fixed map->cacheindex test and
6210         map>cache update when bit clearing results in an empty
6211         element.
6212
6213 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
6214
6215         PR target/43154
6216         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
6217         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
6218         and support both V2DF and V2DI modes.
6219         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
6220         support both V2DF and V2DI modes.
6221         (general): Delete trailing whitespace from a few patterns.
6222
6223         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6224         V2DF/V2DI interleave high/low builtins.
6225
6226         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
6227         new VSX builtins.
6228
6229         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
6230         interleave high/low functions.
6231
6232 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
6233
6234         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
6235         #pragma extern_prefix.
6236
6237 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
6238
6239         PR debug/43166
6240         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
6241         BLKmode, assert op0 is a MEM and just adjust its mode.
6242
6243         PR debug/43165
6244         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
6245         if bitpos isn't multiple of mode's bitsize.
6246
6247 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6248
6249         * c.opt (-ftemplate-depth=): New.
6250         (-ftemplate-depth-): Deprecate.
6251         * optc-gen.awk: Handle -ftemplate-depth=.
6252         * opth-gen.awk: Likewise.
6253         * c-opts.c (c_common_handle_option): Likewise.
6254         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
6255
6256 2010-02-24  Jason Merrill  <jason@redhat.com>
6257
6258         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
6259
6260 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6261
6262         * cfg.c (alloc_aux_for_block): Remove inline.
6263         (alloc_aux_for_edge): Likewise.
6264
6265 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6266
6267         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
6268
6269 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6270
6271         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
6272         * config/i386/sol2-gas.h: New file.
6273         * config.gcc (i[34567]86-*-solaris2*): Use it.
6274
6275 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6276
6277         PR c/43128
6278         * c-typeck.c (ep_convert_and_check): New.
6279         (build_conditional_expr): Use it.
6280         (build_binary_op): Likewise.
6281
6282 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
6283
6284         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
6285
6286         PR debug/43150
6287         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
6288         bounds even for -O+.
6289         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
6290         expr needs to have DECL_NAME set.
6291
6292 2010-02-24  Nick Clifton  <nickc@redhat.com>
6293
6294         * config/mep/mep.c: Include gimple.h.
6295         (mep_function_uses_sp): Delete unused function.
6296         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
6297         parameters.  Use unsigned integers to count args.  Return a
6298         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
6299
6300 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
6301
6302         PR target/43107
6303         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
6304         greater or equal to nelt instead of 2 * nelt.
6305         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
6306         with nelt - 1.
6307
6308 2010-02-23  Jason Merrill  <jason@redhat.com>
6309
6310         PR debug/42800
6311         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
6312         in cfun->local_decls even if they have register types.
6313
6314         PR c++/42837
6315         * stor-layout.c (place_field): Don't warn about unnecessary
6316         DECL_PACKED if the type is packed.
6317
6318 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
6319
6320         PR target/43139
6321         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
6322         GOTOFF relocs, even when the base reg isn't pic pointer.
6323
6324 2010-02-23  Michael Matz  <matz@suse.de>
6325
6326         PR debug/43077
6327         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
6328         (expand_gimple_basic_block): Generate and use debug temps if there
6329         are debug uses left after the last real use of TERed ssa names.
6330         Unlink debug immediate uses when they are expanded.
6331
6332 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6333
6334         PR 43123
6335         * config/i386/i386.c (override_options): Reorganise to provide
6336         better error messages.
6337
6338 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
6339
6340         PR middle-end/43083
6341         * graphite-scop-detection.c (create_single_exit_edge): Move
6342         the call to find_single_exit_edge to....
6343         (create_sese_edges): ...here.  Don't handle multiple edges
6344         exiting the function.
6345         (build_graphite_scops): Don't handle multiple edges
6346         exiting the function.
6347
6348 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
6349
6350         PR middle-end/43097
6351         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
6352         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
6353
6354 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
6355
6356         PR middle-end/43026
6357         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
6358
6359 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6360
6361         PR c++/43126
6362         * c-typeck.c (convert_arguments): Print declaration location.
6363         * c-common.c (validate_nargs): Rename as
6364         builtin_function_validate_nargs.
6365         (check_builtin_function_arguments): Update.
6366
6367 2010-02-22  Richard Guenther  <rguenther@suse.de>
6368
6369         PR lto/43045
6370         * tree-inline.c (declare_return_variable): Use the type of
6371         the call stmt lhs if available.
6372
6373 2010-02-22  Duncan Sands  <baldrick@free.fr>
6374
6375         * passes.c (register_pass): Always consider all pass lists when
6376         ref_pass_instance_number is zero.
6377
6378 2010-02-22  Richard Guenther  <rguenther@suse.de>
6379
6380         PR tree-optimization/42749
6381         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
6382         parameter.  Do arithmetic in the original type.
6383         (update_accumulator_with_ops): Likewise.
6384         (adjust_accumulator_values): Adjust.
6385
6386 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6387
6388         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
6389         (QI to BLKmode splitter): New splitter.
6390
6391 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
6392
6393         * config/i386/i386.c (initial_ix86_tune_features): Turn on
6394         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
6395
6396 2010-02-22  Richard Guenther  <rguenther@suse.de>
6397
6398         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
6399
6400 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
6401
6402         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
6403         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
6404         ($(T)crti.o, $(T)crtn.o): Remove rules.
6405
6406 2010-02-21  Tobias Burnus  <burnus@net-b.de>
6407
6408         PR fortran/35259
6409         * doc/invoke.texi (-fassociative-math): Document that this
6410         option is automatically enabled for Fortran.
6411
6412 2010-02-20  David S. Miller  <davem@davemloft.net>
6413
6414         * configure.ac: Test if linker and assembler properly support
6415         GOTDATA_OP relocations.
6416         * configure: Rebuild.
6417         * config.in: Likewise.
6418         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
6419         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
6420         (movsi_high_pic): Likewise.
6421         (movdi_lo_sum_pic): Likewise.
6422         (movdi_high_pic): Likewise.
6423         (movsi_pic_gotdata_op): New pattern.
6424         (movdi_pic_gotdata_op): Likewise.
6425         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
6426         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
6427
6428 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
6429
6430         PR target/43067
6431         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
6432         attribute to ssemul.
6433         (xop_mulv2div2di3_high): Ditto.
6434
6435 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6436
6437         PR c++/35669
6438         * c.opt (Wconversion-null): New option.
6439         * doc/invoke.texi (Wconversion-null): Document.
6440
6441 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6442
6443         * common.opt (Wlarger-than-): Add Undocumented.
6444
6445 2010-02-19  Mike Stump  <mikestump@comcast.net>
6446
6447         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
6448
6449 2010-02-19  Jason Merrill  <jason@redhat.com>
6450
6451         PR target/40332
6452         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
6453         * configure: Likewise.
6454
6455 2010-02-20  Alan Modra  <amodra@gmail.com>
6456
6457         PR middle-end/42344
6458         * cgraph.h (cgraph_make_decl_local): Declare.
6459         * cgraph.c (cgraph_make_decl_local): New function.
6460         (cgraph_make_node_local): Use it.
6461         * cgraphunit.c (cgraph_function_versioning): Likewise.
6462         * ipa.c (function_and_variable_visibility): Likewise.
6463
6464 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
6465
6466         PR bootstrap/43121
6467         * except.c (sjlj_emit_function_enter): Don't call
6468         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
6469         directly.
6470         * rtl.h (add_reg_br_prob_note): Remove prototype.
6471
6472 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6473
6474         PR 41779
6475         * c-common.c (conversion_warning): Remove widening conversions
6476         before checking the conversion of integers to reals.
6477
6478 2010-02-19  Mike Stump  <mikestump@comcast.net>
6479
6480         PR middle-end/43125
6481         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
6482
6483         PR objc/43061
6484         * cgraphunit.c (process_function_and_variable_attributes): Check
6485         DECL_PRESERVE_P instead of looking up attribute "used".
6486         * ipa-pure-const.c (check_decl): Likewise.
6487         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
6488         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
6489         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
6490         instead of attribute "used".
6491         * config/sol2-c.c (solaris_pragma_init): Likewise.
6492         (solaris_pragma_fini): Likewise.
6493
6494 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
6495
6496         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
6497         Use XCNEW instead of xcalloc.
6498         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
6499         XNEW instead of xmalloc.
6500         (get_fields): Use XNEWVEC instead of xmalloc.
6501
6502         PR debug/43084
6503         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
6504         populate vars array.
6505         (create_new_general_access): For debug stmts just reset value.
6506         (get_stmt_accesses): For accesses within debug stmts just record them
6507         using add_access_to_acc_sites instead of preventing the peeling or
6508         counting them as accesses.
6509
6510         PR middle-end/42233
6511         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
6512
6513 2010-02-19  Richard Guenther  <rguenther@suse.de>
6514
6515         PR tree-optimization/42916
6516         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
6517         instructions.
6518
6519 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
6520
6521         * configure.ac: Replace all uses of changequote in macro arguments
6522         with proper quoting.
6523
6524 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
6525
6526         PR middle-end/42233
6527         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
6528
6529 2010-02-19  Richard Guenther  <rguenther@suse.de>
6530
6531         PR tree-optimization/42944
6532         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
6533         test for aliasing with errno.
6534
6535 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
6536
6537         PR middle-end/42233
6538         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
6539         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
6540         * dojump.c: Include output.h.
6541         (inv): New inline function.
6542         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
6543         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
6544         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
6545         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
6546         argument, pass it down to other calls.
6547         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
6548         add REG_BR_PROB note to the conditional jump.
6549         * cfgexpand.c (add_reg_br_prob_note): Removed.
6550         (expand_gimple_cond): Don't call it, add the probability
6551         as last argument to jumpif_1/jumpifnot_1.
6552         * Makefile.in (dojump.o): Depend on output.h.
6553         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
6554         callers.
6555         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
6556         * stmt.c (do_jump_if_equal): Likewise.
6557         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
6558         * loop-unswitch.c (compare_and_jump_seq): Likewise.
6559         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
6560         Likewise.
6561         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
6562         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
6563         jumpifnot_1 callers.
6564         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
6565         callers.
6566         (store_expr): Adjust jumpifnot caller.
6567         (store_constructor): Adjust jumpif caller.
6568
6569         PR middle-end/42233
6570         * gimplify.c (gimple_boolify): For __builtin_expect call
6571         gimple_boolify also on its first argument.
6572
6573 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
6574
6575         * configure.ac (gnu-unique-object): Wrap regexps using [] in
6576         changequote block.
6577         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
6578         * configure: Regenerated.
6579
6580 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6581
6582         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
6583         lang_hooks.types_compatible_p instead of comptypes.
6584
6585 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
6586
6587         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
6588         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
6589         if __prefer_thumb__ is defined.
6590
6591 2010-02-18  Martin Jambor  <mjambor@suse.cz>
6592
6593         PR tree-optimization/43066
6594         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
6595         array with zero-sized element type.
6596
6597 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
6598
6599         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
6600         rtx, allocate struct var_loc_node here and return it to the
6601         caller, and only if it is actually needed.
6602         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
6603         move it earlier and return immediately if it returns NULL.
6604
6605 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
6606
6607         * config/sparc/gas.h: New file.  Restore
6608         TARGET_ASM_NAMED_SECTION to its ELF default.
6609         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
6610         check !HAVE_GNU_AS.
6611         * config/sparc/sparc.c (sparc_elf_asm_named_section):
6612         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
6613         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
6614         after sparc/sysv4.h.
6615
6616 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
6617
6618         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
6619
6620 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
6621
6622         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
6623         patterns from predicated pattern.
6624
6625 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
6626
6627         PR target/43103
6628         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
6629         for insn mnemonic suffix.
6630
6631 2010-02-17  Richard Guenther  <rguenther@suse.de>
6632
6633         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
6634         to loop PHI nodes.
6635
6636 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
6637
6638         PR debug/42918
6639         * caller-save.c (save_call_clobbered_regs): If BB ends with
6640         a DEBUG_INSN, move any notes in between last real insn and the last
6641         DEBUG_INSN after the last DEBUG_INSN.
6642
6643 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
6644
6645         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
6646         Fix return type.  Fix argument type.  Explain meaning of return value.
6647
6648 2010-02-16  Richard Guenther  <rguenther@suse.de>
6649
6650         PR tree-optimization/41043
6651         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
6652         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
6653         statements ...
6654         (vrp_visit_phi_node): ... but only for loop PHI nodes.
6655
6656 2010-02-16  Ira Rosen  <irar@il.ibm.com>
6657
6658         PR tree-optimization/43074
6659         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
6660         * tree-vect-loop.c (vect_analyze_loop_operations): Add
6661         vectorizable cycles in hybrid SLP check.
6662         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
6663
6664 2010-02-16  Richard Guenther  <rguenther@suse.de>
6665
6666         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
6667         (true_dependence): If memrefs_conflict_p computes must-alias
6668         trust it.  Move TBAA check after offset-based disambiguation.
6669         (canon_true_dependence): Likewise.
6670
6671 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
6672
6673         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
6674         * doc/invoke.texi: Document it.
6675         * var-tracking.c: Include toplev.h and params.h.
6676         (vt_find_locations): Return bool indicating success.  Compute
6677         hash sizes unconditionally.  Check new parameter, report.
6678         (variable_tracking_main_1): Check vt_find_locations results and
6679         retry.  Renamed from...
6680         (variable_tracking_main): ... this.  New wrapper to preserve
6681         flag_var_tracking_assignments.
6682         * Makefile.in (var-tracking.o): Adjust dependencies.
6683
6684 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
6685             Jakub Jelinek <jakub@redhat.com>
6686
6687         PR target/42854
6688         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
6689         if weak_import attribute is present.
6690         * config/darwin.c (machopic_select_section): Likewise.
6691
6692 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
6693
6694         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
6695         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
6696         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
6697         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
6698
6699         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
6700         types.
6701
6702         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
6703         Fix argument types.
6704
6705         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
6706         Rewrite text to refer to the names.
6707
6708 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
6709
6710         * config/i386/i386-builtin-types.def
6711         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
6712         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
6713         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
6714         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
6715         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
6716         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
6717         IX86_BUILTIN_VPERMIL2PS256.
6718         (MULTI_ARG_4_DF2_DI_I): Defined.
6719         (MULTI_ARG_4_DF2_DI_I1): Defined.
6720         (MULTI_ARG_4_SF2_SI_I): Defined.
6721         (MULTI_ARG_4_SF2_SI_I1): Defined.
6722         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
6723         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
6724         __builtin_ia32_vpermil2ps256.
6725         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
6726         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
6727         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
6728         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
6729         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
6730         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
6731         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
6732         CODE_FOR_xop_vpermil2v8sf3.
6733         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
6734         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
6735         * config/i386/xopintrin.h (_mm_permute2_pd): New.
6736         (_mm256_permute2_pd): New.
6737         (_mm_permute2_ps): New.
6738         (_mm256_permute2_ps): New.
6739
6740 2010-02-15  Nick Clifton  <nickc@redhat.com>
6741
6742         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
6743         boolean parameters.  Use emit_jump_insn when emitting a pop
6744         instruction containing a return insn.
6745         (push): Use 'true' rather than '1' as second parameter to F.
6746         (h8300_expand_prologue): Likewise.
6747         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
6748         (h8300_expand_epilogue): Likewise.
6749
6750 2010-02-15  Richard Guenther  <rguenther@suse.de>
6751
6752         PR middle-end/43068
6753         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
6754         if that is zero.
6755
6756 2010-02-15  Nick Clifton  <nickc@redhat.com>
6757
6758         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
6759         delta.
6760
6761 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
6762
6763         * intl.c (fake_ngettext): New function.
6764         * intl.h (fake_ngettext): Declare.
6765         (ngettext): Define macro.
6766         * collect2.c (notice_translated): New function.
6767         (main): Use notice_translated and ngettext.
6768         * collect2.h (notice_translated): Declare.
6769
6770 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
6771
6772         * reorg.c (delete_computation): Comment fixes.
6773         * caller-save.c (setup_save_areas): Idem.
6774         * sel-sched-dump.c (dump_lv_set): Idem.
6775         * rtl.def: Idem.
6776
6777 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6778
6779         * config/s390/s390.c (s390_sched_init): New function.
6780         (TARGET_SCHED_INIT): Target hook defined.
6781
6782 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
6783             Jack Howarth  <howarth@bromo.med.uc.edu>
6784             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
6785
6786         PR target/42982
6787         Partial revert of unintended change in fix for PR41605.
6788         * config/darwin.h: Fix typo.
6789         * config/darwin9.h: Same.
6790
6791 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
6792
6793         * c-pch.c (pch_init): Clear v.
6794
6795 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
6796
6797         PR middle-end/42930
6798         * graphite-scop-detection.c (graphite_can_represent_scev): Call
6799         graphite_can_represent_init for MULT_EXPR.
6800
6801 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
6802
6803         PR middle-end/42914
6804         PR middle-end/42530
6805         * graphite-sese-to-poly.c (remove_phi): New.
6806         (translate_scalar_reduction_to_array): Call remove_phi.
6807
6808 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
6809
6810         PR middle-end/42771
6811         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
6812         * graphite-clast-to-gimple.h (gloog): Update declaration.
6813         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
6814         * graphite-poly.h (struct poly_bb): Add missing comments.
6815         (struct scop): Add poly_scop_p field.
6816         (POLY_SCOP_P): New.
6817         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
6818         * graphite.c (graphite_transform_loops): Build the polyhedral
6819         representation for each scop before code generation.
6820         * sese.c (rename_variables_in_operand): Removed.
6821         (rename_variables_in_expr): Return the renamed expression.
6822         (rename_sese_parameters): New.
6823         * sese.h (rename_sese_parameters): Declared.
6824
6825 2010-02-11  Richard Guenther  <rguenther@suse.de>
6826
6827         PR tree-optimization/42998
6828         * tree-ssa-pre.c (create_expression_by_pieces): Treat
6829         POINTER_PLUS_EXPR properly.
6830
6831 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
6832             Changpeng Fang  <changpeng.fang@amd.com>
6833
6834         PR middle-end/40886
6835         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
6836         the cost of an IV candidate when the IV is used in a test against zero.
6837
6838         * gcc.dg/tree-ssa/ivopts-3.c: New.
6839
6840 2010-02-11  Richard Guenther  <rguenther@suse.de>
6841
6842         PR lto/41664
6843         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
6844         pointer-vs-decl case by swapping refs.  Handle some cases
6845         of pointer-vs-decl disambiguations more conservatively.
6846         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
6847         to false after expanding.
6848
6849 2010-02-11  Richard Guenther  <rguenther@suse.de>
6850
6851         PR driver/43021
6852         * gcc.c (process_command): Handle LTO file@offset case more
6853         appropriately.
6854
6855 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
6856
6857         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
6858         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
6859         of DEBUG_INSNs.
6860         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
6861
6862         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
6863         if MEM's mode size isn't DWARF2_ADDR_SIZE.
6864         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
6865         Optimize eq/ne comparisons when both arguments are known to be
6866         zero-extended.
6867         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
6868         Don't mask operands unnecessarily if they are known to be already
6869         zero-extended.
6870
6871 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
6872
6873         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
6874         instead of loop.
6875
6876 2010-02-10  Richard Guenther  <rguenther@suse.de>
6877
6878         PR tree-optimization/43017
6879         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
6880         for wrapping signed arithmetic.
6881
6882 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
6883
6884         PR debug/43010
6885         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
6886         if no debug info should be emitted for it.
6887
6888 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
6889
6890         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
6891         note when flag_exceptions is set.
6892
6893 2010-02-10  Duncan Sands  <baldrick@free.fr>
6894
6895         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
6896
6897 2010-02-10  Richard Guenther  <rguenther@suse.de>
6898
6899         PR c/43007
6900         * tree.c (get_unwidened): Handle constants.
6901         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
6902
6903 2010-02-10  Martin Jambor  <mjambor@suse.cz>
6904
6905         PR lto/42985
6906         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
6907         check for variable argument counts independently.
6908
6909 2010-02-10  Christian Bruel  <christian.bruel@st.com>
6910
6911         PR target/42841
6912         * config/sh/sh.c (find_barrier): Increase length for non delayed
6913         conditional branches.
6914
6915 2010-02-10  Christian Bruel  <christian.bruel@st.com>
6916
6917         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
6918
6919 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
6920
6921         * builtins.c (set_builtin_user_assembler_name): Also handle
6922         ffs if int is smaller than word.
6923
6924 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
6925
6926         PR middle-end/42973
6927         * ira-conflicts.c (get_dup): Remove.
6928         (process_reg_shuffles): Add new parameter.  Use it as an
6929         additional guard for copy generation.
6930         (add_insn_allocno_copies): Rewrite.
6931
6932 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
6933
6934         * common.opt (fsched2-use-traces): Preserved for backward
6935         compatibility.
6936         * doc/invoke.texi: Remove the documentation about option
6937         -fsched2-use-traces.
6938         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
6939         flag_sched2_use_traces.
6940         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
6941         the backward compatibility flag section.
6942
6943 2010-02-09  Richard Guenther  <rguenther@suse.de>
6944
6945         PR tree-optimization/43008
6946         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
6947         make HEAP variables initialized from global memory if they
6948         are not known builtin functions.
6949         (find_func_aliases): Adjust.
6950
6951 2010-02-09  Richard Guenther  <rguenther@suse.de>
6952
6953         PR tree-optimization/43000
6954         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
6955         arithmetic manually.
6956
6957 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
6958
6959         PR tree-optimization/42931
6960         * tree-loop-linear.c (try_interchange_loops): Don't call
6961         double_int_mul if estimated_loop_iterations failed.
6962
6963 2010-02-08  Martin Jambor  <mjambor@suse.cz>
6964
6965         PR middle-end/42898
6966         * tree-sra.c (build_accesses_from_assign): Do not mark in
6967         should_scalarize_away_bitmap if stmt has volatile ops.
6968         (sra_modify_assign): Do not process assigns piecemeal if if stmt
6969         has volatile ops.
6970
6971 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
6972
6973         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
6974
6975 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
6976
6977         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
6978         before the pattern.
6979
6980 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
6981
6982         PR middle-end/42946
6983         * df-core.c (df_finish_pass): Change type of saved_flags to int.
6984
6985 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
6986
6987         PR middle-end/42988
6988         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
6989         to unknown_dependence.
6990         (graphite_legal_transform_dr): Handle the unknown_dependence.
6991         (graphite_carried_dependence_level_k): Same.
6992
6993 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
6994
6995         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
6996
6997 2010-02-07  Richard Guenther  <rguenther@suse.de>
6998
6999         PR middle-end/42991
7000         * expr.c (get_inner_reference): Always initialize *pbitsize.
7001
7002 2010-02-07  Richard Guenther  <rguenther@suse.de>
7003
7004         PR middle-end/42956
7005         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
7006         new ARRAY_REFs on variable size element or minimal index arrays.
7007         Complete.
7008         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
7009         gimple_fold_indirect_ref.
7010
7011 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
7012
7013         PR target/42957
7014         * arm.c (arm_override_options): Just return if the user has specified
7015         an invalid fpu name.
7016
7017 2010-02-03  Jason Merrill  <jason@redhat.com>
7018
7019         PR c++/42870
7020         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
7021         i386_pe_maybe_record_exported_symbol.
7022
7023 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
7024
7025         PR target/42924
7026         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
7027         (pa_delegitimize_address): New function.
7028
7029 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
7030
7031         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
7032         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
7033
7034 2010-02-05  Richard Guenther  <rguenther@suse.de>
7035
7036         PR lto/42762
7037         * lto-streamer-in.c (get_resolution): Deal with references
7038         to undefined functions.
7039
7040 2010-02-05  Richard Guenther  <rguenther@suse.de>
7041
7042         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
7043         (fold_const_aggregate_ref): Likewise.
7044         (ccp_fold_stmt): Substitute loads.
7045         (maybe_fold_reference): Verify types before substituting.
7046         Unshare properly.
7047         (fold_gimple_assign): Unshare properly.
7048         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
7049
7050 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
7051
7052         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
7053         for rs6000_gen_cell_microcode.
7054
7055 2010-02-04  Richard Guenther  <rguenther@suse.de>
7056
7057         PR rtl-optimization/42952
7058         * dse.c (const_or_frame_p): Remove MEM handling.
7059
7060 2010-02-04  Nick Clifton  <nickc@redhat.com>
7061
7062         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
7063         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
7064         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
7065         (mn10300_asm_output_mi_thunk): New function.
7066         (mn10300_can_output_mu_thunk): New function.
7067         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
7068         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
7069         (FUNCTION_ARG): Delete incorrect comment.
7070
7071 2010-02-03  Jason Merrill  <jason@redhat.com>
7072
7073         PR c++/40138
7074         * fold-const.c (operand_equal_p): Handle erroneous types.
7075
7076 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
7077
7078         * config/h8300/h8300.md (can_delay): Fix attibute condition.
7079
7080 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
7081
7082         PR rtl-optimization/42941
7083         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
7084         of xmalloc.
7085
7086 2010-02-03  Jason Merrill  <jason@redhat.com>
7087
7088         PR c++/35652
7089         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
7090
7091 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
7092
7093         PR debug/42896
7094         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
7095         (cselib_reset_table): Renamed from...
7096         (cselib_reset_table_with_next_value): ... this.
7097         (cselib_get_next_uid): Renamed from...
7098         (cselib_get_next_unknown_value): ... this.
7099         * cselib.c (next_uid): Renamed from...
7100         (next_unknown_value): ... this.
7101         (cselib_clear_table): Adjust.
7102         (cselib_reset_table): Adjust.  Renamed from...
7103         (cselib_reset_table_with_next_value): ... this.
7104         (cselib_get_next_uid): Adjust.  Renamed from...
7105         (cselib_get_next_unknown_value): ... this.
7106         (get_value_hash): Use hash.
7107         (cselib_hash_rtx): Likewise.
7108         (new_cselib_val): Adjust.  Set and dump uid.
7109         (cselib_lookup_mem): Pass next_uid as hash.
7110         (cselib_subst_to_values): Likewise.
7111         (cselib_log_lookup): Dump uid.
7112         (cselib_lookup): Pass next_uid as hash.  Adjust.
7113         (cselib_process_insn): Adjust.
7114         (cselib_init): Initialize next_uid.
7115         (cselib_finish): Adjust.
7116         (dump_cselib_table): Likewise.
7117         * dse.c (canon_address): Dump value uid.
7118         * print-rtl.c (print_rtx): Print value uid.
7119         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
7120         (dvuid): New type.
7121         (dv_uid): New function, sort of renamed from...
7122         (dv_htab_hash): ... this, reimplemented in terms of it and...
7123         (dv_uid2hash): ... this.  New.
7124         (variable_htab_eq): Drop excess assertions.
7125         (tie_break_pointers): Removed.
7126         (canon_value_cmp): Compare uids.
7127         (variable_post_merge_New_vals): Print uids.
7128         (vt_add_function_parameters): Adjust.
7129         (vt_initialize): Reset table.  Adjust.
7130
7131 2010-02-03  Richard Guenther  <rguenther@suse.de>
7132
7133         PR tree-optimization/42944
7134         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
7135         (call_may_clobber_ref_p_1): Likewise.  Properly handle
7136         malloc and calloc clobbering errno.
7137
7138 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
7139
7140         * doc/invoke.texi: Fix name of sched1 dump.
7141
7142         * opts.c (decode_options): Set flag_tree_switch_conversion
7143         only conditionally on optimize >= 2.
7144
7145         * gcse.c: Assorted comment fixes in pass description.
7146
7147 2010-02-03  Anthony Green  <green@moxielogic.com>
7148
7149         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
7150         nop padding in order to maintain alignment of storage location of
7151         target function address.
7152         (moxie_trampoline_init): Store target function address at newly
7153         aligned location.
7154         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
7155         to 32.
7156         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
7157
7158 2010-02-03  Richard Guenther  <rguenther@suse.de>
7159
7160         PR middle-end/42927
7161         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
7162
7163 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7164
7165         * config.gcc: Reenable check for obsolete targets.
7166         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
7167         mips-sgi-irix6.[0-4]*.
7168
7169 2010-02-02  Nick Clifton  <nickc@redhat.com>
7170
7171         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
7172         constant size of 4 as being the same as 0.
7173         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
7174         can take values in the range 0..4.
7175
7176 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
7177
7178         PR java/41991
7179         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
7180         as _darwin10_Unwind_FindEnclosingFunction().
7181         * libgcc-libsystem.ver: New.
7182
7183 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
7184
7185         PR target/41399
7186         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
7187         implicitly set registers.
7188
7189 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
7190
7191         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
7192         (arm_override_options): Allow automatic selection of the thread
7193         pointer register if thumb2.
7194         (legitimize_pic_address): Improve code sequences for Thumb2.
7195         (arm_call_tls_get_addr): Likewise.
7196         (legitimize_tls_address): Likewise.
7197         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
7198         (pic_load_addr_32bit): ... this.  New named pattern.
7199         * thumb2.md (pic_load_addr_thumb2): Delete.
7200         (pic_load_dot_plus_four): Delete.
7201         (tls_load_dot_plus_four): New named pattern.
7202
7203 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7204
7205         PR libgomp/29986
7206         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
7207         Document fix for TLS bug.
7208
7209 2010-01-31  Richard Guenther  <rguenther@suse.de>
7210
7211         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
7212         conservatively correct.
7213
7214 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7215
7216         PR target/42850
7217         Revert:
7218         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7219
7220         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
7221
7222 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7223
7224         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
7225
7226 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
7227
7228         * config.gcc: Adjust order of makefile fragments for mingw targets.
7229
7230 2010-01-31  Richard Guenther  <rguenther@suse.de>
7231
7232         PR middle-end/42898
7233         * gimplify.c (gimplify_init_constructor): For volatile LHS
7234         initialize a temporary.
7235
7236 2010-01-31  Matthias Klose  <doko@ubuntu.com>
7237
7238         * configure.ac: Fix __stack_chk_fail check for cross builds configured
7239         --with-headers
7240         * configure: Regenerate.
7241
7242 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
7243
7244         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
7245         the same alias set and their sizes different constantness.
7246         (aliasing_component_refs_p): Revert 2009-10-24 change.
7247
7248 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7249
7250         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
7251         unused.
7252
7253 2010-01-29  Richard Guenther  <rguenther@suse.de>
7254
7255         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
7256         Assert we successfully updated the call.
7257
7258 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
7259
7260         PR rtl-optimization/42889
7261         * df.h (df_set_bb_dirty_nonlr): New prototype.
7262         * df-core.c (df_set_bb_dirty_nonlr): New function.
7263         * df-scan.c (df_insn_rescan): Call it instead of
7264         df_set_bb_dirty for DEBUG_INSNs.
7265
7266 2010-01-29  Richard Guenther  <rguenther@suse.de>
7267
7268         PR middle-end/37448
7269         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
7270         quadratic behavior in most cases.
7271
7272 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
7273
7274         PR target/42891
7275         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
7276         in the call to gen_x86_movsicc_0_m1.
7277
7278 2010-01-28  Richard Guenther  <rguenther@suse.de>
7279
7280         PR tree-optimization/42871
7281         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
7282
7283 2010-01-28  Richard Guenther  <rguenther@suse.de>
7284
7285         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
7286         into call arguments.
7287
7288 2010-01-28  Richard Guenther  <rguenther@suse.de>
7289
7290         PR middle-end/42883
7291         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
7292         the forwarder if the destination is an EH landing pad.
7293
7294 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
7295
7296         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
7297         block list passed to gimple_duplicate_sese_tail.
7298         (parallelize_loops): Avoid parallelization when the function
7299         has_nonlocal_label.
7300         Avoid parallelization when the preheader is IRREDUCIBLE.
7301         Try to optimize when estimated_loop_iterations_int is unresolved.
7302         Add the loop's location to the dump file.
7303         * tree-cfg.c (add_phi_args_after_redirect): Remove.
7304         (gimple_duplicate_sese_tail): Remove the check for the latch.
7305         Redirect nexits to the exit block.
7306         Remove handling of the incoming edges to the latch.
7307         Redirect the backedge from the copied latch to the exit bb.
7308
7309 2010-01-28  Michael Matz  <matz@suse.de>
7310
7311         PR target/42881
7312         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
7313         Wrap force_reg into a sequence, emit it before user.
7314
7315 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
7316
7317         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
7318         (arm_rev): New.
7319         (arm_legacy_rev): Likewise.
7320         (thumb_legacy_rev): Likewise.
7321
7322 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
7323
7324         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
7325         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
7326         on MEM's address failed, try avoid_constant_pool_reference and
7327         recurse if it returned something different.
7328         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
7329         address, try avoid_constant_pool_reference and recurse if it
7330         returned something different.
7331         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
7332         address and avoid_constant_pool_reference returned something
7333         different, don't set have_address.
7334
7335 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
7336
7337         PR debug/42861
7338         * var-tracking.c (val_store): Add modified argument, obey it.
7339         Adjust callers.
7340         (count_uses): Move down logging of main.
7341         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
7342         don't need resolution.
7343         (emit_notes_in_bb): Likewise.
7344
7345 2010-01-27  Richard Guenther  <rguenther@suse.de>
7346
7347         PR middle-end/42878
7348         * tree-inline.c (remap_decl): Delay remapping of SSA name
7349         default definitions until we need them.
7350
7351 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
7352
7353         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
7354         (rs6000_delegitimize_address): New function.
7355
7356         * config/s390/s390.c (s390_delegitimize_address): Call
7357         delegitimize_mem_from_attrs.
7358
7359         PR middle-end/42874
7360         * tree-inline.c (cannot_copy_type_1): Removed.
7361         (copy_forbidden): Don't forbid copying of functions containing
7362         records/unions with variable length fields.
7363
7364 2010-01-27  Christian Bruel  <christian.bruel@st.com>
7365
7366         Revert:
7367         PR target/42841
7368         * config/sh/sh.c (find_barrier): Increase length for non delayed
7369         conditional branches.
7370
7371 2010-01-27  Matthias Klose  <doko@ubuntu.com>
7372
7373         * configure.ac (gnu-unique-object): Fix ldd version check.
7374         * configure: Regenerate.
7375
7376 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7377
7378         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
7379         HAVE_GNU_AS value.
7380         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
7381         Test for HAVE_GNU_AS value.
7382
7383 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7384
7385         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
7386         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
7387         INT64_TYPE): Define.
7388         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
7389         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7390         INT_LEAST64_TYPE): Define.
7391         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
7392         UINT_LEAST64_TYPE): Define.
7393         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
7394         INT_FAST64_TYPE): Define.
7395         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7396         UINT_FAST64_TYPE): Define.
7397         (INTMAX_TYPE, UINTMAX_TYPE): Define.
7398         (INTPTR_TYPE, UINTPTR_TYPE): Define.
7399         (SIG_ATOMIC_TYPE): Define.
7400
7401 2010-01-26  Richard Guenther  <rguenther@suse.de>
7402
7403         * df-scan.c (df_scan_set_bb_info): Remove assert.
7404         (df_insn_rescan_debug_internal): Merge asserts.
7405         (df_install_ref): Likewise.
7406         (df_mark_reg): Use bitmap_set_range.
7407         (df_hard_reg_used_p): Remove assert.
7408         (df_hard_reg_used_count): Likewise.
7409
7410 2010-01-26  Richard Guenther  <rguenther@suse.de>
7411
7412         PR rtl-optimization/42685
7413         * web.c (web_main): Ignore DEBUG_INSNs.
7414
7415 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
7416
7417         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
7418
7419         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
7420         Fix types of fndecl and arglist parameters.
7421
7422 2010-01-26  Richard Guenther  <rguenther@suse.de>
7423
7424         PR middle-end/42806
7425         * tree-eh.c (unsplit_eh): Skip debug insns.
7426
7427 2010-01-26  Richard Guenther  <rguenther@suse.de>
7428
7429         PR tree-optimization/42250
7430         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
7431
7432 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
7433
7434         PR fortran/42866
7435         * omp-low.c (expand_omp_sections): Only use single_pred if
7436         l2_bb is single_pred_p.
7437
7438 2010-01-25  Christian Bruel  <christian.bruel@st.com>
7439
7440         PR target/42841
7441         * config/sh/sh.c (find_barrier): Increase length for non delayed
7442         conditional branches.
7443         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
7444
7445 2010-01-24  David S. Miller  <davem@davemloft.net>
7446
7447         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
7448         define if not using GAS.
7449         * config/sparc/sparc.c (sparc_elf_asm_named_section):
7450         Likewise.  Delete SECTION_MERGE code, which is only applicable
7451         when using GAS.
7452
7453 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
7454
7455         PR c++/42748
7456         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
7457         mangling of va_list in system headers.
7458
7459 2010-01-23  Toon Moene  <toon@moene.org>
7460
7461         * tree-predcom.c (combine_chains): Return NULL, not false.
7462
7463 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
7464
7465         * tree-loop-distribution.c (distribute_loop): Fix declaration and
7466         initialization of variable res to agree with return type.
7467
7468 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
7469
7470         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
7471         * tree-sra.c: Add include of expr.h.
7472
7473 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
7474
7475         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
7476         insert the debug stmt on the single non-EH edge from the stmt.
7477
7478 2010-01-22  Richard Henderson  <rth@redhat.com>
7479
7480         PR tree-opt/42833
7481         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
7482         the RHS until after generate_subtree_copies has insertted its
7483         code before the current statement.
7484
7485 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
7486
7487         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
7488
7489         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
7490
7491 2010-01-21  Martin Jambor  <mjambor@suse.cz>
7492
7493         PR tree-optimization/42585
7494         * tree-sra.c (struct access): New field grp_total_scalarization.
7495         (dump_access): Dump the new field.
7496         (should_scalarize_away_bitmap): New variable.
7497         (cannot_scalarize_away_bitmap): Likewise.
7498         (sra_initialize): Allocate new bitmaps.
7499         (sra_deinitialize): Free new bitmaps.
7500         (create_access_1): New function.
7501         (create_access): Parts moved to create_access_1.
7502         (type_consists_of_records_p): New function.
7503         (completely_scalarize_record): Likewise.
7504         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
7505         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
7506         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
7507         access.
7508         (analyze_all_variable_accesses): Completely scalarize small eligible
7509         records.
7510
7511 2010-01-21  Martin Jambor  <mjambor@suse.cz>
7512
7513         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
7514
7515 2010-01-21  Andrew Haley  <aph@redhat.com>
7516
7517         * gcc.c (process_command): Move lang_specific_driver before
7518         setting cc_libexec_prefix.
7519
7520 2010-01-21  Richard Guenther  <rguenther@suse.de>
7521
7522         PR middle-end/19988
7523         * fold-const.c (negate_expr_p): Pretend only negative
7524         real constants are easily negatable.
7525
7526 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
7527             Jason Merrill  <jason@redhat.com>
7528
7529         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
7530         (TYPE_TRANSPARENT_AGGR): this, for union and record.
7531         * calls.c (initialize argument_information): Handle it.
7532         * c-common.c (handle_transparent_union_attribute): Use new name.
7533         * c-decl.c (finish_struct): Ditto.
7534         * c-typeck.c (type_lists_compatible_p): Ditto.
7535         (convert_for_assignment): Use new name and also handle record.
7536         * function.c (aggregate_value_p): Handle it.
7537         (pass_by_reference): Ditto.
7538         (assign_parm_data_types): Ditto.
7539         * print-tree.c (print_node): Ditto.
7540         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
7541         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
7542         * tree.c (first_field): New fn.
7543
7544 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
7545
7546         PR target/42818
7547         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
7548         even when linking statically, for now.
7549
7550 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
7551
7552         PR debug/42715
7553         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
7554         without a cselib val.
7555         (count_uses): Accept MO_VAL_SET with no val on stores.
7556         (add_stores): Likewise.
7557
7558 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
7559
7560         * var-tracking.c (check_value_val): Add a compile time assertion.
7561         (dv_is_decl_p): Simplify.
7562         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
7563         gcc_assert if ENABLE_CHECKING.
7564
7565 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
7566
7567         PR debug/42782
7568         * var-tracking.c: Include tree-flow.h.
7569         (mem_dies_at_call): New.
7570         (dataflow_set_preserve_mem_locs): Use it.
7571         (dataflow_set_remove_mem_locs): Likewise.
7572         (dump_var): Renamed from dump_variable.  Adjust all callers.
7573         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
7574         * Makefile.in (var-tracking.o): Adjust deps.
7575
7576 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
7577
7578         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
7579
7580 2010-01-20  Richard Guenther  <rguenther@suse.de>
7581
7582         PR tree-optimization/42717
7583         * tree-ssa-dce.c (get_live_post_dom): Remove.
7584         (forward_edge_to_pdom): Take an arbitrary edge to copy
7585         degenerate PHI args from.
7586         (remove_dead_stmt): Use the first post-dominator even if it
7587         does not contain live statements as redirection destination.
7588
7589 2010-01-20  Richard Guenther  <rguenther@suse.de>
7590
7591         * tree-inline.c (estimate_num_insns): Handle EH builtins.
7592
7593 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
7594
7595         * sel-sched.c (create_speculation_check): Remove set but not used
7596         variable twin.
7597         (try_transformation_cache): Remove set but not used variable ds.
7598         (calculate_privileged_insns): Remove set but not used variables
7599         cur_insn and min_spec_insn.
7600         (find_best_expr): Remove set but not used variable avail_n.
7601         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
7602         variable e.
7603         * cgraphunit.c (assemble_thunk): Remove set but not used variable
7604         false_label.
7605         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
7606         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
7607         new_scop_exit_edge.
7608
7609 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
7610
7611         PR bootstrap/42786
7612         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
7613         cpu types.  Add support for *-sse3 cpu types.
7614         (x86_64-*-*): Ditto.
7615
7616 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
7617
7618         PR middle-end/42803
7619         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
7620         argument, call initializer_constant_valid_p_1 instead of
7621         initializer_constant_valid_p, pass CACHE to it, return NULL
7622         immediately if first call returns NULL.
7623         (initializer_constant_valid_p_1): New function.
7624         (initializer_constant_valid_p): Use it.
7625
7626 2010-01-20  Thomas Quinot  <quinot@adacore.com>
7627
7628         * tree.def (PLACEHOLDER_EXPR): Fix comment.
7629
7630 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
7631
7632         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
7633         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
7634         (loc_list_from_tree): Don't handle unsigned division.  Handle
7635         signed modulo using DW_OP_{over,over,div,mul,minus}.
7636         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
7637         modulo instead of signed.
7638
7639 2010-01-20  DJ Delorie  <dj@redhat.com>
7640
7641         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
7642         (Fpa): Pass it
7643         (h8300_emit_stack_adjustment): Propogate it.
7644         (push): Pass it.
7645         (h8300_expand_prologue): Likewise.
7646         (h8300_expand_epilogue): Likewise.
7647
7648 2010-01-19  Michael Matz  <matz@suse.de>
7649
7650         PR tree-optimization/41783
7651         * tree-data-ref.c (toplevel): Include flags.h.
7652         (dump_data_dependence_relation):  Also dump the inputs if the
7653         result will be unknown.
7654         (split_constant_offset_1): Look through some conversions.
7655         * tree-predcom.c (determine_roots_comp): Restart a new chain if
7656         the offset from last element is too large.
7657         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
7658         (reassociate_to_the_same_stmt): Handle vector registers.
7659         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
7660         (e.g. conversions).
7661         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
7662         wide_prolog_niters argument, emit widening instructions.
7663         (vect_do_peeling_for_alignment): Adjust caller, use widened
7664         variant of the iteration cound.
7665         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
7666
7667 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7668
7669         PR target/38697
7670         * config/arm/neon-testgen.m (emit_automatics): New parameter
7671         features. Adjust for Fixed_return_reg feature.
7672         (test_intrinsic): Call emit_automatics with new feature.
7673         * config/arm/neon.ml: Update copyright years.
7674         (features): New Fixed_return_reg feature.
7675         (ops): Update feature for Vget_low.
7676
7677 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
7678
7679         PR tree-optimization/42719
7680         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
7681         stmt uses.
7682
7683         PR debug/42728
7684         * fwprop.c (all_uses_available_at): Return false if def_set dest
7685         is a REG that is used in def_insn.
7686
7687 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
7688
7689         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
7690
7691         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
7692         Add argument names.
7693
7694         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
7695
7696         * target.h (struct gcc_target) <secondary_reload>: Change type
7697         of last argument to secondary_reload_info *.
7698
7699 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
7700
7701         PR target/42774
7702         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
7703         memory references with unaligned offsets.  Remove CQImode handling.
7704         (unaligned_memory_operand): Return 1 for memory references with
7705         unaligned offsets.  Remove CQImode handling.
7706
7707 2010-01-18  Richard Guenther  <rguenther@suse.de>
7708
7709         PR middle-end/39954
7710         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
7711         builtin calls.
7712
7713 2010-01-18  Richard Guenther  <rguenther@suse.de>
7714
7715         PR tree-optimization/42781
7716         * tree-ssa-structalias.c (find_what_var_points_to): Skip
7717         restrict processing only if the original variable was artificial.
7718
7719 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
7720
7721         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
7722         find number of popped argument bytes.
7723
7724         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
7725         Fix the text that describes the return value for invalid insns.
7726
7727         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
7728
7729         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
7730         Clarify what 'cost of the -dependence' is.  Fix quoting.
7731
7732         * toplev.c (default_get_pch_validity): Rename argument to "sz".
7733         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
7734
7735 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
7736
7737         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
7738         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
7739
7740 2010-01-17  Richard Guenther  <rguenther@suse.de>
7741
7742         PR middle-end/42248
7743         * function.c (split_complex_args): Take a VEC to modify.
7744         (assign_parms_augmented_arg_list): Build a VEC instead of
7745         a chain of PARM_DECLs.
7746         (assign_parms_unsplit_complex): Take a VEC of arguments.
7747         Do not fixup unmodified parms.
7748         (assign_parms): Deal with the VEC.
7749         (gimplify_parameters): Likewise.
7750
7751 2010-01-17  Richard Guenther  <rguenther@suse.de>
7752
7753         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
7754         node existence check.
7755         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
7756         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
7757         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
7758         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
7759         (gimple_execute_on_growing_pred): Likewise.
7760
7761 2010-01-17  Richard Guenther  <rguenther@suse.de>
7762
7763         PR tree-optimization/42773
7764         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
7765         (compute_antic_aux): Likewise.
7766         (compute_partial_antic_aux): Likewise.
7767
7768 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
7769
7770         PR debug/42767
7771         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
7772         and US_TRUNCATE.
7773
7774 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
7775
7776         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
7777         appearance.
7778
7779         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
7780         Fix markup for strict argument.
7781
7782         (TARGET_SCHED_REORDER2): Fix argument types.
7783
7784         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
7785         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
7786
7787         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
7788         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
7789
7790         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
7791         Add argument name.
7792
7793         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
7794         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
7795         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
7796         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
7797         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
7798
7799         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
7800
7801         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
7802
7803         (TARGET_ASM_RELOC_RW_MASK): Add return type.
7804         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
7805
7806         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
7807
7808         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
7809         Use prototype.
7810
7811         (TARGET_ASM_NAMED_SECTION): Fix argument list.
7812
7813         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
7814         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
7815
7816         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
7817
7818         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
7819
7820         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
7821         referring to it.  Fix language.
7822
7823         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
7824
7825         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
7826
7827         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
7828
7829         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
7830
7831         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
7832         '@var{stream}.  Remove stray 'and'.
7833
7834         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
7835
7836         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
7837
7838         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
7839
7840         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
7841         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
7842
7843         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
7844         Fix description of return value.
7845         Rename argument "sz" to "len."
7846
7847         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
7848         Clarify meaning of 'true' return value.
7849
7850         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
7851
7852         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
7853         rep_mode versus mode_rep.
7854
7855         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
7856
7857         (TARGET_BUILTIN_DECL): Fix name.
7858
7859         (TARGET_COMMUTATIVE_P): Fix type of first argument.
7860
7861         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
7862
7863         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
7864
7865         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
7866
7867         (TARGET_RELAXED_ORDERING): Use @deftypevr.
7868
7869         (TARGET_GET_DRAP_RTX): Note that this is a hook.
7870         Clarify language.
7871
7872         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
7873         Rename argument tm_fn to md_fn.
7874
7875         (TARGET_OPTION_PRINT): Fix argument list.
7876
7877 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
7878
7879         PR target/42664
7880         * config/i386/i386.c (ix86_fixup_binary_operands):
7881         Revert FMA4 fixup of operands.
7882
7883 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7884
7885         PR gcc/42525
7886         * Makefile.in (write_entries_to_file, install-plugin):
7887         Use \012 instead of \n with tr.
7888
7889 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
7890
7891         * configure.ac (HAVE_AS_REF): New C macro.
7892         * configure: Regenerate.
7893         * config.in: Likewise.
7894         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
7895         if HAVE_AS_REF.
7896         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
7897         if HAVE_AS_REF.
7898
7899 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
7900
7901         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
7902
7903         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
7904
7905         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
7906
7907         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
7908
7909         (TARGET_IN_SMALL_DATA_P): Fix argument type.
7910
7911         (TARGET_BINDS_LOCAL_P): Fix argument type.
7912
7913         (TARGET_ASM_FILE_END): Use prototype.
7914
7915         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
7916
7917         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
7918
7919         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
7920
7921         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
7922
7923         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
7924         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
7925
7926         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
7927         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
7928
7929         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
7930         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
7931         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
7932         (TARGET_ADDR_SPACE_CONVERT): Likewise.
7933
7934         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
7935
7936         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
7937
7938         (TARGET_INIT_BUILTINS): Use prototype.
7939
7940         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
7941         Put 'const char *' in braces.  Fix parameter types.
7942         (TARGET_INVALID_CONVERSION): Fix parameter types.
7943         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
7944         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
7945
7946         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
7947         Fix argument type.
7948
7949         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
7950
7951         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
7952
7953 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
7954
7955         * doc/tm.texi (TARGET_HELP): Fix return type.
7956
7957         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
7958         in braces.  Fix argument types.
7959
7960         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
7961
7962         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
7963
7964         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
7965
7966         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
7967         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
7968
7969         (TARGET_MANGLE_TYPE): Fix argument types.
7970
7971         (TARGET_IRA_COVER_CLASSES): Use prototype.
7972
7973         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
7974
7975         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
7976
7977         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
7978
7979         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
7980
7981         (TARGET_CALLEE_COPIES): Fix argument types.
7982
7983         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
7984
7985         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
7986
7987         (TARGET_FUNCTION_VALUE): Fix argument types.
7988
7989         (TARGET_RETURN_IN_MSB): Fix argument type.
7990
7991         (TARGET_RETURN_IN_MEMORY): Fix argument types.
7992
7993         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
7994
7995         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
7996
7997         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
7998         agree with return type.
7999
8000         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
8001
8002 2010-01-15  Jing Yu  <jingyu@google.com>
8003
8004         PR rtl-optimization/42691
8005         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
8006         a pseudo to a constant and are merged, and adjust comments.
8007
8008 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
8009
8010         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
8011
8012 2010-01-15  Richard Guenther  <rguenther@suse.de>
8013
8014         PR middle-end/42739
8015         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
8016         labels of computed or non-local gotos to the destination.
8017         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
8018         landing pad label is the first label.
8019
8020 2010-01-15  Richard Guenther  <rguenther@suse.de>
8021
8022         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
8023
8024 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
8025
8026         PR target/42747
8027         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
8028         to allow generation of the xssqrtdp instruction on power7.
8029         (sqrtdf2_fpr): Ditto.
8030
8031 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
8032
8033         PR middle-end/42674
8034         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
8035         functions with noreturn attribute.
8036
8037         PR c++/42608
8038         * varasm.c (declare_weak): Add weak attribute to decl if it
8039         doesn't have one already.
8040         (assemble_external): Only add decls to weak_decls if they also
8041         have weak attribute.
8042
8043 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
8044
8045         * var-tracking.c (var_reg_delete): Don't delete the association
8046         between REGs and values or one-part variables if the register
8047         isn't clobbered.
8048
8049 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
8050
8051         PR debug/42657
8052         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
8053         because its first operand is a non-localized variable.
8054
8055 2010-01-14  Martin Jambor  <mjambor@suse.cz>
8056
8057         PR tree-optimization/42706
8058         * tree-sra.c (encountered_recursive_call): New variable.
8059         (encountered_unchangable_recursive_call): Likewise.
8060         (sra_initialize): Initialize both new variables.
8061         (callsite_has_enough_arguments_p): New function.
8062         (scan_function): Call decl and flags check only for IPA-SRA, check
8063         whether there is a recursive call and whether it has enough arguments.
8064         (all_callers_have_enough_arguments_p): New function.
8065         (convert_callers): Look for recursive calls only when
8066         encountered_recursive_call is set.
8067         (ipa_early_sra): Bail out either if
8068         !all_callers_have_enough_arguments_p or
8069         encountered_unchangable_recursive_call.
8070
8071 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
8072
8073         * sel-sched.c: Add 2010 to copyright years.
8074         * sel-sched-ir.c: Likewise.
8075         * sel-sched-ir.h: Likewise.
8076
8077 2010-01-14  Martin Jambor  <mjambor@suse.cz>
8078
8079         PR tree-optimization/42714
8080         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
8081         constructors specially.
8082
8083 2010-01-14  Andi Kleen  <ak@linux.intel.com>
8084
8085         * config/i386/drivers-i386.c (detect_caches_intel):
8086         Add l2sizekb parameter and fill in.
8087         (host_detect_local_cpu): Add l2sizekb, fill in.
8088         Add Atom small cache heuristic.
8089
8090 2010-01-14  Andi Kleen  <ak@linux.intel.com>
8091
8092         * config/i386/drivers-i386.c (detect_caches_cpuid4):
8093         Add level3 parameter and fill in.
8094         (detect_caches_intel): Handle level3 cache.
8095
8096 2010-01-14  Andi Kleen  <ak@linux.intel.com>
8097
8098         * config/i386/drivers-i386.c (host_detect_local_cpu):
8099         Fix core duo detection.
8100
8101 2010-01-14  Andi Kleen  <ak@linux.intel.com>
8102
8103         * config/i386/drivers-i386.c (host_detect_local_cpu):
8104         Fix Atom detection.
8105
8106 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
8107
8108         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
8109         (rs6000_variable_issue_1): this.  Use...
8110         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
8111
8112 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
8113
8114         * sel-sched-ir.c (sel_restore_other_notes): Rename to
8115         sel_restore_notes.  Update all callers.  Call reemit_notes
8116         for all insns.
8117
8118 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
8119
8120         PR rtl-optimization/42246
8121         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
8122         loops.
8123
8124 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
8125
8126         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
8127         all successors is the same as number of successors in current region.
8128
8129 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
8130
8131         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
8132         to rename is not separable.  Otherwise check that its LHS is not NULL.
8133
8134 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
8135
8136         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
8137
8138 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
8139
8140         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
8141         available registers when failed to discover LHS register class.
8142         Fix indentation.  Update comment.
8143
8144 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
8145             Alexander Monakov  <amonakov@ispras.ru>
8146
8147         PR rtl-optimization/42389
8148         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
8149         to can_issue_more.
8150         (advance_state_on_fence): Likewise.
8151         (sel_target_adjust_priority): Print debug output only when
8152         sched_verbose >= 4, not 2.
8153         (get_expr_cost): Do not issue all unique insns on the next cycle.
8154         (fill_insns): Initialize can_issue_more from the value saved
8155         with the fence.
8156         * sel-sched-ir.c (flist_add): New parameter issue_more.
8157         Init FENCE_ISSUE_MORE with it.
8158         (merge_fences): Likewise.
8159         (init_fences): Update call to flist_add.
8160         (add_to_fences, add_clean_fence_to_fences)
8161         (add_dirty_fence_to_fences): Likewise.
8162         (move_fence_to_fences): Update call to merge_fences.
8163         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
8164         sched groups.
8165         * sel-sched-ir.h (struct _fence): New field issue_more.
8166         (FENCE_ISSUE_MORE): New accessor macro.
8167
8168 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
8169
8170         PR rtl-optimization/42388
8171         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
8172         that have no predecessors nor successors.  Do not call move_bb_info
8173         for empty blocks outside of current region.
8174
8175 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
8176
8177         PR rtl-optimization/42294
8178         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
8179         * sel-sched.c (move_exprs_to_boundary): Transitively add all
8180         originators' originators.
8181
8182 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
8183
8184         PR rtl-optimization/39453
8185         PR rtl-optimization/42246
8186         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
8187         for pipelining_p.
8188         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
8189
8190 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
8191             Alexander Monakov  <amonakov@ispras.ru>
8192
8193         PR middle-end/42245
8194         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
8195         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
8196         argument.  Update all callers.
8197         (tidy_control_flow): ... and here.  Recompute topological order
8198         of basic blocks in region if necessary.
8199         (sel_redirect_edge_and_branch): Change return type.  Return true
8200         if topological order might have been invalidated.
8201         (purge_empty_blocks): Export and move from...
8202         * sel-sched.c (purge_empty_blocks): ... here.
8203         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
8204         (maybe_tidy_empty_bb): Delete prototype.
8205         (purge_empty_blocks): Declare.
8206
8207 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
8208
8209         PR rtl-optimization/42249
8210         * sel-sched.c (try_replace_dest_reg): When chosen register
8211         and original register is the same, do not bail out early, but
8212         still check all original insns for validity of replacing destination
8213         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
8214         in this case.
8215
8216 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
8217
8218         PR c/42721
8219         Port from no-undefined-overflow branch:
8220         2009-03-09  Richard Guenther  <rguenther@suse.de>
8221
8222         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
8223
8224 2010-01-14  Richard Guenther  <rguenther@suse.de>
8225
8226         PR lto/42665
8227         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
8228
8229 2010-01-14  Ira Rosen  <irar@il.ibm.com>
8230
8231         PR tree-optimization/42709
8232         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
8233         as scalar type in creation of constant vector operand.
8234
8235 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8236
8237         PR testsuite/42414
8238         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
8239         (check-parallel-%): Match `testsuite' directory component only
8240         at the end.
8241
8242 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
8243
8244         PR translation/39521
8245         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
8246         strings with _().
8247
8248 2010-01-13  Richard Guenther  <rguenther@suse.de>
8249
8250         PR tree-optimization/42730
8251         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
8252         offset zero.
8253
8254 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
8255
8256         PR target/pr42542
8257         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
8258         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
8259         them signed.
8260
8261 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
8262
8263         * config/bfin/libgcc-bfin.ver: Regenerate based on current
8264         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
8265         ___umulsi3_highpart.
8266
8267         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
8268         rather than schedule_insns if the pass is enabled.
8269
8270 2010-01-13  Martin Jambor  <mjambor@suse.cz>
8271
8272         PR tree-optimization/42704
8273         * tree-sra.c (sra_modify_assign): Do not delete assignments to
8274         SSA_NAMEs.
8275
8276 2010-01-13  Martin Jambor  <mjambor@suse.cz>
8277
8278         PR tree-optimization/42703
8279         * tree-sra.c (analyze_access_subtree): Check that we can build a
8280         reference to the original data within the aggregate.
8281
8282 2010-01-13  Richard Guenther  <rguenther@suse.de>
8283
8284         PR tree-optimization/42705
8285         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
8286
8287 2010-01-13  Richard Guenther  <rguenther@suse.de>
8288
8289         PR middle-end/42716
8290         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
8291
8292 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
8293
8294         PR debug/41371
8295         * var-tracking.c (values_to_unmark): New variable.
8296         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
8297         values_to_unmark vector.  Moved body to...
8298         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
8299         instead queue it into values_to_unmark vector.
8300         (vt_find_locations): Free values_to_unmark vector.
8301
8302 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
8303
8304         * config/s390/s390.c (override_options): Set
8305         default of max-pending-list-length to 256
8306
8307 2010-01-13  Richard Guenther  <rguenther@suse.de>
8308
8309         PR lto/42678
8310         * tree-pass.h (PROP_gimple_lcx): New.
8311         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
8312         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
8313         before the final cleanup_eh.
8314         (dump_properties): Dump PROP_gimple_lcx.
8315         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
8316         (tree_lower_complex_O0): Remove.
8317         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
8318         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
8319         tree_lower_complex, schedule TODO_update_ssa.
8320         * lto-streamer-out.c (output_function): Stream the functions
8321         properties.
8322         * lto-streamer-in.c (input_function): Likewise.
8323         (lto_read_body): Do not override them here.
8324
8325 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
8326
8327         PR c/42708
8328         * c-typeck.c (build_c_cast): Fold value cast to union type before
8329         wrapping it in a CONSTRUCTOR.
8330
8331 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
8332
8333         PR rtl-optimization/42699
8334         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
8335         involved.
8336
8337 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8338
8339         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
8340         SUBTARGET_WARN_UNUSED_SPEC): Move ...
8341         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
8342         SUBTARGET_WARN_UNUSED_SPEC): ... here
8343         * config/mips/iris5.h (LIBGCC_SPEC): Define.
8344
8345 2010-01-12  Julian Brown  <julian@codesourcery.com>
8346
8347         * config/arm/neon-schedgen.ml (Utils): Don't try to
8348         open missing module.
8349         (find_with_result): New.
8350
8351 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
8352
8353         PR debug/42662
8354         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
8355         sharing when canonicalizing ({lt,ge}u (plus a b) b).
8356
8357         PR tree-optimization/42645
8358         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
8359         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
8360         decl_map, set processing_debug_stmt to -1 and return name without
8361         any remapping.
8362
8363 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
8364
8365         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
8366         binutils version, and reword target configuration description.
8367
8368 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
8369
8370         * config/avr/avr.h (LINKER_NAME): Remove.
8371
8372 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
8373
8374         PR target/42416
8375         * config/rs6000/rs6000.c (rs6000_override_options): On targets
8376         that support VSX, warn for -mno-altivec if vsx is not disabled,
8377         and disable vsx.
8378
8379 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
8380             Shujing Zhao  <pearly.zhao@oracle.com>
8381
8382         PR translation/42469
8383         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
8384         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
8385         character between option name and help text.
8386         * c.opt (imultilib): Likewise.
8387
8388 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
8389
8390         * lto-streamer-out.c (output_unreferenced_globals): Output static
8391         variables.
8392
8393 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
8394
8395         PR rtl-optimization/42621
8396         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
8397         optimizing for size.
8398         (duplicate_computed_gotos): Remove now-redundant check.
8399
8400 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
8401
8402         PR target/37454
8403         * configure.ac: Save and restore LDFLAGS and LIBS
8404         * configure: Regenerate.
8405
8406 2010-01-10  Richard Guenther  <rguenther@suse.de>
8407
8408         PR middle-end/42667
8409         * builtins.c (fold_builtin_strlen): Add type argument and
8410         convert the resulting length to it.
8411         (fold_builtin_1): Adjust.
8412
8413 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
8414
8415         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
8416         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
8417         1 insn.
8418         (num_insns_constant_wide): Adjust for that change.
8419
8420 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8421
8422         PR debug/42631
8423         * web.c (union_defs): Add used argument, to combine uses of
8424         uninitialized regs.
8425         (entry_register): Adjust type and tests of used argument.
8426         (web_main): Widen used for new use.  Pass it to union_defs.
8427         * df.h (union_defs): Adjust prototype.
8428
8429 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8430
8431         PR debug/42630
8432         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
8433         uses in new incoming argument.  Free body.
8434         (reset_debug_uses_in_loop): New.
8435         (analyze_insn_to_expand_var): Call the latter if the former found
8436         anything.  Fix whitespace.  Reject invalid dest overlaps before
8437         going through all insns in the loop.
8438
8439 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8440
8441         PR debug/42629
8442         * haifa-sched.c (dying_use_p): Debug insns don't count.
8443
8444 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8445
8446         PR middle-end/42363
8447         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
8448         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
8449         (verify_gimple_call): Reject LHS in noreturn calls.
8450
8451 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8452
8453         PR debug/42604
8454         PR debug/42395
8455         * tree-vect-loop-manip.c (adjust_info): New type.
8456         (adjust_vec): New pointer to vector.
8457         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
8458         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
8459         (slpeel_update_phis_for_duplicate_loop): Use them.
8460         (slpeel_update_phi_nodes_for_guard1): Likewise.
8461         (slpeel_update_phi_nodes_for_guard2): Likewise.
8462         (slpeel_tree_peel_loop_to_edge): Likewise.
8463         (vect_update_ivs_after_vectorizer): Likewise.
8464
8465 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8466
8467         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
8468         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
8469
8470 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8471
8472         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
8473         bogus uninitialized warning.
8474
8475 2010-01-09  Richard Guenther  <rguenther@suse.de>
8476
8477         PR middle-end/42512
8478         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
8479         the evolution is compatible with the initial condition.
8480
8481 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
8482
8483         * gcc.c (process_command): Update copyright notice dates.
8484         * gcov.c (print_version): Likewise.
8485         * gcov-dump.c (print_version): Likewise.
8486         * mips-tfile.c (main): Likewise.
8487         * mips-tdump.c (main): Likewise.
8488
8489 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
8490
8491         PR target/41885
8492         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
8493         (rotlhi3): Delete.
8494         (rotlhi3_8): Delete.
8495         (rotlsi3): Delete.
8496         (rotlsi3_8): Delete.
8497         (rotlsi3_16): Delete.
8498         (rotlsi3_24): Delete.
8499         (rotl<mode>3): New.
8500         (*rotw<mode>3): New.
8501         (*rotb<mode>3): New.
8502         * config/avr/avr.c (avr_rotate_bytes): New function.
8503         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
8504
8505 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
8506
8507         PR target/37454
8508         * configure.ac: Modify -rdynamic check.
8509         * configure: Regenerate.
8510
8511 2010-01-08  DJ Delorie  <dj@redhat.com>
8512
8513         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
8514         register popping order.
8515
8516 2010-01-08  Richard Guenther  <rguenther@suse.de>
8517
8518         PR lto/42528
8519         * c.opt (fsigned-char): Also let LTO handle this option.
8520         (funsigned-char): Likewise.
8521
8522 2010-01-07  Richard Guenther  <rguenther@suse.de>
8523
8524         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
8525         (gimple_op): Likewise.
8526         (gimple_op_ptr): Likewise.
8527         (gimple_assign_set_lhs): Remove gcc_assert.
8528         (gimple_assign_set_rhs1): Likewise.
8529         (gimple_assign_set_rhs2): Likewise.
8530         (gimple_call_set_lhs): Likewise.
8531         (gimple_call_set_fn): Likewise.
8532         (gimple_call_set_fndecl): Likewise.
8533         (gimple_call_fndecl): Likewise.
8534         (gimple_call_return_type): Likewise.
8535         (gimple_call_set_chain): Likewise.
8536         (gimple_call_num_args): Likewise.
8537         (gimple_call_set_arg): Likewise.
8538         (gimple_cond_set_code): Likewise.
8539         (gimple_cond_set_lhs): Likewise.
8540         (gimple_cond_set_rhs): Likewise.
8541         (gimple_cond_set_true_label): Likewise.
8542         (gimple_cond_set_false_label): Likewise.
8543         (gimple_label_set_label): Likewise.
8544         (gimple_goto_set_dest): Likewise.
8545         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
8546         (gimple_debug_bind_get_value): Likewise.
8547         (gimple_debug_bind_get_value_ptr): Likewise.
8548         (gimple_debug_bind_set_var): Likewise.
8549         (gimple_debug_bind_set_value): Likewise.
8550         (gimple_debug_bind_reset_value): Likewise.
8551         (gimple_debug_bind_has_value_p): Likewise.
8552         (gimple_return_retval_ptr): Remove gcc_assert.
8553         (gimple_return_retval): Likewise.
8554         (gimple_return_set_retval): Likewise.
8555         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
8556         (safe_referenced_var_iterator): Remove.
8557         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
8558         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
8559         (fill_referenced_var_vec): Remove.
8560         (first_readonly_imm_use): Remove redundant gcc_assert.
8561         (phi_arg_index_from_use): Combine gcc_asserts.
8562         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
8563         (first_imm_use_stmt): Remove redundant gcc_assert.
8564         * tree-cfg.c (verify_gimple_call): Verify function and chain
8565         operands.  Verify arguments.
8566         (verify_types_in_gimple_stmt): Verify condition code and labels.
8567
8568 2010-01-07  Richard Guenther  <rguenther@suse.de>
8569
8570         PR tree-optimization/42641
8571         * sese.c (rename_map_elt_info): Use the SSA name version, do
8572         not hash pointers.
8573
8574 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
8575
8576         PR tree-optimization/42625
8577         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
8578         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
8579
8580 2010-01-07  Duncan Sands  <baldrick@free.fr>
8581
8582         * Makefile.in (PLUGIN_HEADERS): Add version.h.
8583
8584 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
8585
8586         PR target/42511
8587         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
8588         note itself is not function_invariant_p.
8589
8590 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
8591
8592         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
8593         Do not add the DF_NOTE problem.
8594         * store-motion.c (execute_rtl_store_motion): Likewise.
8595
8596 2010-01-07  Martin Jambor  <mjambor@suse.cz>
8597
8598         PR tree-optimization/42157
8599         * tree-sra.c (compare_access_positions): Stabilize sort if both
8600         accesses have integer types, return zero immediately if they are the
8601         same.
8602
8603 2010-01-06  Richard Henderson  <rth@redhat.com>
8604
8605         PR middle-end/41883
8606         * haifa-sched.c (add_to_note_list): Merge into ...
8607         (concat_note_lists): ... here, and ...
8608         (unlink_other_notes, rm_other_notes): Merge into...
8609         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
8610         NOTE_INSN_EPILOGUE_BEG.
8611
8612 2010-01-06  Richard Guenther  <rguenther@suse.de>
8613
8614         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
8615         not inline regular functions into always-inline functions.
8616
8617 2010-01-06  Nick Clifton  <nickc@redhat.com>
8618
8619         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
8620         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
8621         used together.
8622         (OVERRIDE_OPTIONS): Delete.
8623         (OPTIMIZATION_OPTIONS): Define.
8624         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
8625         * config/rx/rx.c (rx_handle_option): Issue an error message if
8626         -mcpu=rx200 and -fpu are used together.
8627         (rx_set_optimization_options): New function.  Issue an error
8628         message if an optimization attribute attempts to reset the FPU/
8629         math optimization pairing.
8630         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
8631         * config/rx/rx.opt: Set the default to 32-bit doubles.
8632         * config/rx/t-rx: Add multilibs for -nofpu option.
8633         * doc/invoke.texi: Update documentation of RX options.
8634
8635 2010-01-06  Richard Guenther  <rguenther@suse.de>
8636
8637         * tree-ssa-pre.c (name_to_id): New global.
8638         (alloc_expression_id): Simplify SSA name handling.
8639         (lookup_expression_id): Likewise.
8640         (init_pre): Zero name_to_id.
8641         (fini_pre): Free it.
8642
8643 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
8644
8645         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
8646
8647 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
8648
8649         PR target/42542
8650         * config/i386/sse.md (smaxv2di3): New.
8651         (umaxv2di3): Likewise.
8652         (sminv2di3): Likewise.
8653         (uminv2di3): Likewise.
8654
8655 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
8656
8657         PR target/42564
8658         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
8659         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
8660         (legitimize_tls_address): Likewise.
8661         (sparc_tls_referenced_p): Likewise.
8662         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
8663         and adjust calls to legitimize_pic_address.
8664         (legitimate_constant_p) Use sparc_tls_referenced_p.
8665         (legitimate_pic_operand_p): Likewise.
8666         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
8667         (sparc_tls_symbol_ref_1): Delete.
8668         (sparc_tls_referenced_p): Make static, recognize specific patterns.
8669         (legitimize_tls_address): Make static, handle CONST patterns.
8670         (legitimize_pic_address): Make static, remove unused parameter and
8671         adjust recursive calls.
8672         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
8673         and adjust call to legitimize_pic_address.
8674         (sparc_output_mi_thunk): Likewise.
8675
8676 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
8677             H.J. Lu  <hongjiu.lu@intel.com>
8678
8679         PR target/42542
8680         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
8681         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
8682         operands to make them signed.
8683
8684         Revert:
8685         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
8686
8687         PR target/42542
8688         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
8689         GTU to GT for V4SI and V2DI.
8690
8691         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
8692         (umin<mode>3): Removed.
8693         (uminv8hi3): New.
8694         (uminv4si3): Likewise.
8695
8696 2010-01-05  Martin Jambor  <mjambor@suse.cz>
8697
8698         PR tree-optimization/42462
8699         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
8700         current_function_decl to helper functions and macros.
8701
8702 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8703
8704         PR bootstrap/41771
8705         * flags.h: Don't include real.h.
8706         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
8707         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
8708         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
8709         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
8710         * dominance.c: Update copyright.
8711         * gimple.c (walk_gimple_op): Remove inline.
8712         * tree-ssa-reassoc.c: Include real.h.
8713         * Makefile.in (FLAGS_H): Remove $(REAL_H).
8714         (tree-ssa-reassoc.o): Depend on $(REAL_H).
8715
8716 2010-01-05  Nick Clifton  <nickc@redhat.com>
8717
8718         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
8719         register to push into the stack frame when the accumulator has to
8720         be saved during interrupts.
8721
8722 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
8723
8724         * doc/invoke.texi: Remove the documentation about option
8725         -Wunreachable-code.
8726         * common.opt (Wunreachable-code):  Preserved for backward
8727         compatibility.
8728         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
8729         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
8730         the backward compatibility flag section.
8731
8732 2010-01-05  Richard Guenther  <rguenther@suse.de>
8733
8734         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
8735
8736 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
8737
8738         PR other/42611
8739         * cfgexpand.c (expand_one_var): Diagnose too large variables.
8740
8741         PR tree-optimization/42508
8742         * tree-sra.c (convert_callers): Check for recursive call
8743         by comparing cgraph nodes instead of decls.
8744         (modify_function): Call ipa_modify_formal_parameters also
8745         on all same_body aliases.
8746
8747         * cgraphunit.c (cgraph_materialize_all_clones): Compare
8748         cgraph nodes when checking for same_body aliases.
8749
8750 2010-01-05  Richard Guenther  <rguenther@suse.de>
8751
8752         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
8753         allocation and lookup.
8754         (get_or_alloc_expr_for_constant): Likewise.
8755         (phi_translate): Sink allocation.
8756
8757 2010-01-04  Richard Guenther  <rguenther@suse.de>
8758
8759         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
8760         a new entry only if needed.
8761         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
8762         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
8763         hashtable lookup.
8764         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
8765         the result array.
8766         (phi_translate): Handle CONSTANTs early.
8767
8768 2010-01-04  Martin Jambor  <mjambor@suse.cz>
8769
8770         PR tree-optimization/42398
8771         * tree-sra.c (struct access): Removed flag grp_different_types.
8772         (dump_access): Do not dump the removed flag.
8773         (sort_and_splice_var_accesses): Do not set the removed flag.
8774         (sra_modify_expr): Check for type compatibility directly.
8775
8776 2010-01-04  Martin Jambor  <mjambor@suse.cz>
8777
8778         PR tree-optimization/42366
8779         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
8780         edges with variable number of parameters.
8781         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
8782         flag instead of asserting it.
8783         (ipa_read_node_info): Read uses_analysis_done flag.
8784
8785 2010-01-04  Richard Guenther  <rguenther@suse.de>
8786
8787         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
8788         iterative_hash_* as intended.
8789         (vn_reference_compute_hash): Likewise.  Simplify hashing
8790         SSA names.
8791         (vn_reference_lookup_2): Likewise.
8792         (vn_nary_op_compute_hash): Likewise.
8793         (vn_phi_compute_hash): Likewise.
8794         (expressions_equal_p): Remove strange code.
8795         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
8796         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
8797         (bitmap_insert_into_set_1): Take value-id as parameter.
8798         (add_to_value): Pass it.
8799         (bitmap_insert_into_set): Likewise.
8800         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
8801
8802 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
8803
8804         PR driver/42442
8805         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
8806         (do_self_spec): For switches with SWITCH_IGNORE set set also
8807         SWITCH_IGNORE_PERMANENTLY.
8808         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
8809         of SWITCH_IGNORE.
8810
8811 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
8812
8813         * lto-streamer-out.c (output_unreferenced_globals): Output the full
8814         tree of an unreferenced global var.
8815
8816 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
8817
8818         PR target/42542
8819         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
8820         GTU to GT for V4SI and V2DI.
8821
8822         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
8823         (umin<mode>3): Removed.
8824         (uminv8hi3): New.
8825         (uminv4si3): Likewise.
8826
8827 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
8828
8829         PR lto/42581
8830         * collect2.c (main): Turn on trace in collect2 if -v is passed
8831         to gcc with LTO.
8832
8833 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
8834
8835         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
8836         description of expression operand.
8837
8838 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
8839
8840         * configure.ac: Add install-html to target_list for Make-hooks.
8841         * configure: Regenerate.
8842         * fortran/Make-lang.in (F95_HTMLFILES): New.
8843         (fortran.html): Use it.
8844         (fortran.install-html): New.
8845         * Makefile.in (install-html): Add lang.install-html.
8846         * java/Make-lang.in (JAVA_HTMLFILES): New.
8847         (java.html): Use it.
8848         (java.install-html): New.
8849         * objc/Make-lang.in (objc.install-html): New.
8850         * objcp/Make-lang.in (obj-c++.install-html): New.
8851         * cp/Make-lang.in (c++.install-html): New.
8852         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
8853         * lto/Make-lang.in (lto.install-html): New.
8854
8855 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
8856
8857         PR lto/42520
8858         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
8859
8860 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
8861
8862         PR rtl-optimization/41862
8863         * store-motion.c (store_killed_in_insn, compute_store_table,
8864         remove_reachable_equiv_notes, replace_store_insn,
8865         build_store_vectors): Ignore all DEBUG_INSNs.
8866
8867 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
8868
8869         PR lto/41564
8870         * common.opt: Add dumpdir.
8871
8872         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
8873         isn't specified.
8874         (option_map): Add --dumpdir.
8875
8876         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
8877
8878         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
8879
8880         * opts.c (decode_options): Try dump_dir_name first if
8881         dump_base_name isn't an absolute path.
8882         (common_handle_option): Handle OPT_dumpdir.
8883
8884         * toplev.c (dump_dir_name): New.
8885         (print_switch_values): Also ignore -dumpdir.
8886
8887         * toplev.h (dump_dir_name): New.
8888
8889 2010-01-03  Richard Guenther  <rguenther@suse.de>
8890
8891         PR tree-optimization/42589
8892         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
8893         double-word expansion of bswap32.
8894
8895 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
8896
8897         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
8898         with BLOCK_FOR_INSN.
8899         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
8900         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
8901         noce_process_if_block): Likewise.
8902         * gcse.c (compute_local_properties, insert_expr_in_table,
8903         insert_set_in_table, canon_list_insert, find_avail_set,
8904         pre_insert_copy_insn): Likewise.
8905
8906         * basic-block.h (BLOCK_NUM): Move from here...
8907         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
8908
8909 2010-01-03  Richard Guenther  <rguenther@suse.de>
8910
8911         PR tree-optimization/42438
8912         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
8913         contains_may_not_return_call flag.
8914         (BB_MAY_NOTRETURN): New.
8915         (valid_in_sets): Trapping nary operations are not valid
8916         in blocks that may not return.
8917         (insert_into_preds_of_block): Remove check for trapping expressions.
8918         (compute_avail): Compute also BB_MAY_NOTRETURN.
8919
8920 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
8921
8922         * doc/invoke.texi: Add 2010 to copyright years.
8923
8924 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
8925
8926         * config/sparc/sparc.c: Fix formatting nits.
8927
8928 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
8929             Alexander Monakov  <amonakov@ispras.ru>
8930
8931         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
8932
8933 2010-01-02  Richard Guenther  <rguenther@suse.de>
8934
8935         PR middle-end/42577
8936         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
8937         (simplify_switch_using_ranges): Mark to be removed edges
8938         as non-executable.
8939
8940 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8941
8942         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
8943
8944         * collect2.c (scan_libraries): Add missing argument in call to
8945         scan_prog_file.
8946
8947 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
8948
8949         PR target/42448
8950         * config/alpha/predicates.md (aligned_memory_operand): Return false
8951         for CQImode.
8952         (unaligned_memory_operand): Return true for CQImode.
8953         * config/alpha/alpha.c (get_aligned_mem): Assert that location
8954         doesn not cross aligned SImode word boundary.
8955
8956 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
8957
8958         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
8959         Remove.
8960         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
8961         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
8962
8963 2010-01-02  Richard Guenther  <rguenther@suse.de>
8964
8965         PR lto/41597
8966         * toplev.c (compile_file): Emit LTO marker properly.  Change
8967         it to __gnu_lto_v1.
8968         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
8969
8970 2010-01-01  Richard Guenther  <rguenther@suse.de>
8971
8972         PR debug/42455
8973         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
8974
8975 2010-01-01  Richard Guenther  <rguenther@suse.de>
8976
8977         PR c/42570
8978         * c-decl.c (grokdeclarator): For zero-size arrays force
8979         structural equality checks as layout_type does.
8980
8981 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
8982
8983         * builtins.c: Update copyright to 2010.
8984
8985 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
8986
8987         PR lto/42531
8988         * lto-streamer-out.c (produce_asm): Revert the last change.
8989         (copy_function): Likewise.
8990
8991         * lto-streamer.c (lto_get_section_name): Skip any leading
8992         asterisk in name.
8993
8994 2010-01-01  Richard Guenther  <rguenther@suse.de>
8995
8996         PR middle-end/42559
8997         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
8998         for LABEL_DECLs.
8999
9000 \f
9001 Copyright (C) 2010 Free Software Foundation, Inc.
9002
9003 Copying and distribution of this file, with or without modification,
9004 are permitted in any medium without royalty provided the copyright
9005 notice and this notice are preserved.