invoke.texi (xtensa options): Add -mforce-no-pic.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2010-05-27 Sterling Augustine <sterling@tensilica.com>
2
3         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
4         * config/xtensa/xtensa.c (override_options): Check
5           TARGET_FORCE_NO_PIC and set flag_pic.
6         * config/xtensa/xtensa.opt: Document -mforce-no-pic
7
8 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
9
10         PR bootstrap/44299
11         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
12         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
13
14 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
15
16         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
17         toplev.h.
18         * diagnostic.c: Don't include toplev.h.
19         (progname): Define.  Moved from toplev.c.
20         (seen_error): New function.
21         * diagnostic.h: Include diagnostic-core.h.
22         (diagnostic_t, emit_diagnostic): Don't declare here.
23         * toplev.c (progname): Move to toplev.c.
24         (emit_debug_global_declarations, compile_file, finalize,
25         do_compile, toplev_main): Use seen_error.
26         * toplev.h: Include diagnostic-core.h.
27         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
28         internal_error, warning, warning_at, error, error_n, error_at,
29         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
30         verbatim, fnotice, progname): Move to diagnostic-core.h.
31         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
32         (expand_builtin_expect): Use seen_error.
33         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
34         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
35         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
36         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
37         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
38         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
39         errorcount for errors.
40         * c-opts.c (c_common_finish): Use seen_error.
41         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
42         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
43         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
44         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
45         (get_coverage_counts): Use seen_error.
46         * dwarf2out.c (dwarf2out_finish): Use seen_error.
47         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
48         gimplify_body): Use seen_error.
49         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
50         * ipa-pure-const.c (gate_pure_const): Use seen_error.
51         * ipa-reference.c (gate_reference): Use seen_error.
52         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
53         * lambda-code.c: Include diagnostic-core.h instead of
54         diagnostic.h.
55         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
56         * lto-compress.c: Include diagnostic-core.h instead of
57         diagnostic.h.
58         * lto-section-in.c: Include diagnostic-core.h instead of
59         diagnostic.h.
60         * lto-streamer-out.c: Include diagnostic-core.h instead of
61         diagnostic.h.
62         * lto-streamer.c: Include diagnostic-core.h instead of
63         diagnostic.h.
64         (gate_lto_out): Use seen_error.
65         * matrix-reorg.c: Include diagnostic-core.h instead of
66         diagnostic.h.
67         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
68         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
69         (gate_expand_omp, lower_omp_1): Use seen_error.
70         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
71         (rest_of_decl_compilation, rest_of_type_compilation,
72         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
73         * tree-cfg.c (label_to_block_fn): Use seen_error.
74         * tree-inline.c (optimize_inline_calls): Use seen_error.
75         * tree-mudflap.c (mudflap_finish_file): Use
76         seen_error.
77         * tree-optimize.c (gate_all_optimizations,
78         gate_all_early_local_passes, gate_all_early_optimizations): Use
79         seen_error.
80         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
81         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
82         (varpool_remove_unreferenced_decls,
83         varpool_assemble_pending_decls): Use seen_error.
84         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
85         (TOPLEV_H, DIAGNOSTIC_H): Update.
86         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
87         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
88         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
89         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
90         coverage.o, lambda-code.o): Update dependencies.
91
92 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
93
94         PR c++/44188
95         * c-common.c (is_typedef_decl): Move this definition ...
96         * tree.c (is_typedef_decl): ... here.
97         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
98         * c-common.h (is_typedef_decl): Move this declaration ...
99         * tree.h (is_typedef_decl): ... here.
100         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
101         * dwarf2out.c (is_naming_typedef_decl): New function.
102         (gen_tagged_type_die): Split out of ...
103         (gen_type_die_with_usage): ... this function. When an anonymous
104         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
105         is emitted for the typedef.
106         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
107         anonymous tagged types.
108
109 2010-05-27  Jason Merrill  <jason@redhat.com>
110
111         * print-tree.c (debug_vec_tree): New fn.
112         (print_vec_tree): New fn.
113         * tree.h: Declare them.
114         * gdbinit.in (pvt): New command.
115
116         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
117
118         * gdbinit.in (pdd): New command.
119
120 2010-05-27  Jan Hubicka  <jh@suse.cz>
121
122         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
123         (update_caller_keys): Return early if there are no callers;
124         only update fibheap when decresing the key.
125         (update_callee_keys): Avoid recursion.
126         (decide_inlining_of_small_functions): When badness does not match;
127         re-insert into fibheap.
128
129 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
130
131         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
132         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
133         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
134         (ALL_HOST_OBJS): Now a union of the above two.
135         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
136         all files in ALL_HOST_FRONTEND_OBJS.
137         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
138
139         * c-common.c: Pretend to be a backend file by undefining
140         IN_GCC_FRONTEND (still need rtl.h here).
141
142 2010-05-27  Jan Hubicka  <jh@suse.cz>
143
144         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
145         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
146
147 2010-05-27  Jan Hubicka  <jh@suse.cz>
148
149         * sched-ebb.c: Rename struct deps to struct deps_desc.
150         * ddg.c: Likewise.
151         * sel-sched-ir.c: Likewise.
152         * sched-deps.c: Likewise.
153         * sched-int.h: Likewise.
154         * sched-rgn.c: Likewise.
155
156 2010-05-27  Jon Beniston <jon@beniston.com>
157
158         PR 43726
159         * config/lm32/lm32.h: Remove definition of 
160         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
161
162 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
163
164         PR lto/44230
165         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
166
167 2010-05-27  Richard Guenther  <rguenther@suse.de>
168
169         PR tree-optimization/44284
170         * tree-vect-stmts.c (vectorizable_assignment): Handle
171         sign-changing conversions as simple copy.
172
173 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
174
175         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
176         Bionic C library.
177         (__gthread_active_p): Check for pthread_create if compiling against
178         Bionic C library.
179
180 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
181
182         Support compilation for Android platform.  Reimplement -mandroid.
183
184         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
185         (*android*): Set ANDROID_DEFAULT.
186         (arm*-*-linux*): Include linux-android.h.
187         (arm*-*-eabi*): Don't include previous -mandroid implementation.
188         * config/arm/eabi.h: Remove, move Android-specific parts ...
189         * config/linux-android.h: ... here.  New file.
190         * config/arm/eabi.opt: Rename to ...
191         * config/linux-android.opt: ... this.
192         (mandroid): Allow -mno-android option.  Initialize based on
193         ANDROID_DEFAULT.
194         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
195         Move logic to corresponding LINUX_TARGET_* macros.
196         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
197         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
198         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
199         Android definitions.
200         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
201         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
202         Document.
203
204 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
205
206         Add support for Bionic C library
207
208         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
209         macro.
210         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
211         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
212
213         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
214         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
215         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
216         to support multiple C libraries.  Handle Bionic.
217         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
218         (BIONIC_DYNAMIC_LINKER64): Define.
219         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
220         Update.
221         (TARGET_HAS_SINCOS): Enable for Bionic.
222
223         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
224         the last option specified on command line take effect.
225         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
226         (mbionic): New.
227         (mglibc, muclibc): Update.
228
229         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
230         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
231         DEFAULT_LIBC.
232
233         * doc/invoke.texi (-mglibc, -muclibc): Update.
234         (-mbionic): Document.
235
236 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
237
238         * c-common.h (c_register_addr_space): Add prototype.
239         (ADDR_SPACE_KEYWORD): Remove.
240         * c-common.c (c_register_addr_space): New function.
241         (c_addr_space_name): Reimplement.
242         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
243
244         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
245         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
246
247         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
248         Remove TARGET_ADDR_SPACE_KEYWORDS.
249
250 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
251
252         * input.c: New file.
253         * input.h (main_input_filename): Move declaration to toplev.h.
254         * toplev.c (input_location, line_table): Move to input.c
255         * toplev.h (main_input_filename): Move declaration from input.h.
256         * tree.c (expand_location): Move to input.c.
257         * Makefile.in (OBJS-common): Add input.o.
258         (input.o): Add dependencies.
259
260 2010-05-27  Richard Guenther  <rguenther@suse.de>
261
262         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
263         for non-existant files.
264         (fork_execute): Mark args_name file as deleted.
265
266 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
267
268         PR bootstrp/44287
269         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
270         (narrow_signed_type): Likewise.
271
272 2010-05-26  Jan Hubicka  <jh@suse.cz>
273
274         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
275         edge only when checking is enabled; check using former_clone_of;
276         check inline clones too.
277         (cgraph_materialize_clone): Record former_clone_of pointer.
278         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
279         combining redirections; dump args_to_skip bitmap
280         (cgraph_materialize_all_clones): Do no redirection here.
281         * ipa-inline.c (inline_transform): Do redirection here.
282         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
283         cheking only).
284
285 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
286
287         * config/avr/avr-c.c: Do not include regs.h.
288         Include cpplib.h for cpp_define and tree.h for c-common.h.
289         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
290         * config/avr/t-avr: Fix dependencies for avr-c.o.
291
292 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
293
294         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
295         string instead of SYMBOL_REF rtx.
296         * rtl.h (set_stack_check_libfunc): Move prototype from here...
297         * libfuncs.h: ...to here.  Adjust for explow.c change.
298
299 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
300
301         * pretty-print.c: Don't include ggc.h.
302         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
303         (identifier_to_locale): Use them for allocation.
304         * pretty-print.h (identifier_to_locale_alloc,
305         identifier_to_locale_free): Declare.
306         * toplev.c (alloc_for_identifier_to_locale): New.
307         (general_init): Set identifier_to_locale_alloc and
308         identifier_to_locale_free.
309         * Makefile.in (pretty-print.o): Update dependencies.
310
311 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
312
313         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
314         pointer types if they have different alignment or mode.
315
316 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
317
318         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
319         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
320         * config/sparc/sparc-protos.h (function_value): Remove declaration.
321         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
322         sparc_function_value_regno_p): New functions.
323         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
324         TARGET_FUNCTION_VALUE_REGNO_P): Define.
325         (function_value): Rename to...
326         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
327         argument to 'outgoing'.
328         (function_arg_record_value, function_arg_union_value,
329         function_arg_vector_value): Update comment.
330
331 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
332
333         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
334         (fde_needed_for_eh_p): New predicate.
335         (output_call_frame_info): Use it throughout to decide whether FDEs
336         are needed for EH purpose.
337         (dwarf2out_begin_prologue): Reorder assignments.
338
339 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
340
341         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
342         special case loop->header.
343         (is_predicated): New.
344         (if_convertible_loop_p): Call it.
345
346 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
347
348         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
349         iterator in parameter.  Do not generate code during the analysis.
350         (tree_if_convert_cond_stmt): Removed.
351         (tree_if_convert_stmt): Removed.
352         (predicate_bbs): New.
353         (if_convertible_loop_p): Call predicate_bbs.
354         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
355         now contains all the analysis part.
356
357 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
358
359         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
360         statements in the analysis part.
361         (tree_if_convert_stmt): Update comment.
362         (remove_conditions_and_labels): New.
363         (combine_blocks): Call remove_conditions_and_labels.
364         (tree_if_conversion): Update comment.
365
366 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
367
368         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
369         than 2 predecessors or more than 2 successors.
370
371 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
372
373         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
374         of loops in which the data dependence analysis fails.
375
376 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
377
378         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
379         CDI_POST_DOMINATORS.
380         (tree_if_conversion): Same.
381
382 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
383
384         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
385
386 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
387
388         * tree-if-conv.c: Update copyright years.  Fix comments.
389         Fix indentation.
390
391 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
392
393         * builtin-types.def (BT_INT128): New primitive type.
394         (BT_UINT128): Likewise.
395         * c-common.c (c_common_r): Add __int128 keyword.
396         (c_common_type_for_size): Handle __int128.
397         (c_common_type_for_mode): Likewise.
398         (c_common_signed_or_unsigned_type): Likewise.
399         (c_common_nodes_and_builtins): Add builtin type
400         if target supports 128-bit integer scalar.
401         * c-common.h (enum rid): Add RID_INT128.
402         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
403         if target supports 128-bit integer scalar.
404         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
405         (finish_declspecs): Likewise.
406         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
407         (c_token_starts_declspecs): Likewise.
408         (c_parser_declspecs): Likewise.
409         (c_parser_attributes): Likewise.
410         (c_parser_objc_selector): Likewise.
411         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
412         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
413         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
414         * tree.c (make_or_reuse_type): Likewise.
415         (make_unsigned_type): Likewise.
416         (build_common_tree_nodes_2): Likewise.
417         * tree.h (enum integer_type_kind): Add itk_int128 and
418         itk_unsigned_int128.
419         (int128_integer_type_node): New define.
420         (int128_unsigned_type_node): New define.
421         * doc/extend.texi: Add documentation about __int128 type.
422
423 2010-05-26  Richard Guenther  <rguenther@suse.de>
424
425         * tree-ssa-sccvn.c (copy_nary): Adjust.
426         (copy_phis): Rename to ...
427         (copy_phi): ... this.  Adjust.
428         (copy_references): Rename to ...
429         (copy_reference): ... this.  Adjust.
430         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
431         result into the valid table.
432
433 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
434
435         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
436         insn-config.h, insn-codes.h, recog.h, and optabs.h.
437
438 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
439
440         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
441
442 2010-05-26  Richard Guenther  <rguenther@suse.de>
443
444         * opts.c (common_handle_option): Handle OPT_Ofast.
445
446 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
447
448         * diagnostic.c: Don't include opts.h.
449         (permissive_error_option): Define.
450         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
451         for classify_diagnostic.  Don't use memset for
452         classify_diagnostic.  Initialize new and recently added fields.
453         (diagnostic_classify_diagnostic): Use context->n_opts instead of
454         N_OPTS.
455         (diagnostic_report_diagnostic): Pass context parameter to
456         diagnostic_report_warnings_p.  Use option_enabled and option_name
457         hooks from context.
458         (emit_diagnostic): Use permissive_error_option.
459         (permerror): Likewise.
460         * diagnostic.h: Don't include options.h.
461         (struct diagnostic_context): Add n_opts, opt_permissive,
462         inhibit_warnings, warn_system_headers, option_enabled and
463         option_name fields.  Change classify_diagnostic to a pointer.
464         * opts-diagnostic.h: New file.
465         * opts.c: Include opts-diagnostic.h.
466         (common_handle_option): Set global_dc fields for -Wfatal-errors,
467         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
468         (option_name): New function.
469         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
470         (c_common_handle_option): Set global_dc->permissive for
471         -fpermissive.
472         * c-common.c (c_cpp_error): Save and restore
473         global_dc->warn_system_headers, not variable warn_system_headers.
474         * toplev.c: Include opts-diagnostic.h.
475         (general_init): Update call to diagnostic_initialize.  Set
476         global_dc->show_column, global_dc->option_enabled and
477         global_dc->option_name.
478         (process_options): Don't set global_dc fields here.
479         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
480         (diagnostic.o, opts.o, toplev.o): Update dependencies.
481
482 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
483
484         * config/picochip/picochip.md (movsi): Split a movsi from a
485         const after reload.
486
487 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
488
489         * ggc-zone.c: Update copyright year.
490         (poison_region): Mark memory for Valgrind as undefined before
491         memset () call and inaccessible afterwards.
492         (ggc_pch_total_size): Change type of i to int.
493
494 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
495
496         * ggc-common.c (ggc_free_overhead): Allow empty slot.
497
498 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
499
500         * ggc-common.c: Update copyright year.
501         (ggc_rlimit_bound): Remove prototype.  Compile only if
502         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
503         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
504         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
505         (ggc_min_heapsize_heuristic): Likewise.
506
507 2010-05-26  Richard Guenther  <rguenther@suse.de>
508
509         PR rtl-optimization/44164
510         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
511         no-common access-path disambiguation.
512         (indirect_ref_may_alias_decl_p): Adjust.
513         (indirect_refs_may_alias_p): Likewise.
514         (refs_may_alias_p_1): Likewise.
515
516 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
517
518         * c-typeck.c: Do not include expr.h.
519
520 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
521
522         * rtl.h (decl_default_tls_model): Move prototype from here...
523         * output.h: ...to here.
524         * c-decl.c: Do not include rtl.h.
525         * c-pragma.c: Likewise.
526         * c-parser.c: Likewise.
527         * c-gimplify.c: Likewise.  And also not hard-reg-set.
528         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
529         FIXME note for it.  Add a FIXME note for expr.h.
530         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
531         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
532         defined.
533
534 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
535
536         PR target/44199
537         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
538         or total_size is larger than red zone size for non-V4 ABI, emit a
539         stack_tie resp. frame_tie insn before stack pointer restore.
540         * config/rs6000/rs6000.md (frame_tie): New insn.
541
542 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
543
544         * function.h (struct function): Add can_throw_non_call_exceptions bit.
545         * lto-streamer-in.c (input_function): Stream it in.
546         * lto-streamer-out.c (output_function): Stream it out.
547         * function.c (allocate_struct_function): Set it.
548         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
549         for flag_non_call_exceptions.
550         * cfgbuild.c (control_flow_insn_p): Likewise.
551         (make_edges): Likewise.
552         * cfgexpand.c (expand_stack_alignment): Likewise.
553         * combine.c (distribute_notes): Likewise.
554         * cse.c (cse_extended_basic_block): Likewise.
555         * except.c (insn_could_throw_p): Likewise.
556         * gcse.c (simple_mem): Likewise.
557         * ipa-pure-const.c (check_call): Likewise.
558         (check_stmt ): Likewise.
559         * lower-subreg.c (lower-subreg.c): Likewise.
560         * optabs.c (emit_libcall_block): Likewise.
561         (prepare_cmp_insn): Likewise.
562         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
563         * postreload.c (rest_of_handle_postreload): Likewise.
564         * reload1.c (reload_as_needed): Likewise.
565         (emit_input_reload_insns): Likewise.
566         (emit_output_reload_insns): Likewise.
567         (fixup_abnormal_edges): Likewise.
568         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
569         * store-motion.c (find_moveable_store): Likewise.
570         * tree-eh.c (stmt_could_throw_p): Likewise.
571         (tree_could_throw_p): Likewise.
572         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
573         * config/arm/arm.c (arm_expand_prologue): Likewise.
574         (thumb1_expand_prologue): Likewise.
575         * config/rx/rx.md (cbranchsf4): Likewise.
576         (cmpsf): Likewise.
577         * config/s390/s390.c (s390_emit_prologue): Likewise.
578         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
579         (inline_forbidden_into_p): New predicate.
580         (expand_call_inline): Use it to forbid inlining.
581         (tree_can_inline_p): Likewise.
582
583 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
584
585         * config/i386/i386-c.c: Do not include rtl.h.
586         * config/i386/t-i386: Update dependencies.
587
588 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
589
590         * attribs.c: Do not include rtl.h.
591         * Makefile.in: Update dependencies.
592
593 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
594
595         * double-int.h (double_int_and): New.
596         * combine.c (try_combine): Clean up, use double_int_* and
597         immed_double_int_const functions.
598
599 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
600
601         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
602         stderr to /dev/null instead of grep -q.
603         * configure: Regenerate.
604
605 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
606
607         * Makefile.in (EXCEPT_H): Fix typo.
608
609 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
610
611         * ira-build.c (update_conflict_hard_reg_costs): New.
612         (ira_build): Call update_conflict_hard_reg_costs.
613
614 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
615
616         PR debug/41371
617         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
618         ENABLE_CHECKING.
619         (intersect_loc_chains): Walk the s2var's loc_chain together
620         with s1node chain as long as the locations are equal, don't
621         call find_loc_in_1pdv in that case.
622
623         PR debug/42801
624         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
625         (copy_bind_expr): ... instead of here.
626         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
627         if the block hasn't been remapped.
628         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
629         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
630
631 2010-05-25  Richard Guenther  <rguenther@suse.de>
632
633         PR middle-end/44069
634         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
635         out-of-bounds array accesses.
636
637 2010-05-25  Richard Guenther  <rguenther@suse.de>
638
639         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
640         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
641         (run_gcc): Re-organize to make cleanup easier.
642
643 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
644
645         * config/s390/s390.c (optimization_options): Fix and move the
646         flag_prefetch_loop_arrays override ...
647         (override_options): ... here.
648
649 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
650
651         * diagnostic.c: Don't include plugin.h.
652         (diagnostic_report_diagnostic): Don't handle plugins specially
653         here.  Pass context to internal_error callback.
654         * diagnostic.h (struct diagnostic_context): Add context parameter
655         to internal_error callback.
656         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
657         * plugin.h (struct diagnostic_context): Declare.
658         (warn_if_plugins, plugins_internal_error_function): Declare.
659         * toplev.c (general_init): Set global_dc->internal_error.
660         * Makefile.in (diagnostic.o): Update dependencies.
661
662 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
663
664         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
665         * config/rs6000/t-darwin64: New.
666         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
667         build crt2.
668
669 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
670
671         PR 44203
672         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
673         match the original (and intended) behaviour before r159557.  This
674         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
675         in two ways.
676
677 2010-05-25  Richard Guenther  <rguenther@suse.de>
678
679         * doc/invoke.texi: Document -Ofast.
680         * target.h (struct gcc_target): Add handle_ofast.
681         * target-def.h (TARGET_HANDLE_OFAST): Add.
682         (TARGET_INITIALIZER): Adjust.
683         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
684         * common.opt (Ofast): Add.
685
686 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
687
688         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
689         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
690
691 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
692
693         PR target/43610
694         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
695         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
696         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
697         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
698
699 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
700
701         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
702         DW_OP_minus with negated offset instead of DW_OP_plus.
703         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
704
705 2010-05-25  Wei Guozhi  <carrot@google.com>
706
707         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
708         tst instruction and a new alternative.
709         * config/arm/constraints.md (Pu): New constraint.
710
711 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
712
713         * function.c (assign_stack_local_1): Initialize variable
714         to avoid warning when bootstrapping at -O3.
715
716 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
717
718         * configure.ac (all_lang_makefiles): Remove everything related to it.
719         * configure: Regenerate.
720         * Makefile.in: Fix reference to ada Make-lang.in.
721         Remove support for LANG_MAKEFILES.
722
723 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
724             Sandra Loosemore  <sandra@codesourcery.com>
725
726         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
727         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
728         description.  Add arm_neon_fp16_ok.
729         (Add Options): Add arm_neon and arm_neon_fp16.
730
731 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
732
733         * diagnostic.c: Don't include flags.h.
734         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
735         context parameters.  Check flags in the context passed as a parameter.
736         (diagnostic_build_prefix): Add context parameter.  Check
737         show_column flag in context.
738         (diagnostic_action_after_output): Check fatal_errors flag in context.
739         (diagnostic_report_current_module): Check show_column flag in context.
740         (default_diagnostic_starter): Update call to
741         diagnostic_build_prefix.
742         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
743         (emit_diagnostic): Pass context to permissive_error_kind.
744         (permerror): Pass context to permissive_error_kind.
745         * diagnostic.h (struct diagnostic_context): Add show_column,
746         pedantic_errors, permissive and fatal_errors fields.
747         (diagnostic_build_prefix): Update prototype.
748         * langhooks.c
749         * toplev.c (process_options): Set flags in global_dc from
750         flag_show_column, flag_pedantic_errors, flag_permissive,
751         flag_fatal_errors.
752         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
753         to diagnostic_build_prefix.
754         * Makefile.in (diagnostic.o): Update dependencies.
755
756 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
757
758         * config/i386/ia32intrin.h (__crc32q): Define only if
759         __SSE4_2__ is defined.
760
761 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
762
763         PR target/44132
764         PR middle-end/43602
765         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
766         DECL_VISIBILITY_SPECIFIED.
767         (emutls_decl): Set DECL_PRESERVE_P and copy
768         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
769         (emutls_finalize_control_var): New callback.
770         (emutls_finish): Finalize emutls control variables.
771         * toplev.c (compile_file): Move the call to emutls_finish ()
772         before varpool_assemble_pending_decls ().
773
774 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
775
776         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
777         added to the preprocessor condition.
778
779 2010-05-24  Paul Brook  <paul@codesourcery.com>
780
781         * gengtype-lex.l: Add HARD_REG_SET.
782         * expr.c (expand_expr_real_1): Record writes to hard registers.
783         * function.c (rtl_data): Add asm_clobbers.
784         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
785         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
786         Use crtl->asm_clobbers.
787
788 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
789
790         * doc/makefile.texi (Makefile): Mention stages 'profile'
791         and 'feedback' for profiledbootstrap.
792
793 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
794
795         PR target/44245
796         * config/i386/i386.c (def_builtin): Properly check
797         OPTION_MASK_ISA_64BIT.
798
799 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
800
801         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
802         typedefs with different but compatible types.  Allow duplicate
803         typedefs with the same type except for pedantic non-C1X, but give
804         warning for variably modified types.
805         * c-typeck.c (tagged_types_tu_compatible_p,
806         function_types_compatible_p, type_lists_compatible_p,
807         comptypes_internal): Add parameter different_types_p; set
808         *different_types_p for different but compatible types.  All
809         callers changed.
810         (comptypes_check_different_types): New.
811         * c-tree.h (comptypes_check_different_types): Declare.
812
813 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
814
815         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
816         * jump.c: Include basic-block.h.
817         * profile.c: Likewise.
818         * tree-profile.c: Likewise.
819         * coverage.c: Likewise.
820         * basic-block.h (optimize_function_for_size_p): Move to function.h.
821         (optimize_function_for_speed_p): Likewise.
822         * function.h (optimize_function_for_size_p,
823         optimize_function_for_speed_p): Moved here from basic-block.h.
824         * Makefile.in: Update dependencies.
825
826 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
827
828         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
829         before calling make; allow override through $MAKE.
830         * doc/invoke.texi (Optimize Options): Document override.
831
832 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
833
834         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
835         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
836         (rs6000_mode_dependent_address_ptr): Make static.
837         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
838         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
839         Remove.
840
841 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
842
843         PR target/43869
844         * config/i386/i386.c: Make sure that the correct regparm is passed.
845
846 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
847
848         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
849         * sbitmap.c: ...to here to internalize sbitmap element access.
850         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
851         Explain why basic-block.h is included.
852         * function.h: Include tm.h for CUMULATIVE_ARGS.
853         * Makefile.in: Update dependencies.
854
855 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
856
857         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
858         New core types.
859         * sbitmap.h (struct sbitmap_def): Do not typedef here.
860         * sbitmap.c: Include sbitmap.h.
861         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
862         hard-reg-set.h.  Split everything related to regsets out from here...
863         * regset.h: ...to here.  New file.
864         * df.h: Include regset.h and sbitmap.h.
865         * tree-flow.h: Likewise.
866         * cfgloop.h: Likewise.
867         * except.h: Do not include sbitmap.h.  Include hashtab.h.
868         * cgraph.h: Include vec.h and function.h.
869         * reload.h (struct insn_chain): Change types of live_throughout
870         and dead_or_set from regset_head to bitmap_head.
871         (compute_use_by_pseudos): Be defined also if regset.h is not included.
872         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
873         spilled_regs from regset_head to bitmap_head to avoid dependency
874         in regset.h.
875         * sel-sched-ir.h: Include regset.h.
876         * reload.c: Include df.h before reload.h.
877         * caller-save.c: Likewise.
878         * reload1.c: Likewise.
879         * ira.c: Likewise.
880         (mark_elimination): Update type of r to bitmap, consistent with
881         DF_LR_IN.
882         * dominance.c: Include bitmap.h.
883         * modulo-sched.c: Include df.h.
884         * cfganal.c: Include bitmap.h and sbitmap.h.
885         * cfgbuild.c: Include sbitmap.h.
886         * lcm.c: Include sbitmap.h.
887         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
888         * domwalk.c: Include sbitmap.h, exclude ggc.h.
889         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
890         * cselib.c: Include bitmap.h.
891         * tree-optimize.c: Include regset.h.
892         * stmt.c: Include bitmap.h.
893         * Makefile.in: Update dependencies.
894
895 2010-05-22  Jan Hubicka  <jh@suse.cz>
896
897         * cgraph.h (struct varpool_node): Add same_comdat_group.
898         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
899         pointer.
900         (output_varpool): Update call of lto_output_varpool_node.
901         (input_varpool): Read same_comdat_group pointer.
902         (input_varpool_1): Fixup same_comdat_group pointer.
903         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
904         group is needed, all are.
905         * varpool.c (varpool_remove_node): Remove node from same comdat group
906         linklist too.
907         (varpool_analyze_pending_decls): Walk same comdat groups.
908
909 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
910
911         * rtl.h (union rtunion_def): Remove rt_bit member.
912         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
913         * print-rtl (print_rtx): Do not print the member.
914         * gengtype.c (adjust_field_rtx_def): Do not handle it.
915         * gengenrtl.c (type_from_format): Likewise.
916         (accessor_from_format): Likewise.
917
918 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
919
920         * dbgcnt.c: Include toplev.h instead of errors.h.
921         * ira-emit.c: Don't include errors.h.
922         * ira.c: Include toplev.h instead of errors.h.
923         * lto-compress.c: Include toplev.h instead of errors.h.
924         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
925         ira.o, dbgcnt.o): Update dependencies.
926
927 2010-05-22  Richard Guenther  <rguenther@suse.de>
928
929         * gimple.c (gimple_types_compatible_p): Check type qualifications
930         before merging pointer to complete and pointer to incomplete type.
931         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
932         we use our own resolution algorithm.  The gold linker plugin
933         doesn't do the job we want it to do here.
934
935 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
936
937         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
938         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
939         (sparc_mode_dependent_address_p): New function.
940
941 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
942
943         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
944
945         * timevar.c: Do not include any core headers.
946         (timevar_print): De-i18n-ize.
947         (print_time): Likewise.
948         * timevar.h (timevar_push, timevar_pop): Make inline functions.
949
950 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
951
952         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
953         langhooks-def.h.
954         (diagnostic_initialize): Initialize x_data not last_function.
955         (diagnostic_report_current_function): Move to tree-diagnostic.c.
956         (default_diagnostic_starter): Call
957         diagnostic_report_current_module not
958         diagnostic_report_current_function.
959         (diagnostic_report_diagnostic): Initialize x_data not
960         abstract_origin.
961         (verbatim): Likewise.
962         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
963         x_data.
964         (struct diagnostic_context): Change last_function to x_data.
965         (diagnostic_auxiliary_data): Replace with
966         diagnostic_context_auxiliary_data and
967         diagnostic_info_auxiliary_data.
968         (diagnostic_last_function_changed, diagnostic_set_last_function,
969         diagnostic_report_current_function): Move to tree-diagnostic.h.
970         (print_declaration, dump_generic_node, print_generic_stmt,
971         print_generic_stmt_indented, print_generic_expr,
972         print_generic_decl, debug_c_tree, dump_omp_clauses,
973         print_call_name, debug_generic_expr, debug_generic_stmt,
974         debug_tree_chain, default_tree_printer): Move to
975         tree-pretty-print.h.
976         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
977         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
978         gimple-pretty-print.h.
979         * pretty-print.c: Don't include tree.h
980         (pp_base_format): Don't handle %K here.
981         (pp_base_tree_identifier): Move to tree-pretty-print.c.
982         * pretty-print.h (text_info): Change abstract_origin to x_data.
983         (pp_tree_identifier, pp_unsupported_tree,
984         pp_base_tree_identifier): Move to tree-pretty-print.h.
985         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
986         tree-pretty-print.h: New files.
987         * tree-pretty-print.c: Include tree-pretty-print.h.
988         (percent_K_format): New.  Moved from pretty-print.c.
989         (pp_base_tree_identifier): Move from pretty-print.c.
990         * c-objc-common.c: Include tree-pretty-print.h.
991         (c_tree_printer): Handle %K here.
992         * langhooks.c: Include tree-diagnostic.h.
993         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
994         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
995         (default_tree_printer): Handle %K using percent_K_format.
996         (general_init): Use default_tree_diagnostic_starter.
997         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
998         (free_lang_data): Use default_tree_diagnostic_starter.
999         * c-pretty-print.c: Include tree-pretty-print.h.
1000         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1001         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1002         * dwarf2out.c: Include tree-pretty-print.h.
1003         * except.c: Include tree-pretty-print.h.
1004         * gimple-pretty-print.c: Include tree-pretty-print.h and
1005         gimple-pretty-print.h.
1006         * gimplify.c: Include tree-pretty-print.h.
1007         * graphite-poly.c: Include tree-pretty-print.h and
1008         gimple-pretty-print.h.
1009         * ipa-cp.c: Include tree-pretty-print.h.
1010         * ipa-inline.c: Include gimple-pretty-print.h.
1011         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1012         * ipa-pure-const.c: Include gimple-pretty-print.h.
1013         * ipa-struct-reorg.c: Include tree-pretty-print.h and
1014         gimple-pretty-print.h.
1015         * ipa-type-escape.c: Include tree-pretty-print.h.
1016         * print-rtl.c: Include tree-pretty-print.h.
1017         * print-tree.c: Include gimple-pretty-print.h.
1018         * sese.c: Include tree-pretty-print.h.
1019         * tree-affine.c: Include tree-pretty-print.h.
1020         * tree-browser.c: Include tree-pretty-print.h.
1021         * tree-call-cdce.c: Include gimple-pretty-print.h.
1022         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1023         * tree-chrec.c: Include tree-pretty-print.h.
1024         * tree-data-ref.c: Include tree-pretty-print.h and
1025         gimple-pretty-print.h.
1026         * tree-dfa.c: Include tree-pretty-print.h.
1027         * tree-if-conv.c: Include tree-pretty-print.h and
1028         gimple-pretty-print.h.
1029         * tree-inline.c: Include tree-pretty-print.h.
1030         * tree-into-ssa.c: Include tree-pretty-print.h and
1031         gimple-pretty-print.h.
1032         * tree-nrv.c: Include tree-pretty-print.h.
1033         * tree-object-size.c: Include tree-pretty-print.h and
1034         gimple-pretty-print.h.
1035         * tree-outof-ssa.c: Include tree-pretty-print.h and
1036         gimple-pretty-print.h.
1037         * tree-parloops.c: Include tree-pretty-print.h and
1038         gimple-pretty-print.h.
1039         * tree-predcom.c: Include tree-pretty-print.h and
1040         gimple-pretty-print.h.
1041         * tree-scalar-evolution.c: Include tree-pretty-print.h and
1042         gimple-pretty-print.h.
1043         * tree-sra.c: Include tree-pretty-print.h.
1044         * tree-ssa-address.c: Include tree-pretty-print.h.
1045         * tree-ssa-alias.c: Include tree-pretty-print.h.
1046         * tree-ssa-ccp.c: Include tree-pretty-print.h and
1047         gimple-pretty-print.h.
1048         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
1049         * tree-ssa-copy.c: Include tree-pretty-print.h and
1050         gimple-pretty-print.h.
1051         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
1052         * tree-ssa-dce.c: Include tree-pretty-print.h and
1053         gimple-pretty-print.h.
1054         * tree-ssa-dom.c: Include tree-pretty-print.h and
1055         gimple-pretty-print.h.
1056         * tree-ssa-dse.c: Include gimple-pretty-print.h.
1057         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
1058         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
1059         * tree-ssa-live.c: Include tree-pretty-print.h and
1060         gimple-pretty-print.h.
1061         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
1062         gimple-pretty-print.h.
1063         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
1064         gimple-pretty-print.h.
1065         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
1066         gimple-pretty-print.h.
1067         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
1068         gimple-pretty-print.h.
1069         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
1070         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
1071         * tree-ssa-operands.c: Include tree-pretty-print.h and
1072         gimple-pretty-print.h.
1073         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
1074         gimple-pretty-print.h.
1075         * tree-ssa-pre.c: Include tree-pretty-print.h and
1076         gimple-pretty-print.h.
1077         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
1078         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
1079         gimple-pretty-print.h.
1080         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
1081         gimple-pretty-print.h.
1082         * tree-ssa-sink.c: Include gimple-pretty-print.h.
1083         * tree-ssa-ter.c: Include tree-pretty-print.h and
1084         gimple-pretty-print.h.
1085         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
1086         * tree-ssa.c: Include tree-pretty-print.h and
1087         gimple-pretty-print.h.
1088         * tree-stdarg.c: Include gimple-pretty-print.h.
1089         * tree-switch-conversion.c: Include gimple-pretty-print.h.
1090         * tree-tailcall.c: Include tree-pretty-print.h and
1091         gimple-pretty-print.h.
1092         * tree-vect-data-refs.c: Include tree-pretty-print.h and
1093         gimple-pretty-print.h.
1094         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
1095         gimple-pretty-print.h.
1096         * tree-vect-loop.c: Include tree-pretty-print.h and
1097         gimple-pretty-print.h.
1098         * tree-vect-patterns.c: Include gimple-pretty-print.h.
1099         * tree-vect-slp.c: Include tree-pretty-print.h and
1100         gimple-pretty-print.h.
1101         * tree-vect-stmts.c: Include tree-pretty-print.h and
1102         gimple-pretty-print.h.
1103         * tree-vectorizer.c: Include tree-pretty-print.h.
1104         * tree-vrp.c: Include tree-pretty-print.h and
1105         gimple-pretty-print.h.
1106         * value-prof.c: Include tree-pretty-print.h and
1107         gimple-pretty-print.h.
1108         * var-tracking.c: Include tree-pretty-print.h.
1109         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
1110         (tree-diagnostic.o): New dependencies.
1111         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
1112         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
1113         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
1114         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
1115         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
1116         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
1117         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
1118         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
1119         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
1120         tree-ssa-address.o, tree-ssa-loop-niter.o,
1121         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
1122         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
1123         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
1124         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
1125         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
1126         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
1127         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
1128         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
1129         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
1130         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
1131         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
1132         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
1133         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
1134         tree-switch-conversion.o, var-tracking.o, value-prof.o,
1135         cfgexpand.o, pretty-print.o): Update dependencies.
1136
1137 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
1138
1139         * tree-ssa-structalias.c: Remove tm_p.h from include.
1140
1141 2010-05-21  Jeff Law  <law@redhat.com>
1142
1143         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
1144
1145 2010-05-21  Jason Merrill  <jason@redhat.com>
1146
1147         * tree-eh.c (cleanup_is_dead_in): New.
1148         (lower_try_finally): Don't generate a dead cleanup region.
1149         (lower_cleanup): Likewise.
1150
1151 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1152
1153         PR debug/44223
1154         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
1155         unchain each use from the cyclic next_regno_use chain first.
1156
1157 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1158
1159         * real: Do not include gmp.h, mpfr.h, and mpc.h.
1160         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
1161         (real_value_negate, real_value_abs): New prototypes.
1162         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
1163         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
1164         new include file for interface between MPFR and REAL_VALUE_TYPE.
1165         * real.c: Include realmpfr.h.
1166         (real_arithmetic2): Remove legacy function.
1167         (real_value_negate): New.
1168         (real_value_abs): New.
1169         (mfpr_from_real, real_from_mpfr): Move from here...
1170         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
1171         * builtins.c: Include realmpfr.h.
1172         * fold-const.c: Include realmpfr.h.
1173         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
1174         (fold_negate_const): Likewise.
1175         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
1176         * toplev.c: Include realmpfr.h.
1177         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
1178         and real_value_negate.
1179         * fixed-value.c (check_real_for_fixed_mode): Likewise.
1180         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
1181         (vfp3_const_double_index): Likewise.
1182         (arm_print_operand): Likewise.
1183         * Makefile.in: Update dependencies.
1184
1185 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1186
1187         * config/s390/s390.c (override_options): Increase the default
1188         of max-completely-peel-times.
1189
1190 2010-05-21  Julian Brown  <julian@codesourcery.com>
1191             Mark Mitchell  <mark@codesourcery.com>
1192
1193         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
1194         sibling calls for Thumb-1.
1195         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
1196         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
1197         Thumb-2.
1198         (*call_insn, *call_value_insn): Don't use for Thumb-2.
1199         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
1200         for Thumb-2.
1201         (return): New expander.
1202         (*arm_return): New name for ARM return insn.
1203         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
1204
1205 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
1206
1207         * config.gcc (sparc64-*-rtems*): New target.
1208
1209 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1210
1211         * tree.c (build_function_decl_skip_args): Fix grammar.
1212         (build_function_type_list_1): Fix typos, adjust formatting.
1213
1214 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1215
1216         * tree.h: Include real.h and fixed-value.h as basic datatypes.
1217         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
1218         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
1219         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
1220         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
1221         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
1222         tree-pretty-print.c, tree-loop-distribution.c,
1223         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
1224         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
1225         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
1226         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
1227         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
1228         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
1229         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
1230         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
1231         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
1232         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
1233         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
1234         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
1235         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
1236         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
1237         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
1238         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
1239         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
1240         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
1241         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
1242         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
1243         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
1244         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
1245         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
1246         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
1247         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
1248         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
1249         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
1250         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
1251         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
1252         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
1253         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
1254         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
1255         config/score/score7.c, config/score/score.c, config/arm/arm.c,
1256         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
1257         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
1258         config/bfin/bfin.c: Clean up redundant includes.
1259         * Makefile.in: Update accordingly.
1260
1261 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1262
1263         PR middle-end/44204
1264         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
1265         statement has no arguments.
1266
1267 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
1268
1269         PR/44139
1270         * varasm.c (emutls_decl): Merge attributes to new decl.
1271
1272 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1273
1274         PR middle-end/44101
1275         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
1276         around the uniquized constructor if its type requires a conversion.
1277
1278 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1279
1280         PR debug/44205
1281         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
1282         at -O0 goto_locus of any of the incoming edges differs from
1283         goto_locus of outgoing edge, or gimple_location of any of the
1284         labels differs.
1285
1286 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
1287
1288         * ira.c (ira_non_ordered_class_hard_regs): Define.
1289         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
1290         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
1291         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
1292         cost of unaligned hard regs when allocating multi-reg pseudos.
1293
1294 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
1295
1296         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
1297         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
1298         for TARGET_NO_FLOAT.
1299         * config/mips/mips.c (mips_file_start): Expand conditional expression
1300         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
1301         (mips_override_options): Move -mno-float override -msoft-float and
1302         -mhard-float.
1303         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
1304         Condition(TARGET_SUPPORTS_NO_FLOAT).
1305         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
1306         __mips_no_float here.
1307         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
1308         (TARGET_SUPPORTS_NO_FLOAT): Define.
1309         * config/mips/sdemtk.opt: Delete.
1310
1311 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
1312
1313         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
1314
1315 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
1316
1317         PR target/43733
1318         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
1319         * configure: Regenerate.
1320         * config.in: Regenerate.
1321         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
1322         instead of sahf only for 64bit targets.
1323
1324 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1325
1326         PR debug/44178
1327         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
1328         setup_ref_regs for DEBUG_INSNs.
1329
1330 2010-05-20  Jan Hubicka  <jh@suse.cz>
1331
1332         PR middle-end/44197
1333         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
1334
1335 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
1336
1337         PR bootstrap/43870
1338         * df-scan.c (df_ref_compare): Stabilize sort.
1339
1340 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1341
1342         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
1343         argument.  Don't use DW_OP_piece if offset is non-zero,
1344         put offset into second DW_OP_bit_piece argument.
1345         (dw_sra_loc_expr): Adjust callers.  For memory expressions
1346         compute offset.
1347
1348 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
1349
1350         PR target/44202
1351         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
1352         settings for 16-bit-constant "addo" alternative.
1353
1354 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
1355
1356         * config/mips/mips-dsp.md (add<DSPV:mode>3,
1357         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
1358
1359         PR target/43764
1360         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
1361         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
1362         Use it.
1363
1364 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
1365
1366         * diagnostic.c (FLOAT, FFS): Don't undefine.
1367         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
1368         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
1369         include ordering.
1370
1371 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
1372
1373         * combine.c (propagate_for_debug): Call make_compound_operation
1374         on the source value.
1375         (try_combine): When implementing a split chosen by find_split_point,
1376         either copy i2src or set it to null.  Assert that i2src is not null
1377         before substituting into CALL_INSN_FUNCTION_USAGE.
1378
1379 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
1380
1381         * double-int.h (double_int_ior): New function.
1382         * tree.h (build_int_cst_wide_type): Remove.
1383         * tree.c (build_int_cst_wide_type): Remove.
1384         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
1385         of build_int_cst_wide_type.
1386         * stor-layout.c (set_sizetype): (Ditto.).
1387         * dojump.c (do_jump): Use build_int_cstu instead of
1388         build_int_cst_wide_type.
1389
1390 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1391
1392         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
1393         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
1394         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
1395         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
1396         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
1397         propagate the 'data' argument to copy_tree_r.
1398         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
1399         Propagate 'data' argument to walk_tree.
1400         (copy_if_shared): New function.
1401         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
1402         (unmark_visited): New function.
1403         (unshare_body): Call copy_if_shared instead of doing it manually.
1404         (unvisit_body): Call unmark_visited instead of doing it manually.
1405
1406 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
1407
1408         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
1409         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
1410         * hooks.c: Likewise.
1411         * target-def.h (TARGET_FOLD_BUILTIN): Define to
1412         hook_tree_tree_int_treep_bool_null.
1413         * target.h (struct gcc_target): Update signature of fold_builtin
1414         field.
1415         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
1416         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
1417         instead of the call expression.
1418         (fold_builtin_call_array): Pass n and argarray directly.
1419         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
1420         consing a list.
1421         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
1422         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
1423         `i' and use it in place of `arity'.
1424         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
1425         Dereference `args' directly.
1426         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
1427
1428 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1429
1430         * doc/sourcebuild.texi (Effective-Target Keywords): Document
1431         3dnow, sse3, sse2.
1432         (Directives): Document optional dg-require-effective-target
1433         selector.
1434
1435 2010-05-19  Richard Guenther  <rguenther@suse.de>
1436
1437         PR lto/44196
1438         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
1439
1440 2010-05-19  Richard Guenther  <rguenther@suse.de>
1441
1442         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
1443         * common.opt (fwhopr=): New.
1444         * opts.c (common_handle_option): Handle OPT_fwhopr.
1445         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
1446         * collect2.c (main): Match -fwhopr*.
1447         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
1448         Execute ltrans stage in parallel when jobs is bigger than 1.
1449
1450 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1451
1452         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
1453         pentiumpro on Solaris 8/x86 with Sun as.
1454         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
1455         hidden alias bug.
1456         (gcc_cv_as_ix86_quad): Check for .quad directive.
1457         * configure: Regenerate.
1458         * config.in: Regenerate.
1459         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
1460
1461 2010-05-19  Martin Jambor  <mjambor@suse.cz>
1462
1463         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
1464         also for indirect edges.  Actual printing moved...
1465         (ipa_print_node_jump_functions_for_edge): ...here.
1466         (ipa_compute_jump_functions): Renamed to
1467         ipa_compute_jump_functions_for_edge and made static.
1468         (ipa_compute_jump_functions): New function.
1469         (make_edge_direct_to_target): Check if the number of arguments on
1470         the newly direct edge is the same as the number of parametrs of
1471         the callee.
1472         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
1473         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
1474         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
1475         analysis functions unconditionally, call the new
1476         ipa_analyze_params_uses on the node instead of every edge.
1477
1478 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
1479
1480         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
1481         to tree.
1482         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
1483         also checks for a constant int vs.  non-constant but
1484         loop-invariant steps.
1485         (find_or_create_group): Change the sort algorithm to only consider
1486         steps that are constant ints.
1487         (idx_analyze_ref): Adopt code to handle a tree instead of a
1488         HOST_WIDE_INT for step.
1489         (gather_memory_references_ref): Handle tree instead of int and be
1490         prepared to see a NULL_TREE.
1491         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
1492         prefetches if the step cannot be calculated at compile time.
1493         (issue_prefetch_ref): Issue prefetches for non-constant but
1494         loop-invariant steps.
1495
1496 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1497
1498         Revert:
1499         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1500
1501         * tree.h (build_call_list): Remove.
1502         * tree.c (build_call_list): Remove.
1503
1504 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1505
1506         * tree.h (build_call_list): Remove.
1507         * tree.c (build_call_list): Remove.
1508
1509 2010-05-18  Jan Hubicka  <jh@suse.cz>
1510
1511         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
1512
1513 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
1514
1515         PR rtl-optimization/43332
1516         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
1517
1518 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
1519
1520         * tree.h (build_int_cstu): Implement as static inline.
1521         * tree.c (build_int_cstu): Remove function.
1522         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
1523         sign extended.
1524
1525 2010-05-18  Richard Guenther  <rguenther@suse.de>
1526
1527         PR lto/44143
1528         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
1529         (debug): Initialize from -save-temps.
1530         (collect_execute): Print command-line when verbose.
1531         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
1532         for ltrans invocation.  Produce -dumpbase flag again.
1533         (process_args): Remove.
1534         (main): Simplify.
1535         * collect2.c (maybe_run_lto_and_relink): Only pass object
1536         files to lto-wrapper.
1537         * gcc.c (LINK_COMMAND_SPEC): Likewise.
1538
1539 2010-05-18  Jan Hubicka  <jh@suse.cz>
1540
1541         * opts.c (decode_options): Do not disable whopr at ipa_cp.
1542         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
1543
1544 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
1545
1546         PR lto/44184
1547         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
1548         in a GIMPLE_ASM.
1549         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
1550         in a GIMPLE_ASM.
1551
1552 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
1553
1554         PR debug/41371
1555         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
1556         rtx_equal_p inline.
1557
1558 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
1559
1560         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
1561         lto-macho as lto_binary_reader.
1562
1563         * darwin.c (darwin_asm_named_section): Do not add assembler comment
1564         after .section directive; just print it before the directive instead.
1565
1566 2010-05-17  Jan Hubicka  <jh@suse.cz>
1567
1568         * cgraph.c (cgraph_create_virtual_clone): Only check
1569         versionable_function_p when not in wpa and checking is enabled.
1570         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
1571         there are no more functions to materialize.
1572
1573 2010-05-17  Jan Hubicka  <jh@suse.cz>
1574
1575         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
1576         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
1577         New functions.
1578         (output_cgraph): Call output_cgraph_opt_summary.
1579         (input_cgrpah): Call input_cgraph_opt_summary.
1580         (output_cgraph_opt_summary_p, output_node_opt_summary,
1581         input_node_opt_summary, input_cgraph_opt_section): New functions.
1582         * lto-section-in.c (lto_section_name): Add cgraphopt.
1583         * tree-inline.c (tree_function_versioning): Handle parm_num.
1584         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
1585         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
1586
1587 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
1588
1589         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
1590         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
1591         the insn to prefetch ratio heuristic to loops with known trip count.
1592
1593 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
1594
1595         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
1596         (schedule_prefetches): Do not generate a prefetch if the unroll factor
1597         is far from what is required by the prefetch.
1598
1599 2010-05-17  Jan Hubicka  <jh@suse.cz>
1600
1601         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
1602         (ipcp_estimate_growth): Likewise.
1603         (ipcp_const_param_count): Likewise.
1604         (ipcp_insert_stage): Likewise.
1605         * ipa-prop.c (visit_load_for_mod_analysis): New function.
1606         (visit_store_addr_for_mod_analysis): Set used flag.
1607         (ipa_detect_param_modifications): Set used flag for SSE params;
1608         update use of walk_stmt_load_store_addr_ops.
1609         (ipa_print_node_params): Print used flag.
1610         (ipa_write_node_info): Stream used flag.
1611         (ipa_read_node_info): Likewise.
1612         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
1613         (ipa_is_param_used): New function.
1614         (lto_ipa_fixup_call_notes): Remove unused declaration.
1615
1616 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1617
1618         PR target/44074
1619         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
1620         * configure: Regenerate.
1621         * config.in: Regenerate.
1622         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
1623         !HAVE_AS_IX86_REP_LOCK_PREFIX.
1624         Don't emit whitespace.
1625         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
1626         (*rep_movsi): Likewise.
1627         (*rep_movsi_rex64): Likewise.
1628         (*rep_movqi): Likewise.
1629         (*rep_movqi_rex64): Likewise.
1630         (*rep_stosdi_rex64): Likewise.
1631         (*rep_stossi): Likewise.
1632         (*rep_stossi_rex64): Likewise.
1633         (*rep_stosqi): Likewise.
1634         (*rep_stosqi_rex64): Likewise.
1635         (*cmpstrnqi_nz_1): Use {%;} after repz.
1636         (*cmpstrnqi_nz_rex_1): Likewise.
1637         (*cmpstrnqi_1): Likewise.
1638         (*cmpstrnqi_rex_1): Likewise.
1639         (*strlenqi_1): Use {%;} after repnz.
1640         (*strlenqi_rex_1): Likewise.
1641         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
1642         (*sync_compare_and_swap<mode>): Likewise.
1643         (sync_double_compare_and_swap<mode>): Likewise.
1644         (*sync_double_compare_and_swapdi_pic): Likewise.
1645         (sync_old_add<mode>): Likewise.
1646         (sync_add<mode>): Likewise.
1647         (sync_sub<mode>): Likewise.
1648         (sync_<code><mode>): Likewise.
1649
1650 2010-05-17  Martin Jambor  <mjambor@suse.cz>
1651
1652         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
1653         otr_token and polymorphic.
1654         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
1655         (cgraph_clone_edge): Copy the above fields.
1656         * tree.c (get_binfo_at_offset): New function.
1657         * tree.h (get_binfo_at_offset): Declare.
1658         * ipa-prop.h (enum jump_func_type): Added known_type jump function
1659         type, reordered items, updated comments.
1660         (union jump_func_value): Added base_type field, reordered fields.
1661         (enum ipa_lattice_type): Moved down in the file.
1662         (struct ipa_param_descriptor): New field polymorphic.
1663         (ipa_is_param_polymorphic): New function.
1664         * ipa-prop.c: Include gimple.h and gimple-fold.h.
1665         (ipa_print_node_jump_functions): Print known type jump functions.
1666         (compute_complex_pass_through): Renamed to...
1667         (compute_complex_assign_jump_func): this.
1668         (compute_complex_ancestor_jump_func): New function.
1669         (compute_known_type_jump_func): Likewise.
1670         (compute_scalar_jump_functions): Create known type and complex ancestor
1671         jump functions.
1672         (ipa_note_param_call): New parameter polymorphic, set the corresponding
1673         flag in the call note accordingly.
1674         (ipa_analyze_call_uses): Renamed to...
1675         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
1676         variable var only in the block where it is used.
1677         (ipa_analyze_virtual_call_uses): New function.
1678         (ipa_analyze_call_uses): Likewise.
1679         (combine_known_type_and_ancestor_jfs): Likewise.
1680         (update_jump_functions_after_inlining): Implemented handling of a
1681         number of new jump function types combination.
1682         (print_edge_addition_message): Removed.
1683         (make_edge_direct_to_target): New function.
1684         (try_make_edge_direct_simple_call): Likewise.
1685         (try_make_edge_direct_virtual_call): Likewise.
1686         (update_call_notes_after_inlining): Renamed to...
1687         (update_indirect_edges_after_inlining): this.  Moved edge creation for
1688         indirect calls to try_make_edge_direct_simple_call, also calls
1689         try_make_edge_direct_virtual_call for virtual calls.
1690         (ipa_print_node_params): Changed the header message.
1691         (ipa_write_jump_function): Stream also known type jump functions.
1692         (ipa_read_jump_function): Likewise.
1693         (ipa_write_indirect_edge_info): Stream new fields in
1694         cgraph_indirect_call_info.
1695         (ipa_read_indirect_edge_info): Likewise.
1696         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
1697         GIMPLE_FOLD_H.
1698
1699 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1700
1701         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
1702
1703 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1704
1705         * tree.h (CALL_EXPR_ARGS): Delete.
1706         (call_expr_arglist): Delete.
1707         * tree.c (call_expr_arglist): Delete.
1708         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
1709         targetm.fold_builtin.
1710         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
1711         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
1712         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
1713         arglist parameter.  Use CALL_EXPR_ARG.
1714         (picochip_expand_builtin_3op): Likewise.
1715         (picochip_expand_builtin_2opvoid): Likewise.
1716         (picochip_expand_array_get): Likewise.
1717         (picochip_expand_array_put): Likewise.
1718         (picochip_expand_array_testport): Likewise.
1719         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
1720         rather than arglist.
1721         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
1722         CALL_EXPR_ARGS.
1723         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
1724         than TREE_VALUE and TREE_CHAIN.
1725         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
1726         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
1727         the arglist.
1728
1729 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
1730
1731         PR bootstrap/42347
1732         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
1733         to have no fallthru edge.
1734
1735         PR middle-end/44102
1736         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
1737         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
1738         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
1739         add BARRIER after previous bb if needed.
1740
1741 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1742
1743         * tree.c (build_function_type_list_1): Remove bogus assert condition.
1744
1745 2010-05-17  Alan Modra  <amodra@gmail.com>
1746
1747         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
1748         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
1749         with copy_reg rtx param.
1750         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
1751         Correct cases where code for ABI_V4 did not initialise the reg
1752         used to access frame.  Also leave frame_reg_rtx as sp for large
1753         frames that save no regs.
1754
1755 2010-05-17  Martin Jambor  <mjambor@suse.cz>
1756
1757         PR middle-end/44133
1758         * tree-sra.c (create_access_replacement): New parameter rename, mark
1759         the replaement for renaming only when it is true.
1760         (get_access_replacement): Pass true in the rename parameter of
1761         create_access_replacement.
1762         (get_unrenamed_access_replacement): New function.
1763         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
1764         replacement declaration from it.
1765
1766 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
1767
1768         * function.c (try_fit_stack_local, add_frame_space): New static
1769         functions.
1770         (assign_stack_local_1): Use them.  Look for opportunities to use
1771         space previously wasted on alignment.
1772         * function.h (struct frame_space): New.
1773         (struct rtl_data): Add FRAME_SPACE_LIST member.
1774         * reload1.c (something_was_spilled): New static variable.
1775         (alter_reg): Set it.
1776         (reload): Test it in addition to testing if the frame size changed.
1777
1778 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
1779
1780         * config/s390/s390.c: Define sane prefetch settings and activate
1781         flag_prefetch_loop_arrays on -O3.
1782         * config/s390/s390.h: Declare that read can use write prefetch.
1783
1784 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
1785
1786         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
1787         build.
1788
1789 2010-05-16  Jan Hubicka  <jh@suse.cz>
1790
1791         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
1792         function body; do not check stdarg field of struct function.
1793
1794 2010-05-16  Jan Hubicka  <jh@suse.cz>
1795
1796         * cgraph.c (dump_cgraph_node): Dump versionable flag.
1797         * cgraph.h (cgraph_local_info): Add versionable flag.
1798         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
1799         (ipcp_versionable_function_p): Use it.
1800         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
1801         versionable flag.
1802
1803 2010-05-16  Jan Hubicka  <jh@suse.cz>
1804
1805         * cgraph.c (cgraph_clone_node): Take decl argument and insert
1806         clone into hash when it is different from orig.
1807         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
1808         * cgraph.h (cgraph_clone_node): Update prototype.
1809         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
1810         (lto_cgraph_encoder_delete): Delete body map.
1811         (lto_cgraph_encoder_size): Move to header.
1812         (lto_cgraph_encoder_encode_body_p,
1813         lto_set_cgraph_encoder_encode_body): New.
1814         (lto_output_node): Do not take written_decls argument; output clone_of
1815         pointer.
1816         (add_node_to): Add include_body_argument; call
1817         lto_set_cgraph_encoder_encode_body on master of the clone.
1818         (add_references): Update use of add_node_to.
1819         (compute_ltrans_boundary): Likewise.
1820         (output_cgraph): Do not create written_decls bitmap.
1821         (input_node): Take nodes argument; stream in clone_of correctly.
1822         (input_cgraph_1): Update use of input_node.
1823         * lto-streamer-out.c (lto_output): Use encoder info to decide
1824         what bodies to output.
1825         * ipa-inline.c (cgraph_clone_inlined_nodes,
1826         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
1827         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
1828         (lto_cgraph_encoder_size): Define here.
1829         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
1830         Declare.
1831
1832 2010-05-16  Richard Guenther  <rguenther@suse.de>
1833
1834         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
1835         -fipa-type-escape.
1836         * ipa-type-escape.c (gate_type_escape_vars): Run when
1837         -fipa-struct-reorg runs.
1838         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
1839         * common.opt (fipa-type-escape): Remove.
1840
1841 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
1842
1843         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
1844         (decode_options): Likewise.
1845         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
1846
1847 2010-05-16  Jan Hubicka  <jh@suse.cz>
1848
1849         * ipa.c (function_and_variable_visibility): Also bring local all
1850         aliases.
1851
1852 2010-05-16  Richard Guenther  <rguenther@suse.de>
1853
1854         * alias.c (nonoverlapping_memrefs_p): Remove use of
1855         IPA type-escape information.
1856
1857 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
1858
1859         * c-common.c (c_common_reswords): Add _Static_assert for C.
1860         * c-parser.c (c_token_starts_declaration,
1861         c_parser_next_token_starts_declaration,
1862         c_parser_static_assert_declaration_no_semi,
1863         c_parser_static_assert_declaration): New.
1864         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
1865         Handle static assertions if static_assert_ok.
1866         (c_parser_external_declaration, c_parser_declaration_or_fndef,
1867         c_parser_compound_statement_nostart, c_parser_label,
1868         c_parser_for_statement, c_parser_objc_methodprotolist,
1869         c_parser_omp_for_loop): All callers of
1870         c_parser_declaration_or_fndef changed.
1871         (c_parser_struct_declaration): Handle static assertions.
1872         (c_parser_compound_statement_nostart): Use
1873         c_parser_next_token_starts_declaration and
1874         c_token_starts_declaration to detect start of declarations.
1875         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
1876         Likewise.
1877
1878 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
1879
1880         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
1881         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
1882         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1883         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1884         (mmix_function_outgoing_value): Rename to...
1885         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
1886         (mmix_function_value_regno_p): Make static.
1887         (mmix_libcall_value): New function.
1888         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
1889         mmix_function_value_regno_p): Remove declaration.
1890
1891 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
1892
1893         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
1894         BUILT_IN_ALLOCA if stack checking is enabled.
1895
1896 2010-05-16  Richard Guenther  <rguenther@suse.de>
1897
1898         * var-tracking.c (vars_copy_1): Inline ...
1899         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
1900         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
1901         (variable_merge_over_cur): Adjust.  Merge asserts.
1902         (variable_merge_over_src): Likewise.
1903         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
1904         (variable_post_merge_new_vals): Merge asserts.
1905         (variable_post_merge_perm_vals): Likewise.
1906         (find_mem_expr_in_1pdv): Likewise.
1907         (dataflow_set_different_value): Remove.
1908         (onepart_variable_different_p): Merge asserts.
1909         (variable_different_p): Likewise.
1910         (dataflow_set_different_1): Inline ...
1911         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
1912         (emit_notes_for_differences_1): Merge asserts.
1913
1914 2010-05-16  Richard Guenther  <rguenther@suse.de>
1915
1916         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
1917         * optabs.c (libfunc_decl_hash): Likewise.
1918         * varasm.c (emutls_decl): Likewise.
1919
1920 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
1921
1922         * c-decl.c: Don't include gimple.h.
1923         (merge_decls): Do not copy gimple_body.
1924
1925 2010-05-15  Jason Merrill  <jason@redhat.com>
1926
1927         * c.opt: Add -fnothrow-opt.
1928
1929 2010-05-15  Jan Hubicka  <jh@suse.cz>
1930
1931         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
1932         analyzed.
1933         * passes.c (ipa_write_summaries): Write all analyzed nodes.
1934
1935 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
1936
1937         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
1938         * Makefile.in: Add it.
1939         Fix all other Makefile dependencies for changes below.
1940         * tree.h: Include it instead of defining VEC primitives here.
1941         * gimple.h: Likewise.
1942         * rtl.h: Likewise.
1943         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
1944         * except.h: Include vecir.h, break dependence on tree.h.
1945
1946         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
1947         Move from here...
1948         * tree-iterator.c: ...to here.
1949         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
1950
1951         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
1952         tm_p.h.
1953         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
1954         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
1955         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
1956         tree-mudflap.h, and target.h.
1957         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
1958         predict.h, tree-inline.h, gimple.h, and langhooks.h.
1959         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
1960         Add FIXME for why gimple.h is still included (should be unnecessary
1961         since GCC 4.5 gimplification unit-at-a-time).
1962         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
1963         * c-pragma.c: Add FIXME for why function.h needs to be included just
1964         for cfun, at front-end level.
1965         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
1966         Do not include ggc.h, but include vecprim.h for VEC(char).
1967         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
1968         Explain why target.h is included.
1969         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
1970         Explain why gimple.h is included.
1971         * c-ppoutput.c: Do not include tm.h.
1972         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
1973         * c-parses.c: Explain why rtl.h is included, and that this (and only
1974         this) is also why tm.h must be included.
1975         Do not include except.h.
1976         * c-lang.c: Do not include ggc.h.
1977
1978 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
1979
1980         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
1981
1982 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
1983
1984         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
1985         unions by default if those structs and unions have no tags.  Do
1986         not condition anonymous struct and unions handling on flag_iso.
1987         Allow anonymous structs and unions for C1X.
1988         (finish_struct): Do not diagnose lack of named fields when
1989         anonymous structs and unions present for C1X.  Accept flexible
1990         array members in structure with anonymous structs or unions but no
1991         directly named fields.
1992         * doc/extend.texi (Unnamed Fields): Update.
1993
1994 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
1995
1996         * gimple.h (compare_field_offset): Rename into...
1997         (gimple_compare_field_offset): ...this.
1998         * gimple.c (compare_field_offset): Rename into...
1999         (gimple_compare_field_offset): ...this.  Compare the full access if
2000         the offset is self-referential.
2001         (gimple_types_compatible_p): Adjust for above renaming.
2002         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
2003         DECL_NONADDRESSABLE_P flag of fields before merging them.
2004
2005 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
2006
2007         * tree.h (ctor_to_list): Delete.
2008         * tree.c (ctor_to_list): Delete.
2009
2010 2010-05-15  Jan Hubicka  <jh@suse.cz>
2011
2012         * ipa-reference.c: Include toplev.h
2013         (is_proper_for_analysis): Only add to all_module_statics
2014         if it is allocated.
2015         (write_node_summary_p, stream_out_bitmap,
2016         ipa_reference_write_optimization_summary,
2017         ipa_reference_read_optimization_summary): New.
2018         (struct ipa_opt_pass_d pass_ipa_reference): Add
2019         optimization summary streaming.
2020         * lto-cgraph.c (referenced_from_this_partition_p,
2021         reachable_from_this_partition_p): New functions.
2022         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2023         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
2024         * opts.c (decode_options): Enable ipa_reference.
2025         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
2026         * lto-streamer.h (referenced_from_this_partition_p,
2027         reachable_from_this_partition_p): Declare.
2028
2029 2010-05-15  Richard Guenther  <rguenther@suse.de>
2030
2031         PR tree-optimization/44038
2032         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
2033         taking the address of a V_C_E of a constant.
2034
2035 2010-05-14  Jan Hubicka  <jh@suse.cz>
2036
2037         * tree.h (memory_identifier_string): Remove.
2038         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
2039         (ipa_reference_global_vars_info_d): Remove statics_not_read and
2040         statics_not_written.
2041         (ipa_reference_optimization_summary_d): New structure.
2042         (ipa_reference_optimization_summary_t): New type and vector.
2043         (ipa_reference_vars_info_d): Embedd structures instead of using
2044         pointers.
2045         (reference_vars_to_consider): Remove out of GGC space.
2046         (module_statics_escape): Remove.
2047         (global_info_obstack): Rename to ...
2048         (optimization_summary_obstack): ... this one.
2049         (initialization_status_t): Remove.
2050         (memory_identifier_string): Remove.
2051         (get_reference_vars_info): Fix indenting.
2052         (set_reference_vars_info): Likewise.
2053         (get_reference_optimization_summary): New.
2054         (set_reference_optimization_summary): New.
2055         (get_global_reference_vars_info): Remove.
2056         (ipa_reference_get_read_global): Remove.
2057         (ipa_reference_get_written_global): Remove.
2058         (ipa_reference_get_not_read_global): Update.
2059         (ipa_reference_get_not_written_global): Update.
2060         (is_proper_for_analysis): Outlaw addressable.
2061         (propagate_bits): Update for new datastructures.
2062         (analyze_variable): Remove.
2063         (init_function_info): Update for new datastructures.
2064         (clean_function_local_data): Remove.
2065         (clean_function): Remove.
2066         (copy_global_bitmap): Use optimizations_summary_obstack.
2067         (duplicate_node_data): Duplicate optimization summary only.
2068         (remove_node_data): Remove optimization summary only.
2069         (generate_summary): Do not analyze variables; do not compute
2070         module_statics_escape; do not prune solutions by it.
2071         (read_write_all_from_decl): Fix typos in comments.
2072         (propagate): Doscover readonly and nonaddressable first;
2073         update for new datastructures; share global bitmaps.
2074         * ipa-reference.h (ipa_reference_get_read_global,
2075         ipa_reference_get_written_global): Remove.
2076         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
2077         * Makefile.in: Remove ipa-refereference from GT files.
2078
2079 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2080
2081         PR debug/44112
2082         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
2083         for all SYMBOL_REF_DECLs.
2084
2085 2010-05-14  Jan Hubicka  <jh@suse.cz>
2086
2087         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
2088         (varpool_all_refs_explicit_p): New inline function.
2089         * ipa-reference.c: Update comment.
2090         (module_statics_written): Remove.
2091         (get_static_decl): Remove.
2092         (ipa_init): Do not initialize module_statics_written.
2093         (analyze_function): Likewise.
2094         (generate_summary): Likewise; do not compute module_statics_readonly
2095         and do not update variable flags.
2096         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
2097         * ipa.c: Inlucde flags.h
2098         (cgraph_local_node_p): New.
2099         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
2100         promote functions to local.
2101         (ipa_discover_readonly_nonaddressable_vars): New function.
2102         (function_and_variable_visibility): Use cgraph_local_node_p.
2103         * varpool.c (varpool_finalize_decl): Set force_output for
2104         DECL_PRESERVE_P vars.
2105
2106 2010-05-14  Jan Hubicka  <jh@suse.cz>
2107
2108         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
2109
2110 2010-05-14  Richard Guenther  <rguenther@suse.de>
2111
2112         PR tree-optimization/44119
2113         * tree-ssa-pre.c (eliminate): Properly mark replacement of
2114         a PHI node necessary.
2115
2116 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
2117
2118         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
2119
2120 2010-05-14  Jason Merrill  <jason@redhat.com>
2121
2122         PR c++/44127
2123         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
2124         (gimple_call_set_nothrow): New.
2125         * gimple.c (gimple_build_call_from_tree): Call it.
2126         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
2127
2128         PR c++/44127
2129         * gimplify.c (gimplify_seq_add_stmt): No longer static.
2130         * gimple.h: Declare it.
2131         * gimple.c (gimple_build_eh_filter): No ops.
2132
2133 2010-05-14  Jan Hubicka  <jh@suse.cz>
2134
2135         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
2136         nodes already in queue.
2137         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
2138         re-enqueueing node.
2139
2140 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2141
2142         PR debug/44136
2143         * cfgexpand.c (expand_debug_expr): If non-memory op0
2144         has BLKmode, return NULL.
2145
2146 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
2147
2148         * config.gcc: Add support for --with-cpu option for bdver1.
2149         * config/i386/i386.h (TARGET_BDVER1): New macro.
2150         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
2151         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2152         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
2153         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2154         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
2155         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
2156         (processor_type): Add PROCESSOR_BDVER1.
2157         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
2158         processor_type in config/i386/i386.h.
2159         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
2160         movaps <reg, reg> instead of movapd <reg, reg> when replacing
2161         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
2162         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
2163         to emit packed xor instead of packed double/packed integer
2164         xor for SSE and AVX when moving a zero value.
2165         * config/i386/sse.md: Add check for
2166         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
2167         movapd/movdqa for SSE and AVX.
2168         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
2169         single logical operations i.e and, or and xor instead of packed double
2170         logical operations for SSE and AVX.
2171         * config/i386/i386-c.c (ix86_target_macros_internal):
2172         Add PROCESSOR_BDVER1.
2173         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
2174         (has_fma4, has_xop): New.
2175         * config/i386/i386.c (bdver1_cost): New variable.
2176         (m_BDVER1): New macro.
2177         (m_AMD_MULTIPLE): Add m_BDVER1.
2178         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
2179         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
2180         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
2181         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
2182         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
2183         x86_tune_sse_partial_reg_dependency,
2184         x86_tune_sse_unaligned_load_optimal,
2185         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
2186         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
2187         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
2188         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
2189         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
2190         Enable/disable for bdver1.
2191         (processor_target_table): Add bdver1_cost.
2192         (cpu_names): Add bdver1.
2193         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
2194          processor_alias_table.
2195         (ix86_expand_vector_move_misalign): Change.
2196         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
2197         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
2198         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
2199         of movupd/movdqu for SSE and AVX.
2200         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
2201         (ix86_tune_adjust_cost): Add code for bdver1.
2202         (standard_sse_constant_opcode): Add check for
2203         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
2204         of packed double xor for SSE and AVX.
2205
2206 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
2207
2208         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
2209         result to unsigned.
2210
2211 2010-05-14  Tristan Gingold  <gingold@adacore.com>
2212
2213         * toplev.c (default_debug_hooks): Remove this variable.
2214         (process_options): Remove assignments to default_debug_hooks.
2215
2216 2010-05-14  Martin Jambor  <mjambor@suse.cz>
2217
2218         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
2219         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
2220         * langhooks.h (struct lang_hooks_for_decls): Removed field
2221         fold_obj_type_ref.
2222         * tree.c (free_lang_data): Remove assignment to
2223         lang_hooks.fold_obj_type_ref.
2224         * tree.def (OBJ_TYPE_REF): Update comment.
2225
2226 2010-05-14  Richard Guenther  <rguenther@suse.de>
2227
2228         PR tree-optimization/44124
2229         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
2230
2231 2010-05-14  Alan Modra  <amodra@gmail.com>
2232
2233         PR target/44075
2234         * config/rs6000/rs6000.c (struct machine_function): Reorder
2235         fields for better packing.  Add lr_save_state.
2236         (rs6000_ra_ever_killed): Return lr_save_state if set.
2237         (rs6000_emit_eh_reg_restore): Set lr_save_state.
2238
2239 2010-05-13  Jan Hubicka  <jh@suse.cz>
2240
2241         * varpool.c (decide_is_variable_needed): Drop code checking
2242         TREE_SYMBOL_REFERENCED.
2243
2244 2010-05-13  Jan Hubicka  <jh@suse.cz>
2245
2246         * final.c (output_addr_const): Do not call mark_decl_referenced.
2247         * cgraphunit.c (process_function_and_variable_attributes): Use
2248         mark_needed_node dirrectly.
2249         (assemble_thunk): Do not call mark_decl_referenced.
2250
2251 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
2252
2253         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
2254
2255 2010-05-13  Jeff Law  <law@redhat.com>
2256
2257         * ira-conflicts.c (print_allocno_conflicts): New function broken out
2258         from...
2259         (print_conflicts): Call print_allocno_conflicts.
2260
2261 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2262
2263         PR debug/44104
2264         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
2265         if it is NULL.
2266
2267 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
2268
2269         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
2270         t-mingw-w64 or t-mingw-w32 for multilib configuration.
2271         * config/i386/t-mingw-w32: New.
2272         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
2273
2274 2010-05-13  Martin Jambor  <mjambor@suse.cz>
2275
2276         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
2277         gimple-fold.c).
2278         * gimple-fold.c (get_base_binfo_for_type): New function.
2279         (gimple_get_relevant_ref_binfo): Likewise.
2280         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2281         (gimple_fold_obj_type_ref): Likewise.
2282         (fold_gimple_call): Simplify condition for folding virtual calls
2283         and call gimple_fold_obj_type_ref.
2284         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
2285         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2286
2287 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
2288
2289         * config/rs6000/rs6000-protos.h
2290         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
2291         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
2292         (rs6000_debug_mode_dependent_address)
2293         (rs6000_mode_dependent_address_ptr): Likewise.
2294
2295 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2296
2297         PR debug/43983
2298         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
2299         by SRA.
2300         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
2301         * tree-sra.c (create_access_replacement): Call unshare_expr before
2302         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
2303         * dwarf2out.c: Include tree-flow.h.
2304         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
2305         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
2306         Handle DW_OP_bit_piece.
2307         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
2308         construct_piece_list, adjust_piece_list): New functions.
2309         (add_var_loc_to_decl): Handle SRA optimized variables.
2310         Adjust for var_loc_note to loc field renaming.
2311         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
2312         in VAR_LOCATION note.
2313         (new_loc_descr_op_bit_piece): New function.
2314         (dw_sra_loc_expr): New function.
2315         (dw_loc_list): Use it.  Don't handle the last range after the
2316         loop, handle it inside of the loop.  Adjust for var_loc_note
2317         to loc field renaming.
2318         (add_location_or_const_value_attribute): Only special case
2319         single entry loc lists if loc is NOTE_P.  Adjust for
2320         var_loc_note to loc field renaming.
2321         (dwarf2out_var_location): Don't set newloc->var_loc_note
2322         and newloc->next here.
2323
2324 2010-05-12  Jan Hubicka  <jh@suse.cz>
2325
2326         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
2327         flag.
2328         * cgraph.h (cgraph_only_called_directly_p,
2329         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
2330         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
2331         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
2332         (assemble
2333         * ipa.c (cgraph_remove_unreachable_nodes): Use
2334         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
2335         flags.
2336         * tree-inline.c (copy_bb): Check address_taken flag.
2337         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
2338         externally_visible flag.
2339
2340 2010-05-12  Jason Merrill  <jason@redhat.com>
2341
2342         PR bootstrap/44048
2343         PR target/44099
2344         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
2345         * sdbout.c (plain_type_1): Likewise.
2346         * dwarf2out.c (is_base_type): Likewise.
2347         (gen_type_die_with_usage): Likewise.  Generate
2348         DW_TAG_unspecified_type for any LANG_TYPE.
2349
2350 2010-05-12  Jan Hubicka  <jh@suse.cz>
2351
2352         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
2353         indrect edges too.
2354         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
2355         (cgraph_clone_edge): Update.
2356         (cgraph_node_remove_callees): Remove indirect calls too.
2357         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
2358         (cgraph_create_indirect_edge): Update prototype.
2359         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
2360         is_proper_for_analysis.
2361         (add_new_function, visited_nodes, function_insertion_hook_holder,
2362         get_local_reference_vars_info, mark_address_taken, mark_address,
2363         mark_load, mark_store, check_asm_memory_clobber, check_call,
2364         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
2365         (ipa_init): Do not initialize visited_nodes;
2366         function_insertion_hook_holder.
2367         (analyze_variable): Rewrite.
2368         (analyze_function): Rewrite.
2369         (copy_local_bitmap): Remove.
2370         (duplicate_node_dat): Do not duplicate local info.
2371         (generate_summary): Simplify to only walk cgraph.
2372         (write_node_summary_p, ipa_reference_write_summary,
2373         ipa_reference_read_summary): Remove.
2374         (propagate): Do not remove function insertion;
2375         generate summary.
2376         (pass_ipa_reference): NULLify summary handling fields.
2377         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
2378         (input_edge): Input ecf_flags.
2379         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
2380         (update_indirect_edges_after_inlining): Ignore edges with unknown
2381         param.
2382
2383 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
2384
2385         * implicit-zee.c: New file.
2386         * tree-pass.h (pass_implicit_zee): Declare.
2387         * passes.c (init_optimization_passes): Add zee pass.
2388         * common.opt (fzee): New flag.
2389         * timevar.def (TV_ZEE): Define.
2390         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
2391         and beyond.
2392         * Makefile.in (implicit-zee.o): Add new build file.
2393
2394 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2395             Nathan Froyd  <froydnj@codesourcery.com>
2396
2397         * c-common.c (sync_resolve_params): Remove write-only variable.
2398
2399 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
2400
2401         * target.h (struct gcc_target): Add mode_dependent_address_p field.
2402         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2403         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
2404         * targhooks.c (default_mode_dependent_address_p): New function.
2405         * targhooks.h (default_mode_dependent_address_p): Declare function.
2406         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2407         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
2408         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
2409         target hook. Change return type to bool.
2410         * recog.h (mode_dependent_address_p): Change return type to bool.
2411
2412 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2413             Nathan Froyd  <froydnj@codesourcery.com>
2414
2415         * tree-mudflap.c (build_function_type_0, build_function_type_1,
2416         build_function_type_2, build_function_type_3): Remove.
2417         (mudflap_init): Use build_function_type_list.
2418
2419 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2420             Nathan Froyd  <froydnj@codesourcery.com>
2421
2422         * coverage.c (build_fn_info_value): Call build_constructor instead of
2423         build_constructor_from_list.
2424         (build_ctr_info_value): Likewise.
2425         (build_gcov_info): Likewise.
2426
2427 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
2428
2429         * tree.c (build_constructor): Compute TREE_CONSTANT for the
2430         resultant constructor.
2431         (build_constructor_single): Don't set TREE_CONSTANT.
2432         (build_constructor_from_list): Don't compute TREE_CONSTANT.
2433
2434 2010-05-12  Jan Hubicka  <jh@suse.cz>
2435
2436         * cgraph.h (struct varpool_node): Add aux.
2437         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
2438         * varpool.c (varpool_remove_node): Do not remove initializer.
2439         (varpool_reset_queue): Export.
2440         (varpool_finalize_decl): Volatile vars are forced to be output.
2441         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
2442         replaced decl.
2443         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
2444         process_references, varpool_can_remove_if_no_refs): New functions.
2445         (cgraph_remove_unreachable_nodes): Handle variables too.
2446
2447 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2448
2449         PR target/44088
2450         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
2451
2452 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
2453
2454         PR middle-end/44085
2455         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
2456         change value of ORT_TASK.
2457         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
2458         (omp_notice_threadprivate_variable): New function.
2459         (omp_notice_variable): Call it for threadprivate variables.
2460         If enclosing ctx is a task, print enclosing task rather than
2461         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
2462         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
2463         if task has untied clause.
2464
2465         PR debug/42278
2466         * dwarf2out.c (base_type_die): Don't add name attribute here.
2467         (modified_type_die): Instead of sizetype use
2468         its underlying original type.  If a DW_TAG_base_type doesn't
2469         have name added, add __unknown__.
2470         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
2471         always call force_type_die instead.
2472
2473 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
2474
2475         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
2476         for __stack_chk_guard.
2477
2478 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2479
2480         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
2481         don't call start_source_file debug hook here...
2482         (finish_options): ... but here, after outputting predefined and
2483         command line defines and undefs.
2484
2485         PR middle-end/44071
2486         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
2487         no fallthru edge.
2488         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
2489         optimizing away empty bb with no successors, move over its
2490         footer chain to fallthru predecessor.
2491         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
2492         (rtl_split_edge): For asm goto call patch_jump_insn even if
2493         splitting fallthru edge.
2494
2495         PR c++/44059
2496         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
2497         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
2498         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
2499         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
2500         on DW.ref.* decls.
2501
2502         PR c++/44062
2503         * c-parser.c (c_parser_expression): Mark LHS of a comma
2504         expression as read if it is a decl, handled component or
2505         COMPOUND_EXPR with that on the RHS.
2506         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
2507         if it is a decl or handled component.
2508
2509 2010-05-11  Jan Hubicka  <jh@suse.cz>
2510
2511         * lto-symtab.c (lto_symtab_free): New function.
2512         * lto-streamer.h (lto_symtab_free): Declare.
2513
2514 2010-05-11  Jan Hubicka  <jh@suse.cz>
2515
2516         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
2517         that if function is needed it is reachable.
2518         (lto_output_node): See if it the function is reachable or referenced.
2519         (output_cgraph): Update call of lto_output_node.
2520         * lto-streamer.h (reachable_from_other_partition_p): Declare.
2521
2522 2010-05-11  Jan Hubicka  <jh@suse.cz>
2523
2524         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
2525         Mark as used.
2526
2527 2010-05-11  Jan Hubicka  <jh@suse.cz>
2528
2529         PR tree-optimize/44063
2530         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
2531         queue.
2532         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
2533         limits.
2534         (estimate_function_body_sizes): Compute sizes even when disregarding.
2535
2536 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
2537
2538         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
2539
2540 2010-05-11  Jan Hubicka  <jh@suse.cz>
2541
2542         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
2543         into every boundary.
2544
2545 2010-05-11  Jan Hubicka  <jh@suse.cz>
2546
2547         * matrix-reorg.c (matrix_reorg): Rebuild edges.
2548
2549 2010-05-11  Jan Hubicka  <jh@suse.cz>
2550
2551         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
2552         lto_streamer_cache_delete): Put nodes into heap.
2553         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
2554         heap.
2555
2556 2010-05-11  Jan Hubicka  <jh@suse.cz>
2557
2558         * cgraphbuild.c (cgraph_rebuild_references): New.
2559         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
2560         out extern inlines.
2561         * cgraph.h (cgraph_rebuild_references): Declare.
2562         * tree-inline.c (tree_function_versioning): Use it.
2563         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
2564
2565 2010-05-11  Jan Hubicka  <jh@suse.cz>
2566
2567         * cgraph.c: Include ipa-utils.h
2568         (cgraph_create_virtual_clone): Update references.
2569         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
2570
2571 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2572
2573         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
2574         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
2575         cache size.
2576
2577 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2578
2579         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
2580
2581 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2582
2583         * gcc.c (execute): For -### don't quote arguments that
2584         contain just alphanumerics and _/-. characters.
2585         * doc/invoke.texi: Document that change for -###.
2586
2587         PR debug/44023
2588         * df-problems.c (struct dead_debug): Add to_rescan field.
2589         (dead_debug_init): Clear to_rescan field.
2590         (dead_debug_finish): Rescan all debug insns in to_rescan
2591         bitmap and free the bitmap.
2592         (dead_debug_insert_before): Instead of rescanning debug insns
2593         immediately queue their rescanning until dead_debug_finish.
2594         (df_note_bb_compute): After dead_debug_add do continue instead
2595         of break.
2596
2597 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
2598
2599         PR debug/44028
2600         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
2601         clear also INSN_REG_USE_LIST.
2602
2603 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2604
2605         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
2606
2607 2010-05-10  Jan Hubicka  <jh@suse.cz>
2608
2609         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
2610         commited change.
2611
2612 2010-05-10  Jan Hubicka  <jh@suse.cz>
2613
2614         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
2615         Allocate encoders.
2616         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
2617         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
2618         (lto_streamer_cache_create): Init alloc pool.
2619         (lto_streamer_cache_delete): Free alloc pool.
2620         * lto-streamer.h: Include alloc pool.
2621         (lto_streamer_cache_d): Use alloc pool.
2622         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
2623
2624 2010-05-10  Jan Hubicka  <jh@suse.cz>
2625
2626         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
2627         * cgraphbuild.c: Include except.h
2628         (record_type_list, record_eh_tables): New function.
2629         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
2630
2631 2010-05-10  Jan Hubicka  <jh@suse.cz>
2632
2633         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
2634         __frame_dummy_init_array_entry, force_to_data): Attribute as used
2635         rather than unused.
2636
2637 2010-05-10  Michael Matz  <matz@suse.de>
2638
2639         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
2640         (can_reassociate_p): Use FLOAT_TYPE_P.
2641         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
2642         (vect_force_simple_reduction): ... this.
2643         * tree-parloops.c (gather_scalar_reductions): Use
2644         vect_force_simple_reduction.
2645         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
2646         vect_is_simple_reduction, add modify argument, if true rewrite
2647         "a-b" into "a+(-b)".
2648         (vect_is_simple_reduction, vect_force_simple_reduction): New
2649         functions.
2650         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
2651
2652 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
2653             Vladimir Makarov  <vmakarov@redhat.com>
2654
2655         PR rtl-optimization/44012
2656         * ira-build.c (remove_unnecessary_allocnos): Nullify
2657         regno_allocno_map of the removed allocno.
2658
2659 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2660
2661         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
2662         to /dev/null.
2663         * configure: Regenerate.
2664
2665 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2666
2667         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
2668         unused.
2669         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
2670         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
2671         support in Sun ld.
2672         * configure: Regenerate.
2673
2674 2010-05-10  Richard Guenther  <rguenther@suse.de>
2675
2676         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
2677         marked if the entry identifier is marked.
2678
2679 2010-05-10  Richard Guenther  <rguenther@suse.de>
2680
2681         * c-common.c (struct c_common_attributes): Add fnspec attribute.
2682         (handle_fnspec_attribute): New function.
2683         * gimple.h (gimple_call_return_flags): Declare.
2684         (gimple_call_arg_flags): Likewise.
2685         * gimple.c (gimple_call_arg_flags): New function.
2686         (gimple_call_return_flags): Likewise.
2687         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
2688         New argument flags.
2689         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
2690         return value flags.
2691         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
2692         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
2693         main work to ...
2694         (make_heapvar_for): ... this new function.
2695         (handle_rhs_call): Handle fnspec attribute argument specifiers.
2696         (handle_lhs_call): Likewise.
2697         (find_func_aliases): Adjust.
2698
2699 2010-05-10  Richard Guenther  <rguenther@suse.de>
2700
2701         PR tree-optimization/44050
2702         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
2703
2704 2010-05-10  Wei Guozhi  <carrot@google.com>
2705
2706         PR target/42879
2707         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
2708
2709 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
2710
2711         PR c/10676
2712         * c-typeck.c (lookup_field): Take a type directly.  Update
2713         recursive calls.
2714         (build_component_ref): Update call to lookup_field.
2715         (set_init_label): Use lookup_field to find initialized field.
2716         Handle returned list of fields like a sequence of designators.
2717
2718 2010-05-09  Richard Guenther  <rguenther@suse.de>
2719
2720         PR middle-end/44024
2721         * fold-const.c (tree_single_nonzero_warnv_p): Properly
2722         handle &FUNCTION_DECL.
2723
2724 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
2725
2726         PR c/4784
2727         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
2728         structures and unions recursively.
2729         (detect_field_duplicates): Move duplicate detection with a hash to
2730         detect_field_duplicates_hash.  Always use a hash if anonymous
2731         structures or unions are present.
2732         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
2733         give errors.
2734
2735 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2736
2737         PR target/44046
2738         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
2739         detect Atom, Core 2 and Core i7.
2740
2741 2010-05-09  Richard Guenther  <rguenther@suse.de>
2742
2743         * gcc.c (store_arg): Handle temporary file deletion for
2744         joined arguments.
2745
2746 2010-05-09  Richard Guenther  <rguenther@suse.de>
2747
2748         PR middle-end/44043
2749         * ipa-inline.c (estimate_function_body_sizes): Return after
2750         disregarding inline limits.
2751
2752 2010-05-09  Richard Guenther  <rguenther@suse.de>
2753
2754         * gcc.c (store_arg): Revert last change.
2755
2756 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
2757
2758         PR middle-end/28685
2759         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
2760         (optimize_ops_list): Call it.
2761
2762 2010-05-08  Richard Guenther  <rguenther@suse.de>
2763
2764         PR tree-optimization/44030
2765         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
2766         NECESSARY flag if we propagate from a inserted expression.
2767
2768 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2769
2770         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
2771         domain types as equal if they are both PLACEHOLDER_EXPRs.
2772
2773 2010-05-08  Richard Guenther  <rguenther@suse.de>
2774
2775         * lto-wrapper.c (run_gcc): Remove linker output from
2776         command line for LTRANS invocation.
2777
2778 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
2779
2780         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2781         lto-macho as lto_binary_reader.
2782         * target.h (struct gcc_target): New hooks lto_start and lto_end.
2783         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
2784         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
2785         in lto_start and lto_end calls.
2786         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
2787         magic numbers.
2788         (scan_prog_file): Update is_elf_or_coff call.
2789         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
2790
2791         * collect2.c (main): Fix enum comparison.
2792
2793         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
2794         Add prototypes.
2795         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
2796         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
2797         and TARGET_ASM_LTO_END.
2798         * darwin.c: Include obstack.h and lto-streamer.h.
2799         (lto_section_names_offset, lto_section_names_obstack,
2800         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
2801         global variables.
2802         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
2803         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
2804         to a temporary file.
2805         (darwin_asm_lto_end): New function.  Restore asm_out_file.
2806         (darwin_asm_named_section): For LTO sections, replace the name with
2807         the offset of the section name in a string table, and build this
2808         table.
2809         (darwin_file_start): Initialize global vars for LTO support.
2810         (darwin_file_end): If output to asm_out_file was redirected, append it
2811         to the proper asm_out_file here.  Add the section names section.
2812
2813 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
2814
2815         * c-pragma.c (pending_weak_d, pending_weak): New.
2816         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
2817         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
2818         handle_pragma_weak): Update the uses of pending_weaks.
2819
2820 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2821
2822         PR documentation/44016
2823         * doc/standards.texi (Standards): Link to unversioned
2824         cxx0x_status.html page.
2825
2826 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
2827
2828         PR target/43708
2829         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
2830         in addition to TREE_USED, to avoid "set but unused" warnings.
2831
2832 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2833
2834         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
2835         (is_loop_prefetching_profitable): Do not insert prefetches
2836         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
2837         times the prefetch ahead distance.
2838
2839 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2840
2841         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
2842         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
2843         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
2844         the unroll_factor.
2845
2846 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2847
2848         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
2849         a diagnostic info when the insn-to-mem ratio is too small.
2850
2851 2010-05-07  Richard Guenther <rguenther@suse.de>
2852
2853         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
2854         the linker plugin.
2855         (store_arg): Queue temp_filename for deletion instead of
2856         the whole argument.
2857
2858 2010-05-07  Richard Guenther  <rguenther@suse.de>
2859
2860         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
2861         (run_gcc): Handle LTRANS phase invocation.
2862         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
2863
2864 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
2865
2866         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
2867         this is also meaningful on PARM_DECLs and RESULT_DECLs.
2868
2869 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2870
2871         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
2872
2873 2010-05-07  Richard Guenther  <rguenther@suse.de>
2874
2875         PR tree-optimization/44020
2876         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
2877         code when PRE is not yet initialized.
2878
2879 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2880
2881         * config/mips/dbxmdebug.h: Remove.
2882         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
2883
2884 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
2885
2886         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
2887         with null pointer and also warn about ordered comparison of zero with
2888         pointer if -Wextra.
2889
2890 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2891
2892         * graphite-blocking.c
2893         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
2894         * graphite-clast-to-gimple.c
2895         (clast_to_gcc_expression): Same.
2896         (precision_for_value): Same.
2897         (precision_for_interval): Same.
2898         (gcc_type_for_interval): Same.
2899         (graphite_create_new_guard): Same.
2900         (compute_bounds_for_level): Same.
2901         (graphite_create_new_loop_guard): Same.
2902         * graphite-interchange.c
2903         (build_linearized_memory_access): Same.
2904         (pdr_stride_in_loop): Same.
2905         (memory_strides_in_loop_1): Same.
2906         (memory_strides_in_loop): Same.
2907         (extend_scattering): Same.
2908         (psct_scattering_dim_for_loop_depth): Same.
2909         (pbb_number_of_iterations): Same.
2910         * graphite-poly.h
2911         (debug_iteration_domains): Same.
2912         * graphite-ppl.c
2913         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
2914         (ppl_set_inhomogeneous_gmp): Same.
2915         (ppl_strip_loop): Same.
2916         (ppl_lexico_compare_linear_expressions): Same.
2917         (ppl_read_polyhedron_matrix): Same.
2918         (ppl_max_for_le_pointset): Same.
2919         * graphite-ppl.h
2920         (ppl_read_polyhedron_matrix): Same.
2921         (tree_int_to_gmp): Same.
2922         (gmp_cst_to_tree): Same.
2923         (ppl_set_inhomogeneous): Same.
2924         (ppl_set_inhomogeneous_tree): Same.
2925         (ppl_set_coef): Same.
2926         (ppl_set_coef_tree): Same.
2927         * graphite-sese-to-poly.c
2928         (build_pbb_scattering_polyhedrons): Same.
2929         (build_scop_scattering): Same.
2930         (scan_tree_for_params_right_scev): Same.
2931         (scan_tree_for_params): Same.
2932         (find_params_in_bb): Same.
2933         (find_scop_parameters): Same.
2934         (add_upper_bounds_from_estimated_nit): Same.
2935         (build_loop_iteration_domains): Same.
2936         (add_condition_to_domain): Same.
2937         (pdr_add_memory_accesses): Same.
2938
2939 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2940
2941         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
2942         CLooG's value_* macros to their respective mpz_* counterparts.
2943         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
2944         (graphite_create_new_loop_guard): Same.
2945         * graphite-interchange.c (build_linearized_memory_access): Same.
2946         (pdr_stride_in_loop): Same.
2947         (memory_strides_in_loop_1): Same.
2948         (1st_interchange_profitable_p): Same.
2949         * graphite-poly.c (extend_scattering): Same.
2950         (psct_scattering_dim_for_loop_depth): Same.
2951         (pbb_number_of_iterations): Same.
2952         (pbb_number_of_iterations_at_time): Same.
2953         * graphite-poly.h (new_1st_loop): Same.
2954         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
2955         (oppose_constraint): Same.
2956         (insert_constraint_into_matrix): Same.
2957         (ppl_set_inhomogeneous_gmp): Same.
2958         (ppl_set_coef_gmp): Same.
2959         (ppl_strip_loop): Same.
2960         (ppl_lexico_compare_linear_expressions): Same.
2961         (ppl_max_for_le_pointset): Same.
2962         (ppl_min_for_le_pointset): Same.
2963         (ppl_build_realtion): Same.
2964         * graphite-ppl.h (gmp_cst_to_tree): Same.
2965         (ppl_set_inhomogeneous): Same.
2966         (ppl_set_inhomogeneous_tree): Same.
2967         (ppl_set_coef): Same.
2968         (ppl_set_coef_tree): Same.
2969         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
2970         (build_scop_scattering): Same.
2971         (add_value_to_dim): Same.
2972         (scan_tree_for_params_right_scev): Same.
2973         (scan_tree_for_params_int): Same.
2974         (scan_tree_for_params): Same.
2975         (find_params_in_bb): Same.
2976         (find_scop_parameters): Same.
2977         (add_upper_bounds_from_estimated_nit): Same.
2978         (build_loop_iteration_domains): Same.
2979         (create_linear_expr_from_tree): Same.
2980         (add_condition_to_domain): Same.
2981         (pdr_add_memory_accesses): Same.
2982
2983 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
2984             Jason Merrill  <jason@redhat.com>
2985
2986         * c-common.c (c_common_reswords): Add nullptr.
2987         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
2988         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
2989         (gen_type_die_with_usage): Likewise.
2990         * dbxout.c (dbxout_type): Likewise.
2991         * sdbout.c (plain_type_1): Likewise.
2992
2993 2010-05-06  Jason Merrill  <jason@redhat.com>
2994
2995         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
2996         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
2997         ret appropriately.
2998         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
2999
3000         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
3001         stripping WITH_SIZE_EXPR.
3002         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
3003         change.
3004
3005 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3006
3007         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
3008         list of obsolete configurations.
3009         Disabled check for obsolete configurations.
3010         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
3011         Removed support for previous versions.
3012         * config/mips/iris.h: Removed.
3013         * config/mips/iris5.h: Removed.
3014         * config/mips/iris6.h: Merged old iris.h contents.
3015         (TARGET_IRIX): Removed.
3016         (DRIVER_SELF_SPECS): Removed mabi=32.
3017         (IDENT_ASM_OP): Removed undef.
3018         (STARTFILE_SPEC): Removed mabi=32.
3019         (ENDFILE_SPEC): Likewise.
3020         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
3021         (MACHINE_TYPE): Update for IRIX 6.5.
3022         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
3023         TARGET_IRIX by TARGET_IRIX6.
3024         (mips_file_start): Likewise.
3025         (mips_output_external): Remove IRIX 5/6 O32 support.
3026         (mips_output_function_prologue): Likewise.
3027         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
3028         TARGET_IRIX6.
3029         (TARGET_CPU_CPP_BUILTINS): Likewise.
3030         (TARGET_IRIX): Removed.
3031         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
3032         (MULTILIB_DIRNAMES): Removed 32.
3033         (MULTILIB_OSDIRNAMES): Removed ../lib.
3034         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
3035         (Specific, mips-sgi-irix5): Document removal.
3036         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
3037         Remove references to older IRIX 6 releases and the O32 ABI.
3038
3039 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
3040
3041         PR bootstrap/43994
3042         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
3043         instead of DF_REF_REAL_REG.
3044
3045 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
3046
3047         PR target/43888
3048         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
3049         handling to still return true for x64 targets.
3050
3051 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3052
3053         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
3054
3055 2010-05-06  Jan Hubicka  <jh@suse.cz>
3056
3057         PR tree-optimization/43791
3058         * ipa-inline.c (update_caller_keys): Remove bogus
3059         disregard_inline_limits check.
3060
3061 2010-05-06  Michael Matz  <matz@suse.de>
3062
3063         PR tree-optimization/43984
3064         * tree-ssa-pre.c (inserted_phi_names): Remove.
3065         (inserted_exprs): Change to bitmap.
3066         (create_expression_by_pieces): Set bits, don't append to vector.
3067         (insert_into_preds_of_block): Don't handle inserted_phi_names.
3068         (eliminate): Don't look at inserted_phi_names, remove deleted
3069         insns from inserted_exprs.
3070         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
3071         (init_pre, fini_pre): Allocate and free bitmaps.
3072         (execute_pre): Insert insns on edges before elimination.
3073
3074 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3075
3076         * tree.c (initializer_zerop): Handle STRING_CST.
3077
3078 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3079
3080         PR 40989
3081         * doc/invoke.texi (Wimplicit): Document as C only.
3082         * opts.c (common_handle_option): Add argument kind.
3083         (handle_option): Rename as read_cmdline_option. Factor out code to...
3084         (handle_option): ... here. New.
3085         (handle_options): Rename as read_cmdline_options.
3086         (decode_options): Update call.
3087         (set_option): Use option index instead of option pointer. Classify
3088         diagnostics correctly.
3089         (enable_warning_as_error): Call handle_option.
3090         * opts.h (set_option): Update declaration.
3091         (handle_option): Declare.
3092         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
3093         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
3094         * c-opts.c (set_Wimplicit): Delete.
3095         (c_family_lang_mask): New static constant.
3096         (c_common_handle_option): Add argument kind. Use handle_option
3097         instead of set_Wimplicit.
3098         (c_common_post_options): warn_implicit and warn_implicit_int
3099         are disabled by default.
3100         * c-common.c (warn_implicit): Do not define here.
3101         * c-common.h (warn_implicit): Do not declare here.
3102         (c_common_handle_option): Update declaration.
3103         * lto-opts.c (lto_reissue_options): Update call to set_option.
3104
3105 2010-05-06  Richard Guenther  <rguenther@suse.de>
3106
3107         PR tree-optimization/43571
3108         * domwalk.c (walk_dominator_tree): Walk the dominator
3109         sons in more optimal order.
3110
3111 2010-05-06  Richard Guenther  <rguenther@suse.de>
3112
3113         PR tree-optimization/43934
3114         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
3115         (stmt_cost): Likewise.
3116         (extract_true_false_args_from_phi): New helper.
3117         (determine_max_movement): For PHI nodes verify we can hoist them
3118         and compute their cost.
3119         (determine_invariantness_stmt): Handle PHI nodes.
3120         (move_computations_stmt): Likewise.  Hoist PHI nodes in
3121         if-converted form using COND_EXPRs.
3122         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
3123         (tree_ssa_lim): Likewise.
3124         * tree-flow.h (tree_ssa_lim): Adjust prototype.
3125         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
3126
3127 2010-05-06  Richard Guenther  <rguenther@suse.de>
3128
3129         PR tree-optimization/43987
3130         * tree-ssa-structalias.c (could_have_pointers): For possibly
3131         address-taken variables force pointers to be recorded.
3132         (create_variable_info_for_1): Likewise.
3133         (push_fields_onto_fieldstack): Pass in wheter all fields
3134         must have pointers.
3135         (find_func_aliases): Query types instead of vars whether
3136         they contain pointers where appropriate.
3137
3138 2010-05-06  Jan Hubicka  <jh@suse.cz>
3139
3140         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
3141         (record_reference, mark_address, mark_load, mark_store): Record
3142         references.
3143         (record_references_in_initializer): Update call of record_references.
3144         (rebuild_cgraph_edges): Remove all references before rebuiding.
3145         * cgraph.c (cgraph_create_node): Clear ref list.
3146         (cgraph_remove_node): Remove references.
3147         (dump_cgraph_node): Dump references.
3148         (cgraph_clone_node): Clone references.
3149         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
3150         (struct cgraph_node, varpool_node): Add ref_lst.
3151         * ipa-ref.c: New file.
3152         * ipa-ref.h: New file.
3153         * ipa-ref-inline.h: New file.
3154         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
3155         (referenced_from_other_partition_p): New function.
3156         (lto_output_varpool_node): Take set arugment; call
3157         referenced_from_other_partition.
3158         (lto_output_ref): New.
3159         (add_references): New.
3160         (output_refs): New.
3161         (output_cgraph): Compute boundary based on references; output refs.
3162         (output_varpool): Accept cgraph_node_set argument.
3163         (input_ref): New.
3164         (input_refs): New.
3165         (input_cgraph): Call input_refs.
3166         * lto-section-in.c (lto_section_name): Add refs.
3167         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
3168         (ipa-ref.o): New file.
3169         * varpool.c (varpool_node): Clear ipa ref list.
3170         (varpool_remove_node): Remove references.
3171         (dump_varpool_node): Dump references.
3172         (varpool_assemble_decl): Only compile finalized ones.
3173         (varpool_extra_name_alias): Initialize ref list.
3174         * lto-streamer.c (lto-get_section_name): Add .refs section.
3175         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
3176         (referenced_from_other_partition_p): Declared.
3177
3178 2010-05-06  Ira Rosen  <irar@il.ibm.com>
3179
3180         PR tree-optimization/43901
3181         * tree-vect-stmts.c (vectorizable_call): Assert that vector
3182         type is not NULL if it's transformation phase, and return
3183         FALSE if it's analysis.
3184         (vectorizable_conversion, vectorizable_operation,
3185         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
3186
3187 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
3188
3189         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3190         Delete.
3191         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3192         New define.
3193         * config/mips/mips-protos.h
3194         (mips_small_register_classes_for_mode_p): Delete prototype.
3195
3196 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
3197
3198         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
3199         * config/arm/arm.c (multiple_operation_profitable_p,
3200         compute_offset_order): New static functions.
3201         (load_multiple_sequence, store_multiple_sequence): Use them.
3202         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
3203         memory offsets, not register numbers.
3204         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
3205
3206 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
3207
3208         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
3209         (get_pending_sizes, put_pending_size, put_pending_sizes):
3210         Update the uses of pending_sizes.
3211         * c-decl.c (store_parm_decls): Likewise.
3212         * c-tree.h (struct c_arg_info): Likewise.
3213         * tree.h: Update the prototype for get_pending_sizes and
3214         put_pending_sizes.
3215
3216 2010-05-05  Jason Merrill  <jason@redhat.com>
3217
3218         PR debug/43370
3219         * c-common.c (handle_aligned_attribute): Respect
3220         ATTR_FLAG_TYPE_IN_PLACE.
3221
3222         PR testsuite/43758
3223         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
3224         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3225         (TARGET_INITIALIZER): Use it.
3226         * c-common.c (attribute_takes_identifier_p): Call it.
3227         * c-common.h: Update prototype.
3228         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
3229         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3230
3231 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
3232
3233         PR debug/43950
3234         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
3235         DW_ID_down_case for Fortran compilation units.
3236
3237 2010-05-05  Jan Hubicka  <jh@suse.cz>
3238
3239         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
3240         handle aliases.
3241
3242 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
3243
3244         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
3245         a variable-sized RESULT_DECL.
3246
3247 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
3248
3249         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
3250
3251 2010-05-05  Jason Merrill  <jason@redhat.com>
3252
3253         PR c++/43787
3254         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
3255         returns GS_OK.
3256         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
3257
3258 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
3259             Jakub Jelinek  <jakub@redhat.com>
3260
3261         PR debug/43478
3262         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
3263         (dead_debug_init, dead_debug_finish): New functions.
3264         (dead_debug_add, dead_debug_insert_before): Likewise.
3265         (df_note_bb_compute): Initialize a dead_debug object, add dead
3266         debug uses to it, insert debug bind insns before death insns,
3267         reset debug insns that refer to pending uses at the end.
3268         * rtl.h (make_debug_expr_from_rtl): New prototype.
3269         * varasm.c (make_debug_expr_from_rtl): New function.
3270
3271 2010-05-05  Jan Hubicka  <jh@suse.cz>
3272
3273         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
3274         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
3275         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
3276         lto_varpool_encoder_deref, lto_varpool_encoder_size,
3277         lto_varpool_encoder_encode_initializer_p,
3278         lto_set_varpool_encoder_encode_initializer): New functions.
3279         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
3280         call output_varpool.
3281         (input_varpool_node): Do not always set analyzed.
3282         (input_cgraph_1): Return vector of cgraph nodes.
3283         (input_varpool_1): Return vector of varpools.
3284         (input_cgraph): Free the vectors.
3285         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
3286         output only initializers needed.
3287         (lto_output): Only call output_cgraph.
3288         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
3289         * lto-section-out.c (lto_new_out_decl_state): Initialize
3290         state->varpool_node_encoder.
3291         * lto-streamer.h (lto_varpool_encoder_d): New.
3292         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
3293         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
3294         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
3295         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
3296         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
3297         Declare.
3298         (output_varpool, input_varpool): Remove declarations.
3299
3300 2010-05-05  Jan Hubicka  <jh@suse.cz>
3301
3302         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
3303         with body can prevail.
3304
3305 2010-05-05  Jan Hubicka  <jh@suse.cz>
3306
3307         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
3308         size.
3309
3310 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3311
3312         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
3313
3314         * gengtype.h (erro_at_line): Constify pos argument.
3315
3316         * gengtype.c: Include hashtab.h.
3317         (enum gc_used): Document GC_MAYBE_POINTED_TO.
3318         (error_at_line): Constify pos argument.
3319         (do_typedef): Initialize p->opt field.
3320         (get_file_gtfilename): Fix comment typo.
3321         (struct walk_type_data): Constify line field.
3322         (get_output_file_for_structure): New function.
3323         (write_local_func_for_structure): Constify orig_s argument.
3324         Use get_output_file_for_structure.
3325         (write_func_for_structure): Use get_output_file_for_structure.
3326         (INDENT): New define.
3327         (dump_pair, dump_type, dump_type_list, dump_typekind)
3328         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
3329         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
3330         functions.
3331         (seen_types): New variable.
3332         (main): New variable do_dump.  Process "-d" command line option.
3333         Call dump_everything if dump requested.
3334
3335 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
3336
3337         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
3338         in a temporary instead of invoking the macro multiple times.
3339         (track_expr_p): Likewise.
3340
3341 2010-05-04  Neil Vachharajani <nvachhar@google.com>
3342
3343         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
3344         per new semantics.
3345         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
3346         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
3347         conditions for printing notes.
3348         * common.opt (-Wcoverage-mismatch): Allow negative, default to
3349         true, update documentation.
3350         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
3351
3352 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
3353
3354         PR c/43981
3355         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
3356         on dimen.
3357
3358 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3359
3360         PR target/43799
3361         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
3362         (*sse_prologue_save_insn1): Likewise.
3363         (SSE prologue save splitter): Likewise.
3364
3365 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
3366
3367         * tree.c (free_lang_data_in_one_sizepos): New inline function.
3368         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
3369         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
3370         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
3371         all decls.  Call it on DECL_FIELD_OFFSET of fields.
3372         (find_decls_types_r): Follow DECL_VALUE_EXPR.
3373         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
3374
3375 2010-05-04  Martin Jambor  <mjambor@suse.cz>
3376
3377         * tree-sra.c (build_access_from_expr_1): The first parameter type
3378         changed to simple tree.
3379         (build_access_from_expr): Likewise, gsi parameter was eliminated.
3380         (scan_assign_result): Renamed to assignment_mod_result, enum elements
3381         renamed as well.
3382         (build_accesses_from_assign): Removed all parameters except for a
3383         simple gimple statement.  Now returns a simple bool.
3384         (scan_function): All non-analysis parts moved to separate functions
3385         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
3386         parameters and updated both callers.
3387         (sra_modify_expr): Removed parameter data.
3388         (sra_modify_function_body): New function.
3389         (perform_intra_sra): Call sra_modify_function_body to modify the
3390         function body.
3391         (replace_removed_params_ssa_names): Parameter data changed into
3392         adjustments vector.
3393         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
3394         changed the parameter dont_convert to convert with the opposite
3395         meaning.
3396         (sra_ipa_modify_assign): Parameter data changed into adjustments
3397         vector, return value changed to bool.
3398         (ipa_sra_modify_function_body): New function.
3399         (sra_ipa_reset_debug_stmts): Updated a comment.
3400         (modify_function): Use ipa_sra_modify_function_body to modify function
3401         body.
3402
3403 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3404
3405         PR middle-end/43671
3406         * alias.c (true_dependence): Handle the same VALUE in x and mem.
3407         (canon_true_dependence): Likewise.
3408         (write_dependence_p): Likewise.
3409
3410 2010-05-04  Jan Hubicka  <jh@suse.cz>
3411
3412         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
3413         * cgraphbuild.c: Include ipa-utils.h
3414         (record_reference_ctx): New struct.
3415         (record_reference): Simplify to work on initializers; not statements.
3416         (mark_address, mark_load, mark_store): New.
3417         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3418         walk PHI nodes too.
3419         (record_references_in_initializer): Update use of record_reference.
3420         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3421         walk PHI nodes too.
3422
3423 2010-05-04  Jan Hubicka  <jh@suse.cz>
3424
3425         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
3426         node will be removed anyway.
3427         (lto_varpool_replace_node): Allow also unanalyzed nodes;
3428         relink aliases of node into prevailing node.
3429         * varpool.c (varpool_remove_node): Remove aliases properly;
3430         when removing node, remove all its aliases too; remove DECL_INITIAL
3431         of removed node; ggc_free the varpool node.
3432
3433 2010-05-04  Richard Guenther  <rguenther@suse.de>
3434
3435         PR tree-optimization/43879
3436         * tree-ssa-structalias.c (alias_get_name): Use
3437         DECL_ASSEMBLER_NAME if available.
3438         (create_function_info_for): Return the varinfo node.
3439         (ipa_pta_execute): Associate same-body aliases and extra names
3440         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
3441
3442 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
3443
3444         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
3445
3446 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
3447
3448         PR bootstrap/43964
3449         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
3450         only if HONOR_REG_ALLOC_ORDER is not defined.
3451
3452 2010-05-04  Richard Guenther  <rguenther@suse.de>
3453
3454         PR tree-optimization/43949
3455         * tree-vrp.c (extract_range_from_binary_expr): Only handle
3456         TRUNC_MOD_EXPR.
3457
3458 2010-04-26  Jason Merrill  <jason@redhat.com>
3459
3460         * c.opt (-fstrict-enums): New.
3461         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
3462
3463 2010-05-03  David Ung <davidu@mips.com>
3464             James E. Wilson  <wilson@codesourcery.com>
3465
3466         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
3467         emit the trap instruction before the divide for TUNE_74K.
3468
3469 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
3470
3471         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
3472         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
3473         based on the above, for new target hook.
3474
3475         * hooks.c (hook_bool_mode_true): New generic hook.
3476         * hooks.h (hook_bool_mode_true): Add prototype.
3477
3478         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
3479         target hook.
3480         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
3481         target hook, set to hook_bool_mode_false.
3482         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
3483         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
3484         with targetm.small_register_classes_for_mode_p.
3485         (find_reusable_reload): Likewise.
3486         (combine_reloads): Likewise.
3487         * reload1.c (reload_as_needed): Likewise.
3488         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
3489         * ifcvt.c (noce_process_if_block, check_cond_move_block,
3490         dead_or_predicable): Likewise.
3491         * regmove.c (optimize_reg_copy_1): Likewise.
3492         * calls.c (prepare_call_address): Likewise.
3493         (precompute_register_parameters): Likewise.
3494
3495         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
3496         hook definition.
3497         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
3498         implementation of the hook that considers all register classes
3499         small except for SH64.
3500         (sh_override_options): Use the new hook.
3501         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
3502         Add prototype.
3503
3504         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
3505         hook definition.
3506         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
3507         implementation of the hook that considers all register classes
3508         small for THUMB1.
3509         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
3510         Add prototype.
3511
3512         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
3513         hook definition.
3514         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
3515         implementation of the hook that considers all register classes
3516         small for MIPS16.
3517         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
3518         Add prototype.
3519
3520         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
3521         hook definition.
3522         * config/m32c/m32c.h: Likewise.
3523         * config/pdp11/pdp11.h: Likewise.
3524         * config/avr/avr.h: Likewise.
3525         * config/xtensa/xtensa.h: Likewise.
3526         * config/m68hc11/m68hc11.h: Likewise.
3527         * config/mn10300/mn10300.h: Likewise.
3528         * config/mcore/mcore.h: Likewise.
3529         * config/h8300/h8300.h: Likewise.
3530         * config/bfin/bfin.h: Likewise.
3531
3532         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
3533         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
3534
3535 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
3536
3537         * double-int.h (tree_to_double_int): Remove macro.
3538         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
3539         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
3540         (tree_to_double_int): New function.
3541         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
3542         Move ...
3543         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
3544
3545 2010-05-03  Richard Guenther  <rguenther@suse.de>
3546
3547         PR tree-optimization/43971
3548         * tree-ssa-structalias.c (get_constraint_for_1): Fix
3549         constraints in the !flag_delete_null_pointer_checks case.
3550
3551 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
3552
3553         PR debug/43972
3554         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
3555         result mode matches original rtl mode.
3556
3557 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
3558
3559         PR target/43888
3560         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
3561
3562 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3563
3564         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
3565         when processing flag options.
3566
3567 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3568
3569         * gcov-iov.c (main): Change format string placeholder
3570         from %#08x to 0x%08x.
3571         * genchecksum.c (dosum): Change format string placeholder
3572         from %#02x to 0x%02x.
3573
3574 2010-05-02  Richard Guenther  <rguenther@suse.de>
3575
3576         PR tree-optimization/43879
3577         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
3578
3579 2010-05-02  Bruno Haible  <bruno@clisp.org>
3580
3581         * doc/extend.texi (Function Attributes): Fix a typo.
3582
3583 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3584
3585         Revert:
3586         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
3587         placeholder from 0x%x to %#x.
3588         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
3589         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
3590         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
3591         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
3592         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
3593         * config/i386/i386.c (ix86_target_string): Ditto.
3594         * config/i386/i386.c (output_pic_addr_const): Ditto.
3595         (print_operand): Ditto.
3596
3597 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3598
3599         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
3600         placeholder from 0x%x to %#x.
3601         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
3602         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
3603         (ASM_OUTPUT_DEBUG_DATA): Ditto.
3604         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
3605         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
3606         * optc-gen.awk: Ditto.
3607         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
3608         (HOST_WIDE_INT_PRINT_HEX): Ditto.
3609         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
3610         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
3611
3612 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
3613
3614         * target.h (struct calls): Add function_value_regno_p field.
3615         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
3616         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
3617         * targhooks.c (default_function_value_regno_p): New function.
3618         * targhooks.h (default_function_value_regno_p): Declare function.
3619         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
3620         * builtins.c. (apply_result_size): (Ditto.).
3621         * combine.c. (likely_spilled_retval_p): (Ditto.).
3622         * mode-switching.c. Include 'target.h'.
3623         (create_pre_exit): Use function_value_regno_p hook.
3624         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
3625         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
3626         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
3627
3628         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
3629         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
3630         (ix86_function_value_regno_p): Declare as static, change argument
3631         type to const unsigned int.
3632         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
3633
3634 2010-05-01  Richard Guenther  <rguenther@suse.de>
3635
3636         PR tree-optimization/43949
3637         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
3638         types.
3639         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
3640
3641 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
3642
3643         * rtl.h (CONST_DOUBLE_P): Define.
3644         (rtx_to_double_int): Declare.
3645         * emit-rtl.c (rtx_to_double_int): New function.
3646         * dwarf2out.c (insert_double): New function.
3647         (loc_descriptor, add_const_value_attribute): Clean up, use
3648         rtx_to_double_int and insert_double functions.
3649
3650 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
3651
3652         * doc/extend.texi (Inline): Add missing return keyword to examples.
3653         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
3654         "command-line".
3655
3656 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
3657
3658         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
3659         the variable part of the offset as well.  Use highest_pow2_factor for
3660         all alignment checks.
3661
3662 2010-04-30  Richard Guenther  <rguenther@suse.de>
3663
3664         PR tree-optimization/43879
3665         * tree-ssa-structalias.c (type_could_have_pointers): Functions
3666         can have pointers.
3667
3668 2010-04-30  Jan Hubicka  <jh@suse.cz>
3669
3670         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
3671         varpool.
3672         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
3673
3674 2010-04-30  Jan Hubicka  <jh@suse.cz>
3675
3676         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
3677         New.
3678         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
3679         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
3680         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
3681         cgraph_node_set_needs_ltrans_p): Remove.
3682
3683 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
3684
3685         * sdbout.c: Include vec.h, do not include varray.h.
3686         (deferred_global_decls, sdbout_global_decl,
3687         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
3688         * toplev.c: Do not include varray.h.
3689         (dump_memory_report): Do not dump VARRAY statistics.
3690         * gengtype.c (open_base_file): Ignore varray.h.
3691         * Makefile.in: Update for abovementioned changes.
3692         Remove all traces of varray.c and varray.h.
3693         * varray.c: Remove file.
3694         * varray.h: Remove file.
3695
3696 2010-04-30  Jan Hubicka  <jh@suse.cz>
3697
3698         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
3699         references.
3700
3701 2010-04-30  Jan Hubicka  <jh@suse.cz>
3702
3703         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
3704         needed.
3705
3706 2010-04-30  Richard Guenther  <rguenther@suse.de>
3707
3708         * tree-ssa-structalias.c (get_constraint_for_1): Generate
3709         constraints for CONSTRUCTOR.
3710
3711 2010-04-30  Richard Guenther  <rguenther@suse.de>
3712
3713         PR lto/43946
3714         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
3715         first after all lowering passes.
3716
3717 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
3718
3719         * toplev.c: Include varray.h for statistics dumping.
3720         * tree.h: Do not declare varray_head_tag.
3721         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
3722         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
3723         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
3724         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
3725         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
3726         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
3727         c-common.c, c-common.h, reg-stack.c, basic-block.h,
3728         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
3729         include varray.h.
3730         * Makefile.in: Update for abovementioned changes.
3731
3732 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
3733
3734         PR debug/43942
3735         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
3736
3737 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
3738
3739         * config/picochip/picochip.c (picochip_legitimize_address): Define.
3740         Use this function to do machine-specific conversion.
3741         (picochip_legitimize_reload_address): Likewise.
3742         (picochip_legitimate_address_p): Check valid base register only if
3743         strict.
3744         (picochip_check_conditional_copy): Check for modw only if opnd is
3745         register.
3746         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
3747         to call the function in c.
3748         * config/picochip/picochip-protos.h
3749         (picochip_legitimize_reload_address): Define.
3750         * config/picochip/picochip.md (supported_compare1): Define.
3751
3752 2010-04-30  Jan Hubicka  <jh@suse.cz>
3753
3754         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
3755         (cgraph_global_info): Remove inlined.
3756         (LTO_cgraph_tag_names): Remove.
3757         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
3758         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
3759         simplify cgraph tags and document.
3760         (lto_output_node): Use only LTO_cgraph_unavail_node and
3761         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
3762         for_functions_valid, global info, process and output flags.
3763         (input_overwrite_node): Initialize estimated stack size and
3764         estimated growth.  Do not read flags we no longer store.
3765         (input_node): Likewise do not read info no longer stored.
3766         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
3767         flag.
3768
3769 2010-04-30  Richard Guenther  <rguenther@suse.de>
3770
3771         PR tree-optimization/43879
3772         * tree-ssa-structalias.c (get_constraint_for_1): Properly
3773         handle non-zero initializers.
3774
3775 2010-04-30  Richard Guenther  <rguenther@suse.de>
3776
3777         * builtins.c (fold_builtin_1): Delete free (0).
3778
3779 2010-04-29  Jan Hubicka  <jh@suse.cz>
3780
3781         * gengtype.c (open_base_files): Add lto-streamer.h
3782         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
3783         (pass_ipa_cp): GGC collect.
3784         * toplev. (compile_file): Do not output symbols.
3785         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
3786         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
3787         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
3788         * lto-section-in.c: Include ggc.h
3789         (lto_new_in_decl_state): Alloc in GGC.
3790         (lto_delete_in_decl_state): Likewise.
3791         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
3792         Collect.
3793
3794 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
3795
3796         PR target/42895
3797         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
3798         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
3799         (HONOR_REG_ALLOC_ORDER): Describe new macro.
3800         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
3801         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
3802         account only if HONOR_REG_ALLOC_ORDER is not defined.
3803         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
3804         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
3805
3806 2010-04-29  Jon Grant  <04@jguk.org>
3807
3808         * collect2.c (vflag): Change type from int to bool.
3809         (debug): Likewise.
3810         (helpflag): New global bool.
3811         (main): Set vflag and debug with boolean, not integer truth values.
3812         Accept new "--help" option and output usage text if found.
3813         * collect2.h (vflag): Update prototype.
3814         (debug): Likewise.
3815
3816 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3817
3818         PR bootstrap/43936
3819         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
3820
3821 2010-04-29  Richard Guenther  <rguenther@suse.de>
3822
3823         PR bootstrap/43935
3824         * plugin.h (invoke_plugin_callbacks): Annotate arguments
3825         with ATTRIBUTE_UNUSED.
3826
3827 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3828
3829         PR target/43921
3830         * config/i386/i386.c (get_some_local_dynamic_name): Replace
3831         INSN_P with NONDEBUG_INSN_P.
3832         (distance_non_agu_define): Likewise.
3833         (distance_agu_use): Likewise.
3834
3835 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
3836
3837         From Dominique d'Humieres <dominiq@lps.ens.fr>
3838         PR bootstrap/43858
3839         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
3840         test_set.
3841
3842 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
3843
3844         * plugin.h (invoke_plugin_callbacks): New inline function.
3845         * plugin.c (flag_plugin_added): New global flag.
3846         (add_new_plugin): Initialize above flag.
3847         (invoke_plugin_callbacks): Rename to ...
3848         (invoke_plugin_callbacks_full): ... this.
3849
3850 2010-04-28  Jan Hubicka  <jh@suse.cz>
3851
3852         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
3853         (lto_varpool_replace_node): New.
3854         (lto_symtab_resolve_symbols): Resolve varpool nodes.
3855         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
3856         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
3857         * cgraph.h (varpool_node_ptr): New type.
3858         (varpool_node_ptr): New vector.
3859         (varpool_node_set_def): New structure.
3860         (varpool_node_set): New type.
3861         (varpool_node_set): New vector.
3862         (varpool_node_set_element_def): New structure.
3863         (varpool_node_set_element, const_varpool_node_set_element): New types.
3864         (varpool_node_set_iterator): New type.
3865         (varpool_node): Add prev pointers, add used_from_other_partition,
3866         in_other_partition.
3867         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
3868         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
3869         varpool_get_node, varpool_remove_node): Declare.
3870         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
3871         varpool_node_set_size): New inlines.
3872         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
3873         * tree-pass.h (varpool_node_set_def): Forward declare.
3874         (ipa_opt_pass_d): Summary writting takes vnode sets too.
3875         (ipa_write_optimization_summaries): Update prototype.
3876         * ipa-cp.c (ipcp_write_summary): Update.
3877         * ipa-reference.c (ipa_reference_write_summary): Update.
3878         * lto-cgraph.c (lto_output_varpool_node): New static function.
3879         (output_varpool): New function.
3880         (input_varpool_node): New static function.
3881         (input_varpool_1): New function.
3882         (input_cgraph): Input varpool.
3883         * ipa-pure-const.c (pure_const_write_summary): Update.
3884         * lto-streamer-out.c (lto_output): Update, output varpool too.
3885         (write_global_stream): Kill WPA hack.
3886         (produce_asm_for_decls): Update.
3887         (output_alias_pair_p): Handle variables.
3888         (output_unreferenced_globals): Output only needed partition of varpool.
3889         * ipa-inline.c (inline_write_summary): Update.
3890         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
3891         cgraph.
3892         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
3893         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
3894         varpool_node_set_new, varpool_node_set_add,
3895         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
3896         debug_varpool_node_set): New functions.
3897         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
3898         (execute_one_pass): Process new decls too.
3899         (ipa_write_summaries_2): Pass around vsets.
3900         (ipa_write_summaries_1): Likewise.
3901         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
3902         to add.
3903         (ipa_write_optimization_summaries_1): Pass around vsets.
3904         (ipa_write_optimization_summaries): Likewise.
3905         * varpool.c (varpool_get_node): New.
3906         (varpool_node): Update doubly linked lists.
3907         (varpool_remove_node): New.
3908         (dump_varpool_node): More dumping.
3909         (varpool_enqueue_needed_node): Update doubly linked lists.
3910         (decide_is_variable_needed): Kill ltrans hack.
3911         (varpool_finalize_decl): Kill lto hack.
3912         (varpool_assemble_decl): Skip decls in other partitions.
3913         (varpool_assemble_pending_decls): Update doubly linkes lists.
3914         (varpool_empty_needed_queue): Likewise.
3915         (varpool_extra_name_alias): Likewise.
3916         * lto-streamer.c (lto_get_section_name): Add vars section.
3917         * lto-streamer.h (lto_section_type): Update.
3918         (output_varpool, input_varpool): Declare.
3919
3920 2010-04-28  Mike Stump  <mikestump@comcast.net>
3921
3922         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
3923
3924 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
3925
3926         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
3927         record or union type with RECORD_OR_UNION_TYPE_P predicate.
3928         (lto_input_ts_type_tree_pointers): Likewise.
3929         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
3930         (lto_output_ts_type_tree_pointers): Likewise.
3931
3932 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
3933
3934         Uniquization of constants at the Tree level
3935         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
3936         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
3937         bit to the end.
3938         (tree_output_constant_def): Declare.
3939         * gimplify.c (gimplify_init_constructor): When using block copy, first
3940         uniquize the constant constructor on the RHS.
3941         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
3942         DECL_IN_CONSTANT_POOL flag.
3943         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
3944         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
3945         constant pool.
3946         (assemble_variable): Deal with symbols belonging to the tree constant
3947         pool.
3948         (get_constant_section): Add ALIGN parameter and simplify.
3949         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
3950         (assemble_constant_contents): Use the expression of the VAR_DECL.
3951         (output_constant_def_contents): Use the alignment of the VAR_DECL.
3952         (tree_output_constant_def): New global function.
3953         (mark_constant): Use the expression of the VAR_DECL.
3954         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
3955         its expression.
3956         (output_object_block): Likewise and assemble the expression.
3957
3958 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
3959
3960         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
3961         hash_tree, eq_tree): New tree hash table.
3962         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
3963         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
3964         lto_orig_address_remove): Reimplement.
3965
3966 2010-04-28  Xinliang David Li  <davidxl@google.com>
3967
3968         PR c/42643
3969         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
3970         (compute_uninit_opnds_pos): New function.
3971         (is_non_loop_exit_postdominating): New function.
3972         (compute_control_dep_chain): New function.
3973         (find_pdom): New function.
3974         (convert_control_dep_chain_into_preds): New function.
3975         (find_predicates): New function.
3976         (find_control_equiv_block): New function.
3977         (collect_phi_def_edges): New function.
3978         (find_def_preds): New function.
3979         (find_dom): New function.
3980         (dump_predicates): New function.
3981         (get_cmp_code): New function.
3982         (is_value_included_in): New function.
3983         (find_matching_predicate_in_rest_chains): New function.
3984         (use_pred_not_overlap_with_undef_path_pred): New function.
3985         (is_use_properly_guarded): New function.
3986         (normalize_cond_1): New function.
3987         (is_and_or_or): New function.
3988         (normalize_cond): New function.
3989         (is_gcond_subset_of): New function.
3990         (is_subset_of_any): New function.
3991         (is_or_set_subset_of): New function.
3992         (is_and_set_subset_of): New function.
3993         (is_norm_cond_subset_of): New function.
3994         (is_pred_expr_subset_of): New function.
3995         (is_pred_chain_subset_of): New function.
3996         (is_included_in): New function.
3997         (is_superset_of): New function.
3998         (find_uninit_use): New function.
3999         (warn_uninitialized_phi): New function.
4000         (compute_possibly_undefined_names): New function.
4001         (ssa_undefined_value_p): New function.
4002         (execute_late_warn_uninitialized): New function.
4003         * tree-ssa.c (ssa_undefined_value_p): Removed.
4004         (warn_uninit): Changed to extern.
4005         (warn_uninitialized_phi): Removed.
4006         (warn_uninitialized_vars): Changed to extern.
4007         (execute_late_warn_uninitialized): Removed
4008         * tree-flow.h: Add new prototypes.
4009         * timevar.def: Add new time variable.
4010         * Makefile.in: Add new build file.
4011
4012 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
4013
4014         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
4015         type if available.
4016
4017 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4018
4019         PR target/22224
4020         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
4021
4022 2010-04-28  Martin Jambor  <mjambor@suse.cz>
4023
4024         * cgraph.h (struct cgraph_node): New field indirect_calls.
4025         (struct cgraph_indirect_call_info): New type.
4026         (struct cgraph_edge): Removed field indirect_call. New fields
4027         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
4028         (cgraph_create_indirect_edge): Declare.
4029         (cgraph_make_edge_direct): Likewise.
4030         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
4031         * ipa-prop.h (struct ipa_param_call_note): Removed.
4032         (struct ipa_node_params): Removed field param_calls.
4033         (ipa_create_all_structures_for_iinln): Declare.
4034         * cgraph.c: Described indirect edges and uids in initial comment.
4035         (cgraph_add_edge_to_call_site_hash): New function.
4036         (cgraph_edge): Search also among the indirect edges, use
4037         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
4038         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
4039         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
4040         site hash.
4041         (initialize_inline_failed): Assign a reason to indirect edges.
4042         (cgraph_create_edge_1): New function.
4043         (cgraph_create_edge): Moved some functionality to
4044         cgraph_create_edge_1.
4045         (cgraph_create_indirect_edge): New function.
4046         (cgraph_edge_remove_callee): Add an assert checking for
4047         non-indirectness.
4048         (cgraph_edge_remove_caller): Special-case indirect edges.
4049         (cgraph_remove_edge): Likewise.
4050         (cgraph_set_edge_callee): New function.
4051         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
4052         (cgraph_make_edge_direct): New function.
4053         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
4054         the declaration of the call statement matches.
4055         (cgraph_node_remove_callees): Special-case indirect edges.
4056         (cgraph_clone_edge): Likewise.
4057         (cgraph_clone_node): Clone also the indirect edges.
4058         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
4059         indirect_call, dump count of indirect_calls edges.
4060         * ipa-prop.c (iinlining_processed_edges): New variable.
4061         (ipa_note_param_call): Create indirect edges instead of
4062         creating notes.  New parameter node.
4063         (ipa_analyze_call_uses): New parameter node, pass it on to
4064         ipa_note_param_call.
4065         (ipa_analyze_stmt_uses): Likewise.
4066         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
4067         (print_edge_addition_message): Work on edges rather than on notes.
4068         (update_call_notes_after_inlining): Likewise, renamed to
4069         update_indirect_edges_after_inlining.
4070         (ipa_create_all_structures_for_iinln): New function.
4071         (ipa_free_node_params_substructures): Do not free notes.
4072         (ipa_edge_duplication_hook): Propagate bits within
4073         iinlining_processed_edges bitmap.
4074         (ipa_node_duplication_hook): Do not duplicate notes.
4075         (free_all_ipa_structures_after_ipa_cp): Renamed to
4076         ipa_free_all_structures_after_ipa_cp.
4077         (free_all_ipa_structures_after_iinln): Renamed to
4078         ipa_free_all_structures_after_iinln.
4079         (ipa_write_param_call_note): Removed.
4080         (ipa_read_param_call_note): Removed.
4081         (ipa_write_indirect_edge_info): New function.
4082         (ipa_read_indirect_edge_info): Likewise.
4083         (ipa_write_node_info): Do not stream notes, do stream information
4084         in indirect edges.
4085         (ipa_read_node_info): Likewise.
4086         (lto_ipa_fixup_call_notes): Removed.
4087         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
4088         * ipa-inline.c (pass_ipa_inline): Likewise.
4089         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
4090         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
4091         * tree-inline.c (copy_bb): Removed an unnecessary double check for
4092         is_gimple_call.
4093         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
4094         edges.
4095         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
4096         (output_cgraph): Stream also indirect edges.
4097         (lto_output_edge): Added capability to stream indirect edges.
4098         (input_edge): Likewise.
4099         (input_cgraph_1): Likewise.
4100         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
4101         of indirect edges.
4102
4103 2010-04-28  Richard Guenther  <rguenther@suse.de>
4104
4105         PR tree-optimization/43879
4106         PR tree-optimization/43909
4107         * tree-ssa-structalias.c (struct variable_info): Add
4108         only_restrict_pointers flag.
4109         (new_var_info): Initialize it.  Increment stats.total_vars here.
4110         (create_function_info_for): Do not increment stats.total_vars here.
4111         (get_function_part_constraint): Fix build with C++.
4112         (insert_into_field_list): Remove.
4113         (push_fields_onto_fieldstack): Properly merge fields.
4114         (create_variable_info_for): Split and simplify.
4115         (create_variable_info_for_1): New piece.
4116         (intra_create_variable_infos): Properly make restrict constraints
4117         from parameters.
4118
4119 2010-04-28  Richard Guenther  <rguenther@suse.de>
4120
4121         PR c++/43880
4122         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
4123
4124 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4125             Jan Hubicka <hubicka@ucw.cz>
4126
4127         * doc/invoke.texi (-Wsuggest-attribute=const,
4128         -Wsuggest-attribute=pure): Document.
4129         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
4130         (function_always_visible_to_compiler_p,
4131         suggest_attribute, warn_function_pure, warn_function_const):
4132         New functions.
4133         (check_call): Improve debug info.
4134         (analyze_function): Do not check availability.
4135         (add_new_function): Check availability.
4136         (propagate): Output warnings.
4137         (skip_function_for_local_pure_const): New function.
4138         (local_pure_const): Use it; output warnings.
4139         * common.opt (Wsuggest-attribute=const,
4140         Wsuggest-attribute=pure): New.
4141
4142 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
4143
4144         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
4145         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
4146         or DW_CFA_def_cfa_offset{,_sf}.
4147
4148 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
4149
4150         * tree.h: Fix truncated long macros.
4151
4152 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
4153
4154         * collect2.c (TARGET_64BIT): Redefine to target's default.
4155         * tlink.c: Likewise.
4156         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
4157         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
4158         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
4159         for underscoring __USER_LABEL_PREFIX__.
4160         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
4161         (SUB_LINK_ENTRY32): New.
4162         (SUB_LINK_ENTRY64): New.
4163         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
4164         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
4165         (SUB_LINK_ENTRY64): New.
4166         (SUB_LINK_ENTRY): New.
4167         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
4168         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
4169         x64 target is choosen.
4170         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
4171         * configure: Regenerated.
4172         * configure.ac (leading-mingw64-underscores): Option added.
4173
4174 2010-04-27  Jan Hubicka  <jh@suse.cz>
4175
4176         * doc/invoke.texi (-fipa-profile): Document.
4177         * opts.c (decode_options): Enable ipa-profile at -O1.
4178         * timevar.def (TV_IPA_PROFILE): Define.
4179         * common.opt (fipa-profile): Add.
4180         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
4181         flag for clones.
4182         (cgraph_propagate_frequency): Handle only local ones.
4183         * tree-pass.h (pass_ipa_profile): Declare.
4184         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
4185         (pass_ipa_profile): Use TV_IPA_PROFILE.
4186         * ipa.c (ipa_profile): New function.
4187         (gate_ipa_profile): Likewise.
4188         (pass_ipa_profile): New global variable.
4189         * passes.c (pass_ipa_profile): New.
4190
4191 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
4192
4193         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
4194
4195 2010-04-27  Martin Jambor  <mjambor@suse.cz>
4196
4197         PR middle-end/43812
4198         * ipa.c (dissolve_same_comdat_group_list): New function.
4199         (function_and_variable_visibility): Call
4200         dissolve_same_comdat_group_list when comdat group contains external or
4201         newly local nodes.
4202         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
4203         lists are circular and that they contain only DECL_ONE_ONLY nodes.
4204
4205 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
4206
4207         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
4208         (const_hash_1) <VECTOR_CST>: New case.
4209         (compare_constant) <VECTOR_CST>: Likewise.
4210         <ADDR_EXPR>: Deal with LABEL_REFs.
4211         (copy_constant) <VECTOR_CST>: New case.
4212
4213 2010-04-27  Jan Hubicka  <jh@suse.cz>
4214
4215         * cgraph.c (cgraph_propagate_frequency): New function.
4216         * cgraph.h (cgraph_propagate_frequency): Declare.
4217         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
4218         cgraph_propagate_frequency.
4219
4220 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
4221
4222         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
4223
4224 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
4225
4226         PR target/40657
4227         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
4228         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
4229         here to determine which regs to push and how much stack to reserve.
4230
4231 2010-04-27  Jie Zhang  <jie@codesourcery.com>
4232
4233         * doc/gimple.texi (gimple_statement_with_ops): Remove
4234         addresses_taken field.
4235         (gimple_statement_with_memory_ops): Likewise.
4236
4237 2010-04-27  Jan Hubicka  <jh@suse.cz>
4238
4239         * tree-inline.c (eni_inlining_weights): Remove.
4240         (estimate_num_insns): Special case more builtins.
4241
4242 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
4243
4244         PR c/32207
4245         * c-typeck.c (build_binary_op): Move forward check for comparison
4246         pointer with null pointer constant and adjust the diagnostic message.
4247
4248 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
4249
4250         PR lto/42776
4251         * configure.ac (gcc_cv_as_section_has_align): Set if installed
4252         binutils supports extended .section directive needed by LTO, or
4253         warn if older binutils found.
4254         (LTO_BINARY_READER): New AC_SUBST'd variable.
4255         (LTO_USE_LIBELF): Likewise.
4256         * gcc/config.gcc (lto_binary_reader): New target-specific configure
4257         variable.
4258         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
4259         (LTO_USE_LIBELF): Likewise.
4260         * configure: Regenerate.
4261
4262         * collect2.c (is_elf): Rename from this ...
4263         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
4264          object files in addition to ELF-formatted ones.
4265         (scan_prog_file): Caller updated.  Also allow for LTO info marker
4266         symbol to be prefixed or not by an extra underscore.
4267
4268         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
4269         * config/i386/winnt.c: Also #include lto-streamer.h
4270         (i386_pe_asm_named_section): Specify 1-byte section alignment for
4271         LTO named sections.
4272         (i386_pe_asm_output_aligned_decl_common): Add comment.
4273         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
4274
4275 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
4276
4277         PR target/43889
4278         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
4279         Add missing earlyclobber for second alternative.
4280
4281 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
4282
4283         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
4284         bits for artificial defs at the top of the block.
4285         * fwprop.c (single_def_use_enter_block): Don't call it.
4286
4287 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
4288
4289         PR 43715
4290         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
4291         instead of "$gcc_cv_objdump -T".
4292         Use "-undefined dynamic_lookup" on darwin.
4293         * gcc/configure: Regenerate.
4294
4295 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
4296
4297         PR c/43893
4298         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
4299
4300 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
4301
4302         * c-parser.c (struct c_token): Move location field up.
4303         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
4304         (struct c_declspecs): Convert typespec_word, storage_class, and
4305         default_int_p into bitfields.
4306         (struct c_declarator): Move loc field up.
4307
4308 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
4309
4310         * cfgloop.h (struct loop): Move can_be_parallel field up.
4311         * ipa-prop.h (struct ip_node_params): Move bitfields up.
4312         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
4313         down.
4314         (struct iv_cand): Convert pos field into a bitfield.
4315         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
4316         field up.
4317         (struct _stmt_vec_info): Shuffle fields for better packing.
4318
4319 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
4320
4321         * varasm.c (IN_NAMED_SECTION): Remove guard.
4322         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
4323         (IN_NAMED_SECTION_P): ...this.
4324         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
4325         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
4326
4327 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
4328
4329         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
4330         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
4331         of shadowing it.  Fix comments.
4332
4333 2010-04-26  Jan Hubicka  <jh@suse.cz>
4334
4335         * cgraph.c (cgraph_create_node): Set node frequency to normal.
4336         (cgraph_clone_node): Copy function frequency.
4337         * cgraph.h (node_frequency): New enum
4338         (struct cgraph_node): Add.
4339         * final.c (rest_of_clean_state): Update.
4340         * lto-cgraph.c (lto_output_node): Output node frequency.
4341         (input_overwrite_node): Input node frequency.
4342         * tre-ssa-loop-ivopts (computation_cost): Update.
4343         * lto-streamer-out.c (output_function): Do not output function
4344         frequency.
4345         * predict.c (maybe_hot_frequency_p): Update and handle functions
4346         executed once.
4347         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
4348         attribute lookup.
4349         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
4350         (compute_function_frequency): Set noreturn functions to be executed
4351         once.
4352         (choose_function_section): Update.
4353         * lto-streamer-in.c (input_function): Do not input function frequency.
4354         * function.c (allocate_struct_function): Do not initialize function
4355         frequency.
4356         * function.h (function_frequency): Remove.
4357         (struct function): Remove function frequency.
4358         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
4359         (try_update): Update.
4360         * tree-inline.c (initialize_cfun): Do not update function frequency.
4361         * passes.c (pass_init_dump_file): Update.
4362         * i386.c (ix86_compute_frame_layout): Update.
4363         (ix86_pad_returns): Update.
4364
4365 2010-04-26  Jie Zhang  <jie@codesourcery.com>
4366
4367         PR tree-optimization/43833
4368         * tree-vrp.c (range_int_cst_p): New.
4369         (range_int_cst_singleton_p): New.
4370         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
4371         when both operands are constants.  Use range_int_cst_p in
4372         BIT_IOR_EXPR case.
4373
4374 2010-04-26  Jan Hubicka  <jh@suse.cz>
4375
4376         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
4377
4378 2010-04-26  Richard Guenther  <rguenther@suse.de>
4379
4380         PR lto/43080
4381         * gimple.c (gimple_decl_printable_name): Deal gracefully
4382         with a NULL DECL_NAME.
4383
4384 2010-04-26  Richard Guenther  <rguenther@suse.de>
4385
4386         PR lto/42425
4387         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
4388         if emitting debug information and it is either a function
4389         or a namespace decl.
4390
4391 2010-04-26  Ira Rosen  <irar@il.ibm.com>
4392
4393         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
4394         determine if the statement is vectorizable, and a macro to access it.
4395         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
4396         Skip statements that can't be vectorized. If the analysis fails,
4397         mark the statement as unvectorizable if vectorizing basic block.
4398         (vect_compute_data_refs_alignment): Likewise.
4399         (vect_verify_datarefs_alignment): Skip statements marked as
4400         unvectorizable. Add print.
4401         (vect_analyze_group_access): Skip statements that can't be
4402         vectorized. If the analysis fails, mark the statement as
4403         unvectorizable if vectorizing basic block.
4404         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
4405         * tree-vect-stmts.c (vectorizable_store): Fix the number of
4406         generated stmts for SLP.
4407         (new_stmt_vec_info): Initialize the new field.
4408         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
4409         statements marked as unvectorizable.
4410
4411 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
4412
4413         * c-common.c (flag_isoc1x): New.
4414         (flag_isoc99): Update comment.
4415         * c-common.h (flag_isoc1x): New.
4416         (flag_isoc99): Update comment.
4417         * c-cppbuiltin.c (builtin_define_float_constants): Also define
4418         __<type>_DECIMAL_DIG__.
4419         * c-opts.c (set_std_c1x): New.
4420         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
4421         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
4422         * c.opt (-std=c1x, -std=gnu1x): New options.
4423         * doc/cpp.texi: Mention -std=c1x.
4424         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
4425         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
4426         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
4427         * doc/standards.texi: Mention C1X.
4428         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
4429         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
4430         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
4431         Define for C1X.
4432
4433 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
4434
4435         * config/i386/gmon-sol2.c (_mcleanup): Change format string
4436         placeholder from 0x%x to %#x.
4437         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
4438         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
4439         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
4440         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
4441         * config/i386/i386.c (ix86_target_string): Ditto.
4442         (output_pic_addr_const): Ditto.
4443         (print_operand): Ditto.
4444
4445 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
4446
4447         * combine.c (find_split_point): Add third argument.  Use it
4448         to find nested multiply-accumulate instructions.  Adjust calls.
4449         (try_combine): Adjust call to find_split_point.
4450
4451 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
4452
4453         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
4454
4455 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
4456
4457         PR tree-optimization/41442
4458         * fold-const.c (merge_truthop_with_opposite_arm): New function.
4459         (fold_binary_loc): Call it.
4460
4461 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4462
4463         * toplev.c (general_init): Set default for fdiagnostics-show-option.
4464         * opts.c (common_handle_option): Allow disabling it.
4465         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
4466
4467 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
4468
4469         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
4470         between modes if both types are integral.
4471
4472 2010-04-23  Richard Guenther  <rguenther@suse.de>
4473
4474         PR tree-optimization/43572
4475         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
4476
4477 2010-04-23  Richard Guenther  <rguenther@suse.de>
4478
4479         PR lto/43455
4480         * tree-inline.c (tree_can_inline_p): Also check compatibility
4481         of return types.
4482
4483 2010-04-23  Martin Jambor  <mjambor@suse.cz>
4484
4485         PR tree-optimization/43846
4486         * tree-sra.c (struct access): New flag grp_assignment_read.
4487         (build_accesses_from_assign): Set grp_assignment_read.
4488         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
4489         (enum mark_read_status): New type.
4490         (analyze_access_subtree): Propagate grp_assignment_read, create
4491         accesses also if both direct_read and root->grp_assignment_read.
4492
4493 2010-04-23  Martin Jambor  <mjambor@suse.cz>
4494
4495         PR middle-end/43835
4496         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
4497         function does not have type attributes.
4498
4499 2010-04-23  Richard Guenther  <rguenther@suse.de>
4500
4501         PR lto/42653
4502         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
4503         of FUNCTION_DECLs.
4504
4505 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4506
4507         * sese.h (create_if_region_on_edge): Remove.
4508
4509         * sese.c (create_if_region_on_edge): Make static.
4510
4511         * tree-inline.c: Do not include ggc.h.
4512
4513         * expr.c: Do not include ggc.h.
4514
4515         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
4516         dependencies.
4517
4518 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
4519
4520         PR target/43744
4521         * config/sh/sh.c (find_barrier): Don't emit a constant pool
4522         in the middle of insns for casesi_worker_2.
4523
4524 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
4525
4526         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
4527
4528 2010-04-22  Ira Rosen  <irar@il.ibm.com>
4529
4530         PR tree-optimization/43842
4531         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
4532         loop unrolling in update of exit phis. Fix comment.
4533         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
4534         least two reduction statements in the loop before starting SLP
4535         analysis.
4536
4537 2010-04-22  Nick Clifton  <nickc@redhat.com>
4538
4539         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
4540
4541 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
4542
4543         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
4544         to simplify a + ~a.
4545
4546 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4547
4548         * tree-parloops.c (loop_parallel_p): New argument
4549         parloop_obstack.  Pass it down.
4550         (parallelize_loops): New variable parloop_obstack.  Initialize it,
4551         pass it down, free it.
4552
4553         * tree-loop-linear.c (linear_transform_loops): Pass down
4554         lambda_obstack.
4555
4556         * tree-data-ref.h (lambda_compute_access_matrices): New argument
4557         of type struct obstack *.
4558
4559         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
4560         scratch_obstack.  Initialize it, pass down, free it.
4561
4562         * lambda.h (lambda_loop_new): Remove.
4563         (lambda_matrix_new, lambda_matrix_inverse)
4564         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
4565         argument of type struct obstack *.
4566
4567         * lambda-trans.c (lambda_trans_matrix_new): New argument
4568         lambda_obstack.  Pass it down, use obstack allocation for ret.
4569         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
4570         it down.
4571
4572         * lambda-mat.c (lambda_matrix_get_column)
4573         (lambda_matrix_project_to_null): Remove.
4574         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
4575         allocation for mat.
4576         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
4577         lambda_obstack.
4578
4579         * lambda-code.c (lambda_loop_new): New function.
4580         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
4581         (lambda_compute_auxillary_space, lambda_compute_target_space)
4582         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
4583         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
4584         (build_access_matrix): New argument lambda_obstack.  Use obstack
4585         allocation for am.
4586         (lambda_compute_step_signs, lambda_compute_access_matrices): New
4587         argument lambda_obstack.  Pass it down.
4588
4589 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4590
4591         * optabs.h (expand_widening_mult): Declare.
4592
4593 2010-04-22  Richard Guenther  <rguenther@suse.de>
4594
4595         PR tree-optimization/43845
4596         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
4597         lookup the CALL_EXPR function and arguments.
4598
4599 2010-04-22  Nick Clifton  <nickc@redhat.com>
4600
4601         * config/stormy16/stormy16.c
4602         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
4603         * config/stormy16/stormy16.h: Tidy up formatting.
4604         (DONT_USE_BUILTIN_SETJMP): Remove definition.
4605         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
4606         (ineqbranchsi): Delete pattern.
4607         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
4608         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
4609         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
4610         stormy16-lib2-ucmpsi2.c.
4611
4612 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4613
4614         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
4615         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
4616         extra set merge_set_noclobber, and use it to relax the final test
4617         slightly.
4618         * df.h (df_simulate_find_noclobber_defs): Declare.
4619         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
4620         conditional defs.
4621         (df_simulate_find_noclobber_defs): New function.
4622
4623 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
4624
4625         * config/i386/i386.md: Use {} around multi-line preparation statements.
4626
4627 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4628
4629         * c-tree.h (push_init_level, pop_init_level, set_init_index)
4630         (process_init_element): New argument of type struct obstack *.
4631
4632         * c-typeck.c (push_init_level, pop_init_level, set_designator)
4633         (set_init_index, set_init_label, set_nonincremental_init)
4634         (set_nonincremental_init_from_string, find_init_member)
4635         (output_init_element, output_pending_init_elements)
4636         (process_init_element): New argument braced_init_obstack.  Pass it
4637         down.
4638         (push_range_stack, add_pending_init): New argument
4639         braced_init_obstack.  Use obstack allocation.
4640
4641         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
4642         braced_init_obstack.  Pass it down.
4643         (c_parser_braced_init): New variables ret, braced_init_obstack.
4644         Initialize obstack, pass it down and finally free it.
4645
4646 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4647
4648         PR middle-end/29274
4649         * tree-pass.h (pass_optimize_widening_mul): Declare.
4650         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
4651         gate_optimize_widening_mul): New static functions.
4652         (pass_optimize_widening_mul): New.
4653         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
4654         <case MULT_EXPR>: Remove support for widening multiplies.
4655         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
4656         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
4657         simplify_gen_unary rather than directly building extensions.
4658         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
4659         WIDEN_MULT_EXPR.
4660         * expmed.c (expand_widening_mult): New function.
4661         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
4662
4663 2010-04-21  Jan Hubicka  <jh@suse.cz>
4664
4665         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
4666         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
4667         * lto-wpa-fixup.c: Remove.
4668         * Makefile.in (lto-wpa-fixup.o): Remove.
4669         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
4670         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
4671         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
4672
4673 2010-04-21  Jan Hubicka  <jh@suse.cz>
4674
4675         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
4676         add write_optimization_summary, read_optimization_summary.
4677         (ipa_write_summaries_of_cgraph_node_set): Remove.
4678         (ipa_write_optimization_summaries): Declare.
4679         (ipa_read_optimization_summaries): Declare.
4680         * ipa-cp.c (pass_ipa_cp): Update.
4681         * ipa-reference.c (pass_ipa_reference): Update.
4682         * ipa-pure-const.c (pass_ipa_pure_const): Update.
4683         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
4684         Update.
4685         * ipa-inline.c (pass_ipa_inline): Update.
4686         * ipa.c (pass_ipa_whole_program): Update.
4687         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
4688         * passes.c (ipa_write_summaries_1): Do not test wpa.
4689         (ipa_write_optimization_summaries_1): New.
4690         (ipa_write_optimization_summaries): New.
4691         (ipa_read_summaries): Do not test ltrans.
4692         (ipa_read_optimization_summaries_1): New.
4693         (ipa_read_optimization_summaries): New.
4694
4695 2010-04-21  Jan Hubicka  <jh@suse.cz>
4696
4697         * lto-cgraph.c (lto_output_node): Do not output comdat groups
4698         for boundary nodes.
4699         (output_cgraph): Do not arrange comdat groups for boundary nodes.
4700
4701 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4702
4703         PR debug/40040
4704         * dwarf2out.c (add_name_and_src_coords_attributes): Add
4705         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
4706
4707 2010-04-21  Jan Hubicka  <jh@suse.cz>
4708
4709         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
4710
4711 2010-04-21  Jan Hubicka  <jh@suse.cz>
4712
4713         * varpool.c (decide_is_variable_needed): Variable is always needed
4714         during ltrans.
4715
4716 2010-04-21  Jan Hubicka  <jh@suse.cz>
4717
4718         * opts.c (decode_options): Enable pure-const pass for whopr.
4719
4720 2010-04-21  Jan Hubicka  <jh@suse.cz>
4721
4722         * cgraph.c (dump_cgraph_node): Dump also assembler name.
4723         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
4724         at WPA dumping.
4725         (cgraph_decide_inlining): Do not expect callee to be removed in all
4726         cases.
4727
4728 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
4729
4730         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
4731
4732 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
4733
4734         * config/i386/i386.md (x86_shrd): Add athlon_decode and
4735         amdfam10_decode attributes.
4736
4737 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4738
4739         PR middle-end/43570
4740         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
4741         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
4742         (lower_copyprivate_clauses): Use private var in outer
4743         context instead of original var.  Make sure the types
4744         are correct for VLAs.
4745
4746 2010-04-21  Richard Guenther  <rguenther@suse.de>
4747
4748         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
4749         to non-pointer objects.
4750
4751 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4752
4753         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
4754         last chain entry if it starts with the still current label.
4755         (add_location_or_const_value_attribute): Check that
4756         loc_list->first->next is NULL instead of comparing ->first with ->last.
4757         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
4758         to add_var_loc_to_decl.
4759
4760         * dwarf2out.c (output_call_frame_info): For dw_cie_version
4761         >= 4 add also address size and segment size fields into CIE header.
4762
4763         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
4764         long as address size is the same as sizeof (void *) and
4765         segment size is 0.
4766         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
4767         address size or segment size is unexpected, return DW_EH_PE_omit.
4768         (classify_object_over_fdes): If get_cie_encoding returned
4769         DW_EH_PE_omit, return -1.
4770         (init_object): If classify_object_over_fdes returned -1,
4771         pretend there were no FDEs at all.
4772
4773 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
4774
4775         * config/i386/i386.md (bswap<mode>2): Macroize expander from
4776         bswap{si,di}2 using SWI48 mode iterator.
4777         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
4778         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
4779         set modrm attribute of bswap insn to 0 and remove length attribute.
4780         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
4781         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
4782         set mode attribute to <MODE> and remove length attribute.
4783
4784 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
4785
4786         PR rtl-optimization/43520
4787         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
4788         zero available registers.
4789
4790 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4791
4792         * builtins.c (fold_builtin_cproj): Fold more cases.
4793
4794 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4795
4796         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
4797         (fold_builtin_1): Fold builtin cproj.
4798         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
4799         Use ATTR_CONST_NOTHROW_LIST.
4800
4801 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
4802
4803         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
4804         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
4805         ffsi2_no_cmove for !TARGET_CMOVE.
4806         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
4807         (ffssi2): Remove expander.
4808         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
4809         mode iterator.
4810         (ctz<mode>2): Ditto from ctz{si,di}2.
4811         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
4812         mode iterator.
4813         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
4814         mode iterator.
4815
4816 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
4817
4818         * dwarf2out.c (AT_linkage_name): Define.
4819         (clone_as_declaration): Handle DW_AT_linkage_name.
4820         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
4821         of DW_AT_MIPS_linkage_name.
4822         (move_linkage_attr): Likewise.
4823         (dwarf2out_finish): Likewise.
4824
4825 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
4826
4827         PR middle-end/41952
4828         * fold-const.c (fold_comparison): New folding rule.
4829
4830 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
4831
4832         * double-int.h (double_int_setbit): Declare.
4833         * double-int.c (double_int_setbit): New function.
4834         * rtl.h (immed_double_int_const): Declare.
4835         * emit-rtl.c (immed_double_int_const): New function.
4836         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
4837         and immed_double_int_const functions.
4838         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
4839         expand_copysign_bit):  (Ditto.).
4840         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
4841         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
4842         * dojump.c (prefer_and_bit_test): (Ditto.).
4843         * expr.c (convert_modes, reduce_to_bit_field_precision,
4844         const_vector_from_tree): (Ditto.).
4845         * expmed.c (mask_rtx, lshift_value): (Ditto.).
4846
4847 2010-04-20  Jan Hubicka  <jh@suse.cz>
4848
4849         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
4850         (dump_cgraph_node): Dump new flags.
4851         * cgraph.h (struct cgraph_node): Add flags
4852         reachable_from_other_partition and in_other_partition.
4853         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
4854         other partition can not be removed.
4855         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
4856         the other partition must be output; silence sanity checking on
4857         leaking functions bodies from other paritition.
4858         * lto-cgraph.c (reachable_from_other_partition_p): New function.
4859         (lto_output_node): Output new flags; do not sanity check that inline
4860         clones are output; drop lto_forced_extern_inline_p code; do not mock
4861         visibility flags at partition boundaries.
4862         (add_node_to): New function.
4863         (output_cgraph): Use it to sort functions so masters appear before
4864         clones.
4865         (input_overwrite_node): Input new flags.
4866         * passes.c (ipa_write_summaries): Do not call
4867         lto_new_extern_inline_states.
4868         * lto-section-out.c (forced_extern_inline,
4869         lto_new_extern_inline_states lto_delete_extern_inline_states,
4870         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
4871         * lto-streamer.h (lto_new_extern_inline_states,
4872         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
4873         lto_forced_extern_inline_p): Kill.
4874
4875 2010-04-20  Richard Guenther  <rguenther@suse.de>
4876
4877         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
4878         from vars that can have pointers.
4879         (process_constraint): Dump useless constraints.
4880
4881 2010-04-20  Richard Guenther  <rguenther@suse.de>
4882
4883         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
4884         (dump_sa_points_to_info): Remove asserts.
4885         (init_base_vars): nothing_id isn't an escape point nor does it
4886         have pointers.
4887
4888 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
4889
4890         * tree.h (TYPE_REF_IS_RVALUE): Define.
4891         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
4892         should_move_die_to_comdat, prune_unused_types_walk): Handle
4893         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
4894         (modified_type_die, gen_reference_type_die): Emit
4895         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
4896         if TYPE_REF_IS_RVALUE and -gdwarf-4.
4897
4898 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4899
4900         PR target/43635
4901         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
4902         calls for -fpic -m31 if they have been sibcall optimized.
4903
4904 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
4905
4906         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
4907         ar.lc fixed and call-used.
4908
4909         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
4910
4911 2010-04-19  Jan Hubicka  <jh@suse.cz>
4912
4913         * opts.c (decode_options): Disable whpr incompatible passes.
4914         * lto/lto.c (lto_1_to_1_map): Skip clones.
4915         (read_cgraph_and_symbols): Do not mark everything as needed.
4916         (do_whole_program_analysis): Do map only after optimizing;
4917         set proper cgraph_state; use passmanager.
4918
4919 2010-04-19  DJ Delorie  <dj@redhat.com>
4920
4921         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
4922         POINTER_PLUS_EXPR and fix them.
4923
4924 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
4925
4926         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
4927         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
4928         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
4929         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
4930         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
4931         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
4932         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
4933         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
4934         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
4935         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
4936         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
4937
4938 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4939
4940         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
4941         (check_cond_move_block): Likewise.
4942         (cond_move_process_if_block): Likewise.
4943         (noce_find_if_block): Improve formatting.
4944         (find_if_header): Pass 0 to memset and tweak conditions.
4945         (cond_exec_find_if_block): Fix long lines and tweak conditions.
4946
4947 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
4948
4949         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
4950         for -gdwarf-4.
4951
4952         PR middle-end/43337
4953         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
4954         with non-local decl doesn't need chain.
4955
4956 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
4957
4958         * ira-color.c (allocno_reload_assign): Avoid accumulating
4959         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
4960
4961 2010-04-19  Martin Jambor  <mjambor@suse.cz>
4962
4963         * gimple.h (create_tmp_reg): Declare.
4964         * gimplify.c (create_tmp_reg): New function.
4965         (gimplify_return_expr): Use create_tmp_reg.
4966         (gimplify_omp_atomic): Likewise.
4967         (gimple_regimplify_operands): Likewise.
4968         * tree-dfa.c (make_rename_temp): Likewise.
4969         * tree-predcom.c (predcom_tmp_var): Likewise.
4970         (reassociate_to_the_same_stmt): Likewise.
4971         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
4972         (get_replaced_param_substitute): Likewise.
4973         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
4974         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
4975         * tree-ssa-pre.c (get_representative_for): Likewise.
4976         (create_expression_by_pieces): Likewise.
4977         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
4978         (create_tailcall_accumulator): Likewise.
4979
4980 2010-04-19  Martin Jambor  <mjambor@suse.cz>
4981
4982         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
4983         new_stmt.
4984         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
4985
4986 2010-04-19  Richard Guenther  <rguenther@suse.de>
4987
4988         PR tree-optimization/43796
4989         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
4990         from SCEV in the lattice.
4991         (vrp_visit_phi_node): Dump change.
4992
4993 2010-04-19  Richard Guenther  <rguenther@suse.de>
4994
4995         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
4996         * configure: Re-generated.
4997
4998 2010-04-19  Richard Guenther  <rguenther@suse.de>
4999
5000         PR tree-optimization/43783
5001         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
5002         constant ARRAY_REF operands two and three if possible.
5003
5004 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
5005
5006         PR target/43766
5007         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
5008
5009 2010-04-19  Jie Zhang  <jie@codesourcery.com>
5010
5011         PR target/43662
5012         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
5013
5014 2010-04-19  Ira Rosen  <irar@il.ibm.com>
5015
5016         PR tree-optimization/37027
5017         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
5018         and macro to access it.
5019         (vectorizable_reduction): Add argument.
5020         (vect_get_slp_defs): Likewise.
5021         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
5022         statements for possible use in SLP.
5023         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
5024         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
5025         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
5026         add new argument.
5027         (vectorizable_reduction): Likewise.
5028         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
5029         vect_get_slp_defs.
5030         (vectorizable_type_demotion, vectorizable_type_promotion,
5031         vectorizable_store): Likewise.
5032         (vect_analyze_stmt): Update call to vectorizable_reduction.
5033         (vect_transform_stmt): Likewise.
5034         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
5035         (vect_build_slp_tree): Fix indentation. Check that there are no loads
5036         from different interleaving chains in same node.
5037         (vect_slp_rearrange_stmts): New function.
5038         (vect_supported_load_permutation_p): Allow load permutations for
5039         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
5040         inside SLP nodes if necessary.
5041         (vect_analyze_slp_instance): Handle reductions.
5042         (vect_analyze_slp): Try to build SLP instances originating from groups
5043         of reductions.
5044         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
5045         (vect_get_constant_vectors): Create initial vectors for reductions
5046         according to reduction code. Add new argument.
5047         (vect_get_slp_defs): Add new argument, pass it to
5048         vect_get_constant_vectors.
5049         (vect_schedule_slp_instance): Remove SLP tree root statements.
5050
5051 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
5052
5053         * tree.h (ENUM_IS_SCOPED): Define.
5054         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
5055         for ENUM_IS_SCOPED enums.
5056
5057 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5058
5059         * fold-const.c (fold_comparison): Use ssizetype.
5060         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
5061         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
5062         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
5063         * tree-object-size.c (compute_object_sizes): Use size_type_node.
5064
5065         * tree.h (initialize_sizetypes): Remove parameter.
5066         (build_common_tree_nodes): Remove second parameter.
5067         * stor-layout.c (initialize_sizetypes): Remove parameter.
5068         Always create an unsigned type.
5069         (set_sizetype): Assert that the passed type is unsigned and simplify.
5070         * tree.c (build_common_tree_nodes): Remove second parameter.
5071         Adjust call to initialize_sizetypes.
5072         * c-decl.c (c_init_decl_processing): Remove second argument in call to
5073         build_common_tree_nodes.
5074
5075 2010-04-18  Matthias Klose  <doko@ubuntu.com>
5076
5077         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
5078
5079 2010-04-18  Ira Rosen  <irar@il.ibm.com>
5080
5081         PR tree-optimization/43771
5082         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
5083         load permutation doesn't have gaps.
5084
5085 2010-04-18  Jan Hubicka  <jh@suse.cz>
5086
5087         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
5088         (sse_prologue_save_insn expander): Use new pattern.
5089         (sse_prologue_save_insn1): New pattern and splitter.
5090         (sse_prologue_save_insn): Update to deal also with 64bit aligned
5091         blocks.
5092         * i386.c (setup_incoming_varargs_64): Do not compute jump
5093         destination here.
5094         (ix86_gimplify_va_arg): Update alignment needed.
5095         (ix86_local_alignment): Do not align all local arrays to 128bit.
5096
5097 2010-04-17  Jan Hubicka  <jh@suse.cz>
5098
5099         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
5100
5101 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5102
5103         * arm.md (negdi2): Remove redundant code to force values into a
5104         register.
5105
5106 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5107
5108         * arm/bpabi.S: Add EABI alignment attributes to objects.
5109         * arm/bpabi-v6m.S: Likewise.
5110         * arm/crti.asm: Likewise.
5111         * arm/crtn.asm: Likewise.
5112         * arm/lib1funcs.asm: Likewise.
5113         * arm/libunwind.S: Likewise.
5114
5115 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5116
5117         * arm-protos.h (tune_params): New structure.
5118         * arm.c (current_tune): New variable.
5119         (arm_constant_limit): Delete.
5120         (struct processors): Add pointer to the tune parameters.
5121         (arm_slowmul_tune): New tuning option.
5122         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
5123         (all_cores): Adjust to pick up the tuning model.
5124         (arm_constant_limit): New function.
5125         (arm_override_options): Select the appropriate tuning model.  Delete
5126         initialization of arm_const_limit.
5127         (arm_split_constant): Use the new constant-limit model.
5128         (arm_rtx_costs): Pick up the current tuning model.
5129         * arm.md (is_strongarm, is_xscale): Delete.
5130         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
5131         for Xscale variant architectures.
5132         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
5133
5134 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5135
5136         * config/arm/arm.c (arm_gen_constant): Remove unused variable
5137         can_shift.
5138         (arm_rtx_costs_1): Remove unused variable extra_cost.
5139         (arm_unwind_emit_set): Use variable offset.
5140         (thumb1_output_casesi): Remove unused variable flags.
5141
5142 2010-04-16  Jeff Law  <law@redhat.com>
5143
5144         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
5145         needing assignment rather than doing a two-phase assignment.  Remove
5146         unused variable 'm'.
5147
5148 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5149
5150         PR bootstrap/43767
5151         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
5152
5153 2010-04-16  Doug Kwan  <dougkwan@google.com>
5154
5155         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
5156         (next_operand_entry_id): New static variable.
5157         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
5158         (add_to_ops_vec): Assigned unique ID to operand entry.
5159         (struct oecount_s): New field ID.
5160         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
5161         (undistribute_ops_list): Assign unique IDs to oecounts.
5162         (init_reassoc): reset next_operand_entry_id.
5163
5164 2010-04-16  Doug Kwan  <dougkwan@google.com>
5165
5166         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
5167         missing left parenthesis.
5168
5169 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
5170
5171         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
5172         *btdi_rex64 using SWI48 mode iterator.
5173         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
5174         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
5175         *jcc_btdi_mask_rex64.
5176
5177 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
5178
5179         * double-int.h (tree_to_double_int): Convert to macro.
5180         * double-int.c (tree_to_double_int): Remove.
5181
5182 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5183
5184         PR debug/43762
5185         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
5186         with want_address 2 and in case a single element list might be
5187         possible, call it again with want_address 0.
5188
5189 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
5190
5191         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
5192         case 'W' print operands for HI mode.
5193         * config/h8300/h8300.h (Y0, Y2) : New constraints.
5194         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
5195         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
5196         * config/h8300/predicate.md (bit_register_indirect_operand): New.
5197
5198         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
5199
5200         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
5201         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
5202         #xx:3 and #xx:4 mode.
5203
5204         * config/h8300/h8300.md (inverted load with HImode dest): Add
5205         support for H8300SX.
5206
5207         * config/h8300/predicate.md (bit_operand): Allow immediate values that
5208         satisfy 'U' constraint.
5209
5210 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5211
5212         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
5213         * configure: Regenerate.
5214         * config.in: Regenerate.
5215         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
5216         works.
5217
5218 2010-04-16  Richard Guenther  <rguenther@suse.de>
5219
5220         * tree.h (struct tree_decl_minimal): Move pt_uid ...
5221         (struct tree_decl_common): ... here.
5222         (DECL_PT_UID): Adjust.
5223         (SET_DECL_PT_UID): Likewise.
5224         (DECL_PT_UID_SET_P): Likewise.
5225
5226 2010-04-16  Richard Guenther  <rguenther@suse.de>
5227
5228         PR tree-optimization/43572
5229         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
5230         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
5231         * tree-flow.h (is_call_clobbered): Remove.
5232         * tree-flow-inline.h (is_call_clobbered): Likewise.
5233         * tree-dfa.c (dump_variable): Do not dump call clobber state.
5234         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
5235         (execute_return_slot_opt): Adjust.
5236         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
5237         check for call clobbered vars here.
5238         (find_tail_calls): Move tailcall verification to the
5239         proper place.
5240
5241 2010-04-16  Diego Novillo  <dnovillo@google.com>
5242
5243         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
5244
5245 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5246
5247         PR target/40603
5248         * config/arm/arm.md (cbranchqi4): New pattern.
5249         * config/arm/predicates.md (const0_operand,
5250         cbranchqi4_comparison_operator): New predicates.
5251
5252 2010-04-16  Richard Guenther  <rguenther@suse.de>
5253
5254         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
5255         (dump_gimple_stmt): Likewise.
5256
5257 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5258
5259         * recog.h (struct recog_data): New field is_operator.
5260         (struct insn_operand_data): New field is_operator.
5261         * recog.c (extract_insn): Set recog_data.is_operator.
5262         * genoutput.c (output_operand_data): Emit code to set the
5263         is_operator field.
5264         * reload.c (find_reloads): Use it rather than testing for an
5265         empty constraint string.
5266
5267         PR target/41514
5268         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
5269         If the previous insn is a cbranchsi4_insn with the same arguments,
5270         omit the compare instruction.
5271
5272         * config/arm/arm.md (addsi3_cbranch): If destination is a high
5273         register, inputs must be low registers and we need a low register
5274         scratch.  Handle alternative 2 like alternative 3.
5275
5276 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5277
5278         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
5279         don't call get_addr on both.  If one expression is a VALUE and
5280         the other a REG, check VALUE's locs if the REG isn't among them.
5281
5282 2010-04-16  Christian Bruel  <christian.bruel@st.com>
5283
5284         * config/sh/sh.h (sh_frame_pointer_required): New function.
5285         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
5286         (flag_omit_frame_pointer) Set.
5287         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
5288         (rounded_frame_size): Adjust size with outgoing_args_size.
5289         (sh_set_return_address): Must return from stack pointer.
5290         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
5291         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
5292         (ACCUMULATE_OUTGOING_ARGS): Define.
5293         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
5294         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
5295
5296 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5297
5298         PR target/43471
5299         * config/sh/sh.c (sh_legitimize_reload_address): Use
5300         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
5301         Remove a unneeded check for offset_base.
5302
5303 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
5304
5305         * configure: Regenerated.
5306
5307 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5308
5309         * config/s390/s390.c (s390_call_save_register_used): Switch back
5310         to HARD_REGNO_NREGS.
5311
5312 2010-04-15  Richard Guenther  <rguenther@suse.de>
5313
5314         * alias.c (alias_set_subset_of): Handle alias-set zero
5315         child properly.
5316
5317 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
5318             Julian Brown  <julian@codesourcery.com>
5319
5320         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
5321         alternatives according to use of high and low regs.
5322         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
5323         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
5324         optimizing for size on Thumb-2.
5325
5326 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
5327
5328         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
5329
5330 2010-04-15  Richard Guenther  <rguenther@suse.de>
5331
5332         * tree-ssa-structalias.c (struct variable_info): Add
5333         is_fn_info flag.
5334         (new_var_info): Initialize it.
5335         (dump_constraints): Support printing last added constraints.
5336         (debug_constraints): Adjust.
5337         (dump_constraint_graph): Likewise.
5338         (make_heapvar_for): Check for NULL cfun.
5339         (get_function_part_constraint): New function.
5340         (get_fi_for_callee): Likewise.
5341         (find_func_aliases): Properly implement IPA PTA constraints.
5342         (process_ipa_clobber): New function.
5343         (find_func_clobbers): Likewise.
5344         (insert_into_field_list_sorted): Remove.
5345         (create_function_info_for): Properly allocate vars for IPA mode.
5346         Do not use insert_into_field_list_sorted.
5347         (create_variable_info_for): Properly generate constraints for
5348         global vars in IPA mode.
5349         (dump_solution_for_var): Always dump the solution.
5350         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
5351         (find_what_var_points_to): Adjust.
5352         (pt_solution_set): Change.
5353         (pt_solution_ior_into): New function.
5354         (pt_solution_empty_p): Export.
5355         (pt_solution_includes_global): Adjust.
5356         (pt_solution_includes_1): Likewise.
5357         (pt_solutions_intersect_1): Likewise.
5358         (dump_sa_points_to_info): Check some invariants.
5359         (solve_constraints): Move constraint dumping ...
5360         (compute_points_to_sets): ... here.
5361         (ipa_pta_execute): ... and here.
5362         (compute_may_aliases): Do not re-compute points-to info
5363         locally if IPA info is available.
5364         (ipa_escaped_pt): New global var.
5365         (ipa_pta_execute): Properly implement IPA PTA.
5366         * tree-into-ssa.c (dump_decl_set): Support dumping
5367         decls not in referenced-vars.
5368         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
5369         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
5370         (dump_points_to_solution): Likewise.
5371         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
5372         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
5373         (remap_gimple_stmt): Reset call clobber/use information if necessary.
5374         (copy_decl_to_var): Copy DECL_PT_UID.
5375         (copy_result_decl_to_var): Likewise.
5376         * tree.c (make_node_stat): Initialize DECL_PT_UID.
5377         (copy_node_stat): Copy it.
5378         * tree.h (DECL_PT_UID): New macro.
5379         (SET_DECL_PT_UID): Likewise.
5380         (DECL_PT_UID_SET_P): Likewise.
5381         (struct tree_decl_minimal): Add pt_uid member.
5382         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
5383         (pt_solution_empty_p): Declare.
5384         (pt_solution_set): Adjust.
5385         (ipa_escaped_pt): Declare.
5386         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
5387         * gimple-pretty-print.c (pp_points_to_solution): New function.
5388         (dump_gimple_call): Dump call clobber/use information.
5389         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
5390         * tree-pass.h (TDF_ALIAS): New dump option.
5391         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
5392         * doc/invoke.texi (-fipa-pta): Update documentation.
5393
5394 2010-04-15  Richard Guenther  <rguenther@suse.de>
5395
5396         * Makefile.in (OBJS-common): Add gimple-fold.o.
5397         (gimple-fold.o): New rule.
5398         * tree.h (maybe_fold_offset_to_reference,
5399         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
5400         prototypes ...
5401         * gimple.h: ... here.
5402         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
5403         may_propagate_address_into_dereference): Move prototypes ...
5404         * gimple.h: ... here.
5405         * tree-ssa-ccp.c (get_symbol_constant_value,
5406         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
5407         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
5408         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
5409         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
5410         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
5411         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
5412         gimplify_and_update_call_from_tree): Move ...
5413         * gimple-fold.c: ... here.  New file.
5414         (ccp_fold_builtin): Rename to ...
5415         (gimple_fold_builtin): ... this.
5416         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
5417
5418 2010-04-15  Richard Guenther  <rguenther@suse.de>
5419
5420         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
5421         fit_double_type, force_fit_type_double, add_double_with_sign,
5422         neg_double, mul_double_with_sign, lshift_double, rshift_double,
5423         lrotate_double, rrotate_double, div_and_round_double): Move ...
5424         * double-int.c: ... here.
5425         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
5426         add_double, neg_double, mul_double_with_sign, mul_double,
5427         lshift_double, rshift_double, lrotate_double, rrotate_double,
5428         div_and_round_double): Move prototypes ...
5429         * double-int.h: ... here.
5430
5431 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
5432
5433         PR target/43742
5434         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
5435         matching constraints to ensure inputs match the output.
5436
5437 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5438
5439         PR target/43742
5440         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
5441         in an input-only operand.
5442
5443 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
5444
5445         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
5446         (double_int_not, double_int_lshift, double_int_rshift): Declare.
5447         (double_int_negative_p): Convert to static inline function.
5448         * double-int.c (double_int_lshift, double_int_lshift): New functions.
5449         (double_int_negative_p): Remove.
5450         * tree.h (lshift_double, rshift_double):
5451         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
5452         * fold-const.c (fold_convert_const_int_from_real,
5453         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
5454         (lshift_double): Change type of arith argument to bool.
5455         (rshift_double): Change type of arith argument to bool. Correct
5456         comment.
5457         * expmed.c (mask_rtx, lshift_value): (Ditto.).
5458
5459 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
5460
5461         PR target/21803
5462         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
5463         at the start and end of the then/else blocks, and omit them from the
5464         conversion.
5465         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
5466         argument; all callers changed.  Pass zero to old_insns_match_p instead.
5467         (flow_find_head_matching_sequence): New function.
5468         (old_insns_match_p): Check REG_EH_REGION notes for calls.
5469         * basic-block.h (flow_find_cross_jump,
5470         flow_find_head_matching_sequence): Declare functions.
5471
5472 2010-04-14  Jason Merrill  <jason@redhat.com>
5473
5474         PR c++/36625
5475         * c-common.c (attribute_takes_identifier_p): New fn.
5476         * c-common.h: Declare it.
5477
5478 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5479
5480         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
5481         splitter condition.
5482         (*udivmod<mode>4): Ditto.
5483
5484 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5485
5486         * config/i386/i386.md (maxmin_int): Rename code attribute from
5487         maxminiprefix and update all users.
5488         (maxmin_float): Ditto from maxminfprefix.
5489         (logic): Ditto from logicprefix.
5490         (absneg_mnemonic): Ditto from absnegprefix.
5491         * config/i386/mmx.md: Update all users of maxminiprefix,
5492         maxminfprefix and logicprefix for rename.
5493         * config/i386/sse.md: Ditto.
5494         * config/i386/sync.md (sync_<code><mode>): Update for
5495         logicprefix rename.
5496
5497 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5498
5499         PR 42966
5500         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
5501         warnings converted to errors.
5502
5503 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5504
5505         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
5506         used insn_type variable.
5507         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
5508         to avoid set-but-not-used warning.
5509
5510 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5511
5512         * df-core.c (df_ref_debug): Change format string placeholder
5513         from 0x%x to %#x.
5514         * dwarf2asm.c (dw2_asm_output_data_raw,
5515         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
5516         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
5517         * dwarf2out.c (output_cfi, output_cfi_directive,
5518         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
5519         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
5520         Ditto.
5521         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
5522         * print-rtl.c (print_rtx): Ditto.
5523
5524 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
5525
5526         PR middle-end/42694
5527         * builtins.c (expand_builtin_pow_root): New function to expand pow
5528         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
5529         series of sqrt and cbrt calls under -ffast-math.
5530         (expand_builtin_pow): Call it.
5531
5532 2010-04-14  Michael Matz  <matz@suse.de>
5533
5534         PR tree-optimization/42963
5535         * tree-cfg.c (touched_switch_bbs): New static variable.
5536         (group_case_labels_stmt): New function broken out from ...
5537         (group_case_labels): ... here, use the above.
5538         (start_recording_case_labels): Allocate touched_switch_bbs.
5539         (end_recording_case_labels): Deallocate it, call
5540         group_case_labels_stmt.
5541         (gimple_redirect_edge_and_branch): Remember index of affected BB.
5542
5543 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5544
5545         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
5546         from insn template.
5547
5548 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5549
5550         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
5551
5552 2010-04-13  Jan Hubicka  <jh@suse.cz>
5553
5554         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
5555         of optimized out static functions.
5556         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
5557         cost computation.  Also sanity check for overflows.
5558         (update_caller_keys): Update cgraph_edge_badness call; properly
5559         update fibheap and sanity check that it is up to date.
5560         (add_new_edges_to_heap): Update cgraph_edge_badness.
5561         (cgraph_decide_inlining_of_small_function): Likewise;
5562         add sanity checking that badness in heap is up to date;
5563         improve dumping of reason; Update badness of calls to the
5564         offline copy of function currently inlined; dump badness
5565         of functions not inlined because of unit growth limits.
5566
5567 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
5568
5569         PR middle-end/32628
5570         * c-common.c (pointer_int_sum): Disregard overflow that occured only
5571         because of sign-extension change when converting to sizetype here...
5572         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
5573
5574         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
5575         the folding to constants.  Remove redundant final conversion.
5576         (fold_binary) <associate>: Do not associate if the re-association of
5577         constants alone overflows.
5578         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
5579         to the end of the list.
5580         (multiple_of_p) <COND_EXPR>: New case.
5581
5582 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5583
5584         * opt-functions.awk (opt_sanitized_name): New.
5585         (opt_enum): New.
5586         * optc-gen.awk: Use it
5587         * opth-gen.awk: Use it.
5588
5589 2010-04-13  Martin Jambor  <mjambor@suse.cz>
5590
5591         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
5592         (sra_modify_assign): Delete stmts loading dead data even if racc has no
5593         children.  Call replace_uses_with_default_def_ssa_name to handle
5594         SSA_NAES on lhs.
5595
5596 2010-04-13  Michael Matz  <matz@suse.de>
5597
5598         PR middle-end/43730
5599         * builtins.c (expand_builtin_interclass_mathfn): Also create
5600         a register if the predicate doesn't match.
5601
5602 2010-04-13  Diego Novillo  <dnovillo@google.com>
5603
5604         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
5605         * c-pch.c: Include timevar.h.
5606         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
5607         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
5608         * ggc-common.c: Include timevar.h.
5609         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
5610         * timevar.def (TV_PCH_SAVE): Define.
5611         (TV_PCH_CPP_SAVE): Define.
5612         (TV_PCH_PTR_REALLOC): Define.
5613         (TV_PCH_PTR_SORT): Define.
5614         (TV_PCH_RESTORE): Define.
5615         (TV_PCH_CPP_RESTORE): Define.
5616
5617 2010-04-13  Michael Matz  <matz@suse.de>
5618
5619         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
5620         into MINUS_EXPRs.
5621         (can_reassociate_p): New function.
5622         (break_up_subtract_bb, reassociate_bb): Use it.
5623
5624 2010-04-13  Richard Guenther  <rguenther@suse.de>
5625
5626         PR bootstrap/43737
5627         * builtins.c (c_readstr): Fix assert.
5628
5629 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
5630
5631         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
5632         when generating cltd insn.
5633
5634         (*ashl<mode>3_1): Remove special handling for register operand 2.
5635         (*ashlsi3_1_zext): Ditto.
5636         (*ashlhi3_1): Ditto.
5637         (*ashlhi3_1_lea): Ditto.
5638         (*ashlqi3_1): Ditto.
5639         (*ashlqi3_1_lea): Ditto.
5640         (*<shiftrt_insn><mode>3_1): Ditto.
5641         (*<shiftrt_insn>si3_1_zext): Ditto.
5642         (*<shiftrt_insn>qi3_1_slp): Ditto.
5643         (*<rotate_insn><mode>3_1): Ditto.
5644         (*<rotate_insn>si3_1_zext): Ditto.
5645         (*<rotate_insn>qi3_1_slp): Ditto.
5646
5647 2010-04-13  Richard Guenther  <rguenther@suse.de>
5648
5649         * tree-ssa-structalias.c (callused_id): Remove.
5650         (call_stmt_vars): New.
5651         (get_call_vi): Likewise.
5652         (lookup_call_use_vi): Likewise.
5653         (lookup_call_clobber_vi): Likewise.
5654         (get_call_use_vi): Likewise.
5655         (get_call_clobber_vi): Likewise.
5656         (make_transitive_closure_constraints): Likewise.
5657         (handle_const_call): Adjust to do per-call call-used handling.
5658         (handle_pure_call): Likewise.
5659         (find_what_var_points_to): Remove general callused handling.
5660         (init_base_vars): Likewise.
5661         (init_alias_vars): Initialize call_stmt_vars.
5662         (compute_points_to_sets): Process call-used and call-clobbered
5663         vars for call statements.
5664         (delete_points_to_sets): Free call_stmt_vars.
5665
5666 2010-04-13  Richard Guenther  <rguenther@suse.de>
5667
5668         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
5669         Only add RW dependence for dependence distance zero.
5670         Adjust maximal vectorization factor according to dependences.
5671         Move alignment handling ...
5672         (vect_find_same_alignment_drs): ... here.  New function.
5673         (vect_analyze_data_ref_dependences): Adjust.
5674         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
5675         (vect_analyze_data_refs): Adjust minimal vectorization factor
5676         according to data references.
5677         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
5678         dependences before determining the vectorization factor.
5679         Analyze alignment after determining the vectorization factor.
5680         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
5681         dependences before alignment.
5682         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
5683         Adjust prototype.
5684         (vect_analyze_data_refs): Likewise.
5685         (MAX_VECTORIZATION_FACTOR): New define.
5686
5687 2010-04-13  Duncan Sands  <baldrick@free.fr>
5688
5689         * except.h (lang_eh_type_covers): Remove.
5690         * except.c (lang_eh_type_covers): Likewise.
5691
5692 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5693             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5694
5695         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
5696         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
5697         UNITS_PER_LONG where it is ABI relevant.
5698         (s390_return_addr_rtx): Likewise.
5699         (s390_back_chain_rtx): Likewise.
5700         (s390_frame_area): Likewise.
5701         (s390_frame_info): Likewise.
5702         (s390_initial_elimination_offset): Likewise.
5703         (save_gprs): Likewise.
5704         (s390_emit_prologue): Likewise.
5705         (s390_emit_epilogue): Likewise.
5706         (s390_function_arg_advance): Likewise.
5707         (s390_function_arg): Likewise.
5708         (s390_va_start): Likewise.
5709         (s390_gimplify_va_arg): Likewise.
5710         (s390_function_profiler): Likewise.
5711         (s390_optimize_prologue): Likewise.
5712         (s390_rtx_costs): Likewise.
5713         (s390_secondary_reload): Likewise.
5714         (s390_promote_function_mode): Likewise.
5715         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
5716         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
5717         registers available.
5718         (s390_unwind_word_mode): New function.
5719         (s390_function_value): Split 64 bit values into register pair if
5720         used as return value.
5721         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
5722         function call parameters.  Handle parallels.
5723         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
5724         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
5725         (DWARF_CIE_DATA_ALIGNMENT): New macro.
5726         (s390_expand_setmem): Remove unused variable src_addr.
5727         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
5728         deal with 64 bit registers.
5729         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
5730         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
5731         (UNITS_PER_LONG): New macro.
5732         * libjava/include/s390-signal.h: Define extended ucontext
5733         structure containing the upper halfs of the 64 bit registers.
5734
5735 2010-04-13  Simon Baldwin  <simonb@google.com>
5736
5737         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
5738
5739 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
5740
5741         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
5742         rvalue on the RHS if the LHS is of a non-renamable type.
5743         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
5744
5745 2010-04-13  Matthias Klose  <doko@ubuntu.com>
5746
5747         * gcc.c (cc1_options): Handle -iplugindir before processing
5748         the cc1 spec. Only add -iplugindir once.
5749         (cpp_unique_options): Add -iplugindir option if -fplugin* options
5750         found.
5751         * common.opt (iplugindir): Remove `Separate' property, initialize.
5752         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
5753         option.
5754         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
5755         (distclean): Remove plugin dir.
5756         * doc/invoke.texi: Document -iplugindir.
5757
5758 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
5759
5760         * doc/plugins.texi (Loading Plugins): Document short
5761         -fplugin=foo option.
5762         (Plugin API): Mention default_plugin_dir_name function.
5763
5764         * gcc.c (find_file_spec_function): Add new declaration.
5765         (static_spec_func): Use it for "find-file".
5766         (find_file_spec_function): Add new function.
5767         (cc1_options): Add -iplugindir option if -fplugin* options found.
5768
5769         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
5770
5771         * plugin.c (add_new_plugin): Updated comment, and handle short
5772         plugin name.
5773         (default_plugin_dir_name): Added new function.
5774
5775         * common.opt (iplugindir): New option to set the plugin directory.
5776
5777 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
5778
5779         * config/i386/i386.md (any_rotate): New code iterator.
5780         (rotate_insn): New code attribute.
5781         (rotate): Ditto.
5782         (SWIM124): New mode iterator.
5783         (<rotate_insn>ti3): New expander.
5784         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
5785         any_rotate code iterator.
5786         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
5787         using any_rotate code iterator and SWIM124 mode iterator.
5788         (ix86_rotlti3): New insn_and_split pattern.
5789         (ix86_rotrti3): Ditto.
5790         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
5791         ix86_rotl{di,ti}3 patterns.
5792         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
5793         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
5794         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
5795         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
5796         code iterator and SWI mode iterator.
5797         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
5798         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
5799         code iterator.
5800         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
5801         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
5802         (bswap rotatert splitter): Add splitter.
5803         (bswap splitter): Macroize splitter using any_rotate code iterator.
5804         Add insn predicate to split only for TARGET_USE_XCHGB or when
5805         optimizing function for size.
5806
5807 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5808
5809         * config/pa/pa.c (emit_move_sequence): Remove use of
5810         deleted variable flag_argument_noalias.
5811
5812 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5813
5814         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
5815         configurations.
5816         Add to unsupported targets list.
5817         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
5818         sparc*-sun-solaris2.[567]* from target lists.
5819         * configure: Regenerate.
5820         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
5821         removal.
5822         Remove Solaris 7 patch references.
5823         (Specific, sparc-sun-solaris2.7): Removed.
5824         (sparc-sun-solaris2*): Update Solaris 7 example.
5825         (sparc64-*-solaris2*): Likewise.
5826
5827 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5828
5829         * config.build (alpha*-dec-osf4*): Remove.
5830         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
5831         of obsolete configurations.
5832         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
5833         support.
5834         * config/alpha/t-osf4: Renamed to ...
5835         * config/alpha/t-osf5: ... this.
5836         * config/alpha/osf.h: Renamed to ...
5837         * config/alpha/osf5.h: ... this.
5838         Merged old osf5.h contents.
5839         Update comments.
5840         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
5841         (EXTRA_SPECS): Removed.
5842         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
5843         reflect removal of Tru64 UNIX V4.0/V5.0 support.
5844         Document that.
5845
5846 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5847
5848         * doc/contrib.texi (Contributors, Rainer Orth): Update.
5849
5850 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
5851
5852         PR/43702
5853         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
5854         __thiscall convention.
5855
5856 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5857
5858         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
5859         orig_base.
5860         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
5861
5862 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5863
5864         * function.c (assign_parms_initialize_all): Add unused attribute
5865         to fntype.
5866
5867 2010-04-12  Richard Guenther  <rguenther@suse.de>
5868
5869         * gsstruct.def (GSS_CALL): New.
5870         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
5871         * gimple.h: Include tree-ssa-alias.h.
5872         (struct gimple_statement_call): New.
5873         (union gimple_statement_struct_d): Add gimple_call member.
5874         (gimple_call_reset_alias_info): Declare.
5875         (gimple_call_use_set): New function.
5876         (gimple_call_clobber_set): Likewise.
5877         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
5878         * gimple.c (gimple_call_reset_alias_info): New function.
5879         (gimple_build_call_1): Call it.
5880         * lto-streamer-in.c (input_gimple_stmt): Likewise.
5881         * tree-inline.c (remap_gimple_stmt): Likewise.
5882         (expand_call_inline): Remove callused handling.
5883         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
5884         * tree-dfa.c (dump_variable): Likewise.
5885         * tree-parloops.c (parallelize_loops): Likewise.
5886         * tree-ssa.c (init_tree_ssa): Likewise.
5887         (delete_tree_ssa): Likewise.
5888         * tree-flow-inline.h (is_call_used): Remove.
5889         * tree-flow.h (struct gimple_df): Remove callused member.
5890         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
5891         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
5892         (ref_maybe_used_by_call_p_1): Simplify.
5893         (call_may_clobber_ref_p_1): Likewise.
5894         * tree-ssa-structalias.c (compute_points_to_sets): Set
5895         the call stmt used and clobbered sets.
5896         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
5897         (find_tail_calls): Verify the tail call.
5898
5899 2010-04-12  Richard Guenther  <rguenther@suse.de>
5900
5901         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
5902         single-iteration always-inline inlining.
5903         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
5904         (cgraph_decide_inlining): Do not handle always-inline specially.
5905         (try_inline): Remove always-inline cycle detection special case.
5906         Do not recurse on always-inlines.
5907         (cgraph_early_inlining): Do not iterate if not optimizing.
5908         (cgraph_gate_early_inlining): remove.
5909         (pass_early_inline): Run unconditionally.
5910         (gate_cgraph_decide_inlining): New function.
5911         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
5912         not inlining or optimizing.
5913         (cgraph_decide_inlining_of_small_functions): Also consider
5914         always-inline functions.
5915         (cgraph_default_inline_p): Return true for nodes which should
5916         disregard inline limits.
5917         (estimate_function_body_sizes): Assume zero size and time for
5918         nodes which are marked as disregarding inline limits.
5919         (cgraph_decide_recursive_inlining): Do not perform recursive
5920         inlining on always-inline nodes.
5921
5922 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
5923
5924         PR bootstrap/43699
5925         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
5926         for exprs satisfying handled_component_p.
5927
5928 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
5929
5930         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
5931         non-constant aggregate elements.
5932
5933         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
5934         is a real initialization.
5935
5936 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
5937
5938         PR c/36774
5939         * c-decl.c (start_function): Move forward check for nested function.
5940
5941 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5942
5943         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
5944         * config/sh/sh.c: Include reload.h.
5945         (sh_legitimize_reload_address): New.
5946         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
5947         sh_legitimize_reload_address.
5948
5949 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
5950
5951         * config/sh/sh.md (*movqi_pop): New insn pattern.
5952         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
5953
5954 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
5955
5956         * config/i386/i386.md (any_shiftrt): New code iterator.
5957         (shiftrt_insn): New code attribute.
5958         (shiftrt): Ditto.
5959         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
5960         using any_shiftrt code iterator.
5961         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
5962         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
5963         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
5964         pattern from corresponding peephole2 patterns.
5965         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
5966         using any_shiftrt code iterator.
5967         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
5968         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
5969         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
5970         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
5971         *{ashr,lshr}<mode>3_cmp_zext.
5972         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
5973
5974 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
5975
5976         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
5977         scratch register.
5978         (*lshr<mode>3_cconly): Ditto.
5979
5980 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
5981
5982         * config/i386/i386.md (lshr<mode>3): Macroize expander from
5983         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
5984         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
5985         pattern from *lshr{di,ti}3_1 and corresponding splitters using
5986         DWI mode iterator.
5987         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
5988         from corresponding peephole2 patterns.
5989         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
5990         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
5991         and *lshrdi3_1_rex64 using SWI mode iterator.
5992         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
5993         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
5994         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
5995         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
5996         and *lshrdi3_cmp_rex64 using SWI mode iterator.
5997         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
5998         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
5999         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
6000         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
6001         SWI mode iterator.
6002
6003 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
6004
6005         * config/i386/i386.md (ashr<mode>3): Macroize expander from
6006         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
6007         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6008         pattern from *ashr{di,ti}3_1 and corresponding splitters using
6009         DWI mode iterator.
6010         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
6011         from corresponding peephole2 patterns.
6012         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
6013         (ashrsi3_cvt): Rename from ashrsi3_31.
6014         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
6015         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
6016         and x86_64_shift_adj_3 using SWI48 mode iterator.
6017         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
6018         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
6019         and *ashrdi3_1_rex64 using SWI mode iterator.
6020         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
6021         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
6022         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
6023         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
6024         and *ashrdi3_cmp_rex64 using SWI mode iterator.
6025         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
6026         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
6027         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
6028         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
6029         SWI mode iterator.
6030         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
6031         * config/i386/i386.c (ix86_split_ashr): Update for renamed
6032         x86_shift<mode>_adj_3 expanders.
6033
6034 2010-04-10  Wei Guozhi  <carrot@google.com>
6035
6036         PR target/42601
6037         * config/arm/arm.c (arm_pic_static_addr): New function.
6038         (legitimize_pic_address): Call arm_pic_static_addr when it detects
6039         a static symbol.
6040         (arm_output_addr_const_extra): Output expression for new pattern.
6041         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
6042
6043 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
6044
6045         * ira-costs.c (record_reg_classes): Ignore alternatives that are
6046         not enabled.
6047
6048         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
6049         * web.c: Include "insn-config.h" and "recog.h".
6050         (union_match_dups): New function.
6051         (web_main): Call it.
6052         (union_defs): Don't try to recognize match_dups.
6053
6054         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
6055         if doing so would replace the entire pattern.
6056
6057 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
6058
6059         PR target/43707
6060         PR target/43709
6061         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
6062         and splitter pattern.  Change splitter operand 1 predicate to
6063         nonmemory_operand.
6064
6065 2010-04-09  Martin Jambor  <mjambor@suse.cz>
6066
6067         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
6068         lattices are addresses of CONST_DECLs with the same initial value.
6069         (ipcp_print_all_lattices): Print values of CONST_DECLs.
6070         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
6071
6072 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
6073             Bernd Schmidt  <bernds@codesourcery.com>
6074
6075         * loop-invariant.c (replace_uses): New static function.
6076         (move_invariant_reg): Use it to ensure we can replace the uses.
6077
6078 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
6079
6080         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
6081         function template.
6082         (picochip_override_options): Enable section anchors only above -O1.
6083         (picochip_reorg): Fixed a couple of build warnings.
6084
6085 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6086
6087         * configure.ac (plugin -rdynamic test): Log result.
6088         * configure: Regenerate.
6089         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
6090         (RDYNAMIC_SPEC): Define.
6091         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
6092
6093 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6094
6095         * configure.ac: Determine Sun ld version numbers.
6096         (comdat_group): Restrict GNU ld version checks to gld.
6097         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
6098         (enable_comdat): Support --enable-comdat.
6099         * configure: Regenerate.
6100         * doc/install.texi (Configuration): Document --enable-comdat.
6101
6102 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6103
6104         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
6105         * config/sol2-gld.h: ... here.
6106         * config.gcc (sparc*-*-solaris2*): Reflect this.
6107         (i[34567]86-*-solaris2*): Use it.
6108
6109 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
6110
6111         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
6112         setup_clocks_p.
6113         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
6114
6115 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6116
6117         PR 42965
6118         * diagnostic.c (diagnostic_initialize): Initialize
6119         some_warnings_are_errors.
6120         (diagnostic_finish): New.
6121         (diagnostic_action_after_output): Call it before exiting.
6122         (diagnostic_report_diagnostic): Do not print message here. Set
6123         some_warnings_are_errors.
6124         * diagnostic.h (diagnostic_context): Delete
6125         issue_warnings_are_errors_message. Add some_warnings_are_errors.
6126         (diagnostic_finish): Declare.
6127         * toplev.c (toplev_main): Call it before exit.
6128
6129 2010-04-09  Jason Merrill  <jason@redhat.com>
6130
6131         PR c++/42623
6132         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
6133         for incomplete type.
6134
6135         PR c++/41788
6136         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
6137         based on a warning flag.
6138
6139 2010-04-09  Richard Guenther  <rguenther@suse.de>
6140
6141         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
6142
6143 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
6144
6145         PR bootstrap/43684
6146         * varasm.c (default_assemble_visibility): Wrap vars that are
6147         set, but unused, by targets without GAS.
6148         * config/rs6000/rs6000.c (paired_emit_vector_compare):
6149         Remove set, but unused, vars.
6150         (rs6000_legitimize_tls_address): Likewise.
6151         (altivec_expand_dst_builtin): Likewise.
6152         * config/darwin.c (machopic_classify_symbol): Likewise.
6153         (machopic_indirection_name): Likewise.
6154
6155 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
6156
6157         * config/i386/i386.md (DWI): New mode iterator.
6158         (S): New mode attribute.
6159         (shift_operand): Ditto.
6160         (shift_immediate_operand): Ditto.
6161         (ashl_input_operand): Ditto.
6162         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
6163         using SDWIM mode iterator.
6164         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6165         pattern from *ashl{di,ti}3_1 and corresponding splitters using
6166         DWI mode iterator.
6167         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
6168         from corresponding peephole2 patterns.
6169         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
6170         and x86_64_shift_adj_1 using SWI48 mode iterator.
6171         (x86_shift<mode>_adj_2): Ditto.
6172         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
6173         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
6174         using SWI48 mode iterator.
6175         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
6176         *ashldi3_cmp_rex64 using SWI mode iterator.
6177         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
6178         *ashldi3_cconly_rex64 using SWI mode iterator.
6179         * config/i386/i386.c (ix86_split_ashl): Update for renamed
6180         x86_shift<mode>_adj_{1,2}.
6181         (ix86_split_ashr): Ditto.
6182         (ix86_split_lshr): Ditto.
6183
6184 2010-04-09  Richard Guenther  <rguenther@suse.de>
6185
6186         * target.h (builtin_conversion): Pass in input and output types.
6187         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
6188         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
6189         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
6190         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
6191
6192         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
6193         Handle AVX modes.
6194         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
6195
6196 2010-04-09  Richard Guenther  <rguenther@suse.de>
6197
6198         PR target/43152
6199         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
6200
6201 2010-04-09  Richard Guenther  <rguenther@suse.de>
6202
6203         * tree-vectorizer.h (struct _stmt_vec_info): Document
6204         that vectype is the type of the LHS.
6205         (supportable_widening_operation, supportable_narrowing_operation):
6206         Get both input and output vector types as arguments.
6207         (vect_is_simple_use_1): Declare.
6208         (get_same_sized_vectype): Likewise.
6209         * tree-vect-loop.c (vect_determine_vectorization_factor):
6210         Set STMT_VINFO_VECTYPE to the vector type of the def.
6211         (vectorizable_reduction): Adjust.
6212         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
6213         Adjust.  Specify the output vector type.
6214         (vect_pattern_recog_1): Adjust.
6215         * tree-vect-stmts.c (get_same_sized_vectype): New function.
6216         (vectorizable_call): Adjust.
6217         (vectorizable_conversion): Likewise.
6218         (vectorizable_operation): Likewise.
6219         (vectorizable_type_demotion): Likewise.
6220         (vectorizable_type_promotion): Likewise.
6221         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
6222         the def.
6223         (vect_is_simple_use_1): New function.
6224         (supportable_widening_operation): Get both input and output
6225         vector types.
6226         (supportable_narrowing_operation): Likewise.
6227         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
6228
6229 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
6230
6231         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
6232         __thiscall and _thiscall as predefined macros.
6233         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
6234         thiscall attribute handling.
6235         (ix86_comp_type_attributes): Likewise.
6236         (ix86_function_regparm): Likewise.
6237         (ix86_return_pops_args): Likewise.
6238         (init_cumulative_args): Likewise.
6239         (find_drap_reg): Likewise.
6240         (ix86_static_chain): Likewise.
6241         (x86_this_parameter): Likewise.
6242         (x86_output_mi_thunk): Likewise.
6243         (ix86_attribute_table): Add description for thiscall attribute.
6244         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
6245         * doc/extend.texi: Add documentation for thiscall.
6246
6247 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6248
6249         PR c++/28584
6250         * c.opt (Wint-to-pointer-cast): Available in C++.
6251         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
6252
6253 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
6254
6255         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
6256         * calls.c (expand_call): Pass the function type to aggregate_value_p.
6257         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
6258         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
6259         function type instead.  Reorder and simplify checks.
6260
6261         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
6262
6263 2010-04-08  Jing Yu  <jingyu@google.com>
6264             Zdenek Dvorak  <ook@ucw.cz>
6265
6266         PR tree-optimization/42720
6267         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
6268         loop unswitch conditions here from ...
6269         (tree_unswitch_single_loop): ... here.
6270
6271 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
6272
6273         * tree-if-conv.c: Fix comments and simplify logic.
6274
6275 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
6276
6277         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
6278         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
6279         (main_tree_if_conversion): Update call to tree_if_conversion.
6280
6281 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6282
6283         PR 42485
6284         * doc/invoke.texi (-b,-V): Delete.
6285         * doc/tm.texi: Do not mention -b.
6286         * gcc.c (display_help): Delete -b and -V.
6287         (process_command): Delete -b and -V.
6288         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
6289
6290 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
6291             Wolfgang Gellerich  <gellerich@de.ibm.com>
6292
6293         Implement target hook for loop unrolling
6294         * target.h (loop_unroll_adjust): Add a new target hook function.
6295         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
6296         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
6297         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
6298         (s390_loop_unroll_adjust): Implement the new target hook for s390.
6299         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
6300         target hook.
6301         (decide_unroll_stupid): Likewise.
6302
6303 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6304
6305         PR target/43643
6306         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
6307
6308 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6309
6310         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
6311         (Specific, *-*-solaris2*): Likewise.
6312         Don't prefer Sun as over GNU as.
6313
6314 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
6315
6316         * config/s390/s390.c (override_options): Adjust the z10 defaults
6317         for max-unroll-times, max-completely-peeled-insns
6318         and max-completely-peel-times.
6319
6320 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6321
6322         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
6323         instructions for z10.
6324         (s390_expand_setmem): Likewise.
6325         (s390_expand_cmpmem): Likewise.
6326
6327 2010-04-08  Richard Guenther  <rguenther@suse.de>
6328
6329         PR tree-optimization/43679
6330         * tree-ssa-pre.c (eliminate): Only propagate copies.
6331
6332 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
6333
6334         PR bootstrap/43681
6335         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
6336         set but not used variable warning.
6337
6338 2010-04-08  Wei Guozhi  <carrot@google.com>
6339
6340         PR target/41653
6341         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
6342         (arm_size_rtx_costs): Call the new function when optimized for size.
6343
6344 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
6345
6346         PR debug/43670
6347         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
6348         op0 is not a MEM, just return NULL instead of assertion
6349         failure.
6350         (discover_nonconstant_array_refs): Don't walk debug stmts.
6351
6352 2010-04-08  Doug Kwan  <dougkwan@google.com>
6353
6354         * configure.ac: Recognize gold and do not use its version number
6355         to test ld features.
6356         * configure: Regenerate.
6357
6358 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
6359
6360         PR middle-end/40815
6361         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
6362         (negate_value): Move code to push elements to broken_up_substracts ...
6363         (eliminate_plus_minus_pair): ... here.  Push operands that have no
6364         negative pair to plus_negates.
6365         (repropagate_negates, init_reassoc, fini_reassoc): Update.
6366
6367 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6368
6369         * doc/install.texi (Configuration): Move description of
6370         --enable-lto, --with-libelf*, --enable-gold from Java section to
6371         general section.
6372
6373         * doc/generic.texi (Working with declarations)
6374         (Function Properties, C and C++ Trees): Fix typos.
6375         * doc/sourcebuild.texi (Top Level): Likewise.
6376
6377 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
6378
6379         PR c/18624
6380         * tree.h (DECL_READ_P): Define.
6381         (struct tree_decl_common): Add decl_read_flag.
6382         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
6383         a set but not used warning.
6384         (merge_decls): Merge DECL_READ_P flag.
6385         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
6386         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
6387         * c-common.c (handle_used_attribute, handle_unused_attribute):
6388         Likewise.
6389         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
6390         New prototypes.
6391         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
6392         New functions.
6393         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
6394         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
6395         c_parser_binary_expression, c_parser_cast_expression,
6396         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
6397         Call default_function_array_read_conversion instead of
6398         default_function_array_conversion where needed.
6399         (c_parser_unary_expression, c_parser_conditional_expression,
6400         c_parser_postfix_expression_after_primary, c_parser_initelt):
6401         Likewise.  Call mark_exp_read where needed.
6402         (c_parser_statement_after_labels, c_parser_asm_operands,
6403         c_parser_typeof_specifier, c_parser_sizeof_expression,
6404         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
6405         where needed.
6406         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
6407         New.
6408         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
6409         (warn_unused_but_set_parameter): Default to warn_unused
6410         && extra_warnings.
6411         * doc/invoke.texi: Document -Wunused-but-set-variable and
6412         -Wunused-but-set-parameter.
6413
6414         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
6415         used count variable.
6416         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
6417         when operandN variables aren't used in the body of the expander
6418         or splitter.
6419         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
6420         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
6421         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
6422         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
6423         FOR_EACH_IMM_USE_ON_STMT): Likewise.
6424         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
6425         * tree.c (PROCESS_ARG): Likewise.
6426
6427 2010-04-07  Simon Baldwin  <simonb@google.com>
6428
6429         * diagnostic.h (diagnostic_override_option_index): New macro to
6430         set a diagnostic's option_index.
6431         * c-tree.h (c_cpp_error): Add warning reason argument.
6432         * opts.c (_warning_as_error_callback): New.
6433         (register_warning_as_error_callback): Store callback for
6434         warnings enabled via enable_warning_as_error.
6435         (enable_warning_as_error): Call callback, minor code tidy.
6436         * opts.h (register_warning_as_error_callback): Declare.
6437         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
6438         response to -Werror=.
6439         (c_common_init_options): Register warning_as_error_callback in opts.c.
6440         * common.opt: Add -Wno-cpp option.
6441         * c-common.c (struct reason_option_codes_t): Map cpp warning
6442         reason codes to gcc option indexes.
6443         * (c_option_controlling_cpp_error): New function, lookup the gcc
6444         option index for a cpp warning reason code.
6445         * (c_cpp_error): Add warning reason argument, call
6446         c_option_controlling_cpp_error for diagnostic_override_option_index.
6447         * doc/invoke.texi: Document -Wno-cpp.
6448
6449 2010-04-07  Richard Guenther  <rguenther@suse.de>
6450
6451         * ipa-reference.c (mark_load): Use get_base_address.
6452         (mark_store): Likewise.
6453
6454         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
6455         inserting GIMPLE_NOPs into the IL.
6456         * tree-ssa-structalias.c (get_constraint_for_component_ref):
6457         Explicitly strip handled components and indirect references.
6458
6459         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
6460         folding address expressions.
6461         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
6462         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
6463         operand_equal_p to compare decls.
6464         (ptr_deref_may_alias_decl_p): Likewise.
6465         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
6466         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
6467         Handle reversed comparison ops.
6468         * tree-sra.c (asm_visit_addr): Use get_base_address.
6469         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
6470         * ipa-reference.c (mark_address): Use get_base_address.
6471
6472 2010-04-07  Richard Guenther  <rguenther@suse.de>
6473
6474         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
6475         Propagate constants everywhere.
6476
6477 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
6478
6479         PR debug/43516
6480         * tree.c (MAX_INT_CACHED_PREC): Define.
6481         (nonstandard_integer_type_cache): New array.
6482         (build_nonstandard_integer_type): Cache results for precision
6483         <= MAX_INT_CACHED_PREC.
6484
6485 2010-04-07  Richard Guenther  <rguenther@suse.de>
6486
6487         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
6488         -fargument-noalias-global, -fargument-noalias-anything): Remove.
6489         * common.opt: Likewise.
6490         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
6491         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
6492         (nonoverlapping_memrefs_p): Likewise.
6493         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6494         * opts.c (common_handle_option): Handle OPT_fargument_alias,
6495         OPT_fargument_noalias, OPT_fargument_noalias_anything and
6496         OPT_fargument_noalias_global for backward compatibility.
6497
6498 2010-04-07  Richard Guenther  <rguenther@suse.de>
6499
6500         PR tree-optimization/43270
6501         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
6502         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
6503         * tree-ssa-pre.c (phi_translate_1): Adjust.
6504         (fully_constant_expression): Split out vn_reference handling to ...
6505         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
6506         Fold reads from constant strings.
6507         (vn_reference_lookup): Handle fully constant references.
6508         (vn_reference_lookup_pieces): Likewise.
6509         * Makefile.in (expmed.o-warn): Add -Wno-error.
6510
6511 2010-04-07  Martin Jambor  <mjambor@suse.cz>
6512
6513         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
6514
6515 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
6516
6517         PR driver/41594
6518         * gcc.c: Add -static-libstdc++ to list of recognized options.
6519
6520 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6521
6522         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
6523
6524 2010-04-07  Richard Guenther  <rguenther@suse.de>
6525
6526         PR middle-end/42617
6527         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
6528         bases build simple mem attributes to retain points-to information.
6529
6530 2010-04-07  Richard Guenther  <rguenther@suse.de>
6531
6532         PR middle-end/42617
6533         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
6534         preserve points-to related information.
6535
6536 2010-04-07  Richard Guenther  <rguenther@suse.de>
6537
6538         PR middle-end/42617
6539         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
6540         discard plain indirect references.
6541         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
6542         * tree.c (tree_nop_conversion): Likewise.
6543
6544 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
6545
6546         PR debug/43628
6547         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
6548
6549 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
6550
6551         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
6552         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
6553
6554 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6555
6556         * tree-if-conv.c: Fix indentation and comments.
6557
6558 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6559
6560         * tree-if-conv.c: Sort static functions in topological order.
6561
6562 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6563
6564         * tree-if-conv.c: Fix indentation and comments.
6565
6566 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6567
6568         PR middle-end/43519
6569         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
6570         lang_hooks.types.type_for_size instead of
6571         build_nonstandard_integer_type.
6572         When converting an unsigned type to signed, double its precision.
6573         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
6574         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
6575         (graphite_create_new_loop_guard): When ub + 1 wraps around,
6576         use lb <= ub.
6577
6578 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6579
6580         PR middle-end/43519
6581         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
6582         POINTER_PLUS_EXPR for pointer types.
6583
6584 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6585
6586         PR middle-end/43519
6587         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
6588         * graphite-clast-to-gimple.c: Include langhooks.h.
6589         (max_signed_precision_type): New.
6590         (max_precision_type): Takes two types as arguments.
6591         (precision_for_value): New.
6592         (precision_for_interval): New.
6593         (gcc_type_for_interval): New.
6594         (gcc_type_for_value): New.
6595         (gcc_type_for_clast_term): New.
6596         (gcc_type_for_clast_red): New.
6597         (gcc_type_for_clast_bin): New.
6598         (gcc_type_for_clast_expr): Split up into several functions.
6599         (gcc_type_for_clast_eq): Rewritten.
6600         (compute_bounds_for_level): New.
6601         (compute_type_for_level_1): New.
6602         (compute_type_for_level): New.
6603         (gcc_type_for_cloog_iv): Removed.
6604         (gcc_type_for_iv_of_clast_loop): Rewritten.
6605         (graphite_create_new_loop): Compute the lower and upper bound types
6606         with gcc_type_for_clast_expr.
6607         (graphite_create_new_loop_guard): Same.
6608         (find_cloog_iv_in_expr): Removed.
6609         (compute_cloog_iv_types_1): Removed.
6610         (compute_cloog_iv_types): Removed.
6611         (gloog): Do not call compute_cloog_iv_types.
6612         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
6613         GBB_CLOOG_IV_TYPES.
6614         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
6615         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
6616         (GBB_CLOOG_IV_TYPES): Removed.
6617
6618 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6619
6620         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
6621         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
6622         (detect_commutative_reduction): Same.
6623
6624 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6625
6626         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
6627         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
6628         argument.
6629         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
6630         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
6631         (rewrite_commutative_reductions_out_of_ssa): Same.
6632         * passes.c (execute_function_todo): Call verify_ssa for every pass
6633         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
6634         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
6635         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
6636         with an extra argument.
6637         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
6638         verify_ssa only when the extra argument is true.
6639         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
6640         with an extra argument.
6641         (tree_transform_and_unroll_loop): Same.
6642
6643 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6644
6645         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
6646         for all the passes of the LNO having LOOP_CLOSED_SSA.
6647         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
6648         * tree-loop-distribution.c (pass_loop_distribution): Same.
6649         * tree-pass.h (TODO_verify_loops): Removed.
6650         * tree-ssa-loop.c (pass_tree_loop_init): Same.
6651         (pass_lim): Same.
6652         (pass_tree_unswitch): Same.
6653         (pass_predcom): Same.
6654         (pass_vectorize): Same.
6655         (pass_linear_transform): Same.
6656         (pass_graphite_transforms): Same.
6657         (pass_iv_canon): Same.
6658         (pass_complete_unroll): Same.
6659         (pass_complete_unrolli): Same.
6660         (pass_parallelize_loops): Same.
6661         (pass_loop_prefetch): Same.
6662         (pass_iv_optimize): Same.
6663
6664 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
6665
6666         PR middle-end/32824
6667         * passes.c (init_optimization_passes): Move pass_lim before
6668         pass_copy_prop and pass_dce_loop.
6669
6670 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
6671
6672         PR target/43667
6673         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
6674         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
6675         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
6676         MULTI_* defines for 4 argument vpermil2p* builtins.
6677
6678 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
6679
6680         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
6681         * config/i386/i386.c (x86_maybe_negate_const_int): New.
6682         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
6683         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
6684         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
6685         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
6686         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
6687         Use x86_maybe_negate_const_int to output insn mnemonic.
6688         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
6689         check from instruction predicate.  Update comments.
6690         * config/i386/sync.md (sync_add<mode>): Use
6691         x86_maybe_negate_const_int to output insn mnemonic.
6692
6693 2010-04-06  Jan Hubicka  <jh@suse.cz>
6694
6695         PR tree-optimization/42906
6696         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
6697         IGNORE_SELF argument.  Set visited_control_parents for fully
6698         processed BBs.
6699         (find_obviously_necessary_stmts): Update call of
6700         mark_control_dependent_edges_necessary.
6701         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
6702
6703 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
6704
6705         * config/i386/i386.md: Remove comment about 'e' and 'E'
6706         operand modifier.
6707
6708 2010-04-06  Richard Guenther  <rguenther@suse.de>
6709
6710         PR tree-optimization/43627
6711         * tree-vrp.c (extract_range_from_unary_expr): Widenings
6712         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
6713         not varying.
6714
6715 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
6716
6717         * BASE-VER: Change to 4.6.0.
6718
6719         PR target/43638
6720         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
6721         handling.
6722
6723 2010-04-06  Richard Guenther  <rguenther@suse.de>
6724
6725         PR middle-end/43661
6726         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
6727
6728 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6729
6730         * doc/invoke.texi (Optimize Options): Document that LTO
6731         won't remove object access purely due to incompatible
6732         declarations.
6733
6734 2010-04-04  Matthias Klose  <doko@ubuntu.com>
6735
6736         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
6737         Initialize variable.
6738
6739 2010-04-03  Richard Guenther  <rguenther@suse.de>
6740
6741         PR middle-end/42509
6742         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
6743         require a non-NULL MEM_OFFSET.
6744
6745 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
6746
6747         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
6748         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
6749         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
6750         config/alpha/predicates.md, config/arm/arm.md,
6751         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
6752         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
6753         config/darwin9.h, config/darwin.c, config/darwin.h,
6754         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
6755         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
6756         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
6757         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
6758         config/mips/mips.md, config/mn10300/mn10300.c,
6759         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
6760         config/rs6000/aix.h, config/rs6000/dfp.md,
6761         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
6762         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
6763         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
6764         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
6765         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
6766         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
6767         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
6768         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
6769         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
6770         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
6771         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
6772         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
6773         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
6774         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
6775         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
6776         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
6777         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
6778         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
6779         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
6780         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
6781         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
6782         opt-functions.awk, opth-gen.awk, params.def, passes.c,
6783         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
6784         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
6785         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
6786         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
6787         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
6788         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
6789         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
6790         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
6791         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
6792         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
6793         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
6794         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
6795         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
6796         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
6797
6798 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6799
6800         PR other/43620
6801         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
6802         * aclocal.m4: Regenerate.
6803
6804 2010-04-02  Richard Guenther  <rguenther@suse.de>
6805
6806         PR tree-optimization/43629
6807         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
6808         if we have seen a constant value.
6809
6810 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
6811
6812         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
6813
6814 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
6815
6816         PR target/43469
6817         * arm.c (legitimize_tls_address): Adjust call to
6818         gen_tls_load_dot_plus_four.
6819         (arm_note_pic_base): New function.
6820         (arm_cannot_copy_insn_p): Use it.
6821         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
6822         constraint.
6823
6824 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6825
6826         PR bootstrap/43531
6827
6828         Revert:
6829         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6830
6831         * Makefile.in ($(out_object_file)): Depend on
6832         gt-$(basename $(notdir $(out_file))).h.
6833
6834 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
6835
6836         * config.gcc (lm32-*-rtems*): Add t-lm32.
6837
6838 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
6839
6840         * config.gcc: Add lm32-*-rtems*.
6841         * config/lm32/rtems.h: New file.
6842
6843 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
6844
6845         PR target/42609
6846         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
6847
6848 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
6849
6850         * dwarf2out.c (output_compilation_unit_header): For
6851         -gdwarf-4 use version 4 instead of version 3.
6852         (output_line_info): For version 4 and above emit additional
6853         maximum ops per insn header field.
6854         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
6855
6856         * dwarf2out.c (is_c_family, is_java): Remove.
6857         (lower_bound_default): New function.
6858         (add_bound_info, gen_descr_array_type_die): Use it.
6859
6860 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
6861
6862         PR debug/43325
6863         * dwarf2out.c (gen_variable_die): Allow debug info for variable
6864         re-declaration when it happens in a function.
6865
6866 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
6867
6868         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
6869         (cgraph_remove_function_insertion_hook): Same.
6870         (cgraph_call_function_insertion_hooks): Same.
6871
6872 2010-04-01  Richard Guenther  <rguenther@suse.de>
6873
6874         PR middle-end/43614
6875         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
6876         and TREE_THIS_VOLATILE.
6877         (copy_ref_info): Likewise.
6878         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
6879         * tree.c (build6_stat): Ignore side-effects of all but arg5
6880         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
6881         TARGET_MEM_REF.
6882
6883 2010-04-01  Richard Guenther  <rguenther@suse.de>
6884
6885         PR tree-optimization/43607
6886         * ipa-type-escape.c (check_call): Do not access non-existing
6887         arguments.
6888
6889 2010-04-01  Richard Guenther  <rguenther@suse.de>
6890
6891         PR middle-end/43602
6892         Revert
6893         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
6894                     Jack Howarth <howarth@bromo.med.uc.edu>
6895
6896         * tree-profile.c (tree_init_ic_make_global_vars): Make static
6897         variables TLS.
6898
6899 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6900
6901         * doc/install.texi (Prerequisites): Document libelf usability on
6902         IRIX 5/6 and Solaris 2.
6903         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
6904         Update GNU as, GNU ld requirements.
6905         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
6906         Document Sun Studio compiler download.
6907         Update and simplify as, ld recommendations.
6908         (Specific, *-*-solaris2.7): Note obsoletion, removal.
6909
6910 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6911
6912         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
6913         with_tune_32 to pentium4.
6914
6915 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
6916
6917         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
6918
6919 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6920
6921         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
6922         obsoletion, removal.
6923         Update IDO URL.
6924         Document GNU as requirement.
6925         Update configure requirements.
6926         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
6927         Recomment IRIX 6.5.18+.
6928         Document IDF/IDL requirement.
6929         Document GNU as requirement.
6930         Document GNU ld bootstrap failure.
6931         Remove freeware.sgi.com reference.
6932
6933 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6934
6935         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
6936         UNIX V4.0, V5.0 obsoletion, removal.
6937         Remove --with-gc=simple reference.
6938         Update VM requirements during bootstrap.
6939         Remove -oldas bootstrap description.
6940         Update binutils reference.
6941         Remove comparison failure note.
6942
6943 2010-03-31  Richard Guenther  <rguenther@suse.de>
6944             Zdenek Dvorak  <ook@ucw.cz>
6945             Sebastian Pop  <sebastian.pop@amd.com>
6946
6947         PR middle-end/43464
6948         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
6949         with multiple arguments.
6950         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
6951
6952 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
6953
6954         * graphite-dependences.c (print_pddr): Call print_pdr with an
6955         extra argument.
6956         * graphite-poly.c (debug_pdr): Add an extra argument for the
6957         verbosity level.
6958         (print_pdr): Same.
6959         (print_pbb_domain): Same.
6960         (print_pbb): Same.
6961         (print_scop_context): Same.
6962         (print_scop): Same.
6963         (print_cloog): Same.
6964         (debug_pbb_domain): Same.
6965         (debug_pbb): Same.
6966         (print_pdrs): Same.
6967         (debug_pdrs): Same.
6968         (debug_scop_context): Same.
6969         (debug_scop): Same.
6970         (debug_cloog): Same.
6971         (print_scop_params): Same.
6972         (debug_scop_params): Same.
6973         (print_iteration_domain): Same.
6974         (print_iteration_domains): Same.
6975         (debug_iteration_domain): Same.
6976         (debug_iteration_domains): Same.
6977         (print_scattering_function): Same.
6978         (print_scattering_functions): Same.
6979         (debug_scattering_function): Same.
6980         (debug_scattering_functions): Same.
6981         * graphite-poly.h (debug_pdr): Update declaration.
6982         (print_pdr): Same.
6983         (print_pbb_domain): Same.
6984         (print_pbb): Same.
6985         (print_scop_context): Same.
6986         (print_scop): Same.
6987         (print_cloog): Same.
6988         (debug_pbb_domain): Same.
6989         (debug_pbb): Same.
6990         (print_pdrs): Same.
6991         (debug_pdrs): Same.
6992         (debug_scop_context): Same.
6993         (debug_scop): Same.
6994         (debug_cloog): Same.
6995         (print_scop_params): Same.
6996         (debug_scop_params): Same.
6997         (print_iteration_domain): Same.
6998         (print_iteration_domains): Same.
6999         (debug_iteration_domain): Same.
7000         (debug_iteration_domains): Same.
7001         (print_scattering_function): Same.
7002         (print_scattering_functions): Same.
7003         (debug_scattering_function): Same.
7004         (debug_scattering_functions): Same.
7005
7006 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7007
7008         * graphite-poly.c (print_scattering_function_1): New.
7009         (print_scattering_function): Call it.
7010         (print_scop_params): Remove spaces at the end of lines.
7011         (print_cloog): New.
7012         (debug_cloog): New.
7013         * graphite-poly.h (print_cloog): Declared.
7014         (debug_cloog): Declared.
7015
7016 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7017
7018         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
7019         in loop->header.
7020         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
7021         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
7022         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
7023         to switch between adding the IV bump in loop->latch or in loop->header.
7024
7025 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7026
7027         * graphite-poly.c (print_scattering_function): Pretty print following
7028         the scoplib format.
7029         (print_pdr): Same.
7030         (print_pbb_domain): Same.
7031         (dump_gbb_cases): Same.
7032         (dump_gbb_conditions): Same.
7033         (print_pdrs): Same.
7034         (print_pbb): Same.
7035         (print_scop_params): Same.
7036         (print_scop_context): Same.
7037         (print_scop): Same.
7038         (print_pbb_body): New.
7039         (lst_indent_to): New.
7040         (print_lst): Start new lines with a #.
7041         * graphite-poly.h (pbb_bb): New.
7042         (pbb_index): Use pbb_bb.
7043         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
7044         disjuncts.
7045         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
7046
7047 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
7048
7049         * dwarf2out.c (size_of_die): For -gdwarf-4 use
7050         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
7051         and 0 instead of 1 for dw_val_class_flag.
7052         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
7053         dw_val_class_range_list, dw_val_class_loc_list,
7054         dw_val_class_lineptr and dw_val_class_macptr, use
7055         DW_FORM_flag_present for dw_val_class_flag and
7056         DW_FORM_exprloc for dw_val_class_loc.
7057         (output_die): For -gdwarf-4 print dw_val_class_loc
7058         size as uleb128 instead of 1 or 2 bytes and don't print
7059         anything for dw_val_class_flag.
7060
7061         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
7062         instead of cselib_lookup following by tweaking locs->setting_insn.
7063
7064         PR bootstrap/43596
7065         * cselib.c (cselib_process_insn): Clear cselib_current_insn
7066         even before returning from label, setjmp call or volatile asm
7067         handling.
7068
7069 2010-03-31  Richard Guenther  <rguenther@suse.de>
7070
7071         PR middle-end/43600
7072         * cgraphunit.c (cgraph_output_in_order): Do not allocate
7073         temporary data on stack.
7074
7075 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7076
7077         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
7078         (PUSHSECTION_ASM_OP): Remove.
7079         (POPSECTION_ASM_OP): Remove.
7080         (PUSHSECTION_FORMAT): Remove.
7081         * config/sol2.h (PUSHSECTION_FORMAT): Define.
7082         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
7083         * config/sol2.c (solaris_output_init_fini): Use it.
7084
7085 2010-03-31  Jie Zhang  <jie@codesourcery.com>
7086
7087         PR 43574
7088         * opt-functions.awk (var_type_struct): Use signed char type
7089         for simple variables.
7090
7091 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7092
7093         * config/sol2.c: Include output.h.
7094         (solaris_assemble_visibility): New function.
7095         * config/t-sol2 (sol2.o): Add output.h dependency.
7096         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
7097         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
7098         Redefine.
7099
7100 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
7101
7102         PR target/43580
7103         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
7104         V2SImode or XFmode on PRE_DEC.
7105
7106         PR debug/43557
7107         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
7108         BLKmode.
7109
7110 2010-03-31  Jie Zhang  <jie@codesourcery.com>
7111
7112         PR 43562
7113         * reload.h (caller_save_initialized_p): Declare.
7114         * toplev.c (backend_init_target): Don't call
7115         init_caller_save but set caller_save_initialized_p to false.
7116         * caller-save.c (caller_save_initialized_p): Define.
7117         (init_caller_save): Check caller_save_initialized_p.
7118         * ira.c (ira): Call init_caller_save if flag_caller_saves.
7119
7120 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7121
7122         PR target/39048
7123         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
7124         and soft-fp/t-softfp to tmake_file.
7125         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
7126         (LIBGCC2_TF_CEXT): Define.
7127         (TF_SIZE): Define.
7128
7129 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
7130
7131         PR debug/42977
7132         * cselib.c (n_useless_values): Document handling of debug locs.
7133         (n_useless_debug_values, n_debug_values): New variables.
7134         (new_elt_loc_list): Don't add to debug values, keep count.
7135         (promote_debug_loc): New.
7136         (cselib_reset_table): Zero new variables.
7137         (entry_and_rtx_equal_p): Promote debug locs.
7138         (discard_useless_locs): Increment n_useless_debug_values for
7139         debug values.
7140         (remove_useless_values): Adjust n_useless_values and n_debug_values
7141         with n_useless_debug_values.
7142         (add_mem_for_addr): Promote debug locs.
7143         (cselib_lookup_mem): Likewise.
7144         (cselib_lookup_addr): Renamed to...
7145         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
7146         (cselib_log_lookup): ... this.  Turn into...
7147         (cselib_lookup_addr): ... new wrapper.
7148         (cselib_lookup_from_insn): New.
7149         (cselib_invalidate_regno): Increment n_useless_debug_values for
7150         debug values.
7151         (cselib_invalidate_mem): Likewise.
7152         (cselib_process_insn): Take n_deleted and n_debug_values into
7153         account to guard remove_useless_value call.
7154         (cselib_finish): Zero n_useless_debug_values.
7155         * cselib.h (cselib_lookup_from_insn): Declare.
7156         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
7157         (sched_analyze_2): Likewise.
7158
7159 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
7160
7161         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
7162         functions.
7163         (adjust_mems): Replace narrowing SUBREG of expression containing
7164         just PLUS, MINUS, MULT and ASHIFT of registers and constants
7165         with operations in the narrower mode.
7166
7167         PR debug/43593
7168         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
7169         regs_invalidated_by_call instead all call_used_reg_set registers.
7170
7171 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
7172
7173         PR middle-end/43430
7174         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
7175         pointer comparisons with types_compatible_p.
7176         * tree-vect-stmts.c (vectorizable_call): Same.
7177         (vectorizable_condition): Same.
7178
7179 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7180
7181         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
7182         stack check if the mask would be zero.
7183
7184 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
7185             Jack Howarth <howarth@bromo.med.uc.edu>
7186
7187         * tree-profile.c (tree_init_ic_make_global_vars): Make static
7188         variables TLS.
7189
7190 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
7191
7192         PR other/25232
7193         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
7194         and __unordtf2.
7195         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
7196         Include ___unordxf2 and ___unordtf2.
7197         * config/i386/libgcc-glibc.ver: Do not define inheritance from
7198         GCC_4.4.0 here.
7199
7200 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
7201
7202         * config/lm32/t-lm32: New file.
7203         * config.gcc: Use the above file when targetting lm32.
7204
7205 2010-03-28  Duncan Sands  <baldrick@free.fr>
7206
7207         * Makefile.in (PLUGIN_HEADERS): Add except.h.
7208
7209 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
7210
7211         PR middle-end/43431
7212         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
7213         Improve vectorization cost model diagnostic.
7214
7215 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
7216
7217         PR middle-end/43436
7218         * tree-vect-data-refs.c (vect_analyze_data_refs): When
7219         compute_data_dependences_for_loop returns false, early exit
7220         and output an extra diagnostic for the failed data reference
7221         analysis.
7222
7223 2010-03-29  Richard Guenther  <rguenther@suse.de>
7224
7225         PR tree-optimization/43560
7226         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
7227         (can_sm_ref_p): Treat stores to readonly locations as trapping.
7228
7229 2010-03-29  Jie Zhang  <jie@codesourcery.com>
7230
7231         PR 43564
7232         * toplev.c (process_options): Set optimization_default_node
7233         and optimization_current_node.
7234         * opts.c (decode_options): Don't set optimization_default_node
7235         and optimization_current_node.
7236
7237 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
7238
7239         * config/rtems.h: Abandon -qrtems_debug.
7240
7241 2010-03-28  Jan Hubicka  <jh@suse.cz>
7242
7243         PR tree-optimization/43505
7244         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
7245         map should not be copied.
7246
7247 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7248
7249         PR middle-end/41674
7250         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
7251         cdtors, set DECL_PRESERVE_P.
7252         * ipa.c (cgraph_externally_visible_p): Return true if declaration
7253         should be preseved.
7254
7255 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
7256
7257         PR tree-optimization/43528
7258         * stor-layout.c (place_field): Check that constant fits into
7259         unsigned HWI when skipping calculation of MS bitfield layout.
7260
7261 2010-03-27  Jan Hubicka  <jh@suse.cz>
7262
7263         PR middle-end/43391
7264         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
7265         notice_global_symbol work.
7266
7267 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
7268
7269         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
7270         instead of dwarf2out_decl.
7271         (struct var_loc_node): Remove section_label field.
7272         (dwarf2out_function_decl): New function.
7273         (dwarf2out_var_location): Don't set section_label field.
7274         (dwarf2out_begin_function): Don't empty decl_loc_table here.
7275
7276 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
7277
7278         PR tree-optimization/43544
7279         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
7280         First argument for builtin vectorized function hook is now a
7281         tree to be able to distinguish between machine specific and
7282         standard builtins.
7283         * targhooks.c (default_builtin_vectorized_function): Ditto.
7284         * targhooks.h (default_builtin_vectorized_function): Ditto.
7285         * target.h (struct gcc_target): Ditto.
7286         * tree-vect-stmts.c (vectorizable_function): Ditto.
7287         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
7288         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
7289         Ditto.
7290
7291 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
7292
7293         PR c/43381
7294         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
7295         nested binding iff it is a FUNCTION_DECL.
7296         (store_parm_decls_newstyle): Pass nested=true to bind for
7297         FUNCTION_DECLs amongst parameters.
7298
7299 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
7300
7301         * var-tracking.c (vt_expand_loc_callback): Don't run
7302         cselib_expand_value_rtx_cb in dummy mode if
7303         cselib_dummy_expand_value_rtx_cb returned false.
7304
7305         * var-tracking.c (emit_note_insn_var_location): For one part
7306         notes with offset 0, don't add EXPR_LIST around the location.
7307         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
7308         add_location_or_const_value_attribute): Adjust for that change.
7309
7310         PR debug/43540
7311         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
7312         into first operand and location into second.
7313         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
7314         dw_cfi_oprnd_loc for DW_CFA_expression.
7315         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
7316         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
7317         assume first argument is regnum and second argument is location.
7318
7319 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
7320
7321         PR target/42113
7322         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
7323         of scratch register to DImode.  Split to DImode comparison operator.
7324         Use SImode subreg of scratch register in the multiplication.
7325         (*cmp_sadd_sidi): Ditto.
7326         (*cmp_ssub_si): Ditto.
7327         (*cmp_ssub_sidi): Ditto.
7328
7329 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
7330
7331         PR target/43524
7332         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
7333         Remove invalid assert and wrong comment.
7334
7335 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
7336
7337         PR debug/43516
7338         * flags.h (final_insns_dump_p): New extern.
7339         * final.c (final_insns_dump_p): New variable.
7340         (rest_of_clean_state): Set it before -fdump-final-insns=
7341         dumping, clear afterwards.
7342         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
7343         MEM_ALIAS_SET on MEMs.
7344
7345 2010-03-26  David S. Miller  <davem@davemloft.net>
7346
7347         * configure.ac: Fix sparc GOTDATA_OP bug check.
7348         * configure: Rebuild.
7349
7350 2010-03-26  Alan Modra  <amodra@gmail.com>
7351
7352         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
7353
7354 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7355
7356         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
7357         TLS_SECTION_ASM_FLAG.
7358
7359 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
7360
7361         PR bootstrap/43511
7362         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
7363         Clear first_function_block_is_cold.
7364
7365         PR c/43385
7366         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
7367         argument if the argument is truth_value_p.
7368
7369 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
7370
7371         * config/rs6000/constraints.md: Update copyright year for my changes.
7372
7373         PR target/43484
7374         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
7375         used in reg+reg addressing, swap registers.
7376
7377 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
7378
7379         PR debug/43293
7380         * target.h (struct gcc_target): Add code_end hook.
7381         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
7382         if not yet defined.
7383         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
7384         * toplev.c (compile_file): Call targetm.asm_out.code_end
7385         hook before unwind info/debug info output.
7386         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
7387         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
7388         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7389         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
7390         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7391         * config/i386/i386.c (ix86_file_end): Renamed to...
7392         (ix86_code_end): ... this.  Make static.  Don't call
7393         file_end_indicate_exec_stack.  Emit unwind info using
7394         final_start_function/final_end_function.
7395         (darwin_x86_file_end): Remove.
7396         (TARGET_ASM_CODE_END): Define.
7397         * config/i386/i386.h (TARGET_ASM_FILE_END,
7398         NEED_INDICATE_EXEC_STACK): Don't define.
7399         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
7400         (TARGET_ASM_FILE_END): Define to darwin_file_end.
7401         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
7402         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
7403
7404         PR target/43498
7405         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
7406         at the beginning and final_end_function at the end.
7407         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
7408
7409 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7410
7411         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
7412         and Sun as TLS syntax.
7413         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
7414         * configure: Regenerate.
7415         * config.in: Regenerate.
7416         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
7417         (default_elf_asm_named_section): Use it.
7418         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
7419         (i386_output_dwarf_dtprel): Likewise.
7420         (output_addr_const_extra): Likewise.
7421         (output_pic_addr_const): Lowercase @GOTTPOFF.
7422         (output_addr_const_extra): Likewise.
7423         (output_pic_addr_const): Lowercase @GOTNTPOFF.
7424         (output_addr_const_extra): Likewise.
7425         (output_pic_addr_const): Lowercase @INDNTPOFF.
7426         (output_addr_const_extra): Likewise.
7427         (output_pic_addr_const): Lowercase @NTPOFF.
7428         (output_addr_const_extra): Likewise.
7429         (output_pic_addr_const): Lowercase @TPOFF.
7430         (output_addr_const_extra): Likewise.
7431         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
7432         (*tls_global_dynamic_64): Likewise.
7433         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
7434         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
7435
7436         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
7437         (ASM_OUTPUT_TLS_COMMON): Use it.
7438         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
7439
7440         PR target/38118
7441         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
7442         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
7443         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
7444         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
7445         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7446         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
7447
7448 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7449
7450         * config/i386/i386.c (override_options): Don't accept
7451         -mtls-dialect=sun any longer.
7452         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
7453         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
7454         (*tls_local_dynamic_base_32_sun): Likewise.
7455         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7456
7457 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
7458
7459         PR debug/43508
7460         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
7461         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
7462
7463         PR debug/43479
7464         * ira.c (adjust_cleared_regs): New function.
7465         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
7466
7467         PR debug/19192
7468         PR debug/43479
7469         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
7470         from gimple_block.
7471         * expr.c (expand_expr_real): Restore previous
7472         curr_insn_source_location and curr_insn_block after
7473         expand_expr_real_1 call.
7474         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
7475         instead of expand_expr_real_1.
7476
7477 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
7478
7479         PR rtl-optimization/43413
7480         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
7481         hard regs too.
7482
7483 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
7484
7485         PR target/43348
7486         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
7487         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
7488
7489 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
7490
7491         * config/i386/i386.c (ix86_target_string): Add -mfma.
7492         Fix a typo in comment.
7493
7494 2010-03-22  Mike Stump  <mikestump@comcast.net>
7495
7496         PR target/23071
7497         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
7498         Don't overly align based upon packed packed fields.
7499
7500 2010-03-22  Jason Merrill  <jason@redhat.com>
7501
7502         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
7503         Use () rather than [], and move before the element type.
7504
7505 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7506
7507         * doc/configfiles.texi (Configuration Files): Removed
7508         fixinc/Makefile*, intl/Makefile.*.
7509         * doc/makefile.texi: Fixed markup. Abstract from version
7510         control system used.
7511         (Makefile): Removed obsolete gcc/java/parse.y example.
7512         * doc/sourcebuild.texi: Likewise.
7513         (Top Level): Added config, gnattools, libdecnumber, libgcc,
7514         libgomp, libssp.  Removed fastjar.
7515         (Miscellaneous Docs): Clarify location.
7516         Added COPYING3, COPYING3.LIB.
7517         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
7518
7519 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7520
7521         PR target/38085
7522         * config/i386/i386.c (x86_function_profiler)
7523         [!NO_PROFILE_COUNTERS]: Fix typo.
7524         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
7525         instead of callq.
7526
7527 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
7528             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7529
7530         * doc/sourcebuild.texi (Test Directives): Split into six
7531         subsections, with most of the current text in new subsections
7532         Directives, Selectors, and Final Actions.
7533         (Directives): Split list of test directives into multiple
7534         subsubsections.
7535         (Selectors): Describe use and syntax of selectors.
7536         (Effective-Target Keywords): Describe all existing keywords.
7537         (Add Options): Describe features for dg-add-options.
7538         (Require Support): Describe variants of dg-require-support.
7539         (Final Actions): Describe commands to use in dg-final.
7540
7541 2010-03-22  Michael Matz  <matz@suse.de>
7542
7543         PR middle-end/43475
7544         * recog.c (validate_replace_rtx_group): Replace also in
7545         REG_EQUAL and REG_EQUIV notes.
7546
7547 2010-03-22  Richard Guenther  <rguenther@suse.de>
7548
7549         PR tree-optimization/43390
7550         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
7551         sure vector extracts are type correct.
7552
7553 2010-03-22  Richard Guenther  <rguenther@suse.de>
7554
7555         PR middle-end/40106
7556         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
7557         x * sqrt (x) even when optimizing for size if the target
7558         has native support for sqrt.
7559
7560 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
7561
7562         * varasm.c (make_decl_rtl_for_debug): Also clear
7563         flag_mudflap for the duration of make_decl_rtl call.
7564
7565         PR debug/43443
7566         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
7567         locs from preserved VALUEs.
7568
7569 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7570
7571         PR middle-end/42718
7572         * pa.md (movmemsi): Set align to one if zero.
7573         (movmemdi): Likewise.
7574
7575 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
7576
7577         PR target/42321
7578         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
7579         with their corresponding prologue pushes.
7580
7581 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
7582
7583         PR target/43156
7584         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
7585         at the begining or end.
7586         (spu_expand_epilogue): Likewise.
7587
7588 2010-03-20  Richard Guenther  <rguenther@suse.de>
7589
7590         PR rtl-optimization/43438
7591         * combine.c (make_extraction): Properly zero-/sign-extend an
7592         extraction of the low part of a CONST_INT.  Also handle
7593         CONST_DOUBLE.
7594
7595 2010-03-19  Mike Stump  <mikestump@comcast.net>
7596
7597         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
7598         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
7599         (override_options): Use SUBTARGET32_DEFAULT_CPU.
7600
7601 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
7602
7603         PR c/43211
7604         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
7605         an error.
7606
7607 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
7608
7609         PR rtl-optimization/42258
7610         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
7611         use that may match DEF.
7612
7613         PR target/40697
7614         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
7615         the cost of loading the constant rather than assuming
7616         COSTS_N_INSNS (1).
7617         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
7618         outer code is AND, do the same tests as the andsi3 expander and
7619         return COSTS_N_INSNS (1) if and is cheap.
7620
7621         * optabs.c (avoid_expensive_constant): Fix formatting.
7622
7623 2010-03-19  Michael Matz  <matz@suse.de>
7624
7625         PR c++/43116
7626         * attribs.c (decl_attributes): When rebuilding a function pointer
7627         type use the same qualifiers as the original pointer type.
7628
7629 2010-03-19  Martin Jambor  <mjambor@suse.cz>
7630
7631         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
7632         and is_gimple_ip_invariant_address.
7633
7634 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7635
7636         Revert
7637         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7638
7639         * config/arm/arm.c (arm_override_options): Turn off
7640         flag_dwarf2_cfi_asm for AAPCS variants.
7641
7642 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7643
7644         PR target/43399
7645         * config/arm/arm.c (emit_multi_reg_push): Update comments.
7646         Use PRE_MODIFY instead of PRE_DEC.
7647         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
7648         (vfp_emit_fstmd): Likewise.
7649
7650 2010-03-19  Michael Matz  <matz@suse.de>
7651
7652         PR target/43305
7653         * builtins.c (expand_builtin_interclass_mathfn,
7654         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
7655         if that fails.
7656
7657 2010-03-19  Richard Guenther  <rguenther@suse.de>
7658
7659         PR tree-optimization/43415
7660         * tree-ssa-pre.c (phi_translate): Split out worker to ...
7661         (phi_translate_1): ... this.
7662         (phi_translate): Move all caching here.  Cache all NARY
7663         and REFERENCE translations.
7664
7665 2010-03-19  David S. Miller  <davem@davemloft.net>
7666
7667         With help from Eric Botcazou.
7668         * config/sparc/sparc.c: Include dwarf2out.h.
7669         (emit_pic_helper): Delete.
7670         (pic_helper_symbol_name): Delete.
7671         (pic_helper_emitted_p): Delete.
7672         (pic_helper_needed): New.
7673         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
7674         (get_pc_thunk_name): New.
7675         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
7676         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
7677         Set pic_helper_needed to true.  Don't call emit_pic_helper.
7678         (sparc_expand_prologue): Update load_pic_register call.
7679         (sparc_output_mi_thunk): Likewise.
7680         (sparc_file_end): Emit a hidden comdat symbol for the PIC
7681         thunk if possible.  Output CFI information as needed.
7682
7683 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
7684             Jack Howarth <howarth@bromo.med.uc.edu>
7685
7686         PR target/36399
7687         * config/i386/i386.h: Fix ABI on darwin x86-32.
7688
7689 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
7690
7691         * tree.h: Declare make_decl_rtl_for_debug.
7692         * varasm.c (make_decl_rtl_for_debug): New.
7693         * dwarf2out.c (rtl_for_decl_location): Call it.
7694         * cfgexpand.c (expand_debug_expr): Call it.
7695
7696 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
7697
7698         PR bootstrap/43399
7699         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
7700         mem_mode.
7701
7702         PR bootstrap/43403
7703         * var-tracking.c (vt_init_cfa_base): Do nothing if
7704         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
7705
7706 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
7707
7708         PR debug/42873
7709         * var-tracking.c (canonicalize_vars_star): New.
7710         (dataflow_post_merge_adjust): Use it.
7711
7712 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
7713
7714         PR debug/43058
7715         * var-tracking.c (non_suitable_const): New function.
7716         (add_uses): For DEBUG_INSNs with constants, don't record any
7717         value, instead just the constant value itself.
7718         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
7719         is not VAR_LOC_UNKNOWN_P, set var to the constant.
7720         (emit_notes_in_bb): Likewise.
7721         (emit_note_insn_var_location): For onepart variables if
7722         cur_loc is a VOIDmode constant, use DECL_MODE.
7723
7724 2010-03-18  Martin Jambor  <mjambor@suse.cz>
7725
7726         PR middle-end/42450
7727         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
7728         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
7729         all non-clones.  Moved call redirection...
7730         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
7731         (cgraph_materialize_all_clones): Dispose of all
7732         combined_args_to_skip bitmaps.
7733         (verify_cgraph_node): Do not check for edges pointing to wrong
7734         nodes in inline clones.
7735         * tree-inline.c (copy_bb): Call
7736         cgraph_redirect_edge_call_stmt_to_callee.
7737         * ipa.c (cgraph_remove_unreachable_nodes): Call
7738         cgraph_node_remove_callees even when there are used clones.
7739
7740 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
7741
7742         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
7743
7744 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
7745
7746         PR target/43383
7747         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
7748         for 32bit.
7749
7750 2010-03-18  Michael Matz  <matz@suse.de>
7751
7752         PR middle-end/43419
7753         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
7754         into sqrt(x) if we need to preserve signed zeros.
7755
7756 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
7757             Eric Botcazou  <ebotcazou@adacore.com>
7758
7759         PR rtl-optimization/43360
7760         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
7761         note if we don't know its invariant status.
7762
7763 2010-03-18  Michael Matz  <matz@suse.de>
7764
7765         PR tree-optimization/43402
7766         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
7767         PHI chains of ssa names registered for update.
7768
7769 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
7770
7771         PR target/42427
7772         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
7773         non-offsettable and pre_modify update addressing.
7774         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
7775         and "2" alternatives "#".
7776         (*movdd_softfloat32): Make all alternatives "#";
7777         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
7778         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
7779         (*movdf_softfloat32): Make all alternatives "#";
7780         (movdi): Use the new DIFD mode iterator to create a common splitter
7781         for movdi, movdf and movdd patterns.
7782
7783 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
7784
7785         * common.opt (dumpdir): Remove redundant tab.
7786
7787 2010-03-17  Martin Jambor  <mjambor@suse.cz>
7788
7789         PR tree-optimization/43347
7790         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
7791         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
7792
7793 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
7794
7795         PR rtl-optimization/42216
7796         * regrename.c (create_new_chain): New function, broken out from...
7797         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
7798         appending a use to an empty chain.
7799         (build_def_use): Remove previous changes that convert OP_INOUT to
7800         OP_OUT operands; instead detect the case where an OP_INOUT operand
7801         uses a previously untracked register and create an empty chain for it.
7802
7803 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7804
7805         * doc/extend.texi (Function Attributes): Rewrite unfinished
7806         sentence in ms_abi documentation.
7807
7808 2010-03-17  Alan Modra  <amodra@gmail.com>
7809
7810         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
7811         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
7812         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
7813         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
7814
7815 2010-03-16  Richard Henderson  <rth@redhat.com>
7816
7817         PR middle-end/43365
7818         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
7819         (lower_try_finally): Save and restore eh_seq around the expansion
7820         of the try-finally.
7821
7822 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
7823
7824         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
7825         statements before splitting block.
7826
7827 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7828
7829         * doc/sourcebuild.texi (Testsuites): Fix markup.
7830         Use pathnames relative to gcc/testsuite.
7831         (Test Directives): Move description of how timeout is determined.
7832         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
7833         (C Tests): Correct gcc.misc-tests directory.
7834         Framework tests now live in gcc.test-framework.
7835
7836 2010-03-16  Richard Guenther  <rguenther@suse.de>
7837
7838         PR middle-end/43379
7839         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
7840         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
7841
7842 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
7843             Alexandre Oliva  <aoliva@redhat.com>
7844
7845         PR tree-optimization/42917
7846         * lambda-code.c (remove_iv): Skip debug statements.
7847         (lambda_loopnest_to_gcc_loopnest): Likewise.
7848         (not_interesting_stmt): Debug statements are not interesting.
7849
7850 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
7851
7852         PR debug/43051
7853         PR debug/43092
7854         * cselib.c (cselib_preserve_constants,
7855         cfa_base_preserved_val): New static variables.
7856         (preserve_only_constants): New function.
7857         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
7858         clear its REG_VALUES.  If cselib_preserve_constants, don't
7859         empty the whole hash table, but preserve there VALUEs with constants,
7860         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
7861         (cselib_preserve_cfa_base_value): New function.
7862         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
7863         (cselib_init): Change argument to int bitfield.  Set
7864         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
7865         is in it.
7866         (cselib_finish): Clear cselib_preserve_constants and
7867         cfa_base_preserved_val.
7868         * cselib.h (enum cselib_record_what): New enum.
7869         (cselib_init): Change argument to int.
7870         (cselib_preserve_cfa_base_value): New prototype.
7871         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
7872         * dse.c (dse_step1): Likewise.
7873         * cfgcleanup.c (thread_jump): Likewise.
7874         * sched-deps.c (sched_analyze): Likewise.
7875         * gcse.c (local_cprop_pass): Likewise.
7876         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
7877         If FN is non-NULL, call the callback always and whenever it returns
7878         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
7879         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
7880         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
7881         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
7882         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
7883         * var-tracking.c: Include recog.h.
7884         (bb_stack_adjust_offset): Remove.
7885         (vt_stack_adjustments): Don't call it, instead just gather the
7886         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
7887         (adjust_stack_reference): Remove.
7888         (compute_cfa_pointer): New function.
7889         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
7890         (struct adjust_mem_data): New type.
7891         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
7892         functions.
7893         (get_address_mode): New function.
7894         (replace_expr_with_values): Use it.
7895         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
7896         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
7897         (adjust_sets): Remove.
7898         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
7899         Use get_address_mode.
7900         (get_adjusted_src): Remove.
7901         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
7902         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
7903         (add_with_sets): Don't call adjust_sets.
7904         (fp_setter, vt_init_cfa_base): New functions.
7905         (vt_initialize): Change return type to bool.  Move most of pool etc.
7906         initialization to the beginning of the function from end.  Pass
7907         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
7908         If !frame_pointer_needed, call vt_stack_adjustment before mos
7909         vector is filled, call vt_init_cfa_base if argp/framep has been
7910         eliminated to sp.  If frame_pointer_needed and argp/framep has
7911         been eliminated to hard frame pointer, set
7912         hard_frame_pointer_adjustment and call vt_init_cfa_base after
7913         encountering fp setter in the prologue.  For MO_ADJUST, call
7914         log_op_type before pusing the op into mos vector, not afterwards.
7915         Call adjust_insn before cselib_process_insn/add_with_sets,
7916         call cancel_changes (0) afterwards.
7917         (variable_tracking_main_1): Adjust for vt_initialize calling
7918         vt_stack_adjustments and returning whether it succeeded or not.
7919
7920 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
7921
7922         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
7923         debug statements.
7924
7925 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
7926
7927         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
7928         has been set.
7929         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
7930         drap_reg has not been set.
7931
7932 2010-03-15  Michael Matz  <matz@suse.de>
7933
7934         PR middle-end/43300
7935         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
7936         use it to expand block copies.
7937         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
7938         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
7939         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
7940
7941 2010-03-15  Richard Guenther  <rguenther@suse.de>
7942
7943         PR tree-optimization/43367
7944         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
7945         elimination check.
7946
7947 2010-03-15  Richard Guenther  <rguenther@suse.de>
7948
7949         PR tree-optimization/43317
7950         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
7951
7952 2010-03-15  Martin Jambor  <mjambor@suse.cz>
7953
7954         PR tree-optimization/43141
7955         * tree-sra.c (create_abstract_origin): New function.
7956         (modify_function): Call create_abstract_origin.
7957
7958 2010-03-15  Chris Demetriou  <cgd@google.com>
7959
7960         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
7961         wasn't copied.
7962
7963 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7964
7965         PR middle-end/43354
7966         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
7967         call insert_out_of_ssa_copy for default definitions.
7968
7969 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7970
7971         * graphite-clast-to-gimple.c (my_long_long): Defined.
7972         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
7973         * graphite-sese-to-poly.c (my_long_long): Defined.
7974         (scop_ivs_can_be_represented): Use it.
7975
7976 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7977
7978         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
7979         graphite-max-bbs-per-function, and loop-block-tile-size.
7980         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
7981         with "maximum".
7982         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
7983
7984 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7985
7986         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
7987         forward declaration.
7988         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
7989         (add_upper_bounds_from_estimated_nit): New.
7990         (build_loop_iteration_domains): Use it.
7991
7992 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7993
7994         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
7995
7996 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7997
7998         PR middle-end/43306
7999         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
8000         should be an INTEGER_CST.  Also handle CASE_CONVERT.
8001
8002 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8003
8004         * graphite.c (graphite_initialize): To bound the number of bbs per
8005         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
8006         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
8007         * doc/invoke.texi: Document it.
8008
8009 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8010
8011         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
8012         * graphite-sese-to-poly.h (build_poly_scop): Same.
8013
8014 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8015
8016         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
8017         the number of parameters in the scop.  Use as an upper bound
8018         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
8019         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
8020         * doc/invoke.texi: Document it.
8021
8022 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
8023
8024         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
8025         * doc/c-tree.texi: Remove.
8026         * doc/generic.texi: Merge c-tree.texi here.
8027         * doc/gccint.texi (Trees): Remove menu entry.
8028         (c-tree.texi): Remove @include.
8029         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
8030         * doc/languages.texi (Reading RTL): Ditto.
8031
8032 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
8033
8034         PR target/42869
8035         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
8036
8037 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
8038
8039         PR middle-end/42431
8040         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
8041         code added to work around reload clobbering CONST insns.
8042
8043 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
8044
8045         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
8046         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
8047         (cselib_preserve_only_values): Remove retain argument, don't
8048         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
8049         * cselib.h (cselib_preserve_only_values): Remove retain argument.
8050         * var-tracking.c (micro_operation): Move insn field before union.
8051         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
8052         (struct variable_tracking_info_def): Remove n_mos field, change
8053         mos into a vector of micro_operations.
8054         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
8055         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
8056         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
8057         changing into a vector.
8058         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
8059         come before all other uops generated by add_stores.
8060         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
8061         argument removal.
8062         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
8063         a vector.  Run just one pass over the bbs instead of separate counting
8064         and computation phase.
8065         (vt_finalize): Free VTI (bb)->mos vector instead of array.
8066
8067         PR debug/43329
8068         * tree-inline.c (remap_decls): Put old_var rather than origin_var
8069         into *nonlocalized_list vector.
8070         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
8071         even if origin is non-NULL.
8072         (gen_variable_die): Likewise.
8073         (process_scope_var): Don't change origin.
8074         (gen_decl_die): Likewise.
8075         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
8076         before adding new edges instead of after it, fix moving over
8077         debug stmts.
8078
8079 2010-03-11  David S. Miller  <davem@davemloft.net>
8080
8081         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
8082         of four.
8083         * configure: Rebuild.
8084
8085 2010-03-11  Martin Jambor  <mjambor@suse.cz>
8086
8087         PR tree-optimization/43257
8088         * tree.c (assign_assembler_name_if_neeeded): New function.
8089         (free_lang_data_in_cgraph): Assembler name assignment moved to the
8090         above new function.
8091         * tree.h (assign_assembler_name_if_neeeded): Declare.
8092         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
8093         the function if needed.
8094
8095 2010-03-11  Chris Demetriou  <cgd@google.com>
8096
8097         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
8098         include/stdint-gcc.h, and include/stdint.h world-readable.
8099
8100 2010-03-11  Richard Guenther  <rguenther@suse.de>
8101
8102         PR tree-optimization/43255
8103         * tree-vrp.c (process_assert_insertions_for): Do not insert
8104         asserts for trivial conditions.
8105
8106 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8107
8108         PR tree-optimization/43280
8109         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
8110         generation.  Move calculation of size out of the if branch.
8111         (find_bswap): Modify compare number generation.
8112
8113 2010-03-11  Richard Guenther  <rguenther@suse.de>
8114
8115         PR lto/43200
8116         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
8117         (input_gimple_stmt): Fixup handled component types during
8118         operand read.  Also fix up decls in ADDR_EXPRs.
8119
8120 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
8121
8122         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
8123         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
8124
8125 2010-03-10  Jan Hubicka  <jh@suse.cz>
8126
8127         PR c/43288
8128         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
8129         * varasm.c (get_variable_section): Don't do that here...
8130         (make_decl_rtl): ... and here.
8131         (do_assemble_alias): Produce decl RTL.
8132         (assemble_alias): Likewise.
8133
8134 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
8135
8136         PR debug/43290
8137         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
8138         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
8139         of fde->vdrap_reg.
8140         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
8141         (based_loc_descr): Only express drap or vdrap regno based expressions
8142         using DW_OP_fbreg when not optimizing.
8143         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
8144         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
8145         REG_CFA_SET_VDRAP note.
8146
8147 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
8148
8149         PR tree-optimization/43236
8150         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
8151         error in calculation of base address in reverse iteration case.
8152         (generate_builtin): Take number of latch executions if the statement
8153         is in the latch.
8154
8155 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
8156
8157         PR middle-end/42859
8158         * tree-eh.c: Include pointer-set.h.
8159         (lower_eh_dispatch): Filter out duplicate case labels and
8160         remove the unneeded edge when the label is unused.  Return
8161         true when some edges are removed.
8162         (execute_lower_eh_dispatch): When any lowering resulted in
8163         removing an edge, also delete unreachable blocks.
8164
8165 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
8166
8167         PR bootstrap/43287
8168         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
8169         UNSPEC_MACHOPIC_OFFSET.
8170
8171 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
8172
8173         PR target/43294
8174         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
8175         (m68k_delegitimize_address): New function.
8176
8177 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
8178
8179         PR debug/43299
8180         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
8181
8182         PR debug/43299
8183         * var-tracking.c (adjust_sets): New function.
8184         (count_with_sets, add_with_sets): Use it.
8185         (get_adjusted_src): New inline function.
8186         (add_stores): Use it.
8187
8188         PR debug/43304
8189         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
8190         call cselib_dummy_expand_value_rtx_cb instead of
8191         cselib_expand_value_rtx_cb.
8192
8193         PR debug/43293
8194         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
8195         * config/i386/i386.c: Include debug.h and dwarf2out.h.
8196         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
8197         and .cfi_endproc around the pic thunks.
8198         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
8199         all queued unwind info register saves are saved before the call.
8200         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
8201         considered as sp-=4 for unwind info and the pop as sp+=4 which
8202         also clobbers dest, but doesn't actually restore it.
8203
8204         PR debug/43290
8205         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
8206         RTX_FRAME_RELATED_P.
8207
8208 2010-03-09  Jie Zhang  <jie@codesourcery.com>
8209
8210         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
8211         whitespaces in output template.
8212
8213 2010-03-09  Jie Zhang  <jie@codesourcery.com>
8214
8215         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
8216         out array boundary.
8217
8218 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
8219
8220         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
8221         builtins.exp in a separate job.
8222
8223 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8224
8225         * graphite-sese-to-poly.c (add_param_constraints): Use
8226         lower_bound_in_type and upper_bound_in_type.
8227
8228 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8229
8230         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
8231         instead of unsigned_type_node.
8232
8233 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8234             Reza Yazdani  <reza.yazdani@amd.com>
8235
8236         PR middle-end/43065
8237         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
8238         on pointer type parameters.
8239
8240 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
8241
8242         PR middle-end/42644
8243         PR middle-end/42130
8244         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
8245         handle conversions from pointer to integers.
8246         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
8247         induction variable, to be able to work with code generated by CLooG.
8248         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
8249         (build_poly_scop): Bail out if we cannot codegen a loop.
8250
8251 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
8252
8253         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
8254         code generation with gloog_error.
8255
8256 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8257
8258         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
8259         Call fold_convert on all the returned values.
8260         (expand_scalar_variables_expr): Pass to
8261         expand_scalar_variables_ssa_name the type of the resulting expression.
8262
8263 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8264
8265         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
8266         ppl_min_for_le_pointset.
8267         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
8268         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
8269
8270 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8271
8272         * graphite-dependences.c (map_into_dep_poly): Removed.
8273         (dependence_polyhedron_1): Use combine_context_id_scat.
8274
8275 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8276
8277         * graphite-poly.h (struct poly_scattering): Add layout documentation.
8278         (struct poly_bb): Same.
8279         (combine_context_id_scat): New.
8280
8281 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8282
8283         PR middle-end/42326
8284         * sese.c (name_defined_in_loop_p): Return false for default
8285         definitions.
8286
8287 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8288
8289         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
8290         and clean up the logic.
8291
8292 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8293
8294         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
8295         early return.
8296
8297 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
8298
8299         * var-tracking.c (remove_cselib_value_chains): Define only for
8300         ENABLE_CHECKING.
8301         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
8302         delete_slot_part, emit_notes_for_differences_1): Don't call
8303         remove_cselib_value_chains here.
8304         (set_slot_part, emit_notes_for_differences_2): Don't call
8305         add_cselib_value_chains here.
8306         (preserved_values): New vector.
8307         (preserve_value): New function.
8308         (add_uses, add_stores, vt_add_function_parameters): Use it
8309         instead of cselib_preserve_value.
8310         (changed_values_stack): New vector.
8311         (check_changed_vars_0): New function.
8312         (check_changed_vars_1, check_changed_vars_2): Use it.
8313         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
8314         changed_values_stack VALUEs.
8315         (vt_emit_notes): For all preserved_values call
8316         add_cselib_value_chains.  If ENABLE_CHECKING call
8317         remove_cselib_value_chains before verifying value_chains is empty.
8318         Initialize and free changed_values_stack.
8319         (vt_initialize): Initialize preserved_values.
8320         (vt_finalize): Free preserved_values.
8321
8322 2010-03-08  Richard Guenther  <rguenther@suse.de>
8323
8324         PR tree-optimization/43269
8325         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
8326         region detection.
8327
8328 2010-03-08  Martin Jambor  <mjambor@suse.cz>
8329
8330         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
8331         (ipa_is_param_called): Removed.
8332         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
8333         (ipa_print_node_params): Do not print the called flag.
8334         (ipa_write_node_info): Do not stream the called flag.
8335         (ipa_read_node_info): Likewise.
8336
8337 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
8338
8339         PR debug/43176
8340         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
8341         * cselib.c (struct expand_value_data): Add dummy field.
8342         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
8343         dummy to false.
8344         (cselib_dummy_expand_value_rtx_cb): New function.
8345         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
8346         any rtl.
8347         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
8348         * var-tracking.c: Include pointer-set.h.
8349         (variable): Change n_var_parts to char from int.  Add
8350         cur_loc_changed and in_changed_variables fields.
8351         (variable_canonicalize): Remove.
8352         (shared_var_p): New inline function.
8353         (unshare_variable): Maintain cur_loc_changed and
8354         in_changed_variables fields.  If var was in changed_variables,
8355         replace it there with new_var.  Just copy cur_loc instead of
8356         resetting it to something else.
8357         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
8358         (dataflow_set_union): Don't call variable_canonicalize.
8359         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
8360         of their DEBUG_EXPR_TREE_DECLs.
8361         (canonicalize_loc_order_check): Verify that cur_loc is NULL
8362         and in_changed_variables and cur_loc_changed is false.
8363         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
8364         and cur_loc_changed.  Don't update cur_loc here.
8365         (variable_merge_over_src): Don't call variable_canonicalize.
8366         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
8367         removing loc that is equal to cur_loc, clear cur_loc,
8368         set cur_loc_changed and ensure variable_was_changed is called.
8369         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
8370         compare pointers in cur_loc check, if it is equal to loc,
8371         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
8372         (variable_different_p): Remove compare_current_location argument,
8373         don't compare cur_loc.
8374         (dataflow_set_different_1): Adjust variable_different_p caller.
8375         (variable_was_changed): If dv had some var in changed_variables
8376         already, reset in_changed_variables flag for it and propagate
8377         cur_loc_changed over to the new variable.  On empty var
8378         always set cur_loc_changed.  Set in_changed_variables on whatever
8379         var is added to changed_variables.
8380         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
8381         Use shared_var_p.  When removing loc that is equal to cur_loc,
8382         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
8383         end, don't set it to something else, just call variable_was_changed.
8384         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
8385         loc being removed, clear cur_loc and set cur_loc_changed.
8386         Set cur_loc_changed if all locations have been removed.
8387         (struct expand_loc_callback_data): New type.
8388         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
8389         allocated.  Always create SUBREGs if simplify_subreg failed.
8390         Prefer to use cur_loc, when that fails and still in
8391         changed_variables (and seen first time) recompute it.  Set
8392         cur_loc_changed of variables which had to change cur_loc and
8393         compute elcd->cur_loc_changed if any of the subexpressions used
8394         had to change cur_loc.
8395         (vt_expand_loc): Adjust to pass arguments in
8396         expand_loc_callback_data structure.
8397         (vt_expand_loc_dummy): New function.
8398         (emitted_notes): New variable.
8399         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
8400         that weren't used for any other decl in current
8401         emit_notes_for_changes call call vt_expand_loc_dummy to update
8402         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
8403         first loc_chain location if NULL before.  Always use just
8404         cur_loc instead of first loc_chain location.  When cur_loc_changed
8405         is false, when not --enable-checking=rtl just don't emit any note.
8406         When rtl checking, compute the note and assert it is the same
8407         as previous note.  Clear cur_loc_changed and in_changed_variables
8408         at the end before removing from changed_variables.
8409         (check_changed_vars_3): New function.
8410         (emit_notes_for_changes): Traverse changed_vars to call
8411         check_changed_vars_3 on each changed var.
8412         (emit_notes_for_differences_1): Clear cur_loc_changed and
8413         in_changed_variables.  Recompute cur_loc of new_var.
8414         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
8415         (vt_emit_notes): Initialize and destroy emitted_notes.
8416
8417 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
8418
8419         PR rtl-optimization/42220
8420         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
8421         Use verify_reg_tracked to determine if we should use OP_OUT rather
8422         than OP_INOUT.
8423         (build_def_use): If we see an in-out operand for a register that we
8424         know nothing about, treat is an output if possible, fail the block if
8425         not.
8426
8427 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
8428
8429         PR debug/42897
8430         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
8431         permanently.
8432
8433 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
8434
8435         PR debug/42897
8436         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
8437         uses of relevant DEFs that are dead outside the loop too.
8438
8439 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
8440
8441         * var-tracking.c (dataflow_set_merge): Swap src and src2.
8442         Reverted:
8443         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
8444         PR debug/41371
8445         * var-tracking.c (values_to_unmark): New variable.
8446         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
8447         values_to_unmark vector.  Moved body to...
8448         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
8449         instead queue it into values_to_unmark vector.
8450         (vt_find_locations): Free values_to_unmark vector.
8451
8452 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
8453
8454         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
8455         (site.exp): Export them when plugins are enabled.
8456
8457 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
8458
8459         PR middle-end/42326
8460         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
8461         that contain scevs.
8462         (chrec_fold_multiply): Same.
8463
8464 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
8465
8466         PR c/43248
8467         * c-decl.c (build_compound_literal): Return early if init is
8468         an error_mark_node.
8469
8470 2010-03-04  Martin Jambor  <mjambor@suse.cz>
8471
8472         PR tree-optimization/43164
8473         PR tree-optimization/43191
8474         * tree-sra.c (type_consists_of_records_p): Reject records with
8475         zero-size bit-fields at the end.
8476
8477 2010-03-04  Mike Stump  <mikestump@comcast.net>
8478
8479         * Makefile.in (TAGS): Remove *.y.
8480
8481 2010-03-04  Richard Guenther  <rguenther@suse.de>
8482
8483         PR tree-optimization/40761
8484         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
8485         in reverse order.
8486         (my_rev_post_order_compute): New function.
8487         (init_pre): Call it.
8488
8489 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
8490
8491         PR middle-end/43209
8492         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
8493         decrease the cost of an IV candidate when the cost is infinite.
8494
8495 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8496
8497         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
8498         Use '3DNow!' for the extension of that name, ensure normal space
8499         after the string.
8500         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
8501
8502 2010-03-03  Jeff Law  <law@redhat.com>
8503
8504         * PR middle-end/32693
8505         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
8506         than gen_rtx_SUBREG.
8507         (extract_bit_field_1): Likewise.
8508
8509 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
8510
8511         * doc/sourcebuild.texi (Test directives): Document that arguments
8512         include-opts and exclude-opts are now optional for dg-skip-if,
8513         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
8514
8515 2010-03-03  Jason Merrill  <jason@redhat.com>
8516
8517         PR c++/12909
8518         * cgraph.h (varpool_node): Add extra_name field.
8519         * varpool.c (varpool_extra_name_alias): New.
8520         (varpool_assemble_decl): Emit extra name aliases.
8521         (varpool_mark_needed_node): Look past an extra name alias.
8522         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
8523         * lto-streamer-in.c (lto_input_tree): Read it.
8524         * lto-streamer-out.c (output_unreferenced_globals): Write it.
8525
8526 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
8527
8528         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
8529         (sparc*-*-solaris2*): ...this.
8530
8531 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
8532
8533         PR debug/43229
8534         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
8535         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
8536         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
8537         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
8538
8539         PR debug/43237
8540         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
8541         fallthrough to default handling, just with want_address 0 instead of 2.
8542         For single element lists, add_AT_loc directly, otherwise create an
8543         artificial variable DIE and stick location list to it.
8544
8545         PR debug/43177
8546         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
8547         (VAL_EXPR_HAS_REVERSE): Define.
8548         (reverse_op): New function.
8549         (add_stores): For reversible operations add an extra MO_VAL_USE.
8550
8551 2010-03-02  Jason Merrill  <jason@redhat.com>
8552
8553         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
8554
8555 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
8556
8557         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
8558         (sparc64-*-linux*): Likewise.
8559         (sparc64-*-solaris2*): Include assembler files before linker ones.
8560         (sparc-*-solaris2*): Simplify and reorder to match previous case.
8561         * config/sparc/gas.h: Delete.
8562         * config/sparc/sol2-64.h: Add copyright notice.
8563         * config/sparc/sol2-gas-bi.h: Likewise.
8564         * config/sparc/sol2-gld.h: Likewise.
8565         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
8566         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
8567         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
8568         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
8569         (sparc_elf_asm_named_section): Rename into...
8570         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
8571
8572 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
8573
8574         * config/alpha/alpha.c (override_options): Fix -mtune error message.
8575
8576 2010-03-02  Jeff Law  <law@redhat.com>
8577
8578         PR middle-end/42431
8579         * reload1.c (rtx_p, substitute_stack): Declare.
8580         (substitute): Record addresses of changed rtxs.
8581         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
8582         Restore the original rtx when complete.
8583         (reload): Free subsitute_stack when complete.
8584
8585 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
8586
8587         * doc/gccint.texi (menu): Add Testsuites as a chapter.
8588         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
8589         new chapter.
8590         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
8591         LTO Testing, gcov Testing, profopt Testing, compat Testing,
8592         Torture Tests): Change from subsection to section.
8593
8594 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
8595             Steven Bosscher  <steven@gcc.gnu.org>
8596
8597         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
8598         instead of bb.
8599
8600 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
8601
8602         PR middle-end/42640
8603         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
8604         the assignment from the new induction variable to the assignment
8605         of the value from the original loop PHI function.
8606
8607 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
8608             Daniel Jacobowitz  <dan@codesourcery.com>
8609
8610         * doc/sourcebuild.texi (Test directives): Clarify options to
8611         dg-skip-if.
8612
8613 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8614
8615         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
8616         Disable cfi directives unless GCC and gas agree on using read-only
8617         .eh_frame sections for 64-bit.
8618         * configure: Regenerate.
8619
8620 2010-03-01  Richard Guenther  <rguenther@suse.de>
8621
8622         PR tree-optimization/43220
8623         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
8624         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
8625
8626 2010-03-01  Richard Guenther  <rguenther@suse.de>
8627             Martin Jambor  <mjambor@suse.cz>
8628
8629         PR middle-end/41250
8630         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
8631         gimplified parameters.
8632
8633 2010-03-01  Christian Bruel  <christian.bruel@st.com>
8634
8635         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
8636
8637 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
8638
8639         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
8640
8641 2010-03-01  Richard Guenther  <rguenther@suse.de>
8642
8643         PR middle-end/43213
8644         * expr.c (expand_assignment): Use the alias-oracle to tell
8645         if the rhs aliases the result decl.
8646
8647 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8648
8649         PR pch/14940
8650         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
8651         to sol_gt_pch_get_address.
8652         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
8653         64-bit, SPARC and x86.
8654         (sol_gt_pch_get_address): New function.
8655
8656 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
8657
8658         * toplev.h (inform_n, error_n): Declare.
8659         * diagnostic.c (inform_n, error_n): New function.
8660
8661 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
8662
8663         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
8664         has no rtl yet when processing local_decls, queue it and recheck
8665         if deferred stack allocation hasn't assigned it rtl.
8666
8667 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
8668
8669         * config/sh/sh.c (unspec_bbr_uid): New.
8670         (gen_block_redirect): Use it instead of INSN_UID.
8671         (gen_far_branch): Likewise.
8672
8673 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
8674
8675         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
8676         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
8677
8678 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8679
8680         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
8681         (Warning Options): -Wno-conversion-null is valid for
8682         Objective-C++ as well.
8683         * doc/tm.texi (Named Address Spaces): Likewise.
8684         * doc/plugins.texi (Plugins): Replace TABs with spaces.
8685         * doc/tree-ssa.texi (Tree SSA): Likewise.
8686
8687 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8688
8689         PR bootstrap/43202
8690         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
8691         by default.  Don't set the default arch for
8692         i[34567]86-*-darwin*|x86_64-*-darwin*.
8693
8694 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8695
8696         PR bootstrap/43202
8697         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
8698         default.  Set the default 32bit/64bit archs with $with_arch
8699         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
8700
8701 2010-02-27  Richard Guenther  <rguenther@suse.de>
8702
8703         PR tree-optimization/43186
8704         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
8705         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
8706         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
8707         unroller iterations.
8708
8709 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8710
8711         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
8712         required and i[34567]86-*-* targets don't support 64bit ISA.
8713
8714 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
8715
8716         PR ada/43096
8717         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
8718         the same alias set.
8719
8720 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
8721
8722         * config.gcc: Set the default arch at least to Prescott for
8723         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
8724         if SSE math is enabled.
8725
8726 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8727
8728         * diagnostic.c (diagnostic_initialize): Update.
8729         (diagnostic_report_diagnostic): Test inhibit_notes_p for
8730         informative notes.
8731         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
8732         (diagnostic_inhibit_notes): New.
8733         * toplev.c (process_options): inhibit notes with -fcompare-debug.
8734
8735 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8736
8737         PR c/20631
8738         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
8739         * doc/standards.texi: Likewise.
8740         * doc/extend.texi: Likewise.
8741         * doc/trouble.texi: Likewise.
8742         * doc/cppopts.texi: Likewise.
8743         * doc/install.texi: Likewise.
8744         * c.opt (std=c90,std=gnu90): New options.
8745         * c-opts.c (c_common_handle_option): Handle them.
8746
8747 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8748
8749         PR c/24577
8750         * c-decl.c (undeclared_variable): Use an informative note.
8751
8752 2010-02-26  Richard Guenther  <rguenther@suse.de>
8753
8754         PR tree-optimization/43186
8755         * gimple.h (gimple_fold): Remove.
8756         * gimple.c (gimple_fold): Remove.  Inline into single user ...
8757         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
8758         Try harder for conditions.
8759
8760 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
8761
8762         PR debug/43190
8763         * function.c (used_types_insert): Don't skip through named pointer
8764         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
8765         and it is different from the main variant's type.
8766
8767 2010-02-26  Nick Clifton  <nickc@redhat.com>
8768
8769         * config/rx/rx.md (sminsi3): Remove bogus alternative.
8770
8771 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
8772
8773         * config.gcc: Support --with-fpmath=sse for x86.
8774
8775         * config/i386/ssemath.h: New.
8776
8777         * doc/install.texi (--with-fpmath=sse): Documented.
8778
8779 2010-02-26  Richard Guenther  <rguenther@suse.de>
8780
8781         PR tree-optimization/43188
8782         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
8783         vector types of over-aligned element type.
8784
8785 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
8786
8787         PR target/43175
8788         * config/i386/i386.c (expand_vec_perm_blend): Use correct
8789         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
8790
8791 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
8792
8793         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
8794
8795 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
8796
8797         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
8798         * var-tracking.c: Include diagnostic.h.
8799         (debug_dv): New function.
8800         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
8801
8802         PR debug/43160
8803         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
8804         (add_value_chain, add_value_chains, remove_value_chain,
8805         remove_value_chains): Handle DEBUG_EXPRs.
8806         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
8807
8808         PR debug/43161
8809         * regcprop.c (struct queued_debug_insn_change): New type.
8810         (struct value_data_entry): Add debug_insn_changes field.
8811         (struct value_data): Add n_debug_insn_changes field.
8812         (debug_insn_changes_pool): New variable.
8813         (free_debug_insn_changes, apply_debug_insn_changes,
8814         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
8815         (kill_value_one_regno): Call free_debug_insn_changes if needed.
8816         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
8817         fields.
8818         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
8819         changes for them.
8820         (copyprop_hardreg_forward_1): Don't call apply_change_group for
8821         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
8822         changes, call cprop_find_used_regs via note_stores.
8823         (copyprop_hardreg_forward): When copying vd from predecessor
8824         which has any queued DEBUG_INSN changes, make sure the pointers are
8825         cleared.  At the end call df_analyze and then if there are any
8826         DEBUG_INSN changes queued at the end of some basic block for still
8827         live registers, apply them.
8828         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
8829
8830 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
8831
8832         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
8833         (arm*-*-*): Ditto.
8834
8835 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
8836
8837         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
8838         targets.  Set the default with_cpu/with_arch from arch/cpu.
8839         Allow x86-64 and native for with_cpu/with_arch.
8840
8841 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
8842
8843         * ebitmap.c: Change calls to verify_popcount with calls to
8844         sbitmap_verify_popcount.
8845         (ebitmap_clear_bit): Fixed map->cacheindex test and
8846         map>cache update when bit clearing results in an empty
8847         element.
8848
8849 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
8850
8851         PR target/43154
8852         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
8853         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
8854         and support both V2DF and V2DI modes.
8855         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
8856         support both V2DF and V2DI modes.
8857         (general): Delete trailing whitespace from a few patterns.
8858
8859         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8860         V2DF/V2DI interleave high/low builtins.
8861
8862         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
8863         new VSX builtins.
8864
8865         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
8866         interleave high/low functions.
8867
8868 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
8869
8870         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
8871         #pragma extern_prefix.
8872
8873 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
8874
8875         PR debug/43166
8876         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
8877         BLKmode, assert op0 is a MEM and just adjust its mode.
8878
8879         PR debug/43165
8880         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
8881         if bitpos isn't multiple of mode's bitsize.
8882
8883 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8884
8885         * c.opt (-ftemplate-depth=): New.
8886         (-ftemplate-depth-): Deprecate.
8887         * optc-gen.awk: Handle -ftemplate-depth=.
8888         * opth-gen.awk: Likewise.
8889         * c-opts.c (c_common_handle_option): Likewise.
8890         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
8891
8892 2010-02-24  Jason Merrill  <jason@redhat.com>
8893
8894         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
8895
8896 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8897
8898         * cfg.c (alloc_aux_for_block): Remove inline.
8899         (alloc_aux_for_edge): Likewise.
8900
8901 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8902
8903         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
8904
8905 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8906
8907         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
8908         * config/i386/sol2-gas.h: New file.
8909         * config.gcc (i[34567]86-*-solaris2*): Use it.
8910
8911 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8912
8913         PR c/43128
8914         * c-typeck.c (ep_convert_and_check): New.
8915         (build_conditional_expr): Use it.
8916         (build_binary_op): Likewise.
8917
8918 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
8919
8920         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
8921
8922         PR debug/43150
8923         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
8924         bounds even for -O+.
8925         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
8926         expr needs to have DECL_NAME set.
8927
8928 2010-02-24  Nick Clifton  <nickc@redhat.com>
8929
8930         * config/mep/mep.c: Include gimple.h.
8931         (mep_function_uses_sp): Delete unused function.
8932         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
8933         parameters.  Use unsigned integers to count args.  Return a
8934         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
8935
8936 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
8937
8938         PR target/43107
8939         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
8940         greater or equal to nelt instead of 2 * nelt.
8941         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
8942         with nelt - 1.
8943
8944 2010-02-23  Jason Merrill  <jason@redhat.com>
8945
8946         PR debug/42800
8947         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
8948         in cfun->local_decls even if they have register types.
8949
8950         PR c++/42837
8951         * stor-layout.c (place_field): Don't warn about unnecessary
8952         DECL_PACKED if the type is packed.
8953
8954 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
8955
8956         PR target/43139
8957         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
8958         GOTOFF relocs, even when the base reg isn't pic pointer.
8959
8960 2010-02-23  Michael Matz  <matz@suse.de>
8961
8962         PR debug/43077
8963         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
8964         (expand_gimple_basic_block): Generate and use debug temps if there
8965         are debug uses left after the last real use of TERed ssa names.
8966         Unlink debug immediate uses when they are expanded.
8967
8968 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8969
8970         PR 43123
8971         * config/i386/i386.c (override_options): Reorganise to provide
8972         better error messages.
8973
8974 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
8975
8976         PR middle-end/43083
8977         * graphite-scop-detection.c (create_single_exit_edge): Move
8978         the call to find_single_exit_edge to....
8979         (create_sese_edges): ...here.  Don't handle multiple edges
8980         exiting the function.
8981         (build_graphite_scops): Don't handle multiple edges
8982         exiting the function.
8983
8984 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
8985
8986         PR middle-end/43097
8987         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
8988         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
8989
8990 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
8991
8992         PR middle-end/43026
8993         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
8994
8995 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8996
8997         PR c++/43126
8998         * c-typeck.c (convert_arguments): Print declaration location.
8999         * c-common.c (validate_nargs): Rename as
9000         builtin_function_validate_nargs.
9001         (check_builtin_function_arguments): Update.
9002
9003 2010-02-22  Richard Guenther  <rguenther@suse.de>
9004
9005         PR lto/43045
9006         * tree-inline.c (declare_return_variable): Use the type of
9007         the call stmt lhs if available.
9008
9009 2010-02-22  Duncan Sands  <baldrick@free.fr>
9010
9011         * passes.c (register_pass): Always consider all pass lists when
9012         ref_pass_instance_number is zero.
9013
9014 2010-02-22  Richard Guenther  <rguenther@suse.de>
9015
9016         PR tree-optimization/42749
9017         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
9018         parameter.  Do arithmetic in the original type.
9019         (update_accumulator_with_ops): Likewise.
9020         (adjust_accumulator_values): Adjust.
9021
9022 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9023
9024         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
9025         (QI to BLKmode splitter): New splitter.
9026
9027 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
9028
9029         * config/i386/i386.c (initial_ix86_tune_features): Turn on
9030         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
9031
9032 2010-02-22  Richard Guenther  <rguenther@suse.de>
9033
9034         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
9035
9036 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
9037
9038         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
9039         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
9040         ($(T)crti.o, $(T)crtn.o): Remove rules.
9041
9042 2010-02-21  Tobias Burnus  <burnus@net-b.de>
9043
9044         PR fortran/35259
9045         * doc/invoke.texi (-fassociative-math): Document that this
9046         option is automatically enabled for Fortran.
9047
9048 2010-02-20  David S. Miller  <davem@davemloft.net>
9049
9050         * configure.ac: Test if linker and assembler properly support
9051         GOTDATA_OP relocations.
9052         * configure: Rebuild.
9053         * config.in: Likewise.
9054         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
9055         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
9056         (movsi_high_pic): Likewise.
9057         (movdi_lo_sum_pic): Likewise.
9058         (movdi_high_pic): Likewise.
9059         (movsi_pic_gotdata_op): New pattern.
9060         (movdi_pic_gotdata_op): Likewise.
9061         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
9062         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
9063
9064 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
9065
9066         PR target/43067
9067         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
9068         attribute to ssemul.
9069         (xop_mulv2div2di3_high): Ditto.
9070
9071 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9072
9073         PR c++/35669
9074         * c.opt (Wconversion-null): New option.
9075         * doc/invoke.texi (Wconversion-null): Document.
9076
9077 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9078
9079         * common.opt (Wlarger-than-): Add Undocumented.
9080
9081 2010-02-19  Mike Stump  <mikestump@comcast.net>
9082
9083         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
9084
9085 2010-02-19  Jason Merrill  <jason@redhat.com>
9086
9087         PR target/40332
9088         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
9089         * configure: Likewise.
9090
9091 2010-02-20  Alan Modra  <amodra@gmail.com>
9092
9093         PR middle-end/42344
9094         * cgraph.h (cgraph_make_decl_local): Declare.
9095         * cgraph.c (cgraph_make_decl_local): New function.
9096         (cgraph_make_node_local): Use it.
9097         * cgraphunit.c (cgraph_function_versioning): Likewise.
9098         * ipa.c (function_and_variable_visibility): Likewise.
9099
9100 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9101
9102         PR bootstrap/43121
9103         * except.c (sjlj_emit_function_enter): Don't call
9104         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
9105         directly.
9106         * rtl.h (add_reg_br_prob_note): Remove prototype.
9107
9108 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9109
9110         PR 41779
9111         * c-common.c (conversion_warning): Remove widening conversions
9112         before checking the conversion of integers to reals.
9113
9114 2010-02-19  Mike Stump  <mikestump@comcast.net>
9115
9116         PR middle-end/43125
9117         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
9118
9119         PR objc/43061
9120         * cgraphunit.c (process_function_and_variable_attributes): Check
9121         DECL_PRESERVE_P instead of looking up attribute "used".
9122         * ipa-pure-const.c (check_decl): Likewise.
9123         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
9124         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
9125         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
9126         instead of attribute "used".
9127         * config/sol2-c.c (solaris_pragma_init): Likewise.
9128         (solaris_pragma_fini): Likewise.
9129
9130 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9131
9132         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
9133         Use XCNEW instead of xcalloc.
9134         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
9135         XNEW instead of xmalloc.
9136         (get_fields): Use XNEWVEC instead of xmalloc.
9137
9138         PR debug/43084
9139         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
9140         populate vars array.
9141         (create_new_general_access): For debug stmts just reset value.
9142         (get_stmt_accesses): For accesses within debug stmts just record them
9143         using add_access_to_acc_sites instead of preventing the peeling or
9144         counting them as accesses.
9145
9146         PR middle-end/42233
9147         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
9148
9149 2010-02-19  Richard Guenther  <rguenther@suse.de>
9150
9151         PR tree-optimization/42916
9152         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
9153         instructions.
9154
9155 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
9156
9157         * configure.ac: Replace all uses of changequote in macro arguments
9158         with proper quoting.
9159
9160 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9161
9162         PR middle-end/42233
9163         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
9164
9165 2010-02-19  Richard Guenther  <rguenther@suse.de>
9166
9167         PR tree-optimization/42944
9168         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
9169         test for aliasing with errno.
9170
9171 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9172
9173         PR middle-end/42233
9174         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
9175         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
9176         * dojump.c: Include output.h.
9177         (inv): New inline function.
9178         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
9179         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
9180         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
9181         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
9182         argument, pass it down to other calls.
9183         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
9184         add REG_BR_PROB note to the conditional jump.
9185         * cfgexpand.c (add_reg_br_prob_note): Removed.
9186         (expand_gimple_cond): Don't call it, add the probability
9187         as last argument to jumpif_1/jumpifnot_1.
9188         * Makefile.in (dojump.o): Depend on output.h.
9189         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
9190         callers.
9191         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
9192         * stmt.c (do_jump_if_equal): Likewise.
9193         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
9194         * loop-unswitch.c (compare_and_jump_seq): Likewise.
9195         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
9196         Likewise.
9197         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
9198         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
9199         jumpifnot_1 callers.
9200         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
9201         callers.
9202         (store_expr): Adjust jumpifnot caller.
9203         (store_constructor): Adjust jumpif caller.
9204
9205         PR middle-end/42233
9206         * gimplify.c (gimple_boolify): For __builtin_expect call
9207         gimple_boolify also on its first argument.
9208
9209 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
9210
9211         * configure.ac (gnu-unique-object): Wrap regexps using [] in
9212         changequote block.
9213         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
9214         * configure: Regenerated.
9215
9216 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9217
9218         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
9219         lang_hooks.types_compatible_p instead of comptypes.
9220
9221 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
9222
9223         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
9224         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
9225         if __prefer_thumb__ is defined.
9226
9227 2010-02-18  Martin Jambor  <mjambor@suse.cz>
9228
9229         PR tree-optimization/43066
9230         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
9231         array with zero-sized element type.
9232
9233 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
9234
9235         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
9236         rtx, allocate struct var_loc_node here and return it to the
9237         caller, and only if it is actually needed.
9238         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
9239         move it earlier and return immediately if it returns NULL.
9240
9241 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
9242
9243         * config/sparc/gas.h: New file.  Restore
9244         TARGET_ASM_NAMED_SECTION to its ELF default.
9245         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
9246         check !HAVE_GNU_AS.
9247         * config/sparc/sparc.c (sparc_elf_asm_named_section):
9248         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
9249         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
9250         after sparc/sysv4.h.
9251
9252 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
9253
9254         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
9255
9256 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
9257
9258         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
9259         patterns from predicated pattern.
9260
9261 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
9262
9263         PR target/43103
9264         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
9265         for insn mnemonic suffix.
9266
9267 2010-02-17  Richard Guenther  <rguenther@suse.de>
9268
9269         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
9270         to loop PHI nodes.
9271
9272 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
9273
9274         PR debug/42918
9275         * caller-save.c (save_call_clobbered_regs): If BB ends with
9276         a DEBUG_INSN, move any notes in between last real insn and the last
9277         DEBUG_INSN after the last DEBUG_INSN.
9278
9279 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
9280
9281         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
9282         Fix return type.  Fix argument type.  Explain meaning of return value.
9283
9284 2010-02-16  Richard Guenther  <rguenther@suse.de>
9285
9286         PR tree-optimization/41043
9287         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
9288         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
9289         statements ...
9290         (vrp_visit_phi_node): ... but only for loop PHI nodes.
9291
9292 2010-02-16  Ira Rosen  <irar@il.ibm.com>
9293
9294         PR tree-optimization/43074
9295         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
9296         * tree-vect-loop.c (vect_analyze_loop_operations): Add
9297         vectorizable cycles in hybrid SLP check.
9298         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
9299
9300 2010-02-16  Richard Guenther  <rguenther@suse.de>
9301
9302         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
9303         (true_dependence): If memrefs_conflict_p computes must-alias
9304         trust it.  Move TBAA check after offset-based disambiguation.
9305         (canon_true_dependence): Likewise.
9306
9307 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
9308
9309         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
9310         * doc/invoke.texi: Document it.
9311         * var-tracking.c: Include toplev.h and params.h.
9312         (vt_find_locations): Return bool indicating success.  Compute
9313         hash sizes unconditionally.  Check new parameter, report.
9314         (variable_tracking_main_1): Check vt_find_locations results and
9315         retry.  Renamed from...
9316         (variable_tracking_main): ... this.  New wrapper to preserve
9317         flag_var_tracking_assignments.
9318         * Makefile.in (var-tracking.o): Adjust dependencies.
9319
9320 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
9321             Jakub Jelinek <jakub@redhat.com>
9322
9323         PR target/42854
9324         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
9325         if weak_import attribute is present.
9326         * config/darwin.c (machopic_select_section): Likewise.
9327
9328 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
9329
9330         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
9331         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
9332         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
9333         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
9334
9335         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
9336         types.
9337
9338         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
9339         Fix argument types.
9340
9341         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
9342         Rewrite text to refer to the names.
9343
9344 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
9345
9346         * config/i386/i386-builtin-types.def
9347         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
9348         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
9349         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
9350         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
9351         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
9352         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
9353         IX86_BUILTIN_VPERMIL2PS256.
9354         (MULTI_ARG_4_DF2_DI_I): Defined.
9355         (MULTI_ARG_4_DF2_DI_I1): Defined.
9356         (MULTI_ARG_4_SF2_SI_I): Defined.
9357         (MULTI_ARG_4_SF2_SI_I1): Defined.
9358         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
9359         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
9360         __builtin_ia32_vpermil2ps256.
9361         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9362         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9363         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
9364         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9365         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9366         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
9367         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
9368         CODE_FOR_xop_vpermil2v8sf3.
9369         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
9370         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
9371         * config/i386/xopintrin.h (_mm_permute2_pd): New.
9372         (_mm256_permute2_pd): New.
9373         (_mm_permute2_ps): New.
9374         (_mm256_permute2_ps): New.
9375
9376 2010-02-15  Nick Clifton  <nickc@redhat.com>
9377
9378         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
9379         boolean parameters.  Use emit_jump_insn when emitting a pop
9380         instruction containing a return insn.
9381         (push): Use 'true' rather than '1' as second parameter to F.
9382         (h8300_expand_prologue): Likewise.
9383         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
9384         (h8300_expand_epilogue): Likewise.
9385
9386 2010-02-15  Richard Guenther  <rguenther@suse.de>
9387
9388         PR middle-end/43068
9389         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
9390         if that is zero.
9391
9392 2010-02-15  Nick Clifton  <nickc@redhat.com>
9393
9394         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
9395         delta.
9396
9397 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
9398
9399         * intl.c (fake_ngettext): New function.
9400         * intl.h (fake_ngettext): Declare.
9401         (ngettext): Define macro.
9402         * collect2.c (notice_translated): New function.
9403         (main): Use notice_translated and ngettext.
9404         * collect2.h (notice_translated): Declare.
9405
9406 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
9407
9408         * reorg.c (delete_computation): Comment fixes.
9409         * caller-save.c (setup_save_areas): Idem.
9410         * sel-sched-dump.c (dump_lv_set): Idem.
9411         * rtl.def: Idem.
9412
9413 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9414
9415         * config/s390/s390.c (s390_sched_init): New function.
9416         (TARGET_SCHED_INIT): Target hook defined.
9417
9418 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
9419             Jack Howarth  <howarth@bromo.med.uc.edu>
9420             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
9421
9422         PR target/42982
9423         Partial revert of unintended change in fix for PR41605.
9424         * config/darwin.h: Fix typo.
9425         * config/darwin9.h: Same.
9426
9427 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
9428
9429         * c-pch.c (pch_init): Clear v.
9430
9431 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9432
9433         PR middle-end/42930
9434         * graphite-scop-detection.c (graphite_can_represent_scev): Call
9435         graphite_can_represent_init for MULT_EXPR.
9436
9437 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9438
9439         PR middle-end/42914
9440         PR middle-end/42530
9441         * graphite-sese-to-poly.c (remove_phi): New.
9442         (translate_scalar_reduction_to_array): Call remove_phi.
9443
9444 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9445
9446         PR middle-end/42771
9447         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
9448         * graphite-clast-to-gimple.h (gloog): Update declaration.
9449         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
9450         * graphite-poly.h (struct poly_bb): Add missing comments.
9451         (struct scop): Add poly_scop_p field.
9452         (POLY_SCOP_P): New.
9453         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
9454         * graphite.c (graphite_transform_loops): Build the polyhedral
9455         representation for each scop before code generation.
9456         * sese.c (rename_variables_in_operand): Removed.
9457         (rename_variables_in_expr): Return the renamed expression.
9458         (rename_sese_parameters): New.
9459         * sese.h (rename_sese_parameters): Declared.
9460
9461 2010-02-11  Richard Guenther  <rguenther@suse.de>
9462
9463         PR tree-optimization/42998
9464         * tree-ssa-pre.c (create_expression_by_pieces): Treat
9465         POINTER_PLUS_EXPR properly.
9466
9467 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9468             Changpeng Fang  <changpeng.fang@amd.com>
9469
9470         PR middle-end/40886
9471         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
9472         the cost of an IV candidate when the IV is used in a test against zero.
9473
9474         * gcc.dg/tree-ssa/ivopts-3.c: New.
9475
9476 2010-02-11  Richard Guenther  <rguenther@suse.de>
9477
9478         PR lto/41664
9479         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
9480         pointer-vs-decl case by swapping refs.  Handle some cases
9481         of pointer-vs-decl disambiguations more conservatively.
9482         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
9483         to false after expanding.
9484
9485 2010-02-11  Richard Guenther  <rguenther@suse.de>
9486
9487         PR driver/43021
9488         * gcc.c (process_command): Handle LTO file@offset case more
9489         appropriately.
9490
9491 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
9492
9493         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
9494         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
9495         of DEBUG_INSNs.
9496         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
9497
9498         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
9499         if MEM's mode size isn't DWARF2_ADDR_SIZE.
9500         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
9501         Optimize eq/ne comparisons when both arguments are known to be
9502         zero-extended.
9503         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
9504         Don't mask operands unnecessarily if they are known to be already
9505         zero-extended.
9506
9507 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
9508
9509         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
9510         instead of loop.
9511
9512 2010-02-10  Richard Guenther  <rguenther@suse.de>
9513
9514         PR tree-optimization/43017
9515         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
9516         for wrapping signed arithmetic.
9517
9518 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
9519
9520         PR debug/43010
9521         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
9522         if no debug info should be emitted for it.
9523
9524 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
9525
9526         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
9527         note when flag_exceptions is set.
9528
9529 2010-02-10  Duncan Sands  <baldrick@free.fr>
9530
9531         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
9532
9533 2010-02-10  Richard Guenther  <rguenther@suse.de>
9534
9535         PR c/43007
9536         * tree.c (get_unwidened): Handle constants.
9537         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
9538
9539 2010-02-10  Martin Jambor  <mjambor@suse.cz>
9540
9541         PR lto/42985
9542         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
9543         check for variable argument counts independently.
9544
9545 2010-02-10  Christian Bruel  <christian.bruel@st.com>
9546
9547         PR target/42841
9548         * config/sh/sh.c (find_barrier): Increase length for non delayed
9549         conditional branches.
9550
9551 2010-02-10  Christian Bruel  <christian.bruel@st.com>
9552
9553         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
9554
9555 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
9556
9557         * builtins.c (set_builtin_user_assembler_name): Also handle
9558         ffs if int is smaller than word.
9559
9560 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
9561
9562         PR middle-end/42973
9563         * ira-conflicts.c (get_dup): Remove.
9564         (process_reg_shuffles): Add new parameter.  Use it as an
9565         additional guard for copy generation.
9566         (add_insn_allocno_copies): Rewrite.
9567
9568 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
9569
9570         * common.opt (fsched2-use-traces): Preserved for backward
9571         compatibility.
9572         * doc/invoke.texi: Remove the documentation about option
9573         -fsched2-use-traces.
9574         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
9575         flag_sched2_use_traces.
9576         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
9577         the backward compatibility flag section.
9578
9579 2010-02-09  Richard Guenther  <rguenther@suse.de>
9580
9581         PR tree-optimization/43008
9582         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
9583         make HEAP variables initialized from global memory if they
9584         are not known builtin functions.
9585         (find_func_aliases): Adjust.
9586
9587 2010-02-09  Richard Guenther  <rguenther@suse.de>
9588
9589         PR tree-optimization/43000
9590         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
9591         arithmetic manually.
9592
9593 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
9594
9595         PR tree-optimization/42931
9596         * tree-loop-linear.c (try_interchange_loops): Don't call
9597         double_int_mul if estimated_loop_iterations failed.
9598
9599 2010-02-08  Martin Jambor  <mjambor@suse.cz>
9600
9601         PR middle-end/42898
9602         * tree-sra.c (build_accesses_from_assign): Do not mark in
9603         should_scalarize_away_bitmap if stmt has volatile ops.
9604         (sra_modify_assign): Do not process assigns piecemeal if if stmt
9605         has volatile ops.
9606
9607 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
9608
9609         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
9610
9611 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
9612
9613         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
9614         before the pattern.
9615
9616 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
9617
9618         PR middle-end/42946
9619         * df-core.c (df_finish_pass): Change type of saved_flags to int.
9620
9621 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
9622
9623         PR middle-end/42988
9624         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
9625         to unknown_dependence.
9626         (graphite_legal_transform_dr): Handle the unknown_dependence.
9627         (graphite_carried_dependence_level_k): Same.
9628
9629 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
9630
9631         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
9632
9633 2010-02-07  Richard Guenther  <rguenther@suse.de>
9634
9635         PR middle-end/42991
9636         * expr.c (get_inner_reference): Always initialize *pbitsize.
9637
9638 2010-02-07  Richard Guenther  <rguenther@suse.de>
9639
9640         PR middle-end/42956
9641         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
9642         new ARRAY_REFs on variable size element or minimal index arrays.
9643         Complete.
9644         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
9645         gimple_fold_indirect_ref.
9646
9647 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
9648
9649         PR target/42957
9650         * arm.c (arm_override_options): Just return if the user has specified
9651         an invalid fpu name.
9652
9653 2010-02-03  Jason Merrill  <jason@redhat.com>
9654
9655         PR c++/42870
9656         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
9657         i386_pe_maybe_record_exported_symbol.
9658
9659 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
9660
9661         PR target/42924
9662         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
9663         (pa_delegitimize_address): New function.
9664
9665 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
9666
9667         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
9668         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
9669
9670 2010-02-05  Richard Guenther  <rguenther@suse.de>
9671
9672         PR lto/42762
9673         * lto-streamer-in.c (get_resolution): Deal with references
9674         to undefined functions.
9675
9676 2010-02-05  Richard Guenther  <rguenther@suse.de>
9677
9678         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
9679         (fold_const_aggregate_ref): Likewise.
9680         (ccp_fold_stmt): Substitute loads.
9681         (maybe_fold_reference): Verify types before substituting.
9682         Unshare properly.
9683         (fold_gimple_assign): Unshare properly.
9684         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
9685
9686 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
9687
9688         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
9689         for rs6000_gen_cell_microcode.
9690
9691 2010-02-04  Richard Guenther  <rguenther@suse.de>
9692
9693         PR rtl-optimization/42952
9694         * dse.c (const_or_frame_p): Remove MEM handling.
9695
9696 2010-02-04  Nick Clifton  <nickc@redhat.com>
9697
9698         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
9699         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
9700         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
9701         (mn10300_asm_output_mi_thunk): New function.
9702         (mn10300_can_output_mu_thunk): New function.
9703         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
9704         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
9705         (FUNCTION_ARG): Delete incorrect comment.
9706
9707 2010-02-03  Jason Merrill  <jason@redhat.com>
9708
9709         PR c++/40138
9710         * fold-const.c (operand_equal_p): Handle erroneous types.
9711
9712 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
9713
9714         * config/h8300/h8300.md (can_delay): Fix attibute condition.
9715
9716 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
9717
9718         PR rtl-optimization/42941
9719         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
9720         of xmalloc.
9721
9722 2010-02-03  Jason Merrill  <jason@redhat.com>
9723
9724         PR c++/35652
9725         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
9726
9727 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
9728
9729         PR debug/42896
9730         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
9731         (cselib_reset_table): Renamed from...
9732         (cselib_reset_table_with_next_value): ... this.
9733         (cselib_get_next_uid): Renamed from...
9734         (cselib_get_next_unknown_value): ... this.
9735         * cselib.c (next_uid): Renamed from...
9736         (next_unknown_value): ... this.
9737         (cselib_clear_table): Adjust.
9738         (cselib_reset_table): Adjust.  Renamed from...
9739         (cselib_reset_table_with_next_value): ... this.
9740         (cselib_get_next_uid): Adjust.  Renamed from...
9741         (cselib_get_next_unknown_value): ... this.
9742         (get_value_hash): Use hash.
9743         (cselib_hash_rtx): Likewise.
9744         (new_cselib_val): Adjust.  Set and dump uid.
9745         (cselib_lookup_mem): Pass next_uid as hash.
9746         (cselib_subst_to_values): Likewise.
9747         (cselib_log_lookup): Dump uid.
9748         (cselib_lookup): Pass next_uid as hash.  Adjust.
9749         (cselib_process_insn): Adjust.
9750         (cselib_init): Initialize next_uid.
9751         (cselib_finish): Adjust.
9752         (dump_cselib_table): Likewise.
9753         * dse.c (canon_address): Dump value uid.
9754         * print-rtl.c (print_rtx): Print value uid.
9755         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
9756         (dvuid): New type.
9757         (dv_uid): New function, sort of renamed from...
9758         (dv_htab_hash): ... this, reimplemented in terms of it and...
9759         (dv_uid2hash): ... this.  New.
9760         (variable_htab_eq): Drop excess assertions.
9761         (tie_break_pointers): Removed.
9762         (canon_value_cmp): Compare uids.
9763         (variable_post_merge_New_vals): Print uids.
9764         (vt_add_function_parameters): Adjust.
9765         (vt_initialize): Reset table.  Adjust.
9766
9767 2010-02-03  Richard Guenther  <rguenther@suse.de>
9768
9769         PR tree-optimization/42944
9770         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
9771         (call_may_clobber_ref_p_1): Likewise.  Properly handle
9772         malloc and calloc clobbering errno.
9773
9774 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
9775
9776         * doc/invoke.texi: Fix name of sched1 dump.
9777
9778         * opts.c (decode_options): Set flag_tree_switch_conversion
9779         only conditionally on optimize >= 2.
9780
9781         * gcse.c: Assorted comment fixes in pass description.
9782
9783 2010-02-03  Anthony Green  <green@moxielogic.com>
9784
9785         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
9786         nop padding in order to maintain alignment of storage location of
9787         target function address.
9788         (moxie_trampoline_init): Store target function address at newly
9789         aligned location.
9790         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
9791         to 32.
9792         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
9793
9794 2010-02-03  Richard Guenther  <rguenther@suse.de>
9795
9796         PR middle-end/42927
9797         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
9798
9799 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9800
9801         * config.gcc: Reenable check for obsolete targets.
9802         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
9803         mips-sgi-irix6.[0-4]*.
9804
9805 2010-02-02  Nick Clifton  <nickc@redhat.com>
9806
9807         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
9808         constant size of 4 as being the same as 0.
9809         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
9810         can take values in the range 0..4.
9811
9812 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
9813
9814         PR java/41991
9815         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
9816         as _darwin10_Unwind_FindEnclosingFunction().
9817         * libgcc-libsystem.ver: New.
9818
9819 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
9820
9821         PR target/41399
9822         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
9823         implicitly set registers.
9824
9825 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
9826
9827         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
9828         (arm_override_options): Allow automatic selection of the thread
9829         pointer register if thumb2.
9830         (legitimize_pic_address): Improve code sequences for Thumb2.
9831         (arm_call_tls_get_addr): Likewise.
9832         (legitimize_tls_address): Likewise.
9833         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
9834         (pic_load_addr_32bit): ... this.  New named pattern.
9835         * thumb2.md (pic_load_addr_thumb2): Delete.
9836         (pic_load_dot_plus_four): Delete.
9837         (tls_load_dot_plus_four): New named pattern.
9838
9839 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9840
9841         PR libgomp/29986
9842         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
9843         Document fix for TLS bug.
9844
9845 2010-01-31  Richard Guenther  <rguenther@suse.de>
9846
9847         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
9848         conservatively correct.
9849
9850 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9851
9852         PR target/42850
9853         Revert:
9854         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9855
9856         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
9857
9858 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9859
9860         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
9861
9862 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
9863
9864         * config.gcc: Adjust order of makefile fragments for mingw targets.
9865
9866 2010-01-31  Richard Guenther  <rguenther@suse.de>
9867
9868         PR middle-end/42898
9869         * gimplify.c (gimplify_init_constructor): For volatile LHS
9870         initialize a temporary.
9871
9872 2010-01-31  Matthias Klose  <doko@ubuntu.com>
9873
9874         * configure.ac: Fix __stack_chk_fail check for cross builds configured
9875         --with-headers
9876         * configure: Regenerate.
9877
9878 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
9879
9880         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
9881         the same alias set and their sizes different constantness.
9882         (aliasing_component_refs_p): Revert 2009-10-24 change.
9883
9884 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9885
9886         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
9887         unused.
9888
9889 2010-01-29  Richard Guenther  <rguenther@suse.de>
9890
9891         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
9892         Assert we successfully updated the call.
9893
9894 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
9895
9896         PR rtl-optimization/42889
9897         * df.h (df_set_bb_dirty_nonlr): New prototype.
9898         * df-core.c (df_set_bb_dirty_nonlr): New function.
9899         * df-scan.c (df_insn_rescan): Call it instead of
9900         df_set_bb_dirty for DEBUG_INSNs.
9901
9902 2010-01-29  Richard Guenther  <rguenther@suse.de>
9903
9904         PR middle-end/37448
9905         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
9906         quadratic behavior in most cases.
9907
9908 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
9909
9910         PR target/42891
9911         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
9912         in the call to gen_x86_movsicc_0_m1.
9913
9914 2010-01-28  Richard Guenther  <rguenther@suse.de>
9915
9916         PR tree-optimization/42871
9917         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
9918
9919 2010-01-28  Richard Guenther  <rguenther@suse.de>
9920
9921         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
9922         into call arguments.
9923
9924 2010-01-28  Richard Guenther  <rguenther@suse.de>
9925
9926         PR middle-end/42883
9927         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
9928         the forwarder if the destination is an EH landing pad.
9929
9930 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
9931
9932         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
9933         block list passed to gimple_duplicate_sese_tail.
9934         (parallelize_loops): Avoid parallelization when the function
9935         has_nonlocal_label.
9936         Avoid parallelization when the preheader is IRREDUCIBLE.
9937         Try to optimize when estimated_loop_iterations_int is unresolved.
9938         Add the loop's location to the dump file.
9939         * tree-cfg.c (add_phi_args_after_redirect): Remove.
9940         (gimple_duplicate_sese_tail): Remove the check for the latch.
9941         Redirect nexits to the exit block.
9942         Remove handling of the incoming edges to the latch.
9943         Redirect the backedge from the copied latch to the exit bb.
9944
9945 2010-01-28  Michael Matz  <matz@suse.de>
9946
9947         PR target/42881
9948         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
9949         Wrap force_reg into a sequence, emit it before user.
9950
9951 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
9952
9953         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
9954         (arm_rev): New.
9955         (arm_legacy_rev): Likewise.
9956         (thumb_legacy_rev): Likewise.
9957
9958 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
9959
9960         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
9961         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
9962         on MEM's address failed, try avoid_constant_pool_reference and
9963         recurse if it returned something different.
9964         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
9965         address, try avoid_constant_pool_reference and recurse if it
9966         returned something different.
9967         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
9968         address and avoid_constant_pool_reference returned something
9969         different, don't set have_address.
9970
9971 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
9972
9973         PR debug/42861
9974         * var-tracking.c (val_store): Add modified argument, obey it.
9975         Adjust callers.
9976         (count_uses): Move down logging of main.
9977         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
9978         don't need resolution.
9979         (emit_notes_in_bb): Likewise.
9980
9981 2010-01-27  Richard Guenther  <rguenther@suse.de>
9982
9983         PR middle-end/42878
9984         * tree-inline.c (remap_decl): Delay remapping of SSA name
9985         default definitions until we need them.
9986
9987 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
9988
9989         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
9990         (rs6000_delegitimize_address): New function.
9991
9992         * config/s390/s390.c (s390_delegitimize_address): Call
9993         delegitimize_mem_from_attrs.
9994
9995         PR middle-end/42874
9996         * tree-inline.c (cannot_copy_type_1): Removed.
9997         (copy_forbidden): Don't forbid copying of functions containing
9998         records/unions with variable length fields.
9999
10000 2010-01-27  Christian Bruel  <christian.bruel@st.com>
10001
10002         Revert:
10003         PR target/42841
10004         * config/sh/sh.c (find_barrier): Increase length for non delayed
10005         conditional branches.
10006
10007 2010-01-27  Matthias Klose  <doko@ubuntu.com>
10008
10009         * configure.ac (gnu-unique-object): Fix ldd version check.
10010         * configure: Regenerate.
10011
10012 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10013
10014         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
10015         HAVE_GNU_AS value.
10016         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
10017         Test for HAVE_GNU_AS value.
10018
10019 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10020
10021         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
10022         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
10023         INT64_TYPE): Define.
10024         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
10025         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10026         INT_LEAST64_TYPE): Define.
10027         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
10028         UINT_LEAST64_TYPE): Define.
10029         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
10030         INT_FAST64_TYPE): Define.
10031         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10032         UINT_FAST64_TYPE): Define.
10033         (INTMAX_TYPE, UINTMAX_TYPE): Define.
10034         (INTPTR_TYPE, UINTPTR_TYPE): Define.
10035         (SIG_ATOMIC_TYPE): Define.
10036
10037 2010-01-26  Richard Guenther  <rguenther@suse.de>
10038
10039         * df-scan.c (df_scan_set_bb_info): Remove assert.
10040         (df_insn_rescan_debug_internal): Merge asserts.
10041         (df_install_ref): Likewise.
10042         (df_mark_reg): Use bitmap_set_range.
10043         (df_hard_reg_used_p): Remove assert.
10044         (df_hard_reg_used_count): Likewise.
10045
10046 2010-01-26  Richard Guenther  <rguenther@suse.de>
10047
10048         PR rtl-optimization/42685
10049         * web.c (web_main): Ignore DEBUG_INSNs.
10050
10051 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
10052
10053         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
10054
10055         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
10056         Fix types of fndecl and arglist parameters.
10057
10058 2010-01-26  Richard Guenther  <rguenther@suse.de>
10059
10060         PR middle-end/42806
10061         * tree-eh.c (unsplit_eh): Skip debug insns.
10062
10063 2010-01-26  Richard Guenther  <rguenther@suse.de>
10064
10065         PR tree-optimization/42250
10066         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
10067
10068 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
10069
10070         PR fortran/42866
10071         * omp-low.c (expand_omp_sections): Only use single_pred if
10072         l2_bb is single_pred_p.
10073
10074 2010-01-25  Christian Bruel  <christian.bruel@st.com>
10075
10076         PR target/42841
10077         * config/sh/sh.c (find_barrier): Increase length for non delayed
10078         conditional branches.
10079         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
10080
10081 2010-01-24  David S. Miller  <davem@davemloft.net>
10082
10083         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
10084         define if not using GAS.
10085         * config/sparc/sparc.c (sparc_elf_asm_named_section):
10086         Likewise.  Delete SECTION_MERGE code, which is only applicable
10087         when using GAS.
10088
10089 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
10090
10091         PR c++/42748
10092         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
10093         mangling of va_list in system headers.
10094
10095 2010-01-23  Toon Moene  <toon@moene.org>
10096
10097         * tree-predcom.c (combine_chains): Return NULL, not false.
10098
10099 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
10100
10101         * tree-loop-distribution.c (distribute_loop): Fix declaration and
10102         initialization of variable res to agree with return type.
10103
10104 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
10105
10106         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
10107         * tree-sra.c: Add include of expr.h.
10108
10109 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
10110
10111         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
10112         insert the debug stmt on the single non-EH edge from the stmt.
10113
10114 2010-01-22  Richard Henderson  <rth@redhat.com>
10115
10116         PR tree-opt/42833
10117         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
10118         the RHS until after generate_subtree_copies has insertted its
10119         code before the current statement.
10120
10121 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
10122
10123         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
10124
10125         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
10126
10127 2010-01-21  Martin Jambor  <mjambor@suse.cz>
10128
10129         PR tree-optimization/42585
10130         * tree-sra.c (struct access): New field grp_total_scalarization.
10131         (dump_access): Dump the new field.
10132         (should_scalarize_away_bitmap): New variable.
10133         (cannot_scalarize_away_bitmap): Likewise.
10134         (sra_initialize): Allocate new bitmaps.
10135         (sra_deinitialize): Free new bitmaps.
10136         (create_access_1): New function.
10137         (create_access): Parts moved to create_access_1.
10138         (type_consists_of_records_p): New function.
10139         (completely_scalarize_record): Likewise.
10140         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
10141         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
10142         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
10143         access.
10144         (analyze_all_variable_accesses): Completely scalarize small eligible
10145         records.
10146
10147 2010-01-21  Martin Jambor  <mjambor@suse.cz>
10148
10149         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
10150
10151 2010-01-21  Andrew Haley  <aph@redhat.com>
10152
10153         * gcc.c (process_command): Move lang_specific_driver before
10154         setting cc_libexec_prefix.
10155
10156 2010-01-21  Richard Guenther  <rguenther@suse.de>
10157
10158         PR middle-end/19988
10159         * fold-const.c (negate_expr_p): Pretend only negative
10160         real constants are easily negatable.
10161
10162 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
10163             Jason Merrill  <jason@redhat.com>
10164
10165         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
10166         (TYPE_TRANSPARENT_AGGR): this, for union and record.
10167         * calls.c (initialize argument_information): Handle it.
10168         * c-common.c (handle_transparent_union_attribute): Use new name.
10169         * c-decl.c (finish_struct): Ditto.
10170         * c-typeck.c (type_lists_compatible_p): Ditto.
10171         (convert_for_assignment): Use new name and also handle record.
10172         * function.c (aggregate_value_p): Handle it.
10173         (pass_by_reference): Ditto.
10174         (assign_parm_data_types): Ditto.
10175         * print-tree.c (print_node): Ditto.
10176         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
10177         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
10178         * tree.c (first_field): New fn.
10179
10180 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
10181
10182         PR target/42818
10183         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
10184         even when linking statically, for now.
10185
10186 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
10187
10188         PR debug/42715
10189         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
10190         without a cselib val.
10191         (count_uses): Accept MO_VAL_SET with no val on stores.
10192         (add_stores): Likewise.
10193
10194 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10195
10196         * var-tracking.c (check_value_val): Add a compile time assertion.
10197         (dv_is_decl_p): Simplify.
10198         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
10199         gcc_assert if ENABLE_CHECKING.
10200
10201 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
10202
10203         PR debug/42782
10204         * var-tracking.c: Include tree-flow.h.
10205         (mem_dies_at_call): New.
10206         (dataflow_set_preserve_mem_locs): Use it.
10207         (dataflow_set_remove_mem_locs): Likewise.
10208         (dump_var): Renamed from dump_variable.  Adjust all callers.
10209         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
10210         * Makefile.in (var-tracking.o): Adjust deps.
10211
10212 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
10213
10214         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
10215
10216 2010-01-20  Richard Guenther  <rguenther@suse.de>
10217
10218         PR tree-optimization/42717
10219         * tree-ssa-dce.c (get_live_post_dom): Remove.
10220         (forward_edge_to_pdom): Take an arbitrary edge to copy
10221         degenerate PHI args from.
10222         (remove_dead_stmt): Use the first post-dominator even if it
10223         does not contain live statements as redirection destination.
10224
10225 2010-01-20  Richard Guenther  <rguenther@suse.de>
10226
10227         * tree-inline.c (estimate_num_insns): Handle EH builtins.
10228
10229 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10230
10231         * sel-sched.c (create_speculation_check): Remove set but not used
10232         variable twin.
10233         (try_transformation_cache): Remove set but not used variable ds.
10234         (calculate_privileged_insns): Remove set but not used variables
10235         cur_insn and min_spec_insn.
10236         (find_best_expr): Remove set but not used variable avail_n.
10237         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
10238         variable e.
10239         * cgraphunit.c (assemble_thunk): Remove set but not used variable
10240         false_label.
10241         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
10242         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
10243         new_scop_exit_edge.
10244
10245 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
10246
10247         PR bootstrap/42786
10248         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
10249         cpu types.  Add support for *-sse3 cpu types.
10250         (x86_64-*-*): Ditto.
10251
10252 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10253
10254         PR middle-end/42803
10255         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
10256         argument, call initializer_constant_valid_p_1 instead of
10257         initializer_constant_valid_p, pass CACHE to it, return NULL
10258         immediately if first call returns NULL.
10259         (initializer_constant_valid_p_1): New function.
10260         (initializer_constant_valid_p): Use it.
10261
10262 2010-01-20  Thomas Quinot  <quinot@adacore.com>
10263
10264         * tree.def (PLACEHOLDER_EXPR): Fix comment.
10265
10266 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10267
10268         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
10269         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
10270         (loc_list_from_tree): Don't handle unsigned division.  Handle
10271         signed modulo using DW_OP_{over,over,div,mul,minus}.
10272         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
10273         modulo instead of signed.
10274
10275 2010-01-20  DJ Delorie  <dj@redhat.com>
10276
10277         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
10278         (Fpa): Pass it
10279         (h8300_emit_stack_adjustment): Propogate it.
10280         (push): Pass it.
10281         (h8300_expand_prologue): Likewise.
10282         (h8300_expand_epilogue): Likewise.
10283
10284 2010-01-19  Michael Matz  <matz@suse.de>
10285
10286         PR tree-optimization/41783
10287         * tree-data-ref.c (toplevel): Include flags.h.
10288         (dump_data_dependence_relation):  Also dump the inputs if the
10289         result will be unknown.
10290         (split_constant_offset_1): Look through some conversions.
10291         * tree-predcom.c (determine_roots_comp): Restart a new chain if
10292         the offset from last element is too large.
10293         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
10294         (reassociate_to_the_same_stmt): Handle vector registers.
10295         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
10296         (e.g. conversions).
10297         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
10298         wide_prolog_niters argument, emit widening instructions.
10299         (vect_do_peeling_for_alignment): Adjust caller, use widened
10300         variant of the iteration cound.
10301         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
10302
10303 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10304
10305         PR target/38697
10306         * config/arm/neon-testgen.m (emit_automatics): New parameter
10307         features. Adjust for Fixed_return_reg feature.
10308         (test_intrinsic): Call emit_automatics with new feature.
10309         * config/arm/neon.ml: Update copyright years.
10310         (features): New Fixed_return_reg feature.
10311         (ops): Update feature for Vget_low.
10312
10313 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
10314
10315         PR tree-optimization/42719
10316         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
10317         stmt uses.
10318
10319         PR debug/42728
10320         * fwprop.c (all_uses_available_at): Return false if def_set dest
10321         is a REG that is used in def_insn.
10322
10323 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
10324
10325         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
10326
10327         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
10328         Add argument names.
10329
10330         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
10331
10332         * target.h (struct gcc_target) <secondary_reload>: Change type
10333         of last argument to secondary_reload_info *.
10334
10335 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
10336
10337         PR target/42774
10338         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
10339         memory references with unaligned offsets.  Remove CQImode handling.
10340         (unaligned_memory_operand): Return 1 for memory references with
10341         unaligned offsets.  Remove CQImode handling.
10342
10343 2010-01-18  Richard Guenther  <rguenther@suse.de>
10344
10345         PR middle-end/39954
10346         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
10347         builtin calls.
10348
10349 2010-01-18  Richard Guenther  <rguenther@suse.de>
10350
10351         PR tree-optimization/42781
10352         * tree-ssa-structalias.c (find_what_var_points_to): Skip
10353         restrict processing only if the original variable was artificial.
10354
10355 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
10356
10357         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
10358         find number of popped argument bytes.
10359
10360         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
10361         Fix the text that describes the return value for invalid insns.
10362
10363         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
10364
10365         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
10366         Clarify what 'cost of the -dependence' is.  Fix quoting.
10367
10368         * toplev.c (default_get_pch_validity): Rename argument to "sz".
10369         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
10370
10371 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
10372
10373         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
10374         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
10375
10376 2010-01-17  Richard Guenther  <rguenther@suse.de>
10377
10378         PR middle-end/42248
10379         * function.c (split_complex_args): Take a VEC to modify.
10380         (assign_parms_augmented_arg_list): Build a VEC instead of
10381         a chain of PARM_DECLs.
10382         (assign_parms_unsplit_complex): Take a VEC of arguments.
10383         Do not fixup unmodified parms.
10384         (assign_parms): Deal with the VEC.
10385         (gimplify_parameters): Likewise.
10386
10387 2010-01-17  Richard Guenther  <rguenther@suse.de>
10388
10389         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
10390         node existence check.
10391         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
10392         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
10393         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
10394         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
10395         (gimple_execute_on_growing_pred): Likewise.
10396
10397 2010-01-17  Richard Guenther  <rguenther@suse.de>
10398
10399         PR tree-optimization/42773
10400         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
10401         (compute_antic_aux): Likewise.
10402         (compute_partial_antic_aux): Likewise.
10403
10404 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
10405
10406         PR debug/42767
10407         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
10408         and US_TRUNCATE.
10409
10410 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
10411
10412         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
10413         appearance.
10414
10415         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
10416         Fix markup for strict argument.
10417
10418         (TARGET_SCHED_REORDER2): Fix argument types.
10419
10420         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
10421         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
10422
10423         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
10424         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
10425
10426         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
10427         Add argument name.
10428
10429         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
10430         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
10431         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
10432         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
10433         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
10434
10435         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
10436
10437         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
10438
10439         (TARGET_ASM_RELOC_RW_MASK): Add return type.
10440         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
10441
10442         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
10443
10444         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
10445         Use prototype.
10446
10447         (TARGET_ASM_NAMED_SECTION): Fix argument list.
10448
10449         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
10450         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
10451
10452         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
10453
10454         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
10455
10456         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
10457         referring to it.  Fix language.
10458
10459         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
10460
10461         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
10462
10463         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
10464
10465         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
10466
10467         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
10468         '@var{stream}.  Remove stray 'and'.
10469
10470         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
10471
10472         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
10473
10474         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
10475
10476         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
10477         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
10478
10479         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
10480         Fix description of return value.
10481         Rename argument "sz" to "len."
10482
10483         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
10484         Clarify meaning of 'true' return value.
10485
10486         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
10487
10488         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
10489         rep_mode versus mode_rep.
10490
10491         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
10492
10493         (TARGET_BUILTIN_DECL): Fix name.
10494
10495         (TARGET_COMMUTATIVE_P): Fix type of first argument.
10496
10497         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
10498
10499         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
10500
10501         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
10502
10503         (TARGET_RELAXED_ORDERING): Use @deftypevr.
10504
10505         (TARGET_GET_DRAP_RTX): Note that this is a hook.
10506         Clarify language.
10507
10508         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
10509         Rename argument tm_fn to md_fn.
10510
10511         (TARGET_OPTION_PRINT): Fix argument list.
10512
10513 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
10514
10515         PR target/42664
10516         * config/i386/i386.c (ix86_fixup_binary_operands):
10517         Revert FMA4 fixup of operands.
10518
10519 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10520
10521         PR gcc/42525
10522         * Makefile.in (write_entries_to_file, install-plugin):
10523         Use \012 instead of \n with tr.
10524
10525 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
10526
10527         * configure.ac (HAVE_AS_REF): New C macro.
10528         * configure: Regenerate.
10529         * config.in: Likewise.
10530         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
10531         if HAVE_AS_REF.
10532         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
10533         if HAVE_AS_REF.
10534
10535 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
10536
10537         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
10538
10539         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
10540
10541         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
10542
10543         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
10544
10545         (TARGET_IN_SMALL_DATA_P): Fix argument type.
10546
10547         (TARGET_BINDS_LOCAL_P): Fix argument type.
10548
10549         (TARGET_ASM_FILE_END): Use prototype.
10550
10551         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
10552
10553         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
10554
10555         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
10556
10557         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
10558
10559         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
10560         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
10561
10562         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
10563         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
10564
10565         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
10566         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
10567         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
10568         (TARGET_ADDR_SPACE_CONVERT): Likewise.
10569
10570         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
10571
10572         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
10573
10574         (TARGET_INIT_BUILTINS): Use prototype.
10575
10576         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
10577         Put 'const char *' in braces.  Fix parameter types.
10578         (TARGET_INVALID_CONVERSION): Fix parameter types.
10579         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
10580         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
10581
10582         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
10583         Fix argument type.
10584
10585         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
10586
10587         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
10588
10589 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
10590
10591         * doc/tm.texi (TARGET_HELP): Fix return type.
10592
10593         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
10594         in braces.  Fix argument types.
10595
10596         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
10597
10598         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
10599
10600         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
10601
10602         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
10603         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
10604
10605         (TARGET_MANGLE_TYPE): Fix argument types.
10606
10607         (TARGET_IRA_COVER_CLASSES): Use prototype.
10608
10609         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
10610
10611         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
10612
10613         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
10614
10615         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
10616
10617         (TARGET_CALLEE_COPIES): Fix argument types.
10618
10619         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
10620
10621         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
10622
10623         (TARGET_FUNCTION_VALUE): Fix argument types.
10624
10625         (TARGET_RETURN_IN_MSB): Fix argument type.
10626
10627         (TARGET_RETURN_IN_MEMORY): Fix argument types.
10628
10629         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
10630
10631         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
10632
10633         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
10634         agree with return type.
10635
10636         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
10637
10638 2010-01-15  Jing Yu  <jingyu@google.com>
10639
10640         PR rtl-optimization/42691
10641         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
10642         a pseudo to a constant and are merged, and adjust comments.
10643
10644 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
10645
10646         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
10647
10648 2010-01-15  Richard Guenther  <rguenther@suse.de>
10649
10650         PR middle-end/42739
10651         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
10652         labels of computed or non-local gotos to the destination.
10653         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
10654         landing pad label is the first label.
10655
10656 2010-01-15  Richard Guenther  <rguenther@suse.de>
10657
10658         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
10659
10660 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
10661
10662         PR target/42747
10663         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
10664         to allow generation of the xssqrtdp instruction on power7.
10665         (sqrtdf2_fpr): Ditto.
10666
10667 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10668
10669         PR middle-end/42674
10670         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
10671         functions with noreturn attribute.
10672
10673         PR c++/42608
10674         * varasm.c (declare_weak): Add weak attribute to decl if it
10675         doesn't have one already.
10676         (assemble_external): Only add decls to weak_decls if they also
10677         have weak attribute.
10678
10679 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
10680
10681         * var-tracking.c (var_reg_delete): Don't delete the association
10682         between REGs and values or one-part variables if the register
10683         isn't clobbered.
10684
10685 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10686
10687         PR debug/42657
10688         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
10689         because its first operand is a non-localized variable.
10690
10691 2010-01-14  Martin Jambor  <mjambor@suse.cz>
10692
10693         PR tree-optimization/42706
10694         * tree-sra.c (encountered_recursive_call): New variable.
10695         (encountered_unchangable_recursive_call): Likewise.
10696         (sra_initialize): Initialize both new variables.
10697         (callsite_has_enough_arguments_p): New function.
10698         (scan_function): Call decl and flags check only for IPA-SRA, check
10699         whether there is a recursive call and whether it has enough arguments.
10700         (all_callers_have_enough_arguments_p): New function.
10701         (convert_callers): Look for recursive calls only when
10702         encountered_recursive_call is set.
10703         (ipa_early_sra): Bail out either if
10704         !all_callers_have_enough_arguments_p or
10705         encountered_unchangable_recursive_call.
10706
10707 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10708
10709         * sel-sched.c: Add 2010 to copyright years.
10710         * sel-sched-ir.c: Likewise.
10711         * sel-sched-ir.h: Likewise.
10712
10713 2010-01-14  Martin Jambor  <mjambor@suse.cz>
10714
10715         PR tree-optimization/42714
10716         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
10717         constructors specially.
10718
10719 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10720
10721         * config/i386/drivers-i386.c (detect_caches_intel):
10722         Add l2sizekb parameter and fill in.
10723         (host_detect_local_cpu): Add l2sizekb, fill in.
10724         Add Atom small cache heuristic.
10725
10726 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10727
10728         * config/i386/drivers-i386.c (detect_caches_cpuid4):
10729         Add level3 parameter and fill in.
10730         (detect_caches_intel): Handle level3 cache.
10731
10732 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10733
10734         * config/i386/drivers-i386.c (host_detect_local_cpu):
10735         Fix core duo detection.
10736
10737 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10738
10739         * config/i386/drivers-i386.c (host_detect_local_cpu):
10740         Fix Atom detection.
10741
10742 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10743
10744         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
10745         (rs6000_variable_issue_1): this.  Use...
10746         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
10747
10748 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10749
10750         * sel-sched-ir.c (sel_restore_other_notes): Rename to
10751         sel_restore_notes.  Update all callers.  Call reemit_notes
10752         for all insns.
10753
10754 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10755
10756         PR rtl-optimization/42246
10757         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
10758         loops.
10759
10760 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10761
10762         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
10763         all successors is the same as number of successors in current region.
10764
10765 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10766
10767         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
10768         to rename is not separable.  Otherwise check that its LHS is not NULL.
10769
10770 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10771
10772         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
10773
10774 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10775
10776         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
10777         available registers when failed to discover LHS register class.
10778         Fix indentation.  Update comment.
10779
10780 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10781             Alexander Monakov  <amonakov@ispras.ru>
10782
10783         PR rtl-optimization/42389
10784         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
10785         to can_issue_more.
10786         (advance_state_on_fence): Likewise.
10787         (sel_target_adjust_priority): Print debug output only when
10788         sched_verbose >= 4, not 2.
10789         (get_expr_cost): Do not issue all unique insns on the next cycle.
10790         (fill_insns): Initialize can_issue_more from the value saved
10791         with the fence.
10792         * sel-sched-ir.c (flist_add): New parameter issue_more.
10793         Init FENCE_ISSUE_MORE with it.
10794         (merge_fences): Likewise.
10795         (init_fences): Update call to flist_add.
10796         (add_to_fences, add_clean_fence_to_fences)
10797         (add_dirty_fence_to_fences): Likewise.
10798         (move_fence_to_fences): Update call to merge_fences.
10799         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
10800         sched groups.
10801         * sel-sched-ir.h (struct _fence): New field issue_more.
10802         (FENCE_ISSUE_MORE): New accessor macro.
10803
10804 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10805
10806         PR rtl-optimization/42388
10807         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
10808         that have no predecessors nor successors.  Do not call move_bb_info
10809         for empty blocks outside of current region.
10810
10811 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10812
10813         PR rtl-optimization/42294
10814         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
10815         * sel-sched.c (move_exprs_to_boundary): Transitively add all
10816         originators' originators.
10817
10818 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10819
10820         PR rtl-optimization/39453
10821         PR rtl-optimization/42246
10822         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
10823         for pipelining_p.
10824         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
10825
10826 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10827             Alexander Monakov  <amonakov@ispras.ru>
10828
10829         PR middle-end/42245
10830         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
10831         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
10832         argument.  Update all callers.
10833         (tidy_control_flow): ... and here.  Recompute topological order
10834         of basic blocks in region if necessary.
10835         (sel_redirect_edge_and_branch): Change return type.  Return true
10836         if topological order might have been invalidated.
10837         (purge_empty_blocks): Export and move from...
10838         * sel-sched.c (purge_empty_blocks): ... here.
10839         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
10840         (maybe_tidy_empty_bb): Delete prototype.
10841         (purge_empty_blocks): Declare.
10842
10843 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
10844
10845         PR rtl-optimization/42249
10846         * sel-sched.c (try_replace_dest_reg): When chosen register
10847         and original register is the same, do not bail out early, but
10848         still check all original insns for validity of replacing destination
10849         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
10850         in this case.
10851
10852 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10853
10854         PR c/42721
10855         Port from no-undefined-overflow branch:
10856         2009-03-09  Richard Guenther  <rguenther@suse.de>
10857
10858         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
10859
10860 2010-01-14  Richard Guenther  <rguenther@suse.de>
10861
10862         PR lto/42665
10863         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
10864
10865 2010-01-14  Ira Rosen  <irar@il.ibm.com>
10866
10867         PR tree-optimization/42709
10868         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
10869         as scalar type in creation of constant vector operand.
10870
10871 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10872
10873         PR testsuite/42414
10874         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
10875         (check-parallel-%): Match `testsuite' directory component only
10876         at the end.
10877
10878 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
10879
10880         PR translation/39521
10881         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
10882         strings with _().
10883
10884 2010-01-13  Richard Guenther  <rguenther@suse.de>
10885
10886         PR tree-optimization/42730
10887         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
10888         offset zero.
10889
10890 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
10891
10892         PR target/pr42542
10893         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
10894         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
10895         them signed.
10896
10897 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
10898
10899         * config/bfin/libgcc-bfin.ver: Regenerate based on current
10900         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
10901         ___umulsi3_highpart.
10902
10903         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
10904         rather than schedule_insns if the pass is enabled.
10905
10906 2010-01-13  Martin Jambor  <mjambor@suse.cz>
10907
10908         PR tree-optimization/42704
10909         * tree-sra.c (sra_modify_assign): Do not delete assignments to
10910         SSA_NAMEs.
10911
10912 2010-01-13  Martin Jambor  <mjambor@suse.cz>
10913
10914         PR tree-optimization/42703
10915         * tree-sra.c (analyze_access_subtree): Check that we can build a
10916         reference to the original data within the aggregate.
10917
10918 2010-01-13  Richard Guenther  <rguenther@suse.de>
10919
10920         PR tree-optimization/42705
10921         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
10922
10923 2010-01-13  Richard Guenther  <rguenther@suse.de>
10924
10925         PR middle-end/42716
10926         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
10927
10928 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
10929
10930         PR debug/41371
10931         * var-tracking.c (values_to_unmark): New variable.
10932         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
10933         values_to_unmark vector.  Moved body to...
10934         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
10935         instead queue it into values_to_unmark vector.
10936         (vt_find_locations): Free values_to_unmark vector.
10937
10938 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
10939
10940         * config/s390/s390.c (override_options): Set
10941         default of max-pending-list-length to 256
10942
10943 2010-01-13  Richard Guenther  <rguenther@suse.de>
10944
10945         PR lto/42678
10946         * tree-pass.h (PROP_gimple_lcx): New.
10947         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
10948         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
10949         before the final cleanup_eh.
10950         (dump_properties): Dump PROP_gimple_lcx.
10951         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
10952         (tree_lower_complex_O0): Remove.
10953         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
10954         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
10955         tree_lower_complex, schedule TODO_update_ssa.
10956         * lto-streamer-out.c (output_function): Stream the functions
10957         properties.
10958         * lto-streamer-in.c (input_function): Likewise.
10959         (lto_read_body): Do not override them here.
10960
10961 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
10962
10963         PR c/42708
10964         * c-typeck.c (build_c_cast): Fold value cast to union type before
10965         wrapping it in a CONSTRUCTOR.
10966
10967 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
10968
10969         PR rtl-optimization/42699
10970         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
10971         involved.
10972
10973 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10974
10975         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
10976         SUBTARGET_WARN_UNUSED_SPEC): Move ...
10977         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
10978         SUBTARGET_WARN_UNUSED_SPEC): ... here
10979         * config/mips/iris5.h (LIBGCC_SPEC): Define.
10980
10981 2010-01-12  Julian Brown  <julian@codesourcery.com>
10982
10983         * config/arm/neon-schedgen.ml (Utils): Don't try to
10984         open missing module.
10985         (find_with_result): New.
10986
10987 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
10988
10989         PR debug/42662
10990         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
10991         sharing when canonicalizing ({lt,ge}u (plus a b) b).
10992
10993         PR tree-optimization/42645
10994         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
10995         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
10996         decl_map, set processing_debug_stmt to -1 and return name without
10997         any remapping.
10998
10999 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
11000
11001         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
11002         binutils version, and reword target configuration description.
11003
11004 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
11005
11006         * config/avr/avr.h (LINKER_NAME): Remove.
11007
11008 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
11009
11010         PR target/42416
11011         * config/rs6000/rs6000.c (rs6000_override_options): On targets
11012         that support VSX, warn for -mno-altivec if vsx is not disabled,
11013         and disable vsx.
11014
11015 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
11016             Shujing Zhao  <pearly.zhao@oracle.com>
11017
11018         PR translation/42469
11019         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
11020         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
11021         character between option name and help text.
11022         * c.opt (imultilib): Likewise.
11023
11024 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
11025
11026         * lto-streamer-out.c (output_unreferenced_globals): Output static
11027         variables.
11028
11029 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
11030
11031         PR rtl-optimization/42621
11032         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
11033         optimizing for size.
11034         (duplicate_computed_gotos): Remove now-redundant check.
11035
11036 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
11037
11038         PR target/37454
11039         * configure.ac: Save and restore LDFLAGS and LIBS
11040         * configure: Regenerate.
11041
11042 2010-01-10  Richard Guenther  <rguenther@suse.de>
11043
11044         PR middle-end/42667
11045         * builtins.c (fold_builtin_strlen): Add type argument and
11046         convert the resulting length to it.
11047         (fold_builtin_1): Adjust.
11048
11049 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
11050
11051         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
11052         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
11053         1 insn.
11054         (num_insns_constant_wide): Adjust for that change.
11055
11056 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11057
11058         PR debug/42631
11059         * web.c (union_defs): Add used argument, to combine uses of
11060         uninitialized regs.
11061         (entry_register): Adjust type and tests of used argument.
11062         (web_main): Widen used for new use.  Pass it to union_defs.
11063         * df.h (union_defs): Adjust prototype.
11064
11065 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11066
11067         PR debug/42630
11068         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
11069         uses in new incoming argument.  Free body.
11070         (reset_debug_uses_in_loop): New.
11071         (analyze_insn_to_expand_var): Call the latter if the former found
11072         anything.  Fix whitespace.  Reject invalid dest overlaps before
11073         going through all insns in the loop.
11074
11075 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11076
11077         PR debug/42629
11078         * haifa-sched.c (dying_use_p): Debug insns don't count.
11079
11080 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11081
11082         PR middle-end/42363
11083         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
11084         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
11085         (verify_gimple_call): Reject LHS in noreturn calls.
11086
11087 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11088
11089         PR debug/42604
11090         PR debug/42395
11091         * tree-vect-loop-manip.c (adjust_info): New type.
11092         (adjust_vec): New pointer to vector.
11093         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
11094         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
11095         (slpeel_update_phis_for_duplicate_loop): Use them.
11096         (slpeel_update_phi_nodes_for_guard1): Likewise.
11097         (slpeel_update_phi_nodes_for_guard2): Likewise.
11098         (slpeel_tree_peel_loop_to_edge): Likewise.
11099         (vect_update_ivs_after_vectorizer): Likewise.
11100
11101 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11102
11103         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
11104         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
11105
11106 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11107
11108         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
11109         bogus uninitialized warning.
11110
11111 2010-01-09  Richard Guenther  <rguenther@suse.de>
11112
11113         PR middle-end/42512
11114         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
11115         the evolution is compatible with the initial condition.
11116
11117 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
11118
11119         * gcc.c (process_command): Update copyright notice dates.
11120         * gcov.c (print_version): Likewise.
11121         * gcov-dump.c (print_version): Likewise.
11122         * mips-tfile.c (main): Likewise.
11123         * mips-tdump.c (main): Likewise.
11124
11125 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
11126
11127         PR target/41885
11128         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
11129         (rotlhi3): Delete.
11130         (rotlhi3_8): Delete.
11131         (rotlsi3): Delete.
11132         (rotlsi3_8): Delete.
11133         (rotlsi3_16): Delete.
11134         (rotlsi3_24): Delete.
11135         (rotl<mode>3): New.
11136         (*rotw<mode>3): New.
11137         (*rotb<mode>3): New.
11138         * config/avr/avr.c (avr_rotate_bytes): New function.
11139         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
11140
11141 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
11142
11143         PR target/37454
11144         * configure.ac: Modify -rdynamic check.
11145         * configure: Regenerate.
11146
11147 2010-01-08  DJ Delorie  <dj@redhat.com>
11148
11149         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
11150         register popping order.
11151
11152 2010-01-08  Richard Guenther  <rguenther@suse.de>
11153
11154         PR lto/42528
11155         * c.opt (fsigned-char): Also let LTO handle this option.
11156         (funsigned-char): Likewise.
11157
11158 2010-01-07  Richard Guenther  <rguenther@suse.de>
11159
11160         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
11161         (gimple_op): Likewise.
11162         (gimple_op_ptr): Likewise.
11163         (gimple_assign_set_lhs): Remove gcc_assert.
11164         (gimple_assign_set_rhs1): Likewise.
11165         (gimple_assign_set_rhs2): Likewise.
11166         (gimple_call_set_lhs): Likewise.
11167         (gimple_call_set_fn): Likewise.
11168         (gimple_call_set_fndecl): Likewise.
11169         (gimple_call_fndecl): Likewise.
11170         (gimple_call_return_type): Likewise.
11171         (gimple_call_set_chain): Likewise.
11172         (gimple_call_num_args): Likewise.
11173         (gimple_call_set_arg): Likewise.
11174         (gimple_cond_set_code): Likewise.
11175         (gimple_cond_set_lhs): Likewise.
11176         (gimple_cond_set_rhs): Likewise.
11177         (gimple_cond_set_true_label): Likewise.
11178         (gimple_cond_set_false_label): Likewise.
11179         (gimple_label_set_label): Likewise.
11180         (gimple_goto_set_dest): Likewise.
11181         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
11182         (gimple_debug_bind_get_value): Likewise.
11183         (gimple_debug_bind_get_value_ptr): Likewise.
11184         (gimple_debug_bind_set_var): Likewise.
11185         (gimple_debug_bind_set_value): Likewise.
11186         (gimple_debug_bind_reset_value): Likewise.
11187         (gimple_debug_bind_has_value_p): Likewise.
11188         (gimple_return_retval_ptr): Remove gcc_assert.
11189         (gimple_return_retval): Likewise.
11190         (gimple_return_set_retval): Likewise.
11191         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
11192         (safe_referenced_var_iterator): Remove.
11193         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
11194         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
11195         (fill_referenced_var_vec): Remove.
11196         (first_readonly_imm_use): Remove redundant gcc_assert.
11197         (phi_arg_index_from_use): Combine gcc_asserts.
11198         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
11199         (first_imm_use_stmt): Remove redundant gcc_assert.
11200         * tree-cfg.c (verify_gimple_call): Verify function and chain
11201         operands.  Verify arguments.
11202         (verify_types_in_gimple_stmt): Verify condition code and labels.
11203
11204 2010-01-07  Richard Guenther  <rguenther@suse.de>
11205
11206         PR tree-optimization/42641
11207         * sese.c (rename_map_elt_info): Use the SSA name version, do
11208         not hash pointers.
11209
11210 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
11211
11212         PR tree-optimization/42625
11213         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
11214         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
11215
11216 2010-01-07  Duncan Sands  <baldrick@free.fr>
11217
11218         * Makefile.in (PLUGIN_HEADERS): Add version.h.
11219
11220 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
11221
11222         PR target/42511
11223         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
11224         note itself is not function_invariant_p.
11225
11226 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
11227
11228         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
11229         Do not add the DF_NOTE problem.
11230         * store-motion.c (execute_rtl_store_motion): Likewise.
11231
11232 2010-01-07  Martin Jambor  <mjambor@suse.cz>
11233
11234         PR tree-optimization/42157
11235         * tree-sra.c (compare_access_positions): Stabilize sort if both
11236         accesses have integer types, return zero immediately if they are the
11237         same.
11238
11239 2010-01-06  Richard Henderson  <rth@redhat.com>
11240
11241         PR middle-end/41883
11242         * haifa-sched.c (add_to_note_list): Merge into ...
11243         (concat_note_lists): ... here, and ...
11244         (unlink_other_notes, rm_other_notes): Merge into...
11245         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
11246         NOTE_INSN_EPILOGUE_BEG.
11247
11248 2010-01-06  Richard Guenther  <rguenther@suse.de>
11249
11250         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
11251         not inline regular functions into always-inline functions.
11252
11253 2010-01-06  Nick Clifton  <nickc@redhat.com>
11254
11255         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
11256         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
11257         used together.
11258         (OVERRIDE_OPTIONS): Delete.
11259         (OPTIMIZATION_OPTIONS): Define.
11260         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
11261         * config/rx/rx.c (rx_handle_option): Issue an error message if
11262         -mcpu=rx200 and -fpu are used together.
11263         (rx_set_optimization_options): New function.  Issue an error
11264         message if an optimization attribute attempts to reset the FPU/
11265         math optimization pairing.
11266         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
11267         * config/rx/rx.opt: Set the default to 32-bit doubles.
11268         * config/rx/t-rx: Add multilibs for -nofpu option.
11269         * doc/invoke.texi: Update documentation of RX options.
11270
11271 2010-01-06  Richard Guenther  <rguenther@suse.de>
11272
11273         * tree-ssa-pre.c (name_to_id): New global.
11274         (alloc_expression_id): Simplify SSA name handling.
11275         (lookup_expression_id): Likewise.
11276         (init_pre): Zero name_to_id.
11277         (fini_pre): Free it.
11278
11279 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
11280
11281         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
11282
11283 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
11284
11285         PR target/42542
11286         * config/i386/sse.md (smaxv2di3): New.
11287         (umaxv2di3): Likewise.
11288         (sminv2di3): Likewise.
11289         (uminv2di3): Likewise.
11290
11291 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
11292
11293         PR target/42564
11294         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
11295         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
11296         (legitimize_tls_address): Likewise.
11297         (sparc_tls_referenced_p): Likewise.
11298         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
11299         and adjust calls to legitimize_pic_address.
11300         (legitimate_constant_p) Use sparc_tls_referenced_p.
11301         (legitimate_pic_operand_p): Likewise.
11302         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
11303         (sparc_tls_symbol_ref_1): Delete.
11304         (sparc_tls_referenced_p): Make static, recognize specific patterns.
11305         (legitimize_tls_address): Make static, handle CONST patterns.
11306         (legitimize_pic_address): Make static, remove unused parameter and
11307         adjust recursive calls.
11308         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
11309         and adjust call to legitimize_pic_address.
11310         (sparc_output_mi_thunk): Likewise.
11311
11312 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
11313             H.J. Lu  <hongjiu.lu@intel.com>
11314
11315         PR target/42542
11316         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
11317         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
11318         operands to make them signed.
11319
11320         Revert:
11321         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11322
11323         PR target/42542
11324         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11325         GTU to GT for V4SI and V2DI.
11326
11327         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11328         (umin<mode>3): Removed.
11329         (uminv8hi3): New.
11330         (uminv4si3): Likewise.
11331
11332 2010-01-05  Martin Jambor  <mjambor@suse.cz>
11333
11334         PR tree-optimization/42462
11335         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
11336         current_function_decl to helper functions and macros.
11337
11338 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11339
11340         PR bootstrap/41771
11341         * flags.h: Don't include real.h.
11342         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
11343         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
11344         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
11345         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
11346         * dominance.c: Update copyright.
11347         * gimple.c (walk_gimple_op): Remove inline.
11348         * tree-ssa-reassoc.c: Include real.h.
11349         * Makefile.in (FLAGS_H): Remove $(REAL_H).
11350         (tree-ssa-reassoc.o): Depend on $(REAL_H).
11351
11352 2010-01-05  Nick Clifton  <nickc@redhat.com>
11353
11354         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
11355         register to push into the stack frame when the accumulator has to
11356         be saved during interrupts.
11357
11358 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
11359
11360         * doc/invoke.texi: Remove the documentation about option
11361         -Wunreachable-code.
11362         * common.opt (Wunreachable-code):  Preserved for backward
11363         compatibility.
11364         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
11365         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
11366         the backward compatibility flag section.
11367
11368 2010-01-05  Richard Guenther  <rguenther@suse.de>
11369
11370         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
11371
11372 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
11373
11374         PR other/42611
11375         * cfgexpand.c (expand_one_var): Diagnose too large variables.
11376
11377         PR tree-optimization/42508
11378         * tree-sra.c (convert_callers): Check for recursive call
11379         by comparing cgraph nodes instead of decls.
11380         (modify_function): Call ipa_modify_formal_parameters also
11381         on all same_body aliases.
11382
11383         * cgraphunit.c (cgraph_materialize_all_clones): Compare
11384         cgraph nodes when checking for same_body aliases.
11385
11386 2010-01-05  Richard Guenther  <rguenther@suse.de>
11387
11388         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
11389         allocation and lookup.
11390         (get_or_alloc_expr_for_constant): Likewise.
11391         (phi_translate): Sink allocation.
11392
11393 2010-01-04  Richard Guenther  <rguenther@suse.de>
11394
11395         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
11396         a new entry only if needed.
11397         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
11398         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
11399         hashtable lookup.
11400         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
11401         the result array.
11402         (phi_translate): Handle CONSTANTs early.
11403
11404 2010-01-04  Martin Jambor  <mjambor@suse.cz>
11405
11406         PR tree-optimization/42398
11407         * tree-sra.c (struct access): Removed flag grp_different_types.
11408         (dump_access): Do not dump the removed flag.
11409         (sort_and_splice_var_accesses): Do not set the removed flag.
11410         (sra_modify_expr): Check for type compatibility directly.
11411
11412 2010-01-04  Martin Jambor  <mjambor@suse.cz>
11413
11414         PR tree-optimization/42366
11415         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
11416         edges with variable number of parameters.
11417         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
11418         flag instead of asserting it.
11419         (ipa_read_node_info): Read uses_analysis_done flag.
11420
11421 2010-01-04  Richard Guenther  <rguenther@suse.de>
11422
11423         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
11424         iterative_hash_* as intended.
11425         (vn_reference_compute_hash): Likewise.  Simplify hashing
11426         SSA names.
11427         (vn_reference_lookup_2): Likewise.
11428         (vn_nary_op_compute_hash): Likewise.
11429         (vn_phi_compute_hash): Likewise.
11430         (expressions_equal_p): Remove strange code.
11431         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
11432         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
11433         (bitmap_insert_into_set_1): Take value-id as parameter.
11434         (add_to_value): Pass it.
11435         (bitmap_insert_into_set): Likewise.
11436         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
11437
11438 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
11439
11440         PR driver/42442
11441         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
11442         (do_self_spec): For switches with SWITCH_IGNORE set set also
11443         SWITCH_IGNORE_PERMANENTLY.
11444         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
11445         of SWITCH_IGNORE.
11446
11447 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
11448
11449         * lto-streamer-out.c (output_unreferenced_globals): Output the full
11450         tree of an unreferenced global var.
11451
11452 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11453
11454         PR target/42542
11455         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11456         GTU to GT for V4SI and V2DI.
11457
11458         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11459         (umin<mode>3): Removed.
11460         (uminv8hi3): New.
11461         (uminv4si3): Likewise.
11462
11463 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11464
11465         PR lto/42581
11466         * collect2.c (main): Turn on trace in collect2 if -v is passed
11467         to gcc with LTO.
11468
11469 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
11470
11471         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
11472         description of expression operand.
11473
11474 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
11475
11476         * configure.ac: Add install-html to target_list for Make-hooks.
11477         * configure: Regenerate.
11478         * fortran/Make-lang.in (F95_HTMLFILES): New.
11479         (fortran.html): Use it.
11480         (fortran.install-html): New.
11481         * Makefile.in (install-html): Add lang.install-html.
11482         * java/Make-lang.in (JAVA_HTMLFILES): New.
11483         (java.html): Use it.
11484         (java.install-html): New.
11485         * objc/Make-lang.in (objc.install-html): New.
11486         * objcp/Make-lang.in (obj-c++.install-html): New.
11487         * cp/Make-lang.in (c++.install-html): New.
11488         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
11489         * lto/Make-lang.in (lto.install-html): New.
11490
11491 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
11492
11493         PR lto/42520
11494         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
11495
11496 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
11497
11498         PR rtl-optimization/41862
11499         * store-motion.c (store_killed_in_insn, compute_store_table,
11500         remove_reachable_equiv_notes, replace_store_insn,
11501         build_store_vectors): Ignore all DEBUG_INSNs.
11502
11503 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
11504
11505         PR lto/41564
11506         * common.opt: Add dumpdir.
11507
11508         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
11509         isn't specified.
11510         (option_map): Add --dumpdir.
11511
11512         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
11513
11514         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
11515
11516         * opts.c (decode_options): Try dump_dir_name first if
11517         dump_base_name isn't an absolute path.
11518         (common_handle_option): Handle OPT_dumpdir.
11519
11520         * toplev.c (dump_dir_name): New.
11521         (print_switch_values): Also ignore -dumpdir.
11522
11523         * toplev.h (dump_dir_name): New.
11524
11525 2010-01-03  Richard Guenther  <rguenther@suse.de>
11526
11527         PR tree-optimization/42589
11528         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
11529         double-word expansion of bswap32.
11530
11531 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
11532
11533         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
11534         with BLOCK_FOR_INSN.
11535         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
11536         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
11537         noce_process_if_block): Likewise.
11538         * gcse.c (compute_local_properties, insert_expr_in_table,
11539         insert_set_in_table, canon_list_insert, find_avail_set,
11540         pre_insert_copy_insn): Likewise.
11541
11542         * basic-block.h (BLOCK_NUM): Move from here...
11543         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
11544
11545 2010-01-03  Richard Guenther  <rguenther@suse.de>
11546
11547         PR tree-optimization/42438
11548         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
11549         contains_may_not_return_call flag.
11550         (BB_MAY_NOTRETURN): New.
11551         (valid_in_sets): Trapping nary operations are not valid
11552         in blocks that may not return.
11553         (insert_into_preds_of_block): Remove check for trapping expressions.
11554         (compute_avail): Compute also BB_MAY_NOTRETURN.
11555
11556 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
11557
11558         * doc/invoke.texi: Add 2010 to copyright years.
11559
11560 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
11561
11562         * config/sparc/sparc.c: Fix formatting nits.
11563
11564 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
11565             Alexander Monakov  <amonakov@ispras.ru>
11566
11567         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
11568
11569 2010-01-02  Richard Guenther  <rguenther@suse.de>
11570
11571         PR middle-end/42577
11572         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
11573         (simplify_switch_using_ranges): Mark to be removed edges
11574         as non-executable.
11575
11576 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11577
11578         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
11579
11580         * collect2.c (scan_libraries): Add missing argument in call to
11581         scan_prog_file.
11582
11583 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
11584
11585         PR target/42448
11586         * config/alpha/predicates.md (aligned_memory_operand): Return false
11587         for CQImode.
11588         (unaligned_memory_operand): Return true for CQImode.
11589         * config/alpha/alpha.c (get_aligned_mem): Assert that location
11590         doesn not cross aligned SImode word boundary.
11591
11592 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
11593
11594         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
11595         Remove.
11596         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
11597         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
11598
11599 2010-01-02  Richard Guenther  <rguenther@suse.de>
11600
11601         PR lto/41597
11602         * toplev.c (compile_file): Emit LTO marker properly.  Change
11603         it to __gnu_lto_v1.
11604         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
11605
11606 2010-01-01  Richard Guenther  <rguenther@suse.de>
11607
11608         PR debug/42455
11609         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
11610
11611 2010-01-01  Richard Guenther  <rguenther@suse.de>
11612
11613         PR c/42570
11614         * c-decl.c (grokdeclarator): For zero-size arrays force
11615         structural equality checks as layout_type does.
11616
11617 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
11618
11619         * builtins.c: Update copyright to 2010.
11620
11621 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
11622
11623         PR lto/42531
11624         * lto-streamer-out.c (produce_asm): Revert the last change.
11625         (copy_function): Likewise.
11626
11627         * lto-streamer.c (lto_get_section_name): Skip any leading
11628         asterisk in name.
11629
11630 2010-01-01  Richard Guenther  <rguenther@suse.de>
11631
11632         PR middle-end/42559
11633         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
11634         for LABEL_DECLs.
11635
11636 \f
11637 Copyright (C) 2010 Free Software Foundation, Inc.
11638
11639 Copying and distribution of this file, with or without modification,
11640 are permitted in any medium without royalty provided the copyright
11641 notice and this notice are preserved.
11642
11643         PR bootstrap/44299
11644         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
11645         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
11646
11647 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
11648
11649         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
11650         toplev.h.
11651         * diagnostic.c: Don't include toplev.h.
11652         (progname): Define.  Moved from toplev.c.
11653         (seen_error): New function.
11654         * diagnostic.h: Include diagnostic-core.h.
11655         (diagnostic_t, emit_diagnostic): Don't declare here.
11656         * toplev.c (progname): Move to toplev.c.
11657         (emit_debug_global_declarations, compile_file, finalize,
11658         do_compile, toplev_main): Use seen_error.
11659         * toplev.h: Include diagnostic-core.h.
11660         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
11661         internal_error, warning, warning_at, error, error_n, error_at,
11662         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
11663         verbatim, fnotice, progname): Move to diagnostic-core.h.
11664         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
11665         (expand_builtin_expect): Use seen_error.
11666         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
11667         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
11668         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
11669         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
11670         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
11671         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
11672         errorcount for errors.
11673         * c-opts.c (c_common_finish): Use seen_error.
11674         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
11675         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
11676         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
11677         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
11678         (get_coverage_counts): Use seen_error.
11679         * dwarf2out.c (dwarf2out_finish): Use seen_error.
11680         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
11681         gimplify_body): Use seen_error.
11682         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
11683         * ipa-pure-const.c (gate_pure_const): Use seen_error.
11684         * ipa-reference.c (gate_reference): Use seen_error.
11685         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
11686         * lambda-code.c: Include diagnostic-core.h instead of
11687         diagnostic.h.
11688         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
11689         * lto-compress.c: Include diagnostic-core.h instead of
11690         diagnostic.h.
11691         * lto-section-in.c: Include diagnostic-core.h instead of
11692         diagnostic.h.
11693         * lto-streamer-out.c: Include diagnostic-core.h instead of
11694         diagnostic.h.
11695         * lto-streamer.c: Include diagnostic-core.h instead of
11696         diagnostic.h.
11697         (gate_lto_out): Use seen_error.
11698         * matrix-reorg.c: Include diagnostic-core.h instead of
11699         diagnostic.h.
11700         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
11701         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
11702         (gate_expand_omp, lower_omp_1): Use seen_error.
11703         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
11704         (rest_of_decl_compilation, rest_of_type_compilation,
11705         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
11706         * tree-cfg.c (label_to_block_fn): Use seen_error.
11707         * tree-inline.c (optimize_inline_calls): Use seen_error.
11708         * tree-mudflap.c (mudflap_finish_file): Use
11709         seen_error.
11710         * tree-optimize.c (gate_all_optimizations,
11711         gate_all_early_local_passes, gate_all_early_optimizations): Use
11712         seen_error.
11713         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
11714         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
11715         (varpool_remove_unreferenced_decls,
11716         varpool_assemble_pending_decls): Use seen_error.
11717         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
11718         (TOPLEV_H, DIAGNOSTIC_H): Update.
11719         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
11720         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
11721         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
11722         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
11723         coverage.o, lambda-code.o): Update dependencies.
11724
11725 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
11726
11727         PR c++/44188
11728         * c-common.c (is_typedef_decl): Move this definition ...
11729         * tree.c (is_typedef_decl): ... here.
11730         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
11731         * c-common.h (is_typedef_decl): Move this declaration ...
11732         * tree.h (is_typedef_decl): ... here.
11733         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
11734         * dwarf2out.c (is_naming_typedef_decl): New function.
11735         (gen_tagged_type_die): Split out of ...
11736         (gen_type_die_with_usage): ... this function. When an anonymous
11737         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
11738         is emitted for the typedef.
11739         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
11740         anonymous tagged types.
11741
11742 2010-05-27  Jason Merrill  <jason@redhat.com>
11743
11744         * print-tree.c (debug_vec_tree): New fn.
11745         (print_vec_tree): New fn.
11746         * tree.h: Declare them.
11747         * gdbinit.in (pvt): New command.
11748
11749         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
11750
11751         * gdbinit.in (pdd): New command.
11752
11753 2010-05-27  Jan Hubicka  <jh@suse.cz>
11754
11755         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
11756         (update_caller_keys): Return early if there are no callers;
11757         only update fibheap when decresing the key.
11758         (update_callee_keys): Avoid recursion.
11759         (decide_inlining_of_small_functions): When badness does not match;
11760         re-insert into fibheap.
11761
11762 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
11763
11764         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
11765         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
11766         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
11767         (ALL_HOST_OBJS): Now a union of the above two.
11768         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
11769         all files in ALL_HOST_FRONTEND_OBJS.
11770         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
11771
11772         * c-common.c: Pretend to be a backend file by undefining
11773         IN_GCC_FRONTEND (still need rtl.h here).
11774
11775 2010-05-27  Jan Hubicka  <jh@suse.cz>
11776
11777         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
11778         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
11779
11780 2010-05-27  Jan Hubicka  <jh@suse.cz>
11781
11782         * sched-ebb.c: Rename struct deps to struct deps_desc.
11783         * ddg.c: Likewise.
11784         * sel-sched-ir.c: Likewise.
11785         * sched-deps.c: Likewise.
11786         * sched-int.h: Likewise.
11787         * sched-rgn.c: Likewise.
11788
11789 2010-05-27  Jon Beniston <jon@beniston.com>
11790
11791         PR 43726
11792         * config/lm32/lm32.h: Remove definition of 
11793         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
11794
11795 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
11796
11797         PR lto/44230
11798         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
11799
11800 2010-05-27  Richard Guenther  <rguenther@suse.de>
11801
11802         PR tree-optimization/44284
11803         * tree-vect-stmts.c (vectorizable_assignment): Handle
11804         sign-changing conversions as simple copy.
11805
11806 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11807
11808         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
11809         Bionic C library.
11810         (__gthread_active_p): Check for pthread_create if compiling against
11811         Bionic C library.
11812
11813 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11814
11815         Support compilation for Android platform.  Reimplement -mandroid.
11816
11817         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
11818         (*android*): Set ANDROID_DEFAULT.
11819         (arm*-*-linux*): Include linux-android.h.
11820         (arm*-*-eabi*): Don't include previous -mandroid implementation.
11821         * config/arm/eabi.h: Remove, move Android-specific parts ...
11822         * config/linux-android.h: ... here.  New file.
11823         * config/arm/eabi.opt: Rename to ...
11824         * config/linux-android.opt: ... this.
11825         (mandroid): Allow -mno-android option.  Initialize based on
11826         ANDROID_DEFAULT.
11827         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
11828         Move logic to corresponding LINUX_TARGET_* macros.
11829         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
11830         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
11831         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
11832         Android definitions.
11833         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
11834         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
11835         Document.
11836
11837 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11838
11839         Add support for Bionic C library
11840
11841         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
11842         macro.
11843         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
11844         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
11845
11846         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
11847         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
11848         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
11849         to support multiple C libraries.  Handle Bionic.
11850         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
11851         (BIONIC_DYNAMIC_LINKER64): Define.
11852         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
11853         Update.
11854         (TARGET_HAS_SINCOS): Enable for Bionic.
11855
11856         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
11857         the last option specified on command line take effect.
11858         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
11859         (mbionic): New.
11860         (mglibc, muclibc): Update.
11861
11862         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
11863         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
11864         DEFAULT_LIBC.
11865
11866         * doc/invoke.texi (-mglibc, -muclibc): Update.
11867         (-mbionic): Document.
11868
11869 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11870
11871         * c-common.h (c_register_addr_space): Add prototype.
11872         (ADDR_SPACE_KEYWORD): Remove.
11873         * c-common.c (c_register_addr_space): New function.
11874         (c_addr_space_name): Reimplement.
11875         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
11876
11877         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
11878         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
11879
11880         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
11881         Remove TARGET_ADDR_SPACE_KEYWORDS.
11882
11883 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
11884
11885         * input.c: New file.
11886         * input.h (main_input_filename): Move declaration to toplev.h.
11887         * toplev.c (input_location, line_table): Move to input.c
11888         * toplev.h (main_input_filename): Move declaration from input.h.
11889         * tree.c (expand_location): Move to input.c.
11890         * Makefile.in (OBJS-common): Add input.o.
11891         (input.o): Add dependencies.
11892
11893 2010-05-27  Richard Guenther  <rguenther@suse.de>
11894
11895         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
11896         for non-existant files.
11897         (fork_execute): Mark args_name file as deleted.
11898
11899 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
11900
11901         PR bootstrp/44287
11902         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
11903         (narrow_signed_type): Likewise.
11904
11905 2010-05-26  Jan Hubicka  <jh@suse.cz>
11906
11907         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
11908         edge only when checking is enabled; check using former_clone_of;
11909         check inline clones too.
11910         (cgraph_materialize_clone): Record former_clone_of pointer.
11911         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
11912         combining redirections; dump args_to_skip bitmap
11913         (cgraph_materialize_all_clones): Do no redirection here.
11914         * ipa-inline.c (inline_transform): Do redirection here.
11915         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
11916         cheking only).
11917
11918 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
11919
11920         * config/avr/avr-c.c: Do not include regs.h.
11921         Include cpplib.h for cpp_define and tree.h for c-common.h.
11922         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
11923         * config/avr/t-avr: Fix dependencies for avr-c.o.
11924
11925 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
11926
11927         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
11928         string instead of SYMBOL_REF rtx.
11929         * rtl.h (set_stack_check_libfunc): Move prototype from here...
11930         * libfuncs.h: ...to here.  Adjust for explow.c change.
11931
11932 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
11933
11934         * pretty-print.c: Don't include ggc.h.
11935         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
11936         (identifier_to_locale): Use them for allocation.
11937         * pretty-print.h (identifier_to_locale_alloc,
11938         identifier_to_locale_free): Declare.
11939         * toplev.c (alloc_for_identifier_to_locale): New.
11940         (general_init): Set identifier_to_locale_alloc and
11941         identifier_to_locale_free.
11942         * Makefile.in (pretty-print.o): Update dependencies.
11943
11944 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
11945
11946         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
11947         pointer types if they have different alignment or mode.
11948
11949 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
11950
11951         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
11952         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
11953         * config/sparc/sparc-protos.h (function_value): Remove declaration.
11954         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
11955         sparc_function_value_regno_p): New functions.
11956         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11957         TARGET_FUNCTION_VALUE_REGNO_P): Define.
11958         (function_value): Rename to...
11959         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
11960         argument to 'outgoing'.
11961         (function_arg_record_value, function_arg_union_value,
11962         function_arg_vector_value): Update comment.
11963
11964 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
11965
11966         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
11967         (fde_needed_for_eh_p): New predicate.
11968         (output_call_frame_info): Use it throughout to decide whether FDEs
11969         are needed for EH purpose.
11970         (dwarf2out_begin_prologue): Reorder assignments.
11971
11972 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
11973
11974         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
11975         special case loop->header.
11976         (is_predicated): New.
11977         (if_convertible_loop_p): Call it.
11978
11979 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
11980
11981         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
11982         iterator in parameter.  Do not generate code during the analysis.
11983         (tree_if_convert_cond_stmt): Removed.
11984         (tree_if_convert_stmt): Removed.
11985         (predicate_bbs): New.
11986         (if_convertible_loop_p): Call predicate_bbs.
11987         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
11988         now contains all the analysis part.
11989
11990 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
11991
11992         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
11993         statements in the analysis part.
11994         (tree_if_convert_stmt): Update comment.
11995         (remove_conditions_and_labels): New.
11996         (combine_blocks): Call remove_conditions_and_labels.
11997         (tree_if_conversion): Update comment.
11998
11999 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12000
12001         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
12002         than 2 predecessors or more than 2 successors.
12003
12004 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12005
12006         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
12007         of loops in which the data dependence analysis fails.
12008
12009 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12010
12011         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
12012         CDI_POST_DOMINATORS.
12013         (tree_if_conversion): Same.
12014
12015 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12016
12017         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
12018
12019 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12020
12021         * tree-if-conv.c: Update copyright years.  Fix comments.
12022         Fix indentation.
12023
12024 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
12025
12026         * builtin-types.def (BT_INT128): New primitive type.
12027         (BT_UINT128): Likewise.
12028         * c-common.c (c_common_r): Add __int128 keyword.
12029         (c_common_type_for_size): Handle __int128.
12030         (c_common_type_for_mode): Likewise.
12031         (c_common_signed_or_unsigned_type): Likewise.
12032         (c_common_nodes_and_builtins): Add builtin type
12033         if target supports 128-bit integer scalar.
12034         * c-common.h (enum rid): Add RID_INT128.
12035         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
12036         if target supports 128-bit integer scalar.
12037         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
12038         (finish_declspecs): Likewise.
12039         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
12040         (c_token_starts_declspecs): Likewise.
12041         (c_parser_declspecs): Likewise.
12042         (c_parser_attributes): Likewise.
12043         (c_parser_objc_selector): Likewise.
12044         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
12045         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
12046         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
12047         * tree.c (make_or_reuse_type): Likewise.
12048         (make_unsigned_type): Likewise.
12049         (build_common_tree_nodes_2): Likewise.
12050         * tree.h (enum integer_type_kind): Add itk_int128 and
12051         itk_unsigned_int128.
12052         (int128_integer_type_node): New define.
12053         (int128_unsigned_type_node): New define.
12054         * doc/extend.texi: Add documentation about __int128 type.
12055
12056 2010-05-26  Richard Guenther  <rguenther@suse.de>
12057
12058         * tree-ssa-sccvn.c (copy_nary): Adjust.
12059         (copy_phis): Rename to ...
12060         (copy_phi): ... this.  Adjust.
12061         (copy_references): Rename to ...
12062         (copy_reference): ... this.  Adjust.
12063         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
12064         result into the valid table.
12065
12066 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12067
12068         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
12069         insn-config.h, insn-codes.h, recog.h, and optabs.h.
12070
12071 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12072
12073         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
12074
12075 2010-05-26  Richard Guenther  <rguenther@suse.de>
12076
12077         * opts.c (common_handle_option): Handle OPT_Ofast.
12078
12079 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
12080
12081         * diagnostic.c: Don't include opts.h.
12082         (permissive_error_option): Define.
12083         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
12084         for classify_diagnostic.  Don't use memset for
12085         classify_diagnostic.  Initialize new and recently added fields.
12086         (diagnostic_classify_diagnostic): Use context->n_opts instead of
12087         N_OPTS.
12088         (diagnostic_report_diagnostic): Pass context parameter to
12089         diagnostic_report_warnings_p.  Use option_enabled and option_name
12090         hooks from context.
12091         (emit_diagnostic): Use permissive_error_option.
12092         (permerror): Likewise.
12093         * diagnostic.h: Don't include options.h.
12094         (struct diagnostic_context): Add n_opts, opt_permissive,
12095         inhibit_warnings, warn_system_headers, option_enabled and
12096         option_name fields.  Change classify_diagnostic to a pointer.
12097         * opts-diagnostic.h: New file.
12098         * opts.c: Include opts-diagnostic.h.
12099         (common_handle_option): Set global_dc fields for -Wfatal-errors,
12100         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
12101         (option_name): New function.
12102         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
12103         (c_common_handle_option): Set global_dc->permissive for
12104         -fpermissive.
12105         * c-common.c (c_cpp_error): Save and restore
12106         global_dc->warn_system_headers, not variable warn_system_headers.
12107         * toplev.c: Include opts-diagnostic.h.
12108         (general_init): Update call to diagnostic_initialize.  Set
12109         global_dc->show_column, global_dc->option_enabled and
12110         global_dc->option_name.
12111         (process_options): Don't set global_dc fields here.
12112         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
12113         (diagnostic.o, opts.o, toplev.o): Update dependencies.
12114
12115 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
12116
12117         * config/picochip/picochip.md (movsi): Split a movsi from a
12118         const after reload.
12119
12120 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12121
12122         * ggc-zone.c: Update copyright year.
12123         (poison_region): Mark memory for Valgrind as undefined before
12124         memset () call and inaccessible afterwards.
12125         (ggc_pch_total_size): Change type of i to int.
12126
12127 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12128
12129         * ggc-common.c (ggc_free_overhead): Allow empty slot.
12130
12131 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12132
12133         * ggc-common.c: Update copyright year.
12134         (ggc_rlimit_bound): Remove prototype.  Compile only if
12135         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
12136         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
12137         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
12138         (ggc_min_heapsize_heuristic): Likewise.
12139
12140 2010-05-26  Richard Guenther  <rguenther@suse.de>
12141
12142         PR rtl-optimization/44164
12143         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
12144         no-common access-path disambiguation.
12145         (indirect_ref_may_alias_decl_p): Adjust.
12146         (indirect_refs_may_alias_p): Likewise.
12147         (refs_may_alias_p_1): Likewise.
12148
12149 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12150
12151         * c-typeck.c: Do not include expr.h.
12152
12153 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12154
12155         * rtl.h (decl_default_tls_model): Move prototype from here...
12156         * output.h: ...to here.
12157         * c-decl.c: Do not include rtl.h.
12158         * c-pragma.c: Likewise.
12159         * c-parser.c: Likewise.
12160         * c-gimplify.c: Likewise.  And also not hard-reg-set.
12161         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
12162         FIXME note for it.  Add a FIXME note for expr.h.
12163         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
12164         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
12165         defined.
12166
12167 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
12168
12169         PR target/44199
12170         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
12171         or total_size is larger than red zone size for non-V4 ABI, emit a
12172         stack_tie resp. frame_tie insn before stack pointer restore.
12173         * config/rs6000/rs6000.md (frame_tie): New insn.
12174
12175 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
12176
12177         * function.h (struct function): Add can_throw_non_call_exceptions bit.
12178         * lto-streamer-in.c (input_function): Stream it in.
12179         * lto-streamer-out.c (output_function): Stream it out.
12180         * function.c (allocate_struct_function): Set it.
12181         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
12182         for flag_non_call_exceptions.
12183         * cfgbuild.c (control_flow_insn_p): Likewise.
12184         (make_edges): Likewise.
12185         * cfgexpand.c (expand_stack_alignment): Likewise.
12186         * combine.c (distribute_notes): Likewise.
12187         * cse.c (cse_extended_basic_block): Likewise.
12188         * except.c (insn_could_throw_p): Likewise.
12189         * gcse.c (simple_mem): Likewise.
12190         * ipa-pure-const.c (check_call): Likewise.
12191         (check_stmt ): Likewise.
12192         * lower-subreg.c (lower-subreg.c): Likewise.
12193         * optabs.c (emit_libcall_block): Likewise.
12194         (prepare_cmp_insn): Likewise.
12195         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
12196         * postreload.c (rest_of_handle_postreload): Likewise.
12197         * reload1.c (reload_as_needed): Likewise.
12198         (emit_input_reload_insns): Likewise.
12199         (emit_output_reload_insns): Likewise.
12200         (fixup_abnormal_edges): Likewise.
12201         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
12202         * store-motion.c (find_moveable_store): Likewise.
12203         * tree-eh.c (stmt_could_throw_p): Likewise.
12204         (tree_could_throw_p): Likewise.
12205         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
12206         * config/arm/arm.c (arm_expand_prologue): Likewise.
12207         (thumb1_expand_prologue): Likewise.
12208         * config/rx/rx.md (cbranchsf4): Likewise.
12209         (cmpsf): Likewise.
12210         * config/s390/s390.c (s390_emit_prologue): Likewise.
12211         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
12212         (inline_forbidden_into_p): New predicate.
12213         (expand_call_inline): Use it to forbid inlining.
12214         (tree_can_inline_p): Likewise.
12215
12216 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
12217
12218         * config/i386/i386-c.c: Do not include rtl.h.
12219         * config/i386/t-i386: Update dependencies.
12220
12221 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
12222
12223         * attribs.c: Do not include rtl.h.
12224         * Makefile.in: Update dependencies.
12225
12226 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
12227
12228         * double-int.h (double_int_and): New.
12229         * combine.c (try_combine): Clean up, use double_int_* and
12230         immed_double_int_const functions.
12231
12232 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12233
12234         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
12235         stderr to /dev/null instead of grep -q.
12236         * configure: Regenerate.
12237
12238 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
12239
12240         * Makefile.in (EXCEPT_H): Fix typo.
12241
12242 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
12243
12244         * ira-build.c (update_conflict_hard_reg_costs): New.
12245         (ira_build): Call update_conflict_hard_reg_costs.
12246
12247 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
12248
12249         PR debug/41371
12250         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
12251         ENABLE_CHECKING.
12252         (intersect_loc_chains): Walk the s2var's loc_chain together
12253         with s1node chain as long as the locations are equal, don't
12254         call find_loc_in_1pdv in that case.
12255
12256         PR debug/42801
12257         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
12258         (copy_bind_expr): ... instead of here.
12259         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
12260         if the block hasn't been remapped.
12261         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
12262         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
12263
12264 2010-05-25  Richard Guenther  <rguenther@suse.de>
12265
12266         PR middle-end/44069
12267         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
12268         out-of-bounds array accesses.
12269
12270 2010-05-25  Richard Guenther  <rguenther@suse.de>
12271
12272         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
12273         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
12274         (run_gcc): Re-organize to make cleanup easier.
12275
12276 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12277
12278         * config/s390/s390.c (optimization_options): Fix and move the
12279         flag_prefetch_loop_arrays override ...
12280         (override_options): ... here.
12281
12282 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
12283
12284         * diagnostic.c: Don't include plugin.h.
12285         (diagnostic_report_diagnostic): Don't handle plugins specially
12286         here.  Pass context to internal_error callback.
12287         * diagnostic.h (struct diagnostic_context): Add context parameter
12288         to internal_error callback.
12289         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
12290         * plugin.h (struct diagnostic_context): Declare.
12291         (warn_if_plugins, plugins_internal_error_function): Declare.
12292         * toplev.c (general_init): Set global_dc->internal_error.
12293         * Makefile.in (diagnostic.o): Update dependencies.
12294
12295 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
12296
12297         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
12298         * config/rs6000/t-darwin64: New.
12299         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
12300         build crt2.
12301
12302 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
12303
12304         PR 44203
12305         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
12306         match the original (and intended) behaviour before r159557.  This
12307         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
12308         in two ways.
12309
12310 2010-05-25  Richard Guenther  <rguenther@suse.de>
12311
12312         * doc/invoke.texi: Document -Ofast.
12313         * target.h (struct gcc_target): Add handle_ofast.
12314         * target-def.h (TARGET_HANDLE_OFAST): Add.
12315         (TARGET_INITIALIZER): Adjust.
12316         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
12317         * common.opt (Ofast): Add.
12318
12319 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
12320
12321         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
12322         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
12323
12324 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
12325
12326         PR target/43610
12327         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
12328         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
12329         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
12330         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
12331
12332 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
12333
12334         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
12335         DW_OP_minus with negated offset instead of DW_OP_plus.
12336         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
12337
12338 2010-05-25  Wei Guozhi  <carrot@google.com>
12339
12340         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
12341         tst instruction and a new alternative.
12342         * config/arm/constraints.md (Pu): New constraint.
12343
12344 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
12345
12346         * function.c (assign_stack_local_1): Initialize variable
12347         to avoid warning when bootstrapping at -O3.
12348
12349 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
12350
12351         * configure.ac (all_lang_makefiles): Remove everything related to it.
12352         * configure: Regenerate.
12353         * Makefile.in: Fix reference to ada Make-lang.in.
12354         Remove support for LANG_MAKEFILES.
12355
12356 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
12357             Sandra Loosemore  <sandra@codesourcery.com>
12358
12359         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
12360         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
12361         description.  Add arm_neon_fp16_ok.
12362         (Add Options): Add arm_neon and arm_neon_fp16.
12363
12364 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
12365
12366         * diagnostic.c: Don't include flags.h.
12367         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
12368         context parameters.  Check flags in the context passed as a parameter.
12369         (diagnostic_build_prefix): Add context parameter.  Check
12370         show_column flag in context.
12371         (diagnostic_action_after_output): Check fatal_errors flag in context.
12372         (diagnostic_report_current_module): Check show_column flag in context.
12373         (default_diagnostic_starter): Update call to
12374         diagnostic_build_prefix.
12375         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
12376         (emit_diagnostic): Pass context to permissive_error_kind.
12377         (permerror): Pass context to permissive_error_kind.
12378         * diagnostic.h (struct diagnostic_context): Add show_column,
12379         pedantic_errors, permissive and fatal_errors fields.
12380         (diagnostic_build_prefix): Update prototype.
12381         * langhooks.c
12382         * toplev.c (process_options): Set flags in global_dc from
12383         flag_show_column, flag_pedantic_errors, flag_permissive,
12384         flag_fatal_errors.
12385         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
12386         to diagnostic_build_prefix.
12387         * Makefile.in (diagnostic.o): Update dependencies.
12388
12389 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
12390
12391         * config/i386/ia32intrin.h (__crc32q): Define only if
12392         __SSE4_2__ is defined.
12393
12394 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
12395
12396         PR target/44132
12397         PR middle-end/43602
12398         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
12399         DECL_VISIBILITY_SPECIFIED.
12400         (emutls_decl): Set DECL_PRESERVE_P and copy
12401         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
12402         (emutls_finalize_control_var): New callback.
12403         (emutls_finish): Finalize emutls control variables.
12404         * toplev.c (compile_file): Move the call to emutls_finish ()
12405         before varpool_assemble_pending_decls ().
12406
12407 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
12408
12409         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
12410         added to the preprocessor condition.
12411
12412 2010-05-24  Paul Brook  <paul@codesourcery.com>
12413
12414         * gengtype-lex.l: Add HARD_REG_SET.
12415         * expr.c (expand_expr_real_1): Record writes to hard registers.
12416         * function.c (rtl_data): Add asm_clobbers.
12417         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
12418         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
12419         Use crtl->asm_clobbers.
12420
12421 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12422
12423         * doc/makefile.texi (Makefile): Mention stages 'profile'
12424         and 'feedback' for profiledbootstrap.
12425
12426 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
12427
12428         PR target/44245
12429         * config/i386/i386.c (def_builtin): Properly check
12430         OPTION_MASK_ISA_64BIT.
12431
12432 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
12433
12434         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
12435         typedefs with different but compatible types.  Allow duplicate
12436         typedefs with the same type except for pedantic non-C1X, but give
12437         warning for variably modified types.
12438         * c-typeck.c (tagged_types_tu_compatible_p,
12439         function_types_compatible_p, type_lists_compatible_p,
12440         comptypes_internal): Add parameter different_types_p; set
12441         *different_types_p for different but compatible types.  All
12442         callers changed.
12443         (comptypes_check_different_types): New.
12444         * c-tree.h (comptypes_check_different_types): Declare.
12445
12446 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
12447
12448         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
12449         * jump.c: Include basic-block.h.
12450         * profile.c: Likewise.
12451         * tree-profile.c: Likewise.
12452         * coverage.c: Likewise.
12453         * basic-block.h (optimize_function_for_size_p): Move to function.h.
12454         (optimize_function_for_speed_p): Likewise.
12455         * function.h (optimize_function_for_size_p,
12456         optimize_function_for_speed_p): Moved here from basic-block.h.
12457         * Makefile.in: Update dependencies.
12458
12459 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12460
12461         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
12462         before calling make; allow override through $MAKE.
12463         * doc/invoke.texi (Optimize Options): Document override.
12464
12465 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
12466
12467         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
12468         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12469         (rs6000_mode_dependent_address_ptr): Make static.
12470         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12471         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
12472         Remove.
12473
12474 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
12475
12476         PR target/43869
12477         * config/i386/i386.c: Make sure that the correct regparm is passed.
12478
12479 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
12480
12481         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
12482         * sbitmap.c: ...to here to internalize sbitmap element access.
12483         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
12484         Explain why basic-block.h is included.
12485         * function.h: Include tm.h for CUMULATIVE_ARGS.
12486         * Makefile.in: Update dependencies.
12487
12488 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
12489
12490         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
12491         New core types.
12492         * sbitmap.h (struct sbitmap_def): Do not typedef here.
12493         * sbitmap.c: Include sbitmap.h.
12494         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
12495         hard-reg-set.h.  Split everything related to regsets out from here...
12496         * regset.h: ...to here.  New file.
12497         * df.h: Include regset.h and sbitmap.h.
12498         * tree-flow.h: Likewise.
12499         * cfgloop.h: Likewise.
12500         * except.h: Do not include sbitmap.h.  Include hashtab.h.
12501         * cgraph.h: Include vec.h and function.h.
12502         * reload.h (struct insn_chain): Change types of live_throughout
12503         and dead_or_set from regset_head to bitmap_head.
12504         (compute_use_by_pseudos): Be defined also if regset.h is not included.
12505         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
12506         spilled_regs from regset_head to bitmap_head to avoid dependency
12507         in regset.h.
12508         * sel-sched-ir.h: Include regset.h.
12509         * reload.c: Include df.h before reload.h.
12510         * caller-save.c: Likewise.
12511         * reload1.c: Likewise.
12512         * ira.c: Likewise.
12513         (mark_elimination): Update type of r to bitmap, consistent with
12514         DF_LR_IN.
12515         * dominance.c: Include bitmap.h.
12516         * modulo-sched.c: Include df.h.
12517         * cfganal.c: Include bitmap.h and sbitmap.h.
12518         * cfgbuild.c: Include sbitmap.h.
12519         * lcm.c: Include sbitmap.h.
12520         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
12521         * domwalk.c: Include sbitmap.h, exclude ggc.h.
12522         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
12523         * cselib.c: Include bitmap.h.
12524         * tree-optimize.c: Include regset.h.
12525         * stmt.c: Include bitmap.h.
12526         * Makefile.in: Update dependencies.
12527
12528 2010-05-22  Jan Hubicka  <jh@suse.cz>
12529
12530         * cgraph.h (struct varpool_node): Add same_comdat_group.
12531         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
12532         pointer.
12533         (output_varpool): Update call of lto_output_varpool_node.
12534         (input_varpool): Read same_comdat_group pointer.
12535         (input_varpool_1): Fixup same_comdat_group pointer.
12536         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
12537         group is needed, all are.
12538         * varpool.c (varpool_remove_node): Remove node from same comdat group
12539         linklist too.
12540         (varpool_analyze_pending_decls): Walk same comdat groups.
12541
12542 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
12543
12544         * rtl.h (union rtunion_def): Remove rt_bit member.
12545         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
12546         * print-rtl (print_rtx): Do not print the member.
12547         * gengtype.c (adjust_field_rtx_def): Do not handle it.
12548         * gengenrtl.c (type_from_format): Likewise.
12549         (accessor_from_format): Likewise.
12550
12551 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
12552
12553         * dbgcnt.c: Include toplev.h instead of errors.h.
12554         * ira-emit.c: Don't include errors.h.
12555         * ira.c: Include toplev.h instead of errors.h.
12556         * lto-compress.c: Include toplev.h instead of errors.h.
12557         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
12558         ira.o, dbgcnt.o): Update dependencies.
12559
12560 2010-05-22  Richard Guenther  <rguenther@suse.de>
12561
12562         * gimple.c (gimple_types_compatible_p): Check type qualifications
12563         before merging pointer to complete and pointer to incomplete type.
12564         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
12565         we use our own resolution algorithm.  The gold linker plugin
12566         doesn't do the job we want it to do here.
12567
12568 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
12569
12570         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12571         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12572         (sparc_mode_dependent_address_p): New function.
12573
12574 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
12575
12576         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
12577
12578         * timevar.c: Do not include any core headers.
12579         (timevar_print): De-i18n-ize.
12580         (print_time): Likewise.
12581         * timevar.h (timevar_push, timevar_pop): Make inline functions.
12582
12583 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
12584
12585         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
12586         langhooks-def.h.
12587         (diagnostic_initialize): Initialize x_data not last_function.
12588         (diagnostic_report_current_function): Move to tree-diagnostic.c.
12589         (default_diagnostic_starter): Call
12590         diagnostic_report_current_module not
12591         diagnostic_report_current_function.
12592         (diagnostic_report_diagnostic): Initialize x_data not
12593         abstract_origin.
12594         (verbatim): Likewise.
12595         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
12596         x_data.
12597         (struct diagnostic_context): Change last_function to x_data.
12598         (diagnostic_auxiliary_data): Replace with
12599         diagnostic_context_auxiliary_data and
12600         diagnostic_info_auxiliary_data.
12601         (diagnostic_last_function_changed, diagnostic_set_last_function,
12602         diagnostic_report_current_function): Move to tree-diagnostic.h.
12603         (print_declaration, dump_generic_node, print_generic_stmt,
12604         print_generic_stmt_indented, print_generic_expr,
12605         print_generic_decl, debug_c_tree, dump_omp_clauses,
12606         print_call_name, debug_generic_expr, debug_generic_stmt,
12607         debug_tree_chain, default_tree_printer): Move to
12608         tree-pretty-print.h.
12609         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
12610         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
12611         gimple-pretty-print.h.
12612         * pretty-print.c: Don't include tree.h
12613         (pp_base_format): Don't handle %K here.
12614         (pp_base_tree_identifier): Move to tree-pretty-print.c.
12615         * pretty-print.h (text_info): Change abstract_origin to x_data.
12616         (pp_tree_identifier, pp_unsupported_tree,
12617         pp_base_tree_identifier): Move to tree-pretty-print.h.
12618         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
12619         tree-pretty-print.h: New files.
12620         * tree-pretty-print.c: Include tree-pretty-print.h.
12621         (percent_K_format): New.  Moved from pretty-print.c.
12622         (pp_base_tree_identifier): Move from pretty-print.c.
12623         * c-objc-common.c: Include tree-pretty-print.h.
12624         (c_tree_printer): Handle %K here.
12625         * langhooks.c: Include tree-diagnostic.h.
12626         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
12627         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
12628         (default_tree_printer): Handle %K using percent_K_format.
12629         (general_init): Use default_tree_diagnostic_starter.
12630         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
12631         (free_lang_data): Use default_tree_diagnostic_starter.
12632         * c-pretty-print.c: Include tree-pretty-print.h.
12633         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12634         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12635         * dwarf2out.c: Include tree-pretty-print.h.
12636         * except.c: Include tree-pretty-print.h.
12637         * gimple-pretty-print.c: Include tree-pretty-print.h and
12638         gimple-pretty-print.h.
12639         * gimplify.c: Include tree-pretty-print.h.
12640         * graphite-poly.c: Include tree-pretty-print.h and
12641         gimple-pretty-print.h.
12642         * ipa-cp.c: Include tree-pretty-print.h.
12643         * ipa-inline.c: Include gimple-pretty-print.h.
12644         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12645         * ipa-pure-const.c: Include gimple-pretty-print.h.
12646         * ipa-struct-reorg.c: Include tree-pretty-print.h and
12647         gimple-pretty-print.h.
12648         * ipa-type-escape.c: Include tree-pretty-print.h.
12649         * print-rtl.c: Include tree-pretty-print.h.
12650         * print-tree.c: Include gimple-pretty-print.h.
12651         * sese.c: Include tree-pretty-print.h.
12652         * tree-affine.c: Include tree-pretty-print.h.
12653         * tree-browser.c: Include tree-pretty-print.h.
12654         * tree-call-cdce.c: Include gimple-pretty-print.h.
12655         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12656         * tree-chrec.c: Include tree-pretty-print.h.
12657         * tree-data-ref.c: Include tree-pretty-print.h and
12658         gimple-pretty-print.h.
12659         * tree-dfa.c: Include tree-pretty-print.h.
12660         * tree-if-conv.c: Include tree-pretty-print.h and
12661         gimple-pretty-print.h.
12662         * tree-inline.c: Include tree-pretty-print.h.
12663         * tree-into-ssa.c: Include tree-pretty-print.h and
12664         gimple-pretty-print.h.
12665         * tree-nrv.c: Include tree-pretty-print.h.
12666         * tree-object-size.c: Include tree-pretty-print.h and
12667         gimple-pretty-print.h.
12668         * tree-outof-ssa.c: Include tree-pretty-print.h and
12669         gimple-pretty-print.h.
12670         * tree-parloops.c: Include tree-pretty-print.h and
12671         gimple-pretty-print.h.
12672         * tree-predcom.c: Include tree-pretty-print.h and
12673         gimple-pretty-print.h.
12674         * tree-scalar-evolution.c: Include tree-pretty-print.h and
12675         gimple-pretty-print.h.
12676         * tree-sra.c: Include tree-pretty-print.h.
12677         * tree-ssa-address.c: Include tree-pretty-print.h.
12678         * tree-ssa-alias.c: Include tree-pretty-print.h.
12679         * tree-ssa-ccp.c: Include tree-pretty-print.h and
12680         gimple-pretty-print.h.
12681         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
12682         * tree-ssa-copy.c: Include tree-pretty-print.h and
12683         gimple-pretty-print.h.
12684         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
12685         * tree-ssa-dce.c: Include tree-pretty-print.h and
12686         gimple-pretty-print.h.
12687         * tree-ssa-dom.c: Include tree-pretty-print.h and
12688         gimple-pretty-print.h.
12689         * tree-ssa-dse.c: Include gimple-pretty-print.h.
12690         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
12691         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
12692         * tree-ssa-live.c: Include tree-pretty-print.h and
12693         gimple-pretty-print.h.
12694         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
12695         gimple-pretty-print.h.
12696         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
12697         gimple-pretty-print.h.
12698         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
12699         gimple-pretty-print.h.
12700         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
12701         gimple-pretty-print.h.
12702         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
12703         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
12704         * tree-ssa-operands.c: Include tree-pretty-print.h and
12705         gimple-pretty-print.h.
12706         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
12707         gimple-pretty-print.h.
12708         * tree-ssa-pre.c: Include tree-pretty-print.h and
12709         gimple-pretty-print.h.
12710         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
12711         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
12712         gimple-pretty-print.h.
12713         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
12714         gimple-pretty-print.h.
12715         * tree-ssa-sink.c: Include gimple-pretty-print.h.
12716         * tree-ssa-ter.c: Include tree-pretty-print.h and
12717         gimple-pretty-print.h.
12718         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
12719         * tree-ssa.c: Include tree-pretty-print.h and
12720         gimple-pretty-print.h.
12721         * tree-stdarg.c: Include gimple-pretty-print.h.
12722         * tree-switch-conversion.c: Include gimple-pretty-print.h.
12723         * tree-tailcall.c: Include tree-pretty-print.h and
12724         gimple-pretty-print.h.
12725         * tree-vect-data-refs.c: Include tree-pretty-print.h and
12726         gimple-pretty-print.h.
12727         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
12728         gimple-pretty-print.h.
12729         * tree-vect-loop.c: Include tree-pretty-print.h and
12730         gimple-pretty-print.h.
12731         * tree-vect-patterns.c: Include gimple-pretty-print.h.
12732         * tree-vect-slp.c: Include tree-pretty-print.h and
12733         gimple-pretty-print.h.
12734         * tree-vect-stmts.c: Include tree-pretty-print.h and
12735         gimple-pretty-print.h.
12736         * tree-vectorizer.c: Include tree-pretty-print.h.
12737         * tree-vrp.c: Include tree-pretty-print.h and
12738         gimple-pretty-print.h.
12739         * value-prof.c: Include tree-pretty-print.h and
12740         gimple-pretty-print.h.
12741         * var-tracking.c: Include tree-pretty-print.h.
12742         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
12743         (tree-diagnostic.o): New dependencies.
12744         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
12745         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
12746         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
12747         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
12748         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
12749         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
12750         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
12751         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
12752         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
12753         tree-ssa-address.o, tree-ssa-loop-niter.o,
12754         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
12755         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
12756         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
12757         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
12758         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
12759         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
12760         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
12761         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
12762         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
12763         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
12764         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
12765         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
12766         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
12767         tree-switch-conversion.o, var-tracking.o, value-prof.o,
12768         cfgexpand.o, pretty-print.o): Update dependencies.
12769
12770 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
12771
12772         * tree-ssa-structalias.c: Remove tm_p.h from include.
12773
12774 2010-05-21  Jeff Law  <law@redhat.com>
12775
12776         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
12777
12778 2010-05-21  Jason Merrill  <jason@redhat.com>
12779
12780         * tree-eh.c (cleanup_is_dead_in): New.
12781         (lower_try_finally): Don't generate a dead cleanup region.
12782         (lower_cleanup): Likewise.
12783
12784 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
12785
12786         PR debug/44223
12787         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
12788         unchain each use from the cyclic next_regno_use chain first.
12789
12790 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
12791
12792         * real: Do not include gmp.h, mpfr.h, and mpc.h.
12793         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
12794         (real_value_negate, real_value_abs): New prototypes.
12795         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
12796         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
12797         new include file for interface between MPFR and REAL_VALUE_TYPE.
12798         * real.c: Include realmpfr.h.
12799         (real_arithmetic2): Remove legacy function.
12800         (real_value_negate): New.
12801         (real_value_abs): New.
12802         (mfpr_from_real, real_from_mpfr): Move from here...
12803         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
12804         * builtins.c: Include realmpfr.h.
12805         * fold-const.c: Include realmpfr.h.
12806         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
12807         (fold_negate_const): Likewise.
12808         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
12809         * toplev.c: Include realmpfr.h.
12810         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
12811         and real_value_negate.
12812         * fixed-value.c (check_real_for_fixed_mode): Likewise.
12813         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
12814         (vfp3_const_double_index): Likewise.
12815         (arm_print_operand): Likewise.
12816         * Makefile.in: Update dependencies.
12817
12818 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12819
12820         * config/s390/s390.c (override_options): Increase the default
12821         of max-completely-peel-times.
12822
12823 2010-05-21  Julian Brown  <julian@codesourcery.com>
12824             Mark Mitchell  <mark@codesourcery.com>
12825
12826         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
12827         sibling calls for Thumb-1.
12828         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
12829         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
12830         Thumb-2.
12831         (*call_insn, *call_value_insn): Don't use for Thumb-2.
12832         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
12833         for Thumb-2.
12834         (return): New expander.
12835         (*arm_return): New name for ARM return insn.
12836         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
12837
12838 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
12839
12840         * config.gcc (sparc64-*-rtems*): New target.
12841
12842 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
12843
12844         * tree.c (build_function_decl_skip_args): Fix grammar.
12845         (build_function_type_list_1): Fix typos, adjust formatting.
12846
12847 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
12848
12849         * tree.h: Include real.h and fixed-value.h as basic datatypes.
12850         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
12851         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
12852         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
12853         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
12854         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
12855         tree-pretty-print.c, tree-loop-distribution.c,
12856         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
12857         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
12858         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
12859         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
12860         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
12861         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
12862         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
12863         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
12864         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
12865         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
12866         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
12867         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
12868         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
12869         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
12870         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
12871         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
12872         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
12873         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
12874         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
12875         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
12876         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
12877         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
12878         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
12879         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
12880         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
12881         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
12882         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
12883         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
12884         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
12885         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
12886         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
12887         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
12888         config/score/score7.c, config/score/score.c, config/arm/arm.c,
12889         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
12890         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
12891         config/bfin/bfin.c: Clean up redundant includes.
12892         * Makefile.in: Update accordingly.
12893
12894 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
12895
12896         PR middle-end/44204
12897         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
12898         statement has no arguments.
12899
12900 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
12901
12902         PR/44139
12903         * varasm.c (emutls_decl): Merge attributes to new decl.
12904
12905 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
12906
12907         PR middle-end/44101
12908         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
12909         around the uniquized constructor if its type requires a conversion.
12910
12911 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
12912
12913         PR debug/44205
12914         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
12915         at -O0 goto_locus of any of the incoming edges differs from
12916         goto_locus of outgoing edge, or gimple_location of any of the
12917         labels differs.
12918
12919 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
12920
12921         * ira.c (ira_non_ordered_class_hard_regs): Define.
12922         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
12923         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
12924         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
12925         cost of unaligned hard regs when allocating multi-reg pseudos.
12926
12927 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
12928
12929         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
12930         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
12931         for TARGET_NO_FLOAT.
12932         * config/mips/mips.c (mips_file_start): Expand conditional expression
12933         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
12934         (mips_override_options): Move -mno-float override -msoft-float and
12935         -mhard-float.
12936         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
12937         Condition(TARGET_SUPPORTS_NO_FLOAT).
12938         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
12939         __mips_no_float here.
12940         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
12941         (TARGET_SUPPORTS_NO_FLOAT): Define.
12942         * config/mips/sdemtk.opt: Delete.
12943
12944 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
12945
12946         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
12947
12948 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
12949
12950         PR target/43733
12951         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
12952         * configure: Regenerate.
12953         * config.in: Regenerate.
12954         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
12955         instead of sahf only for 64bit targets.
12956
12957 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
12958
12959         PR debug/44178
12960         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
12961         setup_ref_regs for DEBUG_INSNs.
12962
12963 2010-05-20  Jan Hubicka  <jh@suse.cz>
12964
12965         PR middle-end/44197
12966         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
12967
12968 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
12969
12970         PR bootstrap/43870
12971         * df-scan.c (df_ref_compare): Stabilize sort.
12972
12973 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
12974
12975         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
12976         argument.  Don't use DW_OP_piece if offset is non-zero,
12977         put offset into second DW_OP_bit_piece argument.
12978         (dw_sra_loc_expr): Adjust callers.  For memory expressions
12979         compute offset.
12980
12981 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
12982
12983         PR target/44202
12984         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
12985         settings for 16-bit-constant "addo" alternative.
12986
12987 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
12988
12989         * config/mips/mips-dsp.md (add<DSPV:mode>3,
12990         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
12991
12992         PR target/43764
12993         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
12994         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
12995         Use it.
12996
12997 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
12998
12999         * diagnostic.c (FLOAT, FFS): Don't undefine.
13000         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
13001         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
13002         include ordering.
13003
13004 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
13005
13006         * combine.c (propagate_for_debug): Call make_compound_operation
13007         on the source value.
13008         (try_combine): When implementing a split chosen by find_split_point,
13009         either copy i2src or set it to null.  Assert that i2src is not null
13010         before substituting into CALL_INSN_FUNCTION_USAGE.
13011
13012 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
13013
13014         * double-int.h (double_int_ior): New function.
13015         * tree.h (build_int_cst_wide_type): Remove.
13016         * tree.c (build_int_cst_wide_type): Remove.
13017         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
13018         of build_int_cst_wide_type.
13019         * stor-layout.c (set_sizetype): (Ditto.).
13020         * dojump.c (do_jump): Use build_int_cstu instead of
13021         build_int_cst_wide_type.
13022
13023 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
13024
13025         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
13026         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
13027         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
13028         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
13029         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
13030         propagate the 'data' argument to copy_tree_r.
13031         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
13032         Propagate 'data' argument to walk_tree.
13033         (copy_if_shared): New function.
13034         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
13035         (unmark_visited): New function.
13036         (unshare_body): Call copy_if_shared instead of doing it manually.
13037         (unvisit_body): Call unmark_visited instead of doing it manually.
13038
13039 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
13040
13041         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
13042         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
13043         * hooks.c: Likewise.
13044         * target-def.h (TARGET_FOLD_BUILTIN): Define to
13045         hook_tree_tree_int_treep_bool_null.
13046         * target.h (struct gcc_target): Update signature of fold_builtin
13047         field.
13048         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
13049         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
13050         instead of the call expression.
13051         (fold_builtin_call_array): Pass n and argarray directly.
13052         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
13053         consing a list.
13054         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
13055         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
13056         `i' and use it in place of `arity'.
13057         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
13058         Dereference `args' directly.
13059         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
13060
13061 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13062
13063         * doc/sourcebuild.texi (Effective-Target Keywords): Document
13064         3dnow, sse3, sse2.
13065         (Directives): Document optional dg-require-effective-target
13066         selector.
13067
13068 2010-05-19  Richard Guenther  <rguenther@suse.de>
13069
13070         PR lto/44196
13071         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
13072
13073 2010-05-19  Richard Guenther  <rguenther@suse.de>
13074
13075         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
13076         * common.opt (fwhopr=): New.
13077         * opts.c (common_handle_option): Handle OPT_fwhopr.
13078         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
13079         * collect2.c (main): Match -fwhopr*.
13080         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
13081         Execute ltrans stage in parallel when jobs is bigger than 1.
13082
13083 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13084
13085         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
13086         pentiumpro on Solaris 8/x86 with Sun as.
13087         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
13088         hidden alias bug.
13089         (gcc_cv_as_ix86_quad): Check for .quad directive.
13090         * configure: Regenerate.
13091         * config.in: Regenerate.
13092         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
13093
13094 2010-05-19  Martin Jambor  <mjambor@suse.cz>
13095
13096         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
13097         also for indirect edges.  Actual printing moved...
13098         (ipa_print_node_jump_functions_for_edge): ...here.
13099         (ipa_compute_jump_functions): Renamed to
13100         ipa_compute_jump_functions_for_edge and made static.
13101         (ipa_compute_jump_functions): New function.
13102         (make_edge_direct_to_target): Check if the number of arguments on
13103         the newly direct edge is the same as the number of parametrs of
13104         the callee.
13105         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
13106         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
13107         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
13108         analysis functions unconditionally, call the new
13109         ipa_analyze_params_uses on the node instead of every edge.
13110
13111 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
13112
13113         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
13114         to tree.
13115         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
13116         also checks for a constant int vs.  non-constant but
13117         loop-invariant steps.
13118         (find_or_create_group): Change the sort algorithm to only consider
13119         steps that are constant ints.
13120         (idx_analyze_ref): Adopt code to handle a tree instead of a
13121         HOST_WIDE_INT for step.
13122         (gather_memory_references_ref): Handle tree instead of int and be
13123         prepared to see a NULL_TREE.
13124         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
13125         prefetches if the step cannot be calculated at compile time.
13126         (issue_prefetch_ref): Issue prefetches for non-constant but
13127         loop-invariant steps.
13128
13129 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
13130
13131         Revert:
13132         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
13133
13134         * tree.h (build_call_list): Remove.
13135         * tree.c (build_call_list): Remove.
13136
13137 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
13138
13139         * tree.h (build_call_list): Remove.
13140         * tree.c (build_call_list): Remove.
13141
13142 2010-05-18  Jan Hubicka  <jh@suse.cz>
13143
13144         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
13145
13146 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
13147
13148         PR rtl-optimization/43332
13149         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
13150
13151 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
13152
13153         * tree.h (build_int_cstu): Implement as static inline.
13154         * tree.c (build_int_cstu): Remove function.
13155         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
13156         sign extended.
13157
13158 2010-05-18  Richard Guenther  <rguenther@suse.de>
13159
13160         PR lto/44143
13161         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
13162         (debug): Initialize from -save-temps.
13163         (collect_execute): Print command-line when verbose.
13164         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
13165         for ltrans invocation.  Produce -dumpbase flag again.
13166         (process_args): Remove.
13167         (main): Simplify.
13168         * collect2.c (maybe_run_lto_and_relink): Only pass object
13169         files to lto-wrapper.
13170         * gcc.c (LINK_COMMAND_SPEC): Likewise.
13171
13172 2010-05-18  Jan Hubicka  <jh@suse.cz>
13173
13174         * opts.c (decode_options): Do not disable whopr at ipa_cp.
13175         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
13176
13177 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
13178
13179         PR lto/44184
13180         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
13181         in a GIMPLE_ASM.
13182         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
13183         in a GIMPLE_ASM.
13184
13185 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
13186
13187         PR debug/41371
13188         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
13189         rtx_equal_p inline.
13190
13191 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
13192
13193         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
13194         lto-macho as lto_binary_reader.
13195
13196         * darwin.c (darwin_asm_named_section): Do not add assembler comment
13197         after .section directive; just print it before the directive instead.
13198
13199 2010-05-17  Jan Hubicka  <jh@suse.cz>
13200
13201         * cgraph.c (cgraph_create_virtual_clone): Only check
13202         versionable_function_p when not in wpa and checking is enabled.
13203         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
13204         there are no more functions to materialize.
13205
13206 2010-05-17  Jan Hubicka  <jh@suse.cz>
13207
13208         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
13209         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
13210         New functions.
13211         (output_cgraph): Call output_cgraph_opt_summary.
13212         (input_cgrpah): Call input_cgraph_opt_summary.
13213         (output_cgraph_opt_summary_p, output_node_opt_summary,
13214         input_node_opt_summary, input_cgraph_opt_section): New functions.
13215         * lto-section-in.c (lto_section_name): Add cgraphopt.
13216         * tree-inline.c (tree_function_versioning): Handle parm_num.
13217         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
13218         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
13219
13220 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
13221
13222         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
13223         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
13224         the insn to prefetch ratio heuristic to loops with known trip count.
13225
13226 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
13227
13228         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
13229         (schedule_prefetches): Do not generate a prefetch if the unroll factor
13230         is far from what is required by the prefetch.
13231
13232 2010-05-17  Jan Hubicka  <jh@suse.cz>
13233
13234         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
13235         (ipcp_estimate_growth): Likewise.
13236         (ipcp_const_param_count): Likewise.
13237         (ipcp_insert_stage): Likewise.
13238         * ipa-prop.c (visit_load_for_mod_analysis): New function.
13239         (visit_store_addr_for_mod_analysis): Set used flag.
13240         (ipa_detect_param_modifications): Set used flag for SSE params;
13241         update use of walk_stmt_load_store_addr_ops.
13242         (ipa_print_node_params): Print used flag.
13243         (ipa_write_node_info): Stream used flag.
13244         (ipa_read_node_info): Likewise.
13245         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
13246         (ipa_is_param_used): New function.
13247         (lto_ipa_fixup_call_notes): Remove unused declaration.
13248
13249 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13250
13251         PR target/44074
13252         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
13253         * configure: Regenerate.
13254         * config.in: Regenerate.
13255         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
13256         !HAVE_AS_IX86_REP_LOCK_PREFIX.
13257         Don't emit whitespace.
13258         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
13259         (*rep_movsi): Likewise.
13260         (*rep_movsi_rex64): Likewise.
13261         (*rep_movqi): Likewise.
13262         (*rep_movqi_rex64): Likewise.
13263         (*rep_stosdi_rex64): Likewise.
13264         (*rep_stossi): Likewise.
13265         (*rep_stossi_rex64): Likewise.
13266         (*rep_stosqi): Likewise.
13267         (*rep_stosqi_rex64): Likewise.
13268         (*cmpstrnqi_nz_1): Use {%;} after repz.
13269         (*cmpstrnqi_nz_rex_1): Likewise.
13270         (*cmpstrnqi_1): Likewise.
13271         (*cmpstrnqi_rex_1): Likewise.
13272         (*strlenqi_1): Use {%;} after repnz.
13273         (*strlenqi_rex_1): Likewise.
13274         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
13275         (*sync_compare_and_swap<mode>): Likewise.
13276         (sync_double_compare_and_swap<mode>): Likewise.
13277         (*sync_double_compare_and_swapdi_pic): Likewise.
13278         (sync_old_add<mode>): Likewise.
13279         (sync_add<mode>): Likewise.
13280         (sync_sub<mode>): Likewise.
13281         (sync_<code><mode>): Likewise.
13282
13283 2010-05-17  Martin Jambor  <mjambor@suse.cz>
13284
13285         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
13286         otr_token and polymorphic.
13287         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
13288         (cgraph_clone_edge): Copy the above fields.
13289         * tree.c (get_binfo_at_offset): New function.
13290         * tree.h (get_binfo_at_offset): Declare.
13291         * ipa-prop.h (enum jump_func_type): Added known_type jump function
13292         type, reordered items, updated comments.
13293         (union jump_func_value): Added base_type field, reordered fields.
13294         (enum ipa_lattice_type): Moved down in the file.
13295         (struct ipa_param_descriptor): New field polymorphic.
13296         (ipa_is_param_polymorphic): New function.
13297         * ipa-prop.c: Include gimple.h and gimple-fold.h.
13298         (ipa_print_node_jump_functions): Print known type jump functions.
13299         (compute_complex_pass_through): Renamed to...
13300         (compute_complex_assign_jump_func): this.
13301         (compute_complex_ancestor_jump_func): New function.
13302         (compute_known_type_jump_func): Likewise.
13303         (compute_scalar_jump_functions): Create known type and complex ancestor
13304         jump functions.
13305         (ipa_note_param_call): New parameter polymorphic, set the corresponding
13306         flag in the call note accordingly.
13307         (ipa_analyze_call_uses): Renamed to...
13308         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
13309         variable var only in the block where it is used.
13310         (ipa_analyze_virtual_call_uses): New function.
13311         (ipa_analyze_call_uses): Likewise.
13312         (combine_known_type_and_ancestor_jfs): Likewise.
13313         (update_jump_functions_after_inlining): Implemented handling of a
13314         number of new jump function types combination.
13315         (print_edge_addition_message): Removed.
13316         (make_edge_direct_to_target): New function.
13317         (try_make_edge_direct_simple_call): Likewise.
13318         (try_make_edge_direct_virtual_call): Likewise.
13319         (update_call_notes_after_inlining): Renamed to...
13320         (update_indirect_edges_after_inlining): this.  Moved edge creation for
13321         indirect calls to try_make_edge_direct_simple_call, also calls
13322         try_make_edge_direct_virtual_call for virtual calls.
13323         (ipa_print_node_params): Changed the header message.
13324         (ipa_write_jump_function): Stream also known type jump functions.
13325         (ipa_read_jump_function): Likewise.
13326         (ipa_write_indirect_edge_info): Stream new fields in
13327         cgraph_indirect_call_info.
13328         (ipa_read_indirect_edge_info): Likewise.
13329         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
13330         GIMPLE_FOLD_H.
13331
13332 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13333
13334         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
13335
13336 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
13337
13338         * tree.h (CALL_EXPR_ARGS): Delete.
13339         (call_expr_arglist): Delete.
13340         * tree.c (call_expr_arglist): Delete.
13341         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
13342         targetm.fold_builtin.
13343         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
13344         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
13345         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
13346         arglist parameter.  Use CALL_EXPR_ARG.
13347         (picochip_expand_builtin_3op): Likewise.
13348         (picochip_expand_builtin_2opvoid): Likewise.
13349         (picochip_expand_array_get): Likewise.
13350         (picochip_expand_array_put): Likewise.
13351         (picochip_expand_array_testport): Likewise.
13352         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
13353         rather than arglist.
13354         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
13355         CALL_EXPR_ARGS.
13356         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
13357         than TREE_VALUE and TREE_CHAIN.
13358         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
13359         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
13360         the arglist.
13361
13362 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
13363
13364         PR bootstrap/42347
13365         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
13366         to have no fallthru edge.
13367
13368         PR middle-end/44102
13369         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
13370         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
13371         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
13372         add BARRIER after previous bb if needed.
13373
13374 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
13375
13376         * tree.c (build_function_type_list_1): Remove bogus assert condition.
13377
13378 2010-05-17  Alan Modra  <amodra@gmail.com>
13379
13380         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
13381         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
13382         with copy_reg rtx param.
13383         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
13384         Correct cases where code for ABI_V4 did not initialise the reg
13385         used to access frame.  Also leave frame_reg_rtx as sp for large
13386         frames that save no regs.
13387
13388 2010-05-17  Martin Jambor  <mjambor@suse.cz>
13389
13390         PR middle-end/44133
13391         * tree-sra.c (create_access_replacement): New parameter rename, mark
13392         the replaement for renaming only when it is true.
13393         (get_access_replacement): Pass true in the rename parameter of
13394         create_access_replacement.
13395         (get_unrenamed_access_replacement): New function.
13396         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
13397         replacement declaration from it.
13398
13399 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
13400
13401         * function.c (try_fit_stack_local, add_frame_space): New static
13402         functions.
13403         (assign_stack_local_1): Use them.  Look for opportunities to use
13404         space previously wasted on alignment.
13405         * function.h (struct frame_space): New.
13406         (struct rtl_data): Add FRAME_SPACE_LIST member.
13407         * reload1.c (something_was_spilled): New static variable.
13408         (alter_reg): Set it.
13409         (reload): Test it in addition to testing if the frame size changed.
13410
13411 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
13412
13413         * config/s390/s390.c: Define sane prefetch settings and activate
13414         flag_prefetch_loop_arrays on -O3.
13415         * config/s390/s390.h: Declare that read can use write prefetch.
13416
13417 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
13418
13419         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
13420         build.
13421
13422 2010-05-16  Jan Hubicka  <jh@suse.cz>
13423
13424         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
13425         function body; do not check stdarg field of struct function.
13426
13427 2010-05-16  Jan Hubicka  <jh@suse.cz>
13428
13429         * cgraph.c (dump_cgraph_node): Dump versionable flag.
13430         * cgraph.h (cgraph_local_info): Add versionable flag.
13431         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
13432         (ipcp_versionable_function_p): Use it.
13433         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
13434         versionable flag.
13435
13436 2010-05-16  Jan Hubicka  <jh@suse.cz>
13437
13438         * cgraph.c (cgraph_clone_node): Take decl argument and insert
13439         clone into hash when it is different from orig.
13440         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
13441         * cgraph.h (cgraph_clone_node): Update prototype.
13442         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
13443         (lto_cgraph_encoder_delete): Delete body map.
13444         (lto_cgraph_encoder_size): Move to header.
13445         (lto_cgraph_encoder_encode_body_p,
13446         lto_set_cgraph_encoder_encode_body): New.
13447         (lto_output_node): Do not take written_decls argument; output clone_of
13448         pointer.
13449         (add_node_to): Add include_body_argument; call
13450         lto_set_cgraph_encoder_encode_body on master of the clone.
13451         (add_references): Update use of add_node_to.
13452         (compute_ltrans_boundary): Likewise.
13453         (output_cgraph): Do not create written_decls bitmap.
13454         (input_node): Take nodes argument; stream in clone_of correctly.
13455         (input_cgraph_1): Update use of input_node.
13456         * lto-streamer-out.c (lto_output): Use encoder info to decide
13457         what bodies to output.
13458         * ipa-inline.c (cgraph_clone_inlined_nodes,
13459         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
13460         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
13461         (lto_cgraph_encoder_size): Define here.
13462         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
13463         Declare.
13464
13465 2010-05-16  Richard Guenther  <rguenther@suse.de>
13466
13467         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
13468         -fipa-type-escape.
13469         * ipa-type-escape.c (gate_type_escape_vars): Run when
13470         -fipa-struct-reorg runs.
13471         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
13472         * common.opt (fipa-type-escape): Remove.
13473
13474 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
13475
13476         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
13477         (decode_options): Likewise.
13478         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
13479
13480 2010-05-16  Jan Hubicka  <jh@suse.cz>
13481
13482         * ipa.c (function_and_variable_visibility): Also bring local all
13483         aliases.
13484
13485 2010-05-16  Richard Guenther  <rguenther@suse.de>
13486
13487         * alias.c (nonoverlapping_memrefs_p): Remove use of
13488         IPA type-escape information.
13489
13490 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
13491
13492         * c-common.c (c_common_reswords): Add _Static_assert for C.
13493         * c-parser.c (c_token_starts_declaration,
13494         c_parser_next_token_starts_declaration,
13495         c_parser_static_assert_declaration_no_semi,
13496         c_parser_static_assert_declaration): New.
13497         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
13498         Handle static assertions if static_assert_ok.
13499         (c_parser_external_declaration, c_parser_declaration_or_fndef,
13500         c_parser_compound_statement_nostart, c_parser_label,
13501         c_parser_for_statement, c_parser_objc_methodprotolist,
13502         c_parser_omp_for_loop): All callers of
13503         c_parser_declaration_or_fndef changed.
13504         (c_parser_struct_declaration): Handle static assertions.
13505         (c_parser_compound_statement_nostart): Use
13506         c_parser_next_token_starts_declaration and
13507         c_token_starts_declaration to detect start of declarations.
13508         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
13509         Likewise.
13510
13511 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
13512
13513         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
13514         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
13515         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
13516         TARGET_FUNCTION_VALUE_REGNO_P): Define.
13517         (mmix_function_outgoing_value): Rename to...
13518         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
13519         (mmix_function_value_regno_p): Make static.
13520         (mmix_libcall_value): New function.
13521         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
13522         mmix_function_value_regno_p): Remove declaration.
13523
13524 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
13525
13526         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
13527         BUILT_IN_ALLOCA if stack checking is enabled.
13528
13529 2010-05-16  Richard Guenther  <rguenther@suse.de>
13530
13531         * var-tracking.c (vars_copy_1): Inline ...
13532         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
13533         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
13534         (variable_merge_over_cur): Adjust.  Merge asserts.
13535         (variable_merge_over_src): Likewise.
13536         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
13537         (variable_post_merge_new_vals): Merge asserts.
13538         (variable_post_merge_perm_vals): Likewise.
13539         (find_mem_expr_in_1pdv): Likewise.
13540         (dataflow_set_different_value): Remove.
13541         (onepart_variable_different_p): Merge asserts.
13542         (variable_different_p): Likewise.
13543         (dataflow_set_different_1): Inline ...
13544         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
13545         (emit_notes_for_differences_1): Merge asserts.
13546
13547 2010-05-16  Richard Guenther  <rguenther@suse.de>
13548
13549         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
13550         * optabs.c (libfunc_decl_hash): Likewise.
13551         * varasm.c (emutls_decl): Likewise.
13552
13553 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
13554
13555         * c-decl.c: Don't include gimple.h.
13556         (merge_decls): Do not copy gimple_body.
13557
13558 2010-05-15  Jason Merrill  <jason@redhat.com>
13559
13560         * c.opt: Add -fnothrow-opt.
13561
13562 2010-05-15  Jan Hubicka  <jh@suse.cz>
13563
13564         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
13565         analyzed.
13566         * passes.c (ipa_write_summaries): Write all analyzed nodes.
13567
13568 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
13569
13570         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
13571         * Makefile.in: Add it.
13572         Fix all other Makefile dependencies for changes below.
13573         * tree.h: Include it instead of defining VEC primitives here.
13574         * gimple.h: Likewise.
13575         * rtl.h: Likewise.
13576         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
13577         * except.h: Include vecir.h, break dependence on tree.h.
13578
13579         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
13580         Move from here...
13581         * tree-iterator.c: ...to here.
13582         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
13583
13584         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
13585         tm_p.h.
13586         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
13587         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
13588         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
13589         tree-mudflap.h, and target.h.
13590         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
13591         predict.h, tree-inline.h, gimple.h, and langhooks.h.
13592         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
13593         Add FIXME for why gimple.h is still included (should be unnecessary
13594         since GCC 4.5 gimplification unit-at-a-time).
13595         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
13596         * c-pragma.c: Add FIXME for why function.h needs to be included just
13597         for cfun, at front-end level.
13598         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
13599         Do not include ggc.h, but include vecprim.h for VEC(char).
13600         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
13601         Explain why target.h is included.
13602         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
13603         Explain why gimple.h is included.
13604         * c-ppoutput.c: Do not include tm.h.
13605         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
13606         * c-parses.c: Explain why rtl.h is included, and that this (and only
13607         this) is also why tm.h must be included.
13608         Do not include except.h.
13609         * c-lang.c: Do not include ggc.h.
13610
13611 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
13612
13613         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
13614
13615 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
13616
13617         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
13618         unions by default if those structs and unions have no tags.  Do
13619         not condition anonymous struct and unions handling on flag_iso.
13620         Allow anonymous structs and unions for C1X.
13621         (finish_struct): Do not diagnose lack of named fields when
13622         anonymous structs and unions present for C1X.  Accept flexible
13623         array members in structure with anonymous structs or unions but no
13624         directly named fields.
13625         * doc/extend.texi (Unnamed Fields): Update.
13626
13627 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
13628
13629         * gimple.h (compare_field_offset): Rename into...
13630         (gimple_compare_field_offset): ...this.
13631         * gimple.c (compare_field_offset): Rename into...
13632         (gimple_compare_field_offset): ...this.  Compare the full access if
13633         the offset is self-referential.
13634         (gimple_types_compatible_p): Adjust for above renaming.
13635         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
13636         DECL_NONADDRESSABLE_P flag of fields before merging them.
13637
13638 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
13639
13640         * tree.h (ctor_to_list): Delete.
13641         * tree.c (ctor_to_list): Delete.
13642
13643 2010-05-15  Jan Hubicka  <jh@suse.cz>
13644
13645         * ipa-reference.c: Include toplev.h
13646         (is_proper_for_analysis): Only add to all_module_statics
13647         if it is allocated.
13648         (write_node_summary_p, stream_out_bitmap,
13649         ipa_reference_write_optimization_summary,
13650         ipa_reference_read_optimization_summary): New.
13651         (struct ipa_opt_pass_d pass_ipa_reference): Add
13652         optimization summary streaming.
13653         * lto-cgraph.c (referenced_from_this_partition_p,
13654         reachable_from_this_partition_p): New functions.
13655         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
13656         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
13657         * opts.c (decode_options): Enable ipa_reference.
13658         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
13659         * lto-streamer.h (referenced_from_this_partition_p,
13660         reachable_from_this_partition_p): Declare.
13661
13662 2010-05-15  Richard Guenther  <rguenther@suse.de>
13663
13664         PR tree-optimization/44038
13665         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
13666         taking the address of a V_C_E of a constant.
13667
13668 2010-05-14  Jan Hubicka  <jh@suse.cz>
13669
13670         * tree.h (memory_identifier_string): Remove.
13671         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
13672         (ipa_reference_global_vars_info_d): Remove statics_not_read and
13673         statics_not_written.
13674         (ipa_reference_optimization_summary_d): New structure.
13675         (ipa_reference_optimization_summary_t): New type and vector.
13676         (ipa_reference_vars_info_d): Embedd structures instead of using
13677         pointers.
13678         (reference_vars_to_consider): Remove out of GGC space.
13679         (module_statics_escape): Remove.
13680         (global_info_obstack): Rename to ...
13681         (optimization_summary_obstack): ... this one.
13682         (initialization_status_t): Remove.
13683         (memory_identifier_string): Remove.
13684         (get_reference_vars_info): Fix indenting.
13685         (set_reference_vars_info): Likewise.
13686         (get_reference_optimization_summary): New.
13687         (set_reference_optimization_summary): New.
13688         (get_global_reference_vars_info): Remove.
13689         (ipa_reference_get_read_global): Remove.
13690         (ipa_reference_get_written_global): Remove.
13691         (ipa_reference_get_not_read_global): Update.
13692         (ipa_reference_get_not_written_global): Update.
13693         (is_proper_for_analysis): Outlaw addressable.
13694         (propagate_bits): Update for new datastructures.
13695         (analyze_variable): Remove.
13696         (init_function_info): Update for new datastructures.
13697         (clean_function_local_data): Remove.
13698         (clean_function): Remove.
13699         (copy_global_bitmap): Use optimizations_summary_obstack.
13700         (duplicate_node_data): Duplicate optimization summary only.
13701         (remove_node_data): Remove optimization summary only.
13702         (generate_summary): Do not analyze variables; do not compute
13703         module_statics_escape; do not prune solutions by it.
13704         (read_write_all_from_decl): Fix typos in comments.
13705         (propagate): Doscover readonly and nonaddressable first;
13706         update for new datastructures; share global bitmaps.
13707         * ipa-reference.h (ipa_reference_get_read_global,
13708         ipa_reference_get_written_global): Remove.
13709         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
13710         * Makefile.in: Remove ipa-refereference from GT files.
13711
13712 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
13713
13714         PR debug/44112
13715         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
13716         for all SYMBOL_REF_DECLs.
13717
13718 2010-05-14  Jan Hubicka  <jh@suse.cz>
13719
13720         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
13721         (varpool_all_refs_explicit_p): New inline function.
13722         * ipa-reference.c: Update comment.
13723         (module_statics_written): Remove.
13724         (get_static_decl): Remove.
13725         (ipa_init): Do not initialize module_statics_written.
13726         (analyze_function): Likewise.
13727         (generate_summary): Likewise; do not compute module_statics_readonly
13728         and do not update variable flags.
13729         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
13730         * ipa.c: Inlucde flags.h
13731         (cgraph_local_node_p): New.
13732         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
13733         promote functions to local.
13734         (ipa_discover_readonly_nonaddressable_vars): New function.
13735         (function_and_variable_visibility): Use cgraph_local_node_p.
13736         * varpool.c (varpool_finalize_decl): Set force_output for
13737         DECL_PRESERVE_P vars.
13738
13739 2010-05-14  Jan Hubicka  <jh@suse.cz>
13740
13741         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
13742
13743 2010-05-14  Richard Guenther  <rguenther@suse.de>
13744
13745         PR tree-optimization/44119
13746         * tree-ssa-pre.c (eliminate): Properly mark replacement of
13747         a PHI node necessary.
13748
13749 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
13750
13751         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
13752
13753 2010-05-14  Jason Merrill  <jason@redhat.com>
13754
13755         PR c++/44127
13756         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
13757         (gimple_call_set_nothrow): New.
13758         * gimple.c (gimple_build_call_from_tree): Call it.
13759         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
13760
13761         PR c++/44127
13762         * gimplify.c (gimplify_seq_add_stmt): No longer static.
13763         * gimple.h: Declare it.
13764         * gimple.c (gimple_build_eh_filter): No ops.
13765
13766 2010-05-14  Jan Hubicka  <jh@suse.cz>
13767
13768         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
13769         nodes already in queue.
13770         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
13771         re-enqueueing node.
13772
13773 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
13774
13775         PR debug/44136
13776         * cfgexpand.c (expand_debug_expr): If non-memory op0
13777         has BLKmode, return NULL.
13778
13779 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
13780
13781         * config.gcc: Add support for --with-cpu option for bdver1.
13782         * config/i386/i386.h (TARGET_BDVER1): New macro.
13783         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
13784         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
13785         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
13786         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
13787         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
13788         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
13789         (processor_type): Add PROCESSOR_BDVER1.
13790         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
13791         processor_type in config/i386/i386.h.
13792         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
13793         movaps <reg, reg> instead of movapd <reg, reg> when replacing
13794         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
13795         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
13796         to emit packed xor instead of packed double/packed integer
13797         xor for SSE and AVX when moving a zero value.
13798         * config/i386/sse.md: Add check for
13799         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
13800         movapd/movdqa for SSE and AVX.
13801         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
13802         single logical operations i.e and, or and xor instead of packed double
13803         logical operations for SSE and AVX.
13804         * config/i386/i386-c.c (ix86_target_macros_internal):
13805         Add PROCESSOR_BDVER1.
13806         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
13807         (has_fma4, has_xop): New.
13808         * config/i386/i386.c (bdver1_cost): New variable.
13809         (m_BDVER1): New macro.
13810         (m_AMD_MULTIPLE): Add m_BDVER1.
13811         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
13812         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
13813         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
13814         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
13815         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
13816         x86_tune_sse_partial_reg_dependency,
13817         x86_tune_sse_unaligned_load_optimal,
13818         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
13819         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
13820         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
13821         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
13822         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
13823         Enable/disable for bdver1.
13824         (processor_target_table): Add bdver1_cost.
13825         (cpu_names): Add bdver1.
13826         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
13827          processor_alias_table.
13828         (ix86_expand_vector_move_misalign): Change.
13829         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
13830         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
13831         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
13832         of movupd/movdqu for SSE and AVX.
13833         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
13834         (ix86_tune_adjust_cost): Add code for bdver1.
13835         (standard_sse_constant_opcode): Add check for
13836         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
13837         of packed double xor for SSE and AVX.
13838
13839 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
13840
13841         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
13842         result to unsigned.
13843
13844 2010-05-14  Tristan Gingold  <gingold@adacore.com>
13845
13846         * toplev.c (default_debug_hooks): Remove this variable.
13847         (process_options): Remove assignments to default_debug_hooks.
13848
13849 2010-05-14  Martin Jambor  <mjambor@suse.cz>
13850
13851         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
13852         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
13853         * langhooks.h (struct lang_hooks_for_decls): Removed field
13854         fold_obj_type_ref.
13855         * tree.c (free_lang_data): Remove assignment to
13856         lang_hooks.fold_obj_type_ref.
13857         * tree.def (OBJ_TYPE_REF): Update comment.
13858
13859 2010-05-14  Richard Guenther  <rguenther@suse.de>
13860
13861         PR tree-optimization/44124
13862         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
13863
13864 2010-05-14  Alan Modra  <amodra@gmail.com>
13865
13866         PR target/44075
13867         * config/rs6000/rs6000.c (struct machine_function): Reorder
13868         fields for better packing.  Add lr_save_state.
13869         (rs6000_ra_ever_killed): Return lr_save_state if set.
13870         (rs6000_emit_eh_reg_restore): Set lr_save_state.
13871
13872 2010-05-13  Jan Hubicka  <jh@suse.cz>
13873
13874         * varpool.c (decide_is_variable_needed): Drop code checking
13875         TREE_SYMBOL_REFERENCED.
13876
13877 2010-05-13  Jan Hubicka  <jh@suse.cz>
13878
13879         * final.c (output_addr_const): Do not call mark_decl_referenced.
13880         * cgraphunit.c (process_function_and_variable_attributes): Use
13881         mark_needed_node dirrectly.
13882         (assemble_thunk): Do not call mark_decl_referenced.
13883
13884 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
13885
13886         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
13887
13888 2010-05-13  Jeff Law  <law@redhat.com>
13889
13890         * ira-conflicts.c (print_allocno_conflicts): New function broken out
13891         from...
13892         (print_conflicts): Call print_allocno_conflicts.
13893
13894 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
13895
13896         PR debug/44104
13897         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
13898         if it is NULL.
13899
13900 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
13901
13902         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
13903         t-mingw-w64 or t-mingw-w32 for multilib configuration.
13904         * config/i386/t-mingw-w32: New.
13905         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
13906
13907 2010-05-13  Martin Jambor  <mjambor@suse.cz>
13908
13909         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
13910         gimple-fold.c).
13911         * gimple-fold.c (get_base_binfo_for_type): New function.
13912         (gimple_get_relevant_ref_binfo): Likewise.
13913         (gimple_fold_obj_type_ref_known_binfo): Likewise.
13914         (gimple_fold_obj_type_ref): Likewise.
13915         (fold_gimple_call): Simplify condition for folding virtual calls
13916         and call gimple_fold_obj_type_ref.
13917         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
13918         (gimple_fold_obj_type_ref_known_binfo): Likewise.
13919
13920 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
13921
13922         * config/rs6000/rs6000-protos.h
13923         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
13924         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
13925         (rs6000_debug_mode_dependent_address)
13926         (rs6000_mode_dependent_address_ptr): Likewise.
13927
13928 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
13929
13930         PR debug/43983
13931         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
13932         by SRA.
13933         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
13934         * tree-sra.c (create_access_replacement): Call unshare_expr before
13935         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
13936         * dwarf2out.c: Include tree-flow.h.
13937         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
13938         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
13939         Handle DW_OP_bit_piece.
13940         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
13941         construct_piece_list, adjust_piece_list): New functions.
13942         (add_var_loc_to_decl): Handle SRA optimized variables.
13943         Adjust for var_loc_note to loc field renaming.
13944         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
13945         in VAR_LOCATION note.
13946         (new_loc_descr_op_bit_piece): New function.
13947         (dw_sra_loc_expr): New function.
13948         (dw_loc_list): Use it.  Don't handle the last range after the
13949         loop, handle it inside of the loop.  Adjust for var_loc_note
13950         to loc field renaming.
13951         (add_location_or_const_value_attribute): Only special case
13952         single entry loc lists if loc is NOTE_P.  Adjust for
13953         var_loc_note to loc field renaming.
13954         (dwarf2out_var_location): Don't set newloc->var_loc_note
13955         and newloc->next here.
13956
13957 2010-05-12  Jan Hubicka  <jh@suse.cz>
13958
13959         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
13960         flag.
13961         * cgraph.h (cgraph_only_called_directly_p,
13962         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
13963         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
13964         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
13965         (assemble
13966         * ipa.c (cgraph_remove_unreachable_nodes): Use
13967         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
13968         flags.
13969         * tree-inline.c (copy_bb): Check address_taken flag.
13970         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
13971         externally_visible flag.
13972
13973 2010-05-12  Jason Merrill  <jason@redhat.com>
13974
13975         PR bootstrap/44048
13976         PR target/44099
13977         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
13978         * sdbout.c (plain_type_1): Likewise.
13979         * dwarf2out.c (is_base_type): Likewise.
13980         (gen_type_die_with_usage): Likewise.  Generate
13981         DW_TAG_unspecified_type for any LANG_TYPE.
13982
13983 2010-05-12  Jan Hubicka  <jh@suse.cz>
13984
13985         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
13986         indrect edges too.
13987         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
13988         (cgraph_clone_edge): Update.
13989         (cgraph_node_remove_callees): Remove indirect calls too.
13990         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
13991         (cgraph_create_indirect_edge): Update prototype.
13992         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
13993         is_proper_for_analysis.
13994         (add_new_function, visited_nodes, function_insertion_hook_holder,
13995         get_local_reference_vars_info, mark_address_taken, mark_address,
13996         mark_load, mark_store, check_asm_memory_clobber, check_call,
13997         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
13998         (ipa_init): Do not initialize visited_nodes;
13999         function_insertion_hook_holder.
14000         (analyze_variable): Rewrite.
14001         (analyze_function): Rewrite.
14002         (copy_local_bitmap): Remove.
14003         (duplicate_node_dat): Do not duplicate local info.
14004         (generate_summary): Simplify to only walk cgraph.
14005         (write_node_summary_p, ipa_reference_write_summary,
14006         ipa_reference_read_summary): Remove.
14007         (propagate): Do not remove function insertion;
14008         generate summary.
14009         (pass_ipa_reference): NULLify summary handling fields.
14010         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
14011         (input_edge): Input ecf_flags.
14012         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
14013         (update_indirect_edges_after_inlining): Ignore edges with unknown
14014         param.
14015
14016 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
14017
14018         * implicit-zee.c: New file.
14019         * tree-pass.h (pass_implicit_zee): Declare.
14020         * passes.c (init_optimization_passes): Add zee pass.
14021         * common.opt (fzee): New flag.
14022         * timevar.def (TV_ZEE): Define.
14023         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
14024         and beyond.
14025         * Makefile.in (implicit-zee.o): Add new build file.
14026
14027 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
14028             Nathan Froyd  <froydnj@codesourcery.com>
14029
14030         * c-common.c (sync_resolve_params): Remove write-only variable.
14031
14032 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
14033
14034         * target.h (struct gcc_target): Add mode_dependent_address_p field.
14035         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
14036         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
14037         * targhooks.c (default_mode_dependent_address_p): New function.
14038         * targhooks.h (default_mode_dependent_address_p): Declare function.
14039         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
14040         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
14041         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
14042         target hook. Change return type to bool.
14043         * recog.h (mode_dependent_address_p): Change return type to bool.
14044
14045 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
14046             Nathan Froyd  <froydnj@codesourcery.com>
14047
14048         * tree-mudflap.c (build_function_type_0, build_function_type_1,
14049         build_function_type_2, build_function_type_3): Remove.
14050         (mudflap_init): Use build_function_type_list.
14051
14052 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
14053             Nathan Froyd  <froydnj@codesourcery.com>
14054
14055         * coverage.c (build_fn_info_value): Call build_constructor instead of
14056         build_constructor_from_list.
14057         (build_ctr_info_value): Likewise.
14058         (build_gcov_info): Likewise.
14059
14060 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
14061
14062         * tree.c (build_constructor): Compute TREE_CONSTANT for the
14063         resultant constructor.
14064         (build_constructor_single): Don't set TREE_CONSTANT.
14065         (build_constructor_from_list): Don't compute TREE_CONSTANT.
14066
14067 2010-05-12  Jan Hubicka  <jh@suse.cz>
14068
14069         * cgraph.h (struct varpool_node): Add aux.
14070         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
14071         * varpool.c (varpool_remove_node): Do not remove initializer.
14072         (varpool_reset_queue): Export.
14073         (varpool_finalize_decl): Volatile vars are forced to be output.
14074         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
14075         replaced decl.
14076         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
14077         process_references, varpool_can_remove_if_no_refs): New functions.
14078         (cgraph_remove_unreachable_nodes): Handle variables too.
14079
14080 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
14081
14082         PR target/44088
14083         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
14084
14085 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
14086
14087         PR middle-end/44085
14088         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
14089         change value of ORT_TASK.
14090         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
14091         (omp_notice_threadprivate_variable): New function.
14092         (omp_notice_variable): Call it for threadprivate variables.
14093         If enclosing ctx is a task, print enclosing task rather than
14094         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
14095         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
14096         if task has untied clause.
14097
14098         PR debug/42278
14099         * dwarf2out.c (base_type_die): Don't add name attribute here.
14100         (modified_type_die): Instead of sizetype use
14101         its underlying original type.  If a DW_TAG_base_type doesn't
14102         have name added, add __unknown__.
14103         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
14104         always call force_type_die instead.
14105
14106 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
14107
14108         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
14109         for __stack_chk_guard.
14110
14111 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
14112
14113         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
14114         don't call start_source_file debug hook here...
14115         (finish_options): ... but here, after outputting predefined and
14116         command line defines and undefs.
14117
14118         PR middle-end/44071
14119         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
14120         no fallthru edge.
14121         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
14122         optimizing away empty bb with no successors, move over its
14123         footer chain to fallthru predecessor.
14124         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
14125         (rtl_split_edge): For asm goto call patch_jump_insn even if
14126         splitting fallthru edge.
14127
14128         PR c++/44059
14129         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
14130         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
14131         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
14132         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
14133         on DW.ref.* decls.
14134
14135         PR c++/44062
14136         * c-parser.c (c_parser_expression): Mark LHS of a comma
14137         expression as read if it is a decl, handled component or
14138         COMPOUND_EXPR with that on the RHS.
14139         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
14140         if it is a decl or handled component.
14141
14142 2010-05-11  Jan Hubicka  <jh@suse.cz>
14143
14144         * lto-symtab.c (lto_symtab_free): New function.
14145         * lto-streamer.h (lto_symtab_free): Declare.
14146
14147 2010-05-11  Jan Hubicka  <jh@suse.cz>
14148
14149         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
14150         that if function is needed it is reachable.
14151         (lto_output_node): See if it the function is reachable or referenced.
14152         (output_cgraph): Update call of lto_output_node.
14153         * lto-streamer.h (reachable_from_other_partition_p): Declare.
14154
14155 2010-05-11  Jan Hubicka  <jh@suse.cz>
14156
14157         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
14158         Mark as used.
14159
14160 2010-05-11  Jan Hubicka  <jh@suse.cz>
14161
14162         PR tree-optimize/44063
14163         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
14164         queue.
14165         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
14166         limits.
14167         (estimate_function_body_sizes): Compute sizes even when disregarding.
14168
14169 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
14170
14171         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
14172
14173 2010-05-11  Jan Hubicka  <jh@suse.cz>
14174
14175         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
14176         into every boundary.
14177
14178 2010-05-11  Jan Hubicka  <jh@suse.cz>
14179
14180         * matrix-reorg.c (matrix_reorg): Rebuild edges.
14181
14182 2010-05-11  Jan Hubicka  <jh@suse.cz>
14183
14184         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
14185         lto_streamer_cache_delete): Put nodes into heap.
14186         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
14187         heap.
14188
14189 2010-05-11  Jan Hubicka  <jh@suse.cz>
14190
14191         * cgraphbuild.c (cgraph_rebuild_references): New.
14192         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
14193         out extern inlines.
14194         * cgraph.h (cgraph_rebuild_references): Declare.
14195         * tree-inline.c (tree_function_versioning): Use it.
14196         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
14197
14198 2010-05-11  Jan Hubicka  <jh@suse.cz>
14199
14200         * cgraph.c: Include ipa-utils.h
14201         (cgraph_create_virtual_clone): Update references.
14202         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
14203
14204 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
14205
14206         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
14207         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
14208         cache size.
14209
14210 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
14211
14212         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
14213
14214 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
14215
14216         * gcc.c (execute): For -### don't quote arguments that
14217         contain just alphanumerics and _/-. characters.
14218         * doc/invoke.texi: Document that change for -###.
14219
14220         PR debug/44023
14221         * df-problems.c (struct dead_debug): Add to_rescan field.
14222         (dead_debug_init): Clear to_rescan field.
14223         (dead_debug_finish): Rescan all debug insns in to_rescan
14224         bitmap and free the bitmap.
14225         (dead_debug_insert_before): Instead of rescanning debug insns
14226         immediately queue their rescanning until dead_debug_finish.
14227         (df_note_bb_compute): After dead_debug_add do continue instead
14228         of break.
14229
14230 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
14231
14232         PR debug/44028
14233         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
14234         clear also INSN_REG_USE_LIST.
14235
14236 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14237
14238         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
14239
14240 2010-05-10  Jan Hubicka  <jh@suse.cz>
14241
14242         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
14243         commited change.
14244
14245 2010-05-10  Jan Hubicka  <jh@suse.cz>
14246
14247         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
14248         Allocate encoders.
14249         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
14250         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
14251         (lto_streamer_cache_create): Init alloc pool.
14252         (lto_streamer_cache_delete): Free alloc pool.
14253         * lto-streamer.h: Include alloc pool.
14254         (lto_streamer_cache_d): Use alloc pool.
14255         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
14256
14257 2010-05-10  Jan Hubicka  <jh@suse.cz>
14258
14259         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
14260         * cgraphbuild.c: Include except.h
14261         (record_type_list, record_eh_tables): New function.
14262         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
14263
14264 2010-05-10  Jan Hubicka  <jh@suse.cz>
14265
14266         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
14267         __frame_dummy_init_array_entry, force_to_data): Attribute as used
14268         rather than unused.
14269
14270 2010-05-10  Michael Matz  <matz@suse.de>
14271
14272         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
14273         (can_reassociate_p): Use FLOAT_TYPE_P.
14274         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
14275         (vect_force_simple_reduction): ... this.
14276         * tree-parloops.c (gather_scalar_reductions): Use
14277         vect_force_simple_reduction.
14278         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
14279         vect_is_simple_reduction, add modify argument, if true rewrite
14280         "a-b" into "a+(-b)".
14281         (vect_is_simple_reduction, vect_force_simple_reduction): New
14282         functions.
14283         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
14284
14285 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
14286             Vladimir Makarov  <vmakarov@redhat.com>
14287
14288         PR rtl-optimization/44012
14289         * ira-build.c (remove_unnecessary_allocnos): Nullify
14290         regno_allocno_map of the removed allocno.
14291
14292 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14293
14294         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
14295         to /dev/null.
14296         * configure: Regenerate.
14297
14298 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14299
14300         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
14301         unused.
14302         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
14303         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
14304         support in Sun ld.
14305         * configure: Regenerate.
14306
14307 2010-05-10  Richard Guenther  <rguenther@suse.de>
14308
14309         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
14310         marked if the entry identifier is marked.
14311
14312 2010-05-10  Richard Guenther  <rguenther@suse.de>
14313
14314         * c-common.c (struct c_common_attributes): Add fnspec attribute.
14315         (handle_fnspec_attribute): New function.
14316         * gimple.h (gimple_call_return_flags): Declare.
14317         (gimple_call_arg_flags): Likewise.
14318         * gimple.c (gimple_call_arg_flags): New function.
14319         (gimple_call_return_flags): Likewise.
14320         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
14321         New argument flags.
14322         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
14323         return value flags.
14324         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
14325         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
14326         main work to ...
14327         (make_heapvar_for): ... this new function.
14328         (handle_rhs_call): Handle fnspec attribute argument specifiers.
14329         (handle_lhs_call): Likewise.
14330         (find_func_aliases): Adjust.
14331
14332 2010-05-10  Richard Guenther  <rguenther@suse.de>
14333
14334         PR tree-optimization/44050
14335         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
14336
14337 2010-05-10  Wei Guozhi  <carrot@google.com>
14338
14339         PR target/42879
14340         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
14341
14342 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
14343
14344         PR c/10676
14345         * c-typeck.c (lookup_field): Take a type directly.  Update
14346         recursive calls.
14347         (build_component_ref): Update call to lookup_field.
14348         (set_init_label): Use lookup_field to find initialized field.
14349         Handle returned list of fields like a sequence of designators.
14350
14351 2010-05-09  Richard Guenther  <rguenther@suse.de>
14352
14353         PR middle-end/44024
14354         * fold-const.c (tree_single_nonzero_warnv_p): Properly
14355         handle &FUNCTION_DECL.
14356
14357 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
14358
14359         PR c/4784
14360         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
14361         structures and unions recursively.
14362         (detect_field_duplicates): Move duplicate detection with a hash to
14363         detect_field_duplicates_hash.  Always use a hash if anonymous
14364         structures or unions are present.
14365         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
14366         give errors.
14367
14368 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
14369
14370         PR target/44046
14371         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
14372         detect Atom, Core 2 and Core i7.
14373
14374 2010-05-09  Richard Guenther  <rguenther@suse.de>
14375
14376         * gcc.c (store_arg): Handle temporary file deletion for
14377         joined arguments.
14378
14379 2010-05-09  Richard Guenther  <rguenther@suse.de>
14380
14381         PR middle-end/44043
14382         * ipa-inline.c (estimate_function_body_sizes): Return after
14383         disregarding inline limits.
14384
14385 2010-05-09  Richard Guenther  <rguenther@suse.de>
14386
14387         * gcc.c (store_arg): Revert last change.
14388
14389 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
14390
14391         PR middle-end/28685
14392         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
14393         (optimize_ops_list): Call it.
14394
14395 2010-05-08  Richard Guenther  <rguenther@suse.de>
14396
14397         PR tree-optimization/44030
14398         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
14399         NECESSARY flag if we propagate from a inserted expression.
14400
14401 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
14402
14403         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
14404         domain types as equal if they are both PLACEHOLDER_EXPRs.
14405
14406 2010-05-08  Richard Guenther  <rguenther@suse.de>
14407
14408         * lto-wrapper.c (run_gcc): Remove linker output from
14409         command line for LTRANS invocation.
14410
14411 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
14412
14413         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
14414         lto-macho as lto_binary_reader.
14415         * target.h (struct gcc_target): New hooks lto_start and lto_end.
14416         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
14417         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
14418         in lto_start and lto_end calls.
14419         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
14420         magic numbers.
14421         (scan_prog_file): Update is_elf_or_coff call.
14422         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
14423
14424         * collect2.c (main): Fix enum comparison.
14425
14426         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
14427         Add prototypes.
14428         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
14429         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
14430         and TARGET_ASM_LTO_END.
14431         * darwin.c: Include obstack.h and lto-streamer.h.
14432         (lto_section_names_offset, lto_section_names_obstack,
14433         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
14434         global variables.
14435         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
14436         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
14437         to a temporary file.
14438         (darwin_asm_lto_end): New function.  Restore asm_out_file.
14439         (darwin_asm_named_section): For LTO sections, replace the name with
14440         the offset of the section name in a string table, and build this
14441         table.
14442         (darwin_file_start): Initialize global vars for LTO support.
14443         (darwin_file_end): If output to asm_out_file was redirected, append it
14444         to the proper asm_out_file here.  Add the section names section.
14445
14446 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
14447
14448         * c-pragma.c (pending_weak_d, pending_weak): New.
14449         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
14450         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
14451         handle_pragma_weak): Update the uses of pending_weaks.
14452
14453 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14454
14455         PR documentation/44016
14456         * doc/standards.texi (Standards): Link to unversioned
14457         cxx0x_status.html page.
14458
14459 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
14460
14461         PR target/43708
14462         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
14463         in addition to TREE_USED, to avoid "set but unused" warnings.
14464
14465 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
14466
14467         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
14468         (is_loop_prefetching_profitable): Do not insert prefetches
14469         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
14470         times the prefetch ahead distance.
14471
14472 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
14473
14474         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
14475         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
14476         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
14477         the unroll_factor.
14478
14479 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
14480
14481         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
14482         a diagnostic info when the insn-to-mem ratio is too small.
14483
14484 2010-05-07  Richard Guenther <rguenther@suse.de>
14485
14486         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
14487         the linker plugin.
14488         (store_arg): Queue temp_filename for deletion instead of
14489         the whole argument.
14490
14491 2010-05-07  Richard Guenther  <rguenther@suse.de>
14492
14493         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
14494         (run_gcc): Handle LTRANS phase invocation.
14495         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
14496
14497 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
14498
14499         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
14500         this is also meaningful on PARM_DECLs and RESULT_DECLs.
14501
14502 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14503
14504         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
14505
14506 2010-05-07  Richard Guenther  <rguenther@suse.de>
14507
14508         PR tree-optimization/44020
14509         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
14510         code when PRE is not yet initialized.
14511
14512 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14513
14514         * config/mips/dbxmdebug.h: Remove.
14515         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
14516
14517 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
14518
14519         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
14520         with null pointer and also warn about ordered comparison of zero with
14521         pointer if -Wextra.
14522
14523 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14524
14525         * graphite-blocking.c
14526         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
14527         * graphite-clast-to-gimple.c
14528         (clast_to_gcc_expression): Same.
14529         (precision_for_value): Same.
14530         (precision_for_interval): Same.
14531         (gcc_type_for_interval): Same.
14532         (graphite_create_new_guard): Same.
14533         (compute_bounds_for_level): Same.
14534         (graphite_create_new_loop_guard): Same.
14535         * graphite-interchange.c
14536         (build_linearized_memory_access): Same.
14537         (pdr_stride_in_loop): Same.
14538         (memory_strides_in_loop_1): Same.
14539         (memory_strides_in_loop): Same.
14540         (extend_scattering): Same.
14541         (psct_scattering_dim_for_loop_depth): Same.
14542         (pbb_number_of_iterations): Same.
14543         * graphite-poly.h
14544         (debug_iteration_domains): Same.
14545         * graphite-ppl.c
14546         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14547         (ppl_set_inhomogeneous_gmp): Same.
14548         (ppl_strip_loop): Same.
14549         (ppl_lexico_compare_linear_expressions): Same.
14550         (ppl_read_polyhedron_matrix): Same.
14551         (ppl_max_for_le_pointset): Same.
14552         * graphite-ppl.h
14553         (ppl_read_polyhedron_matrix): Same.
14554         (tree_int_to_gmp): Same.
14555         (gmp_cst_to_tree): Same.
14556         (ppl_set_inhomogeneous): Same.
14557         (ppl_set_inhomogeneous_tree): Same.
14558         (ppl_set_coef): Same.
14559         (ppl_set_coef_tree): Same.
14560         * graphite-sese-to-poly.c
14561         (build_pbb_scattering_polyhedrons): Same.
14562         (build_scop_scattering): Same.
14563         (scan_tree_for_params_right_scev): Same.
14564         (scan_tree_for_params): Same.
14565         (find_params_in_bb): Same.
14566         (find_scop_parameters): Same.
14567         (add_upper_bounds_from_estimated_nit): Same.
14568         (build_loop_iteration_domains): Same.
14569         (add_condition_to_domain): Same.
14570         (pdr_add_memory_accesses): Same.
14571
14572 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14573
14574         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
14575         CLooG's value_* macros to their respective mpz_* counterparts.
14576         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
14577         (graphite_create_new_loop_guard): Same.
14578         * graphite-interchange.c (build_linearized_memory_access): Same.
14579         (pdr_stride_in_loop): Same.
14580         (memory_strides_in_loop_1): Same.
14581         (1st_interchange_profitable_p): Same.
14582         * graphite-poly.c (extend_scattering): Same.
14583         (psct_scattering_dim_for_loop_depth): Same.
14584         (pbb_number_of_iterations): Same.
14585         (pbb_number_of_iterations_at_time): Same.
14586         * graphite-poly.h (new_1st_loop): Same.
14587         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
14588         (oppose_constraint): Same.
14589         (insert_constraint_into_matrix): Same.
14590         (ppl_set_inhomogeneous_gmp): Same.
14591         (ppl_set_coef_gmp): Same.
14592         (ppl_strip_loop): Same.
14593         (ppl_lexico_compare_linear_expressions): Same.
14594         (ppl_max_for_le_pointset): Same.
14595         (ppl_min_for_le_pointset): Same.
14596         (ppl_build_realtion): Same.
14597         * graphite-ppl.h (gmp_cst_to_tree): Same.
14598         (ppl_set_inhomogeneous): Same.
14599         (ppl_set_inhomogeneous_tree): Same.
14600         (ppl_set_coef): Same.
14601         (ppl_set_coef_tree): Same.
14602         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
14603         (build_scop_scattering): Same.
14604         (add_value_to_dim): Same.
14605         (scan_tree_for_params_right_scev): Same.
14606         (scan_tree_for_params_int): Same.
14607         (scan_tree_for_params): Same.
14608         (find_params_in_bb): Same.
14609         (find_scop_parameters): Same.
14610         (add_upper_bounds_from_estimated_nit): Same.
14611         (build_loop_iteration_domains): Same.
14612         (create_linear_expr_from_tree): Same.
14613         (add_condition_to_domain): Same.
14614         (pdr_add_memory_accesses): Same.
14615
14616 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
14617             Jason Merrill  <jason@redhat.com>
14618
14619         * c-common.c (c_common_reswords): Add nullptr.
14620         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
14621         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
14622         (gen_type_die_with_usage): Likewise.
14623         * dbxout.c (dbxout_type): Likewise.
14624         * sdbout.c (plain_type_1): Likewise.
14625
14626 2010-05-06  Jason Merrill  <jason@redhat.com>
14627
14628         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
14629         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
14630         ret appropriately.
14631         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
14632
14633         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
14634         stripping WITH_SIZE_EXPR.
14635         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
14636         change.
14637
14638 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14639
14640         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
14641         list of obsolete configurations.
14642         Disabled check for obsolete configurations.
14643         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
14644         Removed support for previous versions.
14645         * config/mips/iris.h: Removed.
14646         * config/mips/iris5.h: Removed.
14647         * config/mips/iris6.h: Merged old iris.h contents.
14648         (TARGET_IRIX): Removed.
14649         (DRIVER_SELF_SPECS): Removed mabi=32.
14650         (IDENT_ASM_OP): Removed undef.
14651         (STARTFILE_SPEC): Removed mabi=32.
14652         (ENDFILE_SPEC): Likewise.
14653         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
14654         (MACHINE_TYPE): Update for IRIX 6.5.
14655         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
14656         TARGET_IRIX by TARGET_IRIX6.
14657         (mips_file_start): Likewise.
14658         (mips_output_external): Remove IRIX 5/6 O32 support.
14659         (mips_output_function_prologue): Likewise.
14660         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
14661         TARGET_IRIX6.
14662         (TARGET_CPU_CPP_BUILTINS): Likewise.
14663         (TARGET_IRIX): Removed.
14664         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
14665         (MULTILIB_DIRNAMES): Removed 32.
14666         (MULTILIB_OSDIRNAMES): Removed ../lib.
14667         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
14668         (Specific, mips-sgi-irix5): Document removal.
14669         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
14670         Remove references to older IRIX 6 releases and the O32 ABI.
14671
14672 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
14673
14674         PR bootstrap/43994
14675         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
14676         instead of DF_REF_REAL_REG.
14677
14678 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
14679
14680         PR target/43888
14681         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
14682         handling to still return true for x64 targets.
14683
14684 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
14685
14686         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
14687
14688 2010-05-06  Jan Hubicka  <jh@suse.cz>
14689
14690         PR tree-optimization/43791
14691         * ipa-inline.c (update_caller_keys): Remove bogus
14692         disregard_inline_limits check.
14693
14694 2010-05-06  Michael Matz  <matz@suse.de>
14695
14696         PR tree-optimization/43984
14697         * tree-ssa-pre.c (inserted_phi_names): Remove.
14698         (inserted_exprs): Change to bitmap.
14699         (create_expression_by_pieces): Set bits, don't append to vector.
14700         (insert_into_preds_of_block): Don't handle inserted_phi_names.
14701         (eliminate): Don't look at inserted_phi_names, remove deleted
14702         insns from inserted_exprs.
14703         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
14704         (init_pre, fini_pre): Allocate and free bitmaps.
14705         (execute_pre): Insert insns on edges before elimination.
14706
14707 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
14708
14709         * tree.c (initializer_zerop): Handle STRING_CST.
14710
14711 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14712
14713         PR 40989
14714         * doc/invoke.texi (Wimplicit): Document as C only.
14715         * opts.c (common_handle_option): Add argument kind.
14716         (handle_option): Rename as read_cmdline_option. Factor out code to...
14717         (handle_option): ... here. New.
14718         (handle_options): Rename as read_cmdline_options.
14719         (decode_options): Update call.
14720         (set_option): Use option index instead of option pointer. Classify
14721         diagnostics correctly.
14722         (enable_warning_as_error): Call handle_option.
14723         * opts.h (set_option): Update declaration.
14724         (handle_option): Declare.
14725         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
14726         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
14727         * c-opts.c (set_Wimplicit): Delete.
14728         (c_family_lang_mask): New static constant.
14729         (c_common_handle_option): Add argument kind. Use handle_option
14730         instead of set_Wimplicit.
14731         (c_common_post_options): warn_implicit and warn_implicit_int
14732         are disabled by default.
14733         * c-common.c (warn_implicit): Do not define here.
14734         * c-common.h (warn_implicit): Do not declare here.
14735         (c_common_handle_option): Update declaration.
14736         * lto-opts.c (lto_reissue_options): Update call to set_option.
14737
14738 2010-05-06  Richard Guenther  <rguenther@suse.de>
14739
14740         PR tree-optimization/43571
14741         * domwalk.c (walk_dominator_tree): Walk the dominator
14742         sons in more optimal order.
14743
14744 2010-05-06  Richard Guenther  <rguenther@suse.de>
14745
14746         PR tree-optimization/43934
14747         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
14748         (stmt_cost): Likewise.
14749         (extract_true_false_args_from_phi): New helper.
14750         (determine_max_movement): For PHI nodes verify we can hoist them
14751         and compute their cost.
14752         (determine_invariantness_stmt): Handle PHI nodes.
14753         (move_computations_stmt): Likewise.  Hoist PHI nodes in
14754         if-converted form using COND_EXPRs.
14755         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
14756         (tree_ssa_lim): Likewise.
14757         * tree-flow.h (tree_ssa_lim): Adjust prototype.
14758         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
14759
14760 2010-05-06  Richard Guenther  <rguenther@suse.de>
14761
14762         PR tree-optimization/43987
14763         * tree-ssa-structalias.c (could_have_pointers): For possibly
14764         address-taken variables force pointers to be recorded.
14765         (create_variable_info_for_1): Likewise.
14766         (push_fields_onto_fieldstack): Pass in wheter all fields
14767         must have pointers.
14768         (find_func_aliases): Query types instead of vars whether
14769         they contain pointers where appropriate.
14770
14771 2010-05-06  Jan Hubicka  <jh@suse.cz>
14772
14773         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
14774         (record_reference, mark_address, mark_load, mark_store): Record
14775         references.
14776         (record_references_in_initializer): Update call of record_references.
14777         (rebuild_cgraph_edges): Remove all references before rebuiding.
14778         * cgraph.c (cgraph_create_node): Clear ref list.
14779         (cgraph_remove_node): Remove references.
14780         (dump_cgraph_node): Dump references.
14781         (cgraph_clone_node): Clone references.
14782         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
14783         (struct cgraph_node, varpool_node): Add ref_lst.
14784         * ipa-ref.c: New file.
14785         * ipa-ref.h: New file.
14786         * ipa-ref-inline.h: New file.
14787         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
14788         (referenced_from_other_partition_p): New function.
14789         (lto_output_varpool_node): Take set arugment; call
14790         referenced_from_other_partition.
14791         (lto_output_ref): New.
14792         (add_references): New.
14793         (output_refs): New.
14794         (output_cgraph): Compute boundary based on references; output refs.
14795         (output_varpool): Accept cgraph_node_set argument.
14796         (input_ref): New.
14797         (input_refs): New.
14798         (input_cgraph): Call input_refs.
14799         * lto-section-in.c (lto_section_name): Add refs.
14800         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
14801         (ipa-ref.o): New file.
14802         * varpool.c (varpool_node): Clear ipa ref list.
14803         (varpool_remove_node): Remove references.
14804         (dump_varpool_node): Dump references.
14805         (varpool_assemble_decl): Only compile finalized ones.
14806         (varpool_extra_name_alias): Initialize ref list.
14807         * lto-streamer.c (lto-get_section_name): Add .refs section.
14808         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
14809         (referenced_from_other_partition_p): Declared.
14810
14811 2010-05-06  Ira Rosen  <irar@il.ibm.com>
14812
14813         PR tree-optimization/43901
14814         * tree-vect-stmts.c (vectorizable_call): Assert that vector
14815         type is not NULL if it's transformation phase, and return
14816         FALSE if it's analysis.
14817         (vectorizable_conversion, vectorizable_operation,
14818         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
14819
14820 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
14821
14822         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
14823         Delete.
14824         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
14825         New define.
14826         * config/mips/mips-protos.h
14827         (mips_small_register_classes_for_mode_p): Delete prototype.
14828
14829 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
14830
14831         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
14832         * config/arm/arm.c (multiple_operation_profitable_p,
14833         compute_offset_order): New static functions.
14834         (load_multiple_sequence, store_multiple_sequence): Use them.
14835         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
14836         memory offsets, not register numbers.
14837         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
14838
14839 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
14840
14841         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
14842         (get_pending_sizes, put_pending_size, put_pending_sizes):
14843         Update the uses of pending_sizes.
14844         * c-decl.c (store_parm_decls): Likewise.
14845         * c-tree.h (struct c_arg_info): Likewise.
14846         * tree.h: Update the prototype for get_pending_sizes and
14847         put_pending_sizes.
14848
14849 2010-05-05  Jason Merrill  <jason@redhat.com>
14850
14851         PR debug/43370
14852         * c-common.c (handle_aligned_attribute): Respect
14853         ATTR_FLAG_TYPE_IN_PLACE.
14854
14855         PR testsuite/43758
14856         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
14857         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
14858         (TARGET_INITIALIZER): Use it.
14859         * c-common.c (attribute_takes_identifier_p): Call it.
14860         * c-common.h: Update prototype.
14861         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
14862         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
14863
14864 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
14865
14866         PR debug/43950
14867         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
14868         DW_ID_down_case for Fortran compilation units.
14869
14870 2010-05-05  Jan Hubicka  <jh@suse.cz>
14871
14872         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
14873         handle aliases.
14874
14875 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
14876
14877         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
14878         a variable-sized RESULT_DECL.
14879
14880 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
14881
14882         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
14883
14884 2010-05-05  Jason Merrill  <jason@redhat.com>
14885
14886         PR c++/43787
14887         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
14888         returns GS_OK.
14889         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
14890
14891 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
14892             Jakub Jelinek  <jakub@redhat.com>
14893
14894         PR debug/43478
14895         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
14896         (dead_debug_init, dead_debug_finish): New functions.
14897         (dead_debug_add, dead_debug_insert_before): Likewise.
14898         (df_note_bb_compute): Initialize a dead_debug object, add dead
14899         debug uses to it, insert debug bind insns before death insns,
14900         reset debug insns that refer to pending uses at the end.
14901         * rtl.h (make_debug_expr_from_rtl): New prototype.
14902         * varasm.c (make_debug_expr_from_rtl): New function.
14903
14904 2010-05-05  Jan Hubicka  <jh@suse.cz>
14905
14906         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
14907         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
14908         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
14909         lto_varpool_encoder_deref, lto_varpool_encoder_size,
14910         lto_varpool_encoder_encode_initializer_p,
14911         lto_set_varpool_encoder_encode_initializer): New functions.
14912         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
14913         call output_varpool.
14914         (input_varpool_node): Do not always set analyzed.
14915         (input_cgraph_1): Return vector of cgraph nodes.
14916         (input_varpool_1): Return vector of varpools.
14917         (input_cgraph): Free the vectors.
14918         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
14919         output only initializers needed.
14920         (lto_output): Only call output_cgraph.
14921         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
14922         * lto-section-out.c (lto_new_out_decl_state): Initialize
14923         state->varpool_node_encoder.
14924         * lto-streamer.h (lto_varpool_encoder_d): New.
14925         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
14926         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
14927         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
14928         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
14929         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
14930         Declare.
14931         (output_varpool, input_varpool): Remove declarations.
14932
14933 2010-05-05  Jan Hubicka  <jh@suse.cz>
14934
14935         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
14936         with body can prevail.
14937
14938 2010-05-05  Jan Hubicka  <jh@suse.cz>
14939
14940         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
14941         size.
14942
14943 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
14944
14945         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
14946
14947         * gengtype.h (erro_at_line): Constify pos argument.
14948
14949         * gengtype.c: Include hashtab.h.
14950         (enum gc_used): Document GC_MAYBE_POINTED_TO.
14951         (error_at_line): Constify pos argument.
14952         (do_typedef): Initialize p->opt field.
14953         (get_file_gtfilename): Fix comment typo.
14954         (struct walk_type_data): Constify line field.
14955         (get_output_file_for_structure): New function.
14956         (write_local_func_for_structure): Constify orig_s argument.
14957         Use get_output_file_for_structure.
14958         (write_func_for_structure): Use get_output_file_for_structure.
14959         (INDENT): New define.
14960         (dump_pair, dump_type, dump_type_list, dump_typekind)
14961         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
14962         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
14963         functions.
14964         (seen_types): New variable.
14965         (main): New variable do_dump.  Process "-d" command line option.
14966         Call dump_everything if dump requested.
14967
14968 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
14969
14970         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
14971         in a temporary instead of invoking the macro multiple times.
14972         (track_expr_p): Likewise.
14973
14974 2010-05-04  Neil Vachharajani <nvachhar@google.com>
14975
14976         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
14977         per new semantics.
14978         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
14979         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
14980         conditions for printing notes.
14981         * common.opt (-Wcoverage-mismatch): Allow negative, default to
14982         true, update documentation.
14983         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
14984
14985 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
14986
14987         PR c/43981
14988         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
14989         on dimen.
14990
14991 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
14992
14993         PR target/43799
14994         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
14995         (*sse_prologue_save_insn1): Likewise.
14996         (SSE prologue save splitter): Likewise.
14997
14998 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
14999
15000         * tree.c (free_lang_data_in_one_sizepos): New inline function.
15001         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
15002         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
15003         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
15004         all decls.  Call it on DECL_FIELD_OFFSET of fields.
15005         (find_decls_types_r): Follow DECL_VALUE_EXPR.
15006         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
15007
15008 2010-05-04  Martin Jambor  <mjambor@suse.cz>
15009
15010         * tree-sra.c (build_access_from_expr_1): The first parameter type
15011         changed to simple tree.
15012         (build_access_from_expr): Likewise, gsi parameter was eliminated.
15013         (scan_assign_result): Renamed to assignment_mod_result, enum elements
15014         renamed as well.
15015         (build_accesses_from_assign): Removed all parameters except for a
15016         simple gimple statement.  Now returns a simple bool.
15017         (scan_function): All non-analysis parts moved to separate functions
15018         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
15019         parameters and updated both callers.
15020         (sra_modify_expr): Removed parameter data.
15021         (sra_modify_function_body): New function.
15022         (perform_intra_sra): Call sra_modify_function_body to modify the
15023         function body.
15024         (replace_removed_params_ssa_names): Parameter data changed into
15025         adjustments vector.
15026         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
15027         changed the parameter dont_convert to convert with the opposite
15028         meaning.
15029         (sra_ipa_modify_assign): Parameter data changed into adjustments
15030         vector, return value changed to bool.
15031         (ipa_sra_modify_function_body): New function.
15032         (sra_ipa_reset_debug_stmts): Updated a comment.
15033         (modify_function): Use ipa_sra_modify_function_body to modify function
15034         body.
15035
15036 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
15037
15038         PR middle-end/43671
15039         * alias.c (true_dependence): Handle the same VALUE in x and mem.
15040         (canon_true_dependence): Likewise.
15041         (write_dependence_p): Likewise.
15042
15043 2010-05-04  Jan Hubicka  <jh@suse.cz>
15044
15045         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
15046         * cgraphbuild.c: Include ipa-utils.h
15047         (record_reference_ctx): New struct.
15048         (record_reference): Simplify to work on initializers; not statements.
15049         (mark_address, mark_load, mark_store): New.
15050         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
15051         walk PHI nodes too.
15052         (record_references_in_initializer): Update use of record_reference.
15053         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
15054         walk PHI nodes too.
15055
15056 2010-05-04  Jan Hubicka  <jh@suse.cz>
15057
15058         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
15059         node will be removed anyway.
15060         (lto_varpool_replace_node): Allow also unanalyzed nodes;
15061         relink aliases of node into prevailing node.
15062         * varpool.c (varpool_remove_node): Remove aliases properly;
15063         when removing node, remove all its aliases too; remove DECL_INITIAL
15064         of removed node; ggc_free the varpool node.
15065
15066 2010-05-04  Richard Guenther  <rguenther@suse.de>
15067
15068         PR tree-optimization/43879
15069         * tree-ssa-structalias.c (alias_get_name): Use
15070         DECL_ASSEMBLER_NAME if available.
15071         (create_function_info_for): Return the varinfo node.
15072         (ipa_pta_execute): Associate same-body aliases and extra names
15073         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
15074
15075 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
15076
15077         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
15078
15079 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
15080
15081         PR bootstrap/43964
15082         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
15083         only if HONOR_REG_ALLOC_ORDER is not defined.
15084
15085 2010-05-04  Richard Guenther  <rguenther@suse.de>
15086
15087         PR tree-optimization/43949
15088         * tree-vrp.c (extract_range_from_binary_expr): Only handle
15089         TRUNC_MOD_EXPR.
15090
15091 2010-04-26  Jason Merrill  <jason@redhat.com>
15092
15093         * c.opt (-fstrict-enums): New.
15094         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
15095
15096 2010-05-03  David Ung <davidu@mips.com>
15097             James E. Wilson  <wilson@codesourcery.com>
15098
15099         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
15100         emit the trap instruction before the divide for TUNE_74K.
15101
15102 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
15103
15104         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
15105         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
15106         based on the above, for new target hook.
15107
15108         * hooks.c (hook_bool_mode_true): New generic hook.
15109         * hooks.h (hook_bool_mode_true): Add prototype.
15110
15111         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
15112         target hook.
15113         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
15114         target hook, set to hook_bool_mode_false.
15115         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
15116         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
15117         with targetm.small_register_classes_for_mode_p.
15118         (find_reusable_reload): Likewise.
15119         (combine_reloads): Likewise.
15120         * reload1.c (reload_as_needed): Likewise.
15121         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
15122         * ifcvt.c (noce_process_if_block, check_cond_move_block,
15123         dead_or_predicable): Likewise.
15124         * regmove.c (optimize_reg_copy_1): Likewise.
15125         * calls.c (prepare_call_address): Likewise.
15126         (precompute_register_parameters): Likewise.
15127
15128         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
15129         hook definition.
15130         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
15131         implementation of the hook that considers all register classes
15132         small except for SH64.
15133         (sh_override_options): Use the new hook.
15134         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
15135         Add prototype.
15136
15137         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
15138         hook definition.
15139         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
15140         implementation of the hook that considers all register classes
15141         small for THUMB1.
15142         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
15143         Add prototype.
15144
15145         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
15146         hook definition.
15147         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
15148         implementation of the hook that considers all register classes
15149         small for MIPS16.
15150         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
15151         Add prototype.
15152
15153         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
15154         hook definition.
15155         * config/m32c/m32c.h: Likewise.
15156         * config/pdp11/pdp11.h: Likewise.
15157         * config/avr/avr.h: Likewise.
15158         * config/xtensa/xtensa.h: Likewise.
15159         * config/m68hc11/m68hc11.h: Likewise.
15160         * config/mn10300/mn10300.h: Likewise.
15161         * config/mcore/mcore.h: Likewise.
15162         * config/h8300/h8300.h: Likewise.
15163         * config/bfin/bfin.h: Likewise.
15164
15165         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
15166         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
15167
15168 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
15169
15170         * double-int.h (tree_to_double_int): Remove macro.
15171         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
15172         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
15173         (tree_to_double_int): New function.
15174         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
15175         Move ...
15176         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
15177
15178 2010-05-03  Richard Guenther  <rguenther@suse.de>
15179
15180         PR tree-optimization/43971
15181         * tree-ssa-structalias.c (get_constraint_for_1): Fix
15182         constraints in the !flag_delete_null_pointer_checks case.
15183
15184 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
15185
15186         PR debug/43972
15187         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
15188         result mode matches original rtl mode.
15189
15190 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
15191
15192         PR target/43888
15193         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
15194
15195 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15196
15197         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
15198         when processing flag options.
15199
15200 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15201
15202         * gcov-iov.c (main): Change format string placeholder
15203         from %#08x to 0x%08x.
15204         * genchecksum.c (dosum): Change format string placeholder
15205         from %#02x to 0x%02x.
15206
15207 2010-05-02  Richard Guenther  <rguenther@suse.de>
15208
15209         PR tree-optimization/43879
15210         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
15211
15212 2010-05-02  Bruno Haible  <bruno@clisp.org>
15213
15214         * doc/extend.texi (Function Attributes): Fix a typo.
15215
15216 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15217
15218         Revert:
15219         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
15220         placeholder from 0x%x to %#x.
15221         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
15222         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
15223         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
15224         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
15225         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
15226         * config/i386/i386.c (ix86_target_string): Ditto.
15227         * config/i386/i386.c (output_pic_addr_const): Ditto.
15228         (print_operand): Ditto.
15229
15230 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15231
15232         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
15233         placeholder from 0x%x to %#x.
15234         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
15235         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
15236         (ASM_OUTPUT_DEBUG_DATA): Ditto.
15237         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
15238         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
15239         * optc-gen.awk: Ditto.
15240         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
15241         (HOST_WIDE_INT_PRINT_HEX): Ditto.
15242         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
15243         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
15244
15245 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
15246
15247         * target.h (struct calls): Add function_value_regno_p field.
15248         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
15249         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
15250         * targhooks.c (default_function_value_regno_p): New function.
15251         * targhooks.h (default_function_value_regno_p): Declare function.
15252         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
15253         * builtins.c. (apply_result_size): (Ditto.).
15254         * combine.c. (likely_spilled_retval_p): (Ditto.).
15255         * mode-switching.c. Include 'target.h'.
15256         (create_pre_exit): Use function_value_regno_p hook.
15257         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
15258         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
15259         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
15260
15261         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
15262         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
15263         (ix86_function_value_regno_p): Declare as static, change argument
15264         type to const unsigned int.
15265         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
15266
15267 2010-05-01  Richard Guenther  <rguenther@suse.de>
15268
15269         PR tree-optimization/43949
15270         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
15271         types.
15272         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
15273
15274 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
15275
15276         * rtl.h (CONST_DOUBLE_P): Define.
15277         (rtx_to_double_int): Declare.
15278         * emit-rtl.c (rtx_to_double_int): New function.
15279         * dwarf2out.c (insert_double): New function.
15280         (loc_descriptor, add_const_value_attribute): Clean up, use
15281         rtx_to_double_int and insert_double functions.
15282
15283 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
15284
15285         * doc/extend.texi (Inline): Add missing return keyword to examples.
15286         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
15287         "command-line".
15288
15289 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
15290
15291         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
15292         the variable part of the offset as well.  Use highest_pow2_factor for
15293         all alignment checks.
15294
15295 2010-04-30  Richard Guenther  <rguenther@suse.de>
15296
15297         PR tree-optimization/43879
15298         * tree-ssa-structalias.c (type_could_have_pointers): Functions
15299         can have pointers.
15300
15301 2010-04-30  Jan Hubicka  <jh@suse.cz>
15302
15303         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
15304         varpool.
15305         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
15306
15307 2010-04-30  Jan Hubicka  <jh@suse.cz>
15308
15309         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
15310         New.
15311         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
15312         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
15313         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
15314         cgraph_node_set_needs_ltrans_p): Remove.
15315
15316 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
15317
15318         * sdbout.c: Include vec.h, do not include varray.h.
15319         (deferred_global_decls, sdbout_global_decl,
15320         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
15321         * toplev.c: Do not include varray.h.
15322         (dump_memory_report): Do not dump VARRAY statistics.
15323         * gengtype.c (open_base_file): Ignore varray.h.
15324         * Makefile.in: Update for abovementioned changes.
15325         Remove all traces of varray.c and varray.h.
15326         * varray.c: Remove file.
15327         * varray.h: Remove file.
15328
15329 2010-04-30  Jan Hubicka  <jh@suse.cz>
15330
15331         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
15332         references.
15333
15334 2010-04-30  Jan Hubicka  <jh@suse.cz>
15335
15336         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
15337         needed.
15338
15339 2010-04-30  Richard Guenther  <rguenther@suse.de>
15340
15341         * tree-ssa-structalias.c (get_constraint_for_1): Generate
15342         constraints for CONSTRUCTOR.
15343
15344 2010-04-30  Richard Guenther  <rguenther@suse.de>
15345
15346         PR lto/43946
15347         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
15348         first after all lowering passes.
15349
15350 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
15351
15352         * toplev.c: Include varray.h for statistics dumping.
15353         * tree.h: Do not declare varray_head_tag.
15354         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
15355         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
15356         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
15357         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
15358         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
15359         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
15360         c-common.c, c-common.h, reg-stack.c, basic-block.h,
15361         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
15362         include varray.h.
15363         * Makefile.in: Update for abovementioned changes.
15364
15365 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
15366
15367         PR debug/43942
15368         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
15369
15370 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
15371
15372         * config/picochip/picochip.c (picochip_legitimize_address): Define.
15373         Use this function to do machine-specific conversion.
15374         (picochip_legitimize_reload_address): Likewise.
15375         (picochip_legitimate_address_p): Check valid base register only if
15376         strict.
15377         (picochip_check_conditional_copy): Check for modw only if opnd is
15378         register.
15379         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
15380         to call the function in c.
15381         * config/picochip/picochip-protos.h
15382         (picochip_legitimize_reload_address): Define.
15383         * config/picochip/picochip.md (supported_compare1): Define.
15384
15385 2010-04-30  Jan Hubicka  <jh@suse.cz>
15386
15387         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
15388         (cgraph_global_info): Remove inlined.
15389         (LTO_cgraph_tag_names): Remove.
15390         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
15391         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
15392         simplify cgraph tags and document.
15393         (lto_output_node): Use only LTO_cgraph_unavail_node and
15394         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
15395         for_functions_valid, global info, process and output flags.
15396         (input_overwrite_node): Initialize estimated stack size and
15397         estimated growth.  Do not read flags we no longer store.
15398         (input_node): Likewise do not read info no longer stored.
15399         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
15400         flag.
15401
15402 2010-04-30  Richard Guenther  <rguenther@suse.de>
15403
15404         PR tree-optimization/43879
15405         * tree-ssa-structalias.c (get_constraint_for_1): Properly
15406         handle non-zero initializers.
15407
15408 2010-04-30  Richard Guenther  <rguenther@suse.de>
15409
15410         * builtins.c (fold_builtin_1): Delete free (0).
15411
15412 2010-04-29  Jan Hubicka  <jh@suse.cz>
15413
15414         * gengtype.c (open_base_files): Add lto-streamer.h
15415         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
15416         (pass_ipa_cp): GGC collect.
15417         * toplev. (compile_file): Do not output symbols.
15418         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
15419         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
15420         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
15421         * lto-section-in.c: Include ggc.h
15422         (lto_new_in_decl_state): Alloc in GGC.
15423         (lto_delete_in_decl_state): Likewise.
15424         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
15425         Collect.
15426
15427 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
15428
15429         PR target/42895
15430         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
15431         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
15432         (HONOR_REG_ALLOC_ORDER): Describe new macro.
15433         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
15434         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
15435         account only if HONOR_REG_ALLOC_ORDER is not defined.
15436         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
15437         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
15438
15439 2010-04-29  Jon Grant  <04@jguk.org>
15440
15441         * collect2.c (vflag): Change type from int to bool.
15442         (debug): Likewise.
15443         (helpflag): New global bool.
15444         (main): Set vflag and debug with boolean, not integer truth values.
15445         Accept new "--help" option and output usage text if found.
15446         * collect2.h (vflag): Update prototype.
15447         (debug): Likewise.
15448
15449 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
15450
15451         PR bootstrap/43936
15452         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
15453
15454 2010-04-29  Richard Guenther  <rguenther@suse.de>
15455
15456         PR bootstrap/43935
15457         * plugin.h (invoke_plugin_callbacks): Annotate arguments
15458         with ATTRIBUTE_UNUSED.
15459
15460 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
15461
15462         PR target/43921
15463         * config/i386/i386.c (get_some_local_dynamic_name): Replace
15464         INSN_P with NONDEBUG_INSN_P.
15465         (distance_non_agu_define): Likewise.
15466         (distance_agu_use): Likewise.
15467
15468 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
15469
15470         From Dominique d'Humieres <dominiq@lps.ens.fr>
15471         PR bootstrap/43858
15472         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
15473         test_set.
15474
15475 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
15476
15477         * plugin.h (invoke_plugin_callbacks): New inline function.
15478         * plugin.c (flag_plugin_added): New global flag.
15479         (add_new_plugin): Initialize above flag.
15480         (invoke_plugin_callbacks): Rename to ...
15481         (invoke_plugin_callbacks_full): ... this.
15482
15483 2010-04-28  Jan Hubicka  <jh@suse.cz>
15484
15485         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
15486         (lto_varpool_replace_node): New.
15487         (lto_symtab_resolve_symbols): Resolve varpool nodes.
15488         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
15489         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
15490         * cgraph.h (varpool_node_ptr): New type.
15491         (varpool_node_ptr): New vector.
15492         (varpool_node_set_def): New structure.
15493         (varpool_node_set): New type.
15494         (varpool_node_set): New vector.
15495         (varpool_node_set_element_def): New structure.
15496         (varpool_node_set_element, const_varpool_node_set_element): New types.
15497         (varpool_node_set_iterator): New type.
15498         (varpool_node): Add prev pointers, add used_from_other_partition,
15499         in_other_partition.
15500         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
15501         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
15502         varpool_get_node, varpool_remove_node): Declare.
15503         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
15504         varpool_node_set_size): New inlines.
15505         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
15506         * tree-pass.h (varpool_node_set_def): Forward declare.
15507         (ipa_opt_pass_d): Summary writting takes vnode sets too.
15508         (ipa_write_optimization_summaries): Update prototype.
15509         * ipa-cp.c (ipcp_write_summary): Update.
15510         * ipa-reference.c (ipa_reference_write_summary): Update.
15511         * lto-cgraph.c (lto_output_varpool_node): New static function.
15512         (output_varpool): New function.
15513         (input_varpool_node): New static function.
15514         (input_varpool_1): New function.
15515         (input_cgraph): Input varpool.
15516         * ipa-pure-const.c (pure_const_write_summary): Update.
15517         * lto-streamer-out.c (lto_output): Update, output varpool too.
15518         (write_global_stream): Kill WPA hack.
15519         (produce_asm_for_decls): Update.
15520         (output_alias_pair_p): Handle variables.
15521         (output_unreferenced_globals): Output only needed partition of varpool.
15522         * ipa-inline.c (inline_write_summary): Update.
15523         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
15524         cgraph.
15525         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
15526         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
15527         varpool_node_set_new, varpool_node_set_add,
15528         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
15529         debug_varpool_node_set): New functions.
15530         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
15531         (execute_one_pass): Process new decls too.
15532         (ipa_write_summaries_2): Pass around vsets.
15533         (ipa_write_summaries_1): Likewise.
15534         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
15535         to add.
15536         (ipa_write_optimization_summaries_1): Pass around vsets.
15537         (ipa_write_optimization_summaries): Likewise.
15538         * varpool.c (varpool_get_node): New.
15539         (varpool_node): Update doubly linked lists.
15540         (varpool_remove_node): New.
15541         (dump_varpool_node): More dumping.
15542         (varpool_enqueue_needed_node): Update doubly linked lists.
15543         (decide_is_variable_needed): Kill ltrans hack.
15544         (varpool_finalize_decl): Kill lto hack.
15545         (varpool_assemble_decl): Skip decls in other partitions.
15546         (varpool_assemble_pending_decls): Update doubly linkes lists.
15547         (varpool_empty_needed_queue): Likewise.
15548         (varpool_extra_name_alias): Likewise.
15549         * lto-streamer.c (lto_get_section_name): Add vars section.
15550         * lto-streamer.h (lto_section_type): Update.
15551         (output_varpool, input_varpool): Declare.
15552
15553 2010-04-28  Mike Stump  <mikestump@comcast.net>
15554
15555         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
15556
15557 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
15558
15559         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
15560         record or union type with RECORD_OR_UNION_TYPE_P predicate.
15561         (lto_input_ts_type_tree_pointers): Likewise.
15562         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
15563         (lto_output_ts_type_tree_pointers): Likewise.
15564
15565 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
15566
15567         Uniquization of constants at the Tree level
15568         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
15569         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
15570         bit to the end.
15571         (tree_output_constant_def): Declare.
15572         * gimplify.c (gimplify_init_constructor): When using block copy, first
15573         uniquize the constant constructor on the RHS.
15574         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
15575         DECL_IN_CONSTANT_POOL flag.
15576         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
15577         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
15578         constant pool.
15579         (assemble_variable): Deal with symbols belonging to the tree constant
15580         pool.
15581         (get_constant_section): Add ALIGN parameter and simplify.
15582         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
15583         (assemble_constant_contents): Use the expression of the VAR_DECL.
15584         (output_constant_def_contents): Use the alignment of the VAR_DECL.
15585         (tree_output_constant_def): New global function.
15586         (mark_constant): Use the expression of the VAR_DECL.
15587         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
15588         its expression.
15589         (output_object_block): Likewise and assemble the expression.
15590
15591 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
15592
15593         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
15594         hash_tree, eq_tree): New tree hash table.
15595         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
15596         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
15597         lto_orig_address_remove): Reimplement.
15598
15599 2010-04-28  Xinliang David Li  <davidxl@google.com>
15600
15601         PR c/42643
15602         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
15603         (compute_uninit_opnds_pos): New function.
15604         (is_non_loop_exit_postdominating): New function.
15605         (compute_control_dep_chain): New function.
15606         (find_pdom): New function.
15607         (convert_control_dep_chain_into_preds): New function.
15608         (find_predicates): New function.
15609         (find_control_equiv_block): New function.
15610         (collect_phi_def_edges): New function.
15611         (find_def_preds): New function.
15612         (find_dom): New function.
15613         (dump_predicates): New function.
15614         (get_cmp_code): New function.
15615         (is_value_included_in): New function.
15616         (find_matching_predicate_in_rest_chains): New function.
15617         (use_pred_not_overlap_with_undef_path_pred): New function.
15618         (is_use_properly_guarded): New function.
15619         (normalize_cond_1): New function.
15620         (is_and_or_or): New function.
15621         (normalize_cond): New function.
15622         (is_gcond_subset_of): New function.
15623         (is_subset_of_any): New function.
15624         (is_or_set_subset_of): New function.
15625         (is_and_set_subset_of): New function.
15626         (is_norm_cond_subset_of): New function.
15627         (is_pred_expr_subset_of): New function.
15628         (is_pred_chain_subset_of): New function.
15629         (is_included_in): New function.
15630         (is_superset_of): New function.
15631         (find_uninit_use): New function.
15632         (warn_uninitialized_phi): New function.
15633         (compute_possibly_undefined_names): New function.
15634         (ssa_undefined_value_p): New function.
15635         (execute_late_warn_uninitialized): New function.
15636         * tree-ssa.c (ssa_undefined_value_p): Removed.
15637         (warn_uninit): Changed to extern.
15638         (warn_uninitialized_phi): Removed.
15639         (warn_uninitialized_vars): Changed to extern.
15640         (execute_late_warn_uninitialized): Removed
15641         * tree-flow.h: Add new prototypes.
15642         * timevar.def: Add new time variable.
15643         * Makefile.in: Add new build file.
15644
15645 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
15646
15647         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
15648         type if available.
15649
15650 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15651
15652         PR target/22224
15653         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
15654
15655 2010-04-28  Martin Jambor  <mjambor@suse.cz>
15656
15657         * cgraph.h (struct cgraph_node): New field indirect_calls.
15658         (struct cgraph_indirect_call_info): New type.
15659         (struct cgraph_edge): Removed field indirect_call. New fields
15660         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
15661         (cgraph_create_indirect_edge): Declare.
15662         (cgraph_make_edge_direct): Likewise.
15663         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
15664         * ipa-prop.h (struct ipa_param_call_note): Removed.
15665         (struct ipa_node_params): Removed field param_calls.
15666         (ipa_create_all_structures_for_iinln): Declare.
15667         * cgraph.c: Described indirect edges and uids in initial comment.
15668         (cgraph_add_edge_to_call_site_hash): New function.
15669         (cgraph_edge): Search also among the indirect edges, use
15670         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
15671         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
15672         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
15673         site hash.
15674         (initialize_inline_failed): Assign a reason to indirect edges.
15675         (cgraph_create_edge_1): New function.
15676         (cgraph_create_edge): Moved some functionality to
15677         cgraph_create_edge_1.
15678         (cgraph_create_indirect_edge): New function.
15679         (cgraph_edge_remove_callee): Add an assert checking for
15680         non-indirectness.
15681         (cgraph_edge_remove_caller): Special-case indirect edges.
15682         (cgraph_remove_edge): Likewise.
15683         (cgraph_set_edge_callee): New function.
15684         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
15685         (cgraph_make_edge_direct): New function.
15686         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
15687         the declaration of the call statement matches.
15688         (cgraph_node_remove_callees): Special-case indirect edges.
15689         (cgraph_clone_edge): Likewise.
15690         (cgraph_clone_node): Clone also the indirect edges.
15691         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
15692         indirect_call, dump count of indirect_calls edges.
15693         * ipa-prop.c (iinlining_processed_edges): New variable.
15694         (ipa_note_param_call): Create indirect edges instead of
15695         creating notes.  New parameter node.
15696         (ipa_analyze_call_uses): New parameter node, pass it on to
15697         ipa_note_param_call.
15698         (ipa_analyze_stmt_uses): Likewise.
15699         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
15700         (print_edge_addition_message): Work on edges rather than on notes.
15701         (update_call_notes_after_inlining): Likewise, renamed to
15702         update_indirect_edges_after_inlining.
15703         (ipa_create_all_structures_for_iinln): New function.
15704         (ipa_free_node_params_substructures): Do not free notes.
15705         (ipa_edge_duplication_hook): Propagate bits within
15706         iinlining_processed_edges bitmap.
15707         (ipa_node_duplication_hook): Do not duplicate notes.
15708         (free_all_ipa_structures_after_ipa_cp): Renamed to
15709         ipa_free_all_structures_after_ipa_cp.
15710         (free_all_ipa_structures_after_iinln): Renamed to
15711         ipa_free_all_structures_after_iinln.
15712         (ipa_write_param_call_note): Removed.
15713         (ipa_read_param_call_note): Removed.
15714         (ipa_write_indirect_edge_info): New function.
15715         (ipa_read_indirect_edge_info): Likewise.
15716         (ipa_write_node_info): Do not stream notes, do stream information
15717         in indirect edges.
15718         (ipa_read_node_info): Likewise.
15719         (lto_ipa_fixup_call_notes): Removed.
15720         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
15721         * ipa-inline.c (pass_ipa_inline): Likewise.
15722         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
15723         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
15724         * tree-inline.c (copy_bb): Removed an unnecessary double check for
15725         is_gimple_call.
15726         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
15727         edges.
15728         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
15729         (output_cgraph): Stream also indirect edges.
15730         (lto_output_edge): Added capability to stream indirect edges.
15731         (input_edge): Likewise.
15732         (input_cgraph_1): Likewise.
15733         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
15734         of indirect edges.
15735
15736 2010-04-28  Richard Guenther  <rguenther@suse.de>
15737
15738         PR tree-optimization/43879
15739         PR tree-optimization/43909
15740         * tree-ssa-structalias.c (struct variable_info): Add
15741         only_restrict_pointers flag.
15742         (new_var_info): Initialize it.  Increment stats.total_vars here.
15743         (create_function_info_for): Do not increment stats.total_vars here.
15744         (get_function_part_constraint): Fix build with C++.
15745         (insert_into_field_list): Remove.
15746         (push_fields_onto_fieldstack): Properly merge fields.
15747         (create_variable_info_for): Split and simplify.
15748         (create_variable_info_for_1): New piece.
15749         (intra_create_variable_infos): Properly make restrict constraints
15750         from parameters.
15751
15752 2010-04-28  Richard Guenther  <rguenther@suse.de>
15753
15754         PR c++/43880
15755         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
15756
15757 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15758             Jan Hubicka <hubicka@ucw.cz>
15759
15760         * doc/invoke.texi (-Wsuggest-attribute=const,
15761         -Wsuggest-attribute=pure): Document.
15762         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
15763         (function_always_visible_to_compiler_p,
15764         suggest_attribute, warn_function_pure, warn_function_const):
15765         New functions.
15766         (check_call): Improve debug info.
15767         (analyze_function): Do not check availability.
15768         (add_new_function): Check availability.
15769         (propagate): Output warnings.
15770         (skip_function_for_local_pure_const): New function.
15771         (local_pure_const): Use it; output warnings.
15772         * common.opt (Wsuggest-attribute=const,
15773         Wsuggest-attribute=pure): New.
15774
15775 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
15776
15777         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
15778         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
15779         or DW_CFA_def_cfa_offset{,_sf}.
15780
15781 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
15782
15783         * tree.h: Fix truncated long macros.
15784
15785 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
15786
15787         * collect2.c (TARGET_64BIT): Redefine to target's default.
15788         * tlink.c: Likewise.
15789         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
15790         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
15791         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
15792         for underscoring __USER_LABEL_PREFIX__.
15793         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
15794         (SUB_LINK_ENTRY32): New.
15795         (SUB_LINK_ENTRY64): New.
15796         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
15797         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
15798         (SUB_LINK_ENTRY64): New.
15799         (SUB_LINK_ENTRY): New.
15800         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
15801         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
15802         x64 target is choosen.
15803         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
15804         * configure: Regenerated.
15805         * configure.ac (leading-mingw64-underscores): Option added.
15806
15807 2010-04-27  Jan Hubicka  <jh@suse.cz>
15808
15809         * doc/invoke.texi (-fipa-profile): Document.
15810         * opts.c (decode_options): Enable ipa-profile at -O1.
15811         * timevar.def (TV_IPA_PROFILE): Define.
15812         * common.opt (fipa-profile): Add.
15813         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
15814         flag for clones.
15815         (cgraph_propagate_frequency): Handle only local ones.
15816         * tree-pass.h (pass_ipa_profile): Declare.
15817         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
15818         (pass_ipa_profile): Use TV_IPA_PROFILE.
15819         * ipa.c (ipa_profile): New function.
15820         (gate_ipa_profile): Likewise.
15821         (pass_ipa_profile): New global variable.
15822         * passes.c (pass_ipa_profile): New.
15823
15824 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
15825
15826         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
15827
15828 2010-04-27  Martin Jambor  <mjambor@suse.cz>
15829
15830         PR middle-end/43812
15831         * ipa.c (dissolve_same_comdat_group_list): New function.
15832         (function_and_variable_visibility): Call
15833         dissolve_same_comdat_group_list when comdat group contains external or
15834         newly local nodes.
15835         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
15836         lists are circular and that they contain only DECL_ONE_ONLY nodes.
15837
15838 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
15839
15840         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
15841         (const_hash_1) <VECTOR_CST>: New case.
15842         (compare_constant) <VECTOR_CST>: Likewise.
15843         <ADDR_EXPR>: Deal with LABEL_REFs.
15844         (copy_constant) <VECTOR_CST>: New case.
15845
15846 2010-04-27  Jan Hubicka  <jh@suse.cz>
15847
15848         * cgraph.c (cgraph_propagate_frequency): New function.
15849         * cgraph.h (cgraph_propagate_frequency): Declare.
15850         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
15851         cgraph_propagate_frequency.
15852
15853 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
15854
15855         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
15856
15857 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
15858
15859         PR target/40657
15860         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
15861         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
15862         here to determine which regs to push and how much stack to reserve.
15863
15864 2010-04-27  Jie Zhang  <jie@codesourcery.com>
15865
15866         * doc/gimple.texi (gimple_statement_with_ops): Remove
15867         addresses_taken field.
15868         (gimple_statement_with_memory_ops): Likewise.
15869
15870 2010-04-27  Jan Hubicka  <jh@suse.cz>
15871
15872         * tree-inline.c (eni_inlining_weights): Remove.
15873         (estimate_num_insns): Special case more builtins.
15874
15875 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
15876
15877         PR c/32207
15878         * c-typeck.c (build_binary_op): Move forward check for comparison
15879         pointer with null pointer constant and adjust the diagnostic message.
15880
15881 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
15882
15883         PR lto/42776
15884         * configure.ac (gcc_cv_as_section_has_align): Set if installed
15885         binutils supports extended .section directive needed by LTO, or
15886         warn if older binutils found.
15887         (LTO_BINARY_READER): New AC_SUBST'd variable.
15888         (LTO_USE_LIBELF): Likewise.
15889         * gcc/config.gcc (lto_binary_reader): New target-specific configure
15890         variable.
15891         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
15892         (LTO_USE_LIBELF): Likewise.
15893         * configure: Regenerate.
15894
15895         * collect2.c (is_elf): Rename from this ...
15896         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
15897          object files in addition to ELF-formatted ones.
15898         (scan_prog_file): Caller updated.  Also allow for LTO info marker
15899         symbol to be prefixed or not by an extra underscore.
15900
15901         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
15902         * config/i386/winnt.c: Also #include lto-streamer.h
15903         (i386_pe_asm_named_section): Specify 1-byte section alignment for
15904         LTO named sections.
15905         (i386_pe_asm_output_aligned_decl_common): Add comment.
15906         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
15907
15908 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
15909
15910         PR target/43889
15911         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
15912         Add missing earlyclobber for second alternative.
15913
15914 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
15915
15916         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
15917         bits for artificial defs at the top of the block.
15918         * fwprop.c (single_def_use_enter_block): Don't call it.
15919
15920 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
15921
15922         PR 43715
15923         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
15924         instead of "$gcc_cv_objdump -T".
15925         Use "-undefined dynamic_lookup" on darwin.
15926         * gcc/configure: Regenerate.
15927
15928 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
15929
15930         PR c/43893
15931         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
15932
15933 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
15934
15935         * c-parser.c (struct c_token): Move location field up.
15936         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
15937         (struct c_declspecs): Convert typespec_word, storage_class, and
15938         default_int_p into bitfields.
15939         (struct c_declarator): Move loc field up.
15940
15941 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
15942
15943         * cfgloop.h (struct loop): Move can_be_parallel field up.
15944         * ipa-prop.h (struct ip_node_params): Move bitfields up.
15945         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
15946         down.
15947         (struct iv_cand): Convert pos field into a bitfield.
15948         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
15949         field up.
15950         (struct _stmt_vec_info): Shuffle fields for better packing.
15951
15952 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
15953
15954         * varasm.c (IN_NAMED_SECTION): Remove guard.
15955         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
15956         (IN_NAMED_SECTION_P): ...this.
15957         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
15958         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
15959
15960 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
15961
15962         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
15963         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
15964         of shadowing it.  Fix comments.
15965
15966 2010-04-26  Jan Hubicka  <jh@suse.cz>
15967
15968         * cgraph.c (cgraph_create_node): Set node frequency to normal.
15969         (cgraph_clone_node): Copy function frequency.
15970         * cgraph.h (node_frequency): New enum
15971         (struct cgraph_node): Add.
15972         * final.c (rest_of_clean_state): Update.
15973         * lto-cgraph.c (lto_output_node): Output node frequency.
15974         (input_overwrite_node): Input node frequency.
15975         * tre-ssa-loop-ivopts (computation_cost): Update.
15976         * lto-streamer-out.c (output_function): Do not output function
15977         frequency.
15978         * predict.c (maybe_hot_frequency_p): Update and handle functions
15979         executed once.
15980         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
15981         attribute lookup.
15982         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
15983         (compute_function_frequency): Set noreturn functions to be executed
15984         once.
15985         (choose_function_section): Update.
15986         * lto-streamer-in.c (input_function): Do not input function frequency.
15987         * function.c (allocate_struct_function): Do not initialize function
15988         frequency.
15989         * function.h (function_frequency): Remove.
15990         (struct function): Remove function frequency.
15991         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
15992         (try_update): Update.
15993         * tree-inline.c (initialize_cfun): Do not update function frequency.
15994         * passes.c (pass_init_dump_file): Update.
15995         * i386.c (ix86_compute_frame_layout): Update.
15996         (ix86_pad_returns): Update.
15997
15998 2010-04-26  Jie Zhang  <jie@codesourcery.com>
15999
16000         PR tree-optimization/43833
16001         * tree-vrp.c (range_int_cst_p): New.
16002         (range_int_cst_singleton_p): New.
16003         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
16004         when both operands are constants.  Use range_int_cst_p in
16005         BIT_IOR_EXPR case.
16006
16007 2010-04-26  Jan Hubicka  <jh@suse.cz>
16008
16009         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
16010
16011 2010-04-26  Richard Guenther  <rguenther@suse.de>
16012
16013         PR lto/43080
16014         * gimple.c (gimple_decl_printable_name): Deal gracefully
16015         with a NULL DECL_NAME.
16016
16017 2010-04-26  Richard Guenther  <rguenther@suse.de>
16018
16019         PR lto/42425
16020         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
16021         if emitting debug information and it is either a function
16022         or a namespace decl.
16023
16024 2010-04-26  Ira Rosen  <irar@il.ibm.com>
16025
16026         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
16027         determine if the statement is vectorizable, and a macro to access it.
16028         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
16029         Skip statements that can't be vectorized. If the analysis fails,
16030         mark the statement as unvectorizable if vectorizing basic block.
16031         (vect_compute_data_refs_alignment): Likewise.
16032         (vect_verify_datarefs_alignment): Skip statements marked as
16033         unvectorizable. Add print.
16034         (vect_analyze_group_access): Skip statements that can't be
16035         vectorized. If the analysis fails, mark the statement as
16036         unvectorizable if vectorizing basic block.
16037         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
16038         * tree-vect-stmts.c (vectorizable_store): Fix the number of
16039         generated stmts for SLP.
16040         (new_stmt_vec_info): Initialize the new field.
16041         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
16042         statements marked as unvectorizable.
16043
16044 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
16045
16046         * c-common.c (flag_isoc1x): New.
16047         (flag_isoc99): Update comment.
16048         * c-common.h (flag_isoc1x): New.
16049         (flag_isoc99): Update comment.
16050         * c-cppbuiltin.c (builtin_define_float_constants): Also define
16051         __<type>_DECIMAL_DIG__.
16052         * c-opts.c (set_std_c1x): New.
16053         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
16054         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
16055         * c.opt (-std=c1x, -std=gnu1x): New options.
16056         * doc/cpp.texi: Mention -std=c1x.
16057         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
16058         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
16059         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
16060         * doc/standards.texi: Mention C1X.
16061         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
16062         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
16063         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
16064         Define for C1X.
16065
16066 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
16067
16068         * config/i386/gmon-sol2.c (_mcleanup): Change format string
16069         placeholder from 0x%x to %#x.
16070         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
16071         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
16072         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
16073         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
16074         * config/i386/i386.c (ix86_target_string): Ditto.
16075         (output_pic_addr_const): Ditto.
16076         (print_operand): Ditto.
16077
16078 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
16079
16080         * combine.c (find_split_point): Add third argument.  Use it
16081         to find nested multiply-accumulate instructions.  Adjust calls.
16082         (try_combine): Adjust call to find_split_point.
16083
16084 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
16085
16086         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
16087
16088 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
16089
16090         PR tree-optimization/41442
16091         * fold-const.c (merge_truthop_with_opposite_arm): New function.
16092         (fold_binary_loc): Call it.
16093
16094 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16095
16096         * toplev.c (general_init): Set default for fdiagnostics-show-option.
16097         * opts.c (common_handle_option): Allow disabling it.
16098         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
16099
16100 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
16101
16102         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
16103         between modes if both types are integral.
16104
16105 2010-04-23  Richard Guenther  <rguenther@suse.de>
16106
16107         PR tree-optimization/43572
16108         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
16109
16110 2010-04-23  Richard Guenther  <rguenther@suse.de>
16111
16112         PR lto/43455
16113         * tree-inline.c (tree_can_inline_p): Also check compatibility
16114         of return types.
16115
16116 2010-04-23  Martin Jambor  <mjambor@suse.cz>
16117
16118         PR tree-optimization/43846
16119         * tree-sra.c (struct access): New flag grp_assignment_read.
16120         (build_accesses_from_assign): Set grp_assignment_read.
16121         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
16122         (enum mark_read_status): New type.
16123         (analyze_access_subtree): Propagate grp_assignment_read, create
16124         accesses also if both direct_read and root->grp_assignment_read.
16125
16126 2010-04-23  Martin Jambor  <mjambor@suse.cz>
16127
16128         PR middle-end/43835
16129         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
16130         function does not have type attributes.
16131
16132 2010-04-23  Richard Guenther  <rguenther@suse.de>
16133
16134         PR lto/42653
16135         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
16136         of FUNCTION_DECLs.
16137
16138 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16139
16140         * sese.h (create_if_region_on_edge): Remove.
16141
16142         * sese.c (create_if_region_on_edge): Make static.
16143
16144         * tree-inline.c: Do not include ggc.h.
16145
16146         * expr.c: Do not include ggc.h.
16147
16148         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
16149         dependencies.
16150
16151 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
16152
16153         PR target/43744
16154         * config/sh/sh.c (find_barrier): Don't emit a constant pool
16155         in the middle of insns for casesi_worker_2.
16156
16157 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
16158
16159         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
16160
16161 2010-04-22  Ira Rosen  <irar@il.ibm.com>
16162
16163         PR tree-optimization/43842
16164         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
16165         loop unrolling in update of exit phis. Fix comment.
16166         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
16167         least two reduction statements in the loop before starting SLP
16168         analysis.
16169
16170 2010-04-22  Nick Clifton  <nickc@redhat.com>
16171
16172         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
16173
16174 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
16175
16176         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
16177         to simplify a + ~a.
16178
16179 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16180
16181         * tree-parloops.c (loop_parallel_p): New argument
16182         parloop_obstack.  Pass it down.
16183         (parallelize_loops): New variable parloop_obstack.  Initialize it,
16184         pass it down, free it.
16185
16186         * tree-loop-linear.c (linear_transform_loops): Pass down
16187         lambda_obstack.
16188
16189         * tree-data-ref.h (lambda_compute_access_matrices): New argument
16190         of type struct obstack *.
16191
16192         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
16193         scratch_obstack.  Initialize it, pass down, free it.
16194
16195         * lambda.h (lambda_loop_new): Remove.
16196         (lambda_matrix_new, lambda_matrix_inverse)
16197         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
16198         argument of type struct obstack *.
16199
16200         * lambda-trans.c (lambda_trans_matrix_new): New argument
16201         lambda_obstack.  Pass it down, use obstack allocation for ret.
16202         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
16203         it down.
16204
16205         * lambda-mat.c (lambda_matrix_get_column)
16206         (lambda_matrix_project_to_null): Remove.
16207         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
16208         allocation for mat.
16209         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
16210         lambda_obstack.
16211
16212         * lambda-code.c (lambda_loop_new): New function.
16213         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
16214         (lambda_compute_auxillary_space, lambda_compute_target_space)
16215         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
16216         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
16217         (build_access_matrix): New argument lambda_obstack.  Use obstack
16218         allocation for am.
16219         (lambda_compute_step_signs, lambda_compute_access_matrices): New
16220         argument lambda_obstack.  Pass it down.
16221
16222 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
16223
16224         * optabs.h (expand_widening_mult): Declare.
16225
16226 2010-04-22  Richard Guenther  <rguenther@suse.de>
16227
16228         PR tree-optimization/43845
16229         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
16230         lookup the CALL_EXPR function and arguments.
16231
16232 2010-04-22  Nick Clifton  <nickc@redhat.com>
16233
16234         * config/stormy16/stormy16.c
16235         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
16236         * config/stormy16/stormy16.h: Tidy up formatting.
16237         (DONT_USE_BUILTIN_SETJMP): Remove definition.
16238         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
16239         (ineqbranchsi): Delete pattern.
16240         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
16241         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
16242         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
16243         stormy16-lib2-ucmpsi2.c.
16244
16245 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
16246
16247         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
16248         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
16249         extra set merge_set_noclobber, and use it to relax the final test
16250         slightly.
16251         * df.h (df_simulate_find_noclobber_defs): Declare.
16252         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
16253         conditional defs.
16254         (df_simulate_find_noclobber_defs): New function.
16255
16256 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
16257
16258         * config/i386/i386.md: Use {} around multi-line preparation statements.
16259
16260 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16261
16262         * c-tree.h (push_init_level, pop_init_level, set_init_index)
16263         (process_init_element): New argument of type struct obstack *.
16264
16265         * c-typeck.c (push_init_level, pop_init_level, set_designator)
16266         (set_init_index, set_init_label, set_nonincremental_init)
16267         (set_nonincremental_init_from_string, find_init_member)
16268         (output_init_element, output_pending_init_elements)
16269         (process_init_element): New argument braced_init_obstack.  Pass it
16270         down.
16271         (push_range_stack, add_pending_init): New argument
16272         braced_init_obstack.  Use obstack allocation.
16273
16274         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
16275         braced_init_obstack.  Pass it down.
16276         (c_parser_braced_init): New variables ret, braced_init_obstack.
16277         Initialize obstack, pass it down and finally free it.
16278
16279 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
16280
16281         PR middle-end/29274
16282         * tree-pass.h (pass_optimize_widening_mul): Declare.
16283         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
16284         gate_optimize_widening_mul): New static functions.
16285         (pass_optimize_widening_mul): New.
16286         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
16287         <case MULT_EXPR>: Remove support for widening multiplies.
16288         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
16289         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
16290         simplify_gen_unary rather than directly building extensions.
16291         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
16292         WIDEN_MULT_EXPR.
16293         * expmed.c (expand_widening_mult): New function.
16294         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
16295
16296 2010-04-21  Jan Hubicka  <jh@suse.cz>
16297
16298         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
16299         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
16300         * lto-wpa-fixup.c: Remove.
16301         * Makefile.in (lto-wpa-fixup.o): Remove.
16302         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
16303         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
16304         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
16305
16306 2010-04-21  Jan Hubicka  <jh@suse.cz>
16307
16308         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
16309         add write_optimization_summary, read_optimization_summary.
16310         (ipa_write_summaries_of_cgraph_node_set): Remove.
16311         (ipa_write_optimization_summaries): Declare.
16312         (ipa_read_optimization_summaries): Declare.
16313         * ipa-cp.c (pass_ipa_cp): Update.
16314         * ipa-reference.c (pass_ipa_reference): Update.
16315         * ipa-pure-const.c (pass_ipa_pure_const): Update.
16316         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
16317         Update.
16318         * ipa-inline.c (pass_ipa_inline): Update.
16319         * ipa.c (pass_ipa_whole_program): Update.
16320         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
16321         * passes.c (ipa_write_summaries_1): Do not test wpa.
16322         (ipa_write_optimization_summaries_1): New.
16323         (ipa_write_optimization_summaries): New.
16324         (ipa_read_summaries): Do not test ltrans.
16325         (ipa_read_optimization_summaries_1): New.
16326         (ipa_read_optimization_summaries): New.
16327
16328 2010-04-21  Jan Hubicka  <jh@suse.cz>
16329
16330         * lto-cgraph.c (lto_output_node): Do not output comdat groups
16331         for boundary nodes.
16332         (output_cgraph): Do not arrange comdat groups for boundary nodes.
16333
16334 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
16335
16336         PR debug/40040
16337         * dwarf2out.c (add_name_and_src_coords_attributes): Add
16338         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
16339
16340 2010-04-21  Jan Hubicka  <jh@suse.cz>
16341
16342         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
16343
16344 2010-04-21  Jan Hubicka  <jh@suse.cz>
16345
16346         * varpool.c (decide_is_variable_needed): Variable is always needed
16347         during ltrans.
16348
16349 2010-04-21  Jan Hubicka  <jh@suse.cz>
16350
16351         * opts.c (decode_options): Enable pure-const pass for whopr.
16352
16353 2010-04-21  Jan Hubicka  <jh@suse.cz>
16354
16355         * cgraph.c (dump_cgraph_node): Dump also assembler name.
16356         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
16357         at WPA dumping.
16358         (cgraph_decide_inlining): Do not expect callee to be removed in all
16359         cases.
16360
16361 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
16362
16363         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
16364
16365 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
16366
16367         * config/i386/i386.md (x86_shrd): Add athlon_decode and
16368         amdfam10_decode attributes.
16369
16370 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
16371
16372         PR middle-end/43570
16373         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
16374         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
16375         (lower_copyprivate_clauses): Use private var in outer
16376         context instead of original var.  Make sure the types
16377         are correct for VLAs.
16378
16379 2010-04-21  Richard Guenther  <rguenther@suse.de>
16380
16381         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
16382         to non-pointer objects.
16383
16384 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
16385
16386         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
16387         last chain entry if it starts with the still current label.
16388         (add_location_or_const_value_attribute): Check that
16389         loc_list->first->next is NULL instead of comparing ->first with ->last.
16390         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
16391         to add_var_loc_to_decl.
16392
16393         * dwarf2out.c (output_call_frame_info): For dw_cie_version
16394         >= 4 add also address size and segment size fields into CIE header.
16395
16396         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
16397         long as address size is the same as sizeof (void *) and
16398         segment size is 0.
16399         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
16400         address size or segment size is unexpected, return DW_EH_PE_omit.
16401         (classify_object_over_fdes): If get_cie_encoding returned
16402         DW_EH_PE_omit, return -1.
16403         (init_object): If classify_object_over_fdes returned -1,
16404         pretend there were no FDEs at all.
16405
16406 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
16407
16408         * config/i386/i386.md (bswap<mode>2): Macroize expander from
16409         bswap{si,di}2 using SWI48 mode iterator.
16410         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
16411         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
16412         set modrm attribute of bswap insn to 0 and remove length attribute.
16413         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
16414         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
16415         set mode attribute to <MODE> and remove length attribute.
16416
16417 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
16418
16419         PR rtl-optimization/43520
16420         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
16421         zero available registers.
16422
16423 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16424
16425         * builtins.c (fold_builtin_cproj): Fold more cases.
16426
16427 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16428
16429         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
16430         (fold_builtin_1): Fold builtin cproj.
16431         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
16432         Use ATTR_CONST_NOTHROW_LIST.
16433
16434 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
16435
16436         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
16437         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
16438         ffsi2_no_cmove for !TARGET_CMOVE.
16439         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
16440         (ffssi2): Remove expander.
16441         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
16442         mode iterator.
16443         (ctz<mode>2): Ditto from ctz{si,di}2.
16444         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
16445         mode iterator.
16446         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
16447         mode iterator.
16448
16449 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
16450
16451         * dwarf2out.c (AT_linkage_name): Define.
16452         (clone_as_declaration): Handle DW_AT_linkage_name.
16453         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
16454         of DW_AT_MIPS_linkage_name.
16455         (move_linkage_attr): Likewise.
16456         (dwarf2out_finish): Likewise.
16457
16458 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
16459
16460         PR middle-end/41952
16461         * fold-const.c (fold_comparison): New folding rule.
16462
16463 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
16464
16465         * double-int.h (double_int_setbit): Declare.
16466         * double-int.c (double_int_setbit): New function.
16467         * rtl.h (immed_double_int_const): Declare.
16468         * emit-rtl.c (immed_double_int_const): New function.
16469         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
16470         and immed_double_int_const functions.
16471         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
16472         expand_copysign_bit):  (Ditto.).
16473         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
16474         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
16475         * dojump.c (prefer_and_bit_test): (Ditto.).
16476         * expr.c (convert_modes, reduce_to_bit_field_precision,
16477         const_vector_from_tree): (Ditto.).
16478         * expmed.c (mask_rtx, lshift_value): (Ditto.).
16479
16480 2010-04-20  Jan Hubicka  <jh@suse.cz>
16481
16482         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
16483         (dump_cgraph_node): Dump new flags.
16484         * cgraph.h (struct cgraph_node): Add flags
16485         reachable_from_other_partition and in_other_partition.
16486         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
16487         other partition can not be removed.
16488         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
16489         the other partition must be output; silence sanity checking on
16490         leaking functions bodies from other paritition.
16491         * lto-cgraph.c (reachable_from_other_partition_p): New function.
16492         (lto_output_node): Output new flags; do not sanity check that inline
16493         clones are output; drop lto_forced_extern_inline_p code; do not mock
16494         visibility flags at partition boundaries.
16495         (add_node_to): New function.
16496         (output_cgraph): Use it to sort functions so masters appear before
16497         clones.
16498         (input_overwrite_node): Input new flags.
16499         * passes.c (ipa_write_summaries): Do not call
16500         lto_new_extern_inline_states.
16501         * lto-section-out.c (forced_extern_inline,
16502         lto_new_extern_inline_states lto_delete_extern_inline_states,
16503         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
16504         * lto-streamer.h (lto_new_extern_inline_states,
16505         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
16506         lto_forced_extern_inline_p): Kill.
16507
16508 2010-04-20  Richard Guenther  <rguenther@suse.de>
16509
16510         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
16511         from vars that can have pointers.
16512         (process_constraint): Dump useless constraints.
16513
16514 2010-04-20  Richard Guenther  <rguenther@suse.de>
16515
16516         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
16517         (dump_sa_points_to_info): Remove asserts.
16518         (init_base_vars): nothing_id isn't an escape point nor does it
16519         have pointers.
16520
16521 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
16522
16523         * tree.h (TYPE_REF_IS_RVALUE): Define.
16524         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
16525         should_move_die_to_comdat, prune_unused_types_walk): Handle
16526         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
16527         (modified_type_die, gen_reference_type_die): Emit
16528         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
16529         if TYPE_REF_IS_RVALUE and -gdwarf-4.
16530
16531 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16532
16533         PR target/43635
16534         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
16535         calls for -fpic -m31 if they have been sibcall optimized.
16536
16537 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
16538
16539         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
16540         ar.lc fixed and call-used.
16541
16542         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
16543
16544 2010-04-19  Jan Hubicka  <jh@suse.cz>
16545
16546         * opts.c (decode_options): Disable whpr incompatible passes.
16547         * lto/lto.c (lto_1_to_1_map): Skip clones.
16548         (read_cgraph_and_symbols): Do not mark everything as needed.
16549         (do_whole_program_analysis): Do map only after optimizing;
16550         set proper cgraph_state; use passmanager.
16551
16552 2010-04-19  DJ Delorie  <dj@redhat.com>
16553
16554         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
16555         POINTER_PLUS_EXPR and fix them.
16556
16557 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
16558
16559         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
16560         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
16561         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
16562         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
16563         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
16564         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
16565         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
16566         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
16567         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
16568         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
16569         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
16570
16571 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
16572
16573         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
16574         (check_cond_move_block): Likewise.
16575         (cond_move_process_if_block): Likewise.
16576         (noce_find_if_block): Improve formatting.
16577         (find_if_header): Pass 0 to memset and tweak conditions.
16578         (cond_exec_find_if_block): Fix long lines and tweak conditions.
16579
16580 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
16581
16582         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
16583         for -gdwarf-4.
16584
16585         PR middle-end/43337
16586         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
16587         with non-local decl doesn't need chain.
16588
16589 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
16590
16591         * ira-color.c (allocno_reload_assign): Avoid accumulating
16592         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
16593
16594 2010-04-19  Martin Jambor  <mjambor@suse.cz>
16595
16596         * gimple.h (create_tmp_reg): Declare.
16597         * gimplify.c (create_tmp_reg): New function.
16598         (gimplify_return_expr): Use create_tmp_reg.
16599         (gimplify_omp_atomic): Likewise.
16600         (gimple_regimplify_operands): Likewise.
16601         * tree-dfa.c (make_rename_temp): Likewise.
16602         * tree-predcom.c (predcom_tmp_var): Likewise.
16603         (reassociate_to_the_same_stmt): Likewise.
16604         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
16605         (get_replaced_param_substitute): Likewise.
16606         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
16607         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
16608         * tree-ssa-pre.c (get_representative_for): Likewise.
16609         (create_expression_by_pieces): Likewise.
16610         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
16611         (create_tailcall_accumulator): Likewise.
16612
16613 2010-04-19  Martin Jambor  <mjambor@suse.cz>
16614
16615         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
16616         new_stmt.
16617         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
16618
16619 2010-04-19  Richard Guenther  <rguenther@suse.de>
16620
16621         PR tree-optimization/43796
16622         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
16623         from SCEV in the lattice.
16624         (vrp_visit_phi_node): Dump change.
16625
16626 2010-04-19  Richard Guenther  <rguenther@suse.de>
16627
16628         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
16629         * configure: Re-generated.
16630
16631 2010-04-19  Richard Guenther  <rguenther@suse.de>
16632
16633         PR tree-optimization/43783
16634         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
16635         constant ARRAY_REF operands two and three if possible.
16636
16637 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
16638
16639         PR target/43766
16640         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
16641
16642 2010-04-19  Jie Zhang  <jie@codesourcery.com>
16643
16644         PR target/43662
16645         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
16646
16647 2010-04-19  Ira Rosen  <irar@il.ibm.com>
16648
16649         PR tree-optimization/37027
16650         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
16651         and macro to access it.
16652         (vectorizable_reduction): Add argument.
16653         (vect_get_slp_defs): Likewise.
16654         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
16655         statements for possible use in SLP.
16656         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
16657         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
16658         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
16659         add new argument.
16660         (vectorizable_reduction): Likewise.
16661         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
16662         vect_get_slp_defs.
16663         (vectorizable_type_demotion, vectorizable_type_promotion,
16664         vectorizable_store): Likewise.
16665         (vect_analyze_stmt): Update call to vectorizable_reduction.
16666         (vect_transform_stmt): Likewise.
16667         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
16668         (vect_build_slp_tree): Fix indentation. Check that there are no loads
16669         from different interleaving chains in same node.
16670         (vect_slp_rearrange_stmts): New function.
16671         (vect_supported_load_permutation_p): Allow load permutations for
16672         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
16673         inside SLP nodes if necessary.
16674         (vect_analyze_slp_instance): Handle reductions.
16675         (vect_analyze_slp): Try to build SLP instances originating from groups
16676         of reductions.
16677         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
16678         (vect_get_constant_vectors): Create initial vectors for reductions
16679         according to reduction code. Add new argument.
16680         (vect_get_slp_defs): Add new argument, pass it to
16681         vect_get_constant_vectors.
16682         (vect_schedule_slp_instance): Remove SLP tree root statements.
16683
16684 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
16685
16686         * tree.h (ENUM_IS_SCOPED): Define.
16687         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
16688         for ENUM_IS_SCOPED enums.
16689
16690 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
16691
16692         * fold-const.c (fold_comparison): Use ssizetype.
16693         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
16694         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
16695         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
16696         * tree-object-size.c (compute_object_sizes): Use size_type_node.
16697
16698         * tree.h (initialize_sizetypes): Remove parameter.
16699         (build_common_tree_nodes): Remove second parameter.
16700         * stor-layout.c (initialize_sizetypes): Remove parameter.
16701         Always create an unsigned type.
16702         (set_sizetype): Assert that the passed type is unsigned and simplify.
16703         * tree.c (build_common_tree_nodes): Remove second parameter.
16704         Adjust call to initialize_sizetypes.
16705         * c-decl.c (c_init_decl_processing): Remove second argument in call to
16706         build_common_tree_nodes.
16707
16708 2010-04-18  Matthias Klose  <doko@ubuntu.com>
16709
16710         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
16711
16712 2010-04-18  Ira Rosen  <irar@il.ibm.com>
16713
16714         PR tree-optimization/43771
16715         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
16716         load permutation doesn't have gaps.
16717
16718 2010-04-18  Jan Hubicka  <jh@suse.cz>
16719
16720         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
16721         (sse_prologue_save_insn expander): Use new pattern.
16722         (sse_prologue_save_insn1): New pattern and splitter.
16723         (sse_prologue_save_insn): Update to deal also with 64bit aligned
16724         blocks.
16725         * i386.c (setup_incoming_varargs_64): Do not compute jump
16726         destination here.
16727         (ix86_gimplify_va_arg): Update alignment needed.
16728         (ix86_local_alignment): Do not align all local arrays to 128bit.
16729
16730 2010-04-17  Jan Hubicka  <jh@suse.cz>
16731
16732         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
16733
16734 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
16735
16736         * arm.md (negdi2): Remove redundant code to force values into a
16737         register.
16738
16739 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
16740
16741         * arm/bpabi.S: Add EABI alignment attributes to objects.
16742         * arm/bpabi-v6m.S: Likewise.
16743         * arm/crti.asm: Likewise.
16744         * arm/crtn.asm: Likewise.
16745         * arm/lib1funcs.asm: Likewise.
16746         * arm/libunwind.S: Likewise.
16747
16748 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
16749
16750         * arm-protos.h (tune_params): New structure.
16751         * arm.c (current_tune): New variable.
16752         (arm_constant_limit): Delete.
16753         (struct processors): Add pointer to the tune parameters.
16754         (arm_slowmul_tune): New tuning option.
16755         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
16756         (all_cores): Adjust to pick up the tuning model.
16757         (arm_constant_limit): New function.
16758         (arm_override_options): Select the appropriate tuning model.  Delete
16759         initialization of arm_const_limit.
16760         (arm_split_constant): Use the new constant-limit model.
16761         (arm_rtx_costs): Pick up the current tuning model.
16762         * arm.md (is_strongarm, is_xscale): Delete.
16763         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
16764         for Xscale variant architectures.
16765         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
16766
16767 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16768
16769         * config/arm/arm.c (arm_gen_constant): Remove unused variable
16770         can_shift.
16771         (arm_rtx_costs_1): Remove unused variable extra_cost.
16772         (arm_unwind_emit_set): Use variable offset.
16773         (thumb1_output_casesi): Remove unused variable flags.
16774
16775 2010-04-16  Jeff Law  <law@redhat.com>
16776
16777         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
16778         needing assignment rather than doing a two-phase assignment.  Remove
16779         unused variable 'm'.
16780
16781 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
16782
16783         PR bootstrap/43767
16784         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
16785
16786 2010-04-16  Doug Kwan  <dougkwan@google.com>
16787
16788         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
16789         (next_operand_entry_id): New static variable.
16790         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
16791         (add_to_ops_vec): Assigned unique ID to operand entry.
16792         (struct oecount_s): New field ID.
16793         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
16794         (undistribute_ops_list): Assign unique IDs to oecounts.
16795         (init_reassoc): reset next_operand_entry_id.
16796
16797 2010-04-16  Doug Kwan  <dougkwan@google.com>
16798
16799         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
16800         missing left parenthesis.
16801
16802 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
16803
16804         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
16805         *btdi_rex64 using SWI48 mode iterator.
16806         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
16807         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
16808         *jcc_btdi_mask_rex64.
16809
16810 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
16811
16812         * double-int.h (tree_to_double_int): Convert to macro.
16813         * double-int.c (tree_to_double_int): Remove.
16814
16815 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
16816
16817         PR debug/43762
16818         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
16819         with want_address 2 and in case a single element list might be
16820         possible, call it again with want_address 0.
16821
16822 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
16823
16824         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
16825         case 'W' print operands for HI mode.
16826         * config/h8300/h8300.h (Y0, Y2) : New constraints.
16827         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
16828         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
16829         * config/h8300/predicate.md (bit_register_indirect_operand): New.
16830
16831         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
16832
16833         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
16834         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
16835         #xx:3 and #xx:4 mode.
16836
16837         * config/h8300/h8300.md (inverted load with HImode dest): Add
16838         support for H8300SX.
16839
16840         * config/h8300/predicate.md (bit_operand): Allow immediate values that
16841         satisfy 'U' constraint.
16842
16843 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16844
16845         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
16846         * configure: Regenerate.
16847         * config.in: Regenerate.
16848         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
16849         works.
16850
16851 2010-04-16  Richard Guenther  <rguenther@suse.de>
16852
16853         * tree.h (struct tree_decl_minimal): Move pt_uid ...
16854         (struct tree_decl_common): ... here.
16855         (DECL_PT_UID): Adjust.
16856         (SET_DECL_PT_UID): Likewise.
16857         (DECL_PT_UID_SET_P): Likewise.
16858
16859 2010-04-16  Richard Guenther  <rguenther@suse.de>
16860
16861         PR tree-optimization/43572
16862         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
16863         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
16864         * tree-flow.h (is_call_clobbered): Remove.
16865         * tree-flow-inline.h (is_call_clobbered): Likewise.
16866         * tree-dfa.c (dump_variable): Do not dump call clobber state.
16867         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
16868         (execute_return_slot_opt): Adjust.
16869         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
16870         check for call clobbered vars here.
16871         (find_tail_calls): Move tailcall verification to the
16872         proper place.
16873
16874 2010-04-16  Diego Novillo  <dnovillo@google.com>
16875
16876         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
16877
16878 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
16879
16880         PR target/40603
16881         * config/arm/arm.md (cbranchqi4): New pattern.
16882         * config/arm/predicates.md (const0_operand,
16883         cbranchqi4_comparison_operator): New predicates.
16884
16885 2010-04-16  Richard Guenther  <rguenther@suse.de>
16886
16887         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
16888         (dump_gimple_stmt): Likewise.
16889
16890 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
16891
16892         * recog.h (struct recog_data): New field is_operator.
16893         (struct insn_operand_data): New field is_operator.
16894         * recog.c (extract_insn): Set recog_data.is_operator.
16895         * genoutput.c (output_operand_data): Emit code to set the
16896         is_operator field.
16897         * reload.c (find_reloads): Use it rather than testing for an
16898         empty constraint string.
16899
16900         PR target/41514
16901         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
16902         If the previous insn is a cbranchsi4_insn with the same arguments,
16903         omit the compare instruction.
16904
16905         * config/arm/arm.md (addsi3_cbranch): If destination is a high
16906         register, inputs must be low registers and we need a low register
16907         scratch.  Handle alternative 2 like alternative 3.
16908
16909 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
16910
16911         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
16912         don't call get_addr on both.  If one expression is a VALUE and
16913         the other a REG, check VALUE's locs if the REG isn't among them.
16914
16915 2010-04-16  Christian Bruel  <christian.bruel@st.com>
16916
16917         * config/sh/sh.h (sh_frame_pointer_required): New function.
16918         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
16919         (flag_omit_frame_pointer) Set.
16920         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
16921         (rounded_frame_size): Adjust size with outgoing_args_size.
16922         (sh_set_return_address): Must return from stack pointer.
16923         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
16924         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
16925         (ACCUMULATE_OUTGOING_ARGS): Define.
16926         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
16927         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
16928
16929 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
16930
16931         PR target/43471
16932         * config/sh/sh.c (sh_legitimize_reload_address): Use
16933         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
16934         Remove a unneeded check for offset_base.
16935
16936 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
16937
16938         * configure: Regenerated.
16939
16940 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16941
16942         * config/s390/s390.c (s390_call_save_register_used): Switch back
16943         to HARD_REGNO_NREGS.
16944
16945 2010-04-15  Richard Guenther  <rguenther@suse.de>
16946
16947         * alias.c (alias_set_subset_of): Handle alias-set zero
16948         child properly.
16949
16950 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
16951             Julian Brown  <julian@codesourcery.com>
16952
16953         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
16954         alternatives according to use of high and low regs.
16955         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
16956         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
16957         optimizing for size on Thumb-2.
16958
16959 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
16960
16961         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
16962
16963 2010-04-15  Richard Guenther  <rguenther@suse.de>
16964
16965         * tree-ssa-structalias.c (struct variable_info): Add
16966         is_fn_info flag.
16967         (new_var_info): Initialize it.
16968         (dump_constraints): Support printing last added constraints.
16969         (debug_constraints): Adjust.
16970         (dump_constraint_graph): Likewise.
16971         (make_heapvar_for): Check for NULL cfun.
16972         (get_function_part_constraint): New function.
16973         (get_fi_for_callee): Likewise.
16974         (find_func_aliases): Properly implement IPA PTA constraints.
16975         (process_ipa_clobber): New function.
16976         (find_func_clobbers): Likewise.
16977         (insert_into_field_list_sorted): Remove.
16978         (create_function_info_for): Properly allocate vars for IPA mode.
16979         Do not use insert_into_field_list_sorted.
16980         (create_variable_info_for): Properly generate constraints for
16981         global vars in IPA mode.
16982         (dump_solution_for_var): Always dump the solution.
16983         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
16984         (find_what_var_points_to): Adjust.
16985         (pt_solution_set): Change.
16986         (pt_solution_ior_into): New function.
16987         (pt_solution_empty_p): Export.
16988         (pt_solution_includes_global): Adjust.
16989         (pt_solution_includes_1): Likewise.
16990         (pt_solutions_intersect_1): Likewise.
16991         (dump_sa_points_to_info): Check some invariants.
16992         (solve_constraints): Move constraint dumping ...
16993         (compute_points_to_sets): ... here.
16994         (ipa_pta_execute): ... and here.
16995         (compute_may_aliases): Do not re-compute points-to info
16996         locally if IPA info is available.
16997         (ipa_escaped_pt): New global var.
16998         (ipa_pta_execute): Properly implement IPA PTA.
16999         * tree-into-ssa.c (dump_decl_set): Support dumping
17000         decls not in referenced-vars.
17001         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
17002         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
17003         (dump_points_to_solution): Likewise.
17004         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
17005         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
17006         (remap_gimple_stmt): Reset call clobber/use information if necessary.
17007         (copy_decl_to_var): Copy DECL_PT_UID.
17008         (copy_result_decl_to_var): Likewise.
17009         * tree.c (make_node_stat): Initialize DECL_PT_UID.
17010         (copy_node_stat): Copy it.
17011         * tree.h (DECL_PT_UID): New macro.
17012         (SET_DECL_PT_UID): Likewise.
17013         (DECL_PT_UID_SET_P): Likewise.
17014         (struct tree_decl_minimal): Add pt_uid member.
17015         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
17016         (pt_solution_empty_p): Declare.
17017         (pt_solution_set): Adjust.
17018         (ipa_escaped_pt): Declare.
17019         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
17020         * gimple-pretty-print.c (pp_points_to_solution): New function.
17021         (dump_gimple_call): Dump call clobber/use information.
17022         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
17023         * tree-pass.h (TDF_ALIAS): New dump option.
17024         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
17025         * doc/invoke.texi (-fipa-pta): Update documentation.
17026
17027 2010-04-15  Richard Guenther  <rguenther@suse.de>
17028
17029         * Makefile.in (OBJS-common): Add gimple-fold.o.
17030         (gimple-fold.o): New rule.
17031         * tree.h (maybe_fold_offset_to_reference,
17032         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
17033         prototypes ...
17034         * gimple.h: ... here.
17035         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
17036         may_propagate_address_into_dereference): Move prototypes ...
17037         * gimple.h: ... here.
17038         * tree-ssa-ccp.c (get_symbol_constant_value,
17039         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
17040         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
17041         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
17042         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
17043         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
17044         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
17045         gimplify_and_update_call_from_tree): Move ...
17046         * gimple-fold.c: ... here.  New file.
17047         (ccp_fold_builtin): Rename to ...
17048         (gimple_fold_builtin): ... this.
17049         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
17050
17051 2010-04-15  Richard Guenther  <rguenther@suse.de>
17052
17053         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
17054         fit_double_type, force_fit_type_double, add_double_with_sign,
17055         neg_double, mul_double_with_sign, lshift_double, rshift_double,
17056         lrotate_double, rrotate_double, div_and_round_double): Move ...
17057         * double-int.c: ... here.
17058         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
17059         add_double, neg_double, mul_double_with_sign, mul_double,
17060         lshift_double, rshift_double, lrotate_double, rrotate_double,
17061         div_and_round_double): Move prototypes ...
17062         * double-int.h: ... here.
17063
17064 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
17065
17066         PR target/43742
17067         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
17068         matching constraints to ensure inputs match the output.
17069
17070 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
17071
17072         PR target/43742
17073         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
17074         in an input-only operand.
17075
17076 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
17077
17078         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
17079         (double_int_not, double_int_lshift, double_int_rshift): Declare.
17080         (double_int_negative_p): Convert to static inline function.
17081         * double-int.c (double_int_lshift, double_int_lshift): New functions.
17082         (double_int_negative_p): Remove.
17083         * tree.h (lshift_double, rshift_double):
17084         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
17085         * fold-const.c (fold_convert_const_int_from_real,
17086         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
17087         (lshift_double): Change type of arith argument to bool.
17088         (rshift_double): Change type of arith argument to bool. Correct
17089         comment.
17090         * expmed.c (mask_rtx, lshift_value): (Ditto.).
17091
17092 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
17093
17094         PR target/21803
17095         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
17096         at the start and end of the then/else blocks, and omit them from the
17097         conversion.
17098         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
17099         argument; all callers changed.  Pass zero to old_insns_match_p instead.
17100         (flow_find_head_matching_sequence): New function.
17101         (old_insns_match_p): Check REG_EH_REGION notes for calls.
17102         * basic-block.h (flow_find_cross_jump,
17103         flow_find_head_matching_sequence): Declare functions.
17104
17105 2010-04-14  Jason Merrill  <jason@redhat.com>
17106
17107         PR c++/36625
17108         * c-common.c (attribute_takes_identifier_p): New fn.
17109         * c-common.h: Declare it.
17110
17111 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17112
17113         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
17114         splitter condition.
17115         (*udivmod<mode>4): Ditto.
17116
17117 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17118
17119         * config/i386/i386.md (maxmin_int): Rename code attribute from
17120         maxminiprefix and update all users.
17121         (maxmin_float): Ditto from maxminfprefix.
17122         (logic): Ditto from logicprefix.
17123         (absneg_mnemonic): Ditto from absnegprefix.
17124         * config/i386/mmx.md: Update all users of maxminiprefix,
17125         maxminfprefix and logicprefix for rename.
17126         * config/i386/sse.md: Ditto.
17127         * config/i386/sync.md (sync_<code><mode>): Update for
17128         logicprefix rename.
17129
17130 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17131
17132         PR 42966
17133         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
17134         warnings converted to errors.
17135
17136 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17137
17138         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
17139         used insn_type variable.
17140         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
17141         to avoid set-but-not-used warning.
17142
17143 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17144
17145         * df-core.c (df_ref_debug): Change format string placeholder
17146         from 0x%x to %#x.
17147         * dwarf2asm.c (dw2_asm_output_data_raw,
17148         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
17149         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
17150         * dwarf2out.c (output_cfi, output_cfi_directive,
17151         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
17152         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
17153         Ditto.
17154         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
17155         * print-rtl.c (print_rtx): Ditto.
17156
17157 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
17158
17159         PR middle-end/42694
17160         * builtins.c (expand_builtin_pow_root): New function to expand pow
17161         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
17162         series of sqrt and cbrt calls under -ffast-math.
17163         (expand_builtin_pow): Call it.
17164
17165 2010-04-14  Michael Matz  <matz@suse.de>
17166
17167         PR tree-optimization/42963
17168         * tree-cfg.c (touched_switch_bbs): New static variable.
17169         (group_case_labels_stmt): New function broken out from ...
17170         (group_case_labels): ... here, use the above.
17171         (start_recording_case_labels): Allocate touched_switch_bbs.
17172         (end_recording_case_labels): Deallocate it, call
17173         group_case_labels_stmt.
17174         (gimple_redirect_edge_and_branch): Remember index of affected BB.
17175
17176 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17177
17178         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
17179         from insn template.
17180
17181 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17182
17183         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
17184
17185 2010-04-13  Jan Hubicka  <jh@suse.cz>
17186
17187         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
17188         of optimized out static functions.
17189         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
17190         cost computation.  Also sanity check for overflows.
17191         (update_caller_keys): Update cgraph_edge_badness call; properly
17192         update fibheap and sanity check that it is up to date.
17193         (add_new_edges_to_heap): Update cgraph_edge_badness.
17194         (cgraph_decide_inlining_of_small_function): Likewise;
17195         add sanity checking that badness in heap is up to date;
17196         improve dumping of reason; Update badness of calls to the
17197         offline copy of function currently inlined; dump badness
17198         of functions not inlined because of unit growth limits.
17199
17200 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
17201
17202         PR middle-end/32628
17203         * c-common.c (pointer_int_sum): Disregard overflow that occured only
17204         because of sign-extension change when converting to sizetype here...
17205         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
17206
17207         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
17208         the folding to constants.  Remove redundant final conversion.
17209         (fold_binary) <associate>: Do not associate if the re-association of
17210         constants alone overflows.
17211         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
17212         to the end of the list.
17213         (multiple_of_p) <COND_EXPR>: New case.
17214
17215 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17216
17217         * opt-functions.awk (opt_sanitized_name): New.
17218         (opt_enum): New.
17219         * optc-gen.awk: Use it
17220         * opth-gen.awk: Use it.
17221
17222 2010-04-13  Martin Jambor  <mjambor@suse.cz>
17223
17224         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
17225         (sra_modify_assign): Delete stmts loading dead data even if racc has no
17226         children.  Call replace_uses_with_default_def_ssa_name to handle
17227         SSA_NAES on lhs.
17228
17229 2010-04-13  Michael Matz  <matz@suse.de>
17230
17231         PR middle-end/43730
17232         * builtins.c (expand_builtin_interclass_mathfn): Also create
17233         a register if the predicate doesn't match.
17234
17235 2010-04-13  Diego Novillo  <dnovillo@google.com>
17236
17237         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
17238         * c-pch.c: Include timevar.h.
17239         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
17240         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
17241         * ggc-common.c: Include timevar.h.
17242         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
17243         * timevar.def (TV_PCH_SAVE): Define.
17244         (TV_PCH_CPP_SAVE): Define.
17245         (TV_PCH_PTR_REALLOC): Define.
17246         (TV_PCH_PTR_SORT): Define.
17247         (TV_PCH_RESTORE): Define.
17248         (TV_PCH_CPP_RESTORE): Define.
17249
17250 2010-04-13  Michael Matz  <matz@suse.de>
17251
17252         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
17253         into MINUS_EXPRs.
17254         (can_reassociate_p): New function.
17255         (break_up_subtract_bb, reassociate_bb): Use it.
17256
17257 2010-04-13  Richard Guenther  <rguenther@suse.de>
17258
17259         PR bootstrap/43737
17260         * builtins.c (c_readstr): Fix assert.
17261
17262 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
17263
17264         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
17265         when generating cltd insn.
17266
17267         (*ashl<mode>3_1): Remove special handling for register operand 2.
17268         (*ashlsi3_1_zext): Ditto.
17269         (*ashlhi3_1): Ditto.
17270         (*ashlhi3_1_lea): Ditto.
17271         (*ashlqi3_1): Ditto.
17272         (*ashlqi3_1_lea): Ditto.
17273         (*<shiftrt_insn><mode>3_1): Ditto.
17274         (*<shiftrt_insn>si3_1_zext): Ditto.
17275         (*<shiftrt_insn>qi3_1_slp): Ditto.
17276         (*<rotate_insn><mode>3_1): Ditto.
17277         (*<rotate_insn>si3_1_zext): Ditto.
17278         (*<rotate_insn>qi3_1_slp): Ditto.
17279
17280 2010-04-13  Richard Guenther  <rguenther@suse.de>
17281
17282         * tree-ssa-structalias.c (callused_id): Remove.
17283         (call_stmt_vars): New.
17284         (get_call_vi): Likewise.
17285         (lookup_call_use_vi): Likewise.
17286         (lookup_call_clobber_vi): Likewise.
17287         (get_call_use_vi): Likewise.
17288         (get_call_clobber_vi): Likewise.
17289         (make_transitive_closure_constraints): Likewise.
17290         (handle_const_call): Adjust to do per-call call-used handling.
17291         (handle_pure_call): Likewise.
17292         (find_what_var_points_to): Remove general callused handling.
17293         (init_base_vars): Likewise.
17294         (init_alias_vars): Initialize call_stmt_vars.
17295         (compute_points_to_sets): Process call-used and call-clobbered
17296         vars for call statements.
17297         (delete_points_to_sets): Free call_stmt_vars.
17298
17299 2010-04-13  Richard Guenther  <rguenther@suse.de>
17300
17301         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
17302         Only add RW dependence for dependence distance zero.
17303         Adjust maximal vectorization factor according to dependences.
17304         Move alignment handling ...
17305         (vect_find_same_alignment_drs): ... here.  New function.
17306         (vect_analyze_data_ref_dependences): Adjust.
17307         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
17308         (vect_analyze_data_refs): Adjust minimal vectorization factor
17309         according to data references.
17310         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
17311         dependences before determining the vectorization factor.
17312         Analyze alignment after determining the vectorization factor.
17313         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
17314         dependences before alignment.
17315         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
17316         Adjust prototype.
17317         (vect_analyze_data_refs): Likewise.
17318         (MAX_VECTORIZATION_FACTOR): New define.
17319
17320 2010-04-13  Duncan Sands  <baldrick@free.fr>
17321
17322         * except.h (lang_eh_type_covers): Remove.
17323         * except.c (lang_eh_type_covers): Likewise.
17324
17325 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17326             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17327
17328         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
17329         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
17330         UNITS_PER_LONG where it is ABI relevant.
17331         (s390_return_addr_rtx): Likewise.
17332         (s390_back_chain_rtx): Likewise.
17333         (s390_frame_area): Likewise.
17334         (s390_frame_info): Likewise.
17335         (s390_initial_elimination_offset): Likewise.
17336         (save_gprs): Likewise.
17337         (s390_emit_prologue): Likewise.
17338         (s390_emit_epilogue): Likewise.
17339         (s390_function_arg_advance): Likewise.
17340         (s390_function_arg): Likewise.
17341         (s390_va_start): Likewise.
17342         (s390_gimplify_va_arg): Likewise.
17343         (s390_function_profiler): Likewise.
17344         (s390_optimize_prologue): Likewise.
17345         (s390_rtx_costs): Likewise.
17346         (s390_secondary_reload): Likewise.
17347         (s390_promote_function_mode): Likewise.
17348         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
17349         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
17350         registers available.
17351         (s390_unwind_word_mode): New function.
17352         (s390_function_value): Split 64 bit values into register pair if
17353         used as return value.
17354         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
17355         function call parameters.  Handle parallels.
17356         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
17357         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
17358         (DWARF_CIE_DATA_ALIGNMENT): New macro.
17359         (s390_expand_setmem): Remove unused variable src_addr.
17360         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
17361         deal with 64 bit registers.
17362         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
17363         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
17364         (UNITS_PER_LONG): New macro.
17365         * libjava/include/s390-signal.h: Define extended ucontext
17366         structure containing the upper halfs of the 64 bit registers.
17367
17368 2010-04-13  Simon Baldwin  <simonb@google.com>
17369
17370         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
17371
17372 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
17373
17374         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
17375         rvalue on the RHS if the LHS is of a non-renamable type.
17376         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
17377
17378 2010-04-13  Matthias Klose  <doko@ubuntu.com>
17379
17380         * gcc.c (cc1_options): Handle -iplugindir before processing
17381         the cc1 spec. Only add -iplugindir once.
17382         (cpp_unique_options): Add -iplugindir option if -fplugin* options
17383         found.
17384         * common.opt (iplugindir): Remove `Separate' property, initialize.
17385         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
17386         option.
17387         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
17388         (distclean): Remove plugin dir.
17389         * doc/invoke.texi: Document -iplugindir.
17390
17391 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
17392
17393         * doc/plugins.texi (Loading Plugins): Document short
17394         -fplugin=foo option.
17395         (Plugin API): Mention default_plugin_dir_name function.
17396
17397         * gcc.c (find_file_spec_function): Add new declaration.
17398         (static_spec_func): Use it for "find-file".
17399         (find_file_spec_function): Add new function.
17400         (cc1_options): Add -iplugindir option if -fplugin* options found.
17401
17402         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
17403
17404         * plugin.c (add_new_plugin): Updated comment, and handle short
17405         plugin name.
17406         (default_plugin_dir_name): Added new function.
17407
17408         * common.opt (iplugindir): New option to set the plugin directory.
17409
17410 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
17411
17412         * config/i386/i386.md (any_rotate): New code iterator.
17413         (rotate_insn): New code attribute.
17414         (rotate): Ditto.
17415         (SWIM124): New mode iterator.
17416         (<rotate_insn>ti3): New expander.
17417         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
17418         any_rotate code iterator.
17419         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
17420         using any_rotate code iterator and SWIM124 mode iterator.
17421         (ix86_rotlti3): New insn_and_split pattern.
17422         (ix86_rotrti3): Ditto.
17423         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
17424         ix86_rotl{di,ti}3 patterns.
17425         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
17426         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
17427         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
17428         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
17429         code iterator and SWI mode iterator.
17430         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
17431         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
17432         code iterator.
17433         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
17434         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
17435         (bswap rotatert splitter): Add splitter.
17436         (bswap splitter): Macroize splitter using any_rotate code iterator.
17437         Add insn predicate to split only for TARGET_USE_XCHGB or when
17438         optimizing function for size.
17439
17440 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
17441
17442         * config/pa/pa.c (emit_move_sequence): Remove use of
17443         deleted variable flag_argument_noalias.
17444
17445 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17446
17447         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
17448         configurations.
17449         Add to unsupported targets list.
17450         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
17451         sparc*-sun-solaris2.[567]* from target lists.
17452         * configure: Regenerate.
17453         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
17454         removal.
17455         Remove Solaris 7 patch references.
17456         (Specific, sparc-sun-solaris2.7): Removed.
17457         (sparc-sun-solaris2*): Update Solaris 7 example.
17458         (sparc64-*-solaris2*): Likewise.
17459
17460 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17461
17462         * config.build (alpha*-dec-osf4*): Remove.
17463         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
17464         of obsolete configurations.
17465         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
17466         support.
17467         * config/alpha/t-osf4: Renamed to ...
17468         * config/alpha/t-osf5: ... this.
17469         * config/alpha/osf.h: Renamed to ...
17470         * config/alpha/osf5.h: ... this.
17471         Merged old osf5.h contents.
17472         Update comments.
17473         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
17474         (EXTRA_SPECS): Removed.
17475         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
17476         reflect removal of Tru64 UNIX V4.0/V5.0 support.
17477         Document that.
17478
17479 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17480
17481         * doc/contrib.texi (Contributors, Rainer Orth): Update.
17482
17483 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
17484
17485         PR/43702
17486         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
17487         __thiscall convention.
17488
17489 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
17490
17491         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
17492         orig_base.
17493         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
17494
17495 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
17496
17497         * function.c (assign_parms_initialize_all): Add unused attribute
17498         to fntype.
17499
17500 2010-04-12  Richard Guenther  <rguenther@suse.de>
17501
17502         * gsstruct.def (GSS_CALL): New.
17503         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
17504         * gimple.h: Include tree-ssa-alias.h.
17505         (struct gimple_statement_call): New.
17506         (union gimple_statement_struct_d): Add gimple_call member.
17507         (gimple_call_reset_alias_info): Declare.
17508         (gimple_call_use_set): New function.
17509         (gimple_call_clobber_set): Likewise.
17510         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
17511         * gimple.c (gimple_call_reset_alias_info): New function.
17512         (gimple_build_call_1): Call it.
17513         * lto-streamer-in.c (input_gimple_stmt): Likewise.
17514         * tree-inline.c (remap_gimple_stmt): Likewise.
17515         (expand_call_inline): Remove callused handling.
17516         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
17517         * tree-dfa.c (dump_variable): Likewise.
17518         * tree-parloops.c (parallelize_loops): Likewise.
17519         * tree-ssa.c (init_tree_ssa): Likewise.
17520         (delete_tree_ssa): Likewise.
17521         * tree-flow-inline.h (is_call_used): Remove.
17522         * tree-flow.h (struct gimple_df): Remove callused member.
17523         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
17524         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
17525         (ref_maybe_used_by_call_p_1): Simplify.
17526         (call_may_clobber_ref_p_1): Likewise.
17527         * tree-ssa-structalias.c (compute_points_to_sets): Set
17528         the call stmt used and clobbered sets.
17529         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
17530         (find_tail_calls): Verify the tail call.
17531
17532 2010-04-12  Richard Guenther  <rguenther@suse.de>
17533
17534         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
17535         single-iteration always-inline inlining.
17536         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
17537         (cgraph_decide_inlining): Do not handle always-inline specially.
17538         (try_inline): Remove always-inline cycle detection special case.
17539         Do not recurse on always-inlines.
17540         (cgraph_early_inlining): Do not iterate if not optimizing.
17541         (cgraph_gate_early_inlining): remove.
17542         (pass_early_inline): Run unconditionally.
17543         (gate_cgraph_decide_inlining): New function.
17544         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
17545         not inlining or optimizing.
17546         (cgraph_decide_inlining_of_small_functions): Also consider
17547         always-inline functions.
17548         (cgraph_default_inline_p): Return true for nodes which should
17549         disregard inline limits.
17550         (estimate_function_body_sizes): Assume zero size and time for
17551         nodes which are marked as disregarding inline limits.
17552         (cgraph_decide_recursive_inlining): Do not perform recursive
17553         inlining on always-inline nodes.
17554
17555 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
17556
17557         PR bootstrap/43699
17558         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
17559         for exprs satisfying handled_component_p.
17560
17561 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
17562
17563         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
17564         non-constant aggregate elements.
17565
17566         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
17567         is a real initialization.
17568
17569 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
17570
17571         PR c/36774
17572         * c-decl.c (start_function): Move forward check for nested function.
17573
17574 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
17575
17576         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
17577         * config/sh/sh.c: Include reload.h.
17578         (sh_legitimize_reload_address): New.
17579         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
17580         sh_legitimize_reload_address.
17581
17582 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
17583
17584         * config/sh/sh.md (*movqi_pop): New insn pattern.
17585         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
17586
17587 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
17588
17589         * config/i386/i386.md (any_shiftrt): New code iterator.
17590         (shiftrt_insn): New code attribute.
17591         (shiftrt): Ditto.
17592         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
17593         using any_shiftrt code iterator.
17594         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
17595         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
17596         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
17597         pattern from corresponding peephole2 patterns.
17598         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
17599         using any_shiftrt code iterator.
17600         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
17601         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
17602         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
17603         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
17604         *{ashr,lshr}<mode>3_cmp_zext.
17605         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
17606
17607 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
17608
17609         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
17610         scratch register.
17611         (*lshr<mode>3_cconly): Ditto.
17612
17613 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
17614
17615         * config/i386/i386.md (lshr<mode>3): Macroize expander from
17616         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
17617         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
17618         pattern from *lshr{di,ti}3_1 and corresponding splitters using
17619         DWI mode iterator.
17620         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
17621         from corresponding peephole2 patterns.
17622         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
17623         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
17624         and *lshrdi3_1_rex64 using SWI mode iterator.
17625         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
17626         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
17627         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
17628         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
17629         and *lshrdi3_cmp_rex64 using SWI mode iterator.
17630         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
17631         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
17632         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
17633         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
17634         SWI mode iterator.
17635
17636 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
17637
17638         * config/i386/i386.md (ashr<mode>3): Macroize expander from
17639         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
17640         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
17641         pattern from *ashr{di,ti}3_1 and corresponding splitters using
17642         DWI mode iterator.
17643         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
17644         from corresponding peephole2 patterns.
17645         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
17646         (ashrsi3_cvt): Rename from ashrsi3_31.
17647         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
17648         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
17649         and x86_64_shift_adj_3 using SWI48 mode iterator.
17650         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
17651         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
17652         and *ashrdi3_1_rex64 using SWI mode iterator.
17653         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
17654         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
17655         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
17656         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
17657         and *ashrdi3_cmp_rex64 using SWI mode iterator.
17658         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
17659         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
17660         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
17661         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
17662         SWI mode iterator.
17663         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
17664         * config/i386/i386.c (ix86_split_ashr): Update for renamed
17665         x86_shift<mode>_adj_3 expanders.
17666
17667 2010-04-10  Wei Guozhi  <carrot@google.com>
17668
17669         PR target/42601
17670         * config/arm/arm.c (arm_pic_static_addr): New function.
17671         (legitimize_pic_address): Call arm_pic_static_addr when it detects
17672         a static symbol.
17673         (arm_output_addr_const_extra): Output expression for new pattern.
17674         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
17675
17676 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
17677
17678         * ira-costs.c (record_reg_classes): Ignore alternatives that are
17679         not enabled.
17680
17681         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
17682         * web.c: Include "insn-config.h" and "recog.h".
17683         (union_match_dups): New function.
17684         (web_main): Call it.
17685         (union_defs): Don't try to recognize match_dups.
17686
17687         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
17688         if doing so would replace the entire pattern.
17689
17690 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
17691
17692         PR target/43707
17693         PR target/43709
17694         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
17695         and splitter pattern.  Change splitter operand 1 predicate to
17696         nonmemory_operand.
17697
17698 2010-04-09  Martin Jambor  <mjambor@suse.cz>
17699
17700         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
17701         lattices are addresses of CONST_DECLs with the same initial value.
17702         (ipcp_print_all_lattices): Print values of CONST_DECLs.
17703         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
17704
17705 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
17706             Bernd Schmidt  <bernds@codesourcery.com>
17707
17708         * loop-invariant.c (replace_uses): New static function.
17709         (move_invariant_reg): Use it to ensure we can replace the uses.
17710
17711 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
17712
17713         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
17714         function template.
17715         (picochip_override_options): Enable section anchors only above -O1.
17716         (picochip_reorg): Fixed a couple of build warnings.
17717
17718 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17719
17720         * configure.ac (plugin -rdynamic test): Log result.
17721         * configure: Regenerate.
17722         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
17723         (RDYNAMIC_SPEC): Define.
17724         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
17725
17726 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17727
17728         * configure.ac: Determine Sun ld version numbers.
17729         (comdat_group): Restrict GNU ld version checks to gld.
17730         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
17731         (enable_comdat): Support --enable-comdat.
17732         * configure: Regenerate.
17733         * doc/install.texi (Configuration): Document --enable-comdat.
17734
17735 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17736
17737         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
17738         * config/sol2-gld.h: ... here.
17739         * config.gcc (sparc*-*-solaris2*): Reflect this.
17740         (i[34567]86-*-solaris2*): Use it.
17741
17742 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
17743
17744         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
17745         setup_clocks_p.
17746         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
17747
17748 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17749
17750         PR 42965
17751         * diagnostic.c (diagnostic_initialize): Initialize
17752         some_warnings_are_errors.
17753         (diagnostic_finish): New.
17754         (diagnostic_action_after_output): Call it before exiting.
17755         (diagnostic_report_diagnostic): Do not print message here. Set
17756         some_warnings_are_errors.
17757         * diagnostic.h (diagnostic_context): Delete
17758         issue_warnings_are_errors_message. Add some_warnings_are_errors.
17759         (diagnostic_finish): Declare.
17760         * toplev.c (toplev_main): Call it before exit.
17761
17762 2010-04-09  Jason Merrill  <jason@redhat.com>
17763
17764         PR c++/42623
17765         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
17766         for incomplete type.
17767
17768         PR c++/41788
17769         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
17770         based on a warning flag.
17771
17772 2010-04-09  Richard Guenther  <rguenther@suse.de>
17773
17774         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
17775
17776 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
17777
17778         PR bootstrap/43684
17779         * varasm.c (default_assemble_visibility): Wrap vars that are
17780         set, but unused, by targets without GAS.
17781         * config/rs6000/rs6000.c (paired_emit_vector_compare):
17782         Remove set, but unused, vars.
17783         (rs6000_legitimize_tls_address): Likewise.
17784         (altivec_expand_dst_builtin): Likewise.
17785         * config/darwin.c (machopic_classify_symbol): Likewise.
17786         (machopic_indirection_name): Likewise.
17787
17788 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
17789
17790         * config/i386/i386.md (DWI): New mode iterator.
17791         (S): New mode attribute.
17792         (shift_operand): Ditto.
17793         (shift_immediate_operand): Ditto.
17794         (ashl_input_operand): Ditto.
17795         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
17796         using SDWIM mode iterator.
17797         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
17798         pattern from *ashl{di,ti}3_1 and corresponding splitters using
17799         DWI mode iterator.
17800         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
17801         from corresponding peephole2 patterns.
17802         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
17803         and x86_64_shift_adj_1 using SWI48 mode iterator.
17804         (x86_shift<mode>_adj_2): Ditto.
17805         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
17806         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
17807         using SWI48 mode iterator.
17808         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
17809         *ashldi3_cmp_rex64 using SWI mode iterator.
17810         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
17811         *ashldi3_cconly_rex64 using SWI mode iterator.
17812         * config/i386/i386.c (ix86_split_ashl): Update for renamed
17813         x86_shift<mode>_adj_{1,2}.
17814         (ix86_split_ashr): Ditto.
17815         (ix86_split_lshr): Ditto.
17816
17817 2010-04-09  Richard Guenther  <rguenther@suse.de>
17818
17819         * target.h (builtin_conversion): Pass in input and output types.
17820         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
17821         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
17822         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
17823         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
17824
17825         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
17826         Handle AVX modes.
17827         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
17828
17829 2010-04-09  Richard Guenther  <rguenther@suse.de>
17830
17831         PR target/43152
17832         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
17833
17834 2010-04-09  Richard Guenther  <rguenther@suse.de>
17835
17836         * tree-vectorizer.h (struct _stmt_vec_info): Document
17837         that vectype is the type of the LHS.
17838         (supportable_widening_operation, supportable_narrowing_operation):
17839         Get both input and output vector types as arguments.
17840         (vect_is_simple_use_1): Declare.
17841         (get_same_sized_vectype): Likewise.
17842         * tree-vect-loop.c (vect_determine_vectorization_factor):
17843         Set STMT_VINFO_VECTYPE to the vector type of the def.
17844         (vectorizable_reduction): Adjust.
17845         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
17846         Adjust.  Specify the output vector type.
17847         (vect_pattern_recog_1): Adjust.
17848         * tree-vect-stmts.c (get_same_sized_vectype): New function.
17849         (vectorizable_call): Adjust.
17850         (vectorizable_conversion): Likewise.
17851         (vectorizable_operation): Likewise.
17852         (vectorizable_type_demotion): Likewise.
17853         (vectorizable_type_promotion): Likewise.
17854         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
17855         the def.
17856         (vect_is_simple_use_1): New function.
17857         (supportable_widening_operation): Get both input and output
17858         vector types.
17859         (supportable_narrowing_operation): Likewise.
17860         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
17861
17862 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
17863
17864         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
17865         __thiscall and _thiscall as predefined macros.
17866         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
17867         thiscall attribute handling.
17868         (ix86_comp_type_attributes): Likewise.
17869         (ix86_function_regparm): Likewise.
17870         (ix86_return_pops_args): Likewise.
17871         (init_cumulative_args): Likewise.
17872         (find_drap_reg): Likewise.
17873         (ix86_static_chain): Likewise.
17874         (x86_this_parameter): Likewise.
17875         (x86_output_mi_thunk): Likewise.
17876         (ix86_attribute_table): Add description for thiscall attribute.
17877         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
17878         * doc/extend.texi: Add documentation for thiscall.
17879
17880 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17881
17882         PR c++/28584
17883         * c.opt (Wint-to-pointer-cast): Available in C++.
17884         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
17885
17886 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
17887
17888         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
17889         * calls.c (expand_call): Pass the function type to aggregate_value_p.
17890         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
17891         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
17892         function type instead.  Reorder and simplify checks.
17893
17894         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
17895
17896 2010-04-08  Jing Yu  <jingyu@google.com>
17897             Zdenek Dvorak  <ook@ucw.cz>
17898
17899         PR tree-optimization/42720
17900         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
17901         loop unswitch conditions here from ...
17902         (tree_unswitch_single_loop): ... here.
17903
17904 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
17905
17906         * tree-if-conv.c: Fix comments and simplify logic.
17907
17908 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
17909
17910         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
17911         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
17912         (main_tree_if_conversion): Update call to tree_if_conversion.
17913
17914 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17915
17916         PR 42485
17917         * doc/invoke.texi (-b,-V): Delete.
17918         * doc/tm.texi: Do not mention -b.
17919         * gcc.c (display_help): Delete -b and -V.
17920         (process_command): Delete -b and -V.
17921         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
17922
17923 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
17924             Wolfgang Gellerich  <gellerich@de.ibm.com>
17925
17926         Implement target hook for loop unrolling
17927         * target.h (loop_unroll_adjust): Add a new target hook function.
17928         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
17929         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
17930         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
17931         (s390_loop_unroll_adjust): Implement the new target hook for s390.
17932         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
17933         target hook.
17934         (decide_unroll_stupid): Likewise.
17935
17936 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17937
17938         PR target/43643
17939         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
17940
17941 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17942
17943         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
17944         (Specific, *-*-solaris2*): Likewise.
17945         Don't prefer Sun as over GNU as.
17946
17947 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
17948
17949         * config/s390/s390.c (override_options): Adjust the z10 defaults
17950         for max-unroll-times, max-completely-peeled-insns
17951         and max-completely-peel-times.
17952
17953 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17954
17955         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
17956         instructions for z10.
17957         (s390_expand_setmem): Likewise.
17958         (s390_expand_cmpmem): Likewise.
17959
17960 2010-04-08  Richard Guenther  <rguenther@suse.de>
17961
17962         PR tree-optimization/43679
17963         * tree-ssa-pre.c (eliminate): Only propagate copies.
17964
17965 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
17966
17967         PR bootstrap/43681
17968         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
17969         set but not used variable warning.
17970
17971 2010-04-08  Wei Guozhi  <carrot@google.com>
17972
17973         PR target/41653
17974         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
17975         (arm_size_rtx_costs): Call the new function when optimized for size.
17976
17977 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
17978
17979         PR debug/43670
17980         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
17981         op0 is not a MEM, just return NULL instead of assertion
17982         failure.
17983         (discover_nonconstant_array_refs): Don't walk debug stmts.
17984
17985 2010-04-08  Doug Kwan  <dougkwan@google.com>
17986
17987         * configure.ac: Recognize gold and do not use its version number
17988         to test ld features.
17989         * configure: Regenerate.
17990
17991 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
17992
17993         PR middle-end/40815
17994         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
17995         (negate_value): Move code to push elements to broken_up_substracts ...
17996         (eliminate_plus_minus_pair): ... here.  Push operands that have no
17997         negative pair to plus_negates.
17998         (repropagate_negates, init_reassoc, fini_reassoc): Update.
17999
18000 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18001
18002         * doc/install.texi (Configuration): Move description of
18003         --enable-lto, --with-libelf*, --enable-gold from Java section to
18004         general section.
18005
18006         * doc/generic.texi (Working with declarations)
18007         (Function Properties, C and C++ Trees): Fix typos.
18008         * doc/sourcebuild.texi (Top Level): Likewise.
18009
18010 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
18011
18012         PR c/18624
18013         * tree.h (DECL_READ_P): Define.
18014         (struct tree_decl_common): Add decl_read_flag.
18015         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
18016         a set but not used warning.
18017         (merge_decls): Merge DECL_READ_P flag.
18018         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
18019         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
18020         * c-common.c (handle_used_attribute, handle_unused_attribute):
18021         Likewise.
18022         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
18023         New prototypes.
18024         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
18025         New functions.
18026         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
18027         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
18028         c_parser_binary_expression, c_parser_cast_expression,
18029         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
18030         Call default_function_array_read_conversion instead of
18031         default_function_array_conversion where needed.
18032         (c_parser_unary_expression, c_parser_conditional_expression,
18033         c_parser_postfix_expression_after_primary, c_parser_initelt):
18034         Likewise.  Call mark_exp_read where needed.
18035         (c_parser_statement_after_labels, c_parser_asm_operands,
18036         c_parser_typeof_specifier, c_parser_sizeof_expression,
18037         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
18038         where needed.
18039         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
18040         New.
18041         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
18042         (warn_unused_but_set_parameter): Default to warn_unused
18043         && extra_warnings.
18044         * doc/invoke.texi: Document -Wunused-but-set-variable and
18045         -Wunused-but-set-parameter.
18046
18047         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
18048         used count variable.
18049         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
18050         when operandN variables aren't used in the body of the expander
18051         or splitter.
18052         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
18053         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
18054         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
18055         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
18056         FOR_EACH_IMM_USE_ON_STMT): Likewise.
18057         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
18058         * tree.c (PROCESS_ARG): Likewise.
18059
18060 2010-04-07  Simon Baldwin  <simonb@google.com>
18061
18062         * diagnostic.h (diagnostic_override_option_index): New macro to
18063         set a diagnostic's option_index.
18064         * c-tree.h (c_cpp_error): Add warning reason argument.
18065         * opts.c (_warning_as_error_callback): New.
18066         (register_warning_as_error_callback): Store callback for
18067         warnings enabled via enable_warning_as_error.
18068         (enable_warning_as_error): Call callback, minor code tidy.
18069         * opts.h (register_warning_as_error_callback): Declare.
18070         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
18071         response to -Werror=.
18072         (c_common_init_options): Register warning_as_error_callback in opts.c.
18073         * common.opt: Add -Wno-cpp option.
18074         * c-common.c (struct reason_option_codes_t): Map cpp warning
18075         reason codes to gcc option indexes.
18076         * (c_option_controlling_cpp_error): New function, lookup the gcc
18077         option index for a cpp warning reason code.
18078         * (c_cpp_error): Add warning reason argument, call
18079         c_option_controlling_cpp_error for diagnostic_override_option_index.
18080         * doc/invoke.texi: Document -Wno-cpp.
18081
18082 2010-04-07  Richard Guenther  <rguenther@suse.de>
18083
18084         * ipa-reference.c (mark_load): Use get_base_address.
18085         (mark_store): Likewise.
18086
18087         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
18088         inserting GIMPLE_NOPs into the IL.
18089         * tree-ssa-structalias.c (get_constraint_for_component_ref):
18090         Explicitly strip handled components and indirect references.
18091
18092         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
18093         folding address expressions.
18094         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
18095         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
18096         operand_equal_p to compare decls.
18097         (ptr_deref_may_alias_decl_p): Likewise.
18098         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
18099         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
18100         Handle reversed comparison ops.
18101         * tree-sra.c (asm_visit_addr): Use get_base_address.
18102         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
18103         * ipa-reference.c (mark_address): Use get_base_address.
18104
18105 2010-04-07  Richard Guenther  <rguenther@suse.de>
18106
18107         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
18108         Propagate constants everywhere.
18109
18110 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
18111
18112         PR debug/43516
18113         * tree.c (MAX_INT_CACHED_PREC): Define.
18114         (nonstandard_integer_type_cache): New array.
18115         (build_nonstandard_integer_type): Cache results for precision
18116         <= MAX_INT_CACHED_PREC.
18117
18118 2010-04-07  Richard Guenther  <rguenther@suse.de>
18119
18120         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
18121         -fargument-noalias-global, -fargument-noalias-anything): Remove.
18122         * common.opt: Likewise.
18123         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
18124         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
18125         (nonoverlapping_memrefs_p): Likewise.
18126         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
18127         * opts.c (common_handle_option): Handle OPT_fargument_alias,
18128         OPT_fargument_noalias, OPT_fargument_noalias_anything and
18129         OPT_fargument_noalias_global for backward compatibility.
18130
18131 2010-04-07  Richard Guenther  <rguenther@suse.de>
18132
18133         PR tree-optimization/43270
18134         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
18135         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
18136         * tree-ssa-pre.c (phi_translate_1): Adjust.
18137         (fully_constant_expression): Split out vn_reference handling to ...
18138         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
18139         Fold reads from constant strings.
18140         (vn_reference_lookup): Handle fully constant references.
18141         (vn_reference_lookup_pieces): Likewise.
18142         * Makefile.in (expmed.o-warn): Add -Wno-error.
18143
18144 2010-04-07  Martin Jambor  <mjambor@suse.cz>
18145
18146         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
18147
18148 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
18149
18150         PR driver/41594
18151         * gcc.c: Add -static-libstdc++ to list of recognized options.
18152
18153 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18154
18155         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
18156
18157 2010-04-07  Richard Guenther  <rguenther@suse.de>
18158
18159         PR middle-end/42617
18160         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
18161         bases build simple mem attributes to retain points-to information.
18162
18163 2010-04-07  Richard Guenther  <rguenther@suse.de>
18164
18165         PR middle-end/42617
18166         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
18167         preserve points-to related information.
18168
18169 2010-04-07  Richard Guenther  <rguenther@suse.de>
18170
18171         PR middle-end/42617
18172         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
18173         discard plain indirect references.
18174         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
18175         * tree.c (tree_nop_conversion): Likewise.
18176
18177 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
18178
18179         PR debug/43628
18180         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
18181
18182 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
18183
18184         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
18185         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
18186
18187 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
18188
18189         * tree-if-conv.c: Fix indentation and comments.
18190
18191 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
18192
18193         * tree-if-conv.c: Sort static functions in topological order.
18194
18195 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
18196
18197         * tree-if-conv.c: Fix indentation and comments.
18198
18199 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18200
18201         PR middle-end/43519
18202         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
18203         lang_hooks.types.type_for_size instead of
18204         build_nonstandard_integer_type.
18205         When converting an unsigned type to signed, double its precision.
18206         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
18207         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
18208         (graphite_create_new_loop_guard): When ub + 1 wraps around,
18209         use lb <= ub.
18210
18211 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18212
18213         PR middle-end/43519
18214         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
18215         POINTER_PLUS_EXPR for pointer types.
18216
18217 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18218
18219         PR middle-end/43519
18220         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
18221         * graphite-clast-to-gimple.c: Include langhooks.h.
18222         (max_signed_precision_type): New.
18223         (max_precision_type): Takes two types as arguments.
18224         (precision_for_value): New.
18225         (precision_for_interval): New.
18226         (gcc_type_for_interval): New.
18227         (gcc_type_for_value): New.
18228         (gcc_type_for_clast_term): New.
18229         (gcc_type_for_clast_red): New.
18230         (gcc_type_for_clast_bin): New.
18231         (gcc_type_for_clast_expr): Split up into several functions.
18232         (gcc_type_for_clast_eq): Rewritten.
18233         (compute_bounds_for_level): New.
18234         (compute_type_for_level_1): New.
18235         (compute_type_for_level): New.
18236         (gcc_type_for_cloog_iv): Removed.
18237         (gcc_type_for_iv_of_clast_loop): Rewritten.
18238         (graphite_create_new_loop): Compute the lower and upper bound types
18239         with gcc_type_for_clast_expr.
18240         (graphite_create_new_loop_guard): Same.
18241         (find_cloog_iv_in_expr): Removed.
18242         (compute_cloog_iv_types_1): Removed.
18243         (compute_cloog_iv_types): Removed.
18244         (gloog): Do not call compute_cloog_iv_types.
18245         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
18246         GBB_CLOOG_IV_TYPES.
18247         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
18248         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
18249         (GBB_CLOOG_IV_TYPES): Removed.
18250
18251 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18252
18253         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
18254         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
18255         (detect_commutative_reduction): Same.
18256
18257 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18258
18259         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
18260         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
18261         argument.
18262         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
18263         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
18264         (rewrite_commutative_reductions_out_of_ssa): Same.
18265         * passes.c (execute_function_todo): Call verify_ssa for every pass
18266         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
18267         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
18268         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
18269         with an extra argument.
18270         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
18271         verify_ssa only when the extra argument is true.
18272         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
18273         with an extra argument.
18274         (tree_transform_and_unroll_loop): Same.
18275
18276 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18277
18278         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
18279         for all the passes of the LNO having LOOP_CLOSED_SSA.
18280         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
18281         * tree-loop-distribution.c (pass_loop_distribution): Same.
18282         * tree-pass.h (TODO_verify_loops): Removed.
18283         * tree-ssa-loop.c (pass_tree_loop_init): Same.
18284         (pass_lim): Same.
18285         (pass_tree_unswitch): Same.
18286         (pass_predcom): Same.
18287         (pass_vectorize): Same.
18288         (pass_linear_transform): Same.
18289         (pass_graphite_transforms): Same.
18290         (pass_iv_canon): Same.
18291         (pass_complete_unroll): Same.
18292         (pass_complete_unrolli): Same.
18293         (pass_parallelize_loops): Same.
18294         (pass_loop_prefetch): Same.
18295         (pass_iv_optimize): Same.
18296
18297 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
18298
18299         PR middle-end/32824
18300         * passes.c (init_optimization_passes): Move pass_lim before
18301         pass_copy_prop and pass_dce_loop.
18302
18303 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
18304
18305         PR target/43667
18306         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
18307         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
18308         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
18309         MULTI_* defines for 4 argument vpermil2p* builtins.
18310
18311 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
18312
18313         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
18314         * config/i386/i386.c (x86_maybe_negate_const_int): New.
18315         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
18316         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
18317         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
18318         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
18319         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
18320         Use x86_maybe_negate_const_int to output insn mnemonic.
18321         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
18322         check from instruction predicate.  Update comments.
18323         * config/i386/sync.md (sync_add<mode>): Use
18324         x86_maybe_negate_const_int to output insn mnemonic.
18325
18326 2010-04-06  Jan Hubicka  <jh@suse.cz>
18327
18328         PR tree-optimization/42906
18329         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
18330         IGNORE_SELF argument.  Set visited_control_parents for fully
18331         processed BBs.
18332         (find_obviously_necessary_stmts): Update call of
18333         mark_control_dependent_edges_necessary.
18334         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
18335
18336 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
18337
18338         * config/i386/i386.md: Remove comment about 'e' and 'E'
18339         operand modifier.
18340
18341 2010-04-06  Richard Guenther  <rguenther@suse.de>
18342
18343         PR tree-optimization/43627
18344         * tree-vrp.c (extract_range_from_unary_expr): Widenings
18345         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
18346         not varying.
18347
18348 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
18349
18350         * BASE-VER: Change to 4.6.0.
18351
18352         PR target/43638
18353         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
18354         handling.
18355
18356 2010-04-06  Richard Guenther  <rguenther@suse.de>
18357
18358         PR middle-end/43661
18359         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
18360
18361 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18362
18363         * doc/invoke.texi (Optimize Options): Document that LTO
18364         won't remove object access purely due to incompatible
18365         declarations.
18366
18367 2010-04-04  Matthias Klose  <doko@ubuntu.com>
18368
18369         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
18370         Initialize variable.
18371
18372 2010-04-03  Richard Guenther  <rguenther@suse.de>
18373
18374         PR middle-end/42509
18375         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
18376         require a non-NULL MEM_OFFSET.
18377
18378 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
18379
18380         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
18381         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
18382         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
18383         config/alpha/predicates.md, config/arm/arm.md,
18384         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
18385         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
18386         config/darwin9.h, config/darwin.c, config/darwin.h,
18387         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
18388         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
18389         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
18390         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
18391         config/mips/mips.md, config/mn10300/mn10300.c,
18392         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
18393         config/rs6000/aix.h, config/rs6000/dfp.md,
18394         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
18395         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
18396         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
18397         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
18398         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
18399         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
18400         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
18401         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
18402         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
18403         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
18404         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
18405         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
18406         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
18407         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
18408         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
18409         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
18410         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
18411         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
18412         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
18413         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
18414         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
18415         opt-functions.awk, opth-gen.awk, params.def, passes.c,
18416         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
18417         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
18418         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
18419         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
18420         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
18421         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
18422         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
18423         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
18424         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
18425         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
18426         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
18427         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
18428         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
18429         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
18430
18431 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18432
18433         PR other/43620
18434         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
18435         * aclocal.m4: Regenerate.
18436
18437 2010-04-02  Richard Guenther  <rguenther@suse.de>
18438
18439         PR tree-optimization/43629
18440         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
18441         if we have seen a constant value.
18442
18443 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
18444
18445         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
18446
18447 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
18448
18449         PR target/43469
18450         * arm.c (legitimize_tls_address): Adjust call to
18451         gen_tls_load_dot_plus_four.
18452         (arm_note_pic_base): New function.
18453         (arm_cannot_copy_insn_p): Use it.
18454         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
18455         constraint.
18456
18457 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18458
18459         PR bootstrap/43531
18460
18461         Revert:
18462         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18463
18464         * Makefile.in ($(out_object_file)): Depend on
18465         gt-$(basename $(notdir $(out_file))).h.
18466
18467 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
18468
18469         * config.gcc (lm32-*-rtems*): Add t-lm32.
18470
18471 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
18472
18473         * config.gcc: Add lm32-*-rtems*.
18474         * config/lm32/rtems.h: New file.
18475
18476 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
18477
18478         PR target/42609
18479         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
18480
18481 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
18482
18483         * dwarf2out.c (output_compilation_unit_header): For
18484         -gdwarf-4 use version 4 instead of version 3.
18485         (output_line_info): For version 4 and above emit additional
18486         maximum ops per insn header field.
18487         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
18488
18489         * dwarf2out.c (is_c_family, is_java): Remove.
18490         (lower_bound_default): New function.
18491         (add_bound_info, gen_descr_array_type_die): Use it.
18492
18493 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
18494
18495         PR debug/43325
18496         * dwarf2out.c (gen_variable_die): Allow debug info for variable
18497         re-declaration when it happens in a function.
18498
18499 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
18500
18501         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
18502         (cgraph_remove_function_insertion_hook): Same.
18503         (cgraph_call_function_insertion_hooks): Same.
18504
18505 2010-04-01  Richard Guenther  <rguenther@suse.de>
18506
18507         PR middle-end/43614
18508         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
18509         and TREE_THIS_VOLATILE.
18510         (copy_ref_info): Likewise.
18511         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
18512         * tree.c (build6_stat): Ignore side-effects of all but arg5
18513         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
18514         TARGET_MEM_REF.
18515
18516 2010-04-01  Richard Guenther  <rguenther@suse.de>
18517
18518         PR tree-optimization/43607
18519         * ipa-type-escape.c (check_call): Do not access non-existing
18520         arguments.
18521
18522 2010-04-01  Richard Guenther  <rguenther@suse.de>
18523
18524         PR middle-end/43602
18525         Revert
18526         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
18527                     Jack Howarth <howarth@bromo.med.uc.edu>
18528
18529         * tree-profile.c (tree_init_ic_make_global_vars): Make static
18530         variables TLS.
18531
18532 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18533
18534         * doc/install.texi (Prerequisites): Document libelf usability on
18535         IRIX 5/6 and Solaris 2.
18536         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
18537         Update GNU as, GNU ld requirements.
18538         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
18539         Document Sun Studio compiler download.
18540         Update and simplify as, ld recommendations.
18541         (Specific, *-*-solaris2.7): Note obsoletion, removal.
18542
18543 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18544
18545         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
18546         with_tune_32 to pentium4.
18547
18548 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
18549
18550         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
18551
18552 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18553
18554         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
18555         obsoletion, removal.
18556         Update IDO URL.
18557         Document GNU as requirement.
18558         Update configure requirements.
18559         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
18560         Recomment IRIX 6.5.18+.
18561         Document IDF/IDL requirement.
18562         Document GNU as requirement.
18563         Document GNU ld bootstrap failure.
18564         Remove freeware.sgi.com reference.
18565
18566 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18567
18568         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
18569         UNIX V4.0, V5.0 obsoletion, removal.
18570         Remove --with-gc=simple reference.
18571         Update VM requirements during bootstrap.
18572         Remove -oldas bootstrap description.
18573         Update binutils reference.
18574         Remove comparison failure note.
18575
18576 2010-03-31  Richard Guenther  <rguenther@suse.de>
18577             Zdenek Dvorak  <ook@ucw.cz>
18578             Sebastian Pop  <sebastian.pop@amd.com>
18579
18580         PR middle-end/43464
18581         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
18582         with multiple arguments.
18583         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
18584
18585 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18586
18587         * graphite-dependences.c (print_pddr): Call print_pdr with an
18588         extra argument.
18589         * graphite-poly.c (debug_pdr): Add an extra argument for the
18590         verbosity level.
18591         (print_pdr): Same.
18592         (print_pbb_domain): Same.
18593         (print_pbb): Same.
18594         (print_scop_context): Same.
18595         (print_scop): Same.
18596         (print_cloog): Same.
18597         (debug_pbb_domain): Same.
18598         (debug_pbb): Same.
18599         (print_pdrs): Same.
18600         (debug_pdrs): Same.
18601         (debug_scop_context): Same.
18602         (debug_scop): Same.
18603         (debug_cloog): Same.
18604         (print_scop_params): Same.
18605         (debug_scop_params): Same.
18606         (print_iteration_domain): Same.
18607         (print_iteration_domains): Same.
18608         (debug_iteration_domain): Same.
18609         (debug_iteration_domains): Same.
18610         (print_scattering_function): Same.
18611         (print_scattering_functions): Same.
18612         (debug_scattering_function): Same.
18613         (debug_scattering_functions): Same.
18614         * graphite-poly.h (debug_pdr): Update declaration.
18615         (print_pdr): Same.
18616         (print_pbb_domain): Same.
18617         (print_pbb): Same.
18618         (print_scop_context): Same.
18619         (print_scop): Same.
18620         (print_cloog): Same.
18621         (debug_pbb_domain): Same.
18622         (debug_pbb): Same.
18623         (print_pdrs): Same.
18624         (debug_pdrs): Same.
18625         (debug_scop_context): Same.
18626         (debug_scop): Same.
18627         (debug_cloog): Same.
18628         (print_scop_params): Same.
18629         (debug_scop_params): Same.
18630         (print_iteration_domain): Same.
18631         (print_iteration_domains): Same.
18632         (debug_iteration_domain): Same.
18633         (debug_iteration_domains): Same.
18634         (print_scattering_function): Same.
18635         (print_scattering_functions): Same.
18636         (debug_scattering_function): Same.
18637         (debug_scattering_functions): Same.
18638
18639 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18640
18641         * graphite-poly.c (print_scattering_function_1): New.
18642         (print_scattering_function): Call it.
18643         (print_scop_params): Remove spaces at the end of lines.
18644         (print_cloog): New.
18645         (debug_cloog): New.
18646         * graphite-poly.h (print_cloog): Declared.
18647         (debug_cloog): Declared.
18648
18649 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18650
18651         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
18652         in loop->header.
18653         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
18654         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
18655         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
18656         to switch between adding the IV bump in loop->latch or in loop->header.
18657
18658 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18659
18660         * graphite-poly.c (print_scattering_function): Pretty print following
18661         the scoplib format.
18662         (print_pdr): Same.
18663         (print_pbb_domain): Same.
18664         (dump_gbb_cases): Same.
18665         (dump_gbb_conditions): Same.
18666         (print_pdrs): Same.
18667         (print_pbb): Same.
18668         (print_scop_params): Same.
18669         (print_scop_context): Same.
18670         (print_scop): Same.
18671         (print_pbb_body): New.
18672         (lst_indent_to): New.
18673         (print_lst): Start new lines with a #.
18674         * graphite-poly.h (pbb_bb): New.
18675         (pbb_index): Use pbb_bb.
18676         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
18677         disjuncts.
18678         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
18679
18680 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
18681
18682         * dwarf2out.c (size_of_die): For -gdwarf-4 use
18683         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
18684         and 0 instead of 1 for dw_val_class_flag.
18685         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
18686         dw_val_class_range_list, dw_val_class_loc_list,
18687         dw_val_class_lineptr and dw_val_class_macptr, use
18688         DW_FORM_flag_present for dw_val_class_flag and
18689         DW_FORM_exprloc for dw_val_class_loc.
18690         (output_die): For -gdwarf-4 print dw_val_class_loc
18691         size as uleb128 instead of 1 or 2 bytes and don't print
18692         anything for dw_val_class_flag.
18693
18694         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
18695         instead of cselib_lookup following by tweaking locs->setting_insn.
18696
18697         PR bootstrap/43596
18698         * cselib.c (cselib_process_insn): Clear cselib_current_insn
18699         even before returning from label, setjmp call or volatile asm
18700         handling.
18701
18702 2010-03-31  Richard Guenther  <rguenther@suse.de>
18703
18704         PR middle-end/43600
18705         * cgraphunit.c (cgraph_output_in_order): Do not allocate
18706         temporary data on stack.
18707
18708 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18709
18710         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
18711         (PUSHSECTION_ASM_OP): Remove.
18712         (POPSECTION_ASM_OP): Remove.
18713         (PUSHSECTION_FORMAT): Remove.
18714         * config/sol2.h (PUSHSECTION_FORMAT): Define.
18715         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
18716         * config/sol2.c (solaris_output_init_fini): Use it.
18717
18718 2010-03-31  Jie Zhang  <jie@codesourcery.com>
18719
18720         PR 43574
18721         * opt-functions.awk (var_type_struct): Use signed char type
18722         for simple variables.
18723
18724 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18725
18726         * config/sol2.c: Include output.h.
18727         (solaris_assemble_visibility): New function.
18728         * config/t-sol2 (sol2.o): Add output.h dependency.
18729         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
18730         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
18731         Redefine.
18732
18733 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
18734
18735         PR target/43580
18736         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
18737         V2SImode or XFmode on PRE_DEC.
18738
18739         PR debug/43557
18740         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
18741         BLKmode.
18742
18743 2010-03-31  Jie Zhang  <jie@codesourcery.com>
18744
18745         PR 43562
18746         * reload.h (caller_save_initialized_p): Declare.
18747         * toplev.c (backend_init_target): Don't call
18748         init_caller_save but set caller_save_initialized_p to false.
18749         * caller-save.c (caller_save_initialized_p): Define.
18750         (init_caller_save): Check caller_save_initialized_p.
18751         * ira.c (ira): Call init_caller_save if flag_caller_saves.
18752
18753 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18754
18755         PR target/39048
18756         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
18757         and soft-fp/t-softfp to tmake_file.
18758         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
18759         (LIBGCC2_TF_CEXT): Define.
18760         (TF_SIZE): Define.
18761
18762 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
18763
18764         PR debug/42977
18765         * cselib.c (n_useless_values): Document handling of debug locs.
18766         (n_useless_debug_values, n_debug_values): New variables.
18767         (new_elt_loc_list): Don't add to debug values, keep count.
18768         (promote_debug_loc): New.
18769         (cselib_reset_table): Zero new variables.
18770         (entry_and_rtx_equal_p): Promote debug locs.
18771         (discard_useless_locs): Increment n_useless_debug_values for
18772         debug values.
18773         (remove_useless_values): Adjust n_useless_values and n_debug_values
18774         with n_useless_debug_values.
18775         (add_mem_for_addr): Promote debug locs.
18776         (cselib_lookup_mem): Likewise.
18777         (cselib_lookup_addr): Renamed to...
18778         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
18779         (cselib_log_lookup): ... this.  Turn into...
18780         (cselib_lookup_addr): ... new wrapper.
18781         (cselib_lookup_from_insn): New.
18782         (cselib_invalidate_regno): Increment n_useless_debug_values for
18783         debug values.
18784         (cselib_invalidate_mem): Likewise.
18785         (cselib_process_insn): Take n_deleted and n_debug_values into
18786         account to guard remove_useless_value call.
18787         (cselib_finish): Zero n_useless_debug_values.
18788         * cselib.h (cselib_lookup_from_insn): Declare.
18789         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
18790         (sched_analyze_2): Likewise.
18791
18792 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
18793
18794         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
18795         functions.
18796         (adjust_mems): Replace narrowing SUBREG of expression containing
18797         just PLUS, MINUS, MULT and ASHIFT of registers and constants
18798         with operations in the narrower mode.
18799
18800         PR debug/43593
18801         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
18802         regs_invalidated_by_call instead all call_used_reg_set registers.
18803
18804 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
18805
18806         PR middle-end/43430
18807         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
18808         pointer comparisons with types_compatible_p.
18809         * tree-vect-stmts.c (vectorizable_call): Same.
18810         (vectorizable_condition): Same.
18811
18812 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18813
18814         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
18815         stack check if the mask would be zero.
18816
18817 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
18818             Jack Howarth <howarth@bromo.med.uc.edu>
18819
18820         * tree-profile.c (tree_init_ic_make_global_vars): Make static
18821         variables TLS.
18822
18823 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
18824
18825         PR other/25232
18826         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
18827         and __unordtf2.
18828         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
18829         Include ___unordxf2 and ___unordtf2.
18830         * config/i386/libgcc-glibc.ver: Do not define inheritance from
18831         GCC_4.4.0 here.
18832
18833 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
18834
18835         * config/lm32/t-lm32: New file.
18836         * config.gcc: Use the above file when targetting lm32.
18837
18838 2010-03-28  Duncan Sands  <baldrick@free.fr>
18839
18840         * Makefile.in (PLUGIN_HEADERS): Add except.h.
18841
18842 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
18843
18844         PR middle-end/43431
18845         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
18846         Improve vectorization cost model diagnostic.
18847
18848 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
18849
18850         PR middle-end/43436
18851         * tree-vect-data-refs.c (vect_analyze_data_refs): When
18852         compute_data_dependences_for_loop returns false, early exit
18853         and output an extra diagnostic for the failed data reference
18854         analysis.
18855
18856 2010-03-29  Richard Guenther  <rguenther@suse.de>
18857
18858         PR tree-optimization/43560
18859         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
18860         (can_sm_ref_p): Treat stores to readonly locations as trapping.
18861
18862 2010-03-29  Jie Zhang  <jie@codesourcery.com>
18863
18864         PR 43564
18865         * toplev.c (process_options): Set optimization_default_node
18866         and optimization_current_node.
18867         * opts.c (decode_options): Don't set optimization_default_node
18868         and optimization_current_node.
18869
18870 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
18871
18872         * config/rtems.h: Abandon -qrtems_debug.
18873
18874 2010-03-28  Jan Hubicka  <jh@suse.cz>
18875
18876         PR tree-optimization/43505
18877         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
18878         map should not be copied.
18879
18880 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18881
18882         PR middle-end/41674
18883         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
18884         cdtors, set DECL_PRESERVE_P.
18885         * ipa.c (cgraph_externally_visible_p): Return true if declaration
18886         should be preseved.
18887
18888 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
18889
18890         PR tree-optimization/43528
18891         * stor-layout.c (place_field): Check that constant fits into
18892         unsigned HWI when skipping calculation of MS bitfield layout.
18893
18894 2010-03-27  Jan Hubicka  <jh@suse.cz>
18895
18896         PR middle-end/43391
18897         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
18898         notice_global_symbol work.
18899
18900 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
18901
18902         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
18903         instead of dwarf2out_decl.
18904         (struct var_loc_node): Remove section_label field.
18905         (dwarf2out_function_decl): New function.
18906         (dwarf2out_var_location): Don't set section_label field.
18907         (dwarf2out_begin_function): Don't empty decl_loc_table here.
18908
18909 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
18910
18911         PR tree-optimization/43544
18912         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
18913         First argument for builtin vectorized function hook is now a
18914         tree to be able to distinguish between machine specific and
18915         standard builtins.
18916         * targhooks.c (default_builtin_vectorized_function): Ditto.
18917         * targhooks.h (default_builtin_vectorized_function): Ditto.
18918         * target.h (struct gcc_target): Ditto.
18919         * tree-vect-stmts.c (vectorizable_function): Ditto.
18920         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
18921         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
18922         Ditto.
18923
18924 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
18925
18926         PR c/43381
18927         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
18928         nested binding iff it is a FUNCTION_DECL.
18929         (store_parm_decls_newstyle): Pass nested=true to bind for
18930         FUNCTION_DECLs amongst parameters.
18931
18932 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
18933
18934         * var-tracking.c (vt_expand_loc_callback): Don't run
18935         cselib_expand_value_rtx_cb in dummy mode if
18936         cselib_dummy_expand_value_rtx_cb returned false.
18937
18938         * var-tracking.c (emit_note_insn_var_location): For one part
18939         notes with offset 0, don't add EXPR_LIST around the location.
18940         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
18941         add_location_or_const_value_attribute): Adjust for that change.
18942
18943         PR debug/43540
18944         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
18945         into first operand and location into second.
18946         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
18947         dw_cfi_oprnd_loc for DW_CFA_expression.
18948         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
18949         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
18950         assume first argument is regnum and second argument is location.
18951
18952 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
18953
18954         PR target/42113
18955         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
18956         of scratch register to DImode.  Split to DImode comparison operator.
18957         Use SImode subreg of scratch register in the multiplication.
18958         (*cmp_sadd_sidi): Ditto.
18959         (*cmp_ssub_si): Ditto.
18960         (*cmp_ssub_sidi): Ditto.
18961
18962 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
18963
18964         PR target/43524
18965         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
18966         Remove invalid assert and wrong comment.
18967
18968 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
18969
18970         PR debug/43516
18971         * flags.h (final_insns_dump_p): New extern.
18972         * final.c (final_insns_dump_p): New variable.
18973         (rest_of_clean_state): Set it before -fdump-final-insns=
18974         dumping, clear afterwards.
18975         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
18976         MEM_ALIAS_SET on MEMs.
18977
18978 2010-03-26  David S. Miller  <davem@davemloft.net>
18979
18980         * configure.ac: Fix sparc GOTDATA_OP bug check.
18981         * configure: Rebuild.
18982
18983 2010-03-26  Alan Modra  <amodra@gmail.com>
18984
18985         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
18986
18987 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18988
18989         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
18990         TLS_SECTION_ASM_FLAG.
18991
18992 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
18993
18994         PR bootstrap/43511
18995         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
18996         Clear first_function_block_is_cold.
18997
18998         PR c/43385
18999         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
19000         argument if the argument is truth_value_p.
19001
19002 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
19003
19004         * config/rs6000/constraints.md: Update copyright year for my changes.
19005
19006         PR target/43484
19007         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
19008         used in reg+reg addressing, swap registers.
19009
19010 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
19011
19012         PR debug/43293
19013         * target.h (struct gcc_target): Add code_end hook.
19014         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
19015         if not yet defined.
19016         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
19017         * toplev.c (compile_file): Call targetm.asm_out.code_end
19018         hook before unwind info/debug info output.
19019         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
19020         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
19021         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
19022         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
19023         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
19024         * config/i386/i386.c (ix86_file_end): Renamed to...
19025         (ix86_code_end): ... this.  Make static.  Don't call
19026         file_end_indicate_exec_stack.  Emit unwind info using
19027         final_start_function/final_end_function.
19028         (darwin_x86_file_end): Remove.
19029         (TARGET_ASM_CODE_END): Define.
19030         * config/i386/i386.h (TARGET_ASM_FILE_END,
19031         NEED_INDICATE_EXEC_STACK): Don't define.
19032         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
19033         (TARGET_ASM_FILE_END): Define to darwin_file_end.
19034         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
19035         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
19036
19037         PR target/43498
19038         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
19039         at the beginning and final_end_function at the end.
19040         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
19041
19042 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19043
19044         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
19045         and Sun as TLS syntax.
19046         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
19047         * configure: Regenerate.
19048         * config.in: Regenerate.
19049         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
19050         (default_elf_asm_named_section): Use it.
19051         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
19052         (i386_output_dwarf_dtprel): Likewise.
19053         (output_addr_const_extra): Likewise.
19054         (output_pic_addr_const): Lowercase @GOTTPOFF.
19055         (output_addr_const_extra): Likewise.
19056         (output_pic_addr_const): Lowercase @GOTNTPOFF.
19057         (output_addr_const_extra): Likewise.
19058         (output_pic_addr_const): Lowercase @INDNTPOFF.
19059         (output_addr_const_extra): Likewise.
19060         (output_pic_addr_const): Lowercase @NTPOFF.
19061         (output_addr_const_extra): Likewise.
19062         (output_pic_addr_const): Lowercase @TPOFF.
19063         (output_addr_const_extra): Likewise.
19064         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
19065         (*tls_global_dynamic_64): Likewise.
19066         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
19067         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
19068
19069         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
19070         (ASM_OUTPUT_TLS_COMMON): Use it.
19071         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
19072
19073         PR target/38118
19074         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
19075         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
19076         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
19077         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
19078         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
19079         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
19080
19081 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19082
19083         * config/i386/i386.c (override_options): Don't accept
19084         -mtls-dialect=sun any longer.
19085         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
19086         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
19087         (*tls_local_dynamic_base_32_sun): Likewise.
19088         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
19089
19090 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
19091
19092         PR debug/43508
19093         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
19094         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
19095
19096         PR debug/43479
19097         * ira.c (adjust_cleared_regs): New function.
19098         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
19099
19100         PR debug/19192
19101         PR debug/43479
19102         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
19103         from gimple_block.
19104         * expr.c (expand_expr_real): Restore previous
19105         curr_insn_source_location and curr_insn_block after
19106         expand_expr_real_1 call.
19107         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
19108         instead of expand_expr_real_1.
19109
19110 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
19111
19112         PR rtl-optimization/43413
19113         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
19114         hard regs too.
19115
19116 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
19117
19118         PR target/43348
19119         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
19120         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
19121
19122 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
19123
19124         * config/i386/i386.c (ix86_target_string): Add -mfma.
19125         Fix a typo in comment.
19126
19127 2010-03-22  Mike Stump  <mikestump@comcast.net>
19128
19129         PR target/23071
19130         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
19131         Don't overly align based upon packed packed fields.
19132
19133 2010-03-22  Jason Merrill  <jason@redhat.com>
19134
19135         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
19136         Use () rather than [], and move before the element type.
19137
19138 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19139
19140         * doc/configfiles.texi (Configuration Files): Removed
19141         fixinc/Makefile*, intl/Makefile.*.
19142         * doc/makefile.texi: Fixed markup. Abstract from version
19143         control system used.
19144         (Makefile): Removed obsolete gcc/java/parse.y example.
19145         * doc/sourcebuild.texi: Likewise.
19146         (Top Level): Added config, gnattools, libdecnumber, libgcc,
19147         libgomp, libssp.  Removed fastjar.
19148         (Miscellaneous Docs): Clarify location.
19149         Added COPYING3, COPYING3.LIB.
19150         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
19151
19152 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19153
19154         PR target/38085
19155         * config/i386/i386.c (x86_function_profiler)
19156         [!NO_PROFILE_COUNTERS]: Fix typo.
19157         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
19158         instead of callq.
19159
19160 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
19161             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19162
19163         * doc/sourcebuild.texi (Test Directives): Split into six
19164         subsections, with most of the current text in new subsections
19165         Directives, Selectors, and Final Actions.
19166         (Directives): Split list of test directives into multiple
19167         subsubsections.
19168         (Selectors): Describe use and syntax of selectors.
19169         (Effective-Target Keywords): Describe all existing keywords.
19170         (Add Options): Describe features for dg-add-options.
19171         (Require Support): Describe variants of dg-require-support.
19172         (Final Actions): Describe commands to use in dg-final.
19173
19174 2010-03-22  Michael Matz  <matz@suse.de>
19175
19176         PR middle-end/43475
19177         * recog.c (validate_replace_rtx_group): Replace also in
19178         REG_EQUAL and REG_EQUIV notes.
19179
19180 2010-03-22  Richard Guenther  <rguenther@suse.de>
19181
19182         PR tree-optimization/43390
19183         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
19184         sure vector extracts are type correct.
19185
19186 2010-03-22  Richard Guenther  <rguenther@suse.de>
19187
19188         PR middle-end/40106
19189         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
19190         x * sqrt (x) even when optimizing for size if the target
19191         has native support for sqrt.
19192
19193 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
19194
19195         * varasm.c (make_decl_rtl_for_debug): Also clear
19196         flag_mudflap for the duration of make_decl_rtl call.
19197
19198         PR debug/43443
19199         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
19200         locs from preserved VALUEs.
19201
19202 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19203
19204         PR middle-end/42718
19205         * pa.md (movmemsi): Set align to one if zero.
19206         (movmemdi): Likewise.
19207
19208 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
19209
19210         PR target/42321
19211         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
19212         with their corresponding prologue pushes.
19213
19214 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
19215
19216         PR target/43156
19217         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
19218         at the begining or end.
19219         (spu_expand_epilogue): Likewise.
19220
19221 2010-03-20  Richard Guenther  <rguenther@suse.de>
19222
19223         PR rtl-optimization/43438
19224         * combine.c (make_extraction): Properly zero-/sign-extend an
19225         extraction of the low part of a CONST_INT.  Also handle
19226         CONST_DOUBLE.
19227
19228 2010-03-19  Mike Stump  <mikestump@comcast.net>
19229
19230         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
19231         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
19232         (override_options): Use SUBTARGET32_DEFAULT_CPU.
19233
19234 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
19235
19236         PR c/43211
19237         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
19238         an error.
19239
19240 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
19241
19242         PR rtl-optimization/42258
19243         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
19244         use that may match DEF.
19245
19246         PR target/40697
19247         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
19248         the cost of loading the constant rather than assuming
19249         COSTS_N_INSNS (1).
19250         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
19251         outer code is AND, do the same tests as the andsi3 expander and
19252         return COSTS_N_INSNS (1) if and is cheap.
19253
19254         * optabs.c (avoid_expensive_constant): Fix formatting.
19255
19256 2010-03-19  Michael Matz  <matz@suse.de>
19257
19258         PR c++/43116
19259         * attribs.c (decl_attributes): When rebuilding a function pointer
19260         type use the same qualifiers as the original pointer type.
19261
19262 2010-03-19  Martin Jambor  <mjambor@suse.cz>
19263
19264         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
19265         and is_gimple_ip_invariant_address.
19266
19267 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19268
19269         Revert
19270         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19271
19272         * config/arm/arm.c (arm_override_options): Turn off
19273         flag_dwarf2_cfi_asm for AAPCS variants.
19274
19275 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19276
19277         PR target/43399
19278         * config/arm/arm.c (emit_multi_reg_push): Update comments.
19279         Use PRE_MODIFY instead of PRE_DEC.
19280         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
19281         (vfp_emit_fstmd): Likewise.
19282
19283 2010-03-19  Michael Matz  <matz@suse.de>
19284
19285         PR target/43305
19286         * builtins.c (expand_builtin_interclass_mathfn,
19287         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
19288         if that fails.
19289
19290 2010-03-19  Richard Guenther  <rguenther@suse.de>
19291
19292         PR tree-optimization/43415
19293         * tree-ssa-pre.c (phi_translate): Split out worker to ...
19294         (phi_translate_1): ... this.
19295         (phi_translate): Move all caching here.  Cache all NARY
19296         and REFERENCE translations.
19297
19298 2010-03-19  David S. Miller  <davem@davemloft.net>
19299
19300         With help from Eric Botcazou.
19301         * config/sparc/sparc.c: Include dwarf2out.h.
19302         (emit_pic_helper): Delete.
19303         (pic_helper_symbol_name): Delete.
19304         (pic_helper_emitted_p): Delete.
19305         (pic_helper_needed): New.
19306         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
19307         (get_pc_thunk_name): New.
19308         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
19309         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
19310         Set pic_helper_needed to true.  Don't call emit_pic_helper.
19311         (sparc_expand_prologue): Update load_pic_register call.
19312         (sparc_output_mi_thunk): Likewise.
19313         (sparc_file_end): Emit a hidden comdat symbol for the PIC
19314         thunk if possible.  Output CFI information as needed.
19315
19316 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
19317             Jack Howarth <howarth@bromo.med.uc.edu>
19318
19319         PR target/36399
19320         * config/i386/i386.h: Fix ABI on darwin x86-32.
19321
19322 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
19323
19324         * tree.h: Declare make_decl_rtl_for_debug.
19325         * varasm.c (make_decl_rtl_for_debug): New.
19326         * dwarf2out.c (rtl_for_decl_location): Call it.
19327         * cfgexpand.c (expand_debug_expr): Call it.
19328
19329 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
19330
19331         PR bootstrap/43399
19332         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
19333         mem_mode.
19334
19335         PR bootstrap/43403
19336         * var-tracking.c (vt_init_cfa_base): Do nothing if
19337         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
19338
19339 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
19340
19341         PR debug/42873
19342         * var-tracking.c (canonicalize_vars_star): New.
19343         (dataflow_post_merge_adjust): Use it.
19344
19345 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
19346
19347         PR debug/43058
19348         * var-tracking.c (non_suitable_const): New function.
19349         (add_uses): For DEBUG_INSNs with constants, don't record any
19350         value, instead just the constant value itself.
19351         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
19352         is not VAR_LOC_UNKNOWN_P, set var to the constant.
19353         (emit_notes_in_bb): Likewise.
19354         (emit_note_insn_var_location): For onepart variables if
19355         cur_loc is a VOIDmode constant, use DECL_MODE.
19356
19357 2010-03-18  Martin Jambor  <mjambor@suse.cz>
19358
19359         PR middle-end/42450
19360         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
19361         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
19362         all non-clones.  Moved call redirection...
19363         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
19364         (cgraph_materialize_all_clones): Dispose of all
19365         combined_args_to_skip bitmaps.
19366         (verify_cgraph_node): Do not check for edges pointing to wrong
19367         nodes in inline clones.
19368         * tree-inline.c (copy_bb): Call
19369         cgraph_redirect_edge_call_stmt_to_callee.
19370         * ipa.c (cgraph_remove_unreachable_nodes): Call
19371         cgraph_node_remove_callees even when there are used clones.
19372
19373 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
19374
19375         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
19376
19377 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
19378
19379         PR target/43383
19380         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
19381         for 32bit.
19382
19383 2010-03-18  Michael Matz  <matz@suse.de>
19384
19385         PR middle-end/43419
19386         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
19387         into sqrt(x) if we need to preserve signed zeros.
19388
19389 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
19390             Eric Botcazou  <ebotcazou@adacore.com>
19391
19392         PR rtl-optimization/43360
19393         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
19394         note if we don't know its invariant status.
19395
19396 2010-03-18  Michael Matz  <matz@suse.de>
19397
19398         PR tree-optimization/43402
19399         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
19400         PHI chains of ssa names registered for update.
19401
19402 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
19403
19404         PR target/42427
19405         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
19406         non-offsettable and pre_modify update addressing.
19407         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
19408         and "2" alternatives "#".
19409         (*movdd_softfloat32): Make all alternatives "#";
19410         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
19411         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
19412         (*movdf_softfloat32): Make all alternatives "#";
19413         (movdi): Use the new DIFD mode iterator to create a common splitter
19414         for movdi, movdf and movdd patterns.
19415
19416 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
19417
19418         * common.opt (dumpdir): Remove redundant tab.
19419
19420 2010-03-17  Martin Jambor  <mjambor@suse.cz>
19421
19422         PR tree-optimization/43347
19423         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
19424         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
19425
19426 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
19427
19428         PR rtl-optimization/42216
19429         * regrename.c (create_new_chain): New function, broken out from...
19430         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
19431         appending a use to an empty chain.
19432         (build_def_use): Remove previous changes that convert OP_INOUT to
19433         OP_OUT operands; instead detect the case where an OP_INOUT operand
19434         uses a previously untracked register and create an empty chain for it.
19435
19436 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19437
19438         * doc/extend.texi (Function Attributes): Rewrite unfinished
19439         sentence in ms_abi documentation.
19440
19441 2010-03-17  Alan Modra  <amodra@gmail.com>
19442
19443         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
19444         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
19445         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
19446         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
19447
19448 2010-03-16  Richard Henderson  <rth@redhat.com>
19449
19450         PR middle-end/43365
19451         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
19452         (lower_try_finally): Save and restore eh_seq around the expansion
19453         of the try-finally.
19454
19455 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
19456
19457         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
19458         statements before splitting block.
19459
19460 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19461
19462         * doc/sourcebuild.texi (Testsuites): Fix markup.
19463         Use pathnames relative to gcc/testsuite.
19464         (Test Directives): Move description of how timeout is determined.
19465         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
19466         (C Tests): Correct gcc.misc-tests directory.
19467         Framework tests now live in gcc.test-framework.
19468
19469 2010-03-16  Richard Guenther  <rguenther@suse.de>
19470
19471         PR middle-end/43379
19472         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
19473         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
19474
19475 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
19476             Alexandre Oliva  <aoliva@redhat.com>
19477
19478         PR tree-optimization/42917
19479         * lambda-code.c (remove_iv): Skip debug statements.
19480         (lambda_loopnest_to_gcc_loopnest): Likewise.
19481         (not_interesting_stmt): Debug statements are not interesting.
19482
19483 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
19484
19485         PR debug/43051
19486         PR debug/43092
19487         * cselib.c (cselib_preserve_constants,
19488         cfa_base_preserved_val): New static variables.
19489         (preserve_only_constants): New function.
19490         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
19491         clear its REG_VALUES.  If cselib_preserve_constants, don't
19492         empty the whole hash table, but preserve there VALUEs with constants,
19493         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
19494         (cselib_preserve_cfa_base_value): New function.
19495         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
19496         (cselib_init): Change argument to int bitfield.  Set
19497         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
19498         is in it.
19499         (cselib_finish): Clear cselib_preserve_constants and
19500         cfa_base_preserved_val.
19501         * cselib.h (enum cselib_record_what): New enum.
19502         (cselib_init): Change argument to int.
19503         (cselib_preserve_cfa_base_value): New prototype.
19504         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
19505         * dse.c (dse_step1): Likewise.
19506         * cfgcleanup.c (thread_jump): Likewise.
19507         * sched-deps.c (sched_analyze): Likewise.
19508         * gcse.c (local_cprop_pass): Likewise.
19509         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
19510         If FN is non-NULL, call the callback always and whenever it returns
19511         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
19512         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
19513         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
19514         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
19515         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
19516         * var-tracking.c: Include recog.h.
19517         (bb_stack_adjust_offset): Remove.
19518         (vt_stack_adjustments): Don't call it, instead just gather the
19519         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
19520         (adjust_stack_reference): Remove.
19521         (compute_cfa_pointer): New function.
19522         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
19523         (struct adjust_mem_data): New type.
19524         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
19525         functions.
19526         (get_address_mode): New function.
19527         (replace_expr_with_values): Use it.
19528         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
19529         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
19530         (adjust_sets): Remove.
19531         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
19532         Use get_address_mode.
19533         (get_adjusted_src): Remove.
19534         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
19535         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
19536         (add_with_sets): Don't call adjust_sets.
19537         (fp_setter, vt_init_cfa_base): New functions.
19538         (vt_initialize): Change return type to bool.  Move most of pool etc.
19539         initialization to the beginning of the function from end.  Pass
19540         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
19541         If !frame_pointer_needed, call vt_stack_adjustment before mos
19542         vector is filled, call vt_init_cfa_base if argp/framep has been
19543         eliminated to sp.  If frame_pointer_needed and argp/framep has
19544         been eliminated to hard frame pointer, set
19545         hard_frame_pointer_adjustment and call vt_init_cfa_base after
19546         encountering fp setter in the prologue.  For MO_ADJUST, call
19547         log_op_type before pusing the op into mos vector, not afterwards.
19548         Call adjust_insn before cselib_process_insn/add_with_sets,
19549         call cancel_changes (0) afterwards.
19550         (variable_tracking_main_1): Adjust for vt_initialize calling
19551         vt_stack_adjustments and returning whether it succeeded or not.
19552
19553 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
19554
19555         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
19556         debug statements.
19557
19558 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
19559
19560         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
19561         has been set.
19562         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
19563         drap_reg has not been set.
19564
19565 2010-03-15  Michael Matz  <matz@suse.de>
19566
19567         PR middle-end/43300
19568         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
19569         use it to expand block copies.
19570         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
19571         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
19572         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
19573
19574 2010-03-15  Richard Guenther  <rguenther@suse.de>
19575
19576         PR tree-optimization/43367
19577         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
19578         elimination check.
19579
19580 2010-03-15  Richard Guenther  <rguenther@suse.de>
19581
19582         PR tree-optimization/43317
19583         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
19584
19585 2010-03-15  Martin Jambor  <mjambor@suse.cz>
19586
19587         PR tree-optimization/43141
19588         * tree-sra.c (create_abstract_origin): New function.
19589         (modify_function): Call create_abstract_origin.
19590
19591 2010-03-15  Chris Demetriou  <cgd@google.com>
19592
19593         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
19594         wasn't copied.
19595
19596 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19597
19598         PR middle-end/43354
19599         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
19600         call insert_out_of_ssa_copy for default definitions.
19601
19602 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19603
19604         * graphite-clast-to-gimple.c (my_long_long): Defined.
19605         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
19606         * graphite-sese-to-poly.c (my_long_long): Defined.
19607         (scop_ivs_can_be_represented): Use it.
19608
19609 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19610
19611         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
19612         graphite-max-bbs-per-function, and loop-block-tile-size.
19613         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
19614         with "maximum".
19615         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
19616
19617 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19618
19619         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
19620         forward declaration.
19621         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
19622         (add_upper_bounds_from_estimated_nit): New.
19623         (build_loop_iteration_domains): Use it.
19624
19625 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19626
19627         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
19628
19629 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19630
19631         PR middle-end/43306
19632         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
19633         should be an INTEGER_CST.  Also handle CASE_CONVERT.
19634
19635 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19636
19637         * graphite.c (graphite_initialize): To bound the number of bbs per
19638         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
19639         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
19640         * doc/invoke.texi: Document it.
19641
19642 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19643
19644         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
19645         * graphite-sese-to-poly.h (build_poly_scop): Same.
19646
19647 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19648
19649         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
19650         the number of parameters in the scop.  Use as an upper bound
19651         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
19652         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
19653         * doc/invoke.texi: Document it.
19654
19655 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
19656
19657         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
19658         * doc/c-tree.texi: Remove.
19659         * doc/generic.texi: Merge c-tree.texi here.
19660         * doc/gccint.texi (Trees): Remove menu entry.
19661         (c-tree.texi): Remove @include.
19662         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
19663         * doc/languages.texi (Reading RTL): Ditto.
19664
19665 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
19666
19667         PR target/42869
19668         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
19669
19670 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
19671
19672         PR middle-end/42431
19673         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
19674         code added to work around reload clobbering CONST insns.
19675
19676 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
19677
19678         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
19679         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
19680         (cselib_preserve_only_values): Remove retain argument, don't
19681         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
19682         * cselib.h (cselib_preserve_only_values): Remove retain argument.
19683         * var-tracking.c (micro_operation): Move insn field before union.
19684         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
19685         (struct variable_tracking_info_def): Remove n_mos field, change
19686         mos into a vector of micro_operations.
19687         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
19688         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
19689         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
19690         changing into a vector.
19691         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
19692         come before all other uops generated by add_stores.
19693         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
19694         argument removal.
19695         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
19696         a vector.  Run just one pass over the bbs instead of separate counting
19697         and computation phase.
19698         (vt_finalize): Free VTI (bb)->mos vector instead of array.
19699
19700         PR debug/43329
19701         * tree-inline.c (remap_decls): Put old_var rather than origin_var
19702         into *nonlocalized_list vector.
19703         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
19704         even if origin is non-NULL.
19705         (gen_variable_die): Likewise.
19706         (process_scope_var): Don't change origin.
19707         (gen_decl_die): Likewise.
19708         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
19709         before adding new edges instead of after it, fix moving over
19710         debug stmts.
19711
19712 2010-03-11  David S. Miller  <davem@davemloft.net>
19713
19714         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
19715         of four.
19716         * configure: Rebuild.
19717
19718 2010-03-11  Martin Jambor  <mjambor@suse.cz>
19719
19720         PR tree-optimization/43257
19721         * tree.c (assign_assembler_name_if_neeeded): New function.
19722         (free_lang_data_in_cgraph): Assembler name assignment moved to the
19723         above new function.
19724         * tree.h (assign_assembler_name_if_neeeded): Declare.
19725         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
19726         the function if needed.
19727
19728 2010-03-11  Chris Demetriou  <cgd@google.com>
19729
19730         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
19731         include/stdint-gcc.h, and include/stdint.h world-readable.
19732
19733 2010-03-11  Richard Guenther  <rguenther@suse.de>
19734
19735         PR tree-optimization/43255
19736         * tree-vrp.c (process_assert_insertions_for): Do not insert
19737         asserts for trivial conditions.
19738
19739 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19740
19741         PR tree-optimization/43280
19742         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
19743         generation.  Move calculation of size out of the if branch.
19744         (find_bswap): Modify compare number generation.
19745
19746 2010-03-11  Richard Guenther  <rguenther@suse.de>
19747
19748         PR lto/43200
19749         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
19750         (input_gimple_stmt): Fixup handled component types during
19751         operand read.  Also fix up decls in ADDR_EXPRs.
19752
19753 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
19754
19755         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
19756         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
19757
19758 2010-03-10  Jan Hubicka  <jh@suse.cz>
19759
19760         PR c/43288
19761         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
19762         * varasm.c (get_variable_section): Don't do that here...
19763         (make_decl_rtl): ... and here.
19764         (do_assemble_alias): Produce decl RTL.
19765         (assemble_alias): Likewise.
19766
19767 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
19768
19769         PR debug/43290
19770         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
19771         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
19772         of fde->vdrap_reg.
19773         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
19774         (based_loc_descr): Only express drap or vdrap regno based expressions
19775         using DW_OP_fbreg when not optimizing.
19776         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
19777         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
19778         REG_CFA_SET_VDRAP note.
19779
19780 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
19781
19782         PR tree-optimization/43236
19783         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
19784         error in calculation of base address in reverse iteration case.
19785         (generate_builtin): Take number of latch executions if the statement
19786         is in the latch.
19787
19788 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
19789
19790         PR middle-end/42859
19791         * tree-eh.c: Include pointer-set.h.
19792         (lower_eh_dispatch): Filter out duplicate case labels and
19793         remove the unneeded edge when the label is unused.  Return
19794         true when some edges are removed.
19795         (execute_lower_eh_dispatch): When any lowering resulted in
19796         removing an edge, also delete unreachable blocks.
19797
19798 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
19799
19800         PR bootstrap/43287
19801         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
19802         UNSPEC_MACHOPIC_OFFSET.
19803
19804 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
19805
19806         PR target/43294
19807         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
19808         (m68k_delegitimize_address): New function.
19809
19810 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
19811
19812         PR debug/43299
19813         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
19814
19815         PR debug/43299
19816         * var-tracking.c (adjust_sets): New function.
19817         (count_with_sets, add_with_sets): Use it.
19818         (get_adjusted_src): New inline function.
19819         (add_stores): Use it.
19820
19821         PR debug/43304
19822         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
19823         call cselib_dummy_expand_value_rtx_cb instead of
19824         cselib_expand_value_rtx_cb.
19825
19826         PR debug/43293
19827         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
19828         * config/i386/i386.c: Include debug.h and dwarf2out.h.
19829         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
19830         and .cfi_endproc around the pic thunks.
19831         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
19832         all queued unwind info register saves are saved before the call.
19833         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
19834         considered as sp-=4 for unwind info and the pop as sp+=4 which
19835         also clobbers dest, but doesn't actually restore it.
19836
19837         PR debug/43290
19838         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
19839         RTX_FRAME_RELATED_P.
19840
19841 2010-03-09  Jie Zhang  <jie@codesourcery.com>
19842
19843         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
19844         whitespaces in output template.
19845
19846 2010-03-09  Jie Zhang  <jie@codesourcery.com>
19847
19848         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
19849         out array boundary.
19850
19851 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
19852
19853         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
19854         builtins.exp in a separate job.
19855
19856 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19857
19858         * graphite-sese-to-poly.c (add_param_constraints): Use
19859         lower_bound_in_type and upper_bound_in_type.
19860
19861 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19862
19863         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
19864         instead of unsigned_type_node.
19865
19866 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19867             Reza Yazdani  <reza.yazdani@amd.com>
19868
19869         PR middle-end/43065
19870         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
19871         on pointer type parameters.
19872
19873 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
19874
19875         PR middle-end/42644
19876         PR middle-end/42130
19877         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
19878         handle conversions from pointer to integers.
19879         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
19880         induction variable, to be able to work with code generated by CLooG.
19881         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
19882         (build_poly_scop): Bail out if we cannot codegen a loop.
19883
19884 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
19885
19886         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
19887         code generation with gloog_error.
19888
19889 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19890
19891         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
19892         Call fold_convert on all the returned values.
19893         (expand_scalar_variables_expr): Pass to
19894         expand_scalar_variables_ssa_name the type of the resulting expression.
19895
19896 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19897
19898         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
19899         ppl_min_for_le_pointset.
19900         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
19901         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
19902
19903 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19904
19905         * graphite-dependences.c (map_into_dep_poly): Removed.
19906         (dependence_polyhedron_1): Use combine_context_id_scat.
19907
19908 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19909
19910         * graphite-poly.h (struct poly_scattering): Add layout documentation.
19911         (struct poly_bb): Same.
19912         (combine_context_id_scat): New.
19913
19914 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19915
19916         PR middle-end/42326
19917         * sese.c (name_defined_in_loop_p): Return false for default
19918         definitions.
19919
19920 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19921
19922         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
19923         and clean up the logic.
19924
19925 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19926
19927         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
19928         early return.
19929
19930 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
19931
19932         * var-tracking.c (remove_cselib_value_chains): Define only for
19933         ENABLE_CHECKING.
19934         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
19935         delete_slot_part, emit_notes_for_differences_1): Don't call
19936         remove_cselib_value_chains here.
19937         (set_slot_part, emit_notes_for_differences_2): Don't call
19938         add_cselib_value_chains here.
19939         (preserved_values): New vector.
19940         (preserve_value): New function.
19941         (add_uses, add_stores, vt_add_function_parameters): Use it
19942         instead of cselib_preserve_value.
19943         (changed_values_stack): New vector.
19944         (check_changed_vars_0): New function.
19945         (check_changed_vars_1, check_changed_vars_2): Use it.
19946         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
19947         changed_values_stack VALUEs.
19948         (vt_emit_notes): For all preserved_values call
19949         add_cselib_value_chains.  If ENABLE_CHECKING call
19950         remove_cselib_value_chains before verifying value_chains is empty.
19951         Initialize and free changed_values_stack.
19952         (vt_initialize): Initialize preserved_values.
19953         (vt_finalize): Free preserved_values.
19954
19955 2010-03-08  Richard Guenther  <rguenther@suse.de>
19956
19957         PR tree-optimization/43269
19958         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
19959         region detection.
19960
19961 2010-03-08  Martin Jambor  <mjambor@suse.cz>
19962
19963         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
19964         (ipa_is_param_called): Removed.
19965         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
19966         (ipa_print_node_params): Do not print the called flag.
19967         (ipa_write_node_info): Do not stream the called flag.
19968         (ipa_read_node_info): Likewise.
19969
19970 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
19971
19972         PR debug/43176
19973         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
19974         * cselib.c (struct expand_value_data): Add dummy field.
19975         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
19976         dummy to false.
19977         (cselib_dummy_expand_value_rtx_cb): New function.
19978         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
19979         any rtl.
19980         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
19981         * var-tracking.c: Include pointer-set.h.
19982         (variable): Change n_var_parts to char from int.  Add
19983         cur_loc_changed and in_changed_variables fields.
19984         (variable_canonicalize): Remove.
19985         (shared_var_p): New inline function.
19986         (unshare_variable): Maintain cur_loc_changed and
19987         in_changed_variables fields.  If var was in changed_variables,
19988         replace it there with new_var.  Just copy cur_loc instead of
19989         resetting it to something else.
19990         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
19991         (dataflow_set_union): Don't call variable_canonicalize.
19992         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
19993         of their DEBUG_EXPR_TREE_DECLs.
19994         (canonicalize_loc_order_check): Verify that cur_loc is NULL
19995         and in_changed_variables and cur_loc_changed is false.
19996         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
19997         and cur_loc_changed.  Don't update cur_loc here.
19998         (variable_merge_over_src): Don't call variable_canonicalize.
19999         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
20000         removing loc that is equal to cur_loc, clear cur_loc,
20001         set cur_loc_changed and ensure variable_was_changed is called.
20002         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
20003         compare pointers in cur_loc check, if it is equal to loc,
20004         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
20005         (variable_different_p): Remove compare_current_location argument,
20006         don't compare cur_loc.
20007         (dataflow_set_different_1): Adjust variable_different_p caller.
20008         (variable_was_changed): If dv had some var in changed_variables
20009         already, reset in_changed_variables flag for it and propagate
20010         cur_loc_changed over to the new variable.  On empty var
20011         always set cur_loc_changed.  Set in_changed_variables on whatever
20012         var is added to changed_variables.
20013         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
20014         Use shared_var_p.  When removing loc that is equal to cur_loc,
20015         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
20016         end, don't set it to something else, just call variable_was_changed.
20017         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
20018         loc being removed, clear cur_loc and set cur_loc_changed.
20019         Set cur_loc_changed if all locations have been removed.
20020         (struct expand_loc_callback_data): New type.
20021         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
20022         allocated.  Always create SUBREGs if simplify_subreg failed.
20023         Prefer to use cur_loc, when that fails and still in
20024         changed_variables (and seen first time) recompute it.  Set
20025         cur_loc_changed of variables which had to change cur_loc and
20026         compute elcd->cur_loc_changed if any of the subexpressions used
20027         had to change cur_loc.
20028         (vt_expand_loc): Adjust to pass arguments in
20029         expand_loc_callback_data structure.
20030         (vt_expand_loc_dummy): New function.
20031         (emitted_notes): New variable.
20032         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
20033         that weren't used for any other decl in current
20034         emit_notes_for_changes call call vt_expand_loc_dummy to update
20035         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
20036         first loc_chain location if NULL before.  Always use just
20037         cur_loc instead of first loc_chain location.  When cur_loc_changed
20038         is false, when not --enable-checking=rtl just don't emit any note.
20039         When rtl checking, compute the note and assert it is the same
20040         as previous note.  Clear cur_loc_changed and in_changed_variables
20041         at the end before removing from changed_variables.
20042         (check_changed_vars_3): New function.
20043         (emit_notes_for_changes): Traverse changed_vars to call
20044         check_changed_vars_3 on each changed var.
20045         (emit_notes_for_differences_1): Clear cur_loc_changed and
20046         in_changed_variables.  Recompute cur_loc of new_var.
20047         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
20048         (vt_emit_notes): Initialize and destroy emitted_notes.
20049
20050 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
20051
20052         PR rtl-optimization/42220
20053         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
20054         Use verify_reg_tracked to determine if we should use OP_OUT rather
20055         than OP_INOUT.
20056         (build_def_use): If we see an in-out operand for a register that we
20057         know nothing about, treat is an output if possible, fail the block if
20058         not.
20059
20060 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
20061
20062         PR debug/42897
20063         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
20064         permanently.
20065
20066 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
20067
20068         PR debug/42897
20069         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
20070         uses of relevant DEFs that are dead outside the loop too.
20071
20072 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
20073
20074         * var-tracking.c (dataflow_set_merge): Swap src and src2.
20075         Reverted:
20076         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
20077         PR debug/41371
20078         * var-tracking.c (values_to_unmark): New variable.
20079         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
20080         values_to_unmark vector.  Moved body to...
20081         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
20082         instead queue it into values_to_unmark vector.
20083         (vt_find_locations): Free values_to_unmark vector.
20084
20085 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
20086
20087         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
20088         (site.exp): Export them when plugins are enabled.
20089
20090 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
20091
20092         PR middle-end/42326
20093         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
20094         that contain scevs.
20095         (chrec_fold_multiply): Same.
20096
20097 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
20098
20099         PR c/43248
20100         * c-decl.c (build_compound_literal): Return early if init is
20101         an error_mark_node.
20102
20103 2010-03-04  Martin Jambor  <mjambor@suse.cz>
20104
20105         PR tree-optimization/43164
20106         PR tree-optimization/43191
20107         * tree-sra.c (type_consists_of_records_p): Reject records with
20108         zero-size bit-fields at the end.
20109
20110 2010-03-04  Mike Stump  <mikestump@comcast.net>
20111
20112         * Makefile.in (TAGS): Remove *.y.
20113
20114 2010-03-04  Richard Guenther  <rguenther@suse.de>
20115
20116         PR tree-optimization/40761
20117         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
20118         in reverse order.
20119         (my_rev_post_order_compute): New function.
20120         (init_pre): Call it.
20121
20122 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
20123
20124         PR middle-end/43209
20125         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
20126         decrease the cost of an IV candidate when the cost is infinite.
20127
20128 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20129
20130         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
20131         Use '3DNow!' for the extension of that name, ensure normal space
20132         after the string.
20133         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
20134
20135 2010-03-03  Jeff Law  <law@redhat.com>
20136
20137         * PR middle-end/32693
20138         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
20139         than gen_rtx_SUBREG.
20140         (extract_bit_field_1): Likewise.
20141
20142 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
20143
20144         * doc/sourcebuild.texi (Test directives): Document that arguments
20145         include-opts and exclude-opts are now optional for dg-skip-if,
20146         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
20147
20148 2010-03-03  Jason Merrill  <jason@redhat.com>
20149
20150         PR c++/12909
20151         * cgraph.h (varpool_node): Add extra_name field.
20152         * varpool.c (varpool_extra_name_alias): New.
20153         (varpool_assemble_decl): Emit extra name aliases.
20154         (varpool_mark_needed_node): Look past an extra name alias.
20155         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
20156         * lto-streamer-in.c (lto_input_tree): Read it.
20157         * lto-streamer-out.c (output_unreferenced_globals): Write it.
20158
20159 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
20160
20161         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
20162         (sparc*-*-solaris2*): ...this.
20163
20164 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
20165
20166         PR debug/43229
20167         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
20168         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
20169         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
20170         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
20171
20172         PR debug/43237
20173         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
20174         fallthrough to default handling, just with want_address 0 instead of 2.
20175         For single element lists, add_AT_loc directly, otherwise create an
20176         artificial variable DIE and stick location list to it.
20177
20178         PR debug/43177
20179         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
20180         (VAL_EXPR_HAS_REVERSE): Define.
20181         (reverse_op): New function.
20182         (add_stores): For reversible operations add an extra MO_VAL_USE.
20183
20184 2010-03-02  Jason Merrill  <jason@redhat.com>
20185
20186         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
20187
20188 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
20189
20190         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
20191         (sparc64-*-linux*): Likewise.
20192         (sparc64-*-solaris2*): Include assembler files before linker ones.
20193         (sparc-*-solaris2*): Simplify and reorder to match previous case.
20194         * config/sparc/gas.h: Delete.
20195         * config/sparc/sol2-64.h: Add copyright notice.
20196         * config/sparc/sol2-gas-bi.h: Likewise.
20197         * config/sparc/sol2-gld.h: Likewise.
20198         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
20199         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
20200         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
20201         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
20202         (sparc_elf_asm_named_section): Rename into...
20203         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
20204
20205 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
20206
20207         * config/alpha/alpha.c (override_options): Fix -mtune error message.
20208
20209 2010-03-02  Jeff Law  <law@redhat.com>
20210
20211         PR middle-end/42431
20212         * reload1.c (rtx_p, substitute_stack): Declare.
20213         (substitute): Record addresses of changed rtxs.
20214         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
20215         Restore the original rtx when complete.
20216         (reload): Free subsitute_stack when complete.
20217
20218 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
20219
20220         * doc/gccint.texi (menu): Add Testsuites as a chapter.
20221         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
20222         new chapter.
20223         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
20224         LTO Testing, gcov Testing, profopt Testing, compat Testing,
20225         Torture Tests): Change from subsection to section.
20226
20227 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
20228             Steven Bosscher  <steven@gcc.gnu.org>
20229
20230         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
20231         instead of bb.
20232
20233 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
20234
20235         PR middle-end/42640
20236         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
20237         the assignment from the new induction variable to the assignment
20238         of the value from the original loop PHI function.
20239
20240 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
20241             Daniel Jacobowitz  <dan@codesourcery.com>
20242
20243         * doc/sourcebuild.texi (Test directives): Clarify options to
20244         dg-skip-if.
20245
20246 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20247
20248         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
20249         Disable cfi directives unless GCC and gas agree on using read-only
20250         .eh_frame sections for 64-bit.
20251         * configure: Regenerate.
20252
20253 2010-03-01  Richard Guenther  <rguenther@suse.de>
20254
20255         PR tree-optimization/43220
20256         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
20257         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
20258
20259 2010-03-01  Richard Guenther  <rguenther@suse.de>
20260             Martin Jambor  <mjambor@suse.cz>
20261
20262         PR middle-end/41250
20263         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
20264         gimplified parameters.
20265
20266 2010-03-01  Christian Bruel  <christian.bruel@st.com>
20267
20268         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
20269
20270 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
20271
20272         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
20273
20274 2010-03-01  Richard Guenther  <rguenther@suse.de>
20275
20276         PR middle-end/43213
20277         * expr.c (expand_assignment): Use the alias-oracle to tell
20278         if the rhs aliases the result decl.
20279
20280 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20281
20282         PR pch/14940
20283         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
20284         to sol_gt_pch_get_address.
20285         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
20286         64-bit, SPARC and x86.
20287         (sol_gt_pch_get_address): New function.
20288
20289 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
20290
20291         * toplev.h (inform_n, error_n): Declare.
20292         * diagnostic.c (inform_n, error_n): New function.
20293
20294 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
20295
20296         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
20297         has no rtl yet when processing local_decls, queue it and recheck
20298         if deferred stack allocation hasn't assigned it rtl.
20299
20300 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
20301
20302         * config/sh/sh.c (unspec_bbr_uid): New.
20303         (gen_block_redirect): Use it instead of INSN_UID.
20304         (gen_far_branch): Likewise.
20305
20306 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
20307
20308         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
20309         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
20310
20311 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20312
20313         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
20314         (Warning Options): -Wno-conversion-null is valid for
20315         Objective-C++ as well.
20316         * doc/tm.texi (Named Address Spaces): Likewise.
20317         * doc/plugins.texi (Plugins): Replace TABs with spaces.
20318         * doc/tree-ssa.texi (Tree SSA): Likewise.
20319
20320 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
20321
20322         PR bootstrap/43202
20323         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
20324         by default.  Don't set the default arch for
20325         i[34567]86-*-darwin*|x86_64-*-darwin*.
20326
20327 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
20328
20329         PR bootstrap/43202
20330         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
20331         default.  Set the default 32bit/64bit archs with $with_arch
20332         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
20333
20334 2010-02-27  Richard Guenther  <rguenther@suse.de>
20335
20336         PR tree-optimization/43186
20337         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
20338         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
20339         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
20340         unroller iterations.
20341
20342 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
20343
20344         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
20345         required and i[34567]86-*-* targets don't support 64bit ISA.
20346
20347 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
20348
20349         PR ada/43096
20350         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
20351         the same alias set.
20352
20353 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
20354
20355         * config.gcc: Set the default arch at least to Prescott for
20356         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
20357         if SSE math is enabled.
20358
20359 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20360
20361         * diagnostic.c (diagnostic_initialize): Update.
20362         (diagnostic_report_diagnostic): Test inhibit_notes_p for
20363         informative notes.
20364         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
20365         (diagnostic_inhibit_notes): New.
20366         * toplev.c (process_options): inhibit notes with -fcompare-debug.
20367
20368 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20369
20370         PR c/20631
20371         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
20372         * doc/standards.texi: Likewise.
20373         * doc/extend.texi: Likewise.
20374         * doc/trouble.texi: Likewise.
20375         * doc/cppopts.texi: Likewise.
20376         * doc/install.texi: Likewise.
20377         * c.opt (std=c90,std=gnu90): New options.
20378         * c-opts.c (c_common_handle_option): Handle them.
20379
20380 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20381
20382         PR c/24577
20383         * c-decl.c (undeclared_variable): Use an informative note.
20384
20385 2010-02-26  Richard Guenther  <rguenther@suse.de>
20386
20387         PR tree-optimization/43186
20388         * gimple.h (gimple_fold): Remove.
20389         * gimple.c (gimple_fold): Remove.  Inline into single user ...
20390         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
20391         Try harder for conditions.
20392
20393 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
20394
20395         PR debug/43190
20396         * function.c (used_types_insert): Don't skip through named pointer
20397         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
20398         and it is different from the main variant's type.
20399
20400 2010-02-26  Nick Clifton  <nickc@redhat.com>
20401
20402         * config/rx/rx.md (sminsi3): Remove bogus alternative.
20403
20404 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
20405
20406         * config.gcc: Support --with-fpmath=sse for x86.
20407
20408         * config/i386/ssemath.h: New.
20409
20410         * doc/install.texi (--with-fpmath=sse): Documented.
20411
20412 2010-02-26  Richard Guenther  <rguenther@suse.de>
20413
20414         PR tree-optimization/43188
20415         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
20416         vector types of over-aligned element type.
20417
20418 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
20419
20420         PR target/43175
20421         * config/i386/i386.c (expand_vec_perm_blend): Use correct
20422         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
20423
20424 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
20425
20426         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
20427
20428 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
20429
20430         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
20431         * var-tracking.c: Include diagnostic.h.
20432         (debug_dv): New function.
20433         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
20434
20435         PR debug/43160
20436         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
20437         (add_value_chain, add_value_chains, remove_value_chain,
20438         remove_value_chains): Handle DEBUG_EXPRs.
20439         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
20440
20441         PR debug/43161
20442         * regcprop.c (struct queued_debug_insn_change): New type.
20443         (struct value_data_entry): Add debug_insn_changes field.
20444         (struct value_data): Add n_debug_insn_changes field.
20445         (debug_insn_changes_pool): New variable.
20446         (free_debug_insn_changes, apply_debug_insn_changes,
20447         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
20448         (kill_value_one_regno): Call free_debug_insn_changes if needed.
20449         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
20450         fields.
20451         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
20452         changes for them.
20453         (copyprop_hardreg_forward_1): Don't call apply_change_group for
20454         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
20455         changes, call cprop_find_used_regs via note_stores.
20456         (copyprop_hardreg_forward): When copying vd from predecessor
20457         which has any queued DEBUG_INSN changes, make sure the pointers are
20458         cleared.  At the end call df_analyze and then if there are any
20459         DEBUG_INSN changes queued at the end of some basic block for still
20460         live registers, apply them.
20461         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
20462
20463 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
20464
20465         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
20466         (arm*-*-*): Ditto.
20467
20468 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
20469
20470         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
20471         targets.  Set the default with_cpu/with_arch from arch/cpu.
20472         Allow x86-64 and native for with_cpu/with_arch.
20473
20474 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
20475
20476         * ebitmap.c: Change calls to verify_popcount with calls to
20477         sbitmap_verify_popcount.
20478         (ebitmap_clear_bit): Fixed map->cacheindex test and
20479         map>cache update when bit clearing results in an empty
20480         element.
20481
20482 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
20483
20484         PR target/43154
20485         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
20486         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
20487         and support both V2DF and V2DI modes.
20488         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
20489         support both V2DF and V2DI modes.
20490         (general): Delete trailing whitespace from a few patterns.
20491
20492         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20493         V2DF/V2DI interleave high/low builtins.
20494
20495         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
20496         new VSX builtins.
20497
20498         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
20499         interleave high/low functions.
20500
20501 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
20502
20503         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
20504         #pragma extern_prefix.
20505
20506 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
20507
20508         PR debug/43166
20509         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
20510         BLKmode, assert op0 is a MEM and just adjust its mode.
20511
20512         PR debug/43165
20513         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
20514         if bitpos isn't multiple of mode's bitsize.
20515
20516 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20517
20518         * c.opt (-ftemplate-depth=): New.
20519         (-ftemplate-depth-): Deprecate.
20520         * optc-gen.awk: Handle -ftemplate-depth=.
20521         * opth-gen.awk: Likewise.
20522         * c-opts.c (c_common_handle_option): Likewise.
20523         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
20524
20525 2010-02-24  Jason Merrill  <jason@redhat.com>
20526
20527         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
20528
20529 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20530
20531         * cfg.c (alloc_aux_for_block): Remove inline.
20532         (alloc_aux_for_edge): Likewise.
20533
20534 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20535
20536         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
20537
20538 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20539
20540         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
20541         * config/i386/sol2-gas.h: New file.
20542         * config.gcc (i[34567]86-*-solaris2*): Use it.
20543
20544 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20545
20546         PR c/43128
20547         * c-typeck.c (ep_convert_and_check): New.
20548         (build_conditional_expr): Use it.
20549         (build_binary_op): Likewise.
20550
20551 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
20552
20553         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
20554
20555         PR debug/43150
20556         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
20557         bounds even for -O+.
20558         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
20559         expr needs to have DECL_NAME set.
20560
20561 2010-02-24  Nick Clifton  <nickc@redhat.com>
20562
20563         * config/mep/mep.c: Include gimple.h.
20564         (mep_function_uses_sp): Delete unused function.
20565         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
20566         parameters.  Use unsigned integers to count args.  Return a
20567         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
20568
20569 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
20570
20571         PR target/43107
20572         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
20573         greater or equal to nelt instead of 2 * nelt.
20574         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
20575         with nelt - 1.
20576
20577 2010-02-23  Jason Merrill  <jason@redhat.com>
20578
20579         PR debug/42800
20580         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
20581         in cfun->local_decls even if they have register types.
20582
20583         PR c++/42837
20584         * stor-layout.c (place_field): Don't warn about unnecessary
20585         DECL_PACKED if the type is packed.
20586
20587 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
20588
20589         PR target/43139
20590         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
20591         GOTOFF relocs, even when the base reg isn't pic pointer.
20592
20593 2010-02-23  Michael Matz  <matz@suse.de>
20594
20595         PR debug/43077
20596         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
20597         (expand_gimple_basic_block): Generate and use debug temps if there
20598         are debug uses left after the last real use of TERed ssa names.
20599         Unlink debug immediate uses when they are expanded.
20600
20601 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20602
20603         PR 43123
20604         * config/i386/i386.c (override_options): Reorganise to provide
20605         better error messages.
20606
20607 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
20608
20609         PR middle-end/43083
20610         * graphite-scop-detection.c (create_single_exit_edge): Move
20611         the call to find_single_exit_edge to....
20612         (create_sese_edges): ...here.  Don't handle multiple edges
20613         exiting the function.
20614         (build_graphite_scops): Don't handle multiple edges
20615         exiting the function.
20616
20617 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
20618
20619         PR middle-end/43097
20620         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
20621         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
20622
20623 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
20624
20625         PR middle-end/43026
20626         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
20627
20628 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20629
20630         PR c++/43126
20631         * c-typeck.c (convert_arguments): Print declaration location.
20632         * c-common.c (validate_nargs): Rename as
20633         builtin_function_validate_nargs.
20634         (check_builtin_function_arguments): Update.
20635
20636 2010-02-22  Richard Guenther  <rguenther@suse.de>
20637
20638         PR lto/43045
20639         * tree-inline.c (declare_return_variable): Use the type of
20640         the call stmt lhs if available.
20641
20642 2010-02-22  Duncan Sands  <baldrick@free.fr>
20643
20644         * passes.c (register_pass): Always consider all pass lists when
20645         ref_pass_instance_number is zero.
20646
20647 2010-02-22  Richard Guenther  <rguenther@suse.de>
20648
20649         PR tree-optimization/42749
20650         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
20651         parameter.  Do arithmetic in the original type.
20652         (update_accumulator_with_ops): Likewise.
20653         (adjust_accumulator_values): Adjust.
20654
20655 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20656
20657         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
20658         (QI to BLKmode splitter): New splitter.
20659
20660 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
20661
20662         * config/i386/i386.c (initial_ix86_tune_features): Turn on
20663         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
20664
20665 2010-02-22  Richard Guenther  <rguenther@suse.de>
20666
20667         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
20668
20669 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
20670
20671         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
20672         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
20673         ($(T)crti.o, $(T)crtn.o): Remove rules.
20674
20675 2010-02-21  Tobias Burnus  <burnus@net-b.de>
20676
20677         PR fortran/35259
20678         * doc/invoke.texi (-fassociative-math): Document that this
20679         option is automatically enabled for Fortran.
20680
20681 2010-02-20  David S. Miller  <davem@davemloft.net>
20682
20683         * configure.ac: Test if linker and assembler properly support
20684         GOTDATA_OP relocations.
20685         * configure: Rebuild.
20686         * config.in: Likewise.
20687         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
20688         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
20689         (movsi_high_pic): Likewise.
20690         (movdi_lo_sum_pic): Likewise.
20691         (movdi_high_pic): Likewise.
20692         (movsi_pic_gotdata_op): New pattern.
20693         (movdi_pic_gotdata_op): Likewise.
20694         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
20695         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
20696
20697 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
20698
20699         PR target/43067
20700         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
20701         attribute to ssemul.
20702         (xop_mulv2div2di3_high): Ditto.
20703
20704 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20705
20706         PR c++/35669
20707         * c.opt (Wconversion-null): New option.
20708         * doc/invoke.texi (Wconversion-null): Document.
20709
20710 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20711
20712         * common.opt (Wlarger-than-): Add Undocumented.
20713
20714 2010-02-19  Mike Stump  <mikestump@comcast.net>
20715
20716         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
20717
20718 2010-02-19  Jason Merrill  <jason@redhat.com>
20719
20720         PR target/40332
20721         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
20722         * configure: Likewise.
20723
20724 2010-02-20  Alan Modra  <amodra@gmail.com>
20725
20726         PR middle-end/42344
20727         * cgraph.h (cgraph_make_decl_local): Declare.
20728         * cgraph.c (cgraph_make_decl_local): New function.
20729         (cgraph_make_node_local): Use it.
20730         * cgraphunit.c (cgraph_function_versioning): Likewise.
20731         * ipa.c (function_and_variable_visibility): Likewise.
20732
20733 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20734
20735         PR bootstrap/43121
20736         * except.c (sjlj_emit_function_enter): Don't call
20737         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
20738         directly.
20739         * rtl.h (add_reg_br_prob_note): Remove prototype.
20740
20741 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20742
20743         PR 41779
20744         * c-common.c (conversion_warning): Remove widening conversions
20745         before checking the conversion of integers to reals.
20746
20747 2010-02-19  Mike Stump  <mikestump@comcast.net>
20748
20749         PR middle-end/43125
20750         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
20751
20752         PR objc/43061
20753         * cgraphunit.c (process_function_and_variable_attributes): Check
20754         DECL_PRESERVE_P instead of looking up attribute "used".
20755         * ipa-pure-const.c (check_decl): Likewise.
20756         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
20757         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
20758         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
20759         instead of attribute "used".
20760         * config/sol2-c.c (solaris_pragma_init): Likewise.
20761         (solaris_pragma_fini): Likewise.
20762
20763 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20764
20765         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
20766         Use XCNEW instead of xcalloc.
20767         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
20768         XNEW instead of xmalloc.
20769         (get_fields): Use XNEWVEC instead of xmalloc.
20770
20771         PR debug/43084
20772         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
20773         populate vars array.
20774         (create_new_general_access): For debug stmts just reset value.
20775         (get_stmt_accesses): For accesses within debug stmts just record them
20776         using add_access_to_acc_sites instead of preventing the peeling or
20777         counting them as accesses.
20778
20779         PR middle-end/42233
20780         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
20781
20782 2010-02-19  Richard Guenther  <rguenther@suse.de>
20783
20784         PR tree-optimization/42916
20785         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
20786         instructions.
20787
20788 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
20789
20790         * configure.ac: Replace all uses of changequote in macro arguments
20791         with proper quoting.
20792
20793 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20794
20795         PR middle-end/42233
20796         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
20797
20798 2010-02-19  Richard Guenther  <rguenther@suse.de>
20799
20800         PR tree-optimization/42944
20801         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
20802         test for aliasing with errno.
20803
20804 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20805
20806         PR middle-end/42233
20807         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
20808         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
20809         * dojump.c: Include output.h.
20810         (inv): New inline function.
20811         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
20812         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
20813         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
20814         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
20815         argument, pass it down to other calls.
20816         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
20817         add REG_BR_PROB note to the conditional jump.
20818         * cfgexpand.c (add_reg_br_prob_note): Removed.
20819         (expand_gimple_cond): Don't call it, add the probability
20820         as last argument to jumpif_1/jumpifnot_1.
20821         * Makefile.in (dojump.o): Depend on output.h.
20822         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
20823         callers.
20824         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
20825         * stmt.c (do_jump_if_equal): Likewise.
20826         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
20827         * loop-unswitch.c (compare_and_jump_seq): Likewise.
20828         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
20829         Likewise.
20830         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
20831         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
20832         jumpifnot_1 callers.
20833         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
20834         callers.
20835         (store_expr): Adjust jumpifnot caller.
20836         (store_constructor): Adjust jumpif caller.
20837
20838         PR middle-end/42233
20839         * gimplify.c (gimple_boolify): For __builtin_expect call
20840         gimple_boolify also on its first argument.
20841
20842 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
20843
20844         * configure.ac (gnu-unique-object): Wrap regexps using [] in
20845         changequote block.
20846         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
20847         * configure: Regenerated.
20848
20849 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20850
20851         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
20852         lang_hooks.types_compatible_p instead of comptypes.
20853
20854 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
20855
20856         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
20857         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
20858         if __prefer_thumb__ is defined.
20859
20860 2010-02-18  Martin Jambor  <mjambor@suse.cz>
20861
20862         PR tree-optimization/43066
20863         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
20864         array with zero-sized element type.
20865
20866 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
20867
20868         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
20869         rtx, allocate struct var_loc_node here and return it to the
20870         caller, and only if it is actually needed.
20871         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
20872         move it earlier and return immediately if it returns NULL.
20873
20874 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
20875
20876         * config/sparc/gas.h: New file.  Restore
20877         TARGET_ASM_NAMED_SECTION to its ELF default.
20878         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
20879         check !HAVE_GNU_AS.
20880         * config/sparc/sparc.c (sparc_elf_asm_named_section):
20881         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
20882         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
20883         after sparc/sysv4.h.
20884
20885 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
20886
20887         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
20888
20889 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
20890
20891         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
20892         patterns from predicated pattern.
20893
20894 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
20895
20896         PR target/43103
20897         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
20898         for insn mnemonic suffix.
20899
20900 2010-02-17  Richard Guenther  <rguenther@suse.de>
20901
20902         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
20903         to loop PHI nodes.
20904
20905 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
20906
20907         PR debug/42918
20908         * caller-save.c (save_call_clobbered_regs): If BB ends with
20909         a DEBUG_INSN, move any notes in between last real insn and the last
20910         DEBUG_INSN after the last DEBUG_INSN.
20911
20912 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
20913
20914         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
20915         Fix return type.  Fix argument type.  Explain meaning of return value.
20916
20917 2010-02-16  Richard Guenther  <rguenther@suse.de>
20918
20919         PR tree-optimization/41043
20920         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
20921         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
20922         statements ...
20923         (vrp_visit_phi_node): ... but only for loop PHI nodes.
20924
20925 2010-02-16  Ira Rosen  <irar@il.ibm.com>
20926
20927         PR tree-optimization/43074
20928         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
20929         * tree-vect-loop.c (vect_analyze_loop_operations): Add
20930         vectorizable cycles in hybrid SLP check.
20931         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
20932
20933 2010-02-16  Richard Guenther  <rguenther@suse.de>
20934
20935         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
20936         (true_dependence): If memrefs_conflict_p computes must-alias
20937         trust it.  Move TBAA check after offset-based disambiguation.
20938         (canon_true_dependence): Likewise.
20939
20940 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
20941
20942         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
20943         * doc/invoke.texi: Document it.
20944         * var-tracking.c: Include toplev.h and params.h.
20945         (vt_find_locations): Return bool indicating success.  Compute
20946         hash sizes unconditionally.  Check new parameter, report.
20947         (variable_tracking_main_1): Check vt_find_locations results and
20948         retry.  Renamed from...
20949         (variable_tracking_main): ... this.  New wrapper to preserve
20950         flag_var_tracking_assignments.
20951         * Makefile.in (var-tracking.o): Adjust dependencies.
20952
20953 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
20954             Jakub Jelinek <jakub@redhat.com>
20955
20956         PR target/42854
20957         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
20958         if weak_import attribute is present.
20959         * config/darwin.c (machopic_select_section): Likewise.
20960
20961 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
20962
20963         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
20964         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
20965         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
20966         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
20967
20968         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
20969         types.
20970
20971         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
20972         Fix argument types.
20973
20974         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
20975         Rewrite text to refer to the names.
20976
20977 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
20978
20979         * config/i386/i386-builtin-types.def
20980         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
20981         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
20982         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
20983         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
20984         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
20985         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
20986         IX86_BUILTIN_VPERMIL2PS256.
20987         (MULTI_ARG_4_DF2_DI_I): Defined.
20988         (MULTI_ARG_4_DF2_DI_I1): Defined.
20989         (MULTI_ARG_4_SF2_SI_I): Defined.
20990         (MULTI_ARG_4_SF2_SI_I1): Defined.
20991         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
20992         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
20993         __builtin_ia32_vpermil2ps256.
20994         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
20995         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
20996         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
20997         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
20998         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
20999         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
21000         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
21001         CODE_FOR_xop_vpermil2v8sf3.
21002         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
21003         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
21004         * config/i386/xopintrin.h (_mm_permute2_pd): New.
21005         (_mm256_permute2_pd): New.
21006         (_mm_permute2_ps): New.
21007         (_mm256_permute2_ps): New.
21008
21009 2010-02-15  Nick Clifton  <nickc@redhat.com>
21010
21011         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
21012         boolean parameters.  Use emit_jump_insn when emitting a pop
21013         instruction containing a return insn.
21014         (push): Use 'true' rather than '1' as second parameter to F.
21015         (h8300_expand_prologue): Likewise.
21016         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
21017         (h8300_expand_epilogue): Likewise.
21018
21019 2010-02-15  Richard Guenther  <rguenther@suse.de>
21020
21021         PR middle-end/43068
21022         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
21023         if that is zero.
21024
21025 2010-02-15  Nick Clifton  <nickc@redhat.com>
21026
21027         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
21028         delta.
21029
21030 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
21031
21032         * intl.c (fake_ngettext): New function.
21033         * intl.h (fake_ngettext): Declare.
21034         (ngettext): Define macro.
21035         * collect2.c (notice_translated): New function.
21036         (main): Use notice_translated and ngettext.
21037         * collect2.h (notice_translated): Declare.
21038
21039 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
21040
21041         * reorg.c (delete_computation): Comment fixes.
21042         * caller-save.c (setup_save_areas): Idem.
21043         * sel-sched-dump.c (dump_lv_set): Idem.
21044         * rtl.def: Idem.
21045
21046 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21047
21048         * config/s390/s390.c (s390_sched_init): New function.
21049         (TARGET_SCHED_INIT): Target hook defined.
21050
21051 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
21052             Jack Howarth  <howarth@bromo.med.uc.edu>
21053             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
21054
21055         PR target/42982
21056         Partial revert of unintended change in fix for PR41605.
21057         * config/darwin.h: Fix typo.
21058         * config/darwin9.h: Same.
21059
21060 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
21061
21062         * c-pch.c (pch_init): Clear v.
21063
21064 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21065
21066         PR middle-end/42930
21067         * graphite-scop-detection.c (graphite_can_represent_scev): Call
21068         graphite_can_represent_init for MULT_EXPR.
21069
21070 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21071
21072         PR middle-end/42914
21073         PR middle-end/42530
21074         * graphite-sese-to-poly.c (remove_phi): New.
21075         (translate_scalar_reduction_to_array): Call remove_phi.
21076
21077 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21078
21079         PR middle-end/42771
21080         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
21081         * graphite-clast-to-gimple.h (gloog): Update declaration.
21082         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
21083         * graphite-poly.h (struct poly_bb): Add missing comments.
21084         (struct scop): Add poly_scop_p field.
21085         (POLY_SCOP_P): New.
21086         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
21087         * graphite.c (graphite_transform_loops): Build the polyhedral
21088         representation for each scop before code generation.
21089         * sese.c (rename_variables_in_operand): Removed.
21090         (rename_variables_in_expr): Return the renamed expression.
21091         (rename_sese_parameters): New.
21092         * sese.h (rename_sese_parameters): Declared.
21093
21094 2010-02-11  Richard Guenther  <rguenther@suse.de>
21095
21096         PR tree-optimization/42998
21097         * tree-ssa-pre.c (create_expression_by_pieces): Treat
21098         POINTER_PLUS_EXPR properly.
21099
21100 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21101             Changpeng Fang  <changpeng.fang@amd.com>
21102
21103         PR middle-end/40886
21104         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
21105         the cost of an IV candidate when the IV is used in a test against zero.
21106
21107         * gcc.dg/tree-ssa/ivopts-3.c: New.
21108
21109 2010-02-11  Richard Guenther  <rguenther@suse.de>
21110
21111         PR lto/41664
21112         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
21113         pointer-vs-decl case by swapping refs.  Handle some cases
21114         of pointer-vs-decl disambiguations more conservatively.
21115         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
21116         to false after expanding.
21117
21118 2010-02-11  Richard Guenther  <rguenther@suse.de>
21119
21120         PR driver/43021
21121         * gcc.c (process_command): Handle LTO file@offset case more
21122         appropriately.
21123
21124 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
21125
21126         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
21127         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
21128         of DEBUG_INSNs.
21129         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
21130
21131         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
21132         if MEM's mode size isn't DWARF2_ADDR_SIZE.
21133         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
21134         Optimize eq/ne comparisons when both arguments are known to be
21135         zero-extended.
21136         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
21137         Don't mask operands unnecessarily if they are known to be already
21138         zero-extended.
21139
21140 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
21141
21142         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
21143         instead of loop.
21144
21145 2010-02-10  Richard Guenther  <rguenther@suse.de>
21146
21147         PR tree-optimization/43017
21148         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
21149         for wrapping signed arithmetic.
21150
21151 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
21152
21153         PR debug/43010
21154         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
21155         if no debug info should be emitted for it.
21156
21157 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
21158
21159         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
21160         note when flag_exceptions is set.
21161
21162 2010-02-10  Duncan Sands  <baldrick@free.fr>
21163
21164         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
21165
21166 2010-02-10  Richard Guenther  <rguenther@suse.de>
21167
21168         PR c/43007
21169         * tree.c (get_unwidened): Handle constants.
21170         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
21171
21172 2010-02-10  Martin Jambor  <mjambor@suse.cz>
21173
21174         PR lto/42985
21175         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
21176         check for variable argument counts independently.
21177
21178 2010-02-10  Christian Bruel  <christian.bruel@st.com>
21179
21180         PR target/42841
21181         * config/sh/sh.c (find_barrier): Increase length for non delayed
21182         conditional branches.
21183
21184 2010-02-10  Christian Bruel  <christian.bruel@st.com>
21185
21186         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
21187
21188 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
21189
21190         * builtins.c (set_builtin_user_assembler_name): Also handle
21191         ffs if int is smaller than word.
21192
21193 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
21194
21195         PR middle-end/42973
21196         * ira-conflicts.c (get_dup): Remove.
21197         (process_reg_shuffles): Add new parameter.  Use it as an
21198         additional guard for copy generation.
21199         (add_insn_allocno_copies): Rewrite.
21200
21201 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
21202
21203         * common.opt (fsched2-use-traces): Preserved for backward
21204         compatibility.
21205         * doc/invoke.texi: Remove the documentation about option
21206         -fsched2-use-traces.
21207         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
21208         flag_sched2_use_traces.
21209         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
21210         the backward compatibility flag section.
21211
21212 2010-02-09  Richard Guenther  <rguenther@suse.de>
21213
21214         PR tree-optimization/43008
21215         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
21216         make HEAP variables initialized from global memory if they
21217         are not known builtin functions.
21218         (find_func_aliases): Adjust.
21219
21220 2010-02-09  Richard Guenther  <rguenther@suse.de>
21221
21222         PR tree-optimization/43000
21223         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
21224         arithmetic manually.
21225
21226 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
21227
21228         PR tree-optimization/42931
21229         * tree-loop-linear.c (try_interchange_loops): Don't call
21230         double_int_mul if estimated_loop_iterations failed.
21231
21232 2010-02-08  Martin Jambor  <mjambor@suse.cz>
21233
21234         PR middle-end/42898
21235         * tree-sra.c (build_accesses_from_assign): Do not mark in
21236         should_scalarize_away_bitmap if stmt has volatile ops.
21237         (sra_modify_assign): Do not process assigns piecemeal if if stmt
21238         has volatile ops.
21239
21240 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
21241
21242         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
21243
21244 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
21245
21246         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
21247         before the pattern.
21248
21249 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
21250
21251         PR middle-end/42946
21252         * df-core.c (df_finish_pass): Change type of saved_flags to int.
21253
21254 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
21255
21256         PR middle-end/42988
21257         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
21258         to unknown_dependence.
21259         (graphite_legal_transform_dr): Handle the unknown_dependence.
21260         (graphite_carried_dependence_level_k): Same.
21261
21262 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
21263
21264         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
21265
21266 2010-02-07  Richard Guenther  <rguenther@suse.de>
21267
21268         PR middle-end/42991
21269         * expr.c (get_inner_reference): Always initialize *pbitsize.
21270
21271 2010-02-07  Richard Guenther  <rguenther@suse.de>
21272
21273         PR middle-end/42956
21274         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
21275         new ARRAY_REFs on variable size element or minimal index arrays.
21276         Complete.
21277         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
21278         gimple_fold_indirect_ref.
21279
21280 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
21281
21282         PR target/42957
21283         * arm.c (arm_override_options): Just return if the user has specified
21284         an invalid fpu name.
21285
21286 2010-02-03  Jason Merrill  <jason@redhat.com>
21287
21288         PR c++/42870
21289         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
21290         i386_pe_maybe_record_exported_symbol.
21291
21292 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
21293
21294         PR target/42924
21295         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
21296         (pa_delegitimize_address): New function.
21297
21298 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
21299
21300         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
21301         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
21302
21303 2010-02-05  Richard Guenther  <rguenther@suse.de>
21304
21305         PR lto/42762
21306         * lto-streamer-in.c (get_resolution): Deal with references
21307         to undefined functions.
21308
21309 2010-02-05  Richard Guenther  <rguenther@suse.de>
21310
21311         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
21312         (fold_const_aggregate_ref): Likewise.
21313         (ccp_fold_stmt): Substitute loads.
21314         (maybe_fold_reference): Verify types before substituting.
21315         Unshare properly.
21316         (fold_gimple_assign): Unshare properly.
21317         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
21318
21319 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
21320
21321         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
21322         for rs6000_gen_cell_microcode.
21323
21324 2010-02-04  Richard Guenther  <rguenther@suse.de>
21325
21326         PR rtl-optimization/42952
21327         * dse.c (const_or_frame_p): Remove MEM handling.
21328
21329 2010-02-04  Nick Clifton  <nickc@redhat.com>
21330
21331         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
21332         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
21333         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
21334         (mn10300_asm_output_mi_thunk): New function.
21335         (mn10300_can_output_mu_thunk): New function.
21336         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
21337         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
21338         (FUNCTION_ARG): Delete incorrect comment.
21339
21340 2010-02-03  Jason Merrill  <jason@redhat.com>
21341
21342         PR c++/40138
21343         * fold-const.c (operand_equal_p): Handle erroneous types.
21344
21345 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
21346
21347         * config/h8300/h8300.md (can_delay): Fix attibute condition.
21348
21349 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
21350
21351         PR rtl-optimization/42941
21352         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
21353         of xmalloc.
21354
21355 2010-02-03  Jason Merrill  <jason@redhat.com>
21356
21357         PR c++/35652
21358         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
21359
21360 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
21361
21362         PR debug/42896
21363         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
21364         (cselib_reset_table): Renamed from...
21365         (cselib_reset_table_with_next_value): ... this.
21366         (cselib_get_next_uid): Renamed from...
21367         (cselib_get_next_unknown_value): ... this.
21368         * cselib.c (next_uid): Renamed from...
21369         (next_unknown_value): ... this.
21370         (cselib_clear_table): Adjust.
21371         (cselib_reset_table): Adjust.  Renamed from...
21372         (cselib_reset_table_with_next_value): ... this.
21373         (cselib_get_next_uid): Adjust.  Renamed from...
21374         (cselib_get_next_unknown_value): ... this.
21375         (get_value_hash): Use hash.
21376         (cselib_hash_rtx): Likewise.
21377         (new_cselib_val): Adjust.  Set and dump uid.
21378         (cselib_lookup_mem): Pass next_uid as hash.
21379         (cselib_subst_to_values): Likewise.
21380         (cselib_log_lookup): Dump uid.
21381         (cselib_lookup): Pass next_uid as hash.  Adjust.
21382         (cselib_process_insn): Adjust.
21383         (cselib_init): Initialize next_uid.
21384         (cselib_finish): Adjust.
21385         (dump_cselib_table): Likewise.
21386         * dse.c (canon_address): Dump value uid.
21387         * print-rtl.c (print_rtx): Print value uid.
21388         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
21389         (dvuid): New type.
21390         (dv_uid): New function, sort of renamed from...
21391         (dv_htab_hash): ... this, reimplemented in terms of it and...
21392         (dv_uid2hash): ... this.  New.
21393         (variable_htab_eq): Drop excess assertions.
21394         (tie_break_pointers): Removed.
21395         (canon_value_cmp): Compare uids.
21396         (variable_post_merge_New_vals): Print uids.
21397         (vt_add_function_parameters): Adjust.
21398         (vt_initialize): Reset table.  Adjust.
21399
21400 2010-02-03  Richard Guenther  <rguenther@suse.de>
21401
21402         PR tree-optimization/42944
21403         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
21404         (call_may_clobber_ref_p_1): Likewise.  Properly handle
21405         malloc and calloc clobbering errno.
21406
21407 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
21408
21409         * doc/invoke.texi: Fix name of sched1 dump.
21410
21411         * opts.c (decode_options): Set flag_tree_switch_conversion
21412         only conditionally on optimize >= 2.
21413
21414         * gcse.c: Assorted comment fixes in pass description.
21415
21416 2010-02-03  Anthony Green  <green@moxielogic.com>
21417
21418         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
21419         nop padding in order to maintain alignment of storage location of
21420         target function address.
21421         (moxie_trampoline_init): Store target function address at newly
21422         aligned location.
21423         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
21424         to 32.
21425         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
21426
21427 2010-02-03  Richard Guenther  <rguenther@suse.de>
21428
21429         PR middle-end/42927
21430         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
21431
21432 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21433
21434         * config.gcc: Reenable check for obsolete targets.
21435         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
21436         mips-sgi-irix6.[0-4]*.
21437
21438 2010-02-02  Nick Clifton  <nickc@redhat.com>
21439
21440         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
21441         constant size of 4 as being the same as 0.
21442         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
21443         can take values in the range 0..4.
21444
21445 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
21446
21447         PR java/41991
21448         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
21449         as _darwin10_Unwind_FindEnclosingFunction().
21450         * libgcc-libsystem.ver: New.
21451
21452 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
21453
21454         PR target/41399
21455         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
21456         implicitly set registers.
21457
21458 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
21459
21460         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
21461         (arm_override_options): Allow automatic selection of the thread
21462         pointer register if thumb2.
21463         (legitimize_pic_address): Improve code sequences for Thumb2.
21464         (arm_call_tls_get_addr): Likewise.
21465         (legitimize_tls_address): Likewise.
21466         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
21467         (pic_load_addr_32bit): ... this.  New named pattern.
21468         * thumb2.md (pic_load_addr_thumb2): Delete.
21469         (pic_load_dot_plus_four): Delete.
21470         (tls_load_dot_plus_four): New named pattern.
21471
21472 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21473
21474         PR libgomp/29986
21475         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
21476         Document fix for TLS bug.
21477
21478 2010-01-31  Richard Guenther  <rguenther@suse.de>
21479
21480         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
21481         conservatively correct.
21482
21483 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21484
21485         PR target/42850
21486         Revert:
21487         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21488
21489         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
21490
21491 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21492
21493         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
21494
21495 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
21496
21497         * config.gcc: Adjust order of makefile fragments for mingw targets.
21498
21499 2010-01-31  Richard Guenther  <rguenther@suse.de>
21500
21501         PR middle-end/42898
21502         * gimplify.c (gimplify_init_constructor): For volatile LHS
21503         initialize a temporary.
21504
21505 2010-01-31  Matthias Klose  <doko@ubuntu.com>
21506
21507         * configure.ac: Fix __stack_chk_fail check for cross builds configured
21508         --with-headers
21509         * configure: Regenerate.
21510
21511 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
21512
21513         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
21514         the same alias set and their sizes different constantness.
21515         (aliasing_component_refs_p): Revert 2009-10-24 change.
21516
21517 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21518
21519         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
21520         unused.
21521
21522 2010-01-29  Richard Guenther  <rguenther@suse.de>
21523
21524         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
21525         Assert we successfully updated the call.
21526
21527 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
21528
21529         PR rtl-optimization/42889
21530         * df.h (df_set_bb_dirty_nonlr): New prototype.
21531         * df-core.c (df_set_bb_dirty_nonlr): New function.
21532         * df-scan.c (df_insn_rescan): Call it instead of
21533         df_set_bb_dirty for DEBUG_INSNs.
21534
21535 2010-01-29  Richard Guenther  <rguenther@suse.de>
21536
21537         PR middle-end/37448
21538         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
21539         quadratic behavior in most cases.
21540
21541 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
21542
21543         PR target/42891
21544         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
21545         in the call to gen_x86_movsicc_0_m1.
21546
21547 2010-01-28  Richard Guenther  <rguenther@suse.de>
21548
21549         PR tree-optimization/42871
21550         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
21551
21552 2010-01-28  Richard Guenther  <rguenther@suse.de>
21553
21554         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
21555         into call arguments.
21556
21557 2010-01-28  Richard Guenther  <rguenther@suse.de>
21558
21559         PR middle-end/42883
21560         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
21561         the forwarder if the destination is an EH landing pad.
21562
21563 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
21564
21565         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
21566         block list passed to gimple_duplicate_sese_tail.
21567         (parallelize_loops): Avoid parallelization when the function
21568         has_nonlocal_label.
21569         Avoid parallelization when the preheader is IRREDUCIBLE.
21570         Try to optimize when estimated_loop_iterations_int is unresolved.
21571         Add the loop's location to the dump file.
21572         * tree-cfg.c (add_phi_args_after_redirect): Remove.
21573         (gimple_duplicate_sese_tail): Remove the check for the latch.
21574         Redirect nexits to the exit block.
21575         Remove handling of the incoming edges to the latch.
21576         Redirect the backedge from the copied latch to the exit bb.
21577
21578 2010-01-28  Michael Matz  <matz@suse.de>
21579
21580         PR target/42881
21581         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
21582         Wrap force_reg into a sequence, emit it before user.
21583
21584 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
21585
21586         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
21587         (arm_rev): New.
21588         (arm_legacy_rev): Likewise.
21589         (thumb_legacy_rev): Likewise.
21590
21591 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
21592
21593         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
21594         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
21595         on MEM's address failed, try avoid_constant_pool_reference and
21596         recurse if it returned something different.
21597         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
21598         address, try avoid_constant_pool_reference and recurse if it
21599         returned something different.
21600         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
21601         address and avoid_constant_pool_reference returned something
21602         different, don't set have_address.
21603
21604 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
21605
21606         PR debug/42861
21607         * var-tracking.c (val_store): Add modified argument, obey it.
21608         Adjust callers.
21609         (count_uses): Move down logging of main.
21610         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
21611         don't need resolution.
21612         (emit_notes_in_bb): Likewise.
21613
21614 2010-01-27  Richard Guenther  <rguenther@suse.de>
21615
21616         PR middle-end/42878
21617         * tree-inline.c (remap_decl): Delay remapping of SSA name
21618         default definitions until we need them.
21619
21620 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
21621
21622         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
21623         (rs6000_delegitimize_address): New function.
21624
21625         * config/s390/s390.c (s390_delegitimize_address): Call
21626         delegitimize_mem_from_attrs.
21627
21628         PR middle-end/42874
21629         * tree-inline.c (cannot_copy_type_1): Removed.
21630         (copy_forbidden): Don't forbid copying of functions containing
21631         records/unions with variable length fields.
21632
21633 2010-01-27  Christian Bruel  <christian.bruel@st.com>
21634
21635         Revert:
21636         PR target/42841
21637         * config/sh/sh.c (find_barrier): Increase length for non delayed
21638         conditional branches.
21639
21640 2010-01-27  Matthias Klose  <doko@ubuntu.com>
21641
21642         * configure.ac (gnu-unique-object): Fix ldd version check.
21643         * configure: Regenerate.
21644
21645 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21646
21647         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
21648         HAVE_GNU_AS value.
21649         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
21650         Test for HAVE_GNU_AS value.
21651
21652 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21653
21654         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
21655         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
21656         INT64_TYPE): Define.
21657         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
21658         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
21659         INT_LEAST64_TYPE): Define.
21660         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
21661         UINT_LEAST64_TYPE): Define.
21662         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
21663         INT_FAST64_TYPE): Define.
21664         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
21665         UINT_FAST64_TYPE): Define.
21666         (INTMAX_TYPE, UINTMAX_TYPE): Define.
21667         (INTPTR_TYPE, UINTPTR_TYPE): Define.
21668         (SIG_ATOMIC_TYPE): Define.
21669
21670 2010-01-26  Richard Guenther  <rguenther@suse.de>
21671
21672         * df-scan.c (df_scan_set_bb_info): Remove assert.
21673         (df_insn_rescan_debug_internal): Merge asserts.
21674         (df_install_ref): Likewise.
21675         (df_mark_reg): Use bitmap_set_range.
21676         (df_hard_reg_used_p): Remove assert.
21677         (df_hard_reg_used_count): Likewise.
21678
21679 2010-01-26  Richard Guenther  <rguenther@suse.de>
21680
21681         PR rtl-optimization/42685
21682         * web.c (web_main): Ignore DEBUG_INSNs.
21683
21684 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
21685
21686         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
21687
21688         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
21689         Fix types of fndecl and arglist parameters.
21690
21691 2010-01-26  Richard Guenther  <rguenther@suse.de>
21692
21693         PR middle-end/42806
21694         * tree-eh.c (unsplit_eh): Skip debug insns.
21695
21696 2010-01-26  Richard Guenther  <rguenther@suse.de>
21697
21698         PR tree-optimization/42250
21699         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
21700
21701 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
21702
21703         PR fortran/42866
21704         * omp-low.c (expand_omp_sections): Only use single_pred if
21705         l2_bb is single_pred_p.
21706
21707 2010-01-25  Christian Bruel  <christian.bruel@st.com>
21708
21709         PR target/42841
21710         * config/sh/sh.c (find_barrier): Increase length for non delayed
21711         conditional branches.
21712         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
21713
21714 2010-01-24  David S. Miller  <davem@davemloft.net>
21715
21716         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
21717         define if not using GAS.
21718         * config/sparc/sparc.c (sparc_elf_asm_named_section):
21719         Likewise.  Delete SECTION_MERGE code, which is only applicable
21720         when using GAS.
21721
21722 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
21723
21724         PR c++/42748
21725         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
21726         mangling of va_list in system headers.
21727
21728 2010-01-23  Toon Moene  <toon@moene.org>
21729
21730         * tree-predcom.c (combine_chains): Return NULL, not false.
21731
21732 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
21733
21734         * tree-loop-distribution.c (distribute_loop): Fix declaration and
21735         initialization of variable res to agree with return type.
21736
21737 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
21738
21739         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
21740         * tree-sra.c: Add include of expr.h.
21741
21742 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
21743
21744         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
21745         insert the debug stmt on the single non-EH edge from the stmt.
21746
21747 2010-01-22  Richard Henderson  <rth@redhat.com>
21748
21749         PR tree-opt/42833
21750         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
21751         the RHS until after generate_subtree_copies has insertted its
21752         code before the current statement.
21753
21754 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
21755
21756         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
21757
21758         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
21759
21760 2010-01-21  Martin Jambor  <mjambor@suse.cz>
21761
21762         PR tree-optimization/42585
21763         * tree-sra.c (struct access): New field grp_total_scalarization.
21764         (dump_access): Dump the new field.
21765         (should_scalarize_away_bitmap): New variable.
21766         (cannot_scalarize_away_bitmap): Likewise.
21767         (sra_initialize): Allocate new bitmaps.
21768         (sra_deinitialize): Free new bitmaps.
21769         (create_access_1): New function.
21770         (create_access): Parts moved to create_access_1.
21771         (type_consists_of_records_p): New function.
21772         (completely_scalarize_record): Likewise.
21773         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
21774         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
21775         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
21776         access.
21777         (analyze_all_variable_accesses): Completely scalarize small eligible
21778         records.
21779
21780 2010-01-21  Martin Jambor  <mjambor@suse.cz>
21781
21782         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
21783
21784 2010-01-21  Andrew Haley  <aph@redhat.com>
21785
21786         * gcc.c (process_command): Move lang_specific_driver before
21787         setting cc_libexec_prefix.
21788
21789 2010-01-21  Richard Guenther  <rguenther@suse.de>
21790
21791         PR middle-end/19988
21792         * fold-const.c (negate_expr_p): Pretend only negative
21793         real constants are easily negatable.
21794
21795 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
21796             Jason Merrill  <jason@redhat.com>
21797
21798         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
21799         (TYPE_TRANSPARENT_AGGR): this, for union and record.
21800         * calls.c (initialize argument_information): Handle it.
21801         * c-common.c (handle_transparent_union_attribute): Use new name.
21802         * c-decl.c (finish_struct): Ditto.
21803         * c-typeck.c (type_lists_compatible_p): Ditto.
21804         (convert_for_assignment): Use new name and also handle record.
21805         * function.c (aggregate_value_p): Handle it.
21806         (pass_by_reference): Ditto.
21807         (assign_parm_data_types): Ditto.
21808         * print-tree.c (print_node): Ditto.
21809         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
21810         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
21811         * tree.c (first_field): New fn.
21812
21813 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
21814
21815         PR target/42818
21816         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
21817         even when linking statically, for now.
21818
21819 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
21820
21821         PR debug/42715
21822         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
21823         without a cselib val.
21824         (count_uses): Accept MO_VAL_SET with no val on stores.
21825         (add_stores): Likewise.
21826
21827 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
21828
21829         * var-tracking.c (check_value_val): Add a compile time assertion.
21830         (dv_is_decl_p): Simplify.
21831         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
21832         gcc_assert if ENABLE_CHECKING.
21833
21834 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
21835
21836         PR debug/42782
21837         * var-tracking.c: Include tree-flow.h.
21838         (mem_dies_at_call): New.
21839         (dataflow_set_preserve_mem_locs): Use it.
21840         (dataflow_set_remove_mem_locs): Likewise.
21841         (dump_var): Renamed from dump_variable.  Adjust all callers.
21842         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
21843         * Makefile.in (var-tracking.o): Adjust deps.
21844
21845 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
21846
21847         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
21848
21849 2010-01-20  Richard Guenther  <rguenther@suse.de>
21850
21851         PR tree-optimization/42717
21852         * tree-ssa-dce.c (get_live_post_dom): Remove.
21853         (forward_edge_to_pdom): Take an arbitrary edge to copy
21854         degenerate PHI args from.
21855         (remove_dead_stmt): Use the first post-dominator even if it
21856         does not contain live statements as redirection destination.
21857
21858 2010-01-20  Richard Guenther  <rguenther@suse.de>
21859
21860         * tree-inline.c (estimate_num_insns): Handle EH builtins.
21861
21862 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
21863
21864         * sel-sched.c (create_speculation_check): Remove set but not used
21865         variable twin.
21866         (try_transformation_cache): Remove set but not used variable ds.
21867         (calculate_privileged_insns): Remove set but not used variables
21868         cur_insn and min_spec_insn.
21869         (find_best_expr): Remove set but not used variable avail_n.
21870         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
21871         variable e.
21872         * cgraphunit.c (assemble_thunk): Remove set but not used variable
21873         false_label.
21874         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
21875         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
21876         new_scop_exit_edge.
21877
21878 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
21879
21880         PR bootstrap/42786
21881         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
21882         cpu types.  Add support for *-sse3 cpu types.
21883         (x86_64-*-*): Ditto.
21884
21885 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
21886
21887         PR middle-end/42803
21888         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
21889         argument, call initializer_constant_valid_p_1 instead of
21890         initializer_constant_valid_p, pass CACHE to it, return NULL
21891         immediately if first call returns NULL.
21892         (initializer_constant_valid_p_1): New function.
21893         (initializer_constant_valid_p): Use it.
21894
21895 2010-01-20  Thomas Quinot  <quinot@adacore.com>
21896
21897         * tree.def (PLACEHOLDER_EXPR): Fix comment.
21898
21899 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
21900
21901         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
21902         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
21903         (loc_list_from_tree): Don't handle unsigned division.  Handle
21904         signed modulo using DW_OP_{over,over,div,mul,minus}.
21905         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
21906         modulo instead of signed.
21907
21908 2010-01-20  DJ Delorie  <dj@redhat.com>
21909
21910         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
21911         (Fpa): Pass it
21912         (h8300_emit_stack_adjustment): Propogate it.
21913         (push): Pass it.
21914         (h8300_expand_prologue): Likewise.
21915         (h8300_expand_epilogue): Likewise.
21916
21917 2010-01-19  Michael Matz  <matz@suse.de>
21918
21919         PR tree-optimization/41783
21920         * tree-data-ref.c (toplevel): Include flags.h.
21921         (dump_data_dependence_relation):  Also dump the inputs if the
21922         result will be unknown.
21923         (split_constant_offset_1): Look through some conversions.
21924         * tree-predcom.c (determine_roots_comp): Restart a new chain if
21925         the offset from last element is too large.
21926         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
21927         (reassociate_to_the_same_stmt): Handle vector registers.
21928         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
21929         (e.g. conversions).
21930         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
21931         wide_prolog_niters argument, emit widening instructions.
21932         (vect_do_peeling_for_alignment): Adjust caller, use widened
21933         variant of the iteration cound.
21934         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
21935
21936 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21937
21938         PR target/38697
21939         * config/arm/neon-testgen.m (emit_automatics): New parameter
21940         features. Adjust for Fixed_return_reg feature.
21941         (test_intrinsic): Call emit_automatics with new feature.
21942         * config/arm/neon.ml: Update copyright years.
21943         (features): New Fixed_return_reg feature.
21944         (ops): Update feature for Vget_low.
21945
21946 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
21947
21948         PR tree-optimization/42719
21949         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
21950         stmt uses.
21951
21952         PR debug/42728
21953         * fwprop.c (all_uses_available_at): Return false if def_set dest
21954         is a REG that is used in def_insn.
21955
21956 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
21957
21958         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
21959
21960         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
21961         Add argument names.
21962
21963         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
21964
21965         * target.h (struct gcc_target) <secondary_reload>: Change type
21966         of last argument to secondary_reload_info *.
21967
21968 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
21969
21970         PR target/42774
21971         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
21972         memory references with unaligned offsets.  Remove CQImode handling.
21973         (unaligned_memory_operand): Return 1 for memory references with
21974         unaligned offsets.  Remove CQImode handling.
21975
21976 2010-01-18  Richard Guenther  <rguenther@suse.de>
21977
21978         PR middle-end/39954
21979         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
21980         builtin calls.
21981
21982 2010-01-18  Richard Guenther  <rguenther@suse.de>
21983
21984         PR tree-optimization/42781
21985         * tree-ssa-structalias.c (find_what_var_points_to): Skip
21986         restrict processing only if the original variable was artificial.
21987
21988 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
21989
21990         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
21991         find number of popped argument bytes.
21992
21993         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
21994         Fix the text that describes the return value for invalid insns.
21995
21996         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
21997
21998         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
21999         Clarify what 'cost of the -dependence' is.  Fix quoting.
22000
22001         * toplev.c (default_get_pch_validity): Rename argument to "sz".
22002         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
22003
22004 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
22005
22006         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
22007         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
22008
22009 2010-01-17  Richard Guenther  <rguenther@suse.de>
22010
22011         PR middle-end/42248
22012         * function.c (split_complex_args): Take a VEC to modify.
22013         (assign_parms_augmented_arg_list): Build a VEC instead of
22014         a chain of PARM_DECLs.
22015         (assign_parms_unsplit_complex): Take a VEC of arguments.
22016         Do not fixup unmodified parms.
22017         (assign_parms): Deal with the VEC.
22018         (gimplify_parameters): Likewise.
22019
22020 2010-01-17  Richard Guenther  <rguenther@suse.de>
22021
22022         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
22023         node existence check.
22024         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
22025         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
22026         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
22027         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
22028         (gimple_execute_on_growing_pred): Likewise.
22029
22030 2010-01-17  Richard Guenther  <rguenther@suse.de>
22031
22032         PR tree-optimization/42773
22033         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
22034         (compute_antic_aux): Likewise.
22035         (compute_partial_antic_aux): Likewise.
22036
22037 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
22038
22039         PR debug/42767
22040         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
22041         and US_TRUNCATE.
22042
22043 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
22044
22045         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
22046         appearance.
22047
22048         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
22049         Fix markup for strict argument.
22050
22051         (TARGET_SCHED_REORDER2): Fix argument types.
22052
22053         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
22054         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
22055
22056         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
22057         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
22058
22059         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
22060         Add argument name.
22061
22062         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
22063         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
22064         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
22065         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
22066         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
22067
22068         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
22069
22070         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
22071
22072         (TARGET_ASM_RELOC_RW_MASK): Add return type.
22073         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
22074
22075         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
22076
22077         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
22078         Use prototype.
22079
22080         (TARGET_ASM_NAMED_SECTION): Fix argument list.
22081
22082         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
22083         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
22084
22085         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
22086
22087         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
22088
22089         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
22090         referring to it.  Fix language.
22091
22092         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
22093
22094         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
22095
22096         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
22097
22098         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
22099
22100         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
22101         '@var{stream}.  Remove stray 'and'.
22102
22103         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
22104
22105         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
22106
22107         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
22108
22109         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
22110         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
22111
22112         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
22113         Fix description of return value.
22114         Rename argument "sz" to "len."
22115
22116         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
22117         Clarify meaning of 'true' return value.
22118
22119         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
22120
22121         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
22122         rep_mode versus mode_rep.
22123
22124         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
22125
22126         (TARGET_BUILTIN_DECL): Fix name.
22127
22128         (TARGET_COMMUTATIVE_P): Fix type of first argument.
22129
22130         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
22131
22132         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
22133
22134         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
22135
22136         (TARGET_RELAXED_ORDERING): Use @deftypevr.
22137
22138         (TARGET_GET_DRAP_RTX): Note that this is a hook.
22139         Clarify language.
22140
22141         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
22142         Rename argument tm_fn to md_fn.
22143
22144         (TARGET_OPTION_PRINT): Fix argument list.
22145
22146 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
22147
22148         PR target/42664
22149         * config/i386/i386.c (ix86_fixup_binary_operands):
22150         Revert FMA4 fixup of operands.
22151
22152 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22153
22154         PR gcc/42525
22155         * Makefile.in (write_entries_to_file, install-plugin):
22156         Use \012 instead of \n with tr.
22157
22158 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
22159
22160         * configure.ac (HAVE_AS_REF): New C macro.
22161         * configure: Regenerate.
22162         * config.in: Likewise.
22163         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
22164         if HAVE_AS_REF.
22165         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
22166         if HAVE_AS_REF.
22167
22168 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
22169
22170         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
22171
22172         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
22173
22174         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
22175
22176         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
22177
22178         (TARGET_IN_SMALL_DATA_P): Fix argument type.
22179
22180         (TARGET_BINDS_LOCAL_P): Fix argument type.
22181
22182         (TARGET_ASM_FILE_END): Use prototype.
22183
22184         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
22185
22186         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
22187
22188         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
22189
22190         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
22191
22192         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
22193         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
22194
22195         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
22196         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
22197
22198         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
22199         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
22200         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
22201         (TARGET_ADDR_SPACE_CONVERT): Likewise.
22202
22203         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
22204
22205         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
22206
22207         (TARGET_INIT_BUILTINS): Use prototype.
22208
22209         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
22210         Put 'const char *' in braces.  Fix parameter types.
22211         (TARGET_INVALID_CONVERSION): Fix parameter types.
22212         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
22213         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
22214
22215         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
22216         Fix argument type.
22217
22218         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
22219
22220         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
22221
22222 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
22223
22224         * doc/tm.texi (TARGET_HELP): Fix return type.
22225
22226         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
22227         in braces.  Fix argument types.
22228
22229         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
22230
22231         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
22232
22233         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
22234
22235         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
22236         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
22237
22238         (TARGET_MANGLE_TYPE): Fix argument types.
22239
22240         (TARGET_IRA_COVER_CLASSES): Use prototype.
22241
22242         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
22243
22244         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
22245
22246         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
22247
22248         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
22249
22250         (TARGET_CALLEE_COPIES): Fix argument types.
22251
22252         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
22253
22254         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
22255
22256         (TARGET_FUNCTION_VALUE): Fix argument types.
22257
22258         (TARGET_RETURN_IN_MSB): Fix argument type.
22259
22260         (TARGET_RETURN_IN_MEMORY): Fix argument types.
22261
22262         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
22263
22264         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
22265
22266         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
22267         agree with return type.
22268
22269         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
22270
22271 2010-01-15  Jing Yu  <jingyu@google.com>
22272
22273         PR rtl-optimization/42691
22274         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
22275         a pseudo to a constant and are merged, and adjust comments.
22276
22277 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
22278
22279         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
22280
22281 2010-01-15  Richard Guenther  <rguenther@suse.de>
22282
22283         PR middle-end/42739
22284         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
22285         labels of computed or non-local gotos to the destination.
22286         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
22287         landing pad label is the first label.
22288
22289 2010-01-15  Richard Guenther  <rguenther@suse.de>
22290
22291         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
22292
22293 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
22294
22295         PR target/42747
22296         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
22297         to allow generation of the xssqrtdp instruction on power7.
22298         (sqrtdf2_fpr): Ditto.
22299
22300 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
22301
22302         PR middle-end/42674
22303         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
22304         functions with noreturn attribute.
22305
22306         PR c++/42608
22307         * varasm.c (declare_weak): Add weak attribute to decl if it
22308         doesn't have one already.
22309         (assemble_external): Only add decls to weak_decls if they also
22310         have weak attribute.
22311
22312 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
22313
22314         * var-tracking.c (var_reg_delete): Don't delete the association
22315         between REGs and values or one-part variables if the register
22316         isn't clobbered.
22317
22318 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
22319
22320         PR debug/42657
22321         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
22322         because its first operand is a non-localized variable.
22323
22324 2010-01-14  Martin Jambor  <mjambor@suse.cz>
22325
22326         PR tree-optimization/42706
22327         * tree-sra.c (encountered_recursive_call): New variable.
22328         (encountered_unchangable_recursive_call): Likewise.
22329         (sra_initialize): Initialize both new variables.
22330         (callsite_has_enough_arguments_p): New function.
22331         (scan_function): Call decl and flags check only for IPA-SRA, check
22332         whether there is a recursive call and whether it has enough arguments.
22333         (all_callers_have_enough_arguments_p): New function.
22334         (convert_callers): Look for recursive calls only when
22335         encountered_recursive_call is set.
22336         (ipa_early_sra): Bail out either if
22337         !all_callers_have_enough_arguments_p or
22338         encountered_unchangable_recursive_call.
22339
22340 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22341
22342         * sel-sched.c: Add 2010 to copyright years.
22343         * sel-sched-ir.c: Likewise.
22344         * sel-sched-ir.h: Likewise.
22345
22346 2010-01-14  Martin Jambor  <mjambor@suse.cz>
22347
22348         PR tree-optimization/42714
22349         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
22350         constructors specially.
22351
22352 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22353
22354         * config/i386/drivers-i386.c (detect_caches_intel):
22355         Add l2sizekb parameter and fill in.
22356         (host_detect_local_cpu): Add l2sizekb, fill in.
22357         Add Atom small cache heuristic.
22358
22359 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22360
22361         * config/i386/drivers-i386.c (detect_caches_cpuid4):
22362         Add level3 parameter and fill in.
22363         (detect_caches_intel): Handle level3 cache.
22364
22365 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22366
22367         * config/i386/drivers-i386.c (host_detect_local_cpu):
22368         Fix core duo detection.
22369
22370 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22371
22372         * config/i386/drivers-i386.c (host_detect_local_cpu):
22373         Fix Atom detection.
22374
22375 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22376
22377         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
22378         (rs6000_variable_issue_1): this.  Use...
22379         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
22380
22381 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22382
22383         * sel-sched-ir.c (sel_restore_other_notes): Rename to
22384         sel_restore_notes.  Update all callers.  Call reemit_notes
22385         for all insns.
22386
22387 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22388
22389         PR rtl-optimization/42246
22390         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
22391         loops.
22392
22393 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22394
22395         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
22396         all successors is the same as number of successors in current region.
22397
22398 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22399
22400         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
22401         to rename is not separable.  Otherwise check that its LHS is not NULL.
22402
22403 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22404
22405         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
22406
22407 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22408
22409         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
22410         available registers when failed to discover LHS register class.
22411         Fix indentation.  Update comment.
22412
22413 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22414             Alexander Monakov  <amonakov@ispras.ru>
22415
22416         PR rtl-optimization/42389
22417         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
22418         to can_issue_more.
22419         (advance_state_on_fence): Likewise.
22420         (sel_target_adjust_priority): Print debug output only when
22421         sched_verbose >= 4, not 2.
22422         (get_expr_cost): Do not issue all unique insns on the next cycle.
22423         (fill_insns): Initialize can_issue_more from the value saved
22424         with the fence.
22425         * sel-sched-ir.c (flist_add): New parameter issue_more.
22426         Init FENCE_ISSUE_MORE with it.
22427         (merge_fences): Likewise.
22428         (init_fences): Update call to flist_add.
22429         (add_to_fences, add_clean_fence_to_fences)
22430         (add_dirty_fence_to_fences): Likewise.
22431         (move_fence_to_fences): Update call to merge_fences.
22432         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
22433         sched groups.
22434         * sel-sched-ir.h (struct _fence): New field issue_more.
22435         (FENCE_ISSUE_MORE): New accessor macro.
22436
22437 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22438
22439         PR rtl-optimization/42388
22440         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
22441         that have no predecessors nor successors.  Do not call move_bb_info
22442         for empty blocks outside of current region.
22443
22444 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22445
22446         PR rtl-optimization/42294
22447         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
22448         * sel-sched.c (move_exprs_to_boundary): Transitively add all
22449         originators' originators.
22450
22451 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22452
22453         PR rtl-optimization/39453
22454         PR rtl-optimization/42246
22455         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
22456         for pipelining_p.
22457         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
22458
22459 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22460             Alexander Monakov  <amonakov@ispras.ru>
22461
22462         PR middle-end/42245
22463         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
22464         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
22465         argument.  Update all callers.
22466         (tidy_control_flow): ... and here.  Recompute topological order
22467         of basic blocks in region if necessary.
22468         (sel_redirect_edge_and_branch): Change return type.  Return true
22469         if topological order might have been invalidated.
22470         (purge_empty_blocks): Export and move from...
22471         * sel-sched.c (purge_empty_blocks): ... here.
22472         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
22473         (maybe_tidy_empty_bb): Delete prototype.
22474         (purge_empty_blocks): Declare.
22475
22476 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
22477
22478         PR rtl-optimization/42249
22479         * sel-sched.c (try_replace_dest_reg): When chosen register
22480         and original register is the same, do not bail out early, but
22481         still check all original insns for validity of replacing destination
22482         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
22483         in this case.
22484
22485 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
22486
22487         PR c/42721
22488         Port from no-undefined-overflow branch:
22489         2009-03-09  Richard Guenther  <rguenther@suse.de>
22490
22491         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
22492
22493 2010-01-14  Richard Guenther  <rguenther@suse.de>
22494
22495         PR lto/42665
22496         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
22497
22498 2010-01-14  Ira Rosen  <irar@il.ibm.com>
22499
22500         PR tree-optimization/42709
22501         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
22502         as scalar type in creation of constant vector operand.
22503
22504 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22505
22506         PR testsuite/42414
22507         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
22508         (check-parallel-%): Match `testsuite' directory component only
22509         at the end.
22510
22511 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
22512
22513         PR translation/39521
22514         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
22515         strings with _().
22516
22517 2010-01-13  Richard Guenther  <rguenther@suse.de>
22518
22519         PR tree-optimization/42730
22520         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
22521         offset zero.
22522
22523 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
22524
22525         PR target/pr42542
22526         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
22527         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
22528         them signed.
22529
22530 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
22531
22532         * config/bfin/libgcc-bfin.ver: Regenerate based on current
22533         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
22534         ___umulsi3_highpart.
22535
22536         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
22537         rather than schedule_insns if the pass is enabled.
22538
22539 2010-01-13  Martin Jambor  <mjambor@suse.cz>
22540
22541         PR tree-optimization/42704
22542         * tree-sra.c (sra_modify_assign): Do not delete assignments to
22543         SSA_NAMEs.
22544
22545 2010-01-13  Martin Jambor  <mjambor@suse.cz>
22546
22547         PR tree-optimization/42703
22548         * tree-sra.c (analyze_access_subtree): Check that we can build a
22549         reference to the original data within the aggregate.
22550
22551 2010-01-13  Richard Guenther  <rguenther@suse.de>
22552
22553         PR tree-optimization/42705
22554         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
22555
22556 2010-01-13  Richard Guenther  <rguenther@suse.de>
22557
22558         PR middle-end/42716
22559         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
22560
22561 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
22562
22563         PR debug/41371
22564         * var-tracking.c (values_to_unmark): New variable.
22565         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
22566         values_to_unmark vector.  Moved body to...
22567         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
22568         instead queue it into values_to_unmark vector.
22569         (vt_find_locations): Free values_to_unmark vector.
22570
22571 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
22572
22573         * config/s390/s390.c (override_options): Set
22574         default of max-pending-list-length to 256
22575
22576 2010-01-13  Richard Guenther  <rguenther@suse.de>
22577
22578         PR lto/42678
22579         * tree-pass.h (PROP_gimple_lcx): New.
22580         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
22581         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
22582         before the final cleanup_eh.
22583         (dump_properties): Dump PROP_gimple_lcx.
22584         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
22585         (tree_lower_complex_O0): Remove.
22586         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
22587         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
22588         tree_lower_complex, schedule TODO_update_ssa.
22589         * lto-streamer-out.c (output_function): Stream the functions
22590         properties.
22591         * lto-streamer-in.c (input_function): Likewise.
22592         (lto_read_body): Do not override them here.
22593
22594 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
22595
22596         PR c/42708
22597         * c-typeck.c (build_c_cast): Fold value cast to union type before
22598         wrapping it in a CONSTRUCTOR.
22599
22600 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
22601
22602         PR rtl-optimization/42699
22603         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
22604         involved.
22605
22606 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22607
22608         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
22609         SUBTARGET_WARN_UNUSED_SPEC): Move ...
22610         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
22611         SUBTARGET_WARN_UNUSED_SPEC): ... here
22612         * config/mips/iris5.h (LIBGCC_SPEC): Define.
22613
22614 2010-01-12  Julian Brown  <julian@codesourcery.com>
22615
22616         * config/arm/neon-schedgen.ml (Utils): Don't try to
22617         open missing module.
22618         (find_with_result): New.
22619
22620 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
22621
22622         PR debug/42662
22623         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
22624         sharing when canonicalizing ({lt,ge}u (plus a b) b).
22625
22626         PR tree-optimization/42645
22627         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
22628         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
22629         decl_map, set processing_debug_stmt to -1 and return name without
22630         any remapping.
22631
22632 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
22633
22634         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
22635         binutils version, and reword target configuration description.
22636
22637 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
22638
22639         * config/avr/avr.h (LINKER_NAME): Remove.
22640
22641 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
22642
22643         PR target/42416
22644         * config/rs6000/rs6000.c (rs6000_override_options): On targets
22645         that support VSX, warn for -mno-altivec if vsx is not disabled,
22646         and disable vsx.
22647
22648 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
22649             Shujing Zhao  <pearly.zhao@oracle.com>
22650
22651         PR translation/42469
22652         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
22653         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
22654         character between option name and help text.
22655         * c.opt (imultilib): Likewise.
22656
22657 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
22658
22659         * lto-streamer-out.c (output_unreferenced_globals): Output static
22660         variables.
22661
22662 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
22663
22664         PR rtl-optimization/42621
22665         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
22666         optimizing for size.
22667         (duplicate_computed_gotos): Remove now-redundant check.
22668
22669 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
22670
22671         PR target/37454
22672         * configure.ac: Save and restore LDFLAGS and LIBS
22673         * configure: Regenerate.
22674
22675 2010-01-10  Richard Guenther  <rguenther@suse.de>
22676
22677         PR middle-end/42667
22678         * builtins.c (fold_builtin_strlen): Add type argument and
22679         convert the resulting length to it.
22680         (fold_builtin_1): Adjust.
22681
22682 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
22683
22684         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
22685         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
22686         1 insn.
22687         (num_insns_constant_wide): Adjust for that change.
22688
22689 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22690
22691         PR debug/42631
22692         * web.c (union_defs): Add used argument, to combine uses of
22693         uninitialized regs.
22694         (entry_register): Adjust type and tests of used argument.
22695         (web_main): Widen used for new use.  Pass it to union_defs.
22696         * df.h (union_defs): Adjust prototype.
22697
22698 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22699
22700         PR debug/42630
22701         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
22702         uses in new incoming argument.  Free body.
22703         (reset_debug_uses_in_loop): New.
22704         (analyze_insn_to_expand_var): Call the latter if the former found
22705         anything.  Fix whitespace.  Reject invalid dest overlaps before
22706         going through all insns in the loop.
22707
22708 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22709
22710         PR debug/42629
22711         * haifa-sched.c (dying_use_p): Debug insns don't count.
22712
22713 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22714
22715         PR middle-end/42363
22716         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
22717         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
22718         (verify_gimple_call): Reject LHS in noreturn calls.
22719
22720 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22721
22722         PR debug/42604
22723         PR debug/42395
22724         * tree-vect-loop-manip.c (adjust_info): New type.
22725         (adjust_vec): New pointer to vector.
22726         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
22727         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
22728         (slpeel_update_phis_for_duplicate_loop): Use them.
22729         (slpeel_update_phi_nodes_for_guard1): Likewise.
22730         (slpeel_update_phi_nodes_for_guard2): Likewise.
22731         (slpeel_tree_peel_loop_to_edge): Likewise.
22732         (vect_update_ivs_after_vectorizer): Likewise.
22733
22734 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22735
22736         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
22737         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
22738
22739 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22740
22741         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
22742         bogus uninitialized warning.
22743
22744 2010-01-09  Richard Guenther  <rguenther@suse.de>
22745
22746         PR middle-end/42512
22747         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
22748         the evolution is compatible with the initial condition.
22749
22750 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
22751
22752         * gcc.c (process_command): Update copyright notice dates.
22753         * gcov.c (print_version): Likewise.
22754         * gcov-dump.c (print_version): Likewise.
22755         * mips-tfile.c (main): Likewise.
22756         * mips-tdump.c (main): Likewise.
22757
22758 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
22759
22760         PR target/41885
22761         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
22762         (rotlhi3): Delete.
22763         (rotlhi3_8): Delete.
22764         (rotlsi3): Delete.
22765         (rotlsi3_8): Delete.
22766         (rotlsi3_16): Delete.
22767         (rotlsi3_24): Delete.
22768         (rotl<mode>3): New.
22769         (*rotw<mode>3): New.
22770         (*rotb<mode>3): New.
22771         * config/avr/avr.c (avr_rotate_bytes): New function.
22772         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
22773
22774 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
22775
22776         PR target/37454
22777         * configure.ac: Modify -rdynamic check.
22778         * configure: Regenerate.
22779
22780 2010-01-08  DJ Delorie  <dj@redhat.com>
22781
22782         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
22783         register popping order.
22784
22785 2010-01-08  Richard Guenther  <rguenther@suse.de>
22786
22787         PR lto/42528
22788         * c.opt (fsigned-char): Also let LTO handle this option.
22789         (funsigned-char): Likewise.
22790
22791 2010-01-07  Richard Guenther  <rguenther@suse.de>
22792
22793         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
22794         (gimple_op): Likewise.
22795         (gimple_op_ptr): Likewise.
22796         (gimple_assign_set_lhs): Remove gcc_assert.
22797         (gimple_assign_set_rhs1): Likewise.
22798         (gimple_assign_set_rhs2): Likewise.
22799         (gimple_call_set_lhs): Likewise.
22800         (gimple_call_set_fn): Likewise.
22801         (gimple_call_set_fndecl): Likewise.
22802         (gimple_call_fndecl): Likewise.
22803         (gimple_call_return_type): Likewise.
22804         (gimple_call_set_chain): Likewise.
22805         (gimple_call_num_args): Likewise.
22806         (gimple_call_set_arg): Likewise.
22807         (gimple_cond_set_code): Likewise.
22808         (gimple_cond_set_lhs): Likewise.
22809         (gimple_cond_set_rhs): Likewise.
22810         (gimple_cond_set_true_label): Likewise.
22811         (gimple_cond_set_false_label): Likewise.
22812         (gimple_label_set_label): Likewise.
22813         (gimple_goto_set_dest): Likewise.
22814         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
22815         (gimple_debug_bind_get_value): Likewise.
22816         (gimple_debug_bind_get_value_ptr): Likewise.
22817         (gimple_debug_bind_set_var): Likewise.
22818         (gimple_debug_bind_set_value): Likewise.
22819         (gimple_debug_bind_reset_value): Likewise.
22820         (gimple_debug_bind_has_value_p): Likewise.
22821         (gimple_return_retval_ptr): Remove gcc_assert.
22822         (gimple_return_retval): Likewise.
22823         (gimple_return_set_retval): Likewise.
22824         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
22825         (safe_referenced_var_iterator): Remove.
22826         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
22827         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
22828         (fill_referenced_var_vec): Remove.
22829         (first_readonly_imm_use): Remove redundant gcc_assert.
22830         (phi_arg_index_from_use): Combine gcc_asserts.
22831         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
22832         (first_imm_use_stmt): Remove redundant gcc_assert.
22833         * tree-cfg.c (verify_gimple_call): Verify function and chain
22834         operands.  Verify arguments.
22835         (verify_types_in_gimple_stmt): Verify condition code and labels.
22836
22837 2010-01-07  Richard Guenther  <rguenther@suse.de>
22838
22839         PR tree-optimization/42641
22840         * sese.c (rename_map_elt_info): Use the SSA name version, do
22841         not hash pointers.
22842
22843 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
22844
22845         PR tree-optimization/42625
22846         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
22847         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
22848
22849 2010-01-07  Duncan Sands  <baldrick@free.fr>
22850
22851         * Makefile.in (PLUGIN_HEADERS): Add version.h.
22852
22853 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
22854
22855         PR target/42511
22856         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
22857         note itself is not function_invariant_p.
22858
22859 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
22860
22861         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
22862         Do not add the DF_NOTE problem.
22863         * store-motion.c (execute_rtl_store_motion): Likewise.
22864
22865 2010-01-07  Martin Jambor  <mjambor@suse.cz>
22866
22867         PR tree-optimization/42157
22868         * tree-sra.c (compare_access_positions): Stabilize sort if both
22869         accesses have integer types, return zero immediately if they are the
22870         same.
22871
22872 2010-01-06  Richard Henderson  <rth@redhat.com>
22873
22874         PR middle-end/41883
22875         * haifa-sched.c (add_to_note_list): Merge into ...
22876         (concat_note_lists): ... here, and ...
22877         (unlink_other_notes, rm_other_notes): Merge into...
22878         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
22879         NOTE_INSN_EPILOGUE_BEG.
22880
22881 2010-01-06  Richard Guenther  <rguenther@suse.de>
22882
22883         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
22884         not inline regular functions into always-inline functions.
22885
22886 2010-01-06  Nick Clifton  <nickc@redhat.com>
22887
22888         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
22889         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
22890         used together.
22891         (OVERRIDE_OPTIONS): Delete.
22892         (OPTIMIZATION_OPTIONS): Define.
22893         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
22894         * config/rx/rx.c (rx_handle_option): Issue an error message if
22895         -mcpu=rx200 and -fpu are used together.
22896         (rx_set_optimization_options): New function.  Issue an error
22897         message if an optimization attribute attempts to reset the FPU/
22898         math optimization pairing.
22899         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
22900         * config/rx/rx.opt: Set the default to 32-bit doubles.
22901         * config/rx/t-rx: Add multilibs for -nofpu option.
22902         * doc/invoke.texi: Update documentation of RX options.
22903
22904 2010-01-06  Richard Guenther  <rguenther@suse.de>
22905
22906         * tree-ssa-pre.c (name_to_id): New global.
22907         (alloc_expression_id): Simplify SSA name handling.
22908         (lookup_expression_id): Likewise.
22909         (init_pre): Zero name_to_id.
22910         (fini_pre): Free it.
22911
22912 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
22913
22914         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
22915
22916 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
22917
22918         PR target/42542
22919         * config/i386/sse.md (smaxv2di3): New.
22920         (umaxv2di3): Likewise.
22921         (sminv2di3): Likewise.
22922         (uminv2di3): Likewise.
22923
22924 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
22925
22926         PR target/42564
22927         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
22928         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
22929         (legitimize_tls_address): Likewise.
22930         (sparc_tls_referenced_p): Likewise.
22931         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
22932         and adjust calls to legitimize_pic_address.
22933         (legitimate_constant_p) Use sparc_tls_referenced_p.
22934         (legitimate_pic_operand_p): Likewise.
22935         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
22936         (sparc_tls_symbol_ref_1): Delete.
22937         (sparc_tls_referenced_p): Make static, recognize specific patterns.
22938         (legitimize_tls_address): Make static, handle CONST patterns.
22939         (legitimize_pic_address): Make static, remove unused parameter and
22940         adjust recursive calls.
22941         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
22942         and adjust call to legitimize_pic_address.
22943         (sparc_output_mi_thunk): Likewise.
22944
22945 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
22946             H.J. Lu  <hongjiu.lu@intel.com>
22947
22948         PR target/42542
22949         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
22950         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
22951         operands to make them signed.
22952
22953         Revert:
22954         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
22955
22956         PR target/42542
22957         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
22958         GTU to GT for V4SI and V2DI.
22959
22960         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
22961         (umin<mode>3): Removed.
22962         (uminv8hi3): New.
22963         (uminv4si3): Likewise.
22964
22965 2010-01-05  Martin Jambor  <mjambor@suse.cz>
22966
22967         PR tree-optimization/42462
22968         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
22969         current_function_decl to helper functions and macros.
22970
22971 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22972
22973         PR bootstrap/41771
22974         * flags.h: Don't include real.h.
22975         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
22976         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
22977         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
22978         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
22979         * dominance.c: Update copyright.
22980         * gimple.c (walk_gimple_op): Remove inline.
22981         * tree-ssa-reassoc.c: Include real.h.
22982         * Makefile.in (FLAGS_H): Remove $(REAL_H).
22983         (tree-ssa-reassoc.o): Depend on $(REAL_H).
22984
22985 2010-01-05  Nick Clifton  <nickc@redhat.com>
22986
22987         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
22988         register to push into the stack frame when the accumulator has to
22989         be saved during interrupts.
22990
22991 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
22992
22993         * doc/invoke.texi: Remove the documentation about option
22994         -Wunreachable-code.
22995         * common.opt (Wunreachable-code):  Preserved for backward
22996         compatibility.
22997         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
22998         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
22999         the backward compatibility flag section.
23000
23001 2010-01-05  Richard Guenther  <rguenther@suse.de>
23002
23003         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
23004
23005 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
23006
23007         PR other/42611
23008         * cfgexpand.c (expand_one_var): Diagnose too large variables.
23009
23010         PR tree-optimization/42508
23011         * tree-sra.c (convert_callers): Check for recursive call
23012         by comparing cgraph nodes instead of decls.
23013         (modify_function): Call ipa_modify_formal_parameters also
23014         on all same_body aliases.
23015
23016         * cgraphunit.c (cgraph_materialize_all_clones): Compare
23017         cgraph nodes when checking for same_body aliases.
23018
23019 2010-01-05  Richard Guenther  <rguenther@suse.de>
23020
23021         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
23022         allocation and lookup.
23023         (get_or_alloc_expr_for_constant): Likewise.
23024         (phi_translate): Sink allocation.
23025
23026 2010-01-04  Richard Guenther  <rguenther@suse.de>
23027
23028         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
23029         a new entry only if needed.
23030         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
23031         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
23032         hashtable lookup.
23033         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
23034         the result array.
23035         (phi_translate): Handle CONSTANTs early.
23036
23037 2010-01-04  Martin Jambor  <mjambor@suse.cz>
23038
23039         PR tree-optimization/42398
23040         * tree-sra.c (struct access): Removed flag grp_different_types.
23041         (dump_access): Do not dump the removed flag.
23042         (sort_and_splice_var_accesses): Do not set the removed flag.
23043         (sra_modify_expr): Check for type compatibility directly.
23044
23045 2010-01-04  Martin Jambor  <mjambor@suse.cz>
23046
23047         PR tree-optimization/42366
23048         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
23049         edges with variable number of parameters.
23050         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
23051         flag instead of asserting it.
23052         (ipa_read_node_info): Read uses_analysis_done flag.
23053
23054 2010-01-04  Richard Guenther  <rguenther@suse.de>
23055
23056         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
23057         iterative_hash_* as intended.
23058         (vn_reference_compute_hash): Likewise.  Simplify hashing
23059         SSA names.
23060         (vn_reference_lookup_2): Likewise.
23061         (vn_nary_op_compute_hash): Likewise.
23062         (vn_phi_compute_hash): Likewise.
23063         (expressions_equal_p): Remove strange code.
23064         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
23065         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
23066         (bitmap_insert_into_set_1): Take value-id as parameter.
23067         (add_to_value): Pass it.
23068         (bitmap_insert_into_set): Likewise.
23069         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
23070
23071 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
23072
23073         PR driver/42442
23074         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
23075         (do_self_spec): For switches with SWITCH_IGNORE set set also
23076         SWITCH_IGNORE_PERMANENTLY.
23077         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
23078         of SWITCH_IGNORE.
23079
23080 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
23081
23082         * lto-streamer-out.c (output_unreferenced_globals): Output the full
23083         tree of an unreferenced global var.
23084
23085 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
23086
23087         PR target/42542
23088         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
23089         GTU to GT for V4SI and V2DI.
23090
23091         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
23092         (umin<mode>3): Removed.
23093         (uminv8hi3): New.
23094         (uminv4si3): Likewise.
23095
23096 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
23097
23098         PR lto/42581
23099         * collect2.c (main): Turn on trace in collect2 if -v is passed
23100         to gcc with LTO.
23101
23102 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
23103
23104         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
23105         description of expression operand.
23106
23107 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
23108
23109         * configure.ac: Add install-html to target_list for Make-hooks.
23110         * configure: Regenerate.
23111         * fortran/Make-lang.in (F95_HTMLFILES): New.
23112         (fortran.html): Use it.
23113         (fortran.install-html): New.
23114         * Makefile.in (install-html): Add lang.install-html.
23115         * java/Make-lang.in (JAVA_HTMLFILES): New.
23116         (java.html): Use it.
23117         (java.install-html): New.
23118         * objc/Make-lang.in (objc.install-html): New.
23119         * objcp/Make-lang.in (obj-c++.install-html): New.
23120         * cp/Make-lang.in (c++.install-html): New.
23121         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
23122         * lto/Make-lang.in (lto.install-html): New.
23123
23124 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
23125
23126         PR lto/42520
23127         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
23128
23129 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
23130
23131         PR rtl-optimization/41862
23132         * store-motion.c (store_killed_in_insn, compute_store_table,
23133         remove_reachable_equiv_notes, replace_store_insn,
23134         build_store_vectors): Ignore all DEBUG_INSNs.
23135
23136 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
23137
23138         PR lto/41564
23139         * common.opt: Add dumpdir.
23140
23141         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
23142         isn't specified.
23143         (option_map): Add --dumpdir.
23144
23145         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
23146
23147         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
23148
23149         * opts.c (decode_options): Try dump_dir_name first if
23150         dump_base_name isn't an absolute path.
23151         (common_handle_option): Handle OPT_dumpdir.
23152
23153         * toplev.c (dump_dir_name): New.
23154         (print_switch_values): Also ignore -dumpdir.
23155
23156         * toplev.h (dump_dir_name): New.
23157
23158 2010-01-03  Richard Guenther  <rguenther@suse.de>
23159
23160         PR tree-optimization/42589
23161         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
23162         double-word expansion of bswap32.
23163
23164 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
23165
23166         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
23167         with BLOCK_FOR_INSN.
23168         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
23169         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
23170         noce_process_if_block): Likewise.
23171         * gcse.c (compute_local_properties, insert_expr_in_table,
23172         insert_set_in_table, canon_list_insert, find_avail_set,
23173         pre_insert_copy_insn): Likewise.
23174
23175         * basic-block.h (BLOCK_NUM): Move from here...
23176         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
23177
23178 2010-01-03  Richard Guenther  <rguenther@suse.de>
23179
23180         PR tree-optimization/42438
23181         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
23182         contains_may_not_return_call flag.
23183         (BB_MAY_NOTRETURN): New.
23184         (valid_in_sets): Trapping nary operations are not valid
23185         in blocks that may not return.
23186         (insert_into_preds_of_block): Remove check for trapping expressions.
23187         (compute_avail): Compute also BB_MAY_NOTRETURN.
23188
23189 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
23190
23191         * doc/invoke.texi: Add 2010 to copyright years.
23192
23193 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
23194
23195         * config/sparc/sparc.c: Fix formatting nits.
23196
23197 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
23198             Alexander Monakov  <amonakov@ispras.ru>
23199
23200         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
23201
23202 2010-01-02  Richard Guenther  <rguenther@suse.de>
23203
23204         PR middle-end/42577
23205         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
23206         (simplify_switch_using_ranges): Mark to be removed edges
23207         as non-executable.
23208
23209 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23210
23211         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
23212
23213         * collect2.c (scan_libraries): Add missing argument in call to
23214         scan_prog_file.
23215
23216 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
23217
23218         PR target/42448
23219         * config/alpha/predicates.md (aligned_memory_operand): Return false
23220         for CQImode.
23221         (unaligned_memory_operand): Return true for CQImode.
23222         * config/alpha/alpha.c (get_aligned_mem): Assert that location
23223         doesn not cross aligned SImode word boundary.
23224
23225 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
23226
23227         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
23228         Remove.
23229         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
23230         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
23231
23232 2010-01-02  Richard Guenther  <rguenther@suse.de>
23233
23234         PR lto/41597
23235         * toplev.c (compile_file): Emit LTO marker properly.  Change
23236         it to __gnu_lto_v1.
23237         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
23238
23239 2010-01-01  Richard Guenther  <rguenther@suse.de>
23240
23241         PR debug/42455
23242         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
23243
23244 2010-01-01  Richard Guenther  <rguenther@suse.de>
23245
23246         PR c/42570
23247         * c-decl.c (grokdeclarator): For zero-size arrays force
23248         structural equality checks as layout_type does.
23249
23250 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
23251
23252         * builtins.c: Update copyright to 2010.
23253
23254 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
23255
23256         PR lto/42531
23257         * lto-streamer-out.c (produce_asm): Revert the last change.
23258         (copy_function): Likewise.
23259
23260         * lto-streamer.c (lto_get_section_name): Skip any leading
23261         asterisk in name.
23262
23263 2010-01-01  Richard Guenther  <rguenther@suse.de>
23264
23265         PR middle-end/42559
23266         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
23267         for LABEL_DECLs.
23268
23269 \f
23270 Copyright (C) 2010 Free Software Foundation, Inc.
23271
23272 Copying and distribution of this file, with or without modification,
23273 are permitted in any medium without royalty provided the copyright
23274 notice and this notice are preserved.