OSDN Git Service

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