diagnostic-core.h: New.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
2
3         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
4         toplev.h.
5         * diagnostic.c: Don't include toplev.h.
6         (progname): Define.  Moved from toplev.c.
7         (seen_error): New function.
8         * diagnostic.h: Include diagnostic-core.h.
9         (diagnostic_t, emit_diagnostic): Don't declare here.
10         * toplev.c (progname): Move to toplev.c.
11         (emit_debug_global_declarations, compile_file, finalize,
12         do_compile, toplev_main): Use seen_error.
13         * toplev.h: Include diagnostic-core.h.
14         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
15         internal_error, warning, warning_at, error, error_n, error_at,
16         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
17         verbatim, fnotice, progname): Move to diagnostic-core.h.
18         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
19         (expand_builtin_expect): Use seen_error.
20         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
21         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
22         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
23         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
24         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
25         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
26         errorcount for errors.
27         * c-opts.c (c_common_finish): Use seen_error.
28         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
29         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
30         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
31         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
32         (get_coverage_counts): Use seen_error.
33         * dwarf2out.c (dwarf2out_finish): Use seen_error.
34         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
35         gimplify_body): Use seen_error.
36         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
37         * ipa-pure-const.c (gate_pure_const): Use seen_error.
38         * ipa-reference.c (gate_reference): Use seen_error.
39         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
40         * lambda-code.c: Include diagnostic-core.h instead of
41         diagnostic.h.
42         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
43         * lto-compress.c: Include diagnostic-core.h instead of
44         diagnostic.h.
45         * lto-section-in.c: Include diagnostic-core.h instead of
46         diagnostic.h.
47         * lto-streamer-out.c: Include diagnostic-core.h instead of
48         diagnostic.h.
49         * lto-streamer.c: Include diagnostic-core.h instead of
50         diagnostic.h.
51         (gate_lto_out): Use seen_error.
52         * matrix-reorg.c: Include diagnostic-core.h instead of
53         diagnostic.h.
54         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
55         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
56         (gate_expand_omp, lower_omp_1): Use seen_error.
57         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
58         (rest_of_decl_compilation, rest_of_type_compilation,
59         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
60         * tree-cfg.c (label_to_block_fn): Use seen_error.
61         * tree-inline.c (optimize_inline_calls): Use seen_error.
62         * tree-mudflap.c (mudflap_finish_file): Use
63         seen_error.
64         * tree-optimize.c (gate_all_optimizations,
65         gate_all_early_local_passes, gate_all_early_optimizations): Use
66         seen_error.
67         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
68         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
69         (varpool_remove_unreferenced_decls,
70         varpool_assemble_pending_decls): Use seen_error.
71         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
72         (TOPLEV_H, DIAGNOSTIC_H): Update.
73         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
74         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
75         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
76         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
77         coverage.o, lambda-code.o): Update dependencies.
78
79 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
80
81         PR c++/44188
82         * c-common.c (is_typedef_decl): Move this definition ...
83         * tree.c (is_typedef_decl): ... here.
84         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
85         * c-common.h (is_typedef_decl): Move this declaration ...
86         * tree.h (is_typedef_decl): ... here.
87         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
88         * dwarf2out.c (is_naming_typedef_decl): New function.
89         (gen_tagged_type_die): Split out of ...
90         (gen_type_die_with_usage): ... this function. When an anonymous
91         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
92         is emitted for the typedef.
93         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
94         anonymous tagged types.
95
96 2010-05-27  Jason Merrill  <jason@redhat.com>
97
98         * print-tree.c (debug_vec_tree): New fn.
99         (print_vec_tree): New fn.
100         * tree.h: Declare them.
101         * gdbinit.in (pvt): New command.
102
103         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
104
105         * gdbinit.in (pdd): New command.
106
107 2010-05-27  Jan Hubicka  <jh@suse.cz>
108
109         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
110         (update_caller_keys): Return early if there are no callers;
111         only update fibheap when decresing the key.
112         (update_callee_keys): Avoid recursion.
113         (decide_inlining_of_small_functions): When badness does not match;
114         re-insert into fibheap.
115
116 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
117
118         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
119         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
120         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
121         (ALL_HOST_OBJS): Now a union of the above two.
122         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
123         all files in ALL_HOST_FRONTEND_OBJS.
124         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
125
126         * c-common.c: Pretend to be a backend file by undefining
127         IN_GCC_FRONTEND (still need rtl.h here).
128
129 2010-05-27  Jan Hubicka  <jh@suse.cz>
130
131         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
132         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
133
134 2010-05-27  Jan Hubicka  <jh@suse.cz>
135
136         * sched-ebb.c: Rename struct deps to struct deps_desc.
137         * ddg.c: Likewise.
138         * sel-sched-ir.c: Likewise.
139         * sched-deps.c: Likewise.
140         * sched-int.h: Likewise.
141         * sched-rgn.c: Likewise.
142
143 2010-05-27  Jon Beniston <jon@beniston.com>
144
145         PR 43726
146         * config/lm32/lm32.h: Remove definition of 
147         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
148
149 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
150
151         PR lto/44230
152         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
153
154 2010-05-27  Richard Guenther  <rguenther@suse.de>
155
156         PR tree-optimization/44284
157         * tree-vect-stmts.c (vectorizable_assignment): Handle
158         sign-changing conversions as simple copy.
159
160 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
161
162         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
163         Bionic C library.
164         (__gthread_active_p): Check for pthread_create if compiling against
165         Bionic C library.
166
167 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
168
169         Support compilation for Android platform.  Reimplement -mandroid.
170
171         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
172         (*android*): Set ANDROID_DEFAULT.
173         (arm*-*-linux*): Include linux-android.h.
174         (arm*-*-eabi*): Don't include previous -mandroid implementation.
175         * config/arm/eabi.h: Remove, move Android-specific parts ...
176         * config/linux-android.h: ... here.  New file.
177         * config/arm/eabi.opt: Rename to ...
178         * config/linux-android.opt: ... this.
179         (mandroid): Allow -mno-android option.  Initialize based on
180         ANDROID_DEFAULT.
181         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
182         Move logic to corresponding LINUX_TARGET_* macros.
183         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
184         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
185         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
186         Android definitions.
187         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
188         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
189         Document.
190
191 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
192
193         Add support for Bionic C library
194
195         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
196         macro.
197         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
198         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
199
200         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
201         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
202         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
203         to support multiple C libraries.  Handle Bionic.
204         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
205         (BIONIC_DYNAMIC_LINKER64): Define.
206         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
207         Update.
208         (TARGET_HAS_SINCOS): Enable for Bionic.
209
210         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
211         the last option specified on command line take effect.
212         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
213         (mbionic): New.
214         (mglibc, muclibc): Update.
215
216         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
217         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
218         DEFAULT_LIBC.
219
220         * doc/invoke.texi (-mglibc, -muclibc): Update.
221         (-mbionic): Document.
222
223 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
224
225         * c-common.h (c_register_addr_space): Add prototype.
226         (ADDR_SPACE_KEYWORD): Remove.
227         * c-common.c (c_register_addr_space): New function.
228         (c_addr_space_name): Reimplement.
229         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
230
231         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
232         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
233
234         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
235         Remove TARGET_ADDR_SPACE_KEYWORDS.
236
237 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
238
239         * input.c: New file.
240         * input.h (main_input_filename): Move declaration to toplev.h.
241         * toplev.c (input_location, line_table): Move to input.c
242         * toplev.h (main_input_filename): Move declaration from input.h.
243         * tree.c (expand_location): Move to input.c.
244         * Makefile.in (OBJS-common): Add input.o.
245         (input.o): Add dependencies.
246
247 2010-05-27  Richard Guenther  <rguenther@suse.de>
248
249         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
250         for non-existant files.
251         (fork_execute): Mark args_name file as deleted.
252
253 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
254
255         PR bootstrp/44287
256         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
257         (narrow_signed_type): Likewise.
258
259 2010-05-26  Jan Hubicka  <jh@suse.cz>
260
261         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
262         edge only when checking is enabled; check using former_clone_of;
263         check inline clones too.
264         (cgraph_materialize_clone): Record former_clone_of pointer.
265         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
266         combining redirections; dump args_to_skip bitmap
267         (cgraph_materialize_all_clones): Do no redirection here.
268         * ipa-inline.c (inline_transform): Do redirection here.
269         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
270         cheking only).
271
272 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
273
274         * config/avr/avr-c.c: Do not include regs.h.
275         Include cpplib.h for cpp_define and tree.h for c-common.h.
276         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
277         * config/avr/t-avr: Fix dependencies for avr-c.o.
278
279 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
280
281         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
282         string instead of SYMBOL_REF rtx.
283         * rtl.h (set_stack_check_libfunc): Move prototype from here...
284         * libfuncs.h: ...to here.  Adjust for explow.c change.
285
286 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
287
288         * pretty-print.c: Don't include ggc.h.
289         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
290         (identifier_to_locale): Use them for allocation.
291         * pretty-print.h (identifier_to_locale_alloc,
292         identifier_to_locale_free): Declare.
293         * toplev.c (alloc_for_identifier_to_locale): New.
294         (general_init): Set identifier_to_locale_alloc and
295         identifier_to_locale_free.
296         * Makefile.in (pretty-print.o): Update dependencies.
297
298 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
299
300         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
301         pointer types if they have different alignment or mode.
302
303 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
304
305         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
306         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
307         * config/sparc/sparc-protos.h (function_value): Remove declaration.
308         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
309         sparc_function_value_regno_p): New functions.
310         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
311         TARGET_FUNCTION_VALUE_REGNO_P): Define.
312         (function_value): Rename to...
313         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
314         argument to 'outgoing'.
315         (function_arg_record_value, function_arg_union_value,
316         function_arg_vector_value): Update comment.
317
318 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
319
320         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
321         (fde_needed_for_eh_p): New predicate.
322         (output_call_frame_info): Use it throughout to decide whether FDEs
323         are needed for EH purpose.
324         (dwarf2out_begin_prologue): Reorder assignments.
325
326 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
327
328         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
329         special case loop->header.
330         (is_predicated): New.
331         (if_convertible_loop_p): Call it.
332
333 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
334
335         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
336         iterator in parameter.  Do not generate code during the analysis.
337         (tree_if_convert_cond_stmt): Removed.
338         (tree_if_convert_stmt): Removed.
339         (predicate_bbs): New.
340         (if_convertible_loop_p): Call predicate_bbs.
341         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
342         now contains all the analysis part.
343
344 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
345
346         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
347         statements in the analysis part.
348         (tree_if_convert_stmt): Update comment.
349         (remove_conditions_and_labels): New.
350         (combine_blocks): Call remove_conditions_and_labels.
351         (tree_if_conversion): Update comment.
352
353 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
354
355         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
356         than 2 predecessors or more than 2 successors.
357
358 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
359
360         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
361         of loops in which the data dependence analysis fails.
362
363 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
364
365         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
366         CDI_POST_DOMINATORS.
367         (tree_if_conversion): Same.
368
369 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
370
371         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
372
373 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
374
375         * tree-if-conv.c: Update copyright years.  Fix comments.
376         Fix indentation.
377
378 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
379
380         * builtin-types.def (BT_INT128): New primitive type.
381         (BT_UINT128): Likewise.
382         * c-common.c (c_common_r): Add __int128 keyword.
383         (c_common_type_for_size): Handle __int128.
384         (c_common_type_for_mode): Likewise.
385         (c_common_signed_or_unsigned_type): Likewise.
386         (c_common_nodes_and_builtins): Add builtin type
387         if target supports 128-bit integer scalar.
388         * c-common.h (enum rid): Add RID_INT128.
389         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
390         if target supports 128-bit integer scalar.
391         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
392         (finish_declspecs): Likewise.
393         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
394         (c_token_starts_declspecs): Likewise.
395         (c_parser_declspecs): Likewise.
396         (c_parser_attributes): Likewise.
397         (c_parser_objc_selector): Likewise.
398         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
399         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
400         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
401         * tree.c (make_or_reuse_type): Likewise.
402         (make_unsigned_type): Likewise.
403         (build_common_tree_nodes_2): Likewise.
404         * tree.h (enum integer_type_kind): Add itk_int128 and
405         itk_unsigned_int128.
406         (int128_integer_type_node): New define.
407         (int128_unsigned_type_node): New define.
408         * doc/extend.texi: Add documentation about __int128 type.
409
410 2010-05-26  Richard Guenther  <rguenther@suse.de>
411
412         * tree-ssa-sccvn.c (copy_nary): Adjust.
413         (copy_phis): Rename to ...
414         (copy_phi): ... this.  Adjust.
415         (copy_references): Rename to ...
416         (copy_reference): ... this.  Adjust.
417         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
418         result into the valid table.
419
420 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
421
422         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
423         insn-config.h, insn-codes.h, recog.h, and optabs.h.
424
425 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
426
427         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
428
429 2010-05-26  Richard Guenther  <rguenther@suse.de>
430
431         * opts.c (common_handle_option): Handle OPT_Ofast.
432
433 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
434
435         * diagnostic.c: Don't include opts.h.
436         (permissive_error_option): Define.
437         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
438         for classify_diagnostic.  Don't use memset for
439         classify_diagnostic.  Initialize new and recently added fields.
440         (diagnostic_classify_diagnostic): Use context->n_opts instead of
441         N_OPTS.
442         (diagnostic_report_diagnostic): Pass context parameter to
443         diagnostic_report_warnings_p.  Use option_enabled and option_name
444         hooks from context.
445         (emit_diagnostic): Use permissive_error_option.
446         (permerror): Likewise.
447         * diagnostic.h: Don't include options.h.
448         (struct diagnostic_context): Add n_opts, opt_permissive,
449         inhibit_warnings, warn_system_headers, option_enabled and
450         option_name fields.  Change classify_diagnostic to a pointer.
451         * opts-diagnostic.h: New file.
452         * opts.c: Include opts-diagnostic.h.
453         (common_handle_option): Set global_dc fields for -Wfatal-errors,
454         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
455         (option_name): New function.
456         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
457         (c_common_handle_option): Set global_dc->permissive for
458         -fpermissive.
459         * c-common.c (c_cpp_error): Save and restore
460         global_dc->warn_system_headers, not variable warn_system_headers.
461         * toplev.c: Include opts-diagnostic.h.
462         (general_init): Update call to diagnostic_initialize.  Set
463         global_dc->show_column, global_dc->option_enabled and
464         global_dc->option_name.
465         (process_options): Don't set global_dc fields here.
466         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
467         (diagnostic.o, opts.o, toplev.o): Update dependencies.
468
469 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
470
471         * config/picochip/picochip.md (movsi): Split a movsi from a
472         const after reload.
473
474 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
475
476         * ggc-zone.c: Update copyright year.
477         (poison_region): Mark memory for Valgrind as undefined before
478         memset () call and inaccessible afterwards.
479         (ggc_pch_total_size): Change type of i to int.
480
481 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
482
483         * ggc-common.c (ggc_free_overhead): Allow empty slot.
484
485 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
486
487         * ggc-common.c: Update copyright year.
488         (ggc_rlimit_bound): Remove prototype.  Compile only if
489         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
490         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
491         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
492         (ggc_min_heapsize_heuristic): Likewise.
493
494 2010-05-26  Richard Guenther  <rguenther@suse.de>
495
496         PR rtl-optimization/44164
497         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
498         no-common access-path disambiguation.
499         (indirect_ref_may_alias_decl_p): Adjust.
500         (indirect_refs_may_alias_p): Likewise.
501         (refs_may_alias_p_1): Likewise.
502
503 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
504
505         * c-typeck.c: Do not include expr.h.
506
507 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
508
509         * rtl.h (decl_default_tls_model): Move prototype from here...
510         * output.h: ...to here.
511         * c-decl.c: Do not include rtl.h.
512         * c-pragma.c: Likewise.
513         * c-parser.c: Likewise.
514         * c-gimplify.c: Likewise.  And also not hard-reg-set.
515         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
516         FIXME note for it.  Add a FIXME note for expr.h.
517         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
518         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
519         defined.
520
521 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
522
523         PR target/44199
524         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
525         or total_size is larger than red zone size for non-V4 ABI, emit a
526         stack_tie resp. frame_tie insn before stack pointer restore.
527         * config/rs6000/rs6000.md (frame_tie): New insn.
528
529 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
530
531         * function.h (struct function): Add can_throw_non_call_exceptions bit.
532         * lto-streamer-in.c (input_function): Stream it in.
533         * lto-streamer-out.c (output_function): Stream it out.
534         * function.c (allocate_struct_function): Set it.
535         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
536         for flag_non_call_exceptions.
537         * cfgbuild.c (control_flow_insn_p): Likewise.
538         (make_edges): Likewise.
539         * cfgexpand.c (expand_stack_alignment): Likewise.
540         * combine.c (distribute_notes): Likewise.
541         * cse.c (cse_extended_basic_block): Likewise.
542         * except.c (insn_could_throw_p): Likewise.
543         * gcse.c (simple_mem): Likewise.
544         * ipa-pure-const.c (check_call): Likewise.
545         (check_stmt ): Likewise.
546         * lower-subreg.c (lower-subreg.c): Likewise.
547         * optabs.c (emit_libcall_block): Likewise.
548         (prepare_cmp_insn): Likewise.
549         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
550         * postreload.c (rest_of_handle_postreload): Likewise.
551         * reload1.c (reload_as_needed): Likewise.
552         (emit_input_reload_insns): Likewise.
553         (emit_output_reload_insns): Likewise.
554         (fixup_abnormal_edges): Likewise.
555         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
556         * store-motion.c (find_moveable_store): Likewise.
557         * tree-eh.c (stmt_could_throw_p): Likewise.
558         (tree_could_throw_p): Likewise.
559         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
560         * config/arm/arm.c (arm_expand_prologue): Likewise.
561         (thumb1_expand_prologue): Likewise.
562         * config/rx/rx.md (cbranchsf4): Likewise.
563         (cmpsf): Likewise.
564         * config/s390/s390.c (s390_emit_prologue): Likewise.
565         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
566         (inline_forbidden_into_p): New predicate.
567         (expand_call_inline): Use it to forbid inlining.
568         (tree_can_inline_p): Likewise.
569
570 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
571
572         * config/i386/i386-c.c: Do not include rtl.h.
573         * config/i386/t-i386: Update dependencies.
574
575 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
576
577         * attribs.c: Do not include rtl.h.
578         * Makefile.in: Update dependencies.
579
580 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
581
582         * double-int.h (double_int_and): New.
583         * combine.c (try_combine): Clean up, use double_int_* and
584         immed_double_int_const functions.
585
586 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
587
588         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
589         stderr to /dev/null instead of grep -q.
590         * configure: Regenerate.
591
592 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
593
594         * Makefile.in (EXCEPT_H): Fix typo.
595
596 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
597
598         * ira-build.c (update_conflict_hard_reg_costs): New.
599         (ira_build): Call update_conflict_hard_reg_costs.
600
601 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
602
603         PR debug/41371
604         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
605         ENABLE_CHECKING.
606         (intersect_loc_chains): Walk the s2var's loc_chain together
607         with s1node chain as long as the locations are equal, don't
608         call find_loc_in_1pdv in that case.
609
610         PR debug/42801
611         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
612         (copy_bind_expr): ... instead of here.
613         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
614         if the block hasn't been remapped.
615         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
616         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
617
618 2010-05-25  Richard Guenther  <rguenther@suse.de>
619
620         PR middle-end/44069
621         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
622         out-of-bounds array accesses.
623
624 2010-05-25  Richard Guenther  <rguenther@suse.de>
625
626         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
627         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
628         (run_gcc): Re-organize to make cleanup easier.
629
630 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
631
632         * config/s390/s390.c (optimization_options): Fix and move the
633         flag_prefetch_loop_arrays override ...
634         (override_options): ... here.
635
636 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
637
638         * diagnostic.c: Don't include plugin.h.
639         (diagnostic_report_diagnostic): Don't handle plugins specially
640         here.  Pass context to internal_error callback.
641         * diagnostic.h (struct diagnostic_context): Add context parameter
642         to internal_error callback.
643         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
644         * plugin.h (struct diagnostic_context): Declare.
645         (warn_if_plugins, plugins_internal_error_function): Declare.
646         * toplev.c (general_init): Set global_dc->internal_error.
647         * Makefile.in (diagnostic.o): Update dependencies.
648
649 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
650
651         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
652         * config/rs6000/t-darwin64: New.
653         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
654         build crt2.
655
656 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
657
658         PR 44203
659         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
660         match the original (and intended) behaviour before r159557.  This
661         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
662         in two ways.
663
664 2010-05-25  Richard Guenther  <rguenther@suse.de>
665
666         * doc/invoke.texi: Document -Ofast.
667         * target.h (struct gcc_target): Add handle_ofast.
668         * target-def.h (TARGET_HANDLE_OFAST): Add.
669         (TARGET_INITIALIZER): Adjust.
670         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
671         * common.opt (Ofast): Add.
672
673 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
674
675         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
676         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
677
678 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
679
680         PR target/43610
681         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
682         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
683         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
684         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
685
686 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
687
688         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
689         DW_OP_minus with negated offset instead of DW_OP_plus.
690         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
691
692 2010-05-25  Wei Guozhi  <carrot@google.com>
693
694         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
695         tst instruction and a new alternative.
696         * config/arm/constraints.md (Pu): New constraint.
697
698 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
699
700         * function.c (assign_stack_local_1): Initialize variable
701         to avoid warning when bootstrapping at -O3.
702
703 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
704
705         * configure.ac (all_lang_makefiles): Remove everything related to it.
706         * configure: Regenerate.
707         * Makefile.in: Fix reference to ada Make-lang.in.
708         Remove support for LANG_MAKEFILES.
709
710 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
711             Sandra Loosemore  <sandra@codesourcery.com>
712
713         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
714         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
715         description.  Add arm_neon_fp16_ok.
716         (Add Options): Add arm_neon and arm_neon_fp16.
717
718 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
719
720         * diagnostic.c: Don't include flags.h.
721         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
722         context parameters.  Check flags in the context passed as a parameter.
723         (diagnostic_build_prefix): Add context parameter.  Check
724         show_column flag in context.
725         (diagnostic_action_after_output): Check fatal_errors flag in context.
726         (diagnostic_report_current_module): Check show_column flag in context.
727         (default_diagnostic_starter): Update call to
728         diagnostic_build_prefix.
729         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
730         (emit_diagnostic): Pass context to permissive_error_kind.
731         (permerror): Pass context to permissive_error_kind.
732         * diagnostic.h (struct diagnostic_context): Add show_column,
733         pedantic_errors, permissive and fatal_errors fields.
734         (diagnostic_build_prefix): Update prototype.
735         * langhooks.c
736         * toplev.c (process_options): Set flags in global_dc from
737         flag_show_column, flag_pedantic_errors, flag_permissive,
738         flag_fatal_errors.
739         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
740         to diagnostic_build_prefix.
741         * Makefile.in (diagnostic.o): Update dependencies.
742
743 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
744
745         * config/i386/ia32intrin.h (__crc32q): Define only if
746         __SSE4_2__ is defined.
747
748 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
749
750         PR target/44132
751         PR middle-end/43602
752         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
753         DECL_VISIBILITY_SPECIFIED.
754         (emutls_decl): Set DECL_PRESERVE_P and copy
755         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
756         (emutls_finalize_control_var): New callback.
757         (emutls_finish): Finalize emutls control variables.
758         * toplev.c (compile_file): Move the call to emutls_finish ()
759         before varpool_assemble_pending_decls ().
760
761 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
762
763         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
764         added to the preprocessor condition.
765
766 2010-05-24  Paul Brook  <paul@codesourcery.com>
767
768         * gengtype-lex.l: Add HARD_REG_SET.
769         * expr.c (expand_expr_real_1): Record writes to hard registers.
770         * function.c (rtl_data): Add asm_clobbers.
771         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
772         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
773         Use crtl->asm_clobbers.
774
775 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
776
777         * doc/makefile.texi (Makefile): Mention stages 'profile'
778         and 'feedback' for profiledbootstrap.
779
780 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
781
782         PR target/44245
783         * config/i386/i386.c (def_builtin): Properly check
784         OPTION_MASK_ISA_64BIT.
785
786 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
787
788         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
789         typedefs with different but compatible types.  Allow duplicate
790         typedefs with the same type except for pedantic non-C1X, but give
791         warning for variably modified types.
792         * c-typeck.c (tagged_types_tu_compatible_p,
793         function_types_compatible_p, type_lists_compatible_p,
794         comptypes_internal): Add parameter different_types_p; set
795         *different_types_p for different but compatible types.  All
796         callers changed.
797         (comptypes_check_different_types): New.
798         * c-tree.h (comptypes_check_different_types): Declare.
799
800 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
801
802         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
803         * jump.c: Include basic-block.h.
804         * profile.c: Likewise.
805         * tree-profile.c: Likewise.
806         * coverage.c: Likewise.
807         * basic-block.h (optimize_function_for_size_p): Move to function.h.
808         (optimize_function_for_speed_p): Likewise.
809         * function.h (optimize_function_for_size_p,
810         optimize_function_for_speed_p): Moved here from basic-block.h.
811         * Makefile.in: Update dependencies.
812
813 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
814
815         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
816         before calling make; allow override through $MAKE.
817         * doc/invoke.texi (Optimize Options): Document override.
818
819 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
820
821         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
822         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
823         (rs6000_mode_dependent_address_ptr): Make static.
824         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
825         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
826         Remove.
827
828 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
829
830         PR target/43869
831         * config/i386/i386.c: Make sure that the correct regparm is passed.
832
833 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
834
835         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
836         * sbitmap.c: ...to here to internalize sbitmap element access.
837         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
838         Explain why basic-block.h is included.
839         * function.h: Include tm.h for CUMULATIVE_ARGS.
840         * Makefile.in: Update dependencies.
841
842 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
843
844         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
845         New core types.
846         * sbitmap.h (struct sbitmap_def): Do not typedef here.
847         * sbitmap.c: Include sbitmap.h.
848         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
849         hard-reg-set.h.  Split everything related to regsets out from here...
850         * regset.h: ...to here.  New file.
851         * df.h: Include regset.h and sbitmap.h.
852         * tree-flow.h: Likewise.
853         * cfgloop.h: Likewise.
854         * except.h: Do not include sbitmap.h.  Include hashtab.h.
855         * cgraph.h: Include vec.h and function.h.
856         * reload.h (struct insn_chain): Change types of live_throughout
857         and dead_or_set from regset_head to bitmap_head.
858         (compute_use_by_pseudos): Be defined also if regset.h is not included.
859         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
860         spilled_regs from regset_head to bitmap_head to avoid dependency
861         in regset.h.
862         * sel-sched-ir.h: Include regset.h.
863         * reload.c: Include df.h before reload.h.
864         * caller-save.c: Likewise.
865         * reload1.c: Likewise.
866         * ira.c: Likewise.
867         (mark_elimination): Update type of r to bitmap, consistent with
868         DF_LR_IN.
869         * dominance.c: Include bitmap.h.
870         * modulo-sched.c: Include df.h.
871         * cfganal.c: Include bitmap.h and sbitmap.h.
872         * cfgbuild.c: Include sbitmap.h.
873         * lcm.c: Include sbitmap.h.
874         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
875         * domwalk.c: Include sbitmap.h, exclude ggc.h.
876         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
877         * cselib.c: Include bitmap.h.
878         * tree-optimize.c: Include regset.h.
879         * stmt.c: Include bitmap.h.
880         * Makefile.in: Update dependencies.
881
882 2010-05-22  Jan Hubicka  <jh@suse.cz>
883
884         * cgraph.h (struct varpool_node): Add same_comdat_group.
885         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
886         pointer.
887         (output_varpool): Update call of lto_output_varpool_node.
888         (input_varpool): Read same_comdat_group pointer.
889         (input_varpool_1): Fixup same_comdat_group pointer.
890         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
891         group is needed, all are.
892         * varpool.c (varpool_remove_node): Remove node from same comdat group
893         linklist too.
894         (varpool_analyze_pending_decls): Walk same comdat groups.
895
896 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
897
898         * rtl.h (union rtunion_def): Remove rt_bit member.
899         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
900         * print-rtl (print_rtx): Do not print the member.
901         * gengtype.c (adjust_field_rtx_def): Do not handle it.
902         * gengenrtl.c (type_from_format): Likewise.
903         (accessor_from_format): Likewise.
904
905 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
906
907         * dbgcnt.c: Include toplev.h instead of errors.h.
908         * ira-emit.c: Don't include errors.h.
909         * ira.c: Include toplev.h instead of errors.h.
910         * lto-compress.c: Include toplev.h instead of errors.h.
911         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
912         ira.o, dbgcnt.o): Update dependencies.
913
914 2010-05-22  Richard Guenther  <rguenther@suse.de>
915
916         * gimple.c (gimple_types_compatible_p): Check type qualifications
917         before merging pointer to complete and pointer to incomplete type.
918         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
919         we use our own resolution algorithm.  The gold linker plugin
920         doesn't do the job we want it to do here.
921
922 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
923
924         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
925         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
926         (sparc_mode_dependent_address_p): New function.
927
928 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
929
930         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
931
932         * timevar.c: Do not include any core headers.
933         (timevar_print): De-i18n-ize.
934         (print_time): Likewise.
935         * timevar.h (timevar_push, timevar_pop): Make inline functions.
936
937 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
938
939         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
940         langhooks-def.h.
941         (diagnostic_initialize): Initialize x_data not last_function.
942         (diagnostic_report_current_function): Move to tree-diagnostic.c.
943         (default_diagnostic_starter): Call
944         diagnostic_report_current_module not
945         diagnostic_report_current_function.
946         (diagnostic_report_diagnostic): Initialize x_data not
947         abstract_origin.
948         (verbatim): Likewise.
949         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
950         x_data.
951         (struct diagnostic_context): Change last_function to x_data.
952         (diagnostic_auxiliary_data): Replace with
953         diagnostic_context_auxiliary_data and
954         diagnostic_info_auxiliary_data.
955         (diagnostic_last_function_changed, diagnostic_set_last_function,
956         diagnostic_report_current_function): Move to tree-diagnostic.h.
957         (print_declaration, dump_generic_node, print_generic_stmt,
958         print_generic_stmt_indented, print_generic_expr,
959         print_generic_decl, debug_c_tree, dump_omp_clauses,
960         print_call_name, debug_generic_expr, debug_generic_stmt,
961         debug_tree_chain, default_tree_printer): Move to
962         tree-pretty-print.h.
963         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
964         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
965         gimple-pretty-print.h.
966         * pretty-print.c: Don't include tree.h
967         (pp_base_format): Don't handle %K here.
968         (pp_base_tree_identifier): Move to tree-pretty-print.c.
969         * pretty-print.h (text_info): Change abstract_origin to x_data.
970         (pp_tree_identifier, pp_unsupported_tree,
971         pp_base_tree_identifier): Move to tree-pretty-print.h.
972         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
973         tree-pretty-print.h: New files.
974         * tree-pretty-print.c: Include tree-pretty-print.h.
975         (percent_K_format): New.  Moved from pretty-print.c.
976         (pp_base_tree_identifier): Move from pretty-print.c.
977         * c-objc-common.c: Include tree-pretty-print.h.
978         (c_tree_printer): Handle %K here.
979         * langhooks.c: Include tree-diagnostic.h.
980         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
981         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
982         (default_tree_printer): Handle %K using percent_K_format.
983         (general_init): Use default_tree_diagnostic_starter.
984         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
985         (free_lang_data): Use default_tree_diagnostic_starter.
986         * c-pretty-print.c: Include tree-pretty-print.h.
987         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
988         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
989         * dwarf2out.c: Include tree-pretty-print.h.
990         * except.c: Include tree-pretty-print.h.
991         * gimple-pretty-print.c: Include tree-pretty-print.h and
992         gimple-pretty-print.h.
993         * gimplify.c: Include tree-pretty-print.h.
994         * graphite-poly.c: Include tree-pretty-print.h and
995         gimple-pretty-print.h.
996         * ipa-cp.c: Include tree-pretty-print.h.
997         * ipa-inline.c: Include gimple-pretty-print.h.
998         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
999         * ipa-pure-const.c: Include gimple-pretty-print.h.
1000         * ipa-struct-reorg.c: Include tree-pretty-print.h and
1001         gimple-pretty-print.h.
1002         * ipa-type-escape.c: Include tree-pretty-print.h.
1003         * print-rtl.c: Include tree-pretty-print.h.
1004         * print-tree.c: Include gimple-pretty-print.h.
1005         * sese.c: Include tree-pretty-print.h.
1006         * tree-affine.c: Include tree-pretty-print.h.
1007         * tree-browser.c: Include tree-pretty-print.h.
1008         * tree-call-cdce.c: Include gimple-pretty-print.h.
1009         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1010         * tree-chrec.c: Include tree-pretty-print.h.
1011         * tree-data-ref.c: Include tree-pretty-print.h and
1012         gimple-pretty-print.h.
1013         * tree-dfa.c: Include tree-pretty-print.h.
1014         * tree-if-conv.c: Include tree-pretty-print.h and
1015         gimple-pretty-print.h.
1016         * tree-inline.c: Include tree-pretty-print.h.
1017         * tree-into-ssa.c: Include tree-pretty-print.h and
1018         gimple-pretty-print.h.
1019         * tree-nrv.c: Include tree-pretty-print.h.
1020         * tree-object-size.c: Include tree-pretty-print.h and
1021         gimple-pretty-print.h.
1022         * tree-outof-ssa.c: Include tree-pretty-print.h and
1023         gimple-pretty-print.h.
1024         * tree-parloops.c: Include tree-pretty-print.h and
1025         gimple-pretty-print.h.
1026         * tree-predcom.c: Include tree-pretty-print.h and
1027         gimple-pretty-print.h.
1028         * tree-scalar-evolution.c: Include tree-pretty-print.h and
1029         gimple-pretty-print.h.
1030         * tree-sra.c: Include tree-pretty-print.h.
1031         * tree-ssa-address.c: Include tree-pretty-print.h.
1032         * tree-ssa-alias.c: Include tree-pretty-print.h.
1033         * tree-ssa-ccp.c: Include tree-pretty-print.h and
1034         gimple-pretty-print.h.
1035         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
1036         * tree-ssa-copy.c: Include tree-pretty-print.h and
1037         gimple-pretty-print.h.
1038         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
1039         * tree-ssa-dce.c: Include tree-pretty-print.h and
1040         gimple-pretty-print.h.
1041         * tree-ssa-dom.c: Include tree-pretty-print.h and
1042         gimple-pretty-print.h.
1043         * tree-ssa-dse.c: Include gimple-pretty-print.h.
1044         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
1045         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
1046         * tree-ssa-live.c: Include tree-pretty-print.h and
1047         gimple-pretty-print.h.
1048         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
1049         gimple-pretty-print.h.
1050         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
1051         gimple-pretty-print.h.
1052         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
1053         gimple-pretty-print.h.
1054         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
1055         gimple-pretty-print.h.
1056         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
1057         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
1058         * tree-ssa-operands.c: Include tree-pretty-print.h and
1059         gimple-pretty-print.h.
1060         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
1061         gimple-pretty-print.h.
1062         * tree-ssa-pre.c: Include tree-pretty-print.h and
1063         gimple-pretty-print.h.
1064         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
1065         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
1066         gimple-pretty-print.h.
1067         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
1068         gimple-pretty-print.h.
1069         * tree-ssa-sink.c: Include gimple-pretty-print.h.
1070         * tree-ssa-ter.c: Include tree-pretty-print.h and
1071         gimple-pretty-print.h.
1072         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
1073         * tree-ssa.c: Include tree-pretty-print.h and
1074         gimple-pretty-print.h.
1075         * tree-stdarg.c: Include gimple-pretty-print.h.
1076         * tree-switch-conversion.c: Include gimple-pretty-print.h.
1077         * tree-tailcall.c: Include tree-pretty-print.h and
1078         gimple-pretty-print.h.
1079         * tree-vect-data-refs.c: Include tree-pretty-print.h and
1080         gimple-pretty-print.h.
1081         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
1082         gimple-pretty-print.h.
1083         * tree-vect-loop.c: Include tree-pretty-print.h and
1084         gimple-pretty-print.h.
1085         * tree-vect-patterns.c: Include gimple-pretty-print.h.
1086         * tree-vect-slp.c: Include tree-pretty-print.h and
1087         gimple-pretty-print.h.
1088         * tree-vect-stmts.c: Include tree-pretty-print.h and
1089         gimple-pretty-print.h.
1090         * tree-vectorizer.c: Include tree-pretty-print.h.
1091         * tree-vrp.c: Include tree-pretty-print.h and
1092         gimple-pretty-print.h.
1093         * value-prof.c: Include tree-pretty-print.h and
1094         gimple-pretty-print.h.
1095         * var-tracking.c: Include tree-pretty-print.h.
1096         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
1097         (tree-diagnostic.o): New dependencies.
1098         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
1099         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
1100         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
1101         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
1102         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
1103         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
1104         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
1105         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
1106         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
1107         tree-ssa-address.o, tree-ssa-loop-niter.o,
1108         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
1109         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
1110         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
1111         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
1112         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
1113         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
1114         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
1115         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
1116         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
1117         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
1118         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
1119         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
1120         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
1121         tree-switch-conversion.o, var-tracking.o, value-prof.o,
1122         cfgexpand.o, pretty-print.o): Update dependencies.
1123
1124 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
1125
1126         * tree-ssa-structalias.c: Remove tm_p.h from include.
1127
1128 2010-05-21  Jeff Law  <law@redhat.com>
1129
1130         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
1131
1132 2010-05-21  Jason Merrill  <jason@redhat.com>
1133
1134         * tree-eh.c (cleanup_is_dead_in): New.
1135         (lower_try_finally): Don't generate a dead cleanup region.
1136         (lower_cleanup): Likewise.
1137
1138 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1139
1140         PR debug/44223
1141         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
1142         unchain each use from the cyclic next_regno_use chain first.
1143
1144 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1145
1146         * real: Do not include gmp.h, mpfr.h, and mpc.h.
1147         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
1148         (real_value_negate, real_value_abs): New prototypes.
1149         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
1150         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
1151         new include file for interface between MPFR and REAL_VALUE_TYPE.
1152         * real.c: Include realmpfr.h.
1153         (real_arithmetic2): Remove legacy function.
1154         (real_value_negate): New.
1155         (real_value_abs): New.
1156         (mfpr_from_real, real_from_mpfr): Move from here...
1157         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
1158         * builtins.c: Include realmpfr.h.
1159         * fold-const.c: Include realmpfr.h.
1160         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
1161         (fold_negate_const): Likewise.
1162         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
1163         * toplev.c: Include realmpfr.h.
1164         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
1165         and real_value_negate.
1166         * fixed-value.c (check_real_for_fixed_mode): Likewise.
1167         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
1168         (vfp3_const_double_index): Likewise.
1169         (arm_print_operand): Likewise.
1170         * Makefile.in: Update dependencies.
1171
1172 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1173
1174         * config/s390/s390.c (override_options): Increase the default
1175         of max-completely-peel-times.
1176
1177 2010-05-21  Julian Brown  <julian@codesourcery.com>
1178             Mark Mitchell  <mark@codesourcery.com>
1179
1180         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
1181         sibling calls for Thumb-1.
1182         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
1183         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
1184         Thumb-2.
1185         (*call_insn, *call_value_insn): Don't use for Thumb-2.
1186         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
1187         for Thumb-2.
1188         (return): New expander.
1189         (*arm_return): New name for ARM return insn.
1190         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
1191
1192 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
1193
1194         * config.gcc (sparc64-*-rtems*): New target.
1195
1196 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1197
1198         * tree.c (build_function_decl_skip_args): Fix grammar.
1199         (build_function_type_list_1): Fix typos, adjust formatting.
1200
1201 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1202
1203         * tree.h: Include real.h and fixed-value.h as basic datatypes.
1204         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
1205         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
1206         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
1207         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
1208         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
1209         tree-pretty-print.c, tree-loop-distribution.c,
1210         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
1211         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
1212         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
1213         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
1214         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
1215         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
1216         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
1217         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
1218         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
1219         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
1220         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
1221         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
1222         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
1223         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
1224         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
1225         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
1226         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
1227         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
1228         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
1229         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
1230         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
1231         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
1232         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
1233         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
1234         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
1235         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
1236         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
1237         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
1238         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
1239         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
1240         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
1241         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
1242         config/score/score7.c, config/score/score.c, config/arm/arm.c,
1243         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
1244         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
1245         config/bfin/bfin.c: Clean up redundant includes.
1246         * Makefile.in: Update accordingly.
1247
1248 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1249
1250         PR middle-end/44204
1251         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
1252         statement has no arguments.
1253
1254 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
1255
1256         PR/44139
1257         * varasm.c (emutls_decl): Merge attributes to new decl.
1258
1259 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1260
1261         PR middle-end/44101
1262         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
1263         around the uniquized constructor if its type requires a conversion.
1264
1265 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1266
1267         PR debug/44205
1268         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
1269         at -O0 goto_locus of any of the incoming edges differs from
1270         goto_locus of outgoing edge, or gimple_location of any of the
1271         labels differs.
1272
1273 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
1274
1275         * ira.c (ira_non_ordered_class_hard_regs): Define.
1276         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
1277         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
1278         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
1279         cost of unaligned hard regs when allocating multi-reg pseudos.
1280
1281 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
1282
1283         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
1284         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
1285         for TARGET_NO_FLOAT.
1286         * config/mips/mips.c (mips_file_start): Expand conditional expression
1287         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
1288         (mips_override_options): Move -mno-float override -msoft-float and
1289         -mhard-float.
1290         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
1291         Condition(TARGET_SUPPORTS_NO_FLOAT).
1292         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
1293         __mips_no_float here.
1294         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
1295         (TARGET_SUPPORTS_NO_FLOAT): Define.
1296         * config/mips/sdemtk.opt: Delete.
1297
1298 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
1299
1300         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
1301
1302 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
1303
1304         PR target/43733
1305         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
1306         * configure: Regenerate.
1307         * config.in: Regenerate.
1308         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
1309         instead of sahf only for 64bit targets.
1310
1311 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1312
1313         PR debug/44178
1314         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
1315         setup_ref_regs for DEBUG_INSNs.
1316
1317 2010-05-20  Jan Hubicka  <jh@suse.cz>
1318
1319         PR middle-end/44197
1320         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
1321
1322 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
1323
1324         PR bootstrap/43870
1325         * df-scan.c (df_ref_compare): Stabilize sort.
1326
1327 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1328
1329         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
1330         argument.  Don't use DW_OP_piece if offset is non-zero,
1331         put offset into second DW_OP_bit_piece argument.
1332         (dw_sra_loc_expr): Adjust callers.  For memory expressions
1333         compute offset.
1334
1335 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
1336
1337         PR target/44202
1338         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
1339         settings for 16-bit-constant "addo" alternative.
1340
1341 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
1342
1343         * config/mips/mips-dsp.md (add<DSPV:mode>3,
1344         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
1345
1346         PR target/43764
1347         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
1348         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
1349         Use it.
1350
1351 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
1352
1353         * diagnostic.c (FLOAT, FFS): Don't undefine.
1354         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
1355         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
1356         include ordering.
1357
1358 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
1359
1360         * combine.c (propagate_for_debug): Call make_compound_operation
1361         on the source value.
1362         (try_combine): When implementing a split chosen by find_split_point,
1363         either copy i2src or set it to null.  Assert that i2src is not null
1364         before substituting into CALL_INSN_FUNCTION_USAGE.
1365
1366 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
1367
1368         * double-int.h (double_int_ior): New function.
1369         * tree.h (build_int_cst_wide_type): Remove.
1370         * tree.c (build_int_cst_wide_type): Remove.
1371         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
1372         of build_int_cst_wide_type.
1373         * stor-layout.c (set_sizetype): (Ditto.).
1374         * dojump.c (do_jump): Use build_int_cstu instead of
1375         build_int_cst_wide_type.
1376
1377 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1378
1379         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
1380         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
1381         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
1382         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
1383         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
1384         propagate the 'data' argument to copy_tree_r.
1385         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
1386         Propagate 'data' argument to walk_tree.
1387         (copy_if_shared): New function.
1388         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
1389         (unmark_visited): New function.
1390         (unshare_body): Call copy_if_shared instead of doing it manually.
1391         (unvisit_body): Call unmark_visited instead of doing it manually.
1392
1393 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
1394
1395         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
1396         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
1397         * hooks.c: Likewise.
1398         * target-def.h (TARGET_FOLD_BUILTIN): Define to
1399         hook_tree_tree_int_treep_bool_null.
1400         * target.h (struct gcc_target): Update signature of fold_builtin
1401         field.
1402         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
1403         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
1404         instead of the call expression.
1405         (fold_builtin_call_array): Pass n and argarray directly.
1406         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
1407         consing a list.
1408         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
1409         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
1410         `i' and use it in place of `arity'.
1411         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
1412         Dereference `args' directly.
1413         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
1414
1415 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1416
1417         * doc/sourcebuild.texi (Effective-Target Keywords): Document
1418         3dnow, sse3, sse2.
1419         (Directives): Document optional dg-require-effective-target
1420         selector.
1421
1422 2010-05-19  Richard Guenther  <rguenther@suse.de>
1423
1424         PR lto/44196
1425         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
1426
1427 2010-05-19  Richard Guenther  <rguenther@suse.de>
1428
1429         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
1430         * common.opt (fwhopr=): New.
1431         * opts.c (common_handle_option): Handle OPT_fwhopr.
1432         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
1433         * collect2.c (main): Match -fwhopr*.
1434         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
1435         Execute ltrans stage in parallel when jobs is bigger than 1.
1436
1437 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1438
1439         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
1440         pentiumpro on Solaris 8/x86 with Sun as.
1441         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
1442         hidden alias bug.
1443         (gcc_cv_as_ix86_quad): Check for .quad directive.
1444         * configure: Regenerate.
1445         * config.in: Regenerate.
1446         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
1447
1448 2010-05-19  Martin Jambor  <mjambor@suse.cz>
1449
1450         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
1451         also for indirect edges.  Actual printing moved...
1452         (ipa_print_node_jump_functions_for_edge): ...here.
1453         (ipa_compute_jump_functions): Renamed to
1454         ipa_compute_jump_functions_for_edge and made static.
1455         (ipa_compute_jump_functions): New function.
1456         (make_edge_direct_to_target): Check if the number of arguments on
1457         the newly direct edge is the same as the number of parametrs of
1458         the callee.
1459         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
1460         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
1461         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
1462         analysis functions unconditionally, call the new
1463         ipa_analyze_params_uses on the node instead of every edge.
1464
1465 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
1466
1467         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
1468         to tree.
1469         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
1470         also checks for a constant int vs.  non-constant but
1471         loop-invariant steps.
1472         (find_or_create_group): Change the sort algorithm to only consider
1473         steps that are constant ints.
1474         (idx_analyze_ref): Adopt code to handle a tree instead of a
1475         HOST_WIDE_INT for step.
1476         (gather_memory_references_ref): Handle tree instead of int and be
1477         prepared to see a NULL_TREE.
1478         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
1479         prefetches if the step cannot be calculated at compile time.
1480         (issue_prefetch_ref): Issue prefetches for non-constant but
1481         loop-invariant steps.
1482
1483 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1484
1485         Revert:
1486         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1487
1488         * tree.h (build_call_list): Remove.
1489         * tree.c (build_call_list): Remove.
1490
1491 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1492
1493         * tree.h (build_call_list): Remove.
1494         * tree.c (build_call_list): Remove.
1495
1496 2010-05-18  Jan Hubicka  <jh@suse.cz>
1497
1498         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
1499
1500 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
1501
1502         PR rtl-optimization/43332
1503         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
1504
1505 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
1506
1507         * tree.h (build_int_cstu): Implement as static inline.
1508         * tree.c (build_int_cstu): Remove function.
1509         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
1510         sign extended.
1511
1512 2010-05-18  Richard Guenther  <rguenther@suse.de>
1513
1514         PR lto/44143
1515         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
1516         (debug): Initialize from -save-temps.
1517         (collect_execute): Print command-line when verbose.
1518         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
1519         for ltrans invocation.  Produce -dumpbase flag again.
1520         (process_args): Remove.
1521         (main): Simplify.
1522         * collect2.c (maybe_run_lto_and_relink): Only pass object
1523         files to lto-wrapper.
1524         * gcc.c (LINK_COMMAND_SPEC): Likewise.
1525
1526 2010-05-18  Jan Hubicka  <jh@suse.cz>
1527
1528         * opts.c (decode_options): Do not disable whopr at ipa_cp.
1529         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
1530
1531 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
1532
1533         PR lto/44184
1534         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
1535         in a GIMPLE_ASM.
1536         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
1537         in a GIMPLE_ASM.
1538
1539 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
1540
1541         PR debug/41371
1542         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
1543         rtx_equal_p inline.
1544
1545 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
1546
1547         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
1548         lto-macho as lto_binary_reader.
1549
1550         * darwin.c (darwin_asm_named_section): Do not add assembler comment
1551         after .section directive; just print it before the directive instead.
1552
1553 2010-05-17  Jan Hubicka  <jh@suse.cz>
1554
1555         * cgraph.c (cgraph_create_virtual_clone): Only check
1556         versionable_function_p when not in wpa and checking is enabled.
1557         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
1558         there are no more functions to materialize.
1559
1560 2010-05-17  Jan Hubicka  <jh@suse.cz>
1561
1562         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
1563         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
1564         New functions.
1565         (output_cgraph): Call output_cgraph_opt_summary.
1566         (input_cgrpah): Call input_cgraph_opt_summary.
1567         (output_cgraph_opt_summary_p, output_node_opt_summary,
1568         input_node_opt_summary, input_cgraph_opt_section): New functions.
1569         * lto-section-in.c (lto_section_name): Add cgraphopt.
1570         * tree-inline.c (tree_function_versioning): Handle parm_num.
1571         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
1572         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
1573
1574 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
1575
1576         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
1577         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
1578         the insn to prefetch ratio heuristic to loops with known trip count.
1579
1580 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
1581
1582         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
1583         (schedule_prefetches): Do not generate a prefetch if the unroll factor
1584         is far from what is required by the prefetch.
1585
1586 2010-05-17  Jan Hubicka  <jh@suse.cz>
1587
1588         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
1589         (ipcp_estimate_growth): Likewise.
1590         (ipcp_const_param_count): Likewise.
1591         (ipcp_insert_stage): Likewise.
1592         * ipa-prop.c (visit_load_for_mod_analysis): New function.
1593         (visit_store_addr_for_mod_analysis): Set used flag.
1594         (ipa_detect_param_modifications): Set used flag for SSE params;
1595         update use of walk_stmt_load_store_addr_ops.
1596         (ipa_print_node_params): Print used flag.
1597         (ipa_write_node_info): Stream used flag.
1598         (ipa_read_node_info): Likewise.
1599         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
1600         (ipa_is_param_used): New function.
1601         (lto_ipa_fixup_call_notes): Remove unused declaration.
1602
1603 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1604
1605         PR target/44074
1606         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
1607         * configure: Regenerate.
1608         * config.in: Regenerate.
1609         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
1610         !HAVE_AS_IX86_REP_LOCK_PREFIX.
1611         Don't emit whitespace.
1612         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
1613         (*rep_movsi): Likewise.
1614         (*rep_movsi_rex64): Likewise.
1615         (*rep_movqi): Likewise.
1616         (*rep_movqi_rex64): Likewise.
1617         (*rep_stosdi_rex64): Likewise.
1618         (*rep_stossi): Likewise.
1619         (*rep_stossi_rex64): Likewise.
1620         (*rep_stosqi): Likewise.
1621         (*rep_stosqi_rex64): Likewise.
1622         (*cmpstrnqi_nz_1): Use {%;} after repz.
1623         (*cmpstrnqi_nz_rex_1): Likewise.
1624         (*cmpstrnqi_1): Likewise.
1625         (*cmpstrnqi_rex_1): Likewise.
1626         (*strlenqi_1): Use {%;} after repnz.
1627         (*strlenqi_rex_1): Likewise.
1628         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
1629         (*sync_compare_and_swap<mode>): Likewise.
1630         (sync_double_compare_and_swap<mode>): Likewise.
1631         (*sync_double_compare_and_swapdi_pic): Likewise.
1632         (sync_old_add<mode>): Likewise.
1633         (sync_add<mode>): Likewise.
1634         (sync_sub<mode>): Likewise.
1635         (sync_<code><mode>): Likewise.
1636
1637 2010-05-17  Martin Jambor  <mjambor@suse.cz>
1638
1639         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
1640         otr_token and polymorphic.
1641         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
1642         (cgraph_clone_edge): Copy the above fields.
1643         * tree.c (get_binfo_at_offset): New function.
1644         * tree.h (get_binfo_at_offset): Declare.
1645         * ipa-prop.h (enum jump_func_type): Added known_type jump function
1646         type, reordered items, updated comments.
1647         (union jump_func_value): Added base_type field, reordered fields.
1648         (enum ipa_lattice_type): Moved down in the file.
1649         (struct ipa_param_descriptor): New field polymorphic.
1650         (ipa_is_param_polymorphic): New function.
1651         * ipa-prop.c: Include gimple.h and gimple-fold.h.
1652         (ipa_print_node_jump_functions): Print known type jump functions.
1653         (compute_complex_pass_through): Renamed to...
1654         (compute_complex_assign_jump_func): this.
1655         (compute_complex_ancestor_jump_func): New function.
1656         (compute_known_type_jump_func): Likewise.
1657         (compute_scalar_jump_functions): Create known type and complex ancestor
1658         jump functions.
1659         (ipa_note_param_call): New parameter polymorphic, set the corresponding
1660         flag in the call note accordingly.
1661         (ipa_analyze_call_uses): Renamed to...
1662         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
1663         variable var only in the block where it is used.
1664         (ipa_analyze_virtual_call_uses): New function.
1665         (ipa_analyze_call_uses): Likewise.
1666         (combine_known_type_and_ancestor_jfs): Likewise.
1667         (update_jump_functions_after_inlining): Implemented handling of a
1668         number of new jump function types combination.
1669         (print_edge_addition_message): Removed.
1670         (make_edge_direct_to_target): New function.
1671         (try_make_edge_direct_simple_call): Likewise.
1672         (try_make_edge_direct_virtual_call): Likewise.
1673         (update_call_notes_after_inlining): Renamed to...
1674         (update_indirect_edges_after_inlining): this.  Moved edge creation for
1675         indirect calls to try_make_edge_direct_simple_call, also calls
1676         try_make_edge_direct_virtual_call for virtual calls.
1677         (ipa_print_node_params): Changed the header message.
1678         (ipa_write_jump_function): Stream also known type jump functions.
1679         (ipa_read_jump_function): Likewise.
1680         (ipa_write_indirect_edge_info): Stream new fields in
1681         cgraph_indirect_call_info.
1682         (ipa_read_indirect_edge_info): Likewise.
1683         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
1684         GIMPLE_FOLD_H.
1685
1686 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1687
1688         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
1689
1690 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1691
1692         * tree.h (CALL_EXPR_ARGS): Delete.
1693         (call_expr_arglist): Delete.
1694         * tree.c (call_expr_arglist): Delete.
1695         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
1696         targetm.fold_builtin.
1697         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
1698         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
1699         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
1700         arglist parameter.  Use CALL_EXPR_ARG.
1701         (picochip_expand_builtin_3op): Likewise.
1702         (picochip_expand_builtin_2opvoid): Likewise.
1703         (picochip_expand_array_get): Likewise.
1704         (picochip_expand_array_put): Likewise.
1705         (picochip_expand_array_testport): Likewise.
1706         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
1707         rather than arglist.
1708         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
1709         CALL_EXPR_ARGS.
1710         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
1711         than TREE_VALUE and TREE_CHAIN.
1712         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
1713         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
1714         the arglist.
1715
1716 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
1717
1718         PR bootstrap/42347
1719         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
1720         to have no fallthru edge.
1721
1722         PR middle-end/44102
1723         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
1724         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
1725         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
1726         add BARRIER after previous bb if needed.
1727
1728 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1729
1730         * tree.c (build_function_type_list_1): Remove bogus assert condition.
1731
1732 2010-05-17  Alan Modra  <amodra@gmail.com>
1733
1734         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
1735         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
1736         with copy_reg rtx param.
1737         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
1738         Correct cases where code for ABI_V4 did not initialise the reg
1739         used to access frame.  Also leave frame_reg_rtx as sp for large
1740         frames that save no regs.
1741
1742 2010-05-17  Martin Jambor  <mjambor@suse.cz>
1743
1744         PR middle-end/44133
1745         * tree-sra.c (create_access_replacement): New parameter rename, mark
1746         the replaement for renaming only when it is true.
1747         (get_access_replacement): Pass true in the rename parameter of
1748         create_access_replacement.
1749         (get_unrenamed_access_replacement): New function.
1750         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
1751         replacement declaration from it.
1752
1753 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
1754
1755         * function.c (try_fit_stack_local, add_frame_space): New static
1756         functions.
1757         (assign_stack_local_1): Use them.  Look for opportunities to use
1758         space previously wasted on alignment.
1759         * function.h (struct frame_space): New.
1760         (struct rtl_data): Add FRAME_SPACE_LIST member.
1761         * reload1.c (something_was_spilled): New static variable.
1762         (alter_reg): Set it.
1763         (reload): Test it in addition to testing if the frame size changed.
1764
1765 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
1766
1767         * config/s390/s390.c: Define sane prefetch settings and activate
1768         flag_prefetch_loop_arrays on -O3.
1769         * config/s390/s390.h: Declare that read can use write prefetch.
1770
1771 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
1772
1773         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
1774         build.
1775
1776 2010-05-16  Jan Hubicka  <jh@suse.cz>
1777
1778         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
1779         function body; do not check stdarg field of struct function.
1780
1781 2010-05-16  Jan Hubicka  <jh@suse.cz>
1782
1783         * cgraph.c (dump_cgraph_node): Dump versionable flag.
1784         * cgraph.h (cgraph_local_info): Add versionable flag.
1785         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
1786         (ipcp_versionable_function_p): Use it.
1787         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
1788         versionable flag.
1789
1790 2010-05-16  Jan Hubicka  <jh@suse.cz>
1791
1792         * cgraph.c (cgraph_clone_node): Take decl argument and insert
1793         clone into hash when it is different from orig.
1794         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
1795         * cgraph.h (cgraph_clone_node): Update prototype.
1796         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
1797         (lto_cgraph_encoder_delete): Delete body map.
1798         (lto_cgraph_encoder_size): Move to header.
1799         (lto_cgraph_encoder_encode_body_p,
1800         lto_set_cgraph_encoder_encode_body): New.
1801         (lto_output_node): Do not take written_decls argument; output clone_of
1802         pointer.
1803         (add_node_to): Add include_body_argument; call
1804         lto_set_cgraph_encoder_encode_body on master of the clone.
1805         (add_references): Update use of add_node_to.
1806         (compute_ltrans_boundary): Likewise.
1807         (output_cgraph): Do not create written_decls bitmap.
1808         (input_node): Take nodes argument; stream in clone_of correctly.
1809         (input_cgraph_1): Update use of input_node.
1810         * lto-streamer-out.c (lto_output): Use encoder info to decide
1811         what bodies to output.
1812         * ipa-inline.c (cgraph_clone_inlined_nodes,
1813         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
1814         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
1815         (lto_cgraph_encoder_size): Define here.
1816         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
1817         Declare.
1818
1819 2010-05-16  Richard Guenther  <rguenther@suse.de>
1820
1821         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
1822         -fipa-type-escape.
1823         * ipa-type-escape.c (gate_type_escape_vars): Run when
1824         -fipa-struct-reorg runs.
1825         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
1826         * common.opt (fipa-type-escape): Remove.
1827
1828 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
1829
1830         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
1831         (decode_options): Likewise.
1832         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
1833
1834 2010-05-16  Jan Hubicka  <jh@suse.cz>
1835
1836         * ipa.c (function_and_variable_visibility): Also bring local all
1837         aliases.
1838
1839 2010-05-16  Richard Guenther  <rguenther@suse.de>
1840
1841         * alias.c (nonoverlapping_memrefs_p): Remove use of
1842         IPA type-escape information.
1843
1844 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
1845
1846         * c-common.c (c_common_reswords): Add _Static_assert for C.
1847         * c-parser.c (c_token_starts_declaration,
1848         c_parser_next_token_starts_declaration,
1849         c_parser_static_assert_declaration_no_semi,
1850         c_parser_static_assert_declaration): New.
1851         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
1852         Handle static assertions if static_assert_ok.
1853         (c_parser_external_declaration, c_parser_declaration_or_fndef,
1854         c_parser_compound_statement_nostart, c_parser_label,
1855         c_parser_for_statement, c_parser_objc_methodprotolist,
1856         c_parser_omp_for_loop): All callers of
1857         c_parser_declaration_or_fndef changed.
1858         (c_parser_struct_declaration): Handle static assertions.
1859         (c_parser_compound_statement_nostart): Use
1860         c_parser_next_token_starts_declaration and
1861         c_token_starts_declaration to detect start of declarations.
1862         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
1863         Likewise.
1864
1865 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
1866
1867         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
1868         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
1869         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1870         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1871         (mmix_function_outgoing_value): Rename to...
1872         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
1873         (mmix_function_value_regno_p): Make static.
1874         (mmix_libcall_value): New function.
1875         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
1876         mmix_function_value_regno_p): Remove declaration.
1877
1878 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
1879
1880         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
1881         BUILT_IN_ALLOCA if stack checking is enabled.
1882
1883 2010-05-16  Richard Guenther  <rguenther@suse.de>
1884
1885         * var-tracking.c (vars_copy_1): Inline ...
1886         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
1887         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
1888         (variable_merge_over_cur): Adjust.  Merge asserts.
1889         (variable_merge_over_src): Likewise.
1890         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
1891         (variable_post_merge_new_vals): Merge asserts.
1892         (variable_post_merge_perm_vals): Likewise.
1893         (find_mem_expr_in_1pdv): Likewise.
1894         (dataflow_set_different_value): Remove.
1895         (onepart_variable_different_p): Merge asserts.
1896         (variable_different_p): Likewise.
1897         (dataflow_set_different_1): Inline ...
1898         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
1899         (emit_notes_for_differences_1): Merge asserts.
1900
1901 2010-05-16  Richard Guenther  <rguenther@suse.de>
1902
1903         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
1904         * optabs.c (libfunc_decl_hash): Likewise.
1905         * varasm.c (emutls_decl): Likewise.
1906
1907 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
1908
1909         * c-decl.c: Don't include gimple.h.
1910         (merge_decls): Do not copy gimple_body.
1911
1912 2010-05-15  Jason Merrill  <jason@redhat.com>
1913
1914         * c.opt: Add -fnothrow-opt.
1915
1916 2010-05-15  Jan Hubicka  <jh@suse.cz>
1917
1918         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
1919         analyzed.
1920         * passes.c (ipa_write_summaries): Write all analyzed nodes.
1921
1922 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
1923
1924         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
1925         * Makefile.in: Add it.
1926         Fix all other Makefile dependencies for changes below.
1927         * tree.h: Include it instead of defining VEC primitives here.
1928         * gimple.h: Likewise.
1929         * rtl.h: Likewise.
1930         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
1931         * except.h: Include vecir.h, break dependence on tree.h.
1932
1933         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
1934         Move from here...
1935         * tree-iterator.c: ...to here.
1936         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
1937
1938         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
1939         tm_p.h.
1940         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
1941         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
1942         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
1943         tree-mudflap.h, and target.h.
1944         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
1945         predict.h, tree-inline.h, gimple.h, and langhooks.h.
1946         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
1947         Add FIXME for why gimple.h is still included (should be unnecessary
1948         since GCC 4.5 gimplification unit-at-a-time).
1949         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
1950         * c-pragma.c: Add FIXME for why function.h needs to be included just
1951         for cfun, at front-end level.
1952         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
1953         Do not include ggc.h, but include vecprim.h for VEC(char).
1954         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
1955         Explain why target.h is included.
1956         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
1957         Explain why gimple.h is included.
1958         * c-ppoutput.c: Do not include tm.h.
1959         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
1960         * c-parses.c: Explain why rtl.h is included, and that this (and only
1961         this) is also why tm.h must be included.
1962         Do not include except.h.
1963         * c-lang.c: Do not include ggc.h.
1964
1965 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
1966
1967         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
1968
1969 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
1970
1971         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
1972         unions by default if those structs and unions have no tags.  Do
1973         not condition anonymous struct and unions handling on flag_iso.
1974         Allow anonymous structs and unions for C1X.
1975         (finish_struct): Do not diagnose lack of named fields when
1976         anonymous structs and unions present for C1X.  Accept flexible
1977         array members in structure with anonymous structs or unions but no
1978         directly named fields.
1979         * doc/extend.texi (Unnamed Fields): Update.
1980
1981 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
1982
1983         * gimple.h (compare_field_offset): Rename into...
1984         (gimple_compare_field_offset): ...this.
1985         * gimple.c (compare_field_offset): Rename into...
1986         (gimple_compare_field_offset): ...this.  Compare the full access if
1987         the offset is self-referential.
1988         (gimple_types_compatible_p): Adjust for above renaming.
1989         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
1990         DECL_NONADDRESSABLE_P flag of fields before merging them.
1991
1992 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
1993
1994         * tree.h (ctor_to_list): Delete.
1995         * tree.c (ctor_to_list): Delete.
1996
1997 2010-05-15  Jan Hubicka  <jh@suse.cz>
1998
1999         * ipa-reference.c: Include toplev.h
2000         (is_proper_for_analysis): Only add to all_module_statics
2001         if it is allocated.
2002         (write_node_summary_p, stream_out_bitmap,
2003         ipa_reference_write_optimization_summary,
2004         ipa_reference_read_optimization_summary): New.
2005         (struct ipa_opt_pass_d pass_ipa_reference): Add
2006         optimization summary streaming.
2007         * lto-cgraph.c (referenced_from_this_partition_p,
2008         reachable_from_this_partition_p): New functions.
2009         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2010         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
2011         * opts.c (decode_options): Enable ipa_reference.
2012         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
2013         * lto-streamer.h (referenced_from_this_partition_p,
2014         reachable_from_this_partition_p): Declare.
2015
2016 2010-05-15  Richard Guenther  <rguenther@suse.de>
2017
2018         PR tree-optimization/44038
2019         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
2020         taking the address of a V_C_E of a constant.
2021
2022 2010-05-14  Jan Hubicka  <jh@suse.cz>
2023
2024         * tree.h (memory_identifier_string): Remove.
2025         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
2026         (ipa_reference_global_vars_info_d): Remove statics_not_read and
2027         statics_not_written.
2028         (ipa_reference_optimization_summary_d): New structure.
2029         (ipa_reference_optimization_summary_t): New type and vector.
2030         (ipa_reference_vars_info_d): Embedd structures instead of using
2031         pointers.
2032         (reference_vars_to_consider): Remove out of GGC space.
2033         (module_statics_escape): Remove.
2034         (global_info_obstack): Rename to ...
2035         (optimization_summary_obstack): ... this one.
2036         (initialization_status_t): Remove.
2037         (memory_identifier_string): Remove.
2038         (get_reference_vars_info): Fix indenting.
2039         (set_reference_vars_info): Likewise.
2040         (get_reference_optimization_summary): New.
2041         (set_reference_optimization_summary): New.
2042         (get_global_reference_vars_info): Remove.
2043         (ipa_reference_get_read_global): Remove.
2044         (ipa_reference_get_written_global): Remove.
2045         (ipa_reference_get_not_read_global): Update.
2046         (ipa_reference_get_not_written_global): Update.
2047         (is_proper_for_analysis): Outlaw addressable.
2048         (propagate_bits): Update for new datastructures.
2049         (analyze_variable): Remove.
2050         (init_function_info): Update for new datastructures.
2051         (clean_function_local_data): Remove.
2052         (clean_function): Remove.
2053         (copy_global_bitmap): Use optimizations_summary_obstack.
2054         (duplicate_node_data): Duplicate optimization summary only.
2055         (remove_node_data): Remove optimization summary only.
2056         (generate_summary): Do not analyze variables; do not compute
2057         module_statics_escape; do not prune solutions by it.
2058         (read_write_all_from_decl): Fix typos in comments.
2059         (propagate): Doscover readonly and nonaddressable first;
2060         update for new datastructures; share global bitmaps.
2061         * ipa-reference.h (ipa_reference_get_read_global,
2062         ipa_reference_get_written_global): Remove.
2063         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
2064         * Makefile.in: Remove ipa-refereference from GT files.
2065
2066 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2067
2068         PR debug/44112
2069         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
2070         for all SYMBOL_REF_DECLs.
2071
2072 2010-05-14  Jan Hubicka  <jh@suse.cz>
2073
2074         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
2075         (varpool_all_refs_explicit_p): New inline function.
2076         * ipa-reference.c: Update comment.
2077         (module_statics_written): Remove.
2078         (get_static_decl): Remove.
2079         (ipa_init): Do not initialize module_statics_written.
2080         (analyze_function): Likewise.
2081         (generate_summary): Likewise; do not compute module_statics_readonly
2082         and do not update variable flags.
2083         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
2084         * ipa.c: Inlucde flags.h
2085         (cgraph_local_node_p): New.
2086         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
2087         promote functions to local.
2088         (ipa_discover_readonly_nonaddressable_vars): New function.
2089         (function_and_variable_visibility): Use cgraph_local_node_p.
2090         * varpool.c (varpool_finalize_decl): Set force_output for
2091         DECL_PRESERVE_P vars.
2092
2093 2010-05-14  Jan Hubicka  <jh@suse.cz>
2094
2095         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
2096
2097 2010-05-14  Richard Guenther  <rguenther@suse.de>
2098
2099         PR tree-optimization/44119
2100         * tree-ssa-pre.c (eliminate): Properly mark replacement of
2101         a PHI node necessary.
2102
2103 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
2104
2105         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
2106
2107 2010-05-14  Jason Merrill  <jason@redhat.com>
2108
2109         PR c++/44127
2110         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
2111         (gimple_call_set_nothrow): New.
2112         * gimple.c (gimple_build_call_from_tree): Call it.
2113         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
2114
2115         PR c++/44127
2116         * gimplify.c (gimplify_seq_add_stmt): No longer static.
2117         * gimple.h: Declare it.
2118         * gimple.c (gimple_build_eh_filter): No ops.
2119
2120 2010-05-14  Jan Hubicka  <jh@suse.cz>
2121
2122         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
2123         nodes already in queue.
2124         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
2125         re-enqueueing node.
2126
2127 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2128
2129         PR debug/44136
2130         * cfgexpand.c (expand_debug_expr): If non-memory op0
2131         has BLKmode, return NULL.
2132
2133 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
2134
2135         * config.gcc: Add support for --with-cpu option for bdver1.
2136         * config/i386/i386.h (TARGET_BDVER1): New macro.
2137         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
2138         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2139         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
2140         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2141         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
2142         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
2143         (processor_type): Add PROCESSOR_BDVER1.
2144         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
2145         processor_type in config/i386/i386.h.
2146         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
2147         movaps <reg, reg> instead of movapd <reg, reg> when replacing
2148         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
2149         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
2150         to emit packed xor instead of packed double/packed integer
2151         xor for SSE and AVX when moving a zero value.
2152         * config/i386/sse.md: Add check for
2153         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
2154         movapd/movdqa for SSE and AVX.
2155         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
2156         single logical operations i.e and, or and xor instead of packed double
2157         logical operations for SSE and AVX.
2158         * config/i386/i386-c.c (ix86_target_macros_internal):
2159         Add PROCESSOR_BDVER1.
2160         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
2161         (has_fma4, has_xop): New.
2162         * config/i386/i386.c (bdver1_cost): New variable.
2163         (m_BDVER1): New macro.
2164         (m_AMD_MULTIPLE): Add m_BDVER1.
2165         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
2166         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
2167         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
2168         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
2169         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
2170         x86_tune_sse_partial_reg_dependency,
2171         x86_tune_sse_unaligned_load_optimal,
2172         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
2173         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
2174         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
2175         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
2176         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
2177         Enable/disable for bdver1.
2178         (processor_target_table): Add bdver1_cost.
2179         (cpu_names): Add bdver1.
2180         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
2181          processor_alias_table.
2182         (ix86_expand_vector_move_misalign): Change.
2183         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
2184         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
2185         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
2186         of movupd/movdqu for SSE and AVX.
2187         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
2188         (ix86_tune_adjust_cost): Add code for bdver1.
2189         (standard_sse_constant_opcode): Add check for
2190         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
2191         of packed double xor for SSE and AVX.
2192
2193 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
2194
2195         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
2196         result to unsigned.
2197
2198 2010-05-14  Tristan Gingold  <gingold@adacore.com>
2199
2200         * toplev.c (default_debug_hooks): Remove this variable.
2201         (process_options): Remove assignments to default_debug_hooks.
2202
2203 2010-05-14  Martin Jambor  <mjambor@suse.cz>
2204
2205         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
2206         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
2207         * langhooks.h (struct lang_hooks_for_decls): Removed field
2208         fold_obj_type_ref.
2209         * tree.c (free_lang_data): Remove assignment to
2210         lang_hooks.fold_obj_type_ref.
2211         * tree.def (OBJ_TYPE_REF): Update comment.
2212
2213 2010-05-14  Richard Guenther  <rguenther@suse.de>
2214
2215         PR tree-optimization/44124
2216         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
2217
2218 2010-05-14  Alan Modra  <amodra@gmail.com>
2219
2220         PR target/44075
2221         * config/rs6000/rs6000.c (struct machine_function): Reorder
2222         fields for better packing.  Add lr_save_state.
2223         (rs6000_ra_ever_killed): Return lr_save_state if set.
2224         (rs6000_emit_eh_reg_restore): Set lr_save_state.
2225
2226 2010-05-13  Jan Hubicka  <jh@suse.cz>
2227
2228         * varpool.c (decide_is_variable_needed): Drop code checking
2229         TREE_SYMBOL_REFERENCED.
2230
2231 2010-05-13  Jan Hubicka  <jh@suse.cz>
2232
2233         * final.c (output_addr_const): Do not call mark_decl_referenced.
2234         * cgraphunit.c (process_function_and_variable_attributes): Use
2235         mark_needed_node dirrectly.
2236         (assemble_thunk): Do not call mark_decl_referenced.
2237
2238 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
2239
2240         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
2241
2242 2010-05-13  Jeff Law  <law@redhat.com>
2243
2244         * ira-conflicts.c (print_allocno_conflicts): New function broken out
2245         from...
2246         (print_conflicts): Call print_allocno_conflicts.
2247
2248 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2249
2250         PR debug/44104
2251         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
2252         if it is NULL.
2253
2254 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
2255
2256         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
2257         t-mingw-w64 or t-mingw-w32 for multilib configuration.
2258         * config/i386/t-mingw-w32: New.
2259         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
2260
2261 2010-05-13  Martin Jambor  <mjambor@suse.cz>
2262
2263         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
2264         gimple-fold.c).
2265         * gimple-fold.c (get_base_binfo_for_type): New function.
2266         (gimple_get_relevant_ref_binfo): Likewise.
2267         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2268         (gimple_fold_obj_type_ref): Likewise.
2269         (fold_gimple_call): Simplify condition for folding virtual calls
2270         and call gimple_fold_obj_type_ref.
2271         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
2272         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2273
2274 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
2275
2276         * config/rs6000/rs6000-protos.h
2277         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
2278         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
2279         (rs6000_debug_mode_dependent_address)
2280         (rs6000_mode_dependent_address_ptr): Likewise.
2281
2282 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2283
2284         PR debug/43983
2285         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
2286         by SRA.
2287         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
2288         * tree-sra.c (create_access_replacement): Call unshare_expr before
2289         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
2290         * dwarf2out.c: Include tree-flow.h.
2291         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
2292         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
2293         Handle DW_OP_bit_piece.
2294         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
2295         construct_piece_list, adjust_piece_list): New functions.
2296         (add_var_loc_to_decl): Handle SRA optimized variables.
2297         Adjust for var_loc_note to loc field renaming.
2298         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
2299         in VAR_LOCATION note.
2300         (new_loc_descr_op_bit_piece): New function.
2301         (dw_sra_loc_expr): New function.
2302         (dw_loc_list): Use it.  Don't handle the last range after the
2303         loop, handle it inside of the loop.  Adjust for var_loc_note
2304         to loc field renaming.
2305         (add_location_or_const_value_attribute): Only special case
2306         single entry loc lists if loc is NOTE_P.  Adjust for
2307         var_loc_note to loc field renaming.
2308         (dwarf2out_var_location): Don't set newloc->var_loc_note
2309         and newloc->next here.
2310
2311 2010-05-12  Jan Hubicka  <jh@suse.cz>
2312
2313         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
2314         flag.
2315         * cgraph.h (cgraph_only_called_directly_p,
2316         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
2317         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
2318         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
2319         (assemble
2320         * ipa.c (cgraph_remove_unreachable_nodes): Use
2321         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
2322         flags.
2323         * tree-inline.c (copy_bb): Check address_taken flag.
2324         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
2325         externally_visible flag.
2326
2327 2010-05-12  Jason Merrill  <jason@redhat.com>
2328
2329         PR bootstrap/44048
2330         PR target/44099
2331         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
2332         * sdbout.c (plain_type_1): Likewise.
2333         * dwarf2out.c (is_base_type): Likewise.
2334         (gen_type_die_with_usage): Likewise.  Generate
2335         DW_TAG_unspecified_type for any LANG_TYPE.
2336
2337 2010-05-12  Jan Hubicka  <jh@suse.cz>
2338
2339         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
2340         indrect edges too.
2341         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
2342         (cgraph_clone_edge): Update.
2343         (cgraph_node_remove_callees): Remove indirect calls too.
2344         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
2345         (cgraph_create_indirect_edge): Update prototype.
2346         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
2347         is_proper_for_analysis.
2348         (add_new_function, visited_nodes, function_insertion_hook_holder,
2349         get_local_reference_vars_info, mark_address_taken, mark_address,
2350         mark_load, mark_store, check_asm_memory_clobber, check_call,
2351         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
2352         (ipa_init): Do not initialize visited_nodes;
2353         function_insertion_hook_holder.
2354         (analyze_variable): Rewrite.
2355         (analyze_function): Rewrite.
2356         (copy_local_bitmap): Remove.
2357         (duplicate_node_dat): Do not duplicate local info.
2358         (generate_summary): Simplify to only walk cgraph.
2359         (write_node_summary_p, ipa_reference_write_summary,
2360         ipa_reference_read_summary): Remove.
2361         (propagate): Do not remove function insertion;
2362         generate summary.
2363         (pass_ipa_reference): NULLify summary handling fields.
2364         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
2365         (input_edge): Input ecf_flags.
2366         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
2367         (update_indirect_edges_after_inlining): Ignore edges with unknown
2368         param.
2369
2370 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
2371
2372         * implicit-zee.c: New file.
2373         * tree-pass.h (pass_implicit_zee): Declare.
2374         * passes.c (init_optimization_passes): Add zee pass.
2375         * common.opt (fzee): New flag.
2376         * timevar.def (TV_ZEE): Define.
2377         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
2378         and beyond.
2379         * Makefile.in (implicit-zee.o): Add new build file.
2380
2381 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2382             Nathan Froyd  <froydnj@codesourcery.com>
2383
2384         * c-common.c (sync_resolve_params): Remove write-only variable.
2385
2386 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
2387
2388         * target.h (struct gcc_target): Add mode_dependent_address_p field.
2389         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2390         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
2391         * targhooks.c (default_mode_dependent_address_p): New function.
2392         * targhooks.h (default_mode_dependent_address_p): Declare function.
2393         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2394         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
2395         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
2396         target hook. Change return type to bool.
2397         * recog.h (mode_dependent_address_p): Change return type to bool.
2398
2399 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2400             Nathan Froyd  <froydnj@codesourcery.com>
2401
2402         * tree-mudflap.c (build_function_type_0, build_function_type_1,
2403         build_function_type_2, build_function_type_3): Remove.
2404         (mudflap_init): Use build_function_type_list.
2405
2406 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2407             Nathan Froyd  <froydnj@codesourcery.com>
2408
2409         * coverage.c (build_fn_info_value): Call build_constructor instead of
2410         build_constructor_from_list.
2411         (build_ctr_info_value): Likewise.
2412         (build_gcov_info): Likewise.
2413
2414 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
2415
2416         * tree.c (build_constructor): Compute TREE_CONSTANT for the
2417         resultant constructor.
2418         (build_constructor_single): Don't set TREE_CONSTANT.
2419         (build_constructor_from_list): Don't compute TREE_CONSTANT.
2420
2421 2010-05-12  Jan Hubicka  <jh@suse.cz>
2422
2423         * cgraph.h (struct varpool_node): Add aux.
2424         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
2425         * varpool.c (varpool_remove_node): Do not remove initializer.
2426         (varpool_reset_queue): Export.
2427         (varpool_finalize_decl): Volatile vars are forced to be output.
2428         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
2429         replaced decl.
2430         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
2431         process_references, varpool_can_remove_if_no_refs): New functions.
2432         (cgraph_remove_unreachable_nodes): Handle variables too.
2433
2434 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2435
2436         PR target/44088
2437         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
2438
2439 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
2440
2441         PR middle-end/44085
2442         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
2443         change value of ORT_TASK.
2444         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
2445         (omp_notice_threadprivate_variable): New function.
2446         (omp_notice_variable): Call it for threadprivate variables.
2447         If enclosing ctx is a task, print enclosing task rather than
2448         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
2449         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
2450         if task has untied clause.
2451
2452         PR debug/42278
2453         * dwarf2out.c (base_type_die): Don't add name attribute here.
2454         (modified_type_die): Instead of sizetype use
2455         its underlying original type.  If a DW_TAG_base_type doesn't
2456         have name added, add __unknown__.
2457         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
2458         always call force_type_die instead.
2459
2460 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
2461
2462         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
2463         for __stack_chk_guard.
2464
2465 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2466
2467         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
2468         don't call start_source_file debug hook here...
2469         (finish_options): ... but here, after outputting predefined and
2470         command line defines and undefs.
2471
2472         PR middle-end/44071
2473         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
2474         no fallthru edge.
2475         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
2476         optimizing away empty bb with no successors, move over its
2477         footer chain to fallthru predecessor.
2478         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
2479         (rtl_split_edge): For asm goto call patch_jump_insn even if
2480         splitting fallthru edge.
2481
2482         PR c++/44059
2483         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
2484         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
2485         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
2486         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
2487         on DW.ref.* decls.
2488
2489         PR c++/44062
2490         * c-parser.c (c_parser_expression): Mark LHS of a comma
2491         expression as read if it is a decl, handled component or
2492         COMPOUND_EXPR with that on the RHS.
2493         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
2494         if it is a decl or handled component.
2495
2496 2010-05-11  Jan Hubicka  <jh@suse.cz>
2497
2498         * lto-symtab.c (lto_symtab_free): New function.
2499         * lto-streamer.h (lto_symtab_free): Declare.
2500
2501 2010-05-11  Jan Hubicka  <jh@suse.cz>
2502
2503         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
2504         that if function is needed it is reachable.
2505         (lto_output_node): See if it the function is reachable or referenced.
2506         (output_cgraph): Update call of lto_output_node.
2507         * lto-streamer.h (reachable_from_other_partition_p): Declare.
2508
2509 2010-05-11  Jan Hubicka  <jh@suse.cz>
2510
2511         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
2512         Mark as used.
2513
2514 2010-05-11  Jan Hubicka  <jh@suse.cz>
2515
2516         PR tree-optimize/44063
2517         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
2518         queue.
2519         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
2520         limits.
2521         (estimate_function_body_sizes): Compute sizes even when disregarding.
2522
2523 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
2524
2525         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
2526
2527 2010-05-11  Jan Hubicka  <jh@suse.cz>
2528
2529         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
2530         into every boundary.
2531
2532 2010-05-11  Jan Hubicka  <jh@suse.cz>
2533
2534         * matrix-reorg.c (matrix_reorg): Rebuild edges.
2535
2536 2010-05-11  Jan Hubicka  <jh@suse.cz>
2537
2538         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
2539         lto_streamer_cache_delete): Put nodes into heap.
2540         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
2541         heap.
2542
2543 2010-05-11  Jan Hubicka  <jh@suse.cz>
2544
2545         * cgraphbuild.c (cgraph_rebuild_references): New.
2546         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
2547         out extern inlines.
2548         * cgraph.h (cgraph_rebuild_references): Declare.
2549         * tree-inline.c (tree_function_versioning): Use it.
2550         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
2551
2552 2010-05-11  Jan Hubicka  <jh@suse.cz>
2553
2554         * cgraph.c: Include ipa-utils.h
2555         (cgraph_create_virtual_clone): Update references.
2556         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
2557
2558 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2559
2560         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
2561         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
2562         cache size.
2563
2564 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2565
2566         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
2567
2568 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2569
2570         * gcc.c (execute): For -### don't quote arguments that
2571         contain just alphanumerics and _/-. characters.
2572         * doc/invoke.texi: Document that change for -###.
2573
2574         PR debug/44023
2575         * df-problems.c (struct dead_debug): Add to_rescan field.
2576         (dead_debug_init): Clear to_rescan field.
2577         (dead_debug_finish): Rescan all debug insns in to_rescan
2578         bitmap and free the bitmap.
2579         (dead_debug_insert_before): Instead of rescanning debug insns
2580         immediately queue their rescanning until dead_debug_finish.
2581         (df_note_bb_compute): After dead_debug_add do continue instead
2582         of break.
2583
2584 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
2585
2586         PR debug/44028
2587         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
2588         clear also INSN_REG_USE_LIST.
2589
2590 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2591
2592         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
2593
2594 2010-05-10  Jan Hubicka  <jh@suse.cz>
2595
2596         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
2597         commited change.
2598
2599 2010-05-10  Jan Hubicka  <jh@suse.cz>
2600
2601         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
2602         Allocate encoders.
2603         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
2604         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
2605         (lto_streamer_cache_create): Init alloc pool.
2606         (lto_streamer_cache_delete): Free alloc pool.
2607         * lto-streamer.h: Include alloc pool.
2608         (lto_streamer_cache_d): Use alloc pool.
2609         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
2610
2611 2010-05-10  Jan Hubicka  <jh@suse.cz>
2612
2613         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
2614         * cgraphbuild.c: Include except.h
2615         (record_type_list, record_eh_tables): New function.
2616         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
2617
2618 2010-05-10  Jan Hubicka  <jh@suse.cz>
2619
2620         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
2621         __frame_dummy_init_array_entry, force_to_data): Attribute as used
2622         rather than unused.
2623
2624 2010-05-10  Michael Matz  <matz@suse.de>
2625
2626         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
2627         (can_reassociate_p): Use FLOAT_TYPE_P.
2628         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
2629         (vect_force_simple_reduction): ... this.
2630         * tree-parloops.c (gather_scalar_reductions): Use
2631         vect_force_simple_reduction.
2632         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
2633         vect_is_simple_reduction, add modify argument, if true rewrite
2634         "a-b" into "a+(-b)".
2635         (vect_is_simple_reduction, vect_force_simple_reduction): New
2636         functions.
2637         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
2638
2639 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
2640             Vladimir Makarov  <vmakarov@redhat.com>
2641
2642         PR rtl-optimization/44012
2643         * ira-build.c (remove_unnecessary_allocnos): Nullify
2644         regno_allocno_map of the removed allocno.
2645
2646 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2647
2648         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
2649         to /dev/null.
2650         * configure: Regenerate.
2651
2652 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2653
2654         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
2655         unused.
2656         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
2657         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
2658         support in Sun ld.
2659         * configure: Regenerate.
2660
2661 2010-05-10  Richard Guenther  <rguenther@suse.de>
2662
2663         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
2664         marked if the entry identifier is marked.
2665
2666 2010-05-10  Richard Guenther  <rguenther@suse.de>
2667
2668         * c-common.c (struct c_common_attributes): Add fnspec attribute.
2669         (handle_fnspec_attribute): New function.
2670         * gimple.h (gimple_call_return_flags): Declare.
2671         (gimple_call_arg_flags): Likewise.
2672         * gimple.c (gimple_call_arg_flags): New function.
2673         (gimple_call_return_flags): Likewise.
2674         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
2675         New argument flags.
2676         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
2677         return value flags.
2678         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
2679         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
2680         main work to ...
2681         (make_heapvar_for): ... this new function.
2682         (handle_rhs_call): Handle fnspec attribute argument specifiers.
2683         (handle_lhs_call): Likewise.
2684         (find_func_aliases): Adjust.
2685
2686 2010-05-10  Richard Guenther  <rguenther@suse.de>
2687
2688         PR tree-optimization/44050
2689         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
2690
2691 2010-05-10  Wei Guozhi  <carrot@google.com>
2692
2693         PR target/42879
2694         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
2695
2696 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
2697
2698         PR c/10676
2699         * c-typeck.c (lookup_field): Take a type directly.  Update
2700         recursive calls.
2701         (build_component_ref): Update call to lookup_field.
2702         (set_init_label): Use lookup_field to find initialized field.
2703         Handle returned list of fields like a sequence of designators.
2704
2705 2010-05-09  Richard Guenther  <rguenther@suse.de>
2706
2707         PR middle-end/44024
2708         * fold-const.c (tree_single_nonzero_warnv_p): Properly
2709         handle &FUNCTION_DECL.
2710
2711 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
2712
2713         PR c/4784
2714         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
2715         structures and unions recursively.
2716         (detect_field_duplicates): Move duplicate detection with a hash to
2717         detect_field_duplicates_hash.  Always use a hash if anonymous
2718         structures or unions are present.
2719         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
2720         give errors.
2721
2722 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2723
2724         PR target/44046
2725         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
2726         detect Atom, Core 2 and Core i7.
2727
2728 2010-05-09  Richard Guenther  <rguenther@suse.de>
2729
2730         * gcc.c (store_arg): Handle temporary file deletion for
2731         joined arguments.
2732
2733 2010-05-09  Richard Guenther  <rguenther@suse.de>
2734
2735         PR middle-end/44043
2736         * ipa-inline.c (estimate_function_body_sizes): Return after
2737         disregarding inline limits.
2738
2739 2010-05-09  Richard Guenther  <rguenther@suse.de>
2740
2741         * gcc.c (store_arg): Revert last change.
2742
2743 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
2744
2745         PR middle-end/28685
2746         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
2747         (optimize_ops_list): Call it.
2748
2749 2010-05-08  Richard Guenther  <rguenther@suse.de>
2750
2751         PR tree-optimization/44030
2752         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
2753         NECESSARY flag if we propagate from a inserted expression.
2754
2755 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2756
2757         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
2758         domain types as equal if they are both PLACEHOLDER_EXPRs.
2759
2760 2010-05-08  Richard Guenther  <rguenther@suse.de>
2761
2762         * lto-wrapper.c (run_gcc): Remove linker output from
2763         command line for LTRANS invocation.
2764
2765 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
2766
2767         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2768         lto-macho as lto_binary_reader.
2769         * target.h (struct gcc_target): New hooks lto_start and lto_end.
2770         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
2771         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
2772         in lto_start and lto_end calls.
2773         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
2774         magic numbers.
2775         (scan_prog_file): Update is_elf_or_coff call.
2776         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
2777
2778         * collect2.c (main): Fix enum comparison.
2779
2780         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
2781         Add prototypes.
2782         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
2783         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
2784         and TARGET_ASM_LTO_END.
2785         * darwin.c: Include obstack.h and lto-streamer.h.
2786         (lto_section_names_offset, lto_section_names_obstack,
2787         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
2788         global variables.
2789         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
2790         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
2791         to a temporary file.
2792         (darwin_asm_lto_end): New function.  Restore asm_out_file.
2793         (darwin_asm_named_section): For LTO sections, replace the name with
2794         the offset of the section name in a string table, and build this
2795         table.
2796         (darwin_file_start): Initialize global vars for LTO support.
2797         (darwin_file_end): If output to asm_out_file was redirected, append it
2798         to the proper asm_out_file here.  Add the section names section.
2799
2800 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
2801
2802         * c-pragma.c (pending_weak_d, pending_weak): New.
2803         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
2804         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
2805         handle_pragma_weak): Update the uses of pending_weaks.
2806
2807 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2808
2809         PR documentation/44016
2810         * doc/standards.texi (Standards): Link to unversioned
2811         cxx0x_status.html page.
2812
2813 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
2814
2815         PR target/43708
2816         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
2817         in addition to TREE_USED, to avoid "set but unused" warnings.
2818
2819 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2820
2821         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
2822         (is_loop_prefetching_profitable): Do not insert prefetches
2823         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
2824         times the prefetch ahead distance.
2825
2826 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2827
2828         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
2829         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
2830         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
2831         the unroll_factor.
2832
2833 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2834
2835         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
2836         a diagnostic info when the insn-to-mem ratio is too small.
2837
2838 2010-05-07  Richard Guenther <rguenther@suse.de>
2839
2840         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
2841         the linker plugin.
2842         (store_arg): Queue temp_filename for deletion instead of
2843         the whole argument.
2844
2845 2010-05-07  Richard Guenther  <rguenther@suse.de>
2846
2847         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
2848         (run_gcc): Handle LTRANS phase invocation.
2849         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
2850
2851 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
2852
2853         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
2854         this is also meaningful on PARM_DECLs and RESULT_DECLs.
2855
2856 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2857
2858         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
2859
2860 2010-05-07  Richard Guenther  <rguenther@suse.de>
2861
2862         PR tree-optimization/44020
2863         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
2864         code when PRE is not yet initialized.
2865
2866 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2867
2868         * config/mips/dbxmdebug.h: Remove.
2869         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
2870
2871 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
2872
2873         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
2874         with null pointer and also warn about ordered comparison of zero with
2875         pointer if -Wextra.
2876
2877 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2878
2879         * graphite-blocking.c
2880         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
2881         * graphite-clast-to-gimple.c
2882         (clast_to_gcc_expression): Same.
2883         (precision_for_value): Same.
2884         (precision_for_interval): Same.
2885         (gcc_type_for_interval): Same.
2886         (graphite_create_new_guard): Same.
2887         (compute_bounds_for_level): Same.
2888         (graphite_create_new_loop_guard): Same.
2889         * graphite-interchange.c
2890         (build_linearized_memory_access): Same.
2891         (pdr_stride_in_loop): Same.
2892         (memory_strides_in_loop_1): Same.
2893         (memory_strides_in_loop): Same.
2894         (extend_scattering): Same.
2895         (psct_scattering_dim_for_loop_depth): Same.
2896         (pbb_number_of_iterations): Same.
2897         * graphite-poly.h
2898         (debug_iteration_domains): Same.
2899         * graphite-ppl.c
2900         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
2901         (ppl_set_inhomogeneous_gmp): Same.
2902         (ppl_strip_loop): Same.
2903         (ppl_lexico_compare_linear_expressions): Same.
2904         (ppl_read_polyhedron_matrix): Same.
2905         (ppl_max_for_le_pointset): Same.
2906         * graphite-ppl.h
2907         (ppl_read_polyhedron_matrix): Same.
2908         (tree_int_to_gmp): Same.
2909         (gmp_cst_to_tree): Same.
2910         (ppl_set_inhomogeneous): Same.
2911         (ppl_set_inhomogeneous_tree): Same.
2912         (ppl_set_coef): Same.
2913         (ppl_set_coef_tree): Same.
2914         * graphite-sese-to-poly.c
2915         (build_pbb_scattering_polyhedrons): Same.
2916         (build_scop_scattering): Same.
2917         (scan_tree_for_params_right_scev): Same.
2918         (scan_tree_for_params): Same.
2919         (find_params_in_bb): Same.
2920         (find_scop_parameters): Same.
2921         (add_upper_bounds_from_estimated_nit): Same.
2922         (build_loop_iteration_domains): Same.
2923         (add_condition_to_domain): Same.
2924         (pdr_add_memory_accesses): Same.
2925
2926 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2927
2928         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
2929         CLooG's value_* macros to their respective mpz_* counterparts.
2930         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
2931         (graphite_create_new_loop_guard): Same.
2932         * graphite-interchange.c (build_linearized_memory_access): Same.
2933         (pdr_stride_in_loop): Same.
2934         (memory_strides_in_loop_1): Same.
2935         (1st_interchange_profitable_p): Same.
2936         * graphite-poly.c (extend_scattering): Same.
2937         (psct_scattering_dim_for_loop_depth): Same.
2938         (pbb_number_of_iterations): Same.
2939         (pbb_number_of_iterations_at_time): Same.
2940         * graphite-poly.h (new_1st_loop): Same.
2941         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
2942         (oppose_constraint): Same.
2943         (insert_constraint_into_matrix): Same.
2944         (ppl_set_inhomogeneous_gmp): Same.
2945         (ppl_set_coef_gmp): Same.
2946         (ppl_strip_loop): Same.
2947         (ppl_lexico_compare_linear_expressions): Same.
2948         (ppl_max_for_le_pointset): Same.
2949         (ppl_min_for_le_pointset): Same.
2950         (ppl_build_realtion): Same.
2951         * graphite-ppl.h (gmp_cst_to_tree): Same.
2952         (ppl_set_inhomogeneous): Same.
2953         (ppl_set_inhomogeneous_tree): Same.
2954         (ppl_set_coef): Same.
2955         (ppl_set_coef_tree): Same.
2956         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
2957         (build_scop_scattering): Same.
2958         (add_value_to_dim): Same.
2959         (scan_tree_for_params_right_scev): Same.
2960         (scan_tree_for_params_int): Same.
2961         (scan_tree_for_params): Same.
2962         (find_params_in_bb): Same.
2963         (find_scop_parameters): Same.
2964         (add_upper_bounds_from_estimated_nit): Same.
2965         (build_loop_iteration_domains): Same.
2966         (create_linear_expr_from_tree): Same.
2967         (add_condition_to_domain): Same.
2968         (pdr_add_memory_accesses): Same.
2969
2970 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
2971             Jason Merrill  <jason@redhat.com>
2972
2973         * c-common.c (c_common_reswords): Add nullptr.
2974         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
2975         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
2976         (gen_type_die_with_usage): Likewise.
2977         * dbxout.c (dbxout_type): Likewise.
2978         * sdbout.c (plain_type_1): Likewise.
2979
2980 2010-05-06  Jason Merrill  <jason@redhat.com>
2981
2982         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
2983         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
2984         ret appropriately.
2985         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
2986
2987         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
2988         stripping WITH_SIZE_EXPR.
2989         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
2990         change.
2991
2992 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2993
2994         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
2995         list of obsolete configurations.
2996         Disabled check for obsolete configurations.
2997         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
2998         Removed support for previous versions.
2999         * config/mips/iris.h: Removed.
3000         * config/mips/iris5.h: Removed.
3001         * config/mips/iris6.h: Merged old iris.h contents.
3002         (TARGET_IRIX): Removed.
3003         (DRIVER_SELF_SPECS): Removed mabi=32.
3004         (IDENT_ASM_OP): Removed undef.
3005         (STARTFILE_SPEC): Removed mabi=32.
3006         (ENDFILE_SPEC): Likewise.
3007         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
3008         (MACHINE_TYPE): Update for IRIX 6.5.
3009         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
3010         TARGET_IRIX by TARGET_IRIX6.
3011         (mips_file_start): Likewise.
3012         (mips_output_external): Remove IRIX 5/6 O32 support.
3013         (mips_output_function_prologue): Likewise.
3014         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
3015         TARGET_IRIX6.
3016         (TARGET_CPU_CPP_BUILTINS): Likewise.
3017         (TARGET_IRIX): Removed.
3018         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
3019         (MULTILIB_DIRNAMES): Removed 32.
3020         (MULTILIB_OSDIRNAMES): Removed ../lib.
3021         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
3022         (Specific, mips-sgi-irix5): Document removal.
3023         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
3024         Remove references to older IRIX 6 releases and the O32 ABI.
3025
3026 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
3027
3028         PR bootstrap/43994
3029         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
3030         instead of DF_REF_REAL_REG.
3031
3032 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
3033
3034         PR target/43888
3035         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
3036         handling to still return true for x64 targets.
3037
3038 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3039
3040         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
3041
3042 2010-05-06  Jan Hubicka  <jh@suse.cz>
3043
3044         PR tree-optimization/43791
3045         * ipa-inline.c (update_caller_keys): Remove bogus
3046         disregard_inline_limits check.
3047
3048 2010-05-06  Michael Matz  <matz@suse.de>
3049
3050         PR tree-optimization/43984
3051         * tree-ssa-pre.c (inserted_phi_names): Remove.
3052         (inserted_exprs): Change to bitmap.
3053         (create_expression_by_pieces): Set bits, don't append to vector.
3054         (insert_into_preds_of_block): Don't handle inserted_phi_names.
3055         (eliminate): Don't look at inserted_phi_names, remove deleted
3056         insns from inserted_exprs.
3057         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
3058         (init_pre, fini_pre): Allocate and free bitmaps.
3059         (execute_pre): Insert insns on edges before elimination.
3060
3061 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3062
3063         * tree.c (initializer_zerop): Handle STRING_CST.
3064
3065 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3066
3067         PR 40989
3068         * doc/invoke.texi (Wimplicit): Document as C only.
3069         * opts.c (common_handle_option): Add argument kind.
3070         (handle_option): Rename as read_cmdline_option. Factor out code to...
3071         (handle_option): ... here. New.
3072         (handle_options): Rename as read_cmdline_options.
3073         (decode_options): Update call.
3074         (set_option): Use option index instead of option pointer. Classify
3075         diagnostics correctly.
3076         (enable_warning_as_error): Call handle_option.
3077         * opts.h (set_option): Update declaration.
3078         (handle_option): Declare.
3079         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
3080         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
3081         * c-opts.c (set_Wimplicit): Delete.
3082         (c_family_lang_mask): New static constant.
3083         (c_common_handle_option): Add argument kind. Use handle_option
3084         instead of set_Wimplicit.
3085         (c_common_post_options): warn_implicit and warn_implicit_int
3086         are disabled by default.
3087         * c-common.c (warn_implicit): Do not define here.
3088         * c-common.h (warn_implicit): Do not declare here.
3089         (c_common_handle_option): Update declaration.
3090         * lto-opts.c (lto_reissue_options): Update call to set_option.
3091
3092 2010-05-06  Richard Guenther  <rguenther@suse.de>
3093
3094         PR tree-optimization/43571
3095         * domwalk.c (walk_dominator_tree): Walk the dominator
3096         sons in more optimal order.
3097
3098 2010-05-06  Richard Guenther  <rguenther@suse.de>
3099
3100         PR tree-optimization/43934
3101         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
3102         (stmt_cost): Likewise.
3103         (extract_true_false_args_from_phi): New helper.
3104         (determine_max_movement): For PHI nodes verify we can hoist them
3105         and compute their cost.
3106         (determine_invariantness_stmt): Handle PHI nodes.
3107         (move_computations_stmt): Likewise.  Hoist PHI nodes in
3108         if-converted form using COND_EXPRs.
3109         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
3110         (tree_ssa_lim): Likewise.
3111         * tree-flow.h (tree_ssa_lim): Adjust prototype.
3112         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
3113
3114 2010-05-06  Richard Guenther  <rguenther@suse.de>
3115
3116         PR tree-optimization/43987
3117         * tree-ssa-structalias.c (could_have_pointers): For possibly
3118         address-taken variables force pointers to be recorded.
3119         (create_variable_info_for_1): Likewise.
3120         (push_fields_onto_fieldstack): Pass in wheter all fields
3121         must have pointers.
3122         (find_func_aliases): Query types instead of vars whether
3123         they contain pointers where appropriate.
3124
3125 2010-05-06  Jan Hubicka  <jh@suse.cz>
3126
3127         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
3128         (record_reference, mark_address, mark_load, mark_store): Record
3129         references.
3130         (record_references_in_initializer): Update call of record_references.
3131         (rebuild_cgraph_edges): Remove all references before rebuiding.
3132         * cgraph.c (cgraph_create_node): Clear ref list.
3133         (cgraph_remove_node): Remove references.
3134         (dump_cgraph_node): Dump references.
3135         (cgraph_clone_node): Clone references.
3136         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
3137         (struct cgraph_node, varpool_node): Add ref_lst.
3138         * ipa-ref.c: New file.
3139         * ipa-ref.h: New file.
3140         * ipa-ref-inline.h: New file.
3141         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
3142         (referenced_from_other_partition_p): New function.
3143         (lto_output_varpool_node): Take set arugment; call
3144         referenced_from_other_partition.
3145         (lto_output_ref): New.
3146         (add_references): New.
3147         (output_refs): New.
3148         (output_cgraph): Compute boundary based on references; output refs.
3149         (output_varpool): Accept cgraph_node_set argument.
3150         (input_ref): New.
3151         (input_refs): New.
3152         (input_cgraph): Call input_refs.
3153         * lto-section-in.c (lto_section_name): Add refs.
3154         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
3155         (ipa-ref.o): New file.
3156         * varpool.c (varpool_node): Clear ipa ref list.
3157         (varpool_remove_node): Remove references.
3158         (dump_varpool_node): Dump references.
3159         (varpool_assemble_decl): Only compile finalized ones.
3160         (varpool_extra_name_alias): Initialize ref list.
3161         * lto-streamer.c (lto-get_section_name): Add .refs section.
3162         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
3163         (referenced_from_other_partition_p): Declared.
3164
3165 2010-05-06  Ira Rosen  <irar@il.ibm.com>
3166
3167         PR tree-optimization/43901
3168         * tree-vect-stmts.c (vectorizable_call): Assert that vector
3169         type is not NULL if it's transformation phase, and return
3170         FALSE if it's analysis.
3171         (vectorizable_conversion, vectorizable_operation,
3172         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
3173
3174 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
3175
3176         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3177         Delete.
3178         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3179         New define.
3180         * config/mips/mips-protos.h
3181         (mips_small_register_classes_for_mode_p): Delete prototype.
3182
3183 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
3184
3185         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
3186         * config/arm/arm.c (multiple_operation_profitable_p,
3187         compute_offset_order): New static functions.
3188         (load_multiple_sequence, store_multiple_sequence): Use them.
3189         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
3190         memory offsets, not register numbers.
3191         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
3192
3193 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
3194
3195         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
3196         (get_pending_sizes, put_pending_size, put_pending_sizes):
3197         Update the uses of pending_sizes.
3198         * c-decl.c (store_parm_decls): Likewise.
3199         * c-tree.h (struct c_arg_info): Likewise.
3200         * tree.h: Update the prototype for get_pending_sizes and
3201         put_pending_sizes.
3202
3203 2010-05-05  Jason Merrill  <jason@redhat.com>
3204
3205         PR debug/43370
3206         * c-common.c (handle_aligned_attribute): Respect
3207         ATTR_FLAG_TYPE_IN_PLACE.
3208
3209         PR testsuite/43758
3210         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
3211         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3212         (TARGET_INITIALIZER): Use it.
3213         * c-common.c (attribute_takes_identifier_p): Call it.
3214         * c-common.h: Update prototype.
3215         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
3216         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3217
3218 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
3219
3220         PR debug/43950
3221         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
3222         DW_ID_down_case for Fortran compilation units.
3223
3224 2010-05-05  Jan Hubicka  <jh@suse.cz>
3225
3226         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
3227         handle aliases.
3228
3229 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
3230
3231         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
3232         a variable-sized RESULT_DECL.
3233
3234 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
3235
3236         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
3237
3238 2010-05-05  Jason Merrill  <jason@redhat.com>
3239
3240         PR c++/43787
3241         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
3242         returns GS_OK.
3243         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
3244
3245 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
3246             Jakub Jelinek  <jakub@redhat.com>
3247
3248         PR debug/43478
3249         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
3250         (dead_debug_init, dead_debug_finish): New functions.
3251         (dead_debug_add, dead_debug_insert_before): Likewise.
3252         (df_note_bb_compute): Initialize a dead_debug object, add dead
3253         debug uses to it, insert debug bind insns before death insns,
3254         reset debug insns that refer to pending uses at the end.
3255         * rtl.h (make_debug_expr_from_rtl): New prototype.
3256         * varasm.c (make_debug_expr_from_rtl): New function.
3257
3258 2010-05-05  Jan Hubicka  <jh@suse.cz>
3259
3260         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
3261         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
3262         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
3263         lto_varpool_encoder_deref, lto_varpool_encoder_size,
3264         lto_varpool_encoder_encode_initializer_p,
3265         lto_set_varpool_encoder_encode_initializer): New functions.
3266         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
3267         call output_varpool.
3268         (input_varpool_node): Do not always set analyzed.
3269         (input_cgraph_1): Return vector of cgraph nodes.
3270         (input_varpool_1): Return vector of varpools.
3271         (input_cgraph): Free the vectors.
3272         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
3273         output only initializers needed.
3274         (lto_output): Only call output_cgraph.
3275         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
3276         * lto-section-out.c (lto_new_out_decl_state): Initialize
3277         state->varpool_node_encoder.
3278         * lto-streamer.h (lto_varpool_encoder_d): New.
3279         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
3280         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
3281         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
3282         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
3283         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
3284         Declare.
3285         (output_varpool, input_varpool): Remove declarations.
3286
3287 2010-05-05  Jan Hubicka  <jh@suse.cz>
3288
3289         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
3290         with body can prevail.
3291
3292 2010-05-05  Jan Hubicka  <jh@suse.cz>
3293
3294         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
3295         size.
3296
3297 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3298
3299         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
3300
3301         * gengtype.h (erro_at_line): Constify pos argument.
3302
3303         * gengtype.c: Include hashtab.h.
3304         (enum gc_used): Document GC_MAYBE_POINTED_TO.
3305         (error_at_line): Constify pos argument.
3306         (do_typedef): Initialize p->opt field.
3307         (get_file_gtfilename): Fix comment typo.
3308         (struct walk_type_data): Constify line field.
3309         (get_output_file_for_structure): New function.
3310         (write_local_func_for_structure): Constify orig_s argument.
3311         Use get_output_file_for_structure.
3312         (write_func_for_structure): Use get_output_file_for_structure.
3313         (INDENT): New define.
3314         (dump_pair, dump_type, dump_type_list, dump_typekind)
3315         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
3316         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
3317         functions.
3318         (seen_types): New variable.
3319         (main): New variable do_dump.  Process "-d" command line option.
3320         Call dump_everything if dump requested.
3321
3322 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
3323
3324         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
3325         in a temporary instead of invoking the macro multiple times.
3326         (track_expr_p): Likewise.
3327
3328 2010-05-04  Neil Vachharajani <nvachhar@google.com>
3329
3330         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
3331         per new semantics.
3332         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
3333         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
3334         conditions for printing notes.
3335         * common.opt (-Wcoverage-mismatch): Allow negative, default to
3336         true, update documentation.
3337         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
3338
3339 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
3340
3341         PR c/43981
3342         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
3343         on dimen.
3344
3345 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3346
3347         PR target/43799
3348         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
3349         (*sse_prologue_save_insn1): Likewise.
3350         (SSE prologue save splitter): Likewise.
3351
3352 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
3353
3354         * tree.c (free_lang_data_in_one_sizepos): New inline function.
3355         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
3356         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
3357         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
3358         all decls.  Call it on DECL_FIELD_OFFSET of fields.
3359         (find_decls_types_r): Follow DECL_VALUE_EXPR.
3360         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
3361
3362 2010-05-04  Martin Jambor  <mjambor@suse.cz>
3363
3364         * tree-sra.c (build_access_from_expr_1): The first parameter type
3365         changed to simple tree.
3366         (build_access_from_expr): Likewise, gsi parameter was eliminated.
3367         (scan_assign_result): Renamed to assignment_mod_result, enum elements
3368         renamed as well.
3369         (build_accesses_from_assign): Removed all parameters except for a
3370         simple gimple statement.  Now returns a simple bool.
3371         (scan_function): All non-analysis parts moved to separate functions
3372         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
3373         parameters and updated both callers.
3374         (sra_modify_expr): Removed parameter data.
3375         (sra_modify_function_body): New function.
3376         (perform_intra_sra): Call sra_modify_function_body to modify the
3377         function body.
3378         (replace_removed_params_ssa_names): Parameter data changed into
3379         adjustments vector.
3380         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
3381         changed the parameter dont_convert to convert with the opposite
3382         meaning.
3383         (sra_ipa_modify_assign): Parameter data changed into adjustments
3384         vector, return value changed to bool.
3385         (ipa_sra_modify_function_body): New function.
3386         (sra_ipa_reset_debug_stmts): Updated a comment.
3387         (modify_function): Use ipa_sra_modify_function_body to modify function
3388         body.
3389
3390 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3391
3392         PR middle-end/43671
3393         * alias.c (true_dependence): Handle the same VALUE in x and mem.
3394         (canon_true_dependence): Likewise.
3395         (write_dependence_p): Likewise.
3396
3397 2010-05-04  Jan Hubicka  <jh@suse.cz>
3398
3399         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
3400         * cgraphbuild.c: Include ipa-utils.h
3401         (record_reference_ctx): New struct.
3402         (record_reference): Simplify to work on initializers; not statements.
3403         (mark_address, mark_load, mark_store): New.
3404         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3405         walk PHI nodes too.
3406         (record_references_in_initializer): Update use of record_reference.
3407         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3408         walk PHI nodes too.
3409
3410 2010-05-04  Jan Hubicka  <jh@suse.cz>
3411
3412         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
3413         node will be removed anyway.
3414         (lto_varpool_replace_node): Allow also unanalyzed nodes;
3415         relink aliases of node into prevailing node.
3416         * varpool.c (varpool_remove_node): Remove aliases properly;
3417         when removing node, remove all its aliases too; remove DECL_INITIAL
3418         of removed node; ggc_free the varpool node.
3419
3420 2010-05-04  Richard Guenther  <rguenther@suse.de>
3421
3422         PR tree-optimization/43879
3423         * tree-ssa-structalias.c (alias_get_name): Use
3424         DECL_ASSEMBLER_NAME if available.
3425         (create_function_info_for): Return the varinfo node.
3426         (ipa_pta_execute): Associate same-body aliases and extra names
3427         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
3428
3429 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
3430
3431         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
3432
3433 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
3434
3435         PR bootstrap/43964
3436         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
3437         only if HONOR_REG_ALLOC_ORDER is not defined.
3438
3439 2010-05-04  Richard Guenther  <rguenther@suse.de>
3440
3441         PR tree-optimization/43949
3442         * tree-vrp.c (extract_range_from_binary_expr): Only handle
3443         TRUNC_MOD_EXPR.
3444
3445 2010-04-26  Jason Merrill  <jason@redhat.com>
3446
3447         * c.opt (-fstrict-enums): New.
3448         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
3449
3450 2010-05-03  David Ung <davidu@mips.com>
3451             James E. Wilson  <wilson@codesourcery.com>
3452
3453         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
3454         emit the trap instruction before the divide for TUNE_74K.
3455
3456 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
3457
3458         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
3459         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
3460         based on the above, for new target hook.
3461
3462         * hooks.c (hook_bool_mode_true): New generic hook.
3463         * hooks.h (hook_bool_mode_true): Add prototype.
3464
3465         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
3466         target hook.
3467         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
3468         target hook, set to hook_bool_mode_false.
3469         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
3470         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
3471         with targetm.small_register_classes_for_mode_p.
3472         (find_reusable_reload): Likewise.
3473         (combine_reloads): Likewise.
3474         * reload1.c (reload_as_needed): Likewise.
3475         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
3476         * ifcvt.c (noce_process_if_block, check_cond_move_block,
3477         dead_or_predicable): Likewise.
3478         * regmove.c (optimize_reg_copy_1): Likewise.
3479         * calls.c (prepare_call_address): Likewise.
3480         (precompute_register_parameters): Likewise.
3481
3482         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
3483         hook definition.
3484         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
3485         implementation of the hook that considers all register classes
3486         small except for SH64.
3487         (sh_override_options): Use the new hook.
3488         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
3489         Add prototype.
3490
3491         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
3492         hook definition.
3493         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
3494         implementation of the hook that considers all register classes
3495         small for THUMB1.
3496         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
3497         Add prototype.
3498
3499         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
3500         hook definition.
3501         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
3502         implementation of the hook that considers all register classes
3503         small for MIPS16.
3504         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
3505         Add prototype.
3506
3507         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
3508         hook definition.
3509         * config/m32c/m32c.h: Likewise.
3510         * config/pdp11/pdp11.h: Likewise.
3511         * config/avr/avr.h: Likewise.
3512         * config/xtensa/xtensa.h: Likewise.
3513         * config/m68hc11/m68hc11.h: Likewise.
3514         * config/mn10300/mn10300.h: Likewise.
3515         * config/mcore/mcore.h: Likewise.
3516         * config/h8300/h8300.h: Likewise.
3517         * config/bfin/bfin.h: Likewise.
3518
3519         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
3520         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
3521
3522 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
3523
3524         * double-int.h (tree_to_double_int): Remove macro.
3525         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
3526         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
3527         (tree_to_double_int): New function.
3528         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
3529         Move ...
3530         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
3531
3532 2010-05-03  Richard Guenther  <rguenther@suse.de>
3533
3534         PR tree-optimization/43971
3535         * tree-ssa-structalias.c (get_constraint_for_1): Fix
3536         constraints in the !flag_delete_null_pointer_checks case.
3537
3538 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
3539
3540         PR debug/43972
3541         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
3542         result mode matches original rtl mode.
3543
3544 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
3545
3546         PR target/43888
3547         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
3548
3549 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3550
3551         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
3552         when processing flag options.
3553
3554 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3555
3556         * gcov-iov.c (main): Change format string placeholder
3557         from %#08x to 0x%08x.
3558         * genchecksum.c (dosum): Change format string placeholder
3559         from %#02x to 0x%02x.
3560
3561 2010-05-02  Richard Guenther  <rguenther@suse.de>
3562
3563         PR tree-optimization/43879
3564         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
3565
3566 2010-05-02  Bruno Haible  <bruno@clisp.org>
3567
3568         * doc/extend.texi (Function Attributes): Fix a typo.
3569
3570 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3571
3572         Revert:
3573         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
3574         placeholder from 0x%x to %#x.
3575         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
3576         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
3577         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
3578         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
3579         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
3580         * config/i386/i386.c (ix86_target_string): Ditto.
3581         * config/i386/i386.c (output_pic_addr_const): Ditto.
3582         (print_operand): Ditto.
3583
3584 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3585
3586         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
3587         placeholder from 0x%x to %#x.
3588         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
3589         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
3590         (ASM_OUTPUT_DEBUG_DATA): Ditto.
3591         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
3592         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
3593         * optc-gen.awk: Ditto.
3594         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
3595         (HOST_WIDE_INT_PRINT_HEX): Ditto.
3596         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
3597         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
3598
3599 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
3600
3601         * target.h (struct calls): Add function_value_regno_p field.
3602         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
3603         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
3604         * targhooks.c (default_function_value_regno_p): New function.
3605         * targhooks.h (default_function_value_regno_p): Declare function.
3606         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
3607         * builtins.c. (apply_result_size): (Ditto.).
3608         * combine.c. (likely_spilled_retval_p): (Ditto.).
3609         * mode-switching.c. Include 'target.h'.
3610         (create_pre_exit): Use function_value_regno_p hook.
3611         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
3612         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
3613         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
3614
3615         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
3616         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
3617         (ix86_function_value_regno_p): Declare as static, change argument
3618         type to const unsigned int.
3619         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
3620
3621 2010-05-01  Richard Guenther  <rguenther@suse.de>
3622
3623         PR tree-optimization/43949
3624         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
3625         types.
3626         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
3627
3628 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
3629
3630         * rtl.h (CONST_DOUBLE_P): Define.
3631         (rtx_to_double_int): Declare.
3632         * emit-rtl.c (rtx_to_double_int): New function.
3633         * dwarf2out.c (insert_double): New function.
3634         (loc_descriptor, add_const_value_attribute): Clean up, use
3635         rtx_to_double_int and insert_double functions.
3636
3637 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
3638
3639         * doc/extend.texi (Inline): Add missing return keyword to examples.
3640         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
3641         "command-line".
3642
3643 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
3644
3645         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
3646         the variable part of the offset as well.  Use highest_pow2_factor for
3647         all alignment checks.
3648
3649 2010-04-30  Richard Guenther  <rguenther@suse.de>
3650
3651         PR tree-optimization/43879
3652         * tree-ssa-structalias.c (type_could_have_pointers): Functions
3653         can have pointers.
3654
3655 2010-04-30  Jan Hubicka  <jh@suse.cz>
3656
3657         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
3658         varpool.
3659         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
3660
3661 2010-04-30  Jan Hubicka  <jh@suse.cz>
3662
3663         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
3664         New.
3665         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
3666         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
3667         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
3668         cgraph_node_set_needs_ltrans_p): Remove.
3669
3670 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
3671
3672         * sdbout.c: Include vec.h, do not include varray.h.
3673         (deferred_global_decls, sdbout_global_decl,
3674         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
3675         * toplev.c: Do not include varray.h.
3676         (dump_memory_report): Do not dump VARRAY statistics.
3677         * gengtype.c (open_base_file): Ignore varray.h.
3678         * Makefile.in: Update for abovementioned changes.
3679         Remove all traces of varray.c and varray.h.
3680         * varray.c: Remove file.
3681         * varray.h: Remove file.
3682
3683 2010-04-30  Jan Hubicka  <jh@suse.cz>
3684
3685         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
3686         references.
3687
3688 2010-04-30  Jan Hubicka  <jh@suse.cz>
3689
3690         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
3691         needed.
3692
3693 2010-04-30  Richard Guenther  <rguenther@suse.de>
3694
3695         * tree-ssa-structalias.c (get_constraint_for_1): Generate
3696         constraints for CONSTRUCTOR.
3697
3698 2010-04-30  Richard Guenther  <rguenther@suse.de>
3699
3700         PR lto/43946
3701         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
3702         first after all lowering passes.
3703
3704 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
3705
3706         * toplev.c: Include varray.h for statistics dumping.
3707         * tree.h: Do not declare varray_head_tag.
3708         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
3709         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
3710         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
3711         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
3712         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
3713         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
3714         c-common.c, c-common.h, reg-stack.c, basic-block.h,
3715         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
3716         include varray.h.
3717         * Makefile.in: Update for abovementioned changes.
3718
3719 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
3720
3721         PR debug/43942
3722         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
3723
3724 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
3725
3726         * config/picochip/picochip.c (picochip_legitimize_address): Define.
3727         Use this function to do machine-specific conversion.
3728         (picochip_legitimize_reload_address): Likewise.
3729         (picochip_legitimate_address_p): Check valid base register only if
3730         strict.
3731         (picochip_check_conditional_copy): Check for modw only if opnd is
3732         register.
3733         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
3734         to call the function in c.
3735         * config/picochip/picochip-protos.h
3736         (picochip_legitimize_reload_address): Define.
3737         * config/picochip/picochip.md (supported_compare1): Define.
3738
3739 2010-04-30  Jan Hubicka  <jh@suse.cz>
3740
3741         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
3742         (cgraph_global_info): Remove inlined.
3743         (LTO_cgraph_tag_names): Remove.
3744         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
3745         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
3746         simplify cgraph tags and document.
3747         (lto_output_node): Use only LTO_cgraph_unavail_node and
3748         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
3749         for_functions_valid, global info, process and output flags.
3750         (input_overwrite_node): Initialize estimated stack size and
3751         estimated growth.  Do not read flags we no longer store.
3752         (input_node): Likewise do not read info no longer stored.
3753         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
3754         flag.
3755
3756 2010-04-30  Richard Guenther  <rguenther@suse.de>
3757
3758         PR tree-optimization/43879
3759         * tree-ssa-structalias.c (get_constraint_for_1): Properly
3760         handle non-zero initializers.
3761
3762 2010-04-30  Richard Guenther  <rguenther@suse.de>
3763
3764         * builtins.c (fold_builtin_1): Delete free (0).
3765
3766 2010-04-29  Jan Hubicka  <jh@suse.cz>
3767
3768         * gengtype.c (open_base_files): Add lto-streamer.h
3769         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
3770         (pass_ipa_cp): GGC collect.
3771         * toplev. (compile_file): Do not output symbols.
3772         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
3773         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
3774         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
3775         * lto-section-in.c: Include ggc.h
3776         (lto_new_in_decl_state): Alloc in GGC.
3777         (lto_delete_in_decl_state): Likewise.
3778         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
3779         Collect.
3780
3781 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
3782
3783         PR target/42895
3784         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
3785         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
3786         (HONOR_REG_ALLOC_ORDER): Describe new macro.
3787         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
3788         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
3789         account only if HONOR_REG_ALLOC_ORDER is not defined.
3790         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
3791         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
3792
3793 2010-04-29  Jon Grant  <04@jguk.org>
3794
3795         * collect2.c (vflag): Change type from int to bool.
3796         (debug): Likewise.
3797         (helpflag): New global bool.
3798         (main): Set vflag and debug with boolean, not integer truth values.
3799         Accept new "--help" option and output usage text if found.
3800         * collect2.h (vflag): Update prototype.
3801         (debug): Likewise.
3802
3803 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3804
3805         PR bootstrap/43936
3806         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
3807
3808 2010-04-29  Richard Guenther  <rguenther@suse.de>
3809
3810         PR bootstrap/43935
3811         * plugin.h (invoke_plugin_callbacks): Annotate arguments
3812         with ATTRIBUTE_UNUSED.
3813
3814 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3815
3816         PR target/43921
3817         * config/i386/i386.c (get_some_local_dynamic_name): Replace
3818         INSN_P with NONDEBUG_INSN_P.
3819         (distance_non_agu_define): Likewise.
3820         (distance_agu_use): Likewise.
3821
3822 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
3823
3824         From Dominique d'Humieres <dominiq@lps.ens.fr>
3825         PR bootstrap/43858
3826         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
3827         test_set.
3828
3829 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
3830
3831         * plugin.h (invoke_plugin_callbacks): New inline function.
3832         * plugin.c (flag_plugin_added): New global flag.
3833         (add_new_plugin): Initialize above flag.
3834         (invoke_plugin_callbacks): Rename to ...
3835         (invoke_plugin_callbacks_full): ... this.
3836
3837 2010-04-28  Jan Hubicka  <jh@suse.cz>
3838
3839         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
3840         (lto_varpool_replace_node): New.
3841         (lto_symtab_resolve_symbols): Resolve varpool nodes.
3842         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
3843         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
3844         * cgraph.h (varpool_node_ptr): New type.
3845         (varpool_node_ptr): New vector.
3846         (varpool_node_set_def): New structure.
3847         (varpool_node_set): New type.
3848         (varpool_node_set): New vector.
3849         (varpool_node_set_element_def): New structure.
3850         (varpool_node_set_element, const_varpool_node_set_element): New types.
3851         (varpool_node_set_iterator): New type.
3852         (varpool_node): Add prev pointers, add used_from_other_partition,
3853         in_other_partition.
3854         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
3855         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
3856         varpool_get_node, varpool_remove_node): Declare.
3857         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
3858         varpool_node_set_size): New inlines.
3859         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
3860         * tree-pass.h (varpool_node_set_def): Forward declare.
3861         (ipa_opt_pass_d): Summary writting takes vnode sets too.
3862         (ipa_write_optimization_summaries): Update prototype.
3863         * ipa-cp.c (ipcp_write_summary): Update.
3864         * ipa-reference.c (ipa_reference_write_summary): Update.
3865         * lto-cgraph.c (lto_output_varpool_node): New static function.
3866         (output_varpool): New function.
3867         (input_varpool_node): New static function.
3868         (input_varpool_1): New function.
3869         (input_cgraph): Input varpool.
3870         * ipa-pure-const.c (pure_const_write_summary): Update.
3871         * lto-streamer-out.c (lto_output): Update, output varpool too.
3872         (write_global_stream): Kill WPA hack.
3873         (produce_asm_for_decls): Update.
3874         (output_alias_pair_p): Handle variables.
3875         (output_unreferenced_globals): Output only needed partition of varpool.
3876         * ipa-inline.c (inline_write_summary): Update.
3877         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
3878         cgraph.
3879         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
3880         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
3881         varpool_node_set_new, varpool_node_set_add,
3882         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
3883         debug_varpool_node_set): New functions.
3884         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
3885         (execute_one_pass): Process new decls too.
3886         (ipa_write_summaries_2): Pass around vsets.
3887         (ipa_write_summaries_1): Likewise.
3888         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
3889         to add.
3890         (ipa_write_optimization_summaries_1): Pass around vsets.
3891         (ipa_write_optimization_summaries): Likewise.
3892         * varpool.c (varpool_get_node): New.
3893         (varpool_node): Update doubly linked lists.
3894         (varpool_remove_node): New.
3895         (dump_varpool_node): More dumping.
3896         (varpool_enqueue_needed_node): Update doubly linked lists.
3897         (decide_is_variable_needed): Kill ltrans hack.
3898         (varpool_finalize_decl): Kill lto hack.
3899         (varpool_assemble_decl): Skip decls in other partitions.
3900         (varpool_assemble_pending_decls): Update doubly linkes lists.
3901         (varpool_empty_needed_queue): Likewise.
3902         (varpool_extra_name_alias): Likewise.
3903         * lto-streamer.c (lto_get_section_name): Add vars section.
3904         * lto-streamer.h (lto_section_type): Update.
3905         (output_varpool, input_varpool): Declare.
3906
3907 2010-04-28  Mike Stump  <mikestump@comcast.net>
3908
3909         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
3910
3911 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
3912
3913         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
3914         record or union type with RECORD_OR_UNION_TYPE_P predicate.
3915         (lto_input_ts_type_tree_pointers): Likewise.
3916         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
3917         (lto_output_ts_type_tree_pointers): Likewise.
3918
3919 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
3920
3921         Uniquization of constants at the Tree level
3922         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
3923         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
3924         bit to the end.
3925         (tree_output_constant_def): Declare.
3926         * gimplify.c (gimplify_init_constructor): When using block copy, first
3927         uniquize the constant constructor on the RHS.
3928         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
3929         DECL_IN_CONSTANT_POOL flag.
3930         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
3931         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
3932         constant pool.
3933         (assemble_variable): Deal with symbols belonging to the tree constant
3934         pool.
3935         (get_constant_section): Add ALIGN parameter and simplify.
3936         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
3937         (assemble_constant_contents): Use the expression of the VAR_DECL.
3938         (output_constant_def_contents): Use the alignment of the VAR_DECL.
3939         (tree_output_constant_def): New global function.
3940         (mark_constant): Use the expression of the VAR_DECL.
3941         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
3942         its expression.
3943         (output_object_block): Likewise and assemble the expression.
3944
3945 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
3946
3947         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
3948         hash_tree, eq_tree): New tree hash table.
3949         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
3950         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
3951         lto_orig_address_remove): Reimplement.
3952
3953 2010-04-28  Xinliang David Li  <davidxl@google.com>
3954
3955         PR c/42643
3956         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
3957         (compute_uninit_opnds_pos): New function.
3958         (is_non_loop_exit_postdominating): New function.
3959         (compute_control_dep_chain): New function.
3960         (find_pdom): New function.
3961         (convert_control_dep_chain_into_preds): New function.
3962         (find_predicates): New function.
3963         (find_control_equiv_block): New function.
3964         (collect_phi_def_edges): New function.
3965         (find_def_preds): New function.
3966         (find_dom): New function.
3967         (dump_predicates): New function.
3968         (get_cmp_code): New function.
3969         (is_value_included_in): New function.
3970         (find_matching_predicate_in_rest_chains): New function.
3971         (use_pred_not_overlap_with_undef_path_pred): New function.
3972         (is_use_properly_guarded): New function.
3973         (normalize_cond_1): New function.
3974         (is_and_or_or): New function.
3975         (normalize_cond): New function.
3976         (is_gcond_subset_of): New function.
3977         (is_subset_of_any): New function.
3978         (is_or_set_subset_of): New function.
3979         (is_and_set_subset_of): New function.
3980         (is_norm_cond_subset_of): New function.
3981         (is_pred_expr_subset_of): New function.
3982         (is_pred_chain_subset_of): New function.
3983         (is_included_in): New function.
3984         (is_superset_of): New function.
3985         (find_uninit_use): New function.
3986         (warn_uninitialized_phi): New function.
3987         (compute_possibly_undefined_names): New function.
3988         (ssa_undefined_value_p): New function.
3989         (execute_late_warn_uninitialized): New function.
3990         * tree-ssa.c (ssa_undefined_value_p): Removed.
3991         (warn_uninit): Changed to extern.
3992         (warn_uninitialized_phi): Removed.
3993         (warn_uninitialized_vars): Changed to extern.
3994         (execute_late_warn_uninitialized): Removed
3995         * tree-flow.h: Add new prototypes.
3996         * timevar.def: Add new time variable.
3997         * Makefile.in: Add new build file.
3998
3999 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
4000
4001         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
4002         type if available.
4003
4004 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4005
4006         PR target/22224
4007         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
4008
4009 2010-04-28  Martin Jambor  <mjambor@suse.cz>
4010
4011         * cgraph.h (struct cgraph_node): New field indirect_calls.
4012         (struct cgraph_indirect_call_info): New type.
4013         (struct cgraph_edge): Removed field indirect_call. New fields
4014         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
4015         (cgraph_create_indirect_edge): Declare.
4016         (cgraph_make_edge_direct): Likewise.
4017         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
4018         * ipa-prop.h (struct ipa_param_call_note): Removed.
4019         (struct ipa_node_params): Removed field param_calls.
4020         (ipa_create_all_structures_for_iinln): Declare.
4021         * cgraph.c: Described indirect edges and uids in initial comment.
4022         (cgraph_add_edge_to_call_site_hash): New function.
4023         (cgraph_edge): Search also among the indirect edges, use
4024         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
4025         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
4026         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
4027         site hash.
4028         (initialize_inline_failed): Assign a reason to indirect edges.
4029         (cgraph_create_edge_1): New function.
4030         (cgraph_create_edge): Moved some functionality to
4031         cgraph_create_edge_1.
4032         (cgraph_create_indirect_edge): New function.
4033         (cgraph_edge_remove_callee): Add an assert checking for
4034         non-indirectness.
4035         (cgraph_edge_remove_caller): Special-case indirect edges.
4036         (cgraph_remove_edge): Likewise.
4037         (cgraph_set_edge_callee): New function.
4038         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
4039         (cgraph_make_edge_direct): New function.
4040         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
4041         the declaration of the call statement matches.
4042         (cgraph_node_remove_callees): Special-case indirect edges.
4043         (cgraph_clone_edge): Likewise.
4044         (cgraph_clone_node): Clone also the indirect edges.
4045         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
4046         indirect_call, dump count of indirect_calls edges.
4047         * ipa-prop.c (iinlining_processed_edges): New variable.
4048         (ipa_note_param_call): Create indirect edges instead of
4049         creating notes.  New parameter node.
4050         (ipa_analyze_call_uses): New parameter node, pass it on to
4051         ipa_note_param_call.
4052         (ipa_analyze_stmt_uses): Likewise.
4053         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
4054         (print_edge_addition_message): Work on edges rather than on notes.
4055         (update_call_notes_after_inlining): Likewise, renamed to
4056         update_indirect_edges_after_inlining.
4057         (ipa_create_all_structures_for_iinln): New function.
4058         (ipa_free_node_params_substructures): Do not free notes.
4059         (ipa_edge_duplication_hook): Propagate bits within
4060         iinlining_processed_edges bitmap.
4061         (ipa_node_duplication_hook): Do not duplicate notes.
4062         (free_all_ipa_structures_after_ipa_cp): Renamed to
4063         ipa_free_all_structures_after_ipa_cp.
4064         (free_all_ipa_structures_after_iinln): Renamed to
4065         ipa_free_all_structures_after_iinln.
4066         (ipa_write_param_call_note): Removed.
4067         (ipa_read_param_call_note): Removed.
4068         (ipa_write_indirect_edge_info): New function.
4069         (ipa_read_indirect_edge_info): Likewise.
4070         (ipa_write_node_info): Do not stream notes, do stream information
4071         in indirect edges.
4072         (ipa_read_node_info): Likewise.
4073         (lto_ipa_fixup_call_notes): Removed.
4074         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
4075         * ipa-inline.c (pass_ipa_inline): Likewise.
4076         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
4077         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
4078         * tree-inline.c (copy_bb): Removed an unnecessary double check for
4079         is_gimple_call.
4080         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
4081         edges.
4082         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
4083         (output_cgraph): Stream also indirect edges.
4084         (lto_output_edge): Added capability to stream indirect edges.
4085         (input_edge): Likewise.
4086         (input_cgraph_1): Likewise.
4087         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
4088         of indirect edges.
4089
4090 2010-04-28  Richard Guenther  <rguenther@suse.de>
4091
4092         PR tree-optimization/43879
4093         PR tree-optimization/43909
4094         * tree-ssa-structalias.c (struct variable_info): Add
4095         only_restrict_pointers flag.
4096         (new_var_info): Initialize it.  Increment stats.total_vars here.
4097         (create_function_info_for): Do not increment stats.total_vars here.
4098         (get_function_part_constraint): Fix build with C++.
4099         (insert_into_field_list): Remove.
4100         (push_fields_onto_fieldstack): Properly merge fields.
4101         (create_variable_info_for): Split and simplify.
4102         (create_variable_info_for_1): New piece.
4103         (intra_create_variable_infos): Properly make restrict constraints
4104         from parameters.
4105
4106 2010-04-28  Richard Guenther  <rguenther@suse.de>
4107
4108         PR c++/43880
4109         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
4110
4111 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4112             Jan Hubicka <hubicka@ucw.cz>
4113
4114         * doc/invoke.texi (-Wsuggest-attribute=const,
4115         -Wsuggest-attribute=pure): Document.
4116         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
4117         (function_always_visible_to_compiler_p,
4118         suggest_attribute, warn_function_pure, warn_function_const):
4119         New functions.
4120         (check_call): Improve debug info.
4121         (analyze_function): Do not check availability.
4122         (add_new_function): Check availability.
4123         (propagate): Output warnings.
4124         (skip_function_for_local_pure_const): New function.
4125         (local_pure_const): Use it; output warnings.
4126         * common.opt (Wsuggest-attribute=const,
4127         Wsuggest-attribute=pure): New.
4128
4129 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
4130
4131         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
4132         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
4133         or DW_CFA_def_cfa_offset{,_sf}.
4134
4135 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
4136
4137         * tree.h: Fix truncated long macros.
4138
4139 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
4140
4141         * collect2.c (TARGET_64BIT): Redefine to target's default.
4142         * tlink.c: Likewise.
4143         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
4144         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
4145         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
4146         for underscoring __USER_LABEL_PREFIX__.
4147         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
4148         (SUB_LINK_ENTRY32): New.
4149         (SUB_LINK_ENTRY64): New.
4150         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
4151         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
4152         (SUB_LINK_ENTRY64): New.
4153         (SUB_LINK_ENTRY): New.
4154         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
4155         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
4156         x64 target is choosen.
4157         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
4158         * configure: Regenerated.
4159         * configure.ac (leading-mingw64-underscores): Option added.
4160
4161 2010-04-27  Jan Hubicka  <jh@suse.cz>
4162
4163         * doc/invoke.texi (-fipa-profile): Document.
4164         * opts.c (decode_options): Enable ipa-profile at -O1.
4165         * timevar.def (TV_IPA_PROFILE): Define.
4166         * common.opt (fipa-profile): Add.
4167         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
4168         flag for clones.
4169         (cgraph_propagate_frequency): Handle only local ones.
4170         * tree-pass.h (pass_ipa_profile): Declare.
4171         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
4172         (pass_ipa_profile): Use TV_IPA_PROFILE.
4173         * ipa.c (ipa_profile): New function.
4174         (gate_ipa_profile): Likewise.
4175         (pass_ipa_profile): New global variable.
4176         * passes.c (pass_ipa_profile): New.
4177
4178 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
4179
4180         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
4181
4182 2010-04-27  Martin Jambor  <mjambor@suse.cz>
4183
4184         PR middle-end/43812
4185         * ipa.c (dissolve_same_comdat_group_list): New function.
4186         (function_and_variable_visibility): Call
4187         dissolve_same_comdat_group_list when comdat group contains external or
4188         newly local nodes.
4189         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
4190         lists are circular and that they contain only DECL_ONE_ONLY nodes.
4191
4192 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
4193
4194         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
4195         (const_hash_1) <VECTOR_CST>: New case.
4196         (compare_constant) <VECTOR_CST>: Likewise.
4197         <ADDR_EXPR>: Deal with LABEL_REFs.
4198         (copy_constant) <VECTOR_CST>: New case.
4199
4200 2010-04-27  Jan Hubicka  <jh@suse.cz>
4201
4202         * cgraph.c (cgraph_propagate_frequency): New function.
4203         * cgraph.h (cgraph_propagate_frequency): Declare.
4204         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
4205         cgraph_propagate_frequency.
4206
4207 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
4208
4209         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
4210
4211 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
4212
4213         PR target/40657
4214         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
4215         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
4216         here to determine which regs to push and how much stack to reserve.
4217
4218 2010-04-27  Jie Zhang  <jie@codesourcery.com>
4219
4220         * doc/gimple.texi (gimple_statement_with_ops): Remove
4221         addresses_taken field.
4222         (gimple_statement_with_memory_ops): Likewise.
4223
4224 2010-04-27  Jan Hubicka  <jh@suse.cz>
4225
4226         * tree-inline.c (eni_inlining_weights): Remove.
4227         (estimate_num_insns): Special case more builtins.
4228
4229 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
4230
4231         PR c/32207
4232         * c-typeck.c (build_binary_op): Move forward check for comparison
4233         pointer with null pointer constant and adjust the diagnostic message.
4234
4235 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
4236
4237         PR lto/42776
4238         * configure.ac (gcc_cv_as_section_has_align): Set if installed
4239         binutils supports extended .section directive needed by LTO, or
4240         warn if older binutils found.
4241         (LTO_BINARY_READER): New AC_SUBST'd variable.
4242         (LTO_USE_LIBELF): Likewise.
4243         * gcc/config.gcc (lto_binary_reader): New target-specific configure
4244         variable.
4245         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
4246         (LTO_USE_LIBELF): Likewise.
4247         * configure: Regenerate.
4248
4249         * collect2.c (is_elf): Rename from this ...
4250         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
4251          object files in addition to ELF-formatted ones.
4252         (scan_prog_file): Caller updated.  Also allow for LTO info marker
4253         symbol to be prefixed or not by an extra underscore.
4254
4255         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
4256         * config/i386/winnt.c: Also #include lto-streamer.h
4257         (i386_pe_asm_named_section): Specify 1-byte section alignment for
4258         LTO named sections.
4259         (i386_pe_asm_output_aligned_decl_common): Add comment.
4260         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
4261
4262 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
4263
4264         PR target/43889
4265         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
4266         Add missing earlyclobber for second alternative.
4267
4268 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
4269
4270         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
4271         bits for artificial defs at the top of the block.
4272         * fwprop.c (single_def_use_enter_block): Don't call it.
4273
4274 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
4275
4276         PR 43715
4277         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
4278         instead of "$gcc_cv_objdump -T".
4279         Use "-undefined dynamic_lookup" on darwin.
4280         * gcc/configure: Regenerate.
4281
4282 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
4283
4284         PR c/43893
4285         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
4286
4287 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
4288
4289         * c-parser.c (struct c_token): Move location field up.
4290         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
4291         (struct c_declspecs): Convert typespec_word, storage_class, and
4292         default_int_p into bitfields.
4293         (struct c_declarator): Move loc field up.
4294
4295 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
4296
4297         * cfgloop.h (struct loop): Move can_be_parallel field up.
4298         * ipa-prop.h (struct ip_node_params): Move bitfields up.
4299         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
4300         down.
4301         (struct iv_cand): Convert pos field into a bitfield.
4302         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
4303         field up.
4304         (struct _stmt_vec_info): Shuffle fields for better packing.
4305
4306 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
4307
4308         * varasm.c (IN_NAMED_SECTION): Remove guard.
4309         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
4310         (IN_NAMED_SECTION_P): ...this.
4311         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
4312         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
4313
4314 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
4315
4316         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
4317         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
4318         of shadowing it.  Fix comments.
4319
4320 2010-04-26  Jan Hubicka  <jh@suse.cz>
4321
4322         * cgraph.c (cgraph_create_node): Set node frequency to normal.
4323         (cgraph_clone_node): Copy function frequency.
4324         * cgraph.h (node_frequency): New enum
4325         (struct cgraph_node): Add.
4326         * final.c (rest_of_clean_state): Update.
4327         * lto-cgraph.c (lto_output_node): Output node frequency.
4328         (input_overwrite_node): Input node frequency.
4329         * tre-ssa-loop-ivopts (computation_cost): Update.
4330         * lto-streamer-out.c (output_function): Do not output function
4331         frequency.
4332         * predict.c (maybe_hot_frequency_p): Update and handle functions
4333         executed once.
4334         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
4335         attribute lookup.
4336         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
4337         (compute_function_frequency): Set noreturn functions to be executed
4338         once.
4339         (choose_function_section): Update.
4340         * lto-streamer-in.c (input_function): Do not input function frequency.
4341         * function.c (allocate_struct_function): Do not initialize function
4342         frequency.
4343         * function.h (function_frequency): Remove.
4344         (struct function): Remove function frequency.
4345         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
4346         (try_update): Update.
4347         * tree-inline.c (initialize_cfun): Do not update function frequency.
4348         * passes.c (pass_init_dump_file): Update.
4349         * i386.c (ix86_compute_frame_layout): Update.
4350         (ix86_pad_returns): Update.
4351
4352 2010-04-26  Jie Zhang  <jie@codesourcery.com>
4353
4354         PR tree-optimization/43833
4355         * tree-vrp.c (range_int_cst_p): New.
4356         (range_int_cst_singleton_p): New.
4357         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
4358         when both operands are constants.  Use range_int_cst_p in
4359         BIT_IOR_EXPR case.
4360
4361 2010-04-26  Jan Hubicka  <jh@suse.cz>
4362
4363         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
4364
4365 2010-04-26  Richard Guenther  <rguenther@suse.de>
4366
4367         PR lto/43080
4368         * gimple.c (gimple_decl_printable_name): Deal gracefully
4369         with a NULL DECL_NAME.
4370
4371 2010-04-26  Richard Guenther  <rguenther@suse.de>
4372
4373         PR lto/42425
4374         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
4375         if emitting debug information and it is either a function
4376         or a namespace decl.
4377
4378 2010-04-26  Ira Rosen  <irar@il.ibm.com>
4379
4380         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
4381         determine if the statement is vectorizable, and a macro to access it.
4382         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
4383         Skip statements that can't be vectorized. If the analysis fails,
4384         mark the statement as unvectorizable if vectorizing basic block.
4385         (vect_compute_data_refs_alignment): Likewise.
4386         (vect_verify_datarefs_alignment): Skip statements marked as
4387         unvectorizable. Add print.
4388         (vect_analyze_group_access): Skip statements that can't be
4389         vectorized. If the analysis fails, mark the statement as
4390         unvectorizable if vectorizing basic block.
4391         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
4392         * tree-vect-stmts.c (vectorizable_store): Fix the number of
4393         generated stmts for SLP.
4394         (new_stmt_vec_info): Initialize the new field.
4395         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
4396         statements marked as unvectorizable.
4397
4398 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
4399
4400         * c-common.c (flag_isoc1x): New.
4401         (flag_isoc99): Update comment.
4402         * c-common.h (flag_isoc1x): New.
4403         (flag_isoc99): Update comment.
4404         * c-cppbuiltin.c (builtin_define_float_constants): Also define
4405         __<type>_DECIMAL_DIG__.
4406         * c-opts.c (set_std_c1x): New.
4407         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
4408         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
4409         * c.opt (-std=c1x, -std=gnu1x): New options.
4410         * doc/cpp.texi: Mention -std=c1x.
4411         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
4412         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
4413         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
4414         * doc/standards.texi: Mention C1X.
4415         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
4416         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
4417         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
4418         Define for C1X.
4419
4420 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
4421
4422         * config/i386/gmon-sol2.c (_mcleanup): Change format string
4423         placeholder from 0x%x to %#x.
4424         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
4425         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
4426         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
4427         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
4428         * config/i386/i386.c (ix86_target_string): Ditto.
4429         (output_pic_addr_const): Ditto.
4430         (print_operand): Ditto.
4431
4432 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
4433
4434         * combine.c (find_split_point): Add third argument.  Use it
4435         to find nested multiply-accumulate instructions.  Adjust calls.
4436         (try_combine): Adjust call to find_split_point.
4437
4438 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
4439
4440         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
4441
4442 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
4443
4444         PR tree-optimization/41442
4445         * fold-const.c (merge_truthop_with_opposite_arm): New function.
4446         (fold_binary_loc): Call it.
4447
4448 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4449
4450         * toplev.c (general_init): Set default for fdiagnostics-show-option.
4451         * opts.c (common_handle_option): Allow disabling it.
4452         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
4453
4454 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
4455
4456         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
4457         between modes if both types are integral.
4458
4459 2010-04-23  Richard Guenther  <rguenther@suse.de>
4460
4461         PR tree-optimization/43572
4462         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
4463
4464 2010-04-23  Richard Guenther  <rguenther@suse.de>
4465
4466         PR lto/43455
4467         * tree-inline.c (tree_can_inline_p): Also check compatibility
4468         of return types.
4469
4470 2010-04-23  Martin Jambor  <mjambor@suse.cz>
4471
4472         PR tree-optimization/43846
4473         * tree-sra.c (struct access): New flag grp_assignment_read.
4474         (build_accesses_from_assign): Set grp_assignment_read.
4475         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
4476         (enum mark_read_status): New type.
4477         (analyze_access_subtree): Propagate grp_assignment_read, create
4478         accesses also if both direct_read and root->grp_assignment_read.
4479
4480 2010-04-23  Martin Jambor  <mjambor@suse.cz>
4481
4482         PR middle-end/43835
4483         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
4484         function does not have type attributes.
4485
4486 2010-04-23  Richard Guenther  <rguenther@suse.de>
4487
4488         PR lto/42653
4489         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
4490         of FUNCTION_DECLs.
4491
4492 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4493
4494         * sese.h (create_if_region_on_edge): Remove.
4495
4496         * sese.c (create_if_region_on_edge): Make static.
4497
4498         * tree-inline.c: Do not include ggc.h.
4499
4500         * expr.c: Do not include ggc.h.
4501
4502         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
4503         dependencies.
4504
4505 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
4506
4507         PR target/43744
4508         * config/sh/sh.c (find_barrier): Don't emit a constant pool
4509         in the middle of insns for casesi_worker_2.
4510
4511 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
4512
4513         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
4514
4515 2010-04-22  Ira Rosen  <irar@il.ibm.com>
4516
4517         PR tree-optimization/43842
4518         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
4519         loop unrolling in update of exit phis. Fix comment.
4520         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
4521         least two reduction statements in the loop before starting SLP
4522         analysis.
4523
4524 2010-04-22  Nick Clifton  <nickc@redhat.com>
4525
4526         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
4527
4528 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
4529
4530         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
4531         to simplify a + ~a.
4532
4533 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4534
4535         * tree-parloops.c (loop_parallel_p): New argument
4536         parloop_obstack.  Pass it down.
4537         (parallelize_loops): New variable parloop_obstack.  Initialize it,
4538         pass it down, free it.
4539
4540         * tree-loop-linear.c (linear_transform_loops): Pass down
4541         lambda_obstack.
4542
4543         * tree-data-ref.h (lambda_compute_access_matrices): New argument
4544         of type struct obstack *.
4545
4546         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
4547         scratch_obstack.  Initialize it, pass down, free it.
4548
4549         * lambda.h (lambda_loop_new): Remove.
4550         (lambda_matrix_new, lambda_matrix_inverse)
4551         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
4552         argument of type struct obstack *.
4553
4554         * lambda-trans.c (lambda_trans_matrix_new): New argument
4555         lambda_obstack.  Pass it down, use obstack allocation for ret.
4556         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
4557         it down.
4558
4559         * lambda-mat.c (lambda_matrix_get_column)
4560         (lambda_matrix_project_to_null): Remove.
4561         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
4562         allocation for mat.
4563         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
4564         lambda_obstack.
4565
4566         * lambda-code.c (lambda_loop_new): New function.
4567         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
4568         (lambda_compute_auxillary_space, lambda_compute_target_space)
4569         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
4570         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
4571         (build_access_matrix): New argument lambda_obstack.  Use obstack
4572         allocation for am.
4573         (lambda_compute_step_signs, lambda_compute_access_matrices): New
4574         argument lambda_obstack.  Pass it down.
4575
4576 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4577
4578         * optabs.h (expand_widening_mult): Declare.
4579
4580 2010-04-22  Richard Guenther  <rguenther@suse.de>
4581
4582         PR tree-optimization/43845
4583         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
4584         lookup the CALL_EXPR function and arguments.
4585
4586 2010-04-22  Nick Clifton  <nickc@redhat.com>
4587
4588         * config/stormy16/stormy16.c
4589         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
4590         * config/stormy16/stormy16.h: Tidy up formatting.
4591         (DONT_USE_BUILTIN_SETJMP): Remove definition.
4592         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
4593         (ineqbranchsi): Delete pattern.
4594         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
4595         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
4596         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
4597         stormy16-lib2-ucmpsi2.c.
4598
4599 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4600
4601         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
4602         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
4603         extra set merge_set_noclobber, and use it to relax the final test
4604         slightly.
4605         * df.h (df_simulate_find_noclobber_defs): Declare.
4606         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
4607         conditional defs.
4608         (df_simulate_find_noclobber_defs): New function.
4609
4610 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
4611
4612         * config/i386/i386.md: Use {} around multi-line preparation statements.
4613
4614 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4615
4616         * c-tree.h (push_init_level, pop_init_level, set_init_index)
4617         (process_init_element): New argument of type struct obstack *.
4618
4619         * c-typeck.c (push_init_level, pop_init_level, set_designator)
4620         (set_init_index, set_init_label, set_nonincremental_init)
4621         (set_nonincremental_init_from_string, find_init_member)
4622         (output_init_element, output_pending_init_elements)
4623         (process_init_element): New argument braced_init_obstack.  Pass it
4624         down.
4625         (push_range_stack, add_pending_init): New argument
4626         braced_init_obstack.  Use obstack allocation.
4627
4628         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
4629         braced_init_obstack.  Pass it down.
4630         (c_parser_braced_init): New variables ret, braced_init_obstack.
4631         Initialize obstack, pass it down and finally free it.
4632
4633 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4634
4635         PR middle-end/29274
4636         * tree-pass.h (pass_optimize_widening_mul): Declare.
4637         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
4638         gate_optimize_widening_mul): New static functions.
4639         (pass_optimize_widening_mul): New.
4640         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
4641         <case MULT_EXPR>: Remove support for widening multiplies.
4642         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
4643         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
4644         simplify_gen_unary rather than directly building extensions.
4645         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
4646         WIDEN_MULT_EXPR.
4647         * expmed.c (expand_widening_mult): New function.
4648         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
4649
4650 2010-04-21  Jan Hubicka  <jh@suse.cz>
4651
4652         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
4653         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
4654         * lto-wpa-fixup.c: Remove.
4655         * Makefile.in (lto-wpa-fixup.o): Remove.
4656         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
4657         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
4658         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
4659
4660 2010-04-21  Jan Hubicka  <jh@suse.cz>
4661
4662         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
4663         add write_optimization_summary, read_optimization_summary.
4664         (ipa_write_summaries_of_cgraph_node_set): Remove.
4665         (ipa_write_optimization_summaries): Declare.
4666         (ipa_read_optimization_summaries): Declare.
4667         * ipa-cp.c (pass_ipa_cp): Update.
4668         * ipa-reference.c (pass_ipa_reference): Update.
4669         * ipa-pure-const.c (pass_ipa_pure_const): Update.
4670         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
4671         Update.
4672         * ipa-inline.c (pass_ipa_inline): Update.
4673         * ipa.c (pass_ipa_whole_program): Update.
4674         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
4675         * passes.c (ipa_write_summaries_1): Do not test wpa.
4676         (ipa_write_optimization_summaries_1): New.
4677         (ipa_write_optimization_summaries): New.
4678         (ipa_read_summaries): Do not test ltrans.
4679         (ipa_read_optimization_summaries_1): New.
4680         (ipa_read_optimization_summaries): New.
4681
4682 2010-04-21  Jan Hubicka  <jh@suse.cz>
4683
4684         * lto-cgraph.c (lto_output_node): Do not output comdat groups
4685         for boundary nodes.
4686         (output_cgraph): Do not arrange comdat groups for boundary nodes.
4687
4688 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4689
4690         PR debug/40040
4691         * dwarf2out.c (add_name_and_src_coords_attributes): Add
4692         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
4693
4694 2010-04-21  Jan Hubicka  <jh@suse.cz>
4695
4696         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
4697
4698 2010-04-21  Jan Hubicka  <jh@suse.cz>
4699
4700         * varpool.c (decide_is_variable_needed): Variable is always needed
4701         during ltrans.
4702
4703 2010-04-21  Jan Hubicka  <jh@suse.cz>
4704
4705         * opts.c (decode_options): Enable pure-const pass for whopr.
4706
4707 2010-04-21  Jan Hubicka  <jh@suse.cz>
4708
4709         * cgraph.c (dump_cgraph_node): Dump also assembler name.
4710         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
4711         at WPA dumping.
4712         (cgraph_decide_inlining): Do not expect callee to be removed in all
4713         cases.
4714
4715 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
4716
4717         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
4718
4719 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
4720
4721         * config/i386/i386.md (x86_shrd): Add athlon_decode and
4722         amdfam10_decode attributes.
4723
4724 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4725
4726         PR middle-end/43570
4727         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
4728         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
4729         (lower_copyprivate_clauses): Use private var in outer
4730         context instead of original var.  Make sure the types
4731         are correct for VLAs.
4732
4733 2010-04-21  Richard Guenther  <rguenther@suse.de>
4734
4735         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
4736         to non-pointer objects.
4737
4738 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4739
4740         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
4741         last chain entry if it starts with the still current label.
4742         (add_location_or_const_value_attribute): Check that
4743         loc_list->first->next is NULL instead of comparing ->first with ->last.
4744         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
4745         to add_var_loc_to_decl.
4746
4747         * dwarf2out.c (output_call_frame_info): For dw_cie_version
4748         >= 4 add also address size and segment size fields into CIE header.
4749
4750         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
4751         long as address size is the same as sizeof (void *) and
4752         segment size is 0.
4753         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
4754         address size or segment size is unexpected, return DW_EH_PE_omit.
4755         (classify_object_over_fdes): If get_cie_encoding returned
4756         DW_EH_PE_omit, return -1.
4757         (init_object): If classify_object_over_fdes returned -1,
4758         pretend there were no FDEs at all.
4759
4760 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
4761
4762         * config/i386/i386.md (bswap<mode>2): Macroize expander from
4763         bswap{si,di}2 using SWI48 mode iterator.
4764         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
4765         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
4766         set modrm attribute of bswap insn to 0 and remove length attribute.
4767         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
4768         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
4769         set mode attribute to <MODE> and remove length attribute.
4770
4771 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
4772
4773         PR rtl-optimization/43520
4774         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
4775         zero available registers.
4776
4777 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4778
4779         * builtins.c (fold_builtin_cproj): Fold more cases.
4780
4781 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4782
4783         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
4784         (fold_builtin_1): Fold builtin cproj.
4785         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
4786         Use ATTR_CONST_NOTHROW_LIST.
4787
4788 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
4789
4790         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
4791         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
4792         ffsi2_no_cmove for !TARGET_CMOVE.
4793         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
4794         (ffssi2): Remove expander.
4795         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
4796         mode iterator.
4797         (ctz<mode>2): Ditto from ctz{si,di}2.
4798         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
4799         mode iterator.
4800         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
4801         mode iterator.
4802
4803 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
4804
4805         * dwarf2out.c (AT_linkage_name): Define.
4806         (clone_as_declaration): Handle DW_AT_linkage_name.
4807         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
4808         of DW_AT_MIPS_linkage_name.
4809         (move_linkage_attr): Likewise.
4810         (dwarf2out_finish): Likewise.
4811
4812 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
4813
4814         PR middle-end/41952
4815         * fold-const.c (fold_comparison): New folding rule.
4816
4817 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
4818
4819         * double-int.h (double_int_setbit): Declare.
4820         * double-int.c (double_int_setbit): New function.
4821         * rtl.h (immed_double_int_const): Declare.
4822         * emit-rtl.c (immed_double_int_const): New function.
4823         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
4824         and immed_double_int_const functions.
4825         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
4826         expand_copysign_bit):  (Ditto.).
4827         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
4828         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
4829         * dojump.c (prefer_and_bit_test): (Ditto.).
4830         * expr.c (convert_modes, reduce_to_bit_field_precision,
4831         const_vector_from_tree): (Ditto.).
4832         * expmed.c (mask_rtx, lshift_value): (Ditto.).
4833
4834 2010-04-20  Jan Hubicka  <jh@suse.cz>
4835
4836         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
4837         (dump_cgraph_node): Dump new flags.
4838         * cgraph.h (struct cgraph_node): Add flags
4839         reachable_from_other_partition and in_other_partition.
4840         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
4841         other partition can not be removed.
4842         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
4843         the other partition must be output; silence sanity checking on
4844         leaking functions bodies from other paritition.
4845         * lto-cgraph.c (reachable_from_other_partition_p): New function.
4846         (lto_output_node): Output new flags; do not sanity check that inline
4847         clones are output; drop lto_forced_extern_inline_p code; do not mock
4848         visibility flags at partition boundaries.
4849         (add_node_to): New function.
4850         (output_cgraph): Use it to sort functions so masters appear before
4851         clones.
4852         (input_overwrite_node): Input new flags.
4853         * passes.c (ipa_write_summaries): Do not call
4854         lto_new_extern_inline_states.
4855         * lto-section-out.c (forced_extern_inline,
4856         lto_new_extern_inline_states lto_delete_extern_inline_states,
4857         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
4858         * lto-streamer.h (lto_new_extern_inline_states,
4859         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
4860         lto_forced_extern_inline_p): Kill.
4861
4862 2010-04-20  Richard Guenther  <rguenther@suse.de>
4863
4864         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
4865         from vars that can have pointers.
4866         (process_constraint): Dump useless constraints.
4867
4868 2010-04-20  Richard Guenther  <rguenther@suse.de>
4869
4870         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
4871         (dump_sa_points_to_info): Remove asserts.
4872         (init_base_vars): nothing_id isn't an escape point nor does it
4873         have pointers.
4874
4875 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
4876
4877         * tree.h (TYPE_REF_IS_RVALUE): Define.
4878         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
4879         should_move_die_to_comdat, prune_unused_types_walk): Handle
4880         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
4881         (modified_type_die, gen_reference_type_die): Emit
4882         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
4883         if TYPE_REF_IS_RVALUE and -gdwarf-4.
4884
4885 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4886
4887         PR target/43635
4888         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
4889         calls for -fpic -m31 if they have been sibcall optimized.
4890
4891 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
4892
4893         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
4894         ar.lc fixed and call-used.
4895
4896         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
4897
4898 2010-04-19  Jan Hubicka  <jh@suse.cz>
4899
4900         * opts.c (decode_options): Disable whpr incompatible passes.
4901         * lto/lto.c (lto_1_to_1_map): Skip clones.
4902         (read_cgraph_and_symbols): Do not mark everything as needed.
4903         (do_whole_program_analysis): Do map only after optimizing;
4904         set proper cgraph_state; use passmanager.
4905
4906 2010-04-19  DJ Delorie  <dj@redhat.com>
4907
4908         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
4909         POINTER_PLUS_EXPR and fix them.
4910
4911 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
4912
4913         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
4914         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
4915         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
4916         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
4917         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
4918         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
4919         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
4920         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
4921         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
4922         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
4923         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
4924
4925 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4926
4927         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
4928         (check_cond_move_block): Likewise.
4929         (cond_move_process_if_block): Likewise.
4930         (noce_find_if_block): Improve formatting.
4931         (find_if_header): Pass 0 to memset and tweak conditions.
4932         (cond_exec_find_if_block): Fix long lines and tweak conditions.
4933
4934 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
4935
4936         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
4937         for -gdwarf-4.
4938
4939         PR middle-end/43337
4940         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
4941         with non-local decl doesn't need chain.
4942
4943 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
4944
4945         * ira-color.c (allocno_reload_assign): Avoid accumulating
4946         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
4947
4948 2010-04-19  Martin Jambor  <mjambor@suse.cz>
4949
4950         * gimple.h (create_tmp_reg): Declare.
4951         * gimplify.c (create_tmp_reg): New function.
4952         (gimplify_return_expr): Use create_tmp_reg.
4953         (gimplify_omp_atomic): Likewise.
4954         (gimple_regimplify_operands): Likewise.
4955         * tree-dfa.c (make_rename_temp): Likewise.
4956         * tree-predcom.c (predcom_tmp_var): Likewise.
4957         (reassociate_to_the_same_stmt): Likewise.
4958         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
4959         (get_replaced_param_substitute): Likewise.
4960         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
4961         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
4962         * tree-ssa-pre.c (get_representative_for): Likewise.
4963         (create_expression_by_pieces): Likewise.
4964         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
4965         (create_tailcall_accumulator): Likewise.
4966
4967 2010-04-19  Martin Jambor  <mjambor@suse.cz>
4968
4969         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
4970         new_stmt.
4971         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
4972
4973 2010-04-19  Richard Guenther  <rguenther@suse.de>
4974
4975         PR tree-optimization/43796
4976         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
4977         from SCEV in the lattice.
4978         (vrp_visit_phi_node): Dump change.
4979
4980 2010-04-19  Richard Guenther  <rguenther@suse.de>
4981
4982         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
4983         * configure: Re-generated.
4984
4985 2010-04-19  Richard Guenther  <rguenther@suse.de>
4986
4987         PR tree-optimization/43783
4988         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
4989         constant ARRAY_REF operands two and three if possible.
4990
4991 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
4992
4993         PR target/43766
4994         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
4995
4996 2010-04-19  Jie Zhang  <jie@codesourcery.com>
4997
4998         PR target/43662
4999         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
5000
5001 2010-04-19  Ira Rosen  <irar@il.ibm.com>
5002
5003         PR tree-optimization/37027
5004         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
5005         and macro to access it.
5006         (vectorizable_reduction): Add argument.
5007         (vect_get_slp_defs): Likewise.
5008         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
5009         statements for possible use in SLP.
5010         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
5011         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
5012         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
5013         add new argument.
5014         (vectorizable_reduction): Likewise.
5015         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
5016         vect_get_slp_defs.
5017         (vectorizable_type_demotion, vectorizable_type_promotion,
5018         vectorizable_store): Likewise.
5019         (vect_analyze_stmt): Update call to vectorizable_reduction.
5020         (vect_transform_stmt): Likewise.
5021         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
5022         (vect_build_slp_tree): Fix indentation. Check that there are no loads
5023         from different interleaving chains in same node.
5024         (vect_slp_rearrange_stmts): New function.
5025         (vect_supported_load_permutation_p): Allow load permutations for
5026         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
5027         inside SLP nodes if necessary.
5028         (vect_analyze_slp_instance): Handle reductions.
5029         (vect_analyze_slp): Try to build SLP instances originating from groups
5030         of reductions.
5031         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
5032         (vect_get_constant_vectors): Create initial vectors for reductions
5033         according to reduction code. Add new argument.
5034         (vect_get_slp_defs): Add new argument, pass it to
5035         vect_get_constant_vectors.
5036         (vect_schedule_slp_instance): Remove SLP tree root statements.
5037
5038 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
5039
5040         * tree.h (ENUM_IS_SCOPED): Define.
5041         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
5042         for ENUM_IS_SCOPED enums.
5043
5044 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5045
5046         * fold-const.c (fold_comparison): Use ssizetype.
5047         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
5048         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
5049         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
5050         * tree-object-size.c (compute_object_sizes): Use size_type_node.
5051
5052         * tree.h (initialize_sizetypes): Remove parameter.
5053         (build_common_tree_nodes): Remove second parameter.
5054         * stor-layout.c (initialize_sizetypes): Remove parameter.
5055         Always create an unsigned type.
5056         (set_sizetype): Assert that the passed type is unsigned and simplify.
5057         * tree.c (build_common_tree_nodes): Remove second parameter.
5058         Adjust call to initialize_sizetypes.
5059         * c-decl.c (c_init_decl_processing): Remove second argument in call to
5060         build_common_tree_nodes.
5061
5062 2010-04-18  Matthias Klose  <doko@ubuntu.com>
5063
5064         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
5065
5066 2010-04-18  Ira Rosen  <irar@il.ibm.com>
5067
5068         PR tree-optimization/43771
5069         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
5070         load permutation doesn't have gaps.
5071
5072 2010-04-18  Jan Hubicka  <jh@suse.cz>
5073
5074         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
5075         (sse_prologue_save_insn expander): Use new pattern.
5076         (sse_prologue_save_insn1): New pattern and splitter.
5077         (sse_prologue_save_insn): Update to deal also with 64bit aligned
5078         blocks.
5079         * i386.c (setup_incoming_varargs_64): Do not compute jump
5080         destination here.
5081         (ix86_gimplify_va_arg): Update alignment needed.
5082         (ix86_local_alignment): Do not align all local arrays to 128bit.
5083
5084 2010-04-17  Jan Hubicka  <jh@suse.cz>
5085
5086         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
5087
5088 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5089
5090         * arm.md (negdi2): Remove redundant code to force values into a
5091         register.
5092
5093 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5094
5095         * arm/bpabi.S: Add EABI alignment attributes to objects.
5096         * arm/bpabi-v6m.S: Likewise.
5097         * arm/crti.asm: Likewise.
5098         * arm/crtn.asm: Likewise.
5099         * arm/lib1funcs.asm: Likewise.
5100         * arm/libunwind.S: Likewise.
5101
5102 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5103
5104         * arm-protos.h (tune_params): New structure.
5105         * arm.c (current_tune): New variable.
5106         (arm_constant_limit): Delete.
5107         (struct processors): Add pointer to the tune parameters.
5108         (arm_slowmul_tune): New tuning option.
5109         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
5110         (all_cores): Adjust to pick up the tuning model.
5111         (arm_constant_limit): New function.
5112         (arm_override_options): Select the appropriate tuning model.  Delete
5113         initialization of arm_const_limit.
5114         (arm_split_constant): Use the new constant-limit model.
5115         (arm_rtx_costs): Pick up the current tuning model.
5116         * arm.md (is_strongarm, is_xscale): Delete.
5117         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
5118         for Xscale variant architectures.
5119         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
5120
5121 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5122
5123         * config/arm/arm.c (arm_gen_constant): Remove unused variable
5124         can_shift.
5125         (arm_rtx_costs_1): Remove unused variable extra_cost.
5126         (arm_unwind_emit_set): Use variable offset.
5127         (thumb1_output_casesi): Remove unused variable flags.
5128
5129 2010-04-16  Jeff Law  <law@redhat.com>
5130
5131         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
5132         needing assignment rather than doing a two-phase assignment.  Remove
5133         unused variable 'm'.
5134
5135 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5136
5137         PR bootstrap/43767
5138         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
5139
5140 2010-04-16  Doug Kwan  <dougkwan@google.com>
5141
5142         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
5143         (next_operand_entry_id): New static variable.
5144         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
5145         (add_to_ops_vec): Assigned unique ID to operand entry.
5146         (struct oecount_s): New field ID.
5147         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
5148         (undistribute_ops_list): Assign unique IDs to oecounts.
5149         (init_reassoc): reset next_operand_entry_id.
5150
5151 2010-04-16  Doug Kwan  <dougkwan@google.com>
5152
5153         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
5154         missing left parenthesis.
5155
5156 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
5157
5158         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
5159         *btdi_rex64 using SWI48 mode iterator.
5160         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
5161         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
5162         *jcc_btdi_mask_rex64.
5163
5164 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
5165
5166         * double-int.h (tree_to_double_int): Convert to macro.
5167         * double-int.c (tree_to_double_int): Remove.
5168
5169 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5170
5171         PR debug/43762
5172         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
5173         with want_address 2 and in case a single element list might be
5174         possible, call it again with want_address 0.
5175
5176 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
5177
5178         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
5179         case 'W' print operands for HI mode.
5180         * config/h8300/h8300.h (Y0, Y2) : New constraints.
5181         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
5182         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
5183         * config/h8300/predicate.md (bit_register_indirect_operand): New.
5184
5185         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
5186
5187         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
5188         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
5189         #xx:3 and #xx:4 mode.
5190
5191         * config/h8300/h8300.md (inverted load with HImode dest): Add
5192         support for H8300SX.
5193
5194         * config/h8300/predicate.md (bit_operand): Allow immediate values that
5195         satisfy 'U' constraint.
5196
5197 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5198
5199         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
5200         * configure: Regenerate.
5201         * config.in: Regenerate.
5202         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
5203         works.
5204
5205 2010-04-16  Richard Guenther  <rguenther@suse.de>
5206
5207         * tree.h (struct tree_decl_minimal): Move pt_uid ...
5208         (struct tree_decl_common): ... here.
5209         (DECL_PT_UID): Adjust.
5210         (SET_DECL_PT_UID): Likewise.
5211         (DECL_PT_UID_SET_P): Likewise.
5212
5213 2010-04-16  Richard Guenther  <rguenther@suse.de>
5214
5215         PR tree-optimization/43572
5216         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
5217         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
5218         * tree-flow.h (is_call_clobbered): Remove.
5219         * tree-flow-inline.h (is_call_clobbered): Likewise.
5220         * tree-dfa.c (dump_variable): Do not dump call clobber state.
5221         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
5222         (execute_return_slot_opt): Adjust.
5223         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
5224         check for call clobbered vars here.
5225         (find_tail_calls): Move tailcall verification to the
5226         proper place.
5227
5228 2010-04-16  Diego Novillo  <dnovillo@google.com>
5229
5230         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
5231
5232 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5233
5234         PR target/40603
5235         * config/arm/arm.md (cbranchqi4): New pattern.
5236         * config/arm/predicates.md (const0_operand,
5237         cbranchqi4_comparison_operator): New predicates.
5238
5239 2010-04-16  Richard Guenther  <rguenther@suse.de>
5240
5241         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
5242         (dump_gimple_stmt): Likewise.
5243
5244 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5245
5246         * recog.h (struct recog_data): New field is_operator.
5247         (struct insn_operand_data): New field is_operator.
5248         * recog.c (extract_insn): Set recog_data.is_operator.
5249         * genoutput.c (output_operand_data): Emit code to set the
5250         is_operator field.
5251         * reload.c (find_reloads): Use it rather than testing for an
5252         empty constraint string.
5253
5254         PR target/41514
5255         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
5256         If the previous insn is a cbranchsi4_insn with the same arguments,
5257         omit the compare instruction.
5258
5259         * config/arm/arm.md (addsi3_cbranch): If destination is a high
5260         register, inputs must be low registers and we need a low register
5261         scratch.  Handle alternative 2 like alternative 3.
5262
5263 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5264
5265         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
5266         don't call get_addr on both.  If one expression is a VALUE and
5267         the other a REG, check VALUE's locs if the REG isn't among them.
5268
5269 2010-04-16  Christian Bruel  <christian.bruel@st.com>
5270
5271         * config/sh/sh.h (sh_frame_pointer_required): New function.
5272         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
5273         (flag_omit_frame_pointer) Set.
5274         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
5275         (rounded_frame_size): Adjust size with outgoing_args_size.
5276         (sh_set_return_address): Must return from stack pointer.
5277         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
5278         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
5279         (ACCUMULATE_OUTGOING_ARGS): Define.
5280         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
5281         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
5282
5283 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5284
5285         PR target/43471
5286         * config/sh/sh.c (sh_legitimize_reload_address): Use
5287         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
5288         Remove a unneeded check for offset_base.
5289
5290 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
5291
5292         * configure: Regenerated.
5293
5294 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5295
5296         * config/s390/s390.c (s390_call_save_register_used): Switch back
5297         to HARD_REGNO_NREGS.
5298
5299 2010-04-15  Richard Guenther  <rguenther@suse.de>
5300
5301         * alias.c (alias_set_subset_of): Handle alias-set zero
5302         child properly.
5303
5304 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
5305             Julian Brown  <julian@codesourcery.com>
5306
5307         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
5308         alternatives according to use of high and low regs.
5309         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
5310         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
5311         optimizing for size on Thumb-2.
5312
5313 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
5314
5315         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
5316
5317 2010-04-15  Richard Guenther  <rguenther@suse.de>
5318
5319         * tree-ssa-structalias.c (struct variable_info): Add
5320         is_fn_info flag.
5321         (new_var_info): Initialize it.
5322         (dump_constraints): Support printing last added constraints.
5323         (debug_constraints): Adjust.
5324         (dump_constraint_graph): Likewise.
5325         (make_heapvar_for): Check for NULL cfun.
5326         (get_function_part_constraint): New function.
5327         (get_fi_for_callee): Likewise.
5328         (find_func_aliases): Properly implement IPA PTA constraints.
5329         (process_ipa_clobber): New function.
5330         (find_func_clobbers): Likewise.
5331         (insert_into_field_list_sorted): Remove.
5332         (create_function_info_for): Properly allocate vars for IPA mode.
5333         Do not use insert_into_field_list_sorted.
5334         (create_variable_info_for): Properly generate constraints for
5335         global vars in IPA mode.
5336         (dump_solution_for_var): Always dump the solution.
5337         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
5338         (find_what_var_points_to): Adjust.
5339         (pt_solution_set): Change.
5340         (pt_solution_ior_into): New function.
5341         (pt_solution_empty_p): Export.
5342         (pt_solution_includes_global): Adjust.
5343         (pt_solution_includes_1): Likewise.
5344         (pt_solutions_intersect_1): Likewise.
5345         (dump_sa_points_to_info): Check some invariants.
5346         (solve_constraints): Move constraint dumping ...
5347         (compute_points_to_sets): ... here.
5348         (ipa_pta_execute): ... and here.
5349         (compute_may_aliases): Do not re-compute points-to info
5350         locally if IPA info is available.
5351         (ipa_escaped_pt): New global var.
5352         (ipa_pta_execute): Properly implement IPA PTA.
5353         * tree-into-ssa.c (dump_decl_set): Support dumping
5354         decls not in referenced-vars.
5355         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
5356         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
5357         (dump_points_to_solution): Likewise.
5358         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
5359         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
5360         (remap_gimple_stmt): Reset call clobber/use information if necessary.
5361         (copy_decl_to_var): Copy DECL_PT_UID.
5362         (copy_result_decl_to_var): Likewise.
5363         * tree.c (make_node_stat): Initialize DECL_PT_UID.
5364         (copy_node_stat): Copy it.
5365         * tree.h (DECL_PT_UID): New macro.
5366         (SET_DECL_PT_UID): Likewise.
5367         (DECL_PT_UID_SET_P): Likewise.
5368         (struct tree_decl_minimal): Add pt_uid member.
5369         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
5370         (pt_solution_empty_p): Declare.
5371         (pt_solution_set): Adjust.
5372         (ipa_escaped_pt): Declare.
5373         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
5374         * gimple-pretty-print.c (pp_points_to_solution): New function.
5375         (dump_gimple_call): Dump call clobber/use information.
5376         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
5377         * tree-pass.h (TDF_ALIAS): New dump option.
5378         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
5379         * doc/invoke.texi (-fipa-pta): Update documentation.
5380
5381 2010-04-15  Richard Guenther  <rguenther@suse.de>
5382
5383         * Makefile.in (OBJS-common): Add gimple-fold.o.
5384         (gimple-fold.o): New rule.
5385         * tree.h (maybe_fold_offset_to_reference,
5386         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
5387         prototypes ...
5388         * gimple.h: ... here.
5389         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
5390         may_propagate_address_into_dereference): Move prototypes ...
5391         * gimple.h: ... here.
5392         * tree-ssa-ccp.c (get_symbol_constant_value,
5393         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
5394         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
5395         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
5396         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
5397         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
5398         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
5399         gimplify_and_update_call_from_tree): Move ...
5400         * gimple-fold.c: ... here.  New file.
5401         (ccp_fold_builtin): Rename to ...
5402         (gimple_fold_builtin): ... this.
5403         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
5404
5405 2010-04-15  Richard Guenther  <rguenther@suse.de>
5406
5407         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
5408         fit_double_type, force_fit_type_double, add_double_with_sign,
5409         neg_double, mul_double_with_sign, lshift_double, rshift_double,
5410         lrotate_double, rrotate_double, div_and_round_double): Move ...
5411         * double-int.c: ... here.
5412         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
5413         add_double, neg_double, mul_double_with_sign, mul_double,
5414         lshift_double, rshift_double, lrotate_double, rrotate_double,
5415         div_and_round_double): Move prototypes ...
5416         * double-int.h: ... here.
5417
5418 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
5419
5420         PR target/43742
5421         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
5422         matching constraints to ensure inputs match the output.
5423
5424 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5425
5426         PR target/43742
5427         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
5428         in an input-only operand.
5429
5430 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
5431
5432         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
5433         (double_int_not, double_int_lshift, double_int_rshift): Declare.
5434         (double_int_negative_p): Convert to static inline function.
5435         * double-int.c (double_int_lshift, double_int_lshift): New functions.
5436         (double_int_negative_p): Remove.
5437         * tree.h (lshift_double, rshift_double):
5438         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
5439         * fold-const.c (fold_convert_const_int_from_real,
5440         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
5441         (lshift_double): Change type of arith argument to bool.
5442         (rshift_double): Change type of arith argument to bool. Correct
5443         comment.
5444         * expmed.c (mask_rtx, lshift_value): (Ditto.).
5445
5446 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
5447
5448         PR target/21803
5449         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
5450         at the start and end of the then/else blocks, and omit them from the
5451         conversion.
5452         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
5453         argument; all callers changed.  Pass zero to old_insns_match_p instead.
5454         (flow_find_head_matching_sequence): New function.
5455         (old_insns_match_p): Check REG_EH_REGION notes for calls.
5456         * basic-block.h (flow_find_cross_jump,
5457         flow_find_head_matching_sequence): Declare functions.
5458
5459 2010-04-14  Jason Merrill  <jason@redhat.com>
5460
5461         PR c++/36625
5462         * c-common.c (attribute_takes_identifier_p): New fn.
5463         * c-common.h: Declare it.
5464
5465 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5466
5467         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
5468         splitter condition.
5469         (*udivmod<mode>4): Ditto.
5470
5471 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5472
5473         * config/i386/i386.md (maxmin_int): Rename code attribute from
5474         maxminiprefix and update all users.
5475         (maxmin_float): Ditto from maxminfprefix.
5476         (logic): Ditto from logicprefix.
5477         (absneg_mnemonic): Ditto from absnegprefix.
5478         * config/i386/mmx.md: Update all users of maxminiprefix,
5479         maxminfprefix and logicprefix for rename.
5480         * config/i386/sse.md: Ditto.
5481         * config/i386/sync.md (sync_<code><mode>): Update for
5482         logicprefix rename.
5483
5484 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5485
5486         PR 42966
5487         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
5488         warnings converted to errors.
5489
5490 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5491
5492         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
5493         used insn_type variable.
5494         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
5495         to avoid set-but-not-used warning.
5496
5497 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5498
5499         * df-core.c (df_ref_debug): Change format string placeholder
5500         from 0x%x to %#x.
5501         * dwarf2asm.c (dw2_asm_output_data_raw,
5502         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
5503         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
5504         * dwarf2out.c (output_cfi, output_cfi_directive,
5505         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
5506         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
5507         Ditto.
5508         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
5509         * print-rtl.c (print_rtx): Ditto.
5510
5511 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
5512
5513         PR middle-end/42694
5514         * builtins.c (expand_builtin_pow_root): New function to expand pow
5515         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
5516         series of sqrt and cbrt calls under -ffast-math.
5517         (expand_builtin_pow): Call it.
5518
5519 2010-04-14  Michael Matz  <matz@suse.de>
5520
5521         PR tree-optimization/42963
5522         * tree-cfg.c (touched_switch_bbs): New static variable.
5523         (group_case_labels_stmt): New function broken out from ...
5524         (group_case_labels): ... here, use the above.
5525         (start_recording_case_labels): Allocate touched_switch_bbs.
5526         (end_recording_case_labels): Deallocate it, call
5527         group_case_labels_stmt.
5528         (gimple_redirect_edge_and_branch): Remember index of affected BB.
5529
5530 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5531
5532         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
5533         from insn template.
5534
5535 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5536
5537         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
5538
5539 2010-04-13  Jan Hubicka  <jh@suse.cz>
5540
5541         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
5542         of optimized out static functions.
5543         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
5544         cost computation.  Also sanity check for overflows.
5545         (update_caller_keys): Update cgraph_edge_badness call; properly
5546         update fibheap and sanity check that it is up to date.
5547         (add_new_edges_to_heap): Update cgraph_edge_badness.
5548         (cgraph_decide_inlining_of_small_function): Likewise;
5549         add sanity checking that badness in heap is up to date;
5550         improve dumping of reason; Update badness of calls to the
5551         offline copy of function currently inlined; dump badness
5552         of functions not inlined because of unit growth limits.
5553
5554 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
5555
5556         PR middle-end/32628
5557         * c-common.c (pointer_int_sum): Disregard overflow that occured only
5558         because of sign-extension change when converting to sizetype here...
5559         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
5560
5561         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
5562         the folding to constants.  Remove redundant final conversion.
5563         (fold_binary) <associate>: Do not associate if the re-association of
5564         constants alone overflows.
5565         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
5566         to the end of the list.
5567         (multiple_of_p) <COND_EXPR>: New case.
5568
5569 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5570
5571         * opt-functions.awk (opt_sanitized_name): New.
5572         (opt_enum): New.
5573         * optc-gen.awk: Use it
5574         * opth-gen.awk: Use it.
5575
5576 2010-04-13  Martin Jambor  <mjambor@suse.cz>
5577
5578         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
5579         (sra_modify_assign): Delete stmts loading dead data even if racc has no
5580         children.  Call replace_uses_with_default_def_ssa_name to handle
5581         SSA_NAES on lhs.
5582
5583 2010-04-13  Michael Matz  <matz@suse.de>
5584
5585         PR middle-end/43730
5586         * builtins.c (expand_builtin_interclass_mathfn): Also create
5587         a register if the predicate doesn't match.
5588
5589 2010-04-13  Diego Novillo  <dnovillo@google.com>
5590
5591         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
5592         * c-pch.c: Include timevar.h.
5593         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
5594         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
5595         * ggc-common.c: Include timevar.h.
5596         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
5597         * timevar.def (TV_PCH_SAVE): Define.
5598         (TV_PCH_CPP_SAVE): Define.
5599         (TV_PCH_PTR_REALLOC): Define.
5600         (TV_PCH_PTR_SORT): Define.
5601         (TV_PCH_RESTORE): Define.
5602         (TV_PCH_CPP_RESTORE): Define.
5603
5604 2010-04-13  Michael Matz  <matz@suse.de>
5605
5606         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
5607         into MINUS_EXPRs.
5608         (can_reassociate_p): New function.
5609         (break_up_subtract_bb, reassociate_bb): Use it.
5610
5611 2010-04-13  Richard Guenther  <rguenther@suse.de>
5612
5613         PR bootstrap/43737
5614         * builtins.c (c_readstr): Fix assert.
5615
5616 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
5617
5618         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
5619         when generating cltd insn.
5620
5621         (*ashl<mode>3_1): Remove special handling for register operand 2.
5622         (*ashlsi3_1_zext): Ditto.
5623         (*ashlhi3_1): Ditto.
5624         (*ashlhi3_1_lea): Ditto.
5625         (*ashlqi3_1): Ditto.
5626         (*ashlqi3_1_lea): Ditto.
5627         (*<shiftrt_insn><mode>3_1): Ditto.
5628         (*<shiftrt_insn>si3_1_zext): Ditto.
5629         (*<shiftrt_insn>qi3_1_slp): Ditto.
5630         (*<rotate_insn><mode>3_1): Ditto.
5631         (*<rotate_insn>si3_1_zext): Ditto.
5632         (*<rotate_insn>qi3_1_slp): Ditto.
5633
5634 2010-04-13  Richard Guenther  <rguenther@suse.de>
5635
5636         * tree-ssa-structalias.c (callused_id): Remove.
5637         (call_stmt_vars): New.
5638         (get_call_vi): Likewise.
5639         (lookup_call_use_vi): Likewise.
5640         (lookup_call_clobber_vi): Likewise.
5641         (get_call_use_vi): Likewise.
5642         (get_call_clobber_vi): Likewise.
5643         (make_transitive_closure_constraints): Likewise.
5644         (handle_const_call): Adjust to do per-call call-used handling.
5645         (handle_pure_call): Likewise.
5646         (find_what_var_points_to): Remove general callused handling.
5647         (init_base_vars): Likewise.
5648         (init_alias_vars): Initialize call_stmt_vars.
5649         (compute_points_to_sets): Process call-used and call-clobbered
5650         vars for call statements.
5651         (delete_points_to_sets): Free call_stmt_vars.
5652
5653 2010-04-13  Richard Guenther  <rguenther@suse.de>
5654
5655         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
5656         Only add RW dependence for dependence distance zero.
5657         Adjust maximal vectorization factor according to dependences.
5658         Move alignment handling ...
5659         (vect_find_same_alignment_drs): ... here.  New function.
5660         (vect_analyze_data_ref_dependences): Adjust.
5661         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
5662         (vect_analyze_data_refs): Adjust minimal vectorization factor
5663         according to data references.
5664         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
5665         dependences before determining the vectorization factor.
5666         Analyze alignment after determining the vectorization factor.
5667         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
5668         dependences before alignment.
5669         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
5670         Adjust prototype.
5671         (vect_analyze_data_refs): Likewise.
5672         (MAX_VECTORIZATION_FACTOR): New define.
5673
5674 2010-04-13  Duncan Sands  <baldrick@free.fr>
5675
5676         * except.h (lang_eh_type_covers): Remove.
5677         * except.c (lang_eh_type_covers): Likewise.
5678
5679 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5680             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5681
5682         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
5683         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
5684         UNITS_PER_LONG where it is ABI relevant.
5685         (s390_return_addr_rtx): Likewise.
5686         (s390_back_chain_rtx): Likewise.
5687         (s390_frame_area): Likewise.
5688         (s390_frame_info): Likewise.
5689         (s390_initial_elimination_offset): Likewise.
5690         (save_gprs): Likewise.
5691         (s390_emit_prologue): Likewise.
5692         (s390_emit_epilogue): Likewise.
5693         (s390_function_arg_advance): Likewise.
5694         (s390_function_arg): Likewise.
5695         (s390_va_start): Likewise.
5696         (s390_gimplify_va_arg): Likewise.
5697         (s390_function_profiler): Likewise.
5698         (s390_optimize_prologue): Likewise.
5699         (s390_rtx_costs): Likewise.
5700         (s390_secondary_reload): Likewise.
5701         (s390_promote_function_mode): Likewise.
5702         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
5703         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
5704         registers available.
5705         (s390_unwind_word_mode): New function.
5706         (s390_function_value): Split 64 bit values into register pair if
5707         used as return value.
5708         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
5709         function call parameters.  Handle parallels.
5710         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
5711         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
5712         (DWARF_CIE_DATA_ALIGNMENT): New macro.
5713         (s390_expand_setmem): Remove unused variable src_addr.
5714         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
5715         deal with 64 bit registers.
5716         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
5717         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
5718         (UNITS_PER_LONG): New macro.
5719         * libjava/include/s390-signal.h: Define extended ucontext
5720         structure containing the upper halfs of the 64 bit registers.
5721
5722 2010-04-13  Simon Baldwin  <simonb@google.com>
5723
5724         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
5725
5726 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
5727
5728         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
5729         rvalue on the RHS if the LHS is of a non-renamable type.
5730         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
5731
5732 2010-04-13  Matthias Klose  <doko@ubuntu.com>
5733
5734         * gcc.c (cc1_options): Handle -iplugindir before processing
5735         the cc1 spec. Only add -iplugindir once.
5736         (cpp_unique_options): Add -iplugindir option if -fplugin* options
5737         found.
5738         * common.opt (iplugindir): Remove `Separate' property, initialize.
5739         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
5740         option.
5741         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
5742         (distclean): Remove plugin dir.
5743         * doc/invoke.texi: Document -iplugindir.
5744
5745 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
5746
5747         * doc/plugins.texi (Loading Plugins): Document short
5748         -fplugin=foo option.
5749         (Plugin API): Mention default_plugin_dir_name function.
5750
5751         * gcc.c (find_file_spec_function): Add new declaration.
5752         (static_spec_func): Use it for "find-file".
5753         (find_file_spec_function): Add new function.
5754         (cc1_options): Add -iplugindir option if -fplugin* options found.
5755
5756         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
5757
5758         * plugin.c (add_new_plugin): Updated comment, and handle short
5759         plugin name.
5760         (default_plugin_dir_name): Added new function.
5761
5762         * common.opt (iplugindir): New option to set the plugin directory.
5763
5764 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
5765
5766         * config/i386/i386.md (any_rotate): New code iterator.
5767         (rotate_insn): New code attribute.
5768         (rotate): Ditto.
5769         (SWIM124): New mode iterator.
5770         (<rotate_insn>ti3): New expander.
5771         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
5772         any_rotate code iterator.
5773         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
5774         using any_rotate code iterator and SWIM124 mode iterator.
5775         (ix86_rotlti3): New insn_and_split pattern.
5776         (ix86_rotrti3): Ditto.
5777         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
5778         ix86_rotl{di,ti}3 patterns.
5779         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
5780         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
5781         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
5782         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
5783         code iterator and SWI mode iterator.
5784         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
5785         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
5786         code iterator.
5787         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
5788         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
5789         (bswap rotatert splitter): Add splitter.
5790         (bswap splitter): Macroize splitter using any_rotate code iterator.
5791         Add insn predicate to split only for TARGET_USE_XCHGB or when
5792         optimizing function for size.
5793
5794 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5795
5796         * config/pa/pa.c (emit_move_sequence): Remove use of
5797         deleted variable flag_argument_noalias.
5798
5799 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5800
5801         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
5802         configurations.
5803         Add to unsupported targets list.
5804         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
5805         sparc*-sun-solaris2.[567]* from target lists.
5806         * configure: Regenerate.
5807         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
5808         removal.
5809         Remove Solaris 7 patch references.
5810         (Specific, sparc-sun-solaris2.7): Removed.
5811         (sparc-sun-solaris2*): Update Solaris 7 example.
5812         (sparc64-*-solaris2*): Likewise.
5813
5814 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5815
5816         * config.build (alpha*-dec-osf4*): Remove.
5817         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
5818         of obsolete configurations.
5819         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
5820         support.
5821         * config/alpha/t-osf4: Renamed to ...
5822         * config/alpha/t-osf5: ... this.
5823         * config/alpha/osf.h: Renamed to ...
5824         * config/alpha/osf5.h: ... this.
5825         Merged old osf5.h contents.
5826         Update comments.
5827         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
5828         (EXTRA_SPECS): Removed.
5829         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
5830         reflect removal of Tru64 UNIX V4.0/V5.0 support.
5831         Document that.
5832
5833 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5834
5835         * doc/contrib.texi (Contributors, Rainer Orth): Update.
5836
5837 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
5838
5839         PR/43702
5840         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
5841         __thiscall convention.
5842
5843 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5844
5845         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
5846         orig_base.
5847         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
5848
5849 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5850
5851         * function.c (assign_parms_initialize_all): Add unused attribute
5852         to fntype.
5853
5854 2010-04-12  Richard Guenther  <rguenther@suse.de>
5855
5856         * gsstruct.def (GSS_CALL): New.
5857         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
5858         * gimple.h: Include tree-ssa-alias.h.
5859         (struct gimple_statement_call): New.
5860         (union gimple_statement_struct_d): Add gimple_call member.
5861         (gimple_call_reset_alias_info): Declare.
5862         (gimple_call_use_set): New function.
5863         (gimple_call_clobber_set): Likewise.
5864         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
5865         * gimple.c (gimple_call_reset_alias_info): New function.
5866         (gimple_build_call_1): Call it.
5867         * lto-streamer-in.c (input_gimple_stmt): Likewise.
5868         * tree-inline.c (remap_gimple_stmt): Likewise.
5869         (expand_call_inline): Remove callused handling.
5870         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
5871         * tree-dfa.c (dump_variable): Likewise.
5872         * tree-parloops.c (parallelize_loops): Likewise.
5873         * tree-ssa.c (init_tree_ssa): Likewise.
5874         (delete_tree_ssa): Likewise.
5875         * tree-flow-inline.h (is_call_used): Remove.
5876         * tree-flow.h (struct gimple_df): Remove callused member.
5877         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
5878         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
5879         (ref_maybe_used_by_call_p_1): Simplify.
5880         (call_may_clobber_ref_p_1): Likewise.
5881         * tree-ssa-structalias.c (compute_points_to_sets): Set
5882         the call stmt used and clobbered sets.
5883         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
5884         (find_tail_calls): Verify the tail call.
5885
5886 2010-04-12  Richard Guenther  <rguenther@suse.de>
5887
5888         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
5889         single-iteration always-inline inlining.
5890         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
5891         (cgraph_decide_inlining): Do not handle always-inline specially.
5892         (try_inline): Remove always-inline cycle detection special case.
5893         Do not recurse on always-inlines.
5894         (cgraph_early_inlining): Do not iterate if not optimizing.
5895         (cgraph_gate_early_inlining): remove.
5896         (pass_early_inline): Run unconditionally.
5897         (gate_cgraph_decide_inlining): New function.
5898         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
5899         not inlining or optimizing.
5900         (cgraph_decide_inlining_of_small_functions): Also consider
5901         always-inline functions.
5902         (cgraph_default_inline_p): Return true for nodes which should
5903         disregard inline limits.
5904         (estimate_function_body_sizes): Assume zero size and time for
5905         nodes which are marked as disregarding inline limits.
5906         (cgraph_decide_recursive_inlining): Do not perform recursive
5907         inlining on always-inline nodes.
5908
5909 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
5910
5911         PR bootstrap/43699
5912         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
5913         for exprs satisfying handled_component_p.
5914
5915 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
5916
5917         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
5918         non-constant aggregate elements.
5919
5920         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
5921         is a real initialization.
5922
5923 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
5924
5925         PR c/36774
5926         * c-decl.c (start_function): Move forward check for nested function.
5927
5928 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5929
5930         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
5931         * config/sh/sh.c: Include reload.h.
5932         (sh_legitimize_reload_address): New.
5933         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
5934         sh_legitimize_reload_address.
5935
5936 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
5937
5938         * config/sh/sh.md (*movqi_pop): New insn pattern.
5939         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
5940
5941 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
5942
5943         * config/i386/i386.md (any_shiftrt): New code iterator.
5944         (shiftrt_insn): New code attribute.
5945         (shiftrt): Ditto.
5946         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
5947         using any_shiftrt code iterator.
5948         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
5949         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
5950         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
5951         pattern from corresponding peephole2 patterns.
5952         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
5953         using any_shiftrt code iterator.
5954         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
5955         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
5956         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
5957         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
5958         *{ashr,lshr}<mode>3_cmp_zext.
5959         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
5960
5961 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
5962
5963         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
5964         scratch register.
5965         (*lshr<mode>3_cconly): Ditto.
5966
5967 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
5968
5969         * config/i386/i386.md (lshr<mode>3): Macroize expander from
5970         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
5971         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
5972         pattern from *lshr{di,ti}3_1 and corresponding splitters using
5973         DWI mode iterator.
5974         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
5975         from corresponding peephole2 patterns.
5976         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
5977         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
5978         and *lshrdi3_1_rex64 using SWI mode iterator.
5979         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
5980         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
5981         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
5982         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
5983         and *lshrdi3_cmp_rex64 using SWI mode iterator.
5984         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
5985         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
5986         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
5987         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
5988         SWI mode iterator.
5989
5990 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
5991
5992         * config/i386/i386.md (ashr<mode>3): Macroize expander from
5993         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
5994         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
5995         pattern from *ashr{di,ti}3_1 and corresponding splitters using
5996         DWI mode iterator.
5997         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
5998         from corresponding peephole2 patterns.
5999         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
6000         (ashrsi3_cvt): Rename from ashrsi3_31.
6001         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
6002         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
6003         and x86_64_shift_adj_3 using SWI48 mode iterator.
6004         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
6005         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
6006         and *ashrdi3_1_rex64 using SWI mode iterator.
6007         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
6008         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
6009         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
6010         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
6011         and *ashrdi3_cmp_rex64 using SWI mode iterator.
6012         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
6013         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
6014         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
6015         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
6016         SWI mode iterator.
6017         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
6018         * config/i386/i386.c (ix86_split_ashr): Update for renamed
6019         x86_shift<mode>_adj_3 expanders.
6020
6021 2010-04-10  Wei Guozhi  <carrot@google.com>
6022
6023         PR target/42601
6024         * config/arm/arm.c (arm_pic_static_addr): New function.
6025         (legitimize_pic_address): Call arm_pic_static_addr when it detects
6026         a static symbol.
6027         (arm_output_addr_const_extra): Output expression for new pattern.
6028         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
6029
6030 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
6031
6032         * ira-costs.c (record_reg_classes): Ignore alternatives that are
6033         not enabled.
6034
6035         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
6036         * web.c: Include "insn-config.h" and "recog.h".
6037         (union_match_dups): New function.
6038         (web_main): Call it.
6039         (union_defs): Don't try to recognize match_dups.
6040
6041         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
6042         if doing so would replace the entire pattern.
6043
6044 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
6045
6046         PR target/43707
6047         PR target/43709
6048         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
6049         and splitter pattern.  Change splitter operand 1 predicate to
6050         nonmemory_operand.
6051
6052 2010-04-09  Martin Jambor  <mjambor@suse.cz>
6053
6054         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
6055         lattices are addresses of CONST_DECLs with the same initial value.
6056         (ipcp_print_all_lattices): Print values of CONST_DECLs.
6057         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
6058
6059 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
6060             Bernd Schmidt  <bernds@codesourcery.com>
6061
6062         * loop-invariant.c (replace_uses): New static function.
6063         (move_invariant_reg): Use it to ensure we can replace the uses.
6064
6065 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
6066
6067         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
6068         function template.
6069         (picochip_override_options): Enable section anchors only above -O1.
6070         (picochip_reorg): Fixed a couple of build warnings.
6071
6072 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6073
6074         * configure.ac (plugin -rdynamic test): Log result.
6075         * configure: Regenerate.
6076         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
6077         (RDYNAMIC_SPEC): Define.
6078         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
6079
6080 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6081
6082         * configure.ac: Determine Sun ld version numbers.
6083         (comdat_group): Restrict GNU ld version checks to gld.
6084         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
6085         (enable_comdat): Support --enable-comdat.
6086         * configure: Regenerate.
6087         * doc/install.texi (Configuration): Document --enable-comdat.
6088
6089 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6090
6091         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
6092         * config/sol2-gld.h: ... here.
6093         * config.gcc (sparc*-*-solaris2*): Reflect this.
6094         (i[34567]86-*-solaris2*): Use it.
6095
6096 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
6097
6098         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
6099         setup_clocks_p.
6100         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
6101
6102 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6103
6104         PR 42965
6105         * diagnostic.c (diagnostic_initialize): Initialize
6106         some_warnings_are_errors.
6107         (diagnostic_finish): New.
6108         (diagnostic_action_after_output): Call it before exiting.
6109         (diagnostic_report_diagnostic): Do not print message here. Set
6110         some_warnings_are_errors.
6111         * diagnostic.h (diagnostic_context): Delete
6112         issue_warnings_are_errors_message. Add some_warnings_are_errors.
6113         (diagnostic_finish): Declare.
6114         * toplev.c (toplev_main): Call it before exit.
6115
6116 2010-04-09  Jason Merrill  <jason@redhat.com>
6117
6118         PR c++/42623
6119         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
6120         for incomplete type.
6121
6122         PR c++/41788
6123         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
6124         based on a warning flag.
6125
6126 2010-04-09  Richard Guenther  <rguenther@suse.de>
6127
6128         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
6129
6130 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
6131
6132         PR bootstrap/43684
6133         * varasm.c (default_assemble_visibility): Wrap vars that are
6134         set, but unused, by targets without GAS.
6135         * config/rs6000/rs6000.c (paired_emit_vector_compare):
6136         Remove set, but unused, vars.
6137         (rs6000_legitimize_tls_address): Likewise.
6138         (altivec_expand_dst_builtin): Likewise.
6139         * config/darwin.c (machopic_classify_symbol): Likewise.
6140         (machopic_indirection_name): Likewise.
6141
6142 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
6143
6144         * config/i386/i386.md (DWI): New mode iterator.
6145         (S): New mode attribute.
6146         (shift_operand): Ditto.
6147         (shift_immediate_operand): Ditto.
6148         (ashl_input_operand): Ditto.
6149         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
6150         using SDWIM mode iterator.
6151         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6152         pattern from *ashl{di,ti}3_1 and corresponding splitters using
6153         DWI mode iterator.
6154         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
6155         from corresponding peephole2 patterns.
6156         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
6157         and x86_64_shift_adj_1 using SWI48 mode iterator.
6158         (x86_shift<mode>_adj_2): Ditto.
6159         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
6160         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
6161         using SWI48 mode iterator.
6162         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
6163         *ashldi3_cmp_rex64 using SWI mode iterator.
6164         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
6165         *ashldi3_cconly_rex64 using SWI mode iterator.
6166         * config/i386/i386.c (ix86_split_ashl): Update for renamed
6167         x86_shift<mode>_adj_{1,2}.
6168         (ix86_split_ashr): Ditto.
6169         (ix86_split_lshr): Ditto.
6170
6171 2010-04-09  Richard Guenther  <rguenther@suse.de>
6172
6173         * target.h (builtin_conversion): Pass in input and output types.
6174         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
6175         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
6176         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
6177         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
6178
6179         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
6180         Handle AVX modes.
6181         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
6182
6183 2010-04-09  Richard Guenther  <rguenther@suse.de>
6184
6185         PR target/43152
6186         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
6187
6188 2010-04-09  Richard Guenther  <rguenther@suse.de>
6189
6190         * tree-vectorizer.h (struct _stmt_vec_info): Document
6191         that vectype is the type of the LHS.
6192         (supportable_widening_operation, supportable_narrowing_operation):
6193         Get both input and output vector types as arguments.
6194         (vect_is_simple_use_1): Declare.
6195         (get_same_sized_vectype): Likewise.
6196         * tree-vect-loop.c (vect_determine_vectorization_factor):
6197         Set STMT_VINFO_VECTYPE to the vector type of the def.
6198         (vectorizable_reduction): Adjust.
6199         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
6200         Adjust.  Specify the output vector type.
6201         (vect_pattern_recog_1): Adjust.
6202         * tree-vect-stmts.c (get_same_sized_vectype): New function.
6203         (vectorizable_call): Adjust.
6204         (vectorizable_conversion): Likewise.
6205         (vectorizable_operation): Likewise.
6206         (vectorizable_type_demotion): Likewise.
6207         (vectorizable_type_promotion): Likewise.
6208         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
6209         the def.
6210         (vect_is_simple_use_1): New function.
6211         (supportable_widening_operation): Get both input and output
6212         vector types.
6213         (supportable_narrowing_operation): Likewise.
6214         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
6215
6216 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
6217
6218         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
6219         __thiscall and _thiscall as predefined macros.
6220         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
6221         thiscall attribute handling.
6222         (ix86_comp_type_attributes): Likewise.
6223         (ix86_function_regparm): Likewise.
6224         (ix86_return_pops_args): Likewise.
6225         (init_cumulative_args): Likewise.
6226         (find_drap_reg): Likewise.
6227         (ix86_static_chain): Likewise.
6228         (x86_this_parameter): Likewise.
6229         (x86_output_mi_thunk): Likewise.
6230         (ix86_attribute_table): Add description for thiscall attribute.
6231         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
6232         * doc/extend.texi: Add documentation for thiscall.
6233
6234 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6235
6236         PR c++/28584
6237         * c.opt (Wint-to-pointer-cast): Available in C++.
6238         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
6239
6240 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
6241
6242         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
6243         * calls.c (expand_call): Pass the function type to aggregate_value_p.
6244         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
6245         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
6246         function type instead.  Reorder and simplify checks.
6247
6248         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
6249
6250 2010-04-08  Jing Yu  <jingyu@google.com>
6251             Zdenek Dvorak  <ook@ucw.cz>
6252
6253         PR tree-optimization/42720
6254         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
6255         loop unswitch conditions here from ...
6256         (tree_unswitch_single_loop): ... here.
6257
6258 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
6259
6260         * tree-if-conv.c: Fix comments and simplify logic.
6261
6262 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
6263
6264         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
6265         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
6266         (main_tree_if_conversion): Update call to tree_if_conversion.
6267
6268 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6269
6270         PR 42485
6271         * doc/invoke.texi (-b,-V): Delete.
6272         * doc/tm.texi: Do not mention -b.
6273         * gcc.c (display_help): Delete -b and -V.
6274         (process_command): Delete -b and -V.
6275         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
6276
6277 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
6278             Wolfgang Gellerich  <gellerich@de.ibm.com>
6279
6280         Implement target hook for loop unrolling
6281         * target.h (loop_unroll_adjust): Add a new target hook function.
6282         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
6283         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
6284         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
6285         (s390_loop_unroll_adjust): Implement the new target hook for s390.
6286         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
6287         target hook.
6288         (decide_unroll_stupid): Likewise.
6289
6290 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6291
6292         PR target/43643
6293         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
6294
6295 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6296
6297         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
6298         (Specific, *-*-solaris2*): Likewise.
6299         Don't prefer Sun as over GNU as.
6300
6301 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
6302
6303         * config/s390/s390.c (override_options): Adjust the z10 defaults
6304         for max-unroll-times, max-completely-peeled-insns
6305         and max-completely-peel-times.
6306
6307 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6308
6309         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
6310         instructions for z10.
6311         (s390_expand_setmem): Likewise.
6312         (s390_expand_cmpmem): Likewise.
6313
6314 2010-04-08  Richard Guenther  <rguenther@suse.de>
6315
6316         PR tree-optimization/43679
6317         * tree-ssa-pre.c (eliminate): Only propagate copies.
6318
6319 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
6320
6321         PR bootstrap/43681
6322         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
6323         set but not used variable warning.
6324
6325 2010-04-08  Wei Guozhi  <carrot@google.com>
6326
6327         PR target/41653
6328         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
6329         (arm_size_rtx_costs): Call the new function when optimized for size.
6330
6331 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
6332
6333         PR debug/43670
6334         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
6335         op0 is not a MEM, just return NULL instead of assertion
6336         failure.
6337         (discover_nonconstant_array_refs): Don't walk debug stmts.
6338
6339 2010-04-08  Doug Kwan  <dougkwan@google.com>
6340
6341         * configure.ac: Recognize gold and do not use its version number
6342         to test ld features.
6343         * configure: Regenerate.
6344
6345 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
6346
6347         PR middle-end/40815
6348         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
6349         (negate_value): Move code to push elements to broken_up_substracts ...
6350         (eliminate_plus_minus_pair): ... here.  Push operands that have no
6351         negative pair to plus_negates.
6352         (repropagate_negates, init_reassoc, fini_reassoc): Update.
6353
6354 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6355
6356         * doc/install.texi (Configuration): Move description of
6357         --enable-lto, --with-libelf*, --enable-gold from Java section to
6358         general section.
6359
6360         * doc/generic.texi (Working with declarations)
6361         (Function Properties, C and C++ Trees): Fix typos.
6362         * doc/sourcebuild.texi (Top Level): Likewise.
6363
6364 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
6365
6366         PR c/18624
6367         * tree.h (DECL_READ_P): Define.
6368         (struct tree_decl_common): Add decl_read_flag.
6369         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
6370         a set but not used warning.
6371         (merge_decls): Merge DECL_READ_P flag.
6372         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
6373         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
6374         * c-common.c (handle_used_attribute, handle_unused_attribute):
6375         Likewise.
6376         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
6377         New prototypes.
6378         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
6379         New functions.
6380         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
6381         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
6382         c_parser_binary_expression, c_parser_cast_expression,
6383         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
6384         Call default_function_array_read_conversion instead of
6385         default_function_array_conversion where needed.
6386         (c_parser_unary_expression, c_parser_conditional_expression,
6387         c_parser_postfix_expression_after_primary, c_parser_initelt):
6388         Likewise.  Call mark_exp_read where needed.
6389         (c_parser_statement_after_labels, c_parser_asm_operands,
6390         c_parser_typeof_specifier, c_parser_sizeof_expression,
6391         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
6392         where needed.
6393         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
6394         New.
6395         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
6396         (warn_unused_but_set_parameter): Default to warn_unused
6397         && extra_warnings.
6398         * doc/invoke.texi: Document -Wunused-but-set-variable and
6399         -Wunused-but-set-parameter.
6400
6401         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
6402         used count variable.
6403         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
6404         when operandN variables aren't used in the body of the expander
6405         or splitter.
6406         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
6407         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
6408         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
6409         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
6410         FOR_EACH_IMM_USE_ON_STMT): Likewise.
6411         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
6412         * tree.c (PROCESS_ARG): Likewise.
6413
6414 2010-04-07  Simon Baldwin  <simonb@google.com>
6415
6416         * diagnostic.h (diagnostic_override_option_index): New macro to
6417         set a diagnostic's option_index.
6418         * c-tree.h (c_cpp_error): Add warning reason argument.
6419         * opts.c (_warning_as_error_callback): New.
6420         (register_warning_as_error_callback): Store callback for
6421         warnings enabled via enable_warning_as_error.
6422         (enable_warning_as_error): Call callback, minor code tidy.
6423         * opts.h (register_warning_as_error_callback): Declare.
6424         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
6425         response to -Werror=.
6426         (c_common_init_options): Register warning_as_error_callback in opts.c.
6427         * common.opt: Add -Wno-cpp option.
6428         * c-common.c (struct reason_option_codes_t): Map cpp warning
6429         reason codes to gcc option indexes.
6430         * (c_option_controlling_cpp_error): New function, lookup the gcc
6431         option index for a cpp warning reason code.
6432         * (c_cpp_error): Add warning reason argument, call
6433         c_option_controlling_cpp_error for diagnostic_override_option_index.
6434         * doc/invoke.texi: Document -Wno-cpp.
6435
6436 2010-04-07  Richard Guenther  <rguenther@suse.de>
6437
6438         * ipa-reference.c (mark_load): Use get_base_address.
6439         (mark_store): Likewise.
6440
6441         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
6442         inserting GIMPLE_NOPs into the IL.
6443         * tree-ssa-structalias.c (get_constraint_for_component_ref):
6444         Explicitly strip handled components and indirect references.
6445
6446         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
6447         folding address expressions.
6448         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
6449         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
6450         operand_equal_p to compare decls.
6451         (ptr_deref_may_alias_decl_p): Likewise.
6452         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
6453         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
6454         Handle reversed comparison ops.
6455         * tree-sra.c (asm_visit_addr): Use get_base_address.
6456         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
6457         * ipa-reference.c (mark_address): Use get_base_address.
6458
6459 2010-04-07  Richard Guenther  <rguenther@suse.de>
6460
6461         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
6462         Propagate constants everywhere.
6463
6464 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
6465
6466         PR debug/43516
6467         * tree.c (MAX_INT_CACHED_PREC): Define.
6468         (nonstandard_integer_type_cache): New array.
6469         (build_nonstandard_integer_type): Cache results for precision
6470         <= MAX_INT_CACHED_PREC.
6471
6472 2010-04-07  Richard Guenther  <rguenther@suse.de>
6473
6474         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
6475         -fargument-noalias-global, -fargument-noalias-anything): Remove.
6476         * common.opt: Likewise.
6477         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
6478         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
6479         (nonoverlapping_memrefs_p): Likewise.
6480         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6481         * opts.c (common_handle_option): Handle OPT_fargument_alias,
6482         OPT_fargument_noalias, OPT_fargument_noalias_anything and
6483         OPT_fargument_noalias_global for backward compatibility.
6484
6485 2010-04-07  Richard Guenther  <rguenther@suse.de>
6486
6487         PR tree-optimization/43270
6488         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
6489         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
6490         * tree-ssa-pre.c (phi_translate_1): Adjust.
6491         (fully_constant_expression): Split out vn_reference handling to ...
6492         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
6493         Fold reads from constant strings.
6494         (vn_reference_lookup): Handle fully constant references.
6495         (vn_reference_lookup_pieces): Likewise.
6496         * Makefile.in (expmed.o-warn): Add -Wno-error.
6497
6498 2010-04-07  Martin Jambor  <mjambor@suse.cz>
6499
6500         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
6501
6502 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
6503
6504         PR driver/41594
6505         * gcc.c: Add -static-libstdc++ to list of recognized options.
6506
6507 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6508
6509         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
6510
6511 2010-04-07  Richard Guenther  <rguenther@suse.de>
6512
6513         PR middle-end/42617
6514         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
6515         bases build simple mem attributes to retain points-to information.
6516
6517 2010-04-07  Richard Guenther  <rguenther@suse.de>
6518
6519         PR middle-end/42617
6520         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
6521         preserve points-to related information.
6522
6523 2010-04-07  Richard Guenther  <rguenther@suse.de>
6524
6525         PR middle-end/42617
6526         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
6527         discard plain indirect references.
6528         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
6529         * tree.c (tree_nop_conversion): Likewise.
6530
6531 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
6532
6533         PR debug/43628
6534         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
6535
6536 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
6537
6538         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
6539         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
6540
6541 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6542
6543         * tree-if-conv.c: Fix indentation and comments.
6544
6545 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6546
6547         * tree-if-conv.c: Sort static functions in topological order.
6548
6549 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6550
6551         * tree-if-conv.c: Fix indentation and comments.
6552
6553 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6554
6555         PR middle-end/43519
6556         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
6557         lang_hooks.types.type_for_size instead of
6558         build_nonstandard_integer_type.
6559         When converting an unsigned type to signed, double its precision.
6560         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
6561         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
6562         (graphite_create_new_loop_guard): When ub + 1 wraps around,
6563         use lb <= ub.
6564
6565 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6566
6567         PR middle-end/43519
6568         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
6569         POINTER_PLUS_EXPR for pointer types.
6570
6571 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6572
6573         PR middle-end/43519
6574         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
6575         * graphite-clast-to-gimple.c: Include langhooks.h.
6576         (max_signed_precision_type): New.
6577         (max_precision_type): Takes two types as arguments.
6578         (precision_for_value): New.
6579         (precision_for_interval): New.
6580         (gcc_type_for_interval): New.
6581         (gcc_type_for_value): New.
6582         (gcc_type_for_clast_term): New.
6583         (gcc_type_for_clast_red): New.
6584         (gcc_type_for_clast_bin): New.
6585         (gcc_type_for_clast_expr): Split up into several functions.
6586         (gcc_type_for_clast_eq): Rewritten.
6587         (compute_bounds_for_level): New.
6588         (compute_type_for_level_1): New.
6589         (compute_type_for_level): New.
6590         (gcc_type_for_cloog_iv): Removed.
6591         (gcc_type_for_iv_of_clast_loop): Rewritten.
6592         (graphite_create_new_loop): Compute the lower and upper bound types
6593         with gcc_type_for_clast_expr.
6594         (graphite_create_new_loop_guard): Same.
6595         (find_cloog_iv_in_expr): Removed.
6596         (compute_cloog_iv_types_1): Removed.
6597         (compute_cloog_iv_types): Removed.
6598         (gloog): Do not call compute_cloog_iv_types.
6599         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
6600         GBB_CLOOG_IV_TYPES.
6601         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
6602         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
6603         (GBB_CLOOG_IV_TYPES): Removed.
6604
6605 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6606
6607         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
6608         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
6609         (detect_commutative_reduction): Same.
6610
6611 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6612
6613         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
6614         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
6615         argument.
6616         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
6617         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
6618         (rewrite_commutative_reductions_out_of_ssa): Same.
6619         * passes.c (execute_function_todo): Call verify_ssa for every pass
6620         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
6621         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
6622         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
6623         with an extra argument.
6624         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
6625         verify_ssa only when the extra argument is true.
6626         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
6627         with an extra argument.
6628         (tree_transform_and_unroll_loop): Same.
6629
6630 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6631
6632         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
6633         for all the passes of the LNO having LOOP_CLOSED_SSA.
6634         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
6635         * tree-loop-distribution.c (pass_loop_distribution): Same.
6636         * tree-pass.h (TODO_verify_loops): Removed.
6637         * tree-ssa-loop.c (pass_tree_loop_init): Same.
6638         (pass_lim): Same.
6639         (pass_tree_unswitch): Same.
6640         (pass_predcom): Same.
6641         (pass_vectorize): Same.
6642         (pass_linear_transform): Same.
6643         (pass_graphite_transforms): Same.
6644         (pass_iv_canon): Same.
6645         (pass_complete_unroll): Same.
6646         (pass_complete_unrolli): Same.
6647         (pass_parallelize_loops): Same.
6648         (pass_loop_prefetch): Same.
6649         (pass_iv_optimize): Same.
6650
6651 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
6652
6653         PR middle-end/32824
6654         * passes.c (init_optimization_passes): Move pass_lim before
6655         pass_copy_prop and pass_dce_loop.
6656
6657 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
6658
6659         PR target/43667
6660         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
6661         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
6662         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
6663         MULTI_* defines for 4 argument vpermil2p* builtins.
6664
6665 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
6666
6667         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
6668         * config/i386/i386.c (x86_maybe_negate_const_int): New.
6669         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
6670         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
6671         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
6672         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
6673         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
6674         Use x86_maybe_negate_const_int to output insn mnemonic.
6675         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
6676         check from instruction predicate.  Update comments.
6677         * config/i386/sync.md (sync_add<mode>): Use
6678         x86_maybe_negate_const_int to output insn mnemonic.
6679
6680 2010-04-06  Jan Hubicka  <jh@suse.cz>
6681
6682         PR tree-optimization/42906
6683         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
6684         IGNORE_SELF argument.  Set visited_control_parents for fully
6685         processed BBs.
6686         (find_obviously_necessary_stmts): Update call of
6687         mark_control_dependent_edges_necessary.
6688         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
6689
6690 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
6691
6692         * config/i386/i386.md: Remove comment about 'e' and 'E'
6693         operand modifier.
6694
6695 2010-04-06  Richard Guenther  <rguenther@suse.de>
6696
6697         PR tree-optimization/43627
6698         * tree-vrp.c (extract_range_from_unary_expr): Widenings
6699         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
6700         not varying.
6701
6702 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
6703
6704         * BASE-VER: Change to 4.6.0.
6705
6706         PR target/43638
6707         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
6708         handling.
6709
6710 2010-04-06  Richard Guenther  <rguenther@suse.de>
6711
6712         PR middle-end/43661
6713         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
6714
6715 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6716
6717         * doc/invoke.texi (Optimize Options): Document that LTO
6718         won't remove object access purely due to incompatible
6719         declarations.
6720
6721 2010-04-04  Matthias Klose  <doko@ubuntu.com>
6722
6723         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
6724         Initialize variable.
6725
6726 2010-04-03  Richard Guenther  <rguenther@suse.de>
6727
6728         PR middle-end/42509
6729         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
6730         require a non-NULL MEM_OFFSET.
6731
6732 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
6733
6734         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
6735         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
6736         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
6737         config/alpha/predicates.md, config/arm/arm.md,
6738         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
6739         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
6740         config/darwin9.h, config/darwin.c, config/darwin.h,
6741         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
6742         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
6743         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
6744         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
6745         config/mips/mips.md, config/mn10300/mn10300.c,
6746         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
6747         config/rs6000/aix.h, config/rs6000/dfp.md,
6748         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
6749         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
6750         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
6751         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
6752         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
6753         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
6754         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
6755         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
6756         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
6757         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
6758         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
6759         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
6760         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
6761         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
6762         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
6763         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
6764         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
6765         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
6766         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
6767         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
6768         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
6769         opt-functions.awk, opth-gen.awk, params.def, passes.c,
6770         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
6771         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
6772         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
6773         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
6774         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
6775         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
6776         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
6777         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
6778         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
6779         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
6780         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
6781         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
6782         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
6783         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
6784
6785 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6786
6787         PR other/43620
6788         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
6789         * aclocal.m4: Regenerate.
6790
6791 2010-04-02  Richard Guenther  <rguenther@suse.de>
6792
6793         PR tree-optimization/43629
6794         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
6795         if we have seen a constant value.
6796
6797 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
6798
6799         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
6800
6801 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
6802
6803         PR target/43469
6804         * arm.c (legitimize_tls_address): Adjust call to
6805         gen_tls_load_dot_plus_four.
6806         (arm_note_pic_base): New function.
6807         (arm_cannot_copy_insn_p): Use it.
6808         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
6809         constraint.
6810
6811 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6812
6813         PR bootstrap/43531
6814
6815         Revert:
6816         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6817
6818         * Makefile.in ($(out_object_file)): Depend on
6819         gt-$(basename $(notdir $(out_file))).h.
6820
6821 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
6822
6823         * config.gcc (lm32-*-rtems*): Add t-lm32.
6824
6825 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
6826
6827         * config.gcc: Add lm32-*-rtems*.
6828         * config/lm32/rtems.h: New file.
6829
6830 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
6831
6832         PR target/42609
6833         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
6834
6835 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
6836
6837         * dwarf2out.c (output_compilation_unit_header): For
6838         -gdwarf-4 use version 4 instead of version 3.
6839         (output_line_info): For version 4 and above emit additional
6840         maximum ops per insn header field.
6841         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
6842
6843         * dwarf2out.c (is_c_family, is_java): Remove.
6844         (lower_bound_default): New function.
6845         (add_bound_info, gen_descr_array_type_die): Use it.
6846
6847 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
6848
6849         PR debug/43325
6850         * dwarf2out.c (gen_variable_die): Allow debug info for variable
6851         re-declaration when it happens in a function.
6852
6853 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
6854
6855         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
6856         (cgraph_remove_function_insertion_hook): Same.
6857         (cgraph_call_function_insertion_hooks): Same.
6858
6859 2010-04-01  Richard Guenther  <rguenther@suse.de>
6860
6861         PR middle-end/43614
6862         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
6863         and TREE_THIS_VOLATILE.
6864         (copy_ref_info): Likewise.
6865         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
6866         * tree.c (build6_stat): Ignore side-effects of all but arg5
6867         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
6868         TARGET_MEM_REF.
6869
6870 2010-04-01  Richard Guenther  <rguenther@suse.de>
6871
6872         PR tree-optimization/43607
6873         * ipa-type-escape.c (check_call): Do not access non-existing
6874         arguments.
6875
6876 2010-04-01  Richard Guenther  <rguenther@suse.de>
6877
6878         PR middle-end/43602
6879         Revert
6880         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
6881                     Jack Howarth <howarth@bromo.med.uc.edu>
6882
6883         * tree-profile.c (tree_init_ic_make_global_vars): Make static
6884         variables TLS.
6885
6886 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6887
6888         * doc/install.texi (Prerequisites): Document libelf usability on
6889         IRIX 5/6 and Solaris 2.
6890         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
6891         Update GNU as, GNU ld requirements.
6892         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
6893         Document Sun Studio compiler download.
6894         Update and simplify as, ld recommendations.
6895         (Specific, *-*-solaris2.7): Note obsoletion, removal.
6896
6897 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6898
6899         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
6900         with_tune_32 to pentium4.
6901
6902 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
6903
6904         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
6905
6906 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6907
6908         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
6909         obsoletion, removal.
6910         Update IDO URL.
6911         Document GNU as requirement.
6912         Update configure requirements.
6913         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
6914         Recomment IRIX 6.5.18+.
6915         Document IDF/IDL requirement.
6916         Document GNU as requirement.
6917         Document GNU ld bootstrap failure.
6918         Remove freeware.sgi.com reference.
6919
6920 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6921
6922         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
6923         UNIX V4.0, V5.0 obsoletion, removal.
6924         Remove --with-gc=simple reference.
6925         Update VM requirements during bootstrap.
6926         Remove -oldas bootstrap description.
6927         Update binutils reference.
6928         Remove comparison failure note.
6929
6930 2010-03-31  Richard Guenther  <rguenther@suse.de>
6931             Zdenek Dvorak  <ook@ucw.cz>
6932             Sebastian Pop  <sebastian.pop@amd.com>
6933
6934         PR middle-end/43464
6935         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
6936         with multiple arguments.
6937         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
6938
6939 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
6940
6941         * graphite-dependences.c (print_pddr): Call print_pdr with an
6942         extra argument.
6943         * graphite-poly.c (debug_pdr): Add an extra argument for the
6944         verbosity level.
6945         (print_pdr): Same.
6946         (print_pbb_domain): Same.
6947         (print_pbb): Same.
6948         (print_scop_context): Same.
6949         (print_scop): Same.
6950         (print_cloog): Same.
6951         (debug_pbb_domain): Same.
6952         (debug_pbb): Same.
6953         (print_pdrs): Same.
6954         (debug_pdrs): Same.
6955         (debug_scop_context): Same.
6956         (debug_scop): Same.
6957         (debug_cloog): Same.
6958         (print_scop_params): Same.
6959         (debug_scop_params): Same.
6960         (print_iteration_domain): Same.
6961         (print_iteration_domains): Same.
6962         (debug_iteration_domain): Same.
6963         (debug_iteration_domains): Same.
6964         (print_scattering_function): Same.
6965         (print_scattering_functions): Same.
6966         (debug_scattering_function): Same.
6967         (debug_scattering_functions): Same.
6968         * graphite-poly.h (debug_pdr): Update declaration.
6969         (print_pdr): Same.
6970         (print_pbb_domain): Same.
6971         (print_pbb): Same.
6972         (print_scop_context): Same.
6973         (print_scop): Same.
6974         (print_cloog): Same.
6975         (debug_pbb_domain): Same.
6976         (debug_pbb): Same.
6977         (print_pdrs): Same.
6978         (debug_pdrs): Same.
6979         (debug_scop_context): Same.
6980         (debug_scop): Same.
6981         (debug_cloog): Same.
6982         (print_scop_params): Same.
6983         (debug_scop_params): Same.
6984         (print_iteration_domain): Same.
6985         (print_iteration_domains): Same.
6986         (debug_iteration_domain): Same.
6987         (debug_iteration_domains): Same.
6988         (print_scattering_function): Same.
6989         (print_scattering_functions): Same.
6990         (debug_scattering_function): Same.
6991         (debug_scattering_functions): Same.
6992
6993 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
6994
6995         * graphite-poly.c (print_scattering_function_1): New.
6996         (print_scattering_function): Call it.
6997         (print_scop_params): Remove spaces at the end of lines.
6998         (print_cloog): New.
6999         (debug_cloog): New.
7000         * graphite-poly.h (print_cloog): Declared.
7001         (debug_cloog): Declared.
7002
7003 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7004
7005         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
7006         in loop->header.
7007         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
7008         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
7009         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
7010         to switch between adding the IV bump in loop->latch or in loop->header.
7011
7012 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7013
7014         * graphite-poly.c (print_scattering_function): Pretty print following
7015         the scoplib format.
7016         (print_pdr): Same.
7017         (print_pbb_domain): Same.
7018         (dump_gbb_cases): Same.
7019         (dump_gbb_conditions): Same.
7020         (print_pdrs): Same.
7021         (print_pbb): Same.
7022         (print_scop_params): Same.
7023         (print_scop_context): Same.
7024         (print_scop): Same.
7025         (print_pbb_body): New.
7026         (lst_indent_to): New.
7027         (print_lst): Start new lines with a #.
7028         * graphite-poly.h (pbb_bb): New.
7029         (pbb_index): Use pbb_bb.
7030         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
7031         disjuncts.
7032         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
7033
7034 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
7035
7036         * dwarf2out.c (size_of_die): For -gdwarf-4 use
7037         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
7038         and 0 instead of 1 for dw_val_class_flag.
7039         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
7040         dw_val_class_range_list, dw_val_class_loc_list,
7041         dw_val_class_lineptr and dw_val_class_macptr, use
7042         DW_FORM_flag_present for dw_val_class_flag and
7043         DW_FORM_exprloc for dw_val_class_loc.
7044         (output_die): For -gdwarf-4 print dw_val_class_loc
7045         size as uleb128 instead of 1 or 2 bytes and don't print
7046         anything for dw_val_class_flag.
7047
7048         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
7049         instead of cselib_lookup following by tweaking locs->setting_insn.
7050
7051         PR bootstrap/43596
7052         * cselib.c (cselib_process_insn): Clear cselib_current_insn
7053         even before returning from label, setjmp call or volatile asm
7054         handling.
7055
7056 2010-03-31  Richard Guenther  <rguenther@suse.de>
7057
7058         PR middle-end/43600
7059         * cgraphunit.c (cgraph_output_in_order): Do not allocate
7060         temporary data on stack.
7061
7062 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7063
7064         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
7065         (PUSHSECTION_ASM_OP): Remove.
7066         (POPSECTION_ASM_OP): Remove.
7067         (PUSHSECTION_FORMAT): Remove.
7068         * config/sol2.h (PUSHSECTION_FORMAT): Define.
7069         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
7070         * config/sol2.c (solaris_output_init_fini): Use it.
7071
7072 2010-03-31  Jie Zhang  <jie@codesourcery.com>
7073
7074         PR 43574
7075         * opt-functions.awk (var_type_struct): Use signed char type
7076         for simple variables.
7077
7078 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7079
7080         * config/sol2.c: Include output.h.
7081         (solaris_assemble_visibility): New function.
7082         * config/t-sol2 (sol2.o): Add output.h dependency.
7083         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
7084         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
7085         Redefine.
7086
7087 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
7088
7089         PR target/43580
7090         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
7091         V2SImode or XFmode on PRE_DEC.
7092
7093         PR debug/43557
7094         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
7095         BLKmode.
7096
7097 2010-03-31  Jie Zhang  <jie@codesourcery.com>
7098
7099         PR 43562
7100         * reload.h (caller_save_initialized_p): Declare.
7101         * toplev.c (backend_init_target): Don't call
7102         init_caller_save but set caller_save_initialized_p to false.
7103         * caller-save.c (caller_save_initialized_p): Define.
7104         (init_caller_save): Check caller_save_initialized_p.
7105         * ira.c (ira): Call init_caller_save if flag_caller_saves.
7106
7107 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7108
7109         PR target/39048
7110         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
7111         and soft-fp/t-softfp to tmake_file.
7112         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
7113         (LIBGCC2_TF_CEXT): Define.
7114         (TF_SIZE): Define.
7115
7116 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
7117
7118         PR debug/42977
7119         * cselib.c (n_useless_values): Document handling of debug locs.
7120         (n_useless_debug_values, n_debug_values): New variables.
7121         (new_elt_loc_list): Don't add to debug values, keep count.
7122         (promote_debug_loc): New.
7123         (cselib_reset_table): Zero new variables.
7124         (entry_and_rtx_equal_p): Promote debug locs.
7125         (discard_useless_locs): Increment n_useless_debug_values for
7126         debug values.
7127         (remove_useless_values): Adjust n_useless_values and n_debug_values
7128         with n_useless_debug_values.
7129         (add_mem_for_addr): Promote debug locs.
7130         (cselib_lookup_mem): Likewise.
7131         (cselib_lookup_addr): Renamed to...
7132         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
7133         (cselib_log_lookup): ... this.  Turn into...
7134         (cselib_lookup_addr): ... new wrapper.
7135         (cselib_lookup_from_insn): New.
7136         (cselib_invalidate_regno): Increment n_useless_debug_values for
7137         debug values.
7138         (cselib_invalidate_mem): Likewise.
7139         (cselib_process_insn): Take n_deleted and n_debug_values into
7140         account to guard remove_useless_value call.
7141         (cselib_finish): Zero n_useless_debug_values.
7142         * cselib.h (cselib_lookup_from_insn): Declare.
7143         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
7144         (sched_analyze_2): Likewise.
7145
7146 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
7147
7148         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
7149         functions.
7150         (adjust_mems): Replace narrowing SUBREG of expression containing
7151         just PLUS, MINUS, MULT and ASHIFT of registers and constants
7152         with operations in the narrower mode.
7153
7154         PR debug/43593
7155         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
7156         regs_invalidated_by_call instead all call_used_reg_set registers.
7157
7158 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
7159
7160         PR middle-end/43430
7161         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
7162         pointer comparisons with types_compatible_p.
7163         * tree-vect-stmts.c (vectorizable_call): Same.
7164         (vectorizable_condition): Same.
7165
7166 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7167
7168         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
7169         stack check if the mask would be zero.
7170
7171 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
7172             Jack Howarth <howarth@bromo.med.uc.edu>
7173
7174         * tree-profile.c (tree_init_ic_make_global_vars): Make static
7175         variables TLS.
7176
7177 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
7178
7179         PR other/25232
7180         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
7181         and __unordtf2.
7182         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
7183         Include ___unordxf2 and ___unordtf2.
7184         * config/i386/libgcc-glibc.ver: Do not define inheritance from
7185         GCC_4.4.0 here.
7186
7187 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
7188
7189         * config/lm32/t-lm32: New file.
7190         * config.gcc: Use the above file when targetting lm32.
7191
7192 2010-03-28  Duncan Sands  <baldrick@free.fr>
7193
7194         * Makefile.in (PLUGIN_HEADERS): Add except.h.
7195
7196 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
7197
7198         PR middle-end/43431
7199         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
7200         Improve vectorization cost model diagnostic.
7201
7202 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
7203
7204         PR middle-end/43436
7205         * tree-vect-data-refs.c (vect_analyze_data_refs): When
7206         compute_data_dependences_for_loop returns false, early exit
7207         and output an extra diagnostic for the failed data reference
7208         analysis.
7209
7210 2010-03-29  Richard Guenther  <rguenther@suse.de>
7211
7212         PR tree-optimization/43560
7213         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
7214         (can_sm_ref_p): Treat stores to readonly locations as trapping.
7215
7216 2010-03-29  Jie Zhang  <jie@codesourcery.com>
7217
7218         PR 43564
7219         * toplev.c (process_options): Set optimization_default_node
7220         and optimization_current_node.
7221         * opts.c (decode_options): Don't set optimization_default_node
7222         and optimization_current_node.
7223
7224 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
7225
7226         * config/rtems.h: Abandon -qrtems_debug.
7227
7228 2010-03-28  Jan Hubicka  <jh@suse.cz>
7229
7230         PR tree-optimization/43505
7231         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
7232         map should not be copied.
7233
7234 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7235
7236         PR middle-end/41674
7237         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
7238         cdtors, set DECL_PRESERVE_P.
7239         * ipa.c (cgraph_externally_visible_p): Return true if declaration
7240         should be preseved.
7241
7242 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
7243
7244         PR tree-optimization/43528
7245         * stor-layout.c (place_field): Check that constant fits into
7246         unsigned HWI when skipping calculation of MS bitfield layout.
7247
7248 2010-03-27  Jan Hubicka  <jh@suse.cz>
7249
7250         PR middle-end/43391
7251         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
7252         notice_global_symbol work.
7253
7254 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
7255
7256         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
7257         instead of dwarf2out_decl.
7258         (struct var_loc_node): Remove section_label field.
7259         (dwarf2out_function_decl): New function.
7260         (dwarf2out_var_location): Don't set section_label field.
7261         (dwarf2out_begin_function): Don't empty decl_loc_table here.
7262
7263 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
7264
7265         PR tree-optimization/43544
7266         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
7267         First argument for builtin vectorized function hook is now a
7268         tree to be able to distinguish between machine specific and
7269         standard builtins.
7270         * targhooks.c (default_builtin_vectorized_function): Ditto.
7271         * targhooks.h (default_builtin_vectorized_function): Ditto.
7272         * target.h (struct gcc_target): Ditto.
7273         * tree-vect-stmts.c (vectorizable_function): Ditto.
7274         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
7275         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
7276         Ditto.
7277
7278 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
7279
7280         PR c/43381
7281         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
7282         nested binding iff it is a FUNCTION_DECL.
7283         (store_parm_decls_newstyle): Pass nested=true to bind for
7284         FUNCTION_DECLs amongst parameters.
7285
7286 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
7287
7288         * var-tracking.c (vt_expand_loc_callback): Don't run
7289         cselib_expand_value_rtx_cb in dummy mode if
7290         cselib_dummy_expand_value_rtx_cb returned false.
7291
7292         * var-tracking.c (emit_note_insn_var_location): For one part
7293         notes with offset 0, don't add EXPR_LIST around the location.
7294         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
7295         add_location_or_const_value_attribute): Adjust for that change.
7296
7297         PR debug/43540
7298         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
7299         into first operand and location into second.
7300         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
7301         dw_cfi_oprnd_loc for DW_CFA_expression.
7302         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
7303         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
7304         assume first argument is regnum and second argument is location.
7305
7306 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
7307
7308         PR target/42113
7309         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
7310         of scratch register to DImode.  Split to DImode comparison operator.
7311         Use SImode subreg of scratch register in the multiplication.
7312         (*cmp_sadd_sidi): Ditto.
7313         (*cmp_ssub_si): Ditto.
7314         (*cmp_ssub_sidi): Ditto.
7315
7316 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
7317
7318         PR target/43524
7319         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
7320         Remove invalid assert and wrong comment.
7321
7322 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
7323
7324         PR debug/43516
7325         * flags.h (final_insns_dump_p): New extern.
7326         * final.c (final_insns_dump_p): New variable.
7327         (rest_of_clean_state): Set it before -fdump-final-insns=
7328         dumping, clear afterwards.
7329         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
7330         MEM_ALIAS_SET on MEMs.
7331
7332 2010-03-26  David S. Miller  <davem@davemloft.net>
7333
7334         * configure.ac: Fix sparc GOTDATA_OP bug check.
7335         * configure: Rebuild.
7336
7337 2010-03-26  Alan Modra  <amodra@gmail.com>
7338
7339         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
7340
7341 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7342
7343         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
7344         TLS_SECTION_ASM_FLAG.
7345
7346 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
7347
7348         PR bootstrap/43511
7349         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
7350         Clear first_function_block_is_cold.
7351
7352         PR c/43385
7353         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
7354         argument if the argument is truth_value_p.
7355
7356 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
7357
7358         * config/rs6000/constraints.md: Update copyright year for my changes.
7359
7360         PR target/43484
7361         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
7362         used in reg+reg addressing, swap registers.
7363
7364 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
7365
7366         PR debug/43293
7367         * target.h (struct gcc_target): Add code_end hook.
7368         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
7369         if not yet defined.
7370         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
7371         * toplev.c (compile_file): Call targetm.asm_out.code_end
7372         hook before unwind info/debug info output.
7373         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
7374         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
7375         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7376         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
7377         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7378         * config/i386/i386.c (ix86_file_end): Renamed to...
7379         (ix86_code_end): ... this.  Make static.  Don't call
7380         file_end_indicate_exec_stack.  Emit unwind info using
7381         final_start_function/final_end_function.
7382         (darwin_x86_file_end): Remove.
7383         (TARGET_ASM_CODE_END): Define.
7384         * config/i386/i386.h (TARGET_ASM_FILE_END,
7385         NEED_INDICATE_EXEC_STACK): Don't define.
7386         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
7387         (TARGET_ASM_FILE_END): Define to darwin_file_end.
7388         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
7389         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
7390
7391         PR target/43498
7392         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
7393         at the beginning and final_end_function at the end.
7394         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
7395
7396 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7397
7398         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
7399         and Sun as TLS syntax.
7400         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
7401         * configure: Regenerate.
7402         * config.in: Regenerate.
7403         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
7404         (default_elf_asm_named_section): Use it.
7405         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
7406         (i386_output_dwarf_dtprel): Likewise.
7407         (output_addr_const_extra): Likewise.
7408         (output_pic_addr_const): Lowercase @GOTTPOFF.
7409         (output_addr_const_extra): Likewise.
7410         (output_pic_addr_const): Lowercase @GOTNTPOFF.
7411         (output_addr_const_extra): Likewise.
7412         (output_pic_addr_const): Lowercase @INDNTPOFF.
7413         (output_addr_const_extra): Likewise.
7414         (output_pic_addr_const): Lowercase @NTPOFF.
7415         (output_addr_const_extra): Likewise.
7416         (output_pic_addr_const): Lowercase @TPOFF.
7417         (output_addr_const_extra): Likewise.
7418         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
7419         (*tls_global_dynamic_64): Likewise.
7420         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
7421         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
7422
7423         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
7424         (ASM_OUTPUT_TLS_COMMON): Use it.
7425         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
7426
7427         PR target/38118
7428         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
7429         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
7430         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
7431         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
7432         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7433         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
7434
7435 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7436
7437         * config/i386/i386.c (override_options): Don't accept
7438         -mtls-dialect=sun any longer.
7439         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
7440         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
7441         (*tls_local_dynamic_base_32_sun): Likewise.
7442         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7443
7444 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
7445
7446         PR debug/43508
7447         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
7448         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
7449
7450         PR debug/43479
7451         * ira.c (adjust_cleared_regs): New function.
7452         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
7453
7454         PR debug/19192
7455         PR debug/43479
7456         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
7457         from gimple_block.
7458         * expr.c (expand_expr_real): Restore previous
7459         curr_insn_source_location and curr_insn_block after
7460         expand_expr_real_1 call.
7461         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
7462         instead of expand_expr_real_1.
7463
7464 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
7465
7466         PR rtl-optimization/43413
7467         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
7468         hard regs too.
7469
7470 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
7471
7472         PR target/43348
7473         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
7474         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
7475
7476 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
7477
7478         * config/i386/i386.c (ix86_target_string): Add -mfma.
7479         Fix a typo in comment.
7480
7481 2010-03-22  Mike Stump  <mikestump@comcast.net>
7482
7483         PR target/23071
7484         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
7485         Don't overly align based upon packed packed fields.
7486
7487 2010-03-22  Jason Merrill  <jason@redhat.com>
7488
7489         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
7490         Use () rather than [], and move before the element type.
7491
7492 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7493
7494         * doc/configfiles.texi (Configuration Files): Removed
7495         fixinc/Makefile*, intl/Makefile.*.
7496         * doc/makefile.texi: Fixed markup. Abstract from version
7497         control system used.
7498         (Makefile): Removed obsolete gcc/java/parse.y example.
7499         * doc/sourcebuild.texi: Likewise.
7500         (Top Level): Added config, gnattools, libdecnumber, libgcc,
7501         libgomp, libssp.  Removed fastjar.
7502         (Miscellaneous Docs): Clarify location.
7503         Added COPYING3, COPYING3.LIB.
7504         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
7505
7506 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7507
7508         PR target/38085
7509         * config/i386/i386.c (x86_function_profiler)
7510         [!NO_PROFILE_COUNTERS]: Fix typo.
7511         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
7512         instead of callq.
7513
7514 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
7515             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7516
7517         * doc/sourcebuild.texi (Test Directives): Split into six
7518         subsections, with most of the current text in new subsections
7519         Directives, Selectors, and Final Actions.
7520         (Directives): Split list of test directives into multiple
7521         subsubsections.
7522         (Selectors): Describe use and syntax of selectors.
7523         (Effective-Target Keywords): Describe all existing keywords.
7524         (Add Options): Describe features for dg-add-options.
7525         (Require Support): Describe variants of dg-require-support.
7526         (Final Actions): Describe commands to use in dg-final.
7527
7528 2010-03-22  Michael Matz  <matz@suse.de>
7529
7530         PR middle-end/43475
7531         * recog.c (validate_replace_rtx_group): Replace also in
7532         REG_EQUAL and REG_EQUIV notes.
7533
7534 2010-03-22  Richard Guenther  <rguenther@suse.de>
7535
7536         PR tree-optimization/43390
7537         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
7538         sure vector extracts are type correct.
7539
7540 2010-03-22  Richard Guenther  <rguenther@suse.de>
7541
7542         PR middle-end/40106
7543         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
7544         x * sqrt (x) even when optimizing for size if the target
7545         has native support for sqrt.
7546
7547 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
7548
7549         * varasm.c (make_decl_rtl_for_debug): Also clear
7550         flag_mudflap for the duration of make_decl_rtl call.
7551
7552         PR debug/43443
7553         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
7554         locs from preserved VALUEs.
7555
7556 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7557
7558         PR middle-end/42718
7559         * pa.md (movmemsi): Set align to one if zero.
7560         (movmemdi): Likewise.
7561
7562 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
7563
7564         PR target/42321
7565         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
7566         with their corresponding prologue pushes.
7567
7568 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
7569
7570         PR target/43156
7571         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
7572         at the begining or end.
7573         (spu_expand_epilogue): Likewise.
7574
7575 2010-03-20  Richard Guenther  <rguenther@suse.de>
7576
7577         PR rtl-optimization/43438
7578         * combine.c (make_extraction): Properly zero-/sign-extend an
7579         extraction of the low part of a CONST_INT.  Also handle
7580         CONST_DOUBLE.
7581
7582 2010-03-19  Mike Stump  <mikestump@comcast.net>
7583
7584         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
7585         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
7586         (override_options): Use SUBTARGET32_DEFAULT_CPU.
7587
7588 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
7589
7590         PR c/43211
7591         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
7592         an error.
7593
7594 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
7595
7596         PR rtl-optimization/42258
7597         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
7598         use that may match DEF.
7599
7600         PR target/40697
7601         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
7602         the cost of loading the constant rather than assuming
7603         COSTS_N_INSNS (1).
7604         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
7605         outer code is AND, do the same tests as the andsi3 expander and
7606         return COSTS_N_INSNS (1) if and is cheap.
7607
7608         * optabs.c (avoid_expensive_constant): Fix formatting.
7609
7610 2010-03-19  Michael Matz  <matz@suse.de>
7611
7612         PR c++/43116
7613         * attribs.c (decl_attributes): When rebuilding a function pointer
7614         type use the same qualifiers as the original pointer type.
7615
7616 2010-03-19  Martin Jambor  <mjambor@suse.cz>
7617
7618         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
7619         and is_gimple_ip_invariant_address.
7620
7621 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7622
7623         Revert
7624         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7625
7626         * config/arm/arm.c (arm_override_options): Turn off
7627         flag_dwarf2_cfi_asm for AAPCS variants.
7628
7629 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7630
7631         PR target/43399
7632         * config/arm/arm.c (emit_multi_reg_push): Update comments.
7633         Use PRE_MODIFY instead of PRE_DEC.
7634         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
7635         (vfp_emit_fstmd): Likewise.
7636
7637 2010-03-19  Michael Matz  <matz@suse.de>
7638
7639         PR target/43305
7640         * builtins.c (expand_builtin_interclass_mathfn,
7641         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
7642         if that fails.
7643
7644 2010-03-19  Richard Guenther  <rguenther@suse.de>
7645
7646         PR tree-optimization/43415
7647         * tree-ssa-pre.c (phi_translate): Split out worker to ...
7648         (phi_translate_1): ... this.
7649         (phi_translate): Move all caching here.  Cache all NARY
7650         and REFERENCE translations.
7651
7652 2010-03-19  David S. Miller  <davem@davemloft.net>
7653
7654         With help from Eric Botcazou.
7655         * config/sparc/sparc.c: Include dwarf2out.h.
7656         (emit_pic_helper): Delete.
7657         (pic_helper_symbol_name): Delete.
7658         (pic_helper_emitted_p): Delete.
7659         (pic_helper_needed): New.
7660         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
7661         (get_pc_thunk_name): New.
7662         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
7663         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
7664         Set pic_helper_needed to true.  Don't call emit_pic_helper.
7665         (sparc_expand_prologue): Update load_pic_register call.
7666         (sparc_output_mi_thunk): Likewise.
7667         (sparc_file_end): Emit a hidden comdat symbol for the PIC
7668         thunk if possible.  Output CFI information as needed.
7669
7670 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
7671             Jack Howarth <howarth@bromo.med.uc.edu>
7672
7673         PR target/36399
7674         * config/i386/i386.h: Fix ABI on darwin x86-32.
7675
7676 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
7677
7678         * tree.h: Declare make_decl_rtl_for_debug.
7679         * varasm.c (make_decl_rtl_for_debug): New.
7680         * dwarf2out.c (rtl_for_decl_location): Call it.
7681         * cfgexpand.c (expand_debug_expr): Call it.
7682
7683 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
7684
7685         PR bootstrap/43399
7686         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
7687         mem_mode.
7688
7689         PR bootstrap/43403
7690         * var-tracking.c (vt_init_cfa_base): Do nothing if
7691         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
7692
7693 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
7694
7695         PR debug/42873
7696         * var-tracking.c (canonicalize_vars_star): New.
7697         (dataflow_post_merge_adjust): Use it.
7698
7699 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
7700
7701         PR debug/43058
7702         * var-tracking.c (non_suitable_const): New function.
7703         (add_uses): For DEBUG_INSNs with constants, don't record any
7704         value, instead just the constant value itself.
7705         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
7706         is not VAR_LOC_UNKNOWN_P, set var to the constant.
7707         (emit_notes_in_bb): Likewise.
7708         (emit_note_insn_var_location): For onepart variables if
7709         cur_loc is a VOIDmode constant, use DECL_MODE.
7710
7711 2010-03-18  Martin Jambor  <mjambor@suse.cz>
7712
7713         PR middle-end/42450
7714         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
7715         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
7716         all non-clones.  Moved call redirection...
7717         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
7718         (cgraph_materialize_all_clones): Dispose of all
7719         combined_args_to_skip bitmaps.
7720         (verify_cgraph_node): Do not check for edges pointing to wrong
7721         nodes in inline clones.
7722         * tree-inline.c (copy_bb): Call
7723         cgraph_redirect_edge_call_stmt_to_callee.
7724         * ipa.c (cgraph_remove_unreachable_nodes): Call
7725         cgraph_node_remove_callees even when there are used clones.
7726
7727 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
7728
7729         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
7730
7731 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
7732
7733         PR target/43383
7734         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
7735         for 32bit.
7736
7737 2010-03-18  Michael Matz  <matz@suse.de>
7738
7739         PR middle-end/43419
7740         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
7741         into sqrt(x) if we need to preserve signed zeros.
7742
7743 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
7744             Eric Botcazou  <ebotcazou@adacore.com>
7745
7746         PR rtl-optimization/43360
7747         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
7748         note if we don't know its invariant status.
7749
7750 2010-03-18  Michael Matz  <matz@suse.de>
7751
7752         PR tree-optimization/43402
7753         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
7754         PHI chains of ssa names registered for update.
7755
7756 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
7757
7758         PR target/42427
7759         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
7760         non-offsettable and pre_modify update addressing.
7761         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
7762         and "2" alternatives "#".
7763         (*movdd_softfloat32): Make all alternatives "#";
7764         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
7765         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
7766         (*movdf_softfloat32): Make all alternatives "#";
7767         (movdi): Use the new DIFD mode iterator to create a common splitter
7768         for movdi, movdf and movdd patterns.
7769
7770 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
7771
7772         * common.opt (dumpdir): Remove redundant tab.
7773
7774 2010-03-17  Martin Jambor  <mjambor@suse.cz>
7775
7776         PR tree-optimization/43347
7777         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
7778         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
7779
7780 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
7781
7782         PR rtl-optimization/42216
7783         * regrename.c (create_new_chain): New function, broken out from...
7784         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
7785         appending a use to an empty chain.
7786         (build_def_use): Remove previous changes that convert OP_INOUT to
7787         OP_OUT operands; instead detect the case where an OP_INOUT operand
7788         uses a previously untracked register and create an empty chain for it.
7789
7790 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7791
7792         * doc/extend.texi (Function Attributes): Rewrite unfinished
7793         sentence in ms_abi documentation.
7794
7795 2010-03-17  Alan Modra  <amodra@gmail.com>
7796
7797         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
7798         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
7799         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
7800         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
7801
7802 2010-03-16  Richard Henderson  <rth@redhat.com>
7803
7804         PR middle-end/43365
7805         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
7806         (lower_try_finally): Save and restore eh_seq around the expansion
7807         of the try-finally.
7808
7809 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
7810
7811         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
7812         statements before splitting block.
7813
7814 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7815
7816         * doc/sourcebuild.texi (Testsuites): Fix markup.
7817         Use pathnames relative to gcc/testsuite.
7818         (Test Directives): Move description of how timeout is determined.
7819         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
7820         (C Tests): Correct gcc.misc-tests directory.
7821         Framework tests now live in gcc.test-framework.
7822
7823 2010-03-16  Richard Guenther  <rguenther@suse.de>
7824
7825         PR middle-end/43379
7826         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
7827         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
7828
7829 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
7830             Alexandre Oliva  <aoliva@redhat.com>
7831
7832         PR tree-optimization/42917
7833         * lambda-code.c (remove_iv): Skip debug statements.
7834         (lambda_loopnest_to_gcc_loopnest): Likewise.
7835         (not_interesting_stmt): Debug statements are not interesting.
7836
7837 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
7838
7839         PR debug/43051
7840         PR debug/43092
7841         * cselib.c (cselib_preserve_constants,
7842         cfa_base_preserved_val): New static variables.
7843         (preserve_only_constants): New function.
7844         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
7845         clear its REG_VALUES.  If cselib_preserve_constants, don't
7846         empty the whole hash table, but preserve there VALUEs with constants,
7847         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
7848         (cselib_preserve_cfa_base_value): New function.
7849         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
7850         (cselib_init): Change argument to int bitfield.  Set
7851         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
7852         is in it.
7853         (cselib_finish): Clear cselib_preserve_constants and
7854         cfa_base_preserved_val.
7855         * cselib.h (enum cselib_record_what): New enum.
7856         (cselib_init): Change argument to int.
7857         (cselib_preserve_cfa_base_value): New prototype.
7858         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
7859         * dse.c (dse_step1): Likewise.
7860         * cfgcleanup.c (thread_jump): Likewise.
7861         * sched-deps.c (sched_analyze): Likewise.
7862         * gcse.c (local_cprop_pass): Likewise.
7863         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
7864         If FN is non-NULL, call the callback always and whenever it returns
7865         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
7866         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
7867         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
7868         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
7869         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
7870         * var-tracking.c: Include recog.h.
7871         (bb_stack_adjust_offset): Remove.
7872         (vt_stack_adjustments): Don't call it, instead just gather the
7873         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
7874         (adjust_stack_reference): Remove.
7875         (compute_cfa_pointer): New function.
7876         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
7877         (struct adjust_mem_data): New type.
7878         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
7879         functions.
7880         (get_address_mode): New function.
7881         (replace_expr_with_values): Use it.
7882         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
7883         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
7884         (adjust_sets): Remove.
7885         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
7886         Use get_address_mode.
7887         (get_adjusted_src): Remove.
7888         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
7889         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
7890         (add_with_sets): Don't call adjust_sets.
7891         (fp_setter, vt_init_cfa_base): New functions.
7892         (vt_initialize): Change return type to bool.  Move most of pool etc.
7893         initialization to the beginning of the function from end.  Pass
7894         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
7895         If !frame_pointer_needed, call vt_stack_adjustment before mos
7896         vector is filled, call vt_init_cfa_base if argp/framep has been
7897         eliminated to sp.  If frame_pointer_needed and argp/framep has
7898         been eliminated to hard frame pointer, set
7899         hard_frame_pointer_adjustment and call vt_init_cfa_base after
7900         encountering fp setter in the prologue.  For MO_ADJUST, call
7901         log_op_type before pusing the op into mos vector, not afterwards.
7902         Call adjust_insn before cselib_process_insn/add_with_sets,
7903         call cancel_changes (0) afterwards.
7904         (variable_tracking_main_1): Adjust for vt_initialize calling
7905         vt_stack_adjustments and returning whether it succeeded or not.
7906
7907 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
7908
7909         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
7910         debug statements.
7911
7912 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
7913
7914         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
7915         has been set.
7916         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
7917         drap_reg has not been set.
7918
7919 2010-03-15  Michael Matz  <matz@suse.de>
7920
7921         PR middle-end/43300
7922         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
7923         use it to expand block copies.
7924         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
7925         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
7926         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
7927
7928 2010-03-15  Richard Guenther  <rguenther@suse.de>
7929
7930         PR tree-optimization/43367
7931         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
7932         elimination check.
7933
7934 2010-03-15  Richard Guenther  <rguenther@suse.de>
7935
7936         PR tree-optimization/43317
7937         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
7938
7939 2010-03-15  Martin Jambor  <mjambor@suse.cz>
7940
7941         PR tree-optimization/43141
7942         * tree-sra.c (create_abstract_origin): New function.
7943         (modify_function): Call create_abstract_origin.
7944
7945 2010-03-15  Chris Demetriou  <cgd@google.com>
7946
7947         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
7948         wasn't copied.
7949
7950 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7951
7952         PR middle-end/43354
7953         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
7954         call insert_out_of_ssa_copy for default definitions.
7955
7956 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7957
7958         * graphite-clast-to-gimple.c (my_long_long): Defined.
7959         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
7960         * graphite-sese-to-poly.c (my_long_long): Defined.
7961         (scop_ivs_can_be_represented): Use it.
7962
7963 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7964
7965         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
7966         graphite-max-bbs-per-function, and loop-block-tile-size.
7967         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
7968         with "maximum".
7969         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
7970
7971 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7972
7973         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
7974         forward declaration.
7975         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
7976         (add_upper_bounds_from_estimated_nit): New.
7977         (build_loop_iteration_domains): Use it.
7978
7979 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7980
7981         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
7982
7983 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7984
7985         PR middle-end/43306
7986         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
7987         should be an INTEGER_CST.  Also handle CASE_CONVERT.
7988
7989 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7990
7991         * graphite.c (graphite_initialize): To bound the number of bbs per
7992         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
7993         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
7994         * doc/invoke.texi: Document it.
7995
7996 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7997
7998         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
7999         * graphite-sese-to-poly.h (build_poly_scop): Same.
8000
8001 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8002
8003         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
8004         the number of parameters in the scop.  Use as an upper bound
8005         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
8006         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
8007         * doc/invoke.texi: Document it.
8008
8009 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
8010
8011         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
8012         * doc/c-tree.texi: Remove.
8013         * doc/generic.texi: Merge c-tree.texi here.
8014         * doc/gccint.texi (Trees): Remove menu entry.
8015         (c-tree.texi): Remove @include.
8016         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
8017         * doc/languages.texi (Reading RTL): Ditto.
8018
8019 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
8020
8021         PR target/42869
8022         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
8023
8024 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
8025
8026         PR middle-end/42431
8027         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
8028         code added to work around reload clobbering CONST insns.
8029
8030 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
8031
8032         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
8033         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
8034         (cselib_preserve_only_values): Remove retain argument, don't
8035         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
8036         * cselib.h (cselib_preserve_only_values): Remove retain argument.
8037         * var-tracking.c (micro_operation): Move insn field before union.
8038         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
8039         (struct variable_tracking_info_def): Remove n_mos field, change
8040         mos into a vector of micro_operations.
8041         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
8042         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
8043         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
8044         changing into a vector.
8045         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
8046         come before all other uops generated by add_stores.
8047         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
8048         argument removal.
8049         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
8050         a vector.  Run just one pass over the bbs instead of separate counting
8051         and computation phase.
8052         (vt_finalize): Free VTI (bb)->mos vector instead of array.
8053
8054         PR debug/43329
8055         * tree-inline.c (remap_decls): Put old_var rather than origin_var
8056         into *nonlocalized_list vector.
8057         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
8058         even if origin is non-NULL.
8059         (gen_variable_die): Likewise.
8060         (process_scope_var): Don't change origin.
8061         (gen_decl_die): Likewise.
8062         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
8063         before adding new edges instead of after it, fix moving over
8064         debug stmts.
8065
8066 2010-03-11  David S. Miller  <davem@davemloft.net>
8067
8068         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
8069         of four.
8070         * configure: Rebuild.
8071
8072 2010-03-11  Martin Jambor  <mjambor@suse.cz>
8073
8074         PR tree-optimization/43257
8075         * tree.c (assign_assembler_name_if_neeeded): New function.
8076         (free_lang_data_in_cgraph): Assembler name assignment moved to the
8077         above new function.
8078         * tree.h (assign_assembler_name_if_neeeded): Declare.
8079         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
8080         the function if needed.
8081
8082 2010-03-11  Chris Demetriou  <cgd@google.com>
8083
8084         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
8085         include/stdint-gcc.h, and include/stdint.h world-readable.
8086
8087 2010-03-11  Richard Guenther  <rguenther@suse.de>
8088
8089         PR tree-optimization/43255
8090         * tree-vrp.c (process_assert_insertions_for): Do not insert
8091         asserts for trivial conditions.
8092
8093 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8094
8095         PR tree-optimization/43280
8096         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
8097         generation.  Move calculation of size out of the if branch.
8098         (find_bswap): Modify compare number generation.
8099
8100 2010-03-11  Richard Guenther  <rguenther@suse.de>
8101
8102         PR lto/43200
8103         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
8104         (input_gimple_stmt): Fixup handled component types during
8105         operand read.  Also fix up decls in ADDR_EXPRs.
8106
8107 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
8108
8109         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
8110         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
8111
8112 2010-03-10  Jan Hubicka  <jh@suse.cz>
8113
8114         PR c/43288
8115         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
8116         * varasm.c (get_variable_section): Don't do that here...
8117         (make_decl_rtl): ... and here.
8118         (do_assemble_alias): Produce decl RTL.
8119         (assemble_alias): Likewise.
8120
8121 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
8122
8123         PR debug/43290
8124         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
8125         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
8126         of fde->vdrap_reg.
8127         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
8128         (based_loc_descr): Only express drap or vdrap regno based expressions
8129         using DW_OP_fbreg when not optimizing.
8130         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
8131         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
8132         REG_CFA_SET_VDRAP note.
8133
8134 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
8135
8136         PR tree-optimization/43236
8137         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
8138         error in calculation of base address in reverse iteration case.
8139         (generate_builtin): Take number of latch executions if the statement
8140         is in the latch.
8141
8142 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
8143
8144         PR middle-end/42859
8145         * tree-eh.c: Include pointer-set.h.
8146         (lower_eh_dispatch): Filter out duplicate case labels and
8147         remove the unneeded edge when the label is unused.  Return
8148         true when some edges are removed.
8149         (execute_lower_eh_dispatch): When any lowering resulted in
8150         removing an edge, also delete unreachable blocks.
8151
8152 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
8153
8154         PR bootstrap/43287
8155         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
8156         UNSPEC_MACHOPIC_OFFSET.
8157
8158 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
8159
8160         PR target/43294
8161         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
8162         (m68k_delegitimize_address): New function.
8163
8164 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
8165
8166         PR debug/43299
8167         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
8168
8169         PR debug/43299
8170         * var-tracking.c (adjust_sets): New function.
8171         (count_with_sets, add_with_sets): Use it.
8172         (get_adjusted_src): New inline function.
8173         (add_stores): Use it.
8174
8175         PR debug/43304
8176         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
8177         call cselib_dummy_expand_value_rtx_cb instead of
8178         cselib_expand_value_rtx_cb.
8179
8180         PR debug/43293
8181         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
8182         * config/i386/i386.c: Include debug.h and dwarf2out.h.
8183         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
8184         and .cfi_endproc around the pic thunks.
8185         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
8186         all queued unwind info register saves are saved before the call.
8187         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
8188         considered as sp-=4 for unwind info and the pop as sp+=4 which
8189         also clobbers dest, but doesn't actually restore it.
8190
8191         PR debug/43290
8192         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
8193         RTX_FRAME_RELATED_P.
8194
8195 2010-03-09  Jie Zhang  <jie@codesourcery.com>
8196
8197         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
8198         whitespaces in output template.
8199
8200 2010-03-09  Jie Zhang  <jie@codesourcery.com>
8201
8202         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
8203         out array boundary.
8204
8205 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
8206
8207         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
8208         builtins.exp in a separate job.
8209
8210 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8211
8212         * graphite-sese-to-poly.c (add_param_constraints): Use
8213         lower_bound_in_type and upper_bound_in_type.
8214
8215 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8216
8217         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
8218         instead of unsigned_type_node.
8219
8220 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8221             Reza Yazdani  <reza.yazdani@amd.com>
8222
8223         PR middle-end/43065
8224         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
8225         on pointer type parameters.
8226
8227 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
8228
8229         PR middle-end/42644
8230         PR middle-end/42130
8231         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
8232         handle conversions from pointer to integers.
8233         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
8234         induction variable, to be able to work with code generated by CLooG.
8235         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
8236         (build_poly_scop): Bail out if we cannot codegen a loop.
8237
8238 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
8239
8240         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
8241         code generation with gloog_error.
8242
8243 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8244
8245         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
8246         Call fold_convert on all the returned values.
8247         (expand_scalar_variables_expr): Pass to
8248         expand_scalar_variables_ssa_name the type of the resulting expression.
8249
8250 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8251
8252         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
8253         ppl_min_for_le_pointset.
8254         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
8255         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
8256
8257 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8258
8259         * graphite-dependences.c (map_into_dep_poly): Removed.
8260         (dependence_polyhedron_1): Use combine_context_id_scat.
8261
8262 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8263
8264         * graphite-poly.h (struct poly_scattering): Add layout documentation.
8265         (struct poly_bb): Same.
8266         (combine_context_id_scat): New.
8267
8268 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8269
8270         PR middle-end/42326
8271         * sese.c (name_defined_in_loop_p): Return false for default
8272         definitions.
8273
8274 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8275
8276         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
8277         and clean up the logic.
8278
8279 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8280
8281         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
8282         early return.
8283
8284 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
8285
8286         * var-tracking.c (remove_cselib_value_chains): Define only for
8287         ENABLE_CHECKING.
8288         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
8289         delete_slot_part, emit_notes_for_differences_1): Don't call
8290         remove_cselib_value_chains here.
8291         (set_slot_part, emit_notes_for_differences_2): Don't call
8292         add_cselib_value_chains here.
8293         (preserved_values): New vector.
8294         (preserve_value): New function.
8295         (add_uses, add_stores, vt_add_function_parameters): Use it
8296         instead of cselib_preserve_value.
8297         (changed_values_stack): New vector.
8298         (check_changed_vars_0): New function.
8299         (check_changed_vars_1, check_changed_vars_2): Use it.
8300         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
8301         changed_values_stack VALUEs.
8302         (vt_emit_notes): For all preserved_values call
8303         add_cselib_value_chains.  If ENABLE_CHECKING call
8304         remove_cselib_value_chains before verifying value_chains is empty.
8305         Initialize and free changed_values_stack.
8306         (vt_initialize): Initialize preserved_values.
8307         (vt_finalize): Free preserved_values.
8308
8309 2010-03-08  Richard Guenther  <rguenther@suse.de>
8310
8311         PR tree-optimization/43269
8312         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
8313         region detection.
8314
8315 2010-03-08  Martin Jambor  <mjambor@suse.cz>
8316
8317         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
8318         (ipa_is_param_called): Removed.
8319         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
8320         (ipa_print_node_params): Do not print the called flag.
8321         (ipa_write_node_info): Do not stream the called flag.
8322         (ipa_read_node_info): Likewise.
8323
8324 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
8325
8326         PR debug/43176
8327         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
8328         * cselib.c (struct expand_value_data): Add dummy field.
8329         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
8330         dummy to false.
8331         (cselib_dummy_expand_value_rtx_cb): New function.
8332         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
8333         any rtl.
8334         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
8335         * var-tracking.c: Include pointer-set.h.
8336         (variable): Change n_var_parts to char from int.  Add
8337         cur_loc_changed and in_changed_variables fields.
8338         (variable_canonicalize): Remove.
8339         (shared_var_p): New inline function.
8340         (unshare_variable): Maintain cur_loc_changed and
8341         in_changed_variables fields.  If var was in changed_variables,
8342         replace it there with new_var.  Just copy cur_loc instead of
8343         resetting it to something else.
8344         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
8345         (dataflow_set_union): Don't call variable_canonicalize.
8346         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
8347         of their DEBUG_EXPR_TREE_DECLs.
8348         (canonicalize_loc_order_check): Verify that cur_loc is NULL
8349         and in_changed_variables and cur_loc_changed is false.
8350         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
8351         and cur_loc_changed.  Don't update cur_loc here.
8352         (variable_merge_over_src): Don't call variable_canonicalize.
8353         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
8354         removing loc that is equal to cur_loc, clear cur_loc,
8355         set cur_loc_changed and ensure variable_was_changed is called.
8356         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
8357         compare pointers in cur_loc check, if it is equal to loc,
8358         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
8359         (variable_different_p): Remove compare_current_location argument,
8360         don't compare cur_loc.
8361         (dataflow_set_different_1): Adjust variable_different_p caller.
8362         (variable_was_changed): If dv had some var in changed_variables
8363         already, reset in_changed_variables flag for it and propagate
8364         cur_loc_changed over to the new variable.  On empty var
8365         always set cur_loc_changed.  Set in_changed_variables on whatever
8366         var is added to changed_variables.
8367         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
8368         Use shared_var_p.  When removing loc that is equal to cur_loc,
8369         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
8370         end, don't set it to something else, just call variable_was_changed.
8371         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
8372         loc being removed, clear cur_loc and set cur_loc_changed.
8373         Set cur_loc_changed if all locations have been removed.
8374         (struct expand_loc_callback_data): New type.
8375         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
8376         allocated.  Always create SUBREGs if simplify_subreg failed.
8377         Prefer to use cur_loc, when that fails and still in
8378         changed_variables (and seen first time) recompute it.  Set
8379         cur_loc_changed of variables which had to change cur_loc and
8380         compute elcd->cur_loc_changed if any of the subexpressions used
8381         had to change cur_loc.
8382         (vt_expand_loc): Adjust to pass arguments in
8383         expand_loc_callback_data structure.
8384         (vt_expand_loc_dummy): New function.
8385         (emitted_notes): New variable.
8386         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
8387         that weren't used for any other decl in current
8388         emit_notes_for_changes call call vt_expand_loc_dummy to update
8389         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
8390         first loc_chain location if NULL before.  Always use just
8391         cur_loc instead of first loc_chain location.  When cur_loc_changed
8392         is false, when not --enable-checking=rtl just don't emit any note.
8393         When rtl checking, compute the note and assert it is the same
8394         as previous note.  Clear cur_loc_changed and in_changed_variables
8395         at the end before removing from changed_variables.
8396         (check_changed_vars_3): New function.
8397         (emit_notes_for_changes): Traverse changed_vars to call
8398         check_changed_vars_3 on each changed var.
8399         (emit_notes_for_differences_1): Clear cur_loc_changed and
8400         in_changed_variables.  Recompute cur_loc of new_var.
8401         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
8402         (vt_emit_notes): Initialize and destroy emitted_notes.
8403
8404 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
8405
8406         PR rtl-optimization/42220
8407         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
8408         Use verify_reg_tracked to determine if we should use OP_OUT rather
8409         than OP_INOUT.
8410         (build_def_use): If we see an in-out operand for a register that we
8411         know nothing about, treat is an output if possible, fail the block if
8412         not.
8413
8414 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
8415
8416         PR debug/42897
8417         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
8418         permanently.
8419
8420 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
8421
8422         PR debug/42897
8423         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
8424         uses of relevant DEFs that are dead outside the loop too.
8425
8426 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
8427
8428         * var-tracking.c (dataflow_set_merge): Swap src and src2.
8429         Reverted:
8430         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
8431         PR debug/41371
8432         * var-tracking.c (values_to_unmark): New variable.
8433         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
8434         values_to_unmark vector.  Moved body to...
8435         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
8436         instead queue it into values_to_unmark vector.
8437         (vt_find_locations): Free values_to_unmark vector.
8438
8439 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
8440
8441         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
8442         (site.exp): Export them when plugins are enabled.
8443
8444 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
8445
8446         PR middle-end/42326
8447         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
8448         that contain scevs.
8449         (chrec_fold_multiply): Same.
8450
8451 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
8452
8453         PR c/43248
8454         * c-decl.c (build_compound_literal): Return early if init is
8455         an error_mark_node.
8456
8457 2010-03-04  Martin Jambor  <mjambor@suse.cz>
8458
8459         PR tree-optimization/43164
8460         PR tree-optimization/43191
8461         * tree-sra.c (type_consists_of_records_p): Reject records with
8462         zero-size bit-fields at the end.
8463
8464 2010-03-04  Mike Stump  <mikestump@comcast.net>
8465
8466         * Makefile.in (TAGS): Remove *.y.
8467
8468 2010-03-04  Richard Guenther  <rguenther@suse.de>
8469
8470         PR tree-optimization/40761
8471         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
8472         in reverse order.
8473         (my_rev_post_order_compute): New function.
8474         (init_pre): Call it.
8475
8476 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
8477
8478         PR middle-end/43209
8479         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
8480         decrease the cost of an IV candidate when the cost is infinite.
8481
8482 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8483
8484         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
8485         Use '3DNow!' for the extension of that name, ensure normal space
8486         after the string.
8487         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
8488
8489 2010-03-03  Jeff Law  <law@redhat.com>
8490
8491         * PR middle-end/32693
8492         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
8493         than gen_rtx_SUBREG.
8494         (extract_bit_field_1): Likewise.
8495
8496 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
8497
8498         * doc/sourcebuild.texi (Test directives): Document that arguments
8499         include-opts and exclude-opts are now optional for dg-skip-if,
8500         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
8501
8502 2010-03-03  Jason Merrill  <jason@redhat.com>
8503
8504         PR c++/12909
8505         * cgraph.h (varpool_node): Add extra_name field.
8506         * varpool.c (varpool_extra_name_alias): New.
8507         (varpool_assemble_decl): Emit extra name aliases.
8508         (varpool_mark_needed_node): Look past an extra name alias.
8509         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
8510         * lto-streamer-in.c (lto_input_tree): Read it.
8511         * lto-streamer-out.c (output_unreferenced_globals): Write it.
8512
8513 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
8514
8515         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
8516         (sparc*-*-solaris2*): ...this.
8517
8518 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
8519
8520         PR debug/43229
8521         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
8522         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
8523         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
8524         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
8525
8526         PR debug/43237
8527         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
8528         fallthrough to default handling, just with want_address 0 instead of 2.
8529         For single element lists, add_AT_loc directly, otherwise create an
8530         artificial variable DIE and stick location list to it.
8531
8532         PR debug/43177
8533         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
8534         (VAL_EXPR_HAS_REVERSE): Define.
8535         (reverse_op): New function.
8536         (add_stores): For reversible operations add an extra MO_VAL_USE.
8537
8538 2010-03-02  Jason Merrill  <jason@redhat.com>
8539
8540         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
8541
8542 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
8543
8544         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
8545         (sparc64-*-linux*): Likewise.
8546         (sparc64-*-solaris2*): Include assembler files before linker ones.
8547         (sparc-*-solaris2*): Simplify and reorder to match previous case.
8548         * config/sparc/gas.h: Delete.
8549         * config/sparc/sol2-64.h: Add copyright notice.
8550         * config/sparc/sol2-gas-bi.h: Likewise.
8551         * config/sparc/sol2-gld.h: Likewise.
8552         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
8553         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
8554         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
8555         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
8556         (sparc_elf_asm_named_section): Rename into...
8557         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
8558
8559 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
8560
8561         * config/alpha/alpha.c (override_options): Fix -mtune error message.
8562
8563 2010-03-02  Jeff Law  <law@redhat.com>
8564
8565         PR middle-end/42431
8566         * reload1.c (rtx_p, substitute_stack): Declare.
8567         (substitute): Record addresses of changed rtxs.
8568         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
8569         Restore the original rtx when complete.
8570         (reload): Free subsitute_stack when complete.
8571
8572 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
8573
8574         * doc/gccint.texi (menu): Add Testsuites as a chapter.
8575         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
8576         new chapter.
8577         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
8578         LTO Testing, gcov Testing, profopt Testing, compat Testing,
8579         Torture Tests): Change from subsection to section.
8580
8581 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
8582             Steven Bosscher  <steven@gcc.gnu.org>
8583
8584         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
8585         instead of bb.
8586
8587 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
8588
8589         PR middle-end/42640
8590         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
8591         the assignment from the new induction variable to the assignment
8592         of the value from the original loop PHI function.
8593
8594 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
8595             Daniel Jacobowitz  <dan@codesourcery.com>
8596
8597         * doc/sourcebuild.texi (Test directives): Clarify options to
8598         dg-skip-if.
8599
8600 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8601
8602         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
8603         Disable cfi directives unless GCC and gas agree on using read-only
8604         .eh_frame sections for 64-bit.
8605         * configure: Regenerate.
8606
8607 2010-03-01  Richard Guenther  <rguenther@suse.de>
8608
8609         PR tree-optimization/43220
8610         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
8611         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
8612
8613 2010-03-01  Richard Guenther  <rguenther@suse.de>
8614             Martin Jambor  <mjambor@suse.cz>
8615
8616         PR middle-end/41250
8617         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
8618         gimplified parameters.
8619
8620 2010-03-01  Christian Bruel  <christian.bruel@st.com>
8621
8622         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
8623
8624 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
8625
8626         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
8627
8628 2010-03-01  Richard Guenther  <rguenther@suse.de>
8629
8630         PR middle-end/43213
8631         * expr.c (expand_assignment): Use the alias-oracle to tell
8632         if the rhs aliases the result decl.
8633
8634 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8635
8636         PR pch/14940
8637         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
8638         to sol_gt_pch_get_address.
8639         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
8640         64-bit, SPARC and x86.
8641         (sol_gt_pch_get_address): New function.
8642
8643 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
8644
8645         * toplev.h (inform_n, error_n): Declare.
8646         * diagnostic.c (inform_n, error_n): New function.
8647
8648 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
8649
8650         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
8651         has no rtl yet when processing local_decls, queue it and recheck
8652         if deferred stack allocation hasn't assigned it rtl.
8653
8654 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
8655
8656         * config/sh/sh.c (unspec_bbr_uid): New.
8657         (gen_block_redirect): Use it instead of INSN_UID.
8658         (gen_far_branch): Likewise.
8659
8660 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
8661
8662         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
8663         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
8664
8665 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8666
8667         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
8668         (Warning Options): -Wno-conversion-null is valid for
8669         Objective-C++ as well.
8670         * doc/tm.texi (Named Address Spaces): Likewise.
8671         * doc/plugins.texi (Plugins): Replace TABs with spaces.
8672         * doc/tree-ssa.texi (Tree SSA): Likewise.
8673
8674 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8675
8676         PR bootstrap/43202
8677         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
8678         by default.  Don't set the default arch for
8679         i[34567]86-*-darwin*|x86_64-*-darwin*.
8680
8681 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8682
8683         PR bootstrap/43202
8684         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
8685         default.  Set the default 32bit/64bit archs with $with_arch
8686         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
8687
8688 2010-02-27  Richard Guenther  <rguenther@suse.de>
8689
8690         PR tree-optimization/43186
8691         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
8692         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
8693         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
8694         unroller iterations.
8695
8696 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8697
8698         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
8699         required and i[34567]86-*-* targets don't support 64bit ISA.
8700
8701 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
8702
8703         PR ada/43096
8704         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
8705         the same alias set.
8706
8707 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
8708
8709         * config.gcc: Set the default arch at least to Prescott for
8710         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
8711         if SSE math is enabled.
8712
8713 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8714
8715         * diagnostic.c (diagnostic_initialize): Update.
8716         (diagnostic_report_diagnostic): Test inhibit_notes_p for
8717         informative notes.
8718         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
8719         (diagnostic_inhibit_notes): New.
8720         * toplev.c (process_options): inhibit notes with -fcompare-debug.
8721
8722 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8723
8724         PR c/20631
8725         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
8726         * doc/standards.texi: Likewise.
8727         * doc/extend.texi: Likewise.
8728         * doc/trouble.texi: Likewise.
8729         * doc/cppopts.texi: Likewise.
8730         * doc/install.texi: Likewise.
8731         * c.opt (std=c90,std=gnu90): New options.
8732         * c-opts.c (c_common_handle_option): Handle them.
8733
8734 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8735
8736         PR c/24577
8737         * c-decl.c (undeclared_variable): Use an informative note.
8738
8739 2010-02-26  Richard Guenther  <rguenther@suse.de>
8740
8741         PR tree-optimization/43186
8742         * gimple.h (gimple_fold): Remove.
8743         * gimple.c (gimple_fold): Remove.  Inline into single user ...
8744         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
8745         Try harder for conditions.
8746
8747 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
8748
8749         PR debug/43190
8750         * function.c (used_types_insert): Don't skip through named pointer
8751         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
8752         and it is different from the main variant's type.
8753
8754 2010-02-26  Nick Clifton  <nickc@redhat.com>
8755
8756         * config/rx/rx.md (sminsi3): Remove bogus alternative.
8757
8758 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
8759
8760         * config.gcc: Support --with-fpmath=sse for x86.
8761
8762         * config/i386/ssemath.h: New.
8763
8764         * doc/install.texi (--with-fpmath=sse): Documented.
8765
8766 2010-02-26  Richard Guenther  <rguenther@suse.de>
8767
8768         PR tree-optimization/43188
8769         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
8770         vector types of over-aligned element type.
8771
8772 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
8773
8774         PR target/43175
8775         * config/i386/i386.c (expand_vec_perm_blend): Use correct
8776         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
8777
8778 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
8779
8780         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
8781
8782 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
8783
8784         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
8785         * var-tracking.c: Include diagnostic.h.
8786         (debug_dv): New function.
8787         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
8788
8789         PR debug/43160
8790         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
8791         (add_value_chain, add_value_chains, remove_value_chain,
8792         remove_value_chains): Handle DEBUG_EXPRs.
8793         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
8794
8795         PR debug/43161
8796         * regcprop.c (struct queued_debug_insn_change): New type.
8797         (struct value_data_entry): Add debug_insn_changes field.
8798         (struct value_data): Add n_debug_insn_changes field.
8799         (debug_insn_changes_pool): New variable.
8800         (free_debug_insn_changes, apply_debug_insn_changes,
8801         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
8802         (kill_value_one_regno): Call free_debug_insn_changes if needed.
8803         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
8804         fields.
8805         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
8806         changes for them.
8807         (copyprop_hardreg_forward_1): Don't call apply_change_group for
8808         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
8809         changes, call cprop_find_used_regs via note_stores.
8810         (copyprop_hardreg_forward): When copying vd from predecessor
8811         which has any queued DEBUG_INSN changes, make sure the pointers are
8812         cleared.  At the end call df_analyze and then if there are any
8813         DEBUG_INSN changes queued at the end of some basic block for still
8814         live registers, apply them.
8815         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
8816
8817 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
8818
8819         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
8820         (arm*-*-*): Ditto.
8821
8822 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
8823
8824         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
8825         targets.  Set the default with_cpu/with_arch from arch/cpu.
8826         Allow x86-64 and native for with_cpu/with_arch.
8827
8828 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
8829
8830         * ebitmap.c: Change calls to verify_popcount with calls to
8831         sbitmap_verify_popcount.
8832         (ebitmap_clear_bit): Fixed map->cacheindex test and
8833         map>cache update when bit clearing results in an empty
8834         element.
8835
8836 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
8837
8838         PR target/43154
8839         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
8840         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
8841         and support both V2DF and V2DI modes.
8842         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
8843         support both V2DF and V2DI modes.
8844         (general): Delete trailing whitespace from a few patterns.
8845
8846         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8847         V2DF/V2DI interleave high/low builtins.
8848
8849         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
8850         new VSX builtins.
8851
8852         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
8853         interleave high/low functions.
8854
8855 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
8856
8857         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
8858         #pragma extern_prefix.
8859
8860 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
8861
8862         PR debug/43166
8863         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
8864         BLKmode, assert op0 is a MEM and just adjust its mode.
8865
8866         PR debug/43165
8867         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
8868         if bitpos isn't multiple of mode's bitsize.
8869
8870 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8871
8872         * c.opt (-ftemplate-depth=): New.
8873         (-ftemplate-depth-): Deprecate.
8874         * optc-gen.awk: Handle -ftemplate-depth=.
8875         * opth-gen.awk: Likewise.
8876         * c-opts.c (c_common_handle_option): Likewise.
8877         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
8878
8879 2010-02-24  Jason Merrill  <jason@redhat.com>
8880
8881         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
8882
8883 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8884
8885         * cfg.c (alloc_aux_for_block): Remove inline.
8886         (alloc_aux_for_edge): Likewise.
8887
8888 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8889
8890         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
8891
8892 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8893
8894         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
8895         * config/i386/sol2-gas.h: New file.
8896         * config.gcc (i[34567]86-*-solaris2*): Use it.
8897
8898 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8899
8900         PR c/43128
8901         * c-typeck.c (ep_convert_and_check): New.
8902         (build_conditional_expr): Use it.
8903         (build_binary_op): Likewise.
8904
8905 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
8906
8907         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
8908
8909         PR debug/43150
8910         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
8911         bounds even for -O+.
8912         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
8913         expr needs to have DECL_NAME set.
8914
8915 2010-02-24  Nick Clifton  <nickc@redhat.com>
8916
8917         * config/mep/mep.c: Include gimple.h.
8918         (mep_function_uses_sp): Delete unused function.
8919         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
8920         parameters.  Use unsigned integers to count args.  Return a
8921         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
8922
8923 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
8924
8925         PR target/43107
8926         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
8927         greater or equal to nelt instead of 2 * nelt.
8928         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
8929         with nelt - 1.
8930
8931 2010-02-23  Jason Merrill  <jason@redhat.com>
8932
8933         PR debug/42800
8934         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
8935         in cfun->local_decls even if they have register types.
8936
8937         PR c++/42837
8938         * stor-layout.c (place_field): Don't warn about unnecessary
8939         DECL_PACKED if the type is packed.
8940
8941 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
8942
8943         PR target/43139
8944         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
8945         GOTOFF relocs, even when the base reg isn't pic pointer.
8946
8947 2010-02-23  Michael Matz  <matz@suse.de>
8948
8949         PR debug/43077
8950         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
8951         (expand_gimple_basic_block): Generate and use debug temps if there
8952         are debug uses left after the last real use of TERed ssa names.
8953         Unlink debug immediate uses when they are expanded.
8954
8955 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8956
8957         PR 43123
8958         * config/i386/i386.c (override_options): Reorganise to provide
8959         better error messages.
8960
8961 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
8962
8963         PR middle-end/43083
8964         * graphite-scop-detection.c (create_single_exit_edge): Move
8965         the call to find_single_exit_edge to....
8966         (create_sese_edges): ...here.  Don't handle multiple edges
8967         exiting the function.
8968         (build_graphite_scops): Don't handle multiple edges
8969         exiting the function.
8970
8971 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
8972
8973         PR middle-end/43097
8974         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
8975         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
8976
8977 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
8978
8979         PR middle-end/43026
8980         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
8981
8982 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8983
8984         PR c++/43126
8985         * c-typeck.c (convert_arguments): Print declaration location.
8986         * c-common.c (validate_nargs): Rename as
8987         builtin_function_validate_nargs.
8988         (check_builtin_function_arguments): Update.
8989
8990 2010-02-22  Richard Guenther  <rguenther@suse.de>
8991
8992         PR lto/43045
8993         * tree-inline.c (declare_return_variable): Use the type of
8994         the call stmt lhs if available.
8995
8996 2010-02-22  Duncan Sands  <baldrick@free.fr>
8997
8998         * passes.c (register_pass): Always consider all pass lists when
8999         ref_pass_instance_number is zero.
9000
9001 2010-02-22  Richard Guenther  <rguenther@suse.de>
9002
9003         PR tree-optimization/42749
9004         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
9005         parameter.  Do arithmetic in the original type.
9006         (update_accumulator_with_ops): Likewise.
9007         (adjust_accumulator_values): Adjust.
9008
9009 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9010
9011         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
9012         (QI to BLKmode splitter): New splitter.
9013
9014 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
9015
9016         * config/i386/i386.c (initial_ix86_tune_features): Turn on
9017         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
9018
9019 2010-02-22  Richard Guenther  <rguenther@suse.de>
9020
9021         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
9022
9023 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
9024
9025         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
9026         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
9027         ($(T)crti.o, $(T)crtn.o): Remove rules.
9028
9029 2010-02-21  Tobias Burnus  <burnus@net-b.de>
9030
9031         PR fortran/35259
9032         * doc/invoke.texi (-fassociative-math): Document that this
9033         option is automatically enabled for Fortran.
9034
9035 2010-02-20  David S. Miller  <davem@davemloft.net>
9036
9037         * configure.ac: Test if linker and assembler properly support
9038         GOTDATA_OP relocations.
9039         * configure: Rebuild.
9040         * config.in: Likewise.
9041         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
9042         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
9043         (movsi_high_pic): Likewise.
9044         (movdi_lo_sum_pic): Likewise.
9045         (movdi_high_pic): Likewise.
9046         (movsi_pic_gotdata_op): New pattern.
9047         (movdi_pic_gotdata_op): Likewise.
9048         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
9049         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
9050
9051 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
9052
9053         PR target/43067
9054         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
9055         attribute to ssemul.
9056         (xop_mulv2div2di3_high): Ditto.
9057
9058 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9059
9060         PR c++/35669
9061         * c.opt (Wconversion-null): New option.
9062         * doc/invoke.texi (Wconversion-null): Document.
9063
9064 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9065
9066         * common.opt (Wlarger-than-): Add Undocumented.
9067
9068 2010-02-19  Mike Stump  <mikestump@comcast.net>
9069
9070         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
9071
9072 2010-02-19  Jason Merrill  <jason@redhat.com>
9073
9074         PR target/40332
9075         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
9076         * configure: Likewise.
9077
9078 2010-02-20  Alan Modra  <amodra@gmail.com>
9079
9080         PR middle-end/42344
9081         * cgraph.h (cgraph_make_decl_local): Declare.
9082         * cgraph.c (cgraph_make_decl_local): New function.
9083         (cgraph_make_node_local): Use it.
9084         * cgraphunit.c (cgraph_function_versioning): Likewise.
9085         * ipa.c (function_and_variable_visibility): Likewise.
9086
9087 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9088
9089         PR bootstrap/43121
9090         * except.c (sjlj_emit_function_enter): Don't call
9091         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
9092         directly.
9093         * rtl.h (add_reg_br_prob_note): Remove prototype.
9094
9095 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9096
9097         PR 41779
9098         * c-common.c (conversion_warning): Remove widening conversions
9099         before checking the conversion of integers to reals.
9100
9101 2010-02-19  Mike Stump  <mikestump@comcast.net>
9102
9103         PR middle-end/43125
9104         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
9105
9106         PR objc/43061
9107         * cgraphunit.c (process_function_and_variable_attributes): Check
9108         DECL_PRESERVE_P instead of looking up attribute "used".
9109         * ipa-pure-const.c (check_decl): Likewise.
9110         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
9111         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
9112         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
9113         instead of attribute "used".
9114         * config/sol2-c.c (solaris_pragma_init): Likewise.
9115         (solaris_pragma_fini): Likewise.
9116
9117 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9118
9119         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
9120         Use XCNEW instead of xcalloc.
9121         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
9122         XNEW instead of xmalloc.
9123         (get_fields): Use XNEWVEC instead of xmalloc.
9124
9125         PR debug/43084
9126         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
9127         populate vars array.
9128         (create_new_general_access): For debug stmts just reset value.
9129         (get_stmt_accesses): For accesses within debug stmts just record them
9130         using add_access_to_acc_sites instead of preventing the peeling or
9131         counting them as accesses.
9132
9133         PR middle-end/42233
9134         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
9135
9136 2010-02-19  Richard Guenther  <rguenther@suse.de>
9137
9138         PR tree-optimization/42916
9139         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
9140         instructions.
9141
9142 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
9143
9144         * configure.ac: Replace all uses of changequote in macro arguments
9145         with proper quoting.
9146
9147 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9148
9149         PR middle-end/42233
9150         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
9151
9152 2010-02-19  Richard Guenther  <rguenther@suse.de>
9153
9154         PR tree-optimization/42944
9155         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
9156         test for aliasing with errno.
9157
9158 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9159
9160         PR middle-end/42233
9161         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
9162         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
9163         * dojump.c: Include output.h.
9164         (inv): New inline function.
9165         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
9166         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
9167         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
9168         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
9169         argument, pass it down to other calls.
9170         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
9171         add REG_BR_PROB note to the conditional jump.
9172         * cfgexpand.c (add_reg_br_prob_note): Removed.
9173         (expand_gimple_cond): Don't call it, add the probability
9174         as last argument to jumpif_1/jumpifnot_1.
9175         * Makefile.in (dojump.o): Depend on output.h.
9176         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
9177         callers.
9178         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
9179         * stmt.c (do_jump_if_equal): Likewise.
9180         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
9181         * loop-unswitch.c (compare_and_jump_seq): Likewise.
9182         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
9183         Likewise.
9184         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
9185         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
9186         jumpifnot_1 callers.
9187         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
9188         callers.
9189         (store_expr): Adjust jumpifnot caller.
9190         (store_constructor): Adjust jumpif caller.
9191
9192         PR middle-end/42233
9193         * gimplify.c (gimple_boolify): For __builtin_expect call
9194         gimple_boolify also on its first argument.
9195
9196 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
9197
9198         * configure.ac (gnu-unique-object): Wrap regexps using [] in
9199         changequote block.
9200         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
9201         * configure: Regenerated.
9202
9203 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9204
9205         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
9206         lang_hooks.types_compatible_p instead of comptypes.
9207
9208 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
9209
9210         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
9211         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
9212         if __prefer_thumb__ is defined.
9213
9214 2010-02-18  Martin Jambor  <mjambor@suse.cz>
9215
9216         PR tree-optimization/43066
9217         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
9218         array with zero-sized element type.
9219
9220 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
9221
9222         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
9223         rtx, allocate struct var_loc_node here and return it to the
9224         caller, and only if it is actually needed.
9225         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
9226         move it earlier and return immediately if it returns NULL.
9227
9228 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
9229
9230         * config/sparc/gas.h: New file.  Restore
9231         TARGET_ASM_NAMED_SECTION to its ELF default.
9232         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
9233         check !HAVE_GNU_AS.
9234         * config/sparc/sparc.c (sparc_elf_asm_named_section):
9235         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
9236         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
9237         after sparc/sysv4.h.
9238
9239 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
9240
9241         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
9242
9243 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
9244
9245         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
9246         patterns from predicated pattern.
9247
9248 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
9249
9250         PR target/43103
9251         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
9252         for insn mnemonic suffix.
9253
9254 2010-02-17  Richard Guenther  <rguenther@suse.de>
9255
9256         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
9257         to loop PHI nodes.
9258
9259 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
9260
9261         PR debug/42918
9262         * caller-save.c (save_call_clobbered_regs): If BB ends with
9263         a DEBUG_INSN, move any notes in between last real insn and the last
9264         DEBUG_INSN after the last DEBUG_INSN.
9265
9266 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
9267
9268         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
9269         Fix return type.  Fix argument type.  Explain meaning of return value.
9270
9271 2010-02-16  Richard Guenther  <rguenther@suse.de>
9272
9273         PR tree-optimization/41043
9274         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
9275         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
9276         statements ...
9277         (vrp_visit_phi_node): ... but only for loop PHI nodes.
9278
9279 2010-02-16  Ira Rosen  <irar@il.ibm.com>
9280
9281         PR tree-optimization/43074
9282         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
9283         * tree-vect-loop.c (vect_analyze_loop_operations): Add
9284         vectorizable cycles in hybrid SLP check.
9285         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
9286
9287 2010-02-16  Richard Guenther  <rguenther@suse.de>
9288
9289         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
9290         (true_dependence): If memrefs_conflict_p computes must-alias
9291         trust it.  Move TBAA check after offset-based disambiguation.
9292         (canon_true_dependence): Likewise.
9293
9294 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
9295
9296         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
9297         * doc/invoke.texi: Document it.
9298         * var-tracking.c: Include toplev.h and params.h.
9299         (vt_find_locations): Return bool indicating success.  Compute
9300         hash sizes unconditionally.  Check new parameter, report.
9301         (variable_tracking_main_1): Check vt_find_locations results and
9302         retry.  Renamed from...
9303         (variable_tracking_main): ... this.  New wrapper to preserve
9304         flag_var_tracking_assignments.
9305         * Makefile.in (var-tracking.o): Adjust dependencies.
9306
9307 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
9308             Jakub Jelinek <jakub@redhat.com>
9309
9310         PR target/42854
9311         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
9312         if weak_import attribute is present.
9313         * config/darwin.c (machopic_select_section): Likewise.
9314
9315 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
9316
9317         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
9318         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
9319         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
9320         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
9321
9322         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
9323         types.
9324
9325         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
9326         Fix argument types.
9327
9328         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
9329         Rewrite text to refer to the names.
9330
9331 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
9332
9333         * config/i386/i386-builtin-types.def
9334         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
9335         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
9336         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
9337         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
9338         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
9339         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
9340         IX86_BUILTIN_VPERMIL2PS256.
9341         (MULTI_ARG_4_DF2_DI_I): Defined.
9342         (MULTI_ARG_4_DF2_DI_I1): Defined.
9343         (MULTI_ARG_4_SF2_SI_I): Defined.
9344         (MULTI_ARG_4_SF2_SI_I1): Defined.
9345         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
9346         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
9347         __builtin_ia32_vpermil2ps256.
9348         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9349         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9350         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
9351         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9352         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9353         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
9354         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
9355         CODE_FOR_xop_vpermil2v8sf3.
9356         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
9357         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
9358         * config/i386/xopintrin.h (_mm_permute2_pd): New.
9359         (_mm256_permute2_pd): New.
9360         (_mm_permute2_ps): New.
9361         (_mm256_permute2_ps): New.
9362
9363 2010-02-15  Nick Clifton  <nickc@redhat.com>
9364
9365         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
9366         boolean parameters.  Use emit_jump_insn when emitting a pop
9367         instruction containing a return insn.
9368         (push): Use 'true' rather than '1' as second parameter to F.
9369         (h8300_expand_prologue): Likewise.
9370         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
9371         (h8300_expand_epilogue): Likewise.
9372
9373 2010-02-15  Richard Guenther  <rguenther@suse.de>
9374
9375         PR middle-end/43068
9376         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
9377         if that is zero.
9378
9379 2010-02-15  Nick Clifton  <nickc@redhat.com>
9380
9381         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
9382         delta.
9383
9384 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
9385
9386         * intl.c (fake_ngettext): New function.
9387         * intl.h (fake_ngettext): Declare.
9388         (ngettext): Define macro.
9389         * collect2.c (notice_translated): New function.
9390         (main): Use notice_translated and ngettext.
9391         * collect2.h (notice_translated): Declare.
9392
9393 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
9394
9395         * reorg.c (delete_computation): Comment fixes.
9396         * caller-save.c (setup_save_areas): Idem.
9397         * sel-sched-dump.c (dump_lv_set): Idem.
9398         * rtl.def: Idem.
9399
9400 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9401
9402         * config/s390/s390.c (s390_sched_init): New function.
9403         (TARGET_SCHED_INIT): Target hook defined.
9404
9405 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
9406             Jack Howarth  <howarth@bromo.med.uc.edu>
9407             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
9408
9409         PR target/42982
9410         Partial revert of unintended change in fix for PR41605.
9411         * config/darwin.h: Fix typo.
9412         * config/darwin9.h: Same.
9413
9414 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
9415
9416         * c-pch.c (pch_init): Clear v.
9417
9418 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9419
9420         PR middle-end/42930
9421         * graphite-scop-detection.c (graphite_can_represent_scev): Call
9422         graphite_can_represent_init for MULT_EXPR.
9423
9424 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9425
9426         PR middle-end/42914
9427         PR middle-end/42530
9428         * graphite-sese-to-poly.c (remove_phi): New.
9429         (translate_scalar_reduction_to_array): Call remove_phi.
9430
9431 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9432
9433         PR middle-end/42771
9434         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
9435         * graphite-clast-to-gimple.h (gloog): Update declaration.
9436         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
9437         * graphite-poly.h (struct poly_bb): Add missing comments.
9438         (struct scop): Add poly_scop_p field.
9439         (POLY_SCOP_P): New.
9440         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
9441         * graphite.c (graphite_transform_loops): Build the polyhedral
9442         representation for each scop before code generation.
9443         * sese.c (rename_variables_in_operand): Removed.
9444         (rename_variables_in_expr): Return the renamed expression.
9445         (rename_sese_parameters): New.
9446         * sese.h (rename_sese_parameters): Declared.
9447
9448 2010-02-11  Richard Guenther  <rguenther@suse.de>
9449
9450         PR tree-optimization/42998
9451         * tree-ssa-pre.c (create_expression_by_pieces): Treat
9452         POINTER_PLUS_EXPR properly.
9453
9454 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9455             Changpeng Fang  <changpeng.fang@amd.com>
9456
9457         PR middle-end/40886
9458         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
9459         the cost of an IV candidate when the IV is used in a test against zero.
9460
9461         * gcc.dg/tree-ssa/ivopts-3.c: New.
9462
9463 2010-02-11  Richard Guenther  <rguenther@suse.de>
9464
9465         PR lto/41664
9466         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
9467         pointer-vs-decl case by swapping refs.  Handle some cases
9468         of pointer-vs-decl disambiguations more conservatively.
9469         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
9470         to false after expanding.
9471
9472 2010-02-11  Richard Guenther  <rguenther@suse.de>
9473
9474         PR driver/43021
9475         * gcc.c (process_command): Handle LTO file@offset case more
9476         appropriately.
9477
9478 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
9479
9480         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
9481         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
9482         of DEBUG_INSNs.
9483         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
9484
9485         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
9486         if MEM's mode size isn't DWARF2_ADDR_SIZE.
9487         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
9488         Optimize eq/ne comparisons when both arguments are known to be
9489         zero-extended.
9490         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
9491         Don't mask operands unnecessarily if they are known to be already
9492         zero-extended.
9493
9494 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
9495
9496         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
9497         instead of loop.
9498
9499 2010-02-10  Richard Guenther  <rguenther@suse.de>
9500
9501         PR tree-optimization/43017
9502         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
9503         for wrapping signed arithmetic.
9504
9505 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
9506
9507         PR debug/43010
9508         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
9509         if no debug info should be emitted for it.
9510
9511 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
9512
9513         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
9514         note when flag_exceptions is set.
9515
9516 2010-02-10  Duncan Sands  <baldrick@free.fr>
9517
9518         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
9519
9520 2010-02-10  Richard Guenther  <rguenther@suse.de>
9521
9522         PR c/43007
9523         * tree.c (get_unwidened): Handle constants.
9524         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
9525
9526 2010-02-10  Martin Jambor  <mjambor@suse.cz>
9527
9528         PR lto/42985
9529         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
9530         check for variable argument counts independently.
9531
9532 2010-02-10  Christian Bruel  <christian.bruel@st.com>
9533
9534         PR target/42841
9535         * config/sh/sh.c (find_barrier): Increase length for non delayed
9536         conditional branches.
9537
9538 2010-02-10  Christian Bruel  <christian.bruel@st.com>
9539
9540         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
9541
9542 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
9543
9544         * builtins.c (set_builtin_user_assembler_name): Also handle
9545         ffs if int is smaller than word.
9546
9547 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
9548
9549         PR middle-end/42973
9550         * ira-conflicts.c (get_dup): Remove.
9551         (process_reg_shuffles): Add new parameter.  Use it as an
9552         additional guard for copy generation.
9553         (add_insn_allocno_copies): Rewrite.
9554
9555 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
9556
9557         * common.opt (fsched2-use-traces): Preserved for backward
9558         compatibility.
9559         * doc/invoke.texi: Remove the documentation about option
9560         -fsched2-use-traces.
9561         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
9562         flag_sched2_use_traces.
9563         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
9564         the backward compatibility flag section.
9565
9566 2010-02-09  Richard Guenther  <rguenther@suse.de>
9567
9568         PR tree-optimization/43008
9569         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
9570         make HEAP variables initialized from global memory if they
9571         are not known builtin functions.
9572         (find_func_aliases): Adjust.
9573
9574 2010-02-09  Richard Guenther  <rguenther@suse.de>
9575
9576         PR tree-optimization/43000
9577         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
9578         arithmetic manually.
9579
9580 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
9581
9582         PR tree-optimization/42931
9583         * tree-loop-linear.c (try_interchange_loops): Don't call
9584         double_int_mul if estimated_loop_iterations failed.
9585
9586 2010-02-08  Martin Jambor  <mjambor@suse.cz>
9587
9588         PR middle-end/42898
9589         * tree-sra.c (build_accesses_from_assign): Do not mark in
9590         should_scalarize_away_bitmap if stmt has volatile ops.
9591         (sra_modify_assign): Do not process assigns piecemeal if if stmt
9592         has volatile ops.
9593
9594 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
9595
9596         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
9597
9598 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
9599
9600         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
9601         before the pattern.
9602
9603 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
9604
9605         PR middle-end/42946
9606         * df-core.c (df_finish_pass): Change type of saved_flags to int.
9607
9608 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
9609
9610         PR middle-end/42988
9611         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
9612         to unknown_dependence.
9613         (graphite_legal_transform_dr): Handle the unknown_dependence.
9614         (graphite_carried_dependence_level_k): Same.
9615
9616 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
9617
9618         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
9619
9620 2010-02-07  Richard Guenther  <rguenther@suse.de>
9621
9622         PR middle-end/42991
9623         * expr.c (get_inner_reference): Always initialize *pbitsize.
9624
9625 2010-02-07  Richard Guenther  <rguenther@suse.de>
9626
9627         PR middle-end/42956
9628         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
9629         new ARRAY_REFs on variable size element or minimal index arrays.
9630         Complete.
9631         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
9632         gimple_fold_indirect_ref.
9633
9634 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
9635
9636         PR target/42957
9637         * arm.c (arm_override_options): Just return if the user has specified
9638         an invalid fpu name.
9639
9640 2010-02-03  Jason Merrill  <jason@redhat.com>
9641
9642         PR c++/42870
9643         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
9644         i386_pe_maybe_record_exported_symbol.
9645
9646 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
9647
9648         PR target/42924
9649         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
9650         (pa_delegitimize_address): New function.
9651
9652 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
9653
9654         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
9655         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
9656
9657 2010-02-05  Richard Guenther  <rguenther@suse.de>
9658
9659         PR lto/42762
9660         * lto-streamer-in.c (get_resolution): Deal with references
9661         to undefined functions.
9662
9663 2010-02-05  Richard Guenther  <rguenther@suse.de>
9664
9665         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
9666         (fold_const_aggregate_ref): Likewise.
9667         (ccp_fold_stmt): Substitute loads.
9668         (maybe_fold_reference): Verify types before substituting.
9669         Unshare properly.
9670         (fold_gimple_assign): Unshare properly.
9671         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
9672
9673 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
9674
9675         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
9676         for rs6000_gen_cell_microcode.
9677
9678 2010-02-04  Richard Guenther  <rguenther@suse.de>
9679
9680         PR rtl-optimization/42952
9681         * dse.c (const_or_frame_p): Remove MEM handling.
9682
9683 2010-02-04  Nick Clifton  <nickc@redhat.com>
9684
9685         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
9686         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
9687         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
9688         (mn10300_asm_output_mi_thunk): New function.
9689         (mn10300_can_output_mu_thunk): New function.
9690         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
9691         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
9692         (FUNCTION_ARG): Delete incorrect comment.
9693
9694 2010-02-03  Jason Merrill  <jason@redhat.com>
9695
9696         PR c++/40138
9697         * fold-const.c (operand_equal_p): Handle erroneous types.
9698
9699 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
9700
9701         * config/h8300/h8300.md (can_delay): Fix attibute condition.
9702
9703 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
9704
9705         PR rtl-optimization/42941
9706         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
9707         of xmalloc.
9708
9709 2010-02-03  Jason Merrill  <jason@redhat.com>
9710
9711         PR c++/35652
9712         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
9713
9714 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
9715
9716         PR debug/42896
9717         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
9718         (cselib_reset_table): Renamed from...
9719         (cselib_reset_table_with_next_value): ... this.
9720         (cselib_get_next_uid): Renamed from...
9721         (cselib_get_next_unknown_value): ... this.
9722         * cselib.c (next_uid): Renamed from...
9723         (next_unknown_value): ... this.
9724         (cselib_clear_table): Adjust.
9725         (cselib_reset_table): Adjust.  Renamed from...
9726         (cselib_reset_table_with_next_value): ... this.
9727         (cselib_get_next_uid): Adjust.  Renamed from...
9728         (cselib_get_next_unknown_value): ... this.
9729         (get_value_hash): Use hash.
9730         (cselib_hash_rtx): Likewise.
9731         (new_cselib_val): Adjust.  Set and dump uid.
9732         (cselib_lookup_mem): Pass next_uid as hash.
9733         (cselib_subst_to_values): Likewise.
9734         (cselib_log_lookup): Dump uid.
9735         (cselib_lookup): Pass next_uid as hash.  Adjust.
9736         (cselib_process_insn): Adjust.
9737         (cselib_init): Initialize next_uid.
9738         (cselib_finish): Adjust.
9739         (dump_cselib_table): Likewise.
9740         * dse.c (canon_address): Dump value uid.
9741         * print-rtl.c (print_rtx): Print value uid.
9742         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
9743         (dvuid): New type.
9744         (dv_uid): New function, sort of renamed from...
9745         (dv_htab_hash): ... this, reimplemented in terms of it and...
9746         (dv_uid2hash): ... this.  New.
9747         (variable_htab_eq): Drop excess assertions.
9748         (tie_break_pointers): Removed.
9749         (canon_value_cmp): Compare uids.
9750         (variable_post_merge_New_vals): Print uids.
9751         (vt_add_function_parameters): Adjust.
9752         (vt_initialize): Reset table.  Adjust.
9753
9754 2010-02-03  Richard Guenther  <rguenther@suse.de>
9755
9756         PR tree-optimization/42944
9757         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
9758         (call_may_clobber_ref_p_1): Likewise.  Properly handle
9759         malloc and calloc clobbering errno.
9760
9761 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
9762
9763         * doc/invoke.texi: Fix name of sched1 dump.
9764
9765         * opts.c (decode_options): Set flag_tree_switch_conversion
9766         only conditionally on optimize >= 2.
9767
9768         * gcse.c: Assorted comment fixes in pass description.
9769
9770 2010-02-03  Anthony Green  <green@moxielogic.com>
9771
9772         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
9773         nop padding in order to maintain alignment of storage location of
9774         target function address.
9775         (moxie_trampoline_init): Store target function address at newly
9776         aligned location.
9777         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
9778         to 32.
9779         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
9780
9781 2010-02-03  Richard Guenther  <rguenther@suse.de>
9782
9783         PR middle-end/42927
9784         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
9785
9786 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9787
9788         * config.gcc: Reenable check for obsolete targets.
9789         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
9790         mips-sgi-irix6.[0-4]*.
9791
9792 2010-02-02  Nick Clifton  <nickc@redhat.com>
9793
9794         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
9795         constant size of 4 as being the same as 0.
9796         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
9797         can take values in the range 0..4.
9798
9799 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
9800
9801         PR java/41991
9802         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
9803         as _darwin10_Unwind_FindEnclosingFunction().
9804         * libgcc-libsystem.ver: New.
9805
9806 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
9807
9808         PR target/41399
9809         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
9810         implicitly set registers.
9811
9812 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
9813
9814         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
9815         (arm_override_options): Allow automatic selection of the thread
9816         pointer register if thumb2.
9817         (legitimize_pic_address): Improve code sequences for Thumb2.
9818         (arm_call_tls_get_addr): Likewise.
9819         (legitimize_tls_address): Likewise.
9820         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
9821         (pic_load_addr_32bit): ... this.  New named pattern.
9822         * thumb2.md (pic_load_addr_thumb2): Delete.
9823         (pic_load_dot_plus_four): Delete.
9824         (tls_load_dot_plus_four): New named pattern.
9825
9826 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9827
9828         PR libgomp/29986
9829         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
9830         Document fix for TLS bug.
9831
9832 2010-01-31  Richard Guenther  <rguenther@suse.de>
9833
9834         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
9835         conservatively correct.
9836
9837 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9838
9839         PR target/42850
9840         Revert:
9841         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9842
9843         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
9844
9845 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9846
9847         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
9848
9849 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
9850
9851         * config.gcc: Adjust order of makefile fragments for mingw targets.
9852
9853 2010-01-31  Richard Guenther  <rguenther@suse.de>
9854
9855         PR middle-end/42898
9856         * gimplify.c (gimplify_init_constructor): For volatile LHS
9857         initialize a temporary.
9858
9859 2010-01-31  Matthias Klose  <doko@ubuntu.com>
9860
9861         * configure.ac: Fix __stack_chk_fail check for cross builds configured
9862         --with-headers
9863         * configure: Regenerate.
9864
9865 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
9866
9867         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
9868         the same alias set and their sizes different constantness.
9869         (aliasing_component_refs_p): Revert 2009-10-24 change.
9870
9871 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9872
9873         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
9874         unused.
9875
9876 2010-01-29  Richard Guenther  <rguenther@suse.de>
9877
9878         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
9879         Assert we successfully updated the call.
9880
9881 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
9882
9883         PR rtl-optimization/42889
9884         * df.h (df_set_bb_dirty_nonlr): New prototype.
9885         * df-core.c (df_set_bb_dirty_nonlr): New function.
9886         * df-scan.c (df_insn_rescan): Call it instead of
9887         df_set_bb_dirty for DEBUG_INSNs.
9888
9889 2010-01-29  Richard Guenther  <rguenther@suse.de>
9890
9891         PR middle-end/37448
9892         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
9893         quadratic behavior in most cases.
9894
9895 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
9896
9897         PR target/42891
9898         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
9899         in the call to gen_x86_movsicc_0_m1.
9900
9901 2010-01-28  Richard Guenther  <rguenther@suse.de>
9902
9903         PR tree-optimization/42871
9904         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
9905
9906 2010-01-28  Richard Guenther  <rguenther@suse.de>
9907
9908         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
9909         into call arguments.
9910
9911 2010-01-28  Richard Guenther  <rguenther@suse.de>
9912
9913         PR middle-end/42883
9914         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
9915         the forwarder if the destination is an EH landing pad.
9916
9917 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
9918
9919         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
9920         block list passed to gimple_duplicate_sese_tail.
9921         (parallelize_loops): Avoid parallelization when the function
9922         has_nonlocal_label.
9923         Avoid parallelization when the preheader is IRREDUCIBLE.
9924         Try to optimize when estimated_loop_iterations_int is unresolved.
9925         Add the loop's location to the dump file.
9926         * tree-cfg.c (add_phi_args_after_redirect): Remove.
9927         (gimple_duplicate_sese_tail): Remove the check for the latch.
9928         Redirect nexits to the exit block.
9929         Remove handling of the incoming edges to the latch.
9930         Redirect the backedge from the copied latch to the exit bb.
9931
9932 2010-01-28  Michael Matz  <matz@suse.de>
9933
9934         PR target/42881
9935         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
9936         Wrap force_reg into a sequence, emit it before user.
9937
9938 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
9939
9940         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
9941         (arm_rev): New.
9942         (arm_legacy_rev): Likewise.
9943         (thumb_legacy_rev): Likewise.
9944
9945 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
9946
9947         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
9948         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
9949         on MEM's address failed, try avoid_constant_pool_reference and
9950         recurse if it returned something different.
9951         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
9952         address, try avoid_constant_pool_reference and recurse if it
9953         returned something different.
9954         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
9955         address and avoid_constant_pool_reference returned something
9956         different, don't set have_address.
9957
9958 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
9959
9960         PR debug/42861
9961         * var-tracking.c (val_store): Add modified argument, obey it.
9962         Adjust callers.
9963         (count_uses): Move down logging of main.
9964         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
9965         don't need resolution.
9966         (emit_notes_in_bb): Likewise.
9967
9968 2010-01-27  Richard Guenther  <rguenther@suse.de>
9969
9970         PR middle-end/42878
9971         * tree-inline.c (remap_decl): Delay remapping of SSA name
9972         default definitions until we need them.
9973
9974 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
9975
9976         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
9977         (rs6000_delegitimize_address): New function.
9978
9979         * config/s390/s390.c (s390_delegitimize_address): Call
9980         delegitimize_mem_from_attrs.
9981
9982         PR middle-end/42874
9983         * tree-inline.c (cannot_copy_type_1): Removed.
9984         (copy_forbidden): Don't forbid copying of functions containing
9985         records/unions with variable length fields.
9986
9987 2010-01-27  Christian Bruel  <christian.bruel@st.com>
9988
9989         Revert:
9990         PR target/42841
9991         * config/sh/sh.c (find_barrier): Increase length for non delayed
9992         conditional branches.
9993
9994 2010-01-27  Matthias Klose  <doko@ubuntu.com>
9995
9996         * configure.ac (gnu-unique-object): Fix ldd version check.
9997         * configure: Regenerate.
9998
9999 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10000
10001         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
10002         HAVE_GNU_AS value.
10003         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
10004         Test for HAVE_GNU_AS value.
10005
10006 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10007
10008         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
10009         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
10010         INT64_TYPE): Define.
10011         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
10012         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10013         INT_LEAST64_TYPE): Define.
10014         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
10015         UINT_LEAST64_TYPE): Define.
10016         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
10017         INT_FAST64_TYPE): Define.
10018         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10019         UINT_FAST64_TYPE): Define.
10020         (INTMAX_TYPE, UINTMAX_TYPE): Define.
10021         (INTPTR_TYPE, UINTPTR_TYPE): Define.
10022         (SIG_ATOMIC_TYPE): Define.
10023
10024 2010-01-26  Richard Guenther  <rguenther@suse.de>
10025
10026         * df-scan.c (df_scan_set_bb_info): Remove assert.
10027         (df_insn_rescan_debug_internal): Merge asserts.
10028         (df_install_ref): Likewise.
10029         (df_mark_reg): Use bitmap_set_range.
10030         (df_hard_reg_used_p): Remove assert.
10031         (df_hard_reg_used_count): Likewise.
10032
10033 2010-01-26  Richard Guenther  <rguenther@suse.de>
10034
10035         PR rtl-optimization/42685
10036         * web.c (web_main): Ignore DEBUG_INSNs.
10037
10038 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
10039
10040         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
10041
10042         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
10043         Fix types of fndecl and arglist parameters.
10044
10045 2010-01-26  Richard Guenther  <rguenther@suse.de>
10046
10047         PR middle-end/42806
10048         * tree-eh.c (unsplit_eh): Skip debug insns.
10049
10050 2010-01-26  Richard Guenther  <rguenther@suse.de>
10051
10052         PR tree-optimization/42250
10053         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
10054
10055 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
10056
10057         PR fortran/42866
10058         * omp-low.c (expand_omp_sections): Only use single_pred if
10059         l2_bb is single_pred_p.
10060
10061 2010-01-25  Christian Bruel  <christian.bruel@st.com>
10062
10063         PR target/42841
10064         * config/sh/sh.c (find_barrier): Increase length for non delayed
10065         conditional branches.
10066         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
10067
10068 2010-01-24  David S. Miller  <davem@davemloft.net>
10069
10070         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
10071         define if not using GAS.
10072         * config/sparc/sparc.c (sparc_elf_asm_named_section):
10073         Likewise.  Delete SECTION_MERGE code, which is only applicable
10074         when using GAS.
10075
10076 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
10077
10078         PR c++/42748
10079         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
10080         mangling of va_list in system headers.
10081
10082 2010-01-23  Toon Moene  <toon@moene.org>
10083
10084         * tree-predcom.c (combine_chains): Return NULL, not false.
10085
10086 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
10087
10088         * tree-loop-distribution.c (distribute_loop): Fix declaration and
10089         initialization of variable res to agree with return type.
10090
10091 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
10092
10093         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
10094         * tree-sra.c: Add include of expr.h.
10095
10096 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
10097
10098         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
10099         insert the debug stmt on the single non-EH edge from the stmt.
10100
10101 2010-01-22  Richard Henderson  <rth@redhat.com>
10102
10103         PR tree-opt/42833
10104         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
10105         the RHS until after generate_subtree_copies has insertted its
10106         code before the current statement.
10107
10108 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
10109
10110         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
10111
10112         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
10113
10114 2010-01-21  Martin Jambor  <mjambor@suse.cz>
10115
10116         PR tree-optimization/42585
10117         * tree-sra.c (struct access): New field grp_total_scalarization.
10118         (dump_access): Dump the new field.
10119         (should_scalarize_away_bitmap): New variable.
10120         (cannot_scalarize_away_bitmap): Likewise.
10121         (sra_initialize): Allocate new bitmaps.
10122         (sra_deinitialize): Free new bitmaps.
10123         (create_access_1): New function.
10124         (create_access): Parts moved to create_access_1.
10125         (type_consists_of_records_p): New function.
10126         (completely_scalarize_record): Likewise.
10127         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
10128         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
10129         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
10130         access.
10131         (analyze_all_variable_accesses): Completely scalarize small eligible
10132         records.
10133
10134 2010-01-21  Martin Jambor  <mjambor@suse.cz>
10135
10136         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
10137
10138 2010-01-21  Andrew Haley  <aph@redhat.com>
10139
10140         * gcc.c (process_command): Move lang_specific_driver before
10141         setting cc_libexec_prefix.
10142
10143 2010-01-21  Richard Guenther  <rguenther@suse.de>
10144
10145         PR middle-end/19988
10146         * fold-const.c (negate_expr_p): Pretend only negative
10147         real constants are easily negatable.
10148
10149 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
10150             Jason Merrill  <jason@redhat.com>
10151
10152         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
10153         (TYPE_TRANSPARENT_AGGR): this, for union and record.
10154         * calls.c (initialize argument_information): Handle it.
10155         * c-common.c (handle_transparent_union_attribute): Use new name.
10156         * c-decl.c (finish_struct): Ditto.
10157         * c-typeck.c (type_lists_compatible_p): Ditto.
10158         (convert_for_assignment): Use new name and also handle record.
10159         * function.c (aggregate_value_p): Handle it.
10160         (pass_by_reference): Ditto.
10161         (assign_parm_data_types): Ditto.
10162         * print-tree.c (print_node): Ditto.
10163         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
10164         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
10165         * tree.c (first_field): New fn.
10166
10167 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
10168
10169         PR target/42818
10170         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
10171         even when linking statically, for now.
10172
10173 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
10174
10175         PR debug/42715
10176         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
10177         without a cselib val.
10178         (count_uses): Accept MO_VAL_SET with no val on stores.
10179         (add_stores): Likewise.
10180
10181 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10182
10183         * var-tracking.c (check_value_val): Add a compile time assertion.
10184         (dv_is_decl_p): Simplify.
10185         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
10186         gcc_assert if ENABLE_CHECKING.
10187
10188 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
10189
10190         PR debug/42782
10191         * var-tracking.c: Include tree-flow.h.
10192         (mem_dies_at_call): New.
10193         (dataflow_set_preserve_mem_locs): Use it.
10194         (dataflow_set_remove_mem_locs): Likewise.
10195         (dump_var): Renamed from dump_variable.  Adjust all callers.
10196         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
10197         * Makefile.in (var-tracking.o): Adjust deps.
10198
10199 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
10200
10201         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
10202
10203 2010-01-20  Richard Guenther  <rguenther@suse.de>
10204
10205         PR tree-optimization/42717
10206         * tree-ssa-dce.c (get_live_post_dom): Remove.
10207         (forward_edge_to_pdom): Take an arbitrary edge to copy
10208         degenerate PHI args from.
10209         (remove_dead_stmt): Use the first post-dominator even if it
10210         does not contain live statements as redirection destination.
10211
10212 2010-01-20  Richard Guenther  <rguenther@suse.de>
10213
10214         * tree-inline.c (estimate_num_insns): Handle EH builtins.
10215
10216 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10217
10218         * sel-sched.c (create_speculation_check): Remove set but not used
10219         variable twin.
10220         (try_transformation_cache): Remove set but not used variable ds.
10221         (calculate_privileged_insns): Remove set but not used variables
10222         cur_insn and min_spec_insn.
10223         (find_best_expr): Remove set but not used variable avail_n.
10224         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
10225         variable e.
10226         * cgraphunit.c (assemble_thunk): Remove set but not used variable
10227         false_label.
10228         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
10229         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
10230         new_scop_exit_edge.
10231
10232 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
10233
10234         PR bootstrap/42786
10235         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
10236         cpu types.  Add support for *-sse3 cpu types.
10237         (x86_64-*-*): Ditto.
10238
10239 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10240
10241         PR middle-end/42803
10242         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
10243         argument, call initializer_constant_valid_p_1 instead of
10244         initializer_constant_valid_p, pass CACHE to it, return NULL
10245         immediately if first call returns NULL.
10246         (initializer_constant_valid_p_1): New function.
10247         (initializer_constant_valid_p): Use it.
10248
10249 2010-01-20  Thomas Quinot  <quinot@adacore.com>
10250
10251         * tree.def (PLACEHOLDER_EXPR): Fix comment.
10252
10253 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10254
10255         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
10256         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
10257         (loc_list_from_tree): Don't handle unsigned division.  Handle
10258         signed modulo using DW_OP_{over,over,div,mul,minus}.
10259         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
10260         modulo instead of signed.
10261
10262 2010-01-20  DJ Delorie  <dj@redhat.com>
10263
10264         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
10265         (Fpa): Pass it
10266         (h8300_emit_stack_adjustment): Propogate it.
10267         (push): Pass it.
10268         (h8300_expand_prologue): Likewise.
10269         (h8300_expand_epilogue): Likewise.
10270
10271 2010-01-19  Michael Matz  <matz@suse.de>
10272
10273         PR tree-optimization/41783
10274         * tree-data-ref.c (toplevel): Include flags.h.
10275         (dump_data_dependence_relation):  Also dump the inputs if the
10276         result will be unknown.
10277         (split_constant_offset_1): Look through some conversions.
10278         * tree-predcom.c (determine_roots_comp): Restart a new chain if
10279         the offset from last element is too large.
10280         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
10281         (reassociate_to_the_same_stmt): Handle vector registers.
10282         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
10283         (e.g. conversions).
10284         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
10285         wide_prolog_niters argument, emit widening instructions.
10286         (vect_do_peeling_for_alignment): Adjust caller, use widened
10287         variant of the iteration cound.
10288         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
10289
10290 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10291
10292         PR target/38697
10293         * config/arm/neon-testgen.m (emit_automatics): New parameter
10294         features. Adjust for Fixed_return_reg feature.
10295         (test_intrinsic): Call emit_automatics with new feature.
10296         * config/arm/neon.ml: Update copyright years.
10297         (features): New Fixed_return_reg feature.
10298         (ops): Update feature for Vget_low.
10299
10300 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
10301
10302         PR tree-optimization/42719
10303         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
10304         stmt uses.
10305
10306         PR debug/42728
10307         * fwprop.c (all_uses_available_at): Return false if def_set dest
10308         is a REG that is used in def_insn.
10309
10310 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
10311
10312         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
10313
10314         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
10315         Add argument names.
10316
10317         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
10318
10319         * target.h (struct gcc_target) <secondary_reload>: Change type
10320         of last argument to secondary_reload_info *.
10321
10322 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
10323
10324         PR target/42774
10325         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
10326         memory references with unaligned offsets.  Remove CQImode handling.
10327         (unaligned_memory_operand): Return 1 for memory references with
10328         unaligned offsets.  Remove CQImode handling.
10329
10330 2010-01-18  Richard Guenther  <rguenther@suse.de>
10331
10332         PR middle-end/39954
10333         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
10334         builtin calls.
10335
10336 2010-01-18  Richard Guenther  <rguenther@suse.de>
10337
10338         PR tree-optimization/42781
10339         * tree-ssa-structalias.c (find_what_var_points_to): Skip
10340         restrict processing only if the original variable was artificial.
10341
10342 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
10343
10344         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
10345         find number of popped argument bytes.
10346
10347         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
10348         Fix the text that describes the return value for invalid insns.
10349
10350         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
10351
10352         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
10353         Clarify what 'cost of the -dependence' is.  Fix quoting.
10354
10355         * toplev.c (default_get_pch_validity): Rename argument to "sz".
10356         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
10357
10358 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
10359
10360         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
10361         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
10362
10363 2010-01-17  Richard Guenther  <rguenther@suse.de>
10364
10365         PR middle-end/42248
10366         * function.c (split_complex_args): Take a VEC to modify.
10367         (assign_parms_augmented_arg_list): Build a VEC instead of
10368         a chain of PARM_DECLs.
10369         (assign_parms_unsplit_complex): Take a VEC of arguments.
10370         Do not fixup unmodified parms.
10371         (assign_parms): Deal with the VEC.
10372         (gimplify_parameters): Likewise.
10373
10374 2010-01-17  Richard Guenther  <rguenther@suse.de>
10375
10376         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
10377         node existence check.
10378         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
10379         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
10380         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
10381         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
10382         (gimple_execute_on_growing_pred): Likewise.
10383
10384 2010-01-17  Richard Guenther  <rguenther@suse.de>
10385
10386         PR tree-optimization/42773
10387         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
10388         (compute_antic_aux): Likewise.
10389         (compute_partial_antic_aux): Likewise.
10390
10391 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
10392
10393         PR debug/42767
10394         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
10395         and US_TRUNCATE.
10396
10397 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
10398
10399         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
10400         appearance.
10401
10402         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
10403         Fix markup for strict argument.
10404
10405         (TARGET_SCHED_REORDER2): Fix argument types.
10406
10407         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
10408         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
10409
10410         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
10411         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
10412
10413         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
10414         Add argument name.
10415
10416         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
10417         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
10418         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
10419         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
10420         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
10421
10422         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
10423
10424         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
10425
10426         (TARGET_ASM_RELOC_RW_MASK): Add return type.
10427         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
10428
10429         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
10430
10431         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
10432         Use prototype.
10433
10434         (TARGET_ASM_NAMED_SECTION): Fix argument list.
10435
10436         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
10437         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
10438
10439         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
10440
10441         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
10442
10443         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
10444         referring to it.  Fix language.
10445
10446         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
10447
10448         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
10449
10450         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
10451
10452         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
10453
10454         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
10455         '@var{stream}.  Remove stray 'and'.
10456
10457         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
10458
10459         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
10460
10461         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
10462
10463         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
10464         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
10465
10466         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
10467         Fix description of return value.
10468         Rename argument "sz" to "len."
10469
10470         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
10471         Clarify meaning of 'true' return value.
10472
10473         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
10474
10475         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
10476         rep_mode versus mode_rep.
10477
10478         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
10479
10480         (TARGET_BUILTIN_DECL): Fix name.
10481
10482         (TARGET_COMMUTATIVE_P): Fix type of first argument.
10483
10484         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
10485
10486         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
10487
10488         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
10489
10490         (TARGET_RELAXED_ORDERING): Use @deftypevr.
10491
10492         (TARGET_GET_DRAP_RTX): Note that this is a hook.
10493         Clarify language.
10494
10495         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
10496         Rename argument tm_fn to md_fn.
10497
10498         (TARGET_OPTION_PRINT): Fix argument list.
10499
10500 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
10501
10502         PR target/42664
10503         * config/i386/i386.c (ix86_fixup_binary_operands):
10504         Revert FMA4 fixup of operands.
10505
10506 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10507
10508         PR gcc/42525
10509         * Makefile.in (write_entries_to_file, install-plugin):
10510         Use \012 instead of \n with tr.
10511
10512 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
10513
10514         * configure.ac (HAVE_AS_REF): New C macro.
10515         * configure: Regenerate.
10516         * config.in: Likewise.
10517         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
10518         if HAVE_AS_REF.
10519         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
10520         if HAVE_AS_REF.
10521
10522 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
10523
10524         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
10525
10526         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
10527
10528         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
10529
10530         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
10531
10532         (TARGET_IN_SMALL_DATA_P): Fix argument type.
10533
10534         (TARGET_BINDS_LOCAL_P): Fix argument type.
10535
10536         (TARGET_ASM_FILE_END): Use prototype.
10537
10538         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
10539
10540         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
10541
10542         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
10543
10544         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
10545
10546         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
10547         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
10548
10549         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
10550         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
10551
10552         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
10553         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
10554         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
10555         (TARGET_ADDR_SPACE_CONVERT): Likewise.
10556
10557         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
10558
10559         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
10560
10561         (TARGET_INIT_BUILTINS): Use prototype.
10562
10563         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
10564         Put 'const char *' in braces.  Fix parameter types.
10565         (TARGET_INVALID_CONVERSION): Fix parameter types.
10566         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
10567         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
10568
10569         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
10570         Fix argument type.
10571
10572         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
10573
10574         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
10575
10576 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
10577
10578         * doc/tm.texi (TARGET_HELP): Fix return type.
10579
10580         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
10581         in braces.  Fix argument types.
10582
10583         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
10584
10585         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
10586
10587         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
10588
10589         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
10590         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
10591
10592         (TARGET_MANGLE_TYPE): Fix argument types.
10593
10594         (TARGET_IRA_COVER_CLASSES): Use prototype.
10595
10596         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
10597
10598         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
10599
10600         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
10601
10602         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
10603
10604         (TARGET_CALLEE_COPIES): Fix argument types.
10605
10606         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
10607
10608         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
10609
10610         (TARGET_FUNCTION_VALUE): Fix argument types.
10611
10612         (TARGET_RETURN_IN_MSB): Fix argument type.
10613
10614         (TARGET_RETURN_IN_MEMORY): Fix argument types.
10615
10616         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
10617
10618         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
10619
10620         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
10621         agree with return type.
10622
10623         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
10624
10625 2010-01-15  Jing Yu  <jingyu@google.com>
10626
10627         PR rtl-optimization/42691
10628         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
10629         a pseudo to a constant and are merged, and adjust comments.
10630
10631 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
10632
10633         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
10634
10635 2010-01-15  Richard Guenther  <rguenther@suse.de>
10636
10637         PR middle-end/42739
10638         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
10639         labels of computed or non-local gotos to the destination.
10640         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
10641         landing pad label is the first label.
10642
10643 2010-01-15  Richard Guenther  <rguenther@suse.de>
10644
10645         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
10646
10647 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
10648
10649         PR target/42747
10650         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
10651         to allow generation of the xssqrtdp instruction on power7.
10652         (sqrtdf2_fpr): Ditto.
10653
10654 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10655
10656         PR middle-end/42674
10657         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
10658         functions with noreturn attribute.
10659
10660         PR c++/42608
10661         * varasm.c (declare_weak): Add weak attribute to decl if it
10662         doesn't have one already.
10663         (assemble_external): Only add decls to weak_decls if they also
10664         have weak attribute.
10665
10666 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
10667
10668         * var-tracking.c (var_reg_delete): Don't delete the association
10669         between REGs and values or one-part variables if the register
10670         isn't clobbered.
10671
10672 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10673
10674         PR debug/42657
10675         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
10676         because its first operand is a non-localized variable.
10677
10678 2010-01-14  Martin Jambor  <mjambor@suse.cz>
10679
10680         PR tree-optimization/42706
10681         * tree-sra.c (encountered_recursive_call): New variable.
10682         (encountered_unchangable_recursive_call): Likewise.
10683         (sra_initialize): Initialize both new variables.
10684         (callsite_has_enough_arguments_p): New function.
10685         (scan_function): Call decl and flags check only for IPA-SRA, check
10686         whether there is a recursive call and whether it has enough arguments.
10687         (all_callers_have_enough_arguments_p): New function.
10688         (convert_callers): Look for recursive calls only when
10689         encountered_recursive_call is set.
10690         (ipa_early_sra): Bail out either if
10691         !all_callers_have_enough_arguments_p or
10692         encountered_unchangable_recursive_call.
10693
10694 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10695
10696         * sel-sched.c: Add 2010 to copyright years.
10697         * sel-sched-ir.c: Likewise.
10698         * sel-sched-ir.h: Likewise.
10699
10700 2010-01-14  Martin Jambor  <mjambor@suse.cz>
10701
10702         PR tree-optimization/42714
10703         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
10704         constructors specially.
10705
10706 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10707
10708         * config/i386/drivers-i386.c (detect_caches_intel):
10709         Add l2sizekb parameter and fill in.
10710         (host_detect_local_cpu): Add l2sizekb, fill in.
10711         Add Atom small cache heuristic.
10712
10713 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10714
10715         * config/i386/drivers-i386.c (detect_caches_cpuid4):
10716         Add level3 parameter and fill in.
10717         (detect_caches_intel): Handle level3 cache.
10718
10719 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10720
10721         * config/i386/drivers-i386.c (host_detect_local_cpu):
10722         Fix core duo detection.
10723
10724 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10725
10726         * config/i386/drivers-i386.c (host_detect_local_cpu):
10727         Fix Atom detection.
10728
10729 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10730
10731         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
10732         (rs6000_variable_issue_1): this.  Use...
10733         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
10734
10735 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10736
10737         * sel-sched-ir.c (sel_restore_other_notes): Rename to
10738         sel_restore_notes.  Update all callers.  Call reemit_notes
10739         for all insns.
10740
10741 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10742
10743         PR rtl-optimization/42246
10744         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
10745         loops.
10746
10747 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10748
10749         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
10750         all successors is the same as number of successors in current region.
10751
10752 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10753
10754         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
10755         to rename is not separable.  Otherwise check that its LHS is not NULL.
10756
10757 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10758
10759         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
10760
10761 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10762
10763         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
10764         available registers when failed to discover LHS register class.
10765         Fix indentation.  Update comment.
10766
10767 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10768             Alexander Monakov  <amonakov@ispras.ru>
10769
10770         PR rtl-optimization/42389
10771         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
10772         to can_issue_more.
10773         (advance_state_on_fence): Likewise.
10774         (sel_target_adjust_priority): Print debug output only when
10775         sched_verbose >= 4, not 2.
10776         (get_expr_cost): Do not issue all unique insns on the next cycle.
10777         (fill_insns): Initialize can_issue_more from the value saved
10778         with the fence.
10779         * sel-sched-ir.c (flist_add): New parameter issue_more.
10780         Init FENCE_ISSUE_MORE with it.
10781         (merge_fences): Likewise.
10782         (init_fences): Update call to flist_add.
10783         (add_to_fences, add_clean_fence_to_fences)
10784         (add_dirty_fence_to_fences): Likewise.
10785         (move_fence_to_fences): Update call to merge_fences.
10786         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
10787         sched groups.
10788         * sel-sched-ir.h (struct _fence): New field issue_more.
10789         (FENCE_ISSUE_MORE): New accessor macro.
10790
10791 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10792
10793         PR rtl-optimization/42388
10794         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
10795         that have no predecessors nor successors.  Do not call move_bb_info
10796         for empty blocks outside of current region.
10797
10798 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10799
10800         PR rtl-optimization/42294
10801         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
10802         * sel-sched.c (move_exprs_to_boundary): Transitively add all
10803         originators' originators.
10804
10805 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10806
10807         PR rtl-optimization/39453
10808         PR rtl-optimization/42246
10809         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
10810         for pipelining_p.
10811         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
10812
10813 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10814             Alexander Monakov  <amonakov@ispras.ru>
10815
10816         PR middle-end/42245
10817         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
10818         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
10819         argument.  Update all callers.
10820         (tidy_control_flow): ... and here.  Recompute topological order
10821         of basic blocks in region if necessary.
10822         (sel_redirect_edge_and_branch): Change return type.  Return true
10823         if topological order might have been invalidated.
10824         (purge_empty_blocks): Export and move from...
10825         * sel-sched.c (purge_empty_blocks): ... here.
10826         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
10827         (maybe_tidy_empty_bb): Delete prototype.
10828         (purge_empty_blocks): Declare.
10829
10830 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
10831
10832         PR rtl-optimization/42249
10833         * sel-sched.c (try_replace_dest_reg): When chosen register
10834         and original register is the same, do not bail out early, but
10835         still check all original insns for validity of replacing destination
10836         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
10837         in this case.
10838
10839 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10840
10841         PR c/42721
10842         Port from no-undefined-overflow branch:
10843         2009-03-09  Richard Guenther  <rguenther@suse.de>
10844
10845         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
10846
10847 2010-01-14  Richard Guenther  <rguenther@suse.de>
10848
10849         PR lto/42665
10850         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
10851
10852 2010-01-14  Ira Rosen  <irar@il.ibm.com>
10853
10854         PR tree-optimization/42709
10855         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
10856         as scalar type in creation of constant vector operand.
10857
10858 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10859
10860         PR testsuite/42414
10861         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
10862         (check-parallel-%): Match `testsuite' directory component only
10863         at the end.
10864
10865 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
10866
10867         PR translation/39521
10868         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
10869         strings with _().
10870
10871 2010-01-13  Richard Guenther  <rguenther@suse.de>
10872
10873         PR tree-optimization/42730
10874         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
10875         offset zero.
10876
10877 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
10878
10879         PR target/pr42542
10880         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
10881         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
10882         them signed.
10883
10884 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
10885
10886         * config/bfin/libgcc-bfin.ver: Regenerate based on current
10887         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
10888         ___umulsi3_highpart.
10889
10890         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
10891         rather than schedule_insns if the pass is enabled.
10892
10893 2010-01-13  Martin Jambor  <mjambor@suse.cz>
10894
10895         PR tree-optimization/42704
10896         * tree-sra.c (sra_modify_assign): Do not delete assignments to
10897         SSA_NAMEs.
10898
10899 2010-01-13  Martin Jambor  <mjambor@suse.cz>
10900
10901         PR tree-optimization/42703
10902         * tree-sra.c (analyze_access_subtree): Check that we can build a
10903         reference to the original data within the aggregate.
10904
10905 2010-01-13  Richard Guenther  <rguenther@suse.de>
10906
10907         PR tree-optimization/42705
10908         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
10909
10910 2010-01-13  Richard Guenther  <rguenther@suse.de>
10911
10912         PR middle-end/42716
10913         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
10914
10915 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
10916
10917         PR debug/41371
10918         * var-tracking.c (values_to_unmark): New variable.
10919         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
10920         values_to_unmark vector.  Moved body to...
10921         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
10922         instead queue it into values_to_unmark vector.
10923         (vt_find_locations): Free values_to_unmark vector.
10924
10925 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
10926
10927         * config/s390/s390.c (override_options): Set
10928         default of max-pending-list-length to 256
10929
10930 2010-01-13  Richard Guenther  <rguenther@suse.de>
10931
10932         PR lto/42678
10933         * tree-pass.h (PROP_gimple_lcx): New.
10934         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
10935         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
10936         before the final cleanup_eh.
10937         (dump_properties): Dump PROP_gimple_lcx.
10938         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
10939         (tree_lower_complex_O0): Remove.
10940         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
10941         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
10942         tree_lower_complex, schedule TODO_update_ssa.
10943         * lto-streamer-out.c (output_function): Stream the functions
10944         properties.
10945         * lto-streamer-in.c (input_function): Likewise.
10946         (lto_read_body): Do not override them here.
10947
10948 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
10949
10950         PR c/42708
10951         * c-typeck.c (build_c_cast): Fold value cast to union type before
10952         wrapping it in a CONSTRUCTOR.
10953
10954 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
10955
10956         PR rtl-optimization/42699
10957         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
10958         involved.
10959
10960 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10961
10962         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
10963         SUBTARGET_WARN_UNUSED_SPEC): Move ...
10964         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
10965         SUBTARGET_WARN_UNUSED_SPEC): ... here
10966         * config/mips/iris5.h (LIBGCC_SPEC): Define.
10967
10968 2010-01-12  Julian Brown  <julian@codesourcery.com>
10969
10970         * config/arm/neon-schedgen.ml (Utils): Don't try to
10971         open missing module.
10972         (find_with_result): New.
10973
10974 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
10975
10976         PR debug/42662
10977         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
10978         sharing when canonicalizing ({lt,ge}u (plus a b) b).
10979
10980         PR tree-optimization/42645
10981         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
10982         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
10983         decl_map, set processing_debug_stmt to -1 and return name without
10984         any remapping.
10985
10986 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
10987
10988         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
10989         binutils version, and reword target configuration description.
10990
10991 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
10992
10993         * config/avr/avr.h (LINKER_NAME): Remove.
10994
10995 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
10996
10997         PR target/42416
10998         * config/rs6000/rs6000.c (rs6000_override_options): On targets
10999         that support VSX, warn for -mno-altivec if vsx is not disabled,
11000         and disable vsx.
11001
11002 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
11003             Shujing Zhao  <pearly.zhao@oracle.com>
11004
11005         PR translation/42469
11006         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
11007         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
11008         character between option name and help text.
11009         * c.opt (imultilib): Likewise.
11010
11011 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
11012
11013         * lto-streamer-out.c (output_unreferenced_globals): Output static
11014         variables.
11015
11016 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
11017
11018         PR rtl-optimization/42621
11019         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
11020         optimizing for size.
11021         (duplicate_computed_gotos): Remove now-redundant check.
11022
11023 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
11024
11025         PR target/37454
11026         * configure.ac: Save and restore LDFLAGS and LIBS
11027         * configure: Regenerate.
11028
11029 2010-01-10  Richard Guenther  <rguenther@suse.de>
11030
11031         PR middle-end/42667
11032         * builtins.c (fold_builtin_strlen): Add type argument and
11033         convert the resulting length to it.
11034         (fold_builtin_1): Adjust.
11035
11036 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
11037
11038         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
11039         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
11040         1 insn.
11041         (num_insns_constant_wide): Adjust for that change.
11042
11043 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11044
11045         PR debug/42631
11046         * web.c (union_defs): Add used argument, to combine uses of
11047         uninitialized regs.
11048         (entry_register): Adjust type and tests of used argument.
11049         (web_main): Widen used for new use.  Pass it to union_defs.
11050         * df.h (union_defs): Adjust prototype.
11051
11052 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11053
11054         PR debug/42630
11055         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
11056         uses in new incoming argument.  Free body.
11057         (reset_debug_uses_in_loop): New.
11058         (analyze_insn_to_expand_var): Call the latter if the former found
11059         anything.  Fix whitespace.  Reject invalid dest overlaps before
11060         going through all insns in the loop.
11061
11062 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11063
11064         PR debug/42629
11065         * haifa-sched.c (dying_use_p): Debug insns don't count.
11066
11067 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11068
11069         PR middle-end/42363
11070         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
11071         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
11072         (verify_gimple_call): Reject LHS in noreturn calls.
11073
11074 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11075
11076         PR debug/42604
11077         PR debug/42395
11078         * tree-vect-loop-manip.c (adjust_info): New type.
11079         (adjust_vec): New pointer to vector.
11080         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
11081         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
11082         (slpeel_update_phis_for_duplicate_loop): Use them.
11083         (slpeel_update_phi_nodes_for_guard1): Likewise.
11084         (slpeel_update_phi_nodes_for_guard2): Likewise.
11085         (slpeel_tree_peel_loop_to_edge): Likewise.
11086         (vect_update_ivs_after_vectorizer): Likewise.
11087
11088 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11089
11090         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
11091         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
11092
11093 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11094
11095         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
11096         bogus uninitialized warning.
11097
11098 2010-01-09  Richard Guenther  <rguenther@suse.de>
11099
11100         PR middle-end/42512
11101         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
11102         the evolution is compatible with the initial condition.
11103
11104 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
11105
11106         * gcc.c (process_command): Update copyright notice dates.
11107         * gcov.c (print_version): Likewise.
11108         * gcov-dump.c (print_version): Likewise.
11109         * mips-tfile.c (main): Likewise.
11110         * mips-tdump.c (main): Likewise.
11111
11112 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
11113
11114         PR target/41885
11115         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
11116         (rotlhi3): Delete.
11117         (rotlhi3_8): Delete.
11118         (rotlsi3): Delete.
11119         (rotlsi3_8): Delete.
11120         (rotlsi3_16): Delete.
11121         (rotlsi3_24): Delete.
11122         (rotl<mode>3): New.
11123         (*rotw<mode>3): New.
11124         (*rotb<mode>3): New.
11125         * config/avr/avr.c (avr_rotate_bytes): New function.
11126         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
11127
11128 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
11129
11130         PR target/37454
11131         * configure.ac: Modify -rdynamic check.
11132         * configure: Regenerate.
11133
11134 2010-01-08  DJ Delorie  <dj@redhat.com>
11135
11136         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
11137         register popping order.
11138
11139 2010-01-08  Richard Guenther  <rguenther@suse.de>
11140
11141         PR lto/42528
11142         * c.opt (fsigned-char): Also let LTO handle this option.
11143         (funsigned-char): Likewise.
11144
11145 2010-01-07  Richard Guenther  <rguenther@suse.de>
11146
11147         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
11148         (gimple_op): Likewise.
11149         (gimple_op_ptr): Likewise.
11150         (gimple_assign_set_lhs): Remove gcc_assert.
11151         (gimple_assign_set_rhs1): Likewise.
11152         (gimple_assign_set_rhs2): Likewise.
11153         (gimple_call_set_lhs): Likewise.
11154         (gimple_call_set_fn): Likewise.
11155         (gimple_call_set_fndecl): Likewise.
11156         (gimple_call_fndecl): Likewise.
11157         (gimple_call_return_type): Likewise.
11158         (gimple_call_set_chain): Likewise.
11159         (gimple_call_num_args): Likewise.
11160         (gimple_call_set_arg): Likewise.
11161         (gimple_cond_set_code): Likewise.
11162         (gimple_cond_set_lhs): Likewise.
11163         (gimple_cond_set_rhs): Likewise.
11164         (gimple_cond_set_true_label): Likewise.
11165         (gimple_cond_set_false_label): Likewise.
11166         (gimple_label_set_label): Likewise.
11167         (gimple_goto_set_dest): Likewise.
11168         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
11169         (gimple_debug_bind_get_value): Likewise.
11170         (gimple_debug_bind_get_value_ptr): Likewise.
11171         (gimple_debug_bind_set_var): Likewise.
11172         (gimple_debug_bind_set_value): Likewise.
11173         (gimple_debug_bind_reset_value): Likewise.
11174         (gimple_debug_bind_has_value_p): Likewise.
11175         (gimple_return_retval_ptr): Remove gcc_assert.
11176         (gimple_return_retval): Likewise.
11177         (gimple_return_set_retval): Likewise.
11178         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
11179         (safe_referenced_var_iterator): Remove.
11180         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
11181         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
11182         (fill_referenced_var_vec): Remove.
11183         (first_readonly_imm_use): Remove redundant gcc_assert.
11184         (phi_arg_index_from_use): Combine gcc_asserts.
11185         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
11186         (first_imm_use_stmt): Remove redundant gcc_assert.
11187         * tree-cfg.c (verify_gimple_call): Verify function and chain
11188         operands.  Verify arguments.
11189         (verify_types_in_gimple_stmt): Verify condition code and labels.
11190
11191 2010-01-07  Richard Guenther  <rguenther@suse.de>
11192
11193         PR tree-optimization/42641
11194         * sese.c (rename_map_elt_info): Use the SSA name version, do
11195         not hash pointers.
11196
11197 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
11198
11199         PR tree-optimization/42625
11200         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
11201         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
11202
11203 2010-01-07  Duncan Sands  <baldrick@free.fr>
11204
11205         * Makefile.in (PLUGIN_HEADERS): Add version.h.
11206
11207 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
11208
11209         PR target/42511
11210         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
11211         note itself is not function_invariant_p.
11212
11213 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
11214
11215         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
11216         Do not add the DF_NOTE problem.
11217         * store-motion.c (execute_rtl_store_motion): Likewise.
11218
11219 2010-01-07  Martin Jambor  <mjambor@suse.cz>
11220
11221         PR tree-optimization/42157
11222         * tree-sra.c (compare_access_positions): Stabilize sort if both
11223         accesses have integer types, return zero immediately if they are the
11224         same.
11225
11226 2010-01-06  Richard Henderson  <rth@redhat.com>
11227
11228         PR middle-end/41883
11229         * haifa-sched.c (add_to_note_list): Merge into ...
11230         (concat_note_lists): ... here, and ...
11231         (unlink_other_notes, rm_other_notes): Merge into...
11232         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
11233         NOTE_INSN_EPILOGUE_BEG.
11234
11235 2010-01-06  Richard Guenther  <rguenther@suse.de>
11236
11237         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
11238         not inline regular functions into always-inline functions.
11239
11240 2010-01-06  Nick Clifton  <nickc@redhat.com>
11241
11242         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
11243         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
11244         used together.
11245         (OVERRIDE_OPTIONS): Delete.
11246         (OPTIMIZATION_OPTIONS): Define.
11247         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
11248         * config/rx/rx.c (rx_handle_option): Issue an error message if
11249         -mcpu=rx200 and -fpu are used together.
11250         (rx_set_optimization_options): New function.  Issue an error
11251         message if an optimization attribute attempts to reset the FPU/
11252         math optimization pairing.
11253         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
11254         * config/rx/rx.opt: Set the default to 32-bit doubles.
11255         * config/rx/t-rx: Add multilibs for -nofpu option.
11256         * doc/invoke.texi: Update documentation of RX options.
11257
11258 2010-01-06  Richard Guenther  <rguenther@suse.de>
11259
11260         * tree-ssa-pre.c (name_to_id): New global.
11261         (alloc_expression_id): Simplify SSA name handling.
11262         (lookup_expression_id): Likewise.
11263         (init_pre): Zero name_to_id.
11264         (fini_pre): Free it.
11265
11266 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
11267
11268         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
11269
11270 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
11271
11272         PR target/42542
11273         * config/i386/sse.md (smaxv2di3): New.
11274         (umaxv2di3): Likewise.
11275         (sminv2di3): Likewise.
11276         (uminv2di3): Likewise.
11277
11278 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
11279
11280         PR target/42564
11281         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
11282         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
11283         (legitimize_tls_address): Likewise.
11284         (sparc_tls_referenced_p): Likewise.
11285         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
11286         and adjust calls to legitimize_pic_address.
11287         (legitimate_constant_p) Use sparc_tls_referenced_p.
11288         (legitimate_pic_operand_p): Likewise.
11289         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
11290         (sparc_tls_symbol_ref_1): Delete.
11291         (sparc_tls_referenced_p): Make static, recognize specific patterns.
11292         (legitimize_tls_address): Make static, handle CONST patterns.
11293         (legitimize_pic_address): Make static, remove unused parameter and
11294         adjust recursive calls.
11295         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
11296         and adjust call to legitimize_pic_address.
11297         (sparc_output_mi_thunk): Likewise.
11298
11299 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
11300             H.J. Lu  <hongjiu.lu@intel.com>
11301
11302         PR target/42542
11303         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
11304         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
11305         operands to make them signed.
11306
11307         Revert:
11308         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11309
11310         PR target/42542
11311         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11312         GTU to GT for V4SI and V2DI.
11313
11314         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11315         (umin<mode>3): Removed.
11316         (uminv8hi3): New.
11317         (uminv4si3): Likewise.
11318
11319 2010-01-05  Martin Jambor  <mjambor@suse.cz>
11320
11321         PR tree-optimization/42462
11322         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
11323         current_function_decl to helper functions and macros.
11324
11325 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11326
11327         PR bootstrap/41771
11328         * flags.h: Don't include real.h.
11329         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
11330         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
11331         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
11332         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
11333         * dominance.c: Update copyright.
11334         * gimple.c (walk_gimple_op): Remove inline.
11335         * tree-ssa-reassoc.c: Include real.h.
11336         * Makefile.in (FLAGS_H): Remove $(REAL_H).
11337         (tree-ssa-reassoc.o): Depend on $(REAL_H).
11338
11339 2010-01-05  Nick Clifton  <nickc@redhat.com>
11340
11341         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
11342         register to push into the stack frame when the accumulator has to
11343         be saved during interrupts.
11344
11345 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
11346
11347         * doc/invoke.texi: Remove the documentation about option
11348         -Wunreachable-code.
11349         * common.opt (Wunreachable-code):  Preserved for backward
11350         compatibility.
11351         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
11352         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
11353         the backward compatibility flag section.
11354
11355 2010-01-05  Richard Guenther  <rguenther@suse.de>
11356
11357         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
11358
11359 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
11360
11361         PR other/42611
11362         * cfgexpand.c (expand_one_var): Diagnose too large variables.
11363
11364         PR tree-optimization/42508
11365         * tree-sra.c (convert_callers): Check for recursive call
11366         by comparing cgraph nodes instead of decls.
11367         (modify_function): Call ipa_modify_formal_parameters also
11368         on all same_body aliases.
11369
11370         * cgraphunit.c (cgraph_materialize_all_clones): Compare
11371         cgraph nodes when checking for same_body aliases.
11372
11373 2010-01-05  Richard Guenther  <rguenther@suse.de>
11374
11375         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
11376         allocation and lookup.
11377         (get_or_alloc_expr_for_constant): Likewise.
11378         (phi_translate): Sink allocation.
11379
11380 2010-01-04  Richard Guenther  <rguenther@suse.de>
11381
11382         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
11383         a new entry only if needed.
11384         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
11385         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
11386         hashtable lookup.
11387         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
11388         the result array.
11389         (phi_translate): Handle CONSTANTs early.
11390
11391 2010-01-04  Martin Jambor  <mjambor@suse.cz>
11392
11393         PR tree-optimization/42398
11394         * tree-sra.c (struct access): Removed flag grp_different_types.
11395         (dump_access): Do not dump the removed flag.
11396         (sort_and_splice_var_accesses): Do not set the removed flag.
11397         (sra_modify_expr): Check for type compatibility directly.
11398
11399 2010-01-04  Martin Jambor  <mjambor@suse.cz>
11400
11401         PR tree-optimization/42366
11402         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
11403         edges with variable number of parameters.
11404         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
11405         flag instead of asserting it.
11406         (ipa_read_node_info): Read uses_analysis_done flag.
11407
11408 2010-01-04  Richard Guenther  <rguenther@suse.de>
11409
11410         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
11411         iterative_hash_* as intended.
11412         (vn_reference_compute_hash): Likewise.  Simplify hashing
11413         SSA names.
11414         (vn_reference_lookup_2): Likewise.
11415         (vn_nary_op_compute_hash): Likewise.
11416         (vn_phi_compute_hash): Likewise.
11417         (expressions_equal_p): Remove strange code.
11418         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
11419         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
11420         (bitmap_insert_into_set_1): Take value-id as parameter.
11421         (add_to_value): Pass it.
11422         (bitmap_insert_into_set): Likewise.
11423         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
11424
11425 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
11426
11427         PR driver/42442
11428         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
11429         (do_self_spec): For switches with SWITCH_IGNORE set set also
11430         SWITCH_IGNORE_PERMANENTLY.
11431         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
11432         of SWITCH_IGNORE.
11433
11434 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
11435
11436         * lto-streamer-out.c (output_unreferenced_globals): Output the full
11437         tree of an unreferenced global var.
11438
11439 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11440
11441         PR target/42542
11442         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11443         GTU to GT for V4SI and V2DI.
11444
11445         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11446         (umin<mode>3): Removed.
11447         (uminv8hi3): New.
11448         (uminv4si3): Likewise.
11449
11450 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11451
11452         PR lto/42581
11453         * collect2.c (main): Turn on trace in collect2 if -v is passed
11454         to gcc with LTO.
11455
11456 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
11457
11458         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
11459         description of expression operand.
11460
11461 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
11462
11463         * configure.ac: Add install-html to target_list for Make-hooks.
11464         * configure: Regenerate.
11465         * fortran/Make-lang.in (F95_HTMLFILES): New.
11466         (fortran.html): Use it.
11467         (fortran.install-html): New.
11468         * Makefile.in (install-html): Add lang.install-html.
11469         * java/Make-lang.in (JAVA_HTMLFILES): New.
11470         (java.html): Use it.
11471         (java.install-html): New.
11472         * objc/Make-lang.in (objc.install-html): New.
11473         * objcp/Make-lang.in (obj-c++.install-html): New.
11474         * cp/Make-lang.in (c++.install-html): New.
11475         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
11476         * lto/Make-lang.in (lto.install-html): New.
11477
11478 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
11479
11480         PR lto/42520
11481         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
11482
11483 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
11484
11485         PR rtl-optimization/41862
11486         * store-motion.c (store_killed_in_insn, compute_store_table,
11487         remove_reachable_equiv_notes, replace_store_insn,
11488         build_store_vectors): Ignore all DEBUG_INSNs.
11489
11490 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
11491
11492         PR lto/41564
11493         * common.opt: Add dumpdir.
11494
11495         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
11496         isn't specified.
11497         (option_map): Add --dumpdir.
11498
11499         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
11500
11501         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
11502
11503         * opts.c (decode_options): Try dump_dir_name first if
11504         dump_base_name isn't an absolute path.
11505         (common_handle_option): Handle OPT_dumpdir.
11506
11507         * toplev.c (dump_dir_name): New.
11508         (print_switch_values): Also ignore -dumpdir.
11509
11510         * toplev.h (dump_dir_name): New.
11511
11512 2010-01-03  Richard Guenther  <rguenther@suse.de>
11513
11514         PR tree-optimization/42589
11515         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
11516         double-word expansion of bswap32.
11517
11518 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
11519
11520         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
11521         with BLOCK_FOR_INSN.
11522         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
11523         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
11524         noce_process_if_block): Likewise.
11525         * gcse.c (compute_local_properties, insert_expr_in_table,
11526         insert_set_in_table, canon_list_insert, find_avail_set,
11527         pre_insert_copy_insn): Likewise.
11528
11529         * basic-block.h (BLOCK_NUM): Move from here...
11530         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
11531
11532 2010-01-03  Richard Guenther  <rguenther@suse.de>
11533
11534         PR tree-optimization/42438
11535         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
11536         contains_may_not_return_call flag.
11537         (BB_MAY_NOTRETURN): New.
11538         (valid_in_sets): Trapping nary operations are not valid
11539         in blocks that may not return.
11540         (insert_into_preds_of_block): Remove check for trapping expressions.
11541         (compute_avail): Compute also BB_MAY_NOTRETURN.
11542
11543 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
11544
11545         * doc/invoke.texi: Add 2010 to copyright years.
11546
11547 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
11548
11549         * config/sparc/sparc.c: Fix formatting nits.
11550
11551 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
11552             Alexander Monakov  <amonakov@ispras.ru>
11553
11554         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
11555
11556 2010-01-02  Richard Guenther  <rguenther@suse.de>
11557
11558         PR middle-end/42577
11559         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
11560         (simplify_switch_using_ranges): Mark to be removed edges
11561         as non-executable.
11562
11563 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11564
11565         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
11566
11567         * collect2.c (scan_libraries): Add missing argument in call to
11568         scan_prog_file.
11569
11570 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
11571
11572         PR target/42448
11573         * config/alpha/predicates.md (aligned_memory_operand): Return false
11574         for CQImode.
11575         (unaligned_memory_operand): Return true for CQImode.
11576         * config/alpha/alpha.c (get_aligned_mem): Assert that location
11577         doesn not cross aligned SImode word boundary.
11578
11579 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
11580
11581         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
11582         Remove.
11583         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
11584         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
11585
11586 2010-01-02  Richard Guenther  <rguenther@suse.de>
11587
11588         PR lto/41597
11589         * toplev.c (compile_file): Emit LTO marker properly.  Change
11590         it to __gnu_lto_v1.
11591         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
11592
11593 2010-01-01  Richard Guenther  <rguenther@suse.de>
11594
11595         PR debug/42455
11596         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
11597
11598 2010-01-01  Richard Guenther  <rguenther@suse.de>
11599
11600         PR c/42570
11601         * c-decl.c (grokdeclarator): For zero-size arrays force
11602         structural equality checks as layout_type does.
11603
11604 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
11605
11606         * builtins.c: Update copyright to 2010.
11607
11608 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
11609
11610         PR lto/42531
11611         * lto-streamer-out.c (produce_asm): Revert the last change.
11612         (copy_function): Likewise.
11613
11614         * lto-streamer.c (lto_get_section_name): Skip any leading
11615         asterisk in name.
11616
11617 2010-01-01  Richard Guenther  <rguenther@suse.de>
11618
11619         PR middle-end/42559
11620         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
11621         for LABEL_DECLs.
11622
11623 \f
11624 Copyright (C) 2010 Free Software Foundation, Inc.
11625
11626 Copying and distribution of this file, with or without modification,
11627 are permitted in any medium without royalty provided the copyright
11628 notice and this notice are preserved.