constraints.md ("z" constraint): Change to CA_REGS.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
2
3         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
4         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
5         throughout.
6         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
7         "xer" to "ca".
8         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
9         XER_REGS to CA_REGS throughout.
10         * config/rs6000/rs6000.h: Same.
11         (ADDITIONAL_REGISTER_NAMES): Add "xer".
12         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
13         that mode_iterator "P" is the size for arithmetic carries as well.
14         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
15
16 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
17
18         PR bootstrap/44255
19         * combine.c (struct rtx_subst_pair): Define unconditionally.
20         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
21         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
22         Call make_compound_operation on pair->to.
23         (propagate_for_debug): Don't call make_compound_operation here.
24         Always use simplify_replace_fn_rtx.
25
26 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
27
28         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
29         * config/xtensa/xtensa.c (override_options): Check
30           TARGET_FORCE_NO_PIC and set flag_pic.
31         * config/xtensa/xtensa.opt: Document -mforce-no-pic
32
33 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
34
35         PR bootstrap/44299
36         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
37         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
38
39 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
40
41         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
42         toplev.h.
43         * diagnostic.c: Don't include toplev.h.
44         (progname): Define.  Moved from toplev.c.
45         (seen_error): New function.
46         * diagnostic.h: Include diagnostic-core.h.
47         (diagnostic_t, emit_diagnostic): Don't declare here.
48         * toplev.c (progname): Move to toplev.c.
49         (emit_debug_global_declarations, compile_file, finalize,
50         do_compile, toplev_main): Use seen_error.
51         * toplev.h: Include diagnostic-core.h.
52         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
53         internal_error, warning, warning_at, error, error_n, error_at,
54         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
55         verbatim, fnotice, progname): Move to diagnostic-core.h.
56         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
57         (expand_builtin_expect): Use seen_error.
58         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
59         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
60         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
61         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
62         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
63         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
64         errorcount for errors.
65         * c-opts.c (c_common_finish): Use seen_error.
66         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
67         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
68         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
69         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
70         (get_coverage_counts): Use seen_error.
71         * dwarf2out.c (dwarf2out_finish): Use seen_error.
72         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
73         gimplify_body): Use seen_error.
74         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
75         * ipa-pure-const.c (gate_pure_const): Use seen_error.
76         * ipa-reference.c (gate_reference): Use seen_error.
77         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
78         * lambda-code.c: Include diagnostic-core.h instead of
79         diagnostic.h.
80         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
81         * lto-compress.c: Include diagnostic-core.h instead of
82         diagnostic.h.
83         * lto-section-in.c: Include diagnostic-core.h instead of
84         diagnostic.h.
85         * lto-streamer-out.c: Include diagnostic-core.h instead of
86         diagnostic.h.
87         * lto-streamer.c: Include diagnostic-core.h instead of
88         diagnostic.h.
89         (gate_lto_out): Use seen_error.
90         * matrix-reorg.c: Include diagnostic-core.h instead of
91         diagnostic.h.
92         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
93         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
94         (gate_expand_omp, lower_omp_1): Use seen_error.
95         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
96         (rest_of_decl_compilation, rest_of_type_compilation,
97         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
98         * tree-cfg.c (label_to_block_fn): Use seen_error.
99         * tree-inline.c (optimize_inline_calls): Use seen_error.
100         * tree-mudflap.c (mudflap_finish_file): Use
101         seen_error.
102         * tree-optimize.c (gate_all_optimizations,
103         gate_all_early_local_passes, gate_all_early_optimizations): Use
104         seen_error.
105         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
106         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
107         (varpool_remove_unreferenced_decls,
108         varpool_assemble_pending_decls): Use seen_error.
109         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
110         (TOPLEV_H, DIAGNOSTIC_H): Update.
111         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
112         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
113         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
114         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
115         coverage.o, lambda-code.o): Update dependencies.
116
117 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
118
119         PR c++/44188
120         * c-common.c (is_typedef_decl): Move this definition ...
121         * tree.c (is_typedef_decl): ... here.
122         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
123         * c-common.h (is_typedef_decl): Move this declaration ...
124         * tree.h (is_typedef_decl): ... here.
125         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
126         * dwarf2out.c (is_naming_typedef_decl): New function.
127         (gen_tagged_type_die): Split out of ...
128         (gen_type_die_with_usage): ... this function. When an anonymous
129         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
130         is emitted for the typedef.
131         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
132         anonymous tagged types.
133
134 2010-05-27  Jason Merrill  <jason@redhat.com>
135
136         * print-tree.c (debug_vec_tree): New fn.
137         (print_vec_tree): New fn.
138         * tree.h: Declare them.
139         * gdbinit.in (pvt): New command.
140
141         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
142
143         * gdbinit.in (pdd): New command.
144
145 2010-05-27  Jan Hubicka  <jh@suse.cz>
146
147         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
148         (update_caller_keys): Return early if there are no callers;
149         only update fibheap when decresing the key.
150         (update_callee_keys): Avoid recursion.
151         (decide_inlining_of_small_functions): When badness does not match;
152         re-insert into fibheap.
153
154 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
155
156         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
157         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
158         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
159         (ALL_HOST_OBJS): Now a union of the above two.
160         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
161         all files in ALL_HOST_FRONTEND_OBJS.
162         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
163
164         * c-common.c: Pretend to be a backend file by undefining
165         IN_GCC_FRONTEND (still need rtl.h here).
166
167 2010-05-27  Jan Hubicka  <jh@suse.cz>
168
169         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
170         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
171
172 2010-05-27  Jan Hubicka  <jh@suse.cz>
173
174         * sched-ebb.c: Rename struct deps to struct deps_desc.
175         * ddg.c: Likewise.
176         * sel-sched-ir.c: Likewise.
177         * sched-deps.c: Likewise.
178         * sched-int.h: Likewise.
179         * sched-rgn.c: Likewise.
180
181 2010-05-27  Jon Beniston <jon@beniston.com>
182
183         PR 43726
184         * config/lm32/lm32.h: Remove definition of 
185         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
186
187 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
188
189         PR lto/44230
190         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
191
192 2010-05-27  Richard Guenther  <rguenther@suse.de>
193
194         PR tree-optimization/44284
195         * tree-vect-stmts.c (vectorizable_assignment): Handle
196         sign-changing conversions as simple copy.
197
198 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
199
200         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
201         Bionic C library.
202         (__gthread_active_p): Check for pthread_create if compiling against
203         Bionic C library.
204
205 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
206
207         Support compilation for Android platform.  Reimplement -mandroid.
208
209         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
210         (*android*): Set ANDROID_DEFAULT.
211         (arm*-*-linux*): Include linux-android.h.
212         (arm*-*-eabi*): Don't include previous -mandroid implementation.
213         * config/arm/eabi.h: Remove, move Android-specific parts ...
214         * config/linux-android.h: ... here.  New file.
215         * config/arm/eabi.opt: Rename to ...
216         * config/linux-android.opt: ... this.
217         (mandroid): Allow -mno-android option.  Initialize based on
218         ANDROID_DEFAULT.
219         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
220         Move logic to corresponding LINUX_TARGET_* macros.
221         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
222         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
223         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
224         Android definitions.
225         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
226         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
227         Document.
228
229 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
230
231         Add support for Bionic C library
232
233         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
234         macro.
235         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
236         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
237
238         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
239         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
240         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
241         to support multiple C libraries.  Handle Bionic.
242         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
243         (BIONIC_DYNAMIC_LINKER64): Define.
244         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
245         Update.
246         (TARGET_HAS_SINCOS): Enable for Bionic.
247
248         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
249         the last option specified on command line take effect.
250         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
251         (mbionic): New.
252         (mglibc, muclibc): Update.
253
254         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
255         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
256         DEFAULT_LIBC.
257
258         * doc/invoke.texi (-mglibc, -muclibc): Update.
259         (-mbionic): Document.
260
261 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
262
263         * c-common.h (c_register_addr_space): Add prototype.
264         (ADDR_SPACE_KEYWORD): Remove.
265         * c-common.c (c_register_addr_space): New function.
266         (c_addr_space_name): Reimplement.
267         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
268
269         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
270         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
271
272         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
273         Remove TARGET_ADDR_SPACE_KEYWORDS.
274
275 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
276
277         * input.c: New file.
278         * input.h (main_input_filename): Move declaration to toplev.h.
279         * toplev.c (input_location, line_table): Move to input.c
280         * toplev.h (main_input_filename): Move declaration from input.h.
281         * tree.c (expand_location): Move to input.c.
282         * Makefile.in (OBJS-common): Add input.o.
283         (input.o): Add dependencies.
284
285 2010-05-27  Richard Guenther  <rguenther@suse.de>
286
287         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
288         for non-existant files.
289         (fork_execute): Mark args_name file as deleted.
290
291 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
292
293         PR bootstrp/44287
294         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
295         (narrow_signed_type): Likewise.
296
297 2010-05-26  Jan Hubicka  <jh@suse.cz>
298
299         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
300         edge only when checking is enabled; check using former_clone_of;
301         check inline clones too.
302         (cgraph_materialize_clone): Record former_clone_of pointer.
303         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
304         combining redirections; dump args_to_skip bitmap
305         (cgraph_materialize_all_clones): Do no redirection here.
306         * ipa-inline.c (inline_transform): Do redirection here.
307         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
308         cheking only).
309
310 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
311
312         * config/avr/avr-c.c: Do not include regs.h.
313         Include cpplib.h for cpp_define and tree.h for c-common.h.
314         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
315         * config/avr/t-avr: Fix dependencies for avr-c.o.
316
317 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
318
319         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
320         string instead of SYMBOL_REF rtx.
321         * rtl.h (set_stack_check_libfunc): Move prototype from here...
322         * libfuncs.h: ...to here.  Adjust for explow.c change.
323
324 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
325
326         * pretty-print.c: Don't include ggc.h.
327         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
328         (identifier_to_locale): Use them for allocation.
329         * pretty-print.h (identifier_to_locale_alloc,
330         identifier_to_locale_free): Declare.
331         * toplev.c (alloc_for_identifier_to_locale): New.
332         (general_init): Set identifier_to_locale_alloc and
333         identifier_to_locale_free.
334         * Makefile.in (pretty-print.o): Update dependencies.
335
336 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
337
338         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
339         pointer types if they have different alignment or mode.
340
341 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
342
343         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
344         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
345         * config/sparc/sparc-protos.h (function_value): Remove declaration.
346         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
347         sparc_function_value_regno_p): New functions.
348         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
349         TARGET_FUNCTION_VALUE_REGNO_P): Define.
350         (function_value): Rename to...
351         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
352         argument to 'outgoing'.
353         (function_arg_record_value, function_arg_union_value,
354         function_arg_vector_value): Update comment.
355
356 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
357
358         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
359         (fde_needed_for_eh_p): New predicate.
360         (output_call_frame_info): Use it throughout to decide whether FDEs
361         are needed for EH purpose.
362         (dwarf2out_begin_prologue): Reorder assignments.
363
364 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
365
366         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
367         special case loop->header.
368         (is_predicated): New.
369         (if_convertible_loop_p): Call it.
370
371 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
372
373         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
374         iterator in parameter.  Do not generate code during the analysis.
375         (tree_if_convert_cond_stmt): Removed.
376         (tree_if_convert_stmt): Removed.
377         (predicate_bbs): New.
378         (if_convertible_loop_p): Call predicate_bbs.
379         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
380         now contains all the analysis part.
381
382 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
383
384         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
385         statements in the analysis part.
386         (tree_if_convert_stmt): Update comment.
387         (remove_conditions_and_labels): New.
388         (combine_blocks): Call remove_conditions_and_labels.
389         (tree_if_conversion): Update comment.
390
391 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
392
393         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
394         than 2 predecessors or more than 2 successors.
395
396 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
397
398         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
399         of loops in which the data dependence analysis fails.
400
401 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
402
403         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
404         CDI_POST_DOMINATORS.
405         (tree_if_conversion): Same.
406
407 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
408
409         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
410
411 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
412
413         * tree-if-conv.c: Update copyright years.  Fix comments.
414         Fix indentation.
415
416 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
417
418         * builtin-types.def (BT_INT128): New primitive type.
419         (BT_UINT128): Likewise.
420         * c-common.c (c_common_r): Add __int128 keyword.
421         (c_common_type_for_size): Handle __int128.
422         (c_common_type_for_mode): Likewise.
423         (c_common_signed_or_unsigned_type): Likewise.
424         (c_common_nodes_and_builtins): Add builtin type
425         if target supports 128-bit integer scalar.
426         * c-common.h (enum rid): Add RID_INT128.
427         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
428         if target supports 128-bit integer scalar.
429         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
430         (finish_declspecs): Likewise.
431         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
432         (c_token_starts_declspecs): Likewise.
433         (c_parser_declspecs): Likewise.
434         (c_parser_attributes): Likewise.
435         (c_parser_objc_selector): Likewise.
436         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
437         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
438         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
439         * tree.c (make_or_reuse_type): Likewise.
440         (make_unsigned_type): Likewise.
441         (build_common_tree_nodes_2): Likewise.
442         * tree.h (enum integer_type_kind): Add itk_int128 and
443         itk_unsigned_int128.
444         (int128_integer_type_node): New define.
445         (int128_unsigned_type_node): New define.
446         * doc/extend.texi: Add documentation about __int128 type.
447
448 2010-05-26  Richard Guenther  <rguenther@suse.de>
449
450         * tree-ssa-sccvn.c (copy_nary): Adjust.
451         (copy_phis): Rename to ...
452         (copy_phi): ... this.  Adjust.
453         (copy_references): Rename to ...
454         (copy_reference): ... this.  Adjust.
455         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
456         result into the valid table.
457
458 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
459
460         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
461         insn-config.h, insn-codes.h, recog.h, and optabs.h.
462
463 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
464
465         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
466
467 2010-05-26  Richard Guenther  <rguenther@suse.de>
468
469         * opts.c (common_handle_option): Handle OPT_Ofast.
470
471 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
472
473         * diagnostic.c: Don't include opts.h.
474         (permissive_error_option): Define.
475         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
476         for classify_diagnostic.  Don't use memset for
477         classify_diagnostic.  Initialize new and recently added fields.
478         (diagnostic_classify_diagnostic): Use context->n_opts instead of
479         N_OPTS.
480         (diagnostic_report_diagnostic): Pass context parameter to
481         diagnostic_report_warnings_p.  Use option_enabled and option_name
482         hooks from context.
483         (emit_diagnostic): Use permissive_error_option.
484         (permerror): Likewise.
485         * diagnostic.h: Don't include options.h.
486         (struct diagnostic_context): Add n_opts, opt_permissive,
487         inhibit_warnings, warn_system_headers, option_enabled and
488         option_name fields.  Change classify_diagnostic to a pointer.
489         * opts-diagnostic.h: New file.
490         * opts.c: Include opts-diagnostic.h.
491         (common_handle_option): Set global_dc fields for -Wfatal-errors,
492         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
493         (option_name): New function.
494         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
495         (c_common_handle_option): Set global_dc->permissive for
496         -fpermissive.
497         * c-common.c (c_cpp_error): Save and restore
498         global_dc->warn_system_headers, not variable warn_system_headers.
499         * toplev.c: Include opts-diagnostic.h.
500         (general_init): Update call to diagnostic_initialize.  Set
501         global_dc->show_column, global_dc->option_enabled and
502         global_dc->option_name.
503         (process_options): Don't set global_dc fields here.
504         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
505         (diagnostic.o, opts.o, toplev.o): Update dependencies.
506
507 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
508
509         * config/picochip/picochip.md (movsi): Split a movsi from a
510         const after reload.
511
512 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
513
514         * ggc-zone.c: Update copyright year.
515         (poison_region): Mark memory for Valgrind as undefined before
516         memset () call and inaccessible afterwards.
517         (ggc_pch_total_size): Change type of i to int.
518
519 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
520
521         * ggc-common.c (ggc_free_overhead): Allow empty slot.
522
523 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
524
525         * ggc-common.c: Update copyright year.
526         (ggc_rlimit_bound): Remove prototype.  Compile only if
527         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
528         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
529         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
530         (ggc_min_heapsize_heuristic): Likewise.
531
532 2010-05-26  Richard Guenther  <rguenther@suse.de>
533
534         PR rtl-optimization/44164
535         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
536         no-common access-path disambiguation.
537         (indirect_ref_may_alias_decl_p): Adjust.
538         (indirect_refs_may_alias_p): Likewise.
539         (refs_may_alias_p_1): Likewise.
540
541 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
542
543         * c-typeck.c: Do not include expr.h.
544
545 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
546
547         * rtl.h (decl_default_tls_model): Move prototype from here...
548         * output.h: ...to here.
549         * c-decl.c: Do not include rtl.h.
550         * c-pragma.c: Likewise.
551         * c-parser.c: Likewise.
552         * c-gimplify.c: Likewise.  And also not hard-reg-set.
553         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
554         FIXME note for it.  Add a FIXME note for expr.h.
555         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
556         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
557         defined.
558
559 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
560
561         PR target/44199
562         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
563         or total_size is larger than red zone size for non-V4 ABI, emit a
564         stack_tie resp. frame_tie insn before stack pointer restore.
565         * config/rs6000/rs6000.md (frame_tie): New insn.
566
567 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
568
569         * function.h (struct function): Add can_throw_non_call_exceptions bit.
570         * lto-streamer-in.c (input_function): Stream it in.
571         * lto-streamer-out.c (output_function): Stream it out.
572         * function.c (allocate_struct_function): Set it.
573         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
574         for flag_non_call_exceptions.
575         * cfgbuild.c (control_flow_insn_p): Likewise.
576         (make_edges): Likewise.
577         * cfgexpand.c (expand_stack_alignment): Likewise.
578         * combine.c (distribute_notes): Likewise.
579         * cse.c (cse_extended_basic_block): Likewise.
580         * except.c (insn_could_throw_p): Likewise.
581         * gcse.c (simple_mem): Likewise.
582         * ipa-pure-const.c (check_call): Likewise.
583         (check_stmt ): Likewise.
584         * lower-subreg.c (lower-subreg.c): Likewise.
585         * optabs.c (emit_libcall_block): Likewise.
586         (prepare_cmp_insn): Likewise.
587         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
588         * postreload.c (rest_of_handle_postreload): Likewise.
589         * reload1.c (reload_as_needed): Likewise.
590         (emit_input_reload_insns): Likewise.
591         (emit_output_reload_insns): Likewise.
592         (fixup_abnormal_edges): Likewise.
593         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
594         * store-motion.c (find_moveable_store): Likewise.
595         * tree-eh.c (stmt_could_throw_p): Likewise.
596         (tree_could_throw_p): Likewise.
597         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
598         * config/arm/arm.c (arm_expand_prologue): Likewise.
599         (thumb1_expand_prologue): Likewise.
600         * config/rx/rx.md (cbranchsf4): Likewise.
601         (cmpsf): Likewise.
602         * config/s390/s390.c (s390_emit_prologue): Likewise.
603         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
604         (inline_forbidden_into_p): New predicate.
605         (expand_call_inline): Use it to forbid inlining.
606         (tree_can_inline_p): Likewise.
607
608 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
609
610         * config/i386/i386-c.c: Do not include rtl.h.
611         * config/i386/t-i386: Update dependencies.
612
613 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
614
615         * attribs.c: Do not include rtl.h.
616         * Makefile.in: Update dependencies.
617
618 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
619
620         * double-int.h (double_int_and): New.
621         * combine.c (try_combine): Clean up, use double_int_* and
622         immed_double_int_const functions.
623
624 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
625
626         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
627         stderr to /dev/null instead of grep -q.
628         * configure: Regenerate.
629
630 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
631
632         * Makefile.in (EXCEPT_H): Fix typo.
633
634 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
635
636         * ira-build.c (update_conflict_hard_reg_costs): New.
637         (ira_build): Call update_conflict_hard_reg_costs.
638
639 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
640
641         PR debug/41371
642         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
643         ENABLE_CHECKING.
644         (intersect_loc_chains): Walk the s2var's loc_chain together
645         with s1node chain as long as the locations are equal, don't
646         call find_loc_in_1pdv in that case.
647
648         PR debug/42801
649         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
650         (copy_bind_expr): ... instead of here.
651         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
652         if the block hasn't been remapped.
653         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
654         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
655
656 2010-05-25  Richard Guenther  <rguenther@suse.de>
657
658         PR middle-end/44069
659         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
660         out-of-bounds array accesses.
661
662 2010-05-25  Richard Guenther  <rguenther@suse.de>
663
664         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
665         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
666         (run_gcc): Re-organize to make cleanup easier.
667
668 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
669
670         * config/s390/s390.c (optimization_options): Fix and move the
671         flag_prefetch_loop_arrays override ...
672         (override_options): ... here.
673
674 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
675
676         * diagnostic.c: Don't include plugin.h.
677         (diagnostic_report_diagnostic): Don't handle plugins specially
678         here.  Pass context to internal_error callback.
679         * diagnostic.h (struct diagnostic_context): Add context parameter
680         to internal_error callback.
681         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
682         * plugin.h (struct diagnostic_context): Declare.
683         (warn_if_plugins, plugins_internal_error_function): Declare.
684         * toplev.c (general_init): Set global_dc->internal_error.
685         * Makefile.in (diagnostic.o): Update dependencies.
686
687 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
688
689         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
690         * config/rs6000/t-darwin64: New.
691         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
692         build crt2.
693
694 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
695
696         PR 44203
697         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
698         match the original (and intended) behaviour before r159557.  This
699         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
700         in two ways.
701
702 2010-05-25  Richard Guenther  <rguenther@suse.de>
703
704         * doc/invoke.texi: Document -Ofast.
705         * target.h (struct gcc_target): Add handle_ofast.
706         * target-def.h (TARGET_HANDLE_OFAST): Add.
707         (TARGET_INITIALIZER): Adjust.
708         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
709         * common.opt (Ofast): Add.
710
711 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
712
713         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
714         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
715
716 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
717
718         PR target/43610
719         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
720         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
721         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
722         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
723
724 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
725
726         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
727         DW_OP_minus with negated offset instead of DW_OP_plus.
728         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
729
730 2010-05-25  Wei Guozhi  <carrot@google.com>
731
732         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
733         tst instruction and a new alternative.
734         * config/arm/constraints.md (Pu): New constraint.
735
736 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
737
738         * function.c (assign_stack_local_1): Initialize variable
739         to avoid warning when bootstrapping at -O3.
740
741 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
742
743         * configure.ac (all_lang_makefiles): Remove everything related to it.
744         * configure: Regenerate.
745         * Makefile.in: Fix reference to ada Make-lang.in.
746         Remove support for LANG_MAKEFILES.
747
748 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
749             Sandra Loosemore  <sandra@codesourcery.com>
750
751         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
752         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
753         description.  Add arm_neon_fp16_ok.
754         (Add Options): Add arm_neon and arm_neon_fp16.
755
756 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
757
758         * diagnostic.c: Don't include flags.h.
759         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
760         context parameters.  Check flags in the context passed as a parameter.
761         (diagnostic_build_prefix): Add context parameter.  Check
762         show_column flag in context.
763         (diagnostic_action_after_output): Check fatal_errors flag in context.
764         (diagnostic_report_current_module): Check show_column flag in context.
765         (default_diagnostic_starter): Update call to
766         diagnostic_build_prefix.
767         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
768         (emit_diagnostic): Pass context to permissive_error_kind.
769         (permerror): Pass context to permissive_error_kind.
770         * diagnostic.h (struct diagnostic_context): Add show_column,
771         pedantic_errors, permissive and fatal_errors fields.
772         (diagnostic_build_prefix): Update prototype.
773         * langhooks.c
774         * toplev.c (process_options): Set flags in global_dc from
775         flag_show_column, flag_pedantic_errors, flag_permissive,
776         flag_fatal_errors.
777         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
778         to diagnostic_build_prefix.
779         * Makefile.in (diagnostic.o): Update dependencies.
780
781 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
782
783         * config/i386/ia32intrin.h (__crc32q): Define only if
784         __SSE4_2__ is defined.
785
786 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
787
788         PR target/44132
789         PR middle-end/43602
790         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
791         DECL_VISIBILITY_SPECIFIED.
792         (emutls_decl): Set DECL_PRESERVE_P and copy
793         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
794         (emutls_finalize_control_var): New callback.
795         (emutls_finish): Finalize emutls control variables.
796         * toplev.c (compile_file): Move the call to emutls_finish ()
797         before varpool_assemble_pending_decls ().
798
799 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
800
801         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
802         added to the preprocessor condition.
803
804 2010-05-24  Paul Brook  <paul@codesourcery.com>
805
806         * gengtype-lex.l: Add HARD_REG_SET.
807         * expr.c (expand_expr_real_1): Record writes to hard registers.
808         * function.c (rtl_data): Add asm_clobbers.
809         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
810         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
811         Use crtl->asm_clobbers.
812
813 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
814
815         * doc/makefile.texi (Makefile): Mention stages 'profile'
816         and 'feedback' for profiledbootstrap.
817
818 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
819
820         PR target/44245
821         * config/i386/i386.c (def_builtin): Properly check
822         OPTION_MASK_ISA_64BIT.
823
824 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
825
826         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
827         typedefs with different but compatible types.  Allow duplicate
828         typedefs with the same type except for pedantic non-C1X, but give
829         warning for variably modified types.
830         * c-typeck.c (tagged_types_tu_compatible_p,
831         function_types_compatible_p, type_lists_compatible_p,
832         comptypes_internal): Add parameter different_types_p; set
833         *different_types_p for different but compatible types.  All
834         callers changed.
835         (comptypes_check_different_types): New.
836         * c-tree.h (comptypes_check_different_types): Declare.
837
838 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
839
840         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
841         * jump.c: Include basic-block.h.
842         * profile.c: Likewise.
843         * tree-profile.c: Likewise.
844         * coverage.c: Likewise.
845         * basic-block.h (optimize_function_for_size_p): Move to function.h.
846         (optimize_function_for_speed_p): Likewise.
847         * function.h (optimize_function_for_size_p,
848         optimize_function_for_speed_p): Moved here from basic-block.h.
849         * Makefile.in: Update dependencies.
850
851 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
852
853         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
854         before calling make; allow override through $MAKE.
855         * doc/invoke.texi (Optimize Options): Document override.
856
857 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
858
859         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
860         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
861         (rs6000_mode_dependent_address_ptr): Make static.
862         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
863         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
864         Remove.
865
866 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
867
868         PR target/43869
869         * config/i386/i386.c: Make sure that the correct regparm is passed.
870
871 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
872
873         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
874         * sbitmap.c: ...to here to internalize sbitmap element access.
875         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
876         Explain why basic-block.h is included.
877         * function.h: Include tm.h for CUMULATIVE_ARGS.
878         * Makefile.in: Update dependencies.
879
880 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
881
882         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
883         New core types.
884         * sbitmap.h (struct sbitmap_def): Do not typedef here.
885         * sbitmap.c: Include sbitmap.h.
886         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
887         hard-reg-set.h.  Split everything related to regsets out from here...
888         * regset.h: ...to here.  New file.
889         * df.h: Include regset.h and sbitmap.h.
890         * tree-flow.h: Likewise.
891         * cfgloop.h: Likewise.
892         * except.h: Do not include sbitmap.h.  Include hashtab.h.
893         * cgraph.h: Include vec.h and function.h.
894         * reload.h (struct insn_chain): Change types of live_throughout
895         and dead_or_set from regset_head to bitmap_head.
896         (compute_use_by_pseudos): Be defined also if regset.h is not included.
897         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
898         spilled_regs from regset_head to bitmap_head to avoid dependency
899         in regset.h.
900         * sel-sched-ir.h: Include regset.h.
901         * reload.c: Include df.h before reload.h.
902         * caller-save.c: Likewise.
903         * reload1.c: Likewise.
904         * ira.c: Likewise.
905         (mark_elimination): Update type of r to bitmap, consistent with
906         DF_LR_IN.
907         * dominance.c: Include bitmap.h.
908         * modulo-sched.c: Include df.h.
909         * cfganal.c: Include bitmap.h and sbitmap.h.
910         * cfgbuild.c: Include sbitmap.h.
911         * lcm.c: Include sbitmap.h.
912         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
913         * domwalk.c: Include sbitmap.h, exclude ggc.h.
914         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
915         * cselib.c: Include bitmap.h.
916         * tree-optimize.c: Include regset.h.
917         * stmt.c: Include bitmap.h.
918         * Makefile.in: Update dependencies.
919
920 2010-05-22  Jan Hubicka  <jh@suse.cz>
921
922         * cgraph.h (struct varpool_node): Add same_comdat_group.
923         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
924         pointer.
925         (output_varpool): Update call of lto_output_varpool_node.
926         (input_varpool): Read same_comdat_group pointer.
927         (input_varpool_1): Fixup same_comdat_group pointer.
928         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
929         group is needed, all are.
930         * varpool.c (varpool_remove_node): Remove node from same comdat group
931         linklist too.
932         (varpool_analyze_pending_decls): Walk same comdat groups.
933
934 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
935
936         * rtl.h (union rtunion_def): Remove rt_bit member.
937         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
938         * print-rtl (print_rtx): Do not print the member.
939         * gengtype.c (adjust_field_rtx_def): Do not handle it.
940         * gengenrtl.c (type_from_format): Likewise.
941         (accessor_from_format): Likewise.
942
943 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
944
945         * dbgcnt.c: Include toplev.h instead of errors.h.
946         * ira-emit.c: Don't include errors.h.
947         * ira.c: Include toplev.h instead of errors.h.
948         * lto-compress.c: Include toplev.h instead of errors.h.
949         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
950         ira.o, dbgcnt.o): Update dependencies.
951
952 2010-05-22  Richard Guenther  <rguenther@suse.de>
953
954         * gimple.c (gimple_types_compatible_p): Check type qualifications
955         before merging pointer to complete and pointer to incomplete type.
956         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
957         we use our own resolution algorithm.  The gold linker plugin
958         doesn't do the job we want it to do here.
959
960 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
961
962         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
963         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
964         (sparc_mode_dependent_address_p): New function.
965
966 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
967
968         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
969
970         * timevar.c: Do not include any core headers.
971         (timevar_print): De-i18n-ize.
972         (print_time): Likewise.
973         * timevar.h (timevar_push, timevar_pop): Make inline functions.
974
975 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
976
977         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
978         langhooks-def.h.
979         (diagnostic_initialize): Initialize x_data not last_function.
980         (diagnostic_report_current_function): Move to tree-diagnostic.c.
981         (default_diagnostic_starter): Call
982         diagnostic_report_current_module not
983         diagnostic_report_current_function.
984         (diagnostic_report_diagnostic): Initialize x_data not
985         abstract_origin.
986         (verbatim): Likewise.
987         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
988         x_data.
989         (struct diagnostic_context): Change last_function to x_data.
990         (diagnostic_auxiliary_data): Replace with
991         diagnostic_context_auxiliary_data and
992         diagnostic_info_auxiliary_data.
993         (diagnostic_last_function_changed, diagnostic_set_last_function,
994         diagnostic_report_current_function): Move to tree-diagnostic.h.
995         (print_declaration, dump_generic_node, print_generic_stmt,
996         print_generic_stmt_indented, print_generic_expr,
997         print_generic_decl, debug_c_tree, dump_omp_clauses,
998         print_call_name, debug_generic_expr, debug_generic_stmt,
999         debug_tree_chain, default_tree_printer): Move to
1000         tree-pretty-print.h.
1001         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
1002         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
1003         gimple-pretty-print.h.
1004         * pretty-print.c: Don't include tree.h
1005         (pp_base_format): Don't handle %K here.
1006         (pp_base_tree_identifier): Move to tree-pretty-print.c.
1007         * pretty-print.h (text_info): Change abstract_origin to x_data.
1008         (pp_tree_identifier, pp_unsupported_tree,
1009         pp_base_tree_identifier): Move to tree-pretty-print.h.
1010         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
1011         tree-pretty-print.h: New files.
1012         * tree-pretty-print.c: Include tree-pretty-print.h.
1013         (percent_K_format): New.  Moved from pretty-print.c.
1014         (pp_base_tree_identifier): Move from pretty-print.c.
1015         * c-objc-common.c: Include tree-pretty-print.h.
1016         (c_tree_printer): Handle %K here.
1017         * langhooks.c: Include tree-diagnostic.h.
1018         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
1019         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
1020         (default_tree_printer): Handle %K using percent_K_format.
1021         (general_init): Use default_tree_diagnostic_starter.
1022         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
1023         (free_lang_data): Use default_tree_diagnostic_starter.
1024         * c-pretty-print.c: Include tree-pretty-print.h.
1025         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1026         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1027         * dwarf2out.c: Include tree-pretty-print.h.
1028         * except.c: Include tree-pretty-print.h.
1029         * gimple-pretty-print.c: Include tree-pretty-print.h and
1030         gimple-pretty-print.h.
1031         * gimplify.c: Include tree-pretty-print.h.
1032         * graphite-poly.c: Include tree-pretty-print.h and
1033         gimple-pretty-print.h.
1034         * ipa-cp.c: Include tree-pretty-print.h.
1035         * ipa-inline.c: Include gimple-pretty-print.h.
1036         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1037         * ipa-pure-const.c: Include gimple-pretty-print.h.
1038         * ipa-struct-reorg.c: Include tree-pretty-print.h and
1039         gimple-pretty-print.h.
1040         * ipa-type-escape.c: Include tree-pretty-print.h.
1041         * print-rtl.c: Include tree-pretty-print.h.
1042         * print-tree.c: Include gimple-pretty-print.h.
1043         * sese.c: Include tree-pretty-print.h.
1044         * tree-affine.c: Include tree-pretty-print.h.
1045         * tree-browser.c: Include tree-pretty-print.h.
1046         * tree-call-cdce.c: Include gimple-pretty-print.h.
1047         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1048         * tree-chrec.c: Include tree-pretty-print.h.
1049         * tree-data-ref.c: Include tree-pretty-print.h and
1050         gimple-pretty-print.h.
1051         * tree-dfa.c: Include tree-pretty-print.h.
1052         * tree-if-conv.c: Include tree-pretty-print.h and
1053         gimple-pretty-print.h.
1054         * tree-inline.c: Include tree-pretty-print.h.
1055         * tree-into-ssa.c: Include tree-pretty-print.h and
1056         gimple-pretty-print.h.
1057         * tree-nrv.c: Include tree-pretty-print.h.
1058         * tree-object-size.c: Include tree-pretty-print.h and
1059         gimple-pretty-print.h.
1060         * tree-outof-ssa.c: Include tree-pretty-print.h and
1061         gimple-pretty-print.h.
1062         * tree-parloops.c: Include tree-pretty-print.h and
1063         gimple-pretty-print.h.
1064         * tree-predcom.c: Include tree-pretty-print.h and
1065         gimple-pretty-print.h.
1066         * tree-scalar-evolution.c: Include tree-pretty-print.h and
1067         gimple-pretty-print.h.
1068         * tree-sra.c: Include tree-pretty-print.h.
1069         * tree-ssa-address.c: Include tree-pretty-print.h.
1070         * tree-ssa-alias.c: Include tree-pretty-print.h.
1071         * tree-ssa-ccp.c: Include tree-pretty-print.h and
1072         gimple-pretty-print.h.
1073         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
1074         * tree-ssa-copy.c: Include tree-pretty-print.h and
1075         gimple-pretty-print.h.
1076         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
1077         * tree-ssa-dce.c: Include tree-pretty-print.h and
1078         gimple-pretty-print.h.
1079         * tree-ssa-dom.c: Include tree-pretty-print.h and
1080         gimple-pretty-print.h.
1081         * tree-ssa-dse.c: Include gimple-pretty-print.h.
1082         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
1083         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
1084         * tree-ssa-live.c: Include tree-pretty-print.h and
1085         gimple-pretty-print.h.
1086         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
1087         gimple-pretty-print.h.
1088         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
1089         gimple-pretty-print.h.
1090         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
1091         gimple-pretty-print.h.
1092         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
1093         gimple-pretty-print.h.
1094         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
1095         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
1096         * tree-ssa-operands.c: Include tree-pretty-print.h and
1097         gimple-pretty-print.h.
1098         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
1099         gimple-pretty-print.h.
1100         * tree-ssa-pre.c: Include tree-pretty-print.h and
1101         gimple-pretty-print.h.
1102         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
1103         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
1104         gimple-pretty-print.h.
1105         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
1106         gimple-pretty-print.h.
1107         * tree-ssa-sink.c: Include gimple-pretty-print.h.
1108         * tree-ssa-ter.c: Include tree-pretty-print.h and
1109         gimple-pretty-print.h.
1110         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
1111         * tree-ssa.c: Include tree-pretty-print.h and
1112         gimple-pretty-print.h.
1113         * tree-stdarg.c: Include gimple-pretty-print.h.
1114         * tree-switch-conversion.c: Include gimple-pretty-print.h.
1115         * tree-tailcall.c: Include tree-pretty-print.h and
1116         gimple-pretty-print.h.
1117         * tree-vect-data-refs.c: Include tree-pretty-print.h and
1118         gimple-pretty-print.h.
1119         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
1120         gimple-pretty-print.h.
1121         * tree-vect-loop.c: Include tree-pretty-print.h and
1122         gimple-pretty-print.h.
1123         * tree-vect-patterns.c: Include gimple-pretty-print.h.
1124         * tree-vect-slp.c: Include tree-pretty-print.h and
1125         gimple-pretty-print.h.
1126         * tree-vect-stmts.c: Include tree-pretty-print.h and
1127         gimple-pretty-print.h.
1128         * tree-vectorizer.c: Include tree-pretty-print.h.
1129         * tree-vrp.c: Include tree-pretty-print.h and
1130         gimple-pretty-print.h.
1131         * value-prof.c: Include tree-pretty-print.h and
1132         gimple-pretty-print.h.
1133         * var-tracking.c: Include tree-pretty-print.h.
1134         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
1135         (tree-diagnostic.o): New dependencies.
1136         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
1137         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
1138         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
1139         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
1140         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
1141         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
1142         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
1143         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
1144         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
1145         tree-ssa-address.o, tree-ssa-loop-niter.o,
1146         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
1147         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
1148         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
1149         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
1150         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
1151         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
1152         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
1153         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
1154         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
1155         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
1156         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
1157         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
1158         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
1159         tree-switch-conversion.o, var-tracking.o, value-prof.o,
1160         cfgexpand.o, pretty-print.o): Update dependencies.
1161
1162 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
1163
1164         * tree-ssa-structalias.c: Remove tm_p.h from include.
1165
1166 2010-05-21  Jeff Law  <law@redhat.com>
1167
1168         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
1169
1170 2010-05-21  Jason Merrill  <jason@redhat.com>
1171
1172         * tree-eh.c (cleanup_is_dead_in): New.
1173         (lower_try_finally): Don't generate a dead cleanup region.
1174         (lower_cleanup): Likewise.
1175
1176 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1177
1178         PR debug/44223
1179         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
1180         unchain each use from the cyclic next_regno_use chain first.
1181
1182 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1183
1184         * real: Do not include gmp.h, mpfr.h, and mpc.h.
1185         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
1186         (real_value_negate, real_value_abs): New prototypes.
1187         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
1188         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
1189         new include file for interface between MPFR and REAL_VALUE_TYPE.
1190         * real.c: Include realmpfr.h.
1191         (real_arithmetic2): Remove legacy function.
1192         (real_value_negate): New.
1193         (real_value_abs): New.
1194         (mfpr_from_real, real_from_mpfr): Move from here...
1195         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
1196         * builtins.c: Include realmpfr.h.
1197         * fold-const.c: Include realmpfr.h.
1198         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
1199         (fold_negate_const): Likewise.
1200         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
1201         * toplev.c: Include realmpfr.h.
1202         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
1203         and real_value_negate.
1204         * fixed-value.c (check_real_for_fixed_mode): Likewise.
1205         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
1206         (vfp3_const_double_index): Likewise.
1207         (arm_print_operand): Likewise.
1208         * Makefile.in: Update dependencies.
1209
1210 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1211
1212         * config/s390/s390.c (override_options): Increase the default
1213         of max-completely-peel-times.
1214
1215 2010-05-21  Julian Brown  <julian@codesourcery.com>
1216             Mark Mitchell  <mark@codesourcery.com>
1217
1218         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
1219         sibling calls for Thumb-1.
1220         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
1221         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
1222         Thumb-2.
1223         (*call_insn, *call_value_insn): Don't use for Thumb-2.
1224         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
1225         for Thumb-2.
1226         (return): New expander.
1227         (*arm_return): New name for ARM return insn.
1228         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
1229
1230 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
1231
1232         * config.gcc (sparc64-*-rtems*): New target.
1233
1234 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1235
1236         * tree.c (build_function_decl_skip_args): Fix grammar.
1237         (build_function_type_list_1): Fix typos, adjust formatting.
1238
1239 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1240
1241         * tree.h: Include real.h and fixed-value.h as basic datatypes.
1242         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
1243         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
1244         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
1245         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
1246         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
1247         tree-pretty-print.c, tree-loop-distribution.c,
1248         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
1249         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
1250         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
1251         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
1252         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
1253         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
1254         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
1255         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
1256         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
1257         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
1258         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
1259         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
1260         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
1261         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
1262         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
1263         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
1264         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
1265         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
1266         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
1267         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
1268         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
1269         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
1270         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
1271         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
1272         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
1273         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
1274         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
1275         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
1276         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
1277         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
1278         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
1279         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
1280         config/score/score7.c, config/score/score.c, config/arm/arm.c,
1281         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
1282         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
1283         config/bfin/bfin.c: Clean up redundant includes.
1284         * Makefile.in: Update accordingly.
1285
1286 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1287
1288         PR middle-end/44204
1289         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
1290         statement has no arguments.
1291
1292 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
1293
1294         PR/44139
1295         * varasm.c (emutls_decl): Merge attributes to new decl.
1296
1297 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1298
1299         PR middle-end/44101
1300         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
1301         around the uniquized constructor if its type requires a conversion.
1302
1303 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1304
1305         PR debug/44205
1306         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
1307         at -O0 goto_locus of any of the incoming edges differs from
1308         goto_locus of outgoing edge, or gimple_location of any of the
1309         labels differs.
1310
1311 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
1312
1313         * ira.c (ira_non_ordered_class_hard_regs): Define.
1314         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
1315         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
1316         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
1317         cost of unaligned hard regs when allocating multi-reg pseudos.
1318
1319 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
1320
1321         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
1322         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
1323         for TARGET_NO_FLOAT.
1324         * config/mips/mips.c (mips_file_start): Expand conditional expression
1325         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
1326         (mips_override_options): Move -mno-float override -msoft-float and
1327         -mhard-float.
1328         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
1329         Condition(TARGET_SUPPORTS_NO_FLOAT).
1330         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
1331         __mips_no_float here.
1332         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
1333         (TARGET_SUPPORTS_NO_FLOAT): Define.
1334         * config/mips/sdemtk.opt: Delete.
1335
1336 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
1337
1338         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
1339
1340 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
1341
1342         PR target/43733
1343         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
1344         * configure: Regenerate.
1345         * config.in: Regenerate.
1346         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
1347         instead of sahf only for 64bit targets.
1348
1349 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1350
1351         PR debug/44178
1352         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
1353         setup_ref_regs for DEBUG_INSNs.
1354
1355 2010-05-20  Jan Hubicka  <jh@suse.cz>
1356
1357         PR middle-end/44197
1358         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
1359
1360 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
1361
1362         PR bootstrap/43870
1363         * df-scan.c (df_ref_compare): Stabilize sort.
1364
1365 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1366
1367         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
1368         argument.  Don't use DW_OP_piece if offset is non-zero,
1369         put offset into second DW_OP_bit_piece argument.
1370         (dw_sra_loc_expr): Adjust callers.  For memory expressions
1371         compute offset.
1372
1373 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
1374
1375         PR target/44202
1376         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
1377         settings for 16-bit-constant "addo" alternative.
1378
1379 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
1380
1381         * config/mips/mips-dsp.md (add<DSPV:mode>3,
1382         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
1383
1384         PR target/43764
1385         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
1386         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
1387         Use it.
1388
1389 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
1390
1391         * diagnostic.c (FLOAT, FFS): Don't undefine.
1392         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
1393         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
1394         include ordering.
1395
1396 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
1397
1398         * combine.c (propagate_for_debug): Call make_compound_operation
1399         on the source value.
1400         (try_combine): When implementing a split chosen by find_split_point,
1401         either copy i2src or set it to null.  Assert that i2src is not null
1402         before substituting into CALL_INSN_FUNCTION_USAGE.
1403
1404 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
1405
1406         * double-int.h (double_int_ior): New function.
1407         * tree.h (build_int_cst_wide_type): Remove.
1408         * tree.c (build_int_cst_wide_type): Remove.
1409         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
1410         of build_int_cst_wide_type.
1411         * stor-layout.c (set_sizetype): (Ditto.).
1412         * dojump.c (do_jump): Use build_int_cstu instead of
1413         build_int_cst_wide_type.
1414
1415 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1416
1417         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
1418         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
1419         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
1420         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
1421         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
1422         propagate the 'data' argument to copy_tree_r.
1423         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
1424         Propagate 'data' argument to walk_tree.
1425         (copy_if_shared): New function.
1426         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
1427         (unmark_visited): New function.
1428         (unshare_body): Call copy_if_shared instead of doing it manually.
1429         (unvisit_body): Call unmark_visited instead of doing it manually.
1430
1431 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
1432
1433         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
1434         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
1435         * hooks.c: Likewise.
1436         * target-def.h (TARGET_FOLD_BUILTIN): Define to
1437         hook_tree_tree_int_treep_bool_null.
1438         * target.h (struct gcc_target): Update signature of fold_builtin
1439         field.
1440         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
1441         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
1442         instead of the call expression.
1443         (fold_builtin_call_array): Pass n and argarray directly.
1444         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
1445         consing a list.
1446         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
1447         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
1448         `i' and use it in place of `arity'.
1449         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
1450         Dereference `args' directly.
1451         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
1452
1453 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1454
1455         * doc/sourcebuild.texi (Effective-Target Keywords): Document
1456         3dnow, sse3, sse2.
1457         (Directives): Document optional dg-require-effective-target
1458         selector.
1459
1460 2010-05-19  Richard Guenther  <rguenther@suse.de>
1461
1462         PR lto/44196
1463         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
1464
1465 2010-05-19  Richard Guenther  <rguenther@suse.de>
1466
1467         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
1468         * common.opt (fwhopr=): New.
1469         * opts.c (common_handle_option): Handle OPT_fwhopr.
1470         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
1471         * collect2.c (main): Match -fwhopr*.
1472         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
1473         Execute ltrans stage in parallel when jobs is bigger than 1.
1474
1475 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1476
1477         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
1478         pentiumpro on Solaris 8/x86 with Sun as.
1479         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
1480         hidden alias bug.
1481         (gcc_cv_as_ix86_quad): Check for .quad directive.
1482         * configure: Regenerate.
1483         * config.in: Regenerate.
1484         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
1485
1486 2010-05-19  Martin Jambor  <mjambor@suse.cz>
1487
1488         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
1489         also for indirect edges.  Actual printing moved...
1490         (ipa_print_node_jump_functions_for_edge): ...here.
1491         (ipa_compute_jump_functions): Renamed to
1492         ipa_compute_jump_functions_for_edge and made static.
1493         (ipa_compute_jump_functions): New function.
1494         (make_edge_direct_to_target): Check if the number of arguments on
1495         the newly direct edge is the same as the number of parametrs of
1496         the callee.
1497         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
1498         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
1499         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
1500         analysis functions unconditionally, call the new
1501         ipa_analyze_params_uses on the node instead of every edge.
1502
1503 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
1504
1505         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
1506         to tree.
1507         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
1508         also checks for a constant int vs.  non-constant but
1509         loop-invariant steps.
1510         (find_or_create_group): Change the sort algorithm to only consider
1511         steps that are constant ints.
1512         (idx_analyze_ref): Adopt code to handle a tree instead of a
1513         HOST_WIDE_INT for step.
1514         (gather_memory_references_ref): Handle tree instead of int and be
1515         prepared to see a NULL_TREE.
1516         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
1517         prefetches if the step cannot be calculated at compile time.
1518         (issue_prefetch_ref): Issue prefetches for non-constant but
1519         loop-invariant steps.
1520
1521 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1522
1523         Revert:
1524         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1525
1526         * tree.h (build_call_list): Remove.
1527         * tree.c (build_call_list): Remove.
1528
1529 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1530
1531         * tree.h (build_call_list): Remove.
1532         * tree.c (build_call_list): Remove.
1533
1534 2010-05-18  Jan Hubicka  <jh@suse.cz>
1535
1536         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
1537
1538 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
1539
1540         PR rtl-optimization/43332
1541         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
1542
1543 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
1544
1545         * tree.h (build_int_cstu): Implement as static inline.
1546         * tree.c (build_int_cstu): Remove function.
1547         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
1548         sign extended.
1549
1550 2010-05-18  Richard Guenther  <rguenther@suse.de>
1551
1552         PR lto/44143
1553         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
1554         (debug): Initialize from -save-temps.
1555         (collect_execute): Print command-line when verbose.
1556         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
1557         for ltrans invocation.  Produce -dumpbase flag again.
1558         (process_args): Remove.
1559         (main): Simplify.
1560         * collect2.c (maybe_run_lto_and_relink): Only pass object
1561         files to lto-wrapper.
1562         * gcc.c (LINK_COMMAND_SPEC): Likewise.
1563
1564 2010-05-18  Jan Hubicka  <jh@suse.cz>
1565
1566         * opts.c (decode_options): Do not disable whopr at ipa_cp.
1567         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
1568
1569 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
1570
1571         PR lto/44184
1572         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
1573         in a GIMPLE_ASM.
1574         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
1575         in a GIMPLE_ASM.
1576
1577 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
1578
1579         PR debug/41371
1580         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
1581         rtx_equal_p inline.
1582
1583 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
1584
1585         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
1586         lto-macho as lto_binary_reader.
1587
1588         * darwin.c (darwin_asm_named_section): Do not add assembler comment
1589         after .section directive; just print it before the directive instead.
1590
1591 2010-05-17  Jan Hubicka  <jh@suse.cz>
1592
1593         * cgraph.c (cgraph_create_virtual_clone): Only check
1594         versionable_function_p when not in wpa and checking is enabled.
1595         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
1596         there are no more functions to materialize.
1597
1598 2010-05-17  Jan Hubicka  <jh@suse.cz>
1599
1600         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
1601         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
1602         New functions.
1603         (output_cgraph): Call output_cgraph_opt_summary.
1604         (input_cgrpah): Call input_cgraph_opt_summary.
1605         (output_cgraph_opt_summary_p, output_node_opt_summary,
1606         input_node_opt_summary, input_cgraph_opt_section): New functions.
1607         * lto-section-in.c (lto_section_name): Add cgraphopt.
1608         * tree-inline.c (tree_function_versioning): Handle parm_num.
1609         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
1610         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
1611
1612 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
1613
1614         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
1615         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
1616         the insn to prefetch ratio heuristic to loops with known trip count.
1617
1618 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
1619
1620         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
1621         (schedule_prefetches): Do not generate a prefetch if the unroll factor
1622         is far from what is required by the prefetch.
1623
1624 2010-05-17  Jan Hubicka  <jh@suse.cz>
1625
1626         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
1627         (ipcp_estimate_growth): Likewise.
1628         (ipcp_const_param_count): Likewise.
1629         (ipcp_insert_stage): Likewise.
1630         * ipa-prop.c (visit_load_for_mod_analysis): New function.
1631         (visit_store_addr_for_mod_analysis): Set used flag.
1632         (ipa_detect_param_modifications): Set used flag for SSE params;
1633         update use of walk_stmt_load_store_addr_ops.
1634         (ipa_print_node_params): Print used flag.
1635         (ipa_write_node_info): Stream used flag.
1636         (ipa_read_node_info): Likewise.
1637         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
1638         (ipa_is_param_used): New function.
1639         (lto_ipa_fixup_call_notes): Remove unused declaration.
1640
1641 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1642
1643         PR target/44074
1644         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
1645         * configure: Regenerate.
1646         * config.in: Regenerate.
1647         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
1648         !HAVE_AS_IX86_REP_LOCK_PREFIX.
1649         Don't emit whitespace.
1650         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
1651         (*rep_movsi): Likewise.
1652         (*rep_movsi_rex64): Likewise.
1653         (*rep_movqi): Likewise.
1654         (*rep_movqi_rex64): Likewise.
1655         (*rep_stosdi_rex64): Likewise.
1656         (*rep_stossi): Likewise.
1657         (*rep_stossi_rex64): Likewise.
1658         (*rep_stosqi): Likewise.
1659         (*rep_stosqi_rex64): Likewise.
1660         (*cmpstrnqi_nz_1): Use {%;} after repz.
1661         (*cmpstrnqi_nz_rex_1): Likewise.
1662         (*cmpstrnqi_1): Likewise.
1663         (*cmpstrnqi_rex_1): Likewise.
1664         (*strlenqi_1): Use {%;} after repnz.
1665         (*strlenqi_rex_1): Likewise.
1666         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
1667         (*sync_compare_and_swap<mode>): Likewise.
1668         (sync_double_compare_and_swap<mode>): Likewise.
1669         (*sync_double_compare_and_swapdi_pic): Likewise.
1670         (sync_old_add<mode>): Likewise.
1671         (sync_add<mode>): Likewise.
1672         (sync_sub<mode>): Likewise.
1673         (sync_<code><mode>): Likewise.
1674
1675 2010-05-17  Martin Jambor  <mjambor@suse.cz>
1676
1677         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
1678         otr_token and polymorphic.
1679         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
1680         (cgraph_clone_edge): Copy the above fields.
1681         * tree.c (get_binfo_at_offset): New function.
1682         * tree.h (get_binfo_at_offset): Declare.
1683         * ipa-prop.h (enum jump_func_type): Added known_type jump function
1684         type, reordered items, updated comments.
1685         (union jump_func_value): Added base_type field, reordered fields.
1686         (enum ipa_lattice_type): Moved down in the file.
1687         (struct ipa_param_descriptor): New field polymorphic.
1688         (ipa_is_param_polymorphic): New function.
1689         * ipa-prop.c: Include gimple.h and gimple-fold.h.
1690         (ipa_print_node_jump_functions): Print known type jump functions.
1691         (compute_complex_pass_through): Renamed to...
1692         (compute_complex_assign_jump_func): this.
1693         (compute_complex_ancestor_jump_func): New function.
1694         (compute_known_type_jump_func): Likewise.
1695         (compute_scalar_jump_functions): Create known type and complex ancestor
1696         jump functions.
1697         (ipa_note_param_call): New parameter polymorphic, set the corresponding
1698         flag in the call note accordingly.
1699         (ipa_analyze_call_uses): Renamed to...
1700         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
1701         variable var only in the block where it is used.
1702         (ipa_analyze_virtual_call_uses): New function.
1703         (ipa_analyze_call_uses): Likewise.
1704         (combine_known_type_and_ancestor_jfs): Likewise.
1705         (update_jump_functions_after_inlining): Implemented handling of a
1706         number of new jump function types combination.
1707         (print_edge_addition_message): Removed.
1708         (make_edge_direct_to_target): New function.
1709         (try_make_edge_direct_simple_call): Likewise.
1710         (try_make_edge_direct_virtual_call): Likewise.
1711         (update_call_notes_after_inlining): Renamed to...
1712         (update_indirect_edges_after_inlining): this.  Moved edge creation for
1713         indirect calls to try_make_edge_direct_simple_call, also calls
1714         try_make_edge_direct_virtual_call for virtual calls.
1715         (ipa_print_node_params): Changed the header message.
1716         (ipa_write_jump_function): Stream also known type jump functions.
1717         (ipa_read_jump_function): Likewise.
1718         (ipa_write_indirect_edge_info): Stream new fields in
1719         cgraph_indirect_call_info.
1720         (ipa_read_indirect_edge_info): Likewise.
1721         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
1722         GIMPLE_FOLD_H.
1723
1724 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1725
1726         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
1727
1728 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1729
1730         * tree.h (CALL_EXPR_ARGS): Delete.
1731         (call_expr_arglist): Delete.
1732         * tree.c (call_expr_arglist): Delete.
1733         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
1734         targetm.fold_builtin.
1735         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
1736         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
1737         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
1738         arglist parameter.  Use CALL_EXPR_ARG.
1739         (picochip_expand_builtin_3op): Likewise.
1740         (picochip_expand_builtin_2opvoid): Likewise.
1741         (picochip_expand_array_get): Likewise.
1742         (picochip_expand_array_put): Likewise.
1743         (picochip_expand_array_testport): Likewise.
1744         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
1745         rather than arglist.
1746         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
1747         CALL_EXPR_ARGS.
1748         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
1749         than TREE_VALUE and TREE_CHAIN.
1750         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
1751         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
1752         the arglist.
1753
1754 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
1755
1756         PR bootstrap/42347
1757         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
1758         to have no fallthru edge.
1759
1760         PR middle-end/44102
1761         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
1762         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
1763         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
1764         add BARRIER after previous bb if needed.
1765
1766 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1767
1768         * tree.c (build_function_type_list_1): Remove bogus assert condition.
1769
1770 2010-05-17  Alan Modra  <amodra@gmail.com>
1771
1772         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
1773         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
1774         with copy_reg rtx param.
1775         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
1776         Correct cases where code for ABI_V4 did not initialise the reg
1777         used to access frame.  Also leave frame_reg_rtx as sp for large
1778         frames that save no regs.
1779
1780 2010-05-17  Martin Jambor  <mjambor@suse.cz>
1781
1782         PR middle-end/44133
1783         * tree-sra.c (create_access_replacement): New parameter rename, mark
1784         the replaement for renaming only when it is true.
1785         (get_access_replacement): Pass true in the rename parameter of
1786         create_access_replacement.
1787         (get_unrenamed_access_replacement): New function.
1788         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
1789         replacement declaration from it.
1790
1791 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
1792
1793         * function.c (try_fit_stack_local, add_frame_space): New static
1794         functions.
1795         (assign_stack_local_1): Use them.  Look for opportunities to use
1796         space previously wasted on alignment.
1797         * function.h (struct frame_space): New.
1798         (struct rtl_data): Add FRAME_SPACE_LIST member.
1799         * reload1.c (something_was_spilled): New static variable.
1800         (alter_reg): Set it.
1801         (reload): Test it in addition to testing if the frame size changed.
1802
1803 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
1804
1805         * config/s390/s390.c: Define sane prefetch settings and activate
1806         flag_prefetch_loop_arrays on -O3.
1807         * config/s390/s390.h: Declare that read can use write prefetch.
1808
1809 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
1810
1811         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
1812         build.
1813
1814 2010-05-16  Jan Hubicka  <jh@suse.cz>
1815
1816         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
1817         function body; do not check stdarg field of struct function.
1818
1819 2010-05-16  Jan Hubicka  <jh@suse.cz>
1820
1821         * cgraph.c (dump_cgraph_node): Dump versionable flag.
1822         * cgraph.h (cgraph_local_info): Add versionable flag.
1823         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
1824         (ipcp_versionable_function_p): Use it.
1825         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
1826         versionable flag.
1827
1828 2010-05-16  Jan Hubicka  <jh@suse.cz>
1829
1830         * cgraph.c (cgraph_clone_node): Take decl argument and insert
1831         clone into hash when it is different from orig.
1832         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
1833         * cgraph.h (cgraph_clone_node): Update prototype.
1834         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
1835         (lto_cgraph_encoder_delete): Delete body map.
1836         (lto_cgraph_encoder_size): Move to header.
1837         (lto_cgraph_encoder_encode_body_p,
1838         lto_set_cgraph_encoder_encode_body): New.
1839         (lto_output_node): Do not take written_decls argument; output clone_of
1840         pointer.
1841         (add_node_to): Add include_body_argument; call
1842         lto_set_cgraph_encoder_encode_body on master of the clone.
1843         (add_references): Update use of add_node_to.
1844         (compute_ltrans_boundary): Likewise.
1845         (output_cgraph): Do not create written_decls bitmap.
1846         (input_node): Take nodes argument; stream in clone_of correctly.
1847         (input_cgraph_1): Update use of input_node.
1848         * lto-streamer-out.c (lto_output): Use encoder info to decide
1849         what bodies to output.
1850         * ipa-inline.c (cgraph_clone_inlined_nodes,
1851         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
1852         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
1853         (lto_cgraph_encoder_size): Define here.
1854         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
1855         Declare.
1856
1857 2010-05-16  Richard Guenther  <rguenther@suse.de>
1858
1859         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
1860         -fipa-type-escape.
1861         * ipa-type-escape.c (gate_type_escape_vars): Run when
1862         -fipa-struct-reorg runs.
1863         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
1864         * common.opt (fipa-type-escape): Remove.
1865
1866 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
1867
1868         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
1869         (decode_options): Likewise.
1870         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
1871
1872 2010-05-16  Jan Hubicka  <jh@suse.cz>
1873
1874         * ipa.c (function_and_variable_visibility): Also bring local all
1875         aliases.
1876
1877 2010-05-16  Richard Guenther  <rguenther@suse.de>
1878
1879         * alias.c (nonoverlapping_memrefs_p): Remove use of
1880         IPA type-escape information.
1881
1882 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
1883
1884         * c-common.c (c_common_reswords): Add _Static_assert for C.
1885         * c-parser.c (c_token_starts_declaration,
1886         c_parser_next_token_starts_declaration,
1887         c_parser_static_assert_declaration_no_semi,
1888         c_parser_static_assert_declaration): New.
1889         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
1890         Handle static assertions if static_assert_ok.
1891         (c_parser_external_declaration, c_parser_declaration_or_fndef,
1892         c_parser_compound_statement_nostart, c_parser_label,
1893         c_parser_for_statement, c_parser_objc_methodprotolist,
1894         c_parser_omp_for_loop): All callers of
1895         c_parser_declaration_or_fndef changed.
1896         (c_parser_struct_declaration): Handle static assertions.
1897         (c_parser_compound_statement_nostart): Use
1898         c_parser_next_token_starts_declaration and
1899         c_token_starts_declaration to detect start of declarations.
1900         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
1901         Likewise.
1902
1903 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
1904
1905         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
1906         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
1907         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1908         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1909         (mmix_function_outgoing_value): Rename to...
1910         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
1911         (mmix_function_value_regno_p): Make static.
1912         (mmix_libcall_value): New function.
1913         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
1914         mmix_function_value_regno_p): Remove declaration.
1915
1916 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
1917
1918         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
1919         BUILT_IN_ALLOCA if stack checking is enabled.
1920
1921 2010-05-16  Richard Guenther  <rguenther@suse.de>
1922
1923         * var-tracking.c (vars_copy_1): Inline ...
1924         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
1925         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
1926         (variable_merge_over_cur): Adjust.  Merge asserts.
1927         (variable_merge_over_src): Likewise.
1928         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
1929         (variable_post_merge_new_vals): Merge asserts.
1930         (variable_post_merge_perm_vals): Likewise.
1931         (find_mem_expr_in_1pdv): Likewise.
1932         (dataflow_set_different_value): Remove.
1933         (onepart_variable_different_p): Merge asserts.
1934         (variable_different_p): Likewise.
1935         (dataflow_set_different_1): Inline ...
1936         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
1937         (emit_notes_for_differences_1): Merge asserts.
1938
1939 2010-05-16  Richard Guenther  <rguenther@suse.de>
1940
1941         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
1942         * optabs.c (libfunc_decl_hash): Likewise.
1943         * varasm.c (emutls_decl): Likewise.
1944
1945 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
1946
1947         * c-decl.c: Don't include gimple.h.
1948         (merge_decls): Do not copy gimple_body.
1949
1950 2010-05-15  Jason Merrill  <jason@redhat.com>
1951
1952         * c.opt: Add -fnothrow-opt.
1953
1954 2010-05-15  Jan Hubicka  <jh@suse.cz>
1955
1956         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
1957         analyzed.
1958         * passes.c (ipa_write_summaries): Write all analyzed nodes.
1959
1960 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
1961
1962         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
1963         * Makefile.in: Add it.
1964         Fix all other Makefile dependencies for changes below.
1965         * tree.h: Include it instead of defining VEC primitives here.
1966         * gimple.h: Likewise.
1967         * rtl.h: Likewise.
1968         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
1969         * except.h: Include vecir.h, break dependence on tree.h.
1970
1971         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
1972         Move from here...
1973         * tree-iterator.c: ...to here.
1974         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
1975
1976         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
1977         tm_p.h.
1978         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
1979         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
1980         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
1981         tree-mudflap.h, and target.h.
1982         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
1983         predict.h, tree-inline.h, gimple.h, and langhooks.h.
1984         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
1985         Add FIXME for why gimple.h is still included (should be unnecessary
1986         since GCC 4.5 gimplification unit-at-a-time).
1987         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
1988         * c-pragma.c: Add FIXME for why function.h needs to be included just
1989         for cfun, at front-end level.
1990         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
1991         Do not include ggc.h, but include vecprim.h for VEC(char).
1992         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
1993         Explain why target.h is included.
1994         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
1995         Explain why gimple.h is included.
1996         * c-ppoutput.c: Do not include tm.h.
1997         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
1998         * c-parses.c: Explain why rtl.h is included, and that this (and only
1999         this) is also why tm.h must be included.
2000         Do not include except.h.
2001         * c-lang.c: Do not include ggc.h.
2002
2003 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
2004
2005         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
2006
2007 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
2008
2009         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
2010         unions by default if those structs and unions have no tags.  Do
2011         not condition anonymous struct and unions handling on flag_iso.
2012         Allow anonymous structs and unions for C1X.
2013         (finish_struct): Do not diagnose lack of named fields when
2014         anonymous structs and unions present for C1X.  Accept flexible
2015         array members in structure with anonymous structs or unions but no
2016         directly named fields.
2017         * doc/extend.texi (Unnamed Fields): Update.
2018
2019 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
2020
2021         * gimple.h (compare_field_offset): Rename into...
2022         (gimple_compare_field_offset): ...this.
2023         * gimple.c (compare_field_offset): Rename into...
2024         (gimple_compare_field_offset): ...this.  Compare the full access if
2025         the offset is self-referential.
2026         (gimple_types_compatible_p): Adjust for above renaming.
2027         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
2028         DECL_NONADDRESSABLE_P flag of fields before merging them.
2029
2030 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
2031
2032         * tree.h (ctor_to_list): Delete.
2033         * tree.c (ctor_to_list): Delete.
2034
2035 2010-05-15  Jan Hubicka  <jh@suse.cz>
2036
2037         * ipa-reference.c: Include toplev.h
2038         (is_proper_for_analysis): Only add to all_module_statics
2039         if it is allocated.
2040         (write_node_summary_p, stream_out_bitmap,
2041         ipa_reference_write_optimization_summary,
2042         ipa_reference_read_optimization_summary): New.
2043         (struct ipa_opt_pass_d pass_ipa_reference): Add
2044         optimization summary streaming.
2045         * lto-cgraph.c (referenced_from_this_partition_p,
2046         reachable_from_this_partition_p): New functions.
2047         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2048         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
2049         * opts.c (decode_options): Enable ipa_reference.
2050         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
2051         * lto-streamer.h (referenced_from_this_partition_p,
2052         reachable_from_this_partition_p): Declare.
2053
2054 2010-05-15  Richard Guenther  <rguenther@suse.de>
2055
2056         PR tree-optimization/44038
2057         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
2058         taking the address of a V_C_E of a constant.
2059
2060 2010-05-14  Jan Hubicka  <jh@suse.cz>
2061
2062         * tree.h (memory_identifier_string): Remove.
2063         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
2064         (ipa_reference_global_vars_info_d): Remove statics_not_read and
2065         statics_not_written.
2066         (ipa_reference_optimization_summary_d): New structure.
2067         (ipa_reference_optimization_summary_t): New type and vector.
2068         (ipa_reference_vars_info_d): Embedd structures instead of using
2069         pointers.
2070         (reference_vars_to_consider): Remove out of GGC space.
2071         (module_statics_escape): Remove.
2072         (global_info_obstack): Rename to ...
2073         (optimization_summary_obstack): ... this one.
2074         (initialization_status_t): Remove.
2075         (memory_identifier_string): Remove.
2076         (get_reference_vars_info): Fix indenting.
2077         (set_reference_vars_info): Likewise.
2078         (get_reference_optimization_summary): New.
2079         (set_reference_optimization_summary): New.
2080         (get_global_reference_vars_info): Remove.
2081         (ipa_reference_get_read_global): Remove.
2082         (ipa_reference_get_written_global): Remove.
2083         (ipa_reference_get_not_read_global): Update.
2084         (ipa_reference_get_not_written_global): Update.
2085         (is_proper_for_analysis): Outlaw addressable.
2086         (propagate_bits): Update for new datastructures.
2087         (analyze_variable): Remove.
2088         (init_function_info): Update for new datastructures.
2089         (clean_function_local_data): Remove.
2090         (clean_function): Remove.
2091         (copy_global_bitmap): Use optimizations_summary_obstack.
2092         (duplicate_node_data): Duplicate optimization summary only.
2093         (remove_node_data): Remove optimization summary only.
2094         (generate_summary): Do not analyze variables; do not compute
2095         module_statics_escape; do not prune solutions by it.
2096         (read_write_all_from_decl): Fix typos in comments.
2097         (propagate): Doscover readonly and nonaddressable first;
2098         update for new datastructures; share global bitmaps.
2099         * ipa-reference.h (ipa_reference_get_read_global,
2100         ipa_reference_get_written_global): Remove.
2101         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
2102         * Makefile.in: Remove ipa-refereference from GT files.
2103
2104 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2105
2106         PR debug/44112
2107         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
2108         for all SYMBOL_REF_DECLs.
2109
2110 2010-05-14  Jan Hubicka  <jh@suse.cz>
2111
2112         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
2113         (varpool_all_refs_explicit_p): New inline function.
2114         * ipa-reference.c: Update comment.
2115         (module_statics_written): Remove.
2116         (get_static_decl): Remove.
2117         (ipa_init): Do not initialize module_statics_written.
2118         (analyze_function): Likewise.
2119         (generate_summary): Likewise; do not compute module_statics_readonly
2120         and do not update variable flags.
2121         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
2122         * ipa.c: Inlucde flags.h
2123         (cgraph_local_node_p): New.
2124         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
2125         promote functions to local.
2126         (ipa_discover_readonly_nonaddressable_vars): New function.
2127         (function_and_variable_visibility): Use cgraph_local_node_p.
2128         * varpool.c (varpool_finalize_decl): Set force_output for
2129         DECL_PRESERVE_P vars.
2130
2131 2010-05-14  Jan Hubicka  <jh@suse.cz>
2132
2133         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
2134
2135 2010-05-14  Richard Guenther  <rguenther@suse.de>
2136
2137         PR tree-optimization/44119
2138         * tree-ssa-pre.c (eliminate): Properly mark replacement of
2139         a PHI node necessary.
2140
2141 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
2142
2143         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
2144
2145 2010-05-14  Jason Merrill  <jason@redhat.com>
2146
2147         PR c++/44127
2148         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
2149         (gimple_call_set_nothrow): New.
2150         * gimple.c (gimple_build_call_from_tree): Call it.
2151         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
2152
2153         PR c++/44127
2154         * gimplify.c (gimplify_seq_add_stmt): No longer static.
2155         * gimple.h: Declare it.
2156         * gimple.c (gimple_build_eh_filter): No ops.
2157
2158 2010-05-14  Jan Hubicka  <jh@suse.cz>
2159
2160         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
2161         nodes already in queue.
2162         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
2163         re-enqueueing node.
2164
2165 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2166
2167         PR debug/44136
2168         * cfgexpand.c (expand_debug_expr): If non-memory op0
2169         has BLKmode, return NULL.
2170
2171 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
2172
2173         * config.gcc: Add support for --with-cpu option for bdver1.
2174         * config/i386/i386.h (TARGET_BDVER1): New macro.
2175         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
2176         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2177         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
2178         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2179         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
2180         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
2181         (processor_type): Add PROCESSOR_BDVER1.
2182         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
2183         processor_type in config/i386/i386.h.
2184         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
2185         movaps <reg, reg> instead of movapd <reg, reg> when replacing
2186         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
2187         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
2188         to emit packed xor instead of packed double/packed integer
2189         xor for SSE and AVX when moving a zero value.
2190         * config/i386/sse.md: Add check for
2191         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
2192         movapd/movdqa for SSE and AVX.
2193         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
2194         single logical operations i.e and, or and xor instead of packed double
2195         logical operations for SSE and AVX.
2196         * config/i386/i386-c.c (ix86_target_macros_internal):
2197         Add PROCESSOR_BDVER1.
2198         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
2199         (has_fma4, has_xop): New.
2200         * config/i386/i386.c (bdver1_cost): New variable.
2201         (m_BDVER1): New macro.
2202         (m_AMD_MULTIPLE): Add m_BDVER1.
2203         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
2204         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
2205         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
2206         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
2207         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
2208         x86_tune_sse_partial_reg_dependency,
2209         x86_tune_sse_unaligned_load_optimal,
2210         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
2211         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
2212         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
2213         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
2214         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
2215         Enable/disable for bdver1.
2216         (processor_target_table): Add bdver1_cost.
2217         (cpu_names): Add bdver1.
2218         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
2219          processor_alias_table.
2220         (ix86_expand_vector_move_misalign): Change.
2221         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
2222         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
2223         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
2224         of movupd/movdqu for SSE and AVX.
2225         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
2226         (ix86_tune_adjust_cost): Add code for bdver1.
2227         (standard_sse_constant_opcode): Add check for
2228         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
2229         of packed double xor for SSE and AVX.
2230
2231 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
2232
2233         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
2234         result to unsigned.
2235
2236 2010-05-14  Tristan Gingold  <gingold@adacore.com>
2237
2238         * toplev.c (default_debug_hooks): Remove this variable.
2239         (process_options): Remove assignments to default_debug_hooks.
2240
2241 2010-05-14  Martin Jambor  <mjambor@suse.cz>
2242
2243         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
2244         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
2245         * langhooks.h (struct lang_hooks_for_decls): Removed field
2246         fold_obj_type_ref.
2247         * tree.c (free_lang_data): Remove assignment to
2248         lang_hooks.fold_obj_type_ref.
2249         * tree.def (OBJ_TYPE_REF): Update comment.
2250
2251 2010-05-14  Richard Guenther  <rguenther@suse.de>
2252
2253         PR tree-optimization/44124
2254         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
2255
2256 2010-05-14  Alan Modra  <amodra@gmail.com>
2257
2258         PR target/44075
2259         * config/rs6000/rs6000.c (struct machine_function): Reorder
2260         fields for better packing.  Add lr_save_state.
2261         (rs6000_ra_ever_killed): Return lr_save_state if set.
2262         (rs6000_emit_eh_reg_restore): Set lr_save_state.
2263
2264 2010-05-13  Jan Hubicka  <jh@suse.cz>
2265
2266         * varpool.c (decide_is_variable_needed): Drop code checking
2267         TREE_SYMBOL_REFERENCED.
2268
2269 2010-05-13  Jan Hubicka  <jh@suse.cz>
2270
2271         * final.c (output_addr_const): Do not call mark_decl_referenced.
2272         * cgraphunit.c (process_function_and_variable_attributes): Use
2273         mark_needed_node dirrectly.
2274         (assemble_thunk): Do not call mark_decl_referenced.
2275
2276 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
2277
2278         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
2279
2280 2010-05-13  Jeff Law  <law@redhat.com>
2281
2282         * ira-conflicts.c (print_allocno_conflicts): New function broken out
2283         from...
2284         (print_conflicts): Call print_allocno_conflicts.
2285
2286 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2287
2288         PR debug/44104
2289         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
2290         if it is NULL.
2291
2292 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
2293
2294         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
2295         t-mingw-w64 or t-mingw-w32 for multilib configuration.
2296         * config/i386/t-mingw-w32: New.
2297         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
2298
2299 2010-05-13  Martin Jambor  <mjambor@suse.cz>
2300
2301         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
2302         gimple-fold.c).
2303         * gimple-fold.c (get_base_binfo_for_type): New function.
2304         (gimple_get_relevant_ref_binfo): Likewise.
2305         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2306         (gimple_fold_obj_type_ref): Likewise.
2307         (fold_gimple_call): Simplify condition for folding virtual calls
2308         and call gimple_fold_obj_type_ref.
2309         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
2310         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2311
2312 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
2313
2314         * config/rs6000/rs6000-protos.h
2315         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
2316         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
2317         (rs6000_debug_mode_dependent_address)
2318         (rs6000_mode_dependent_address_ptr): Likewise.
2319
2320 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2321
2322         PR debug/43983
2323         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
2324         by SRA.
2325         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
2326         * tree-sra.c (create_access_replacement): Call unshare_expr before
2327         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
2328         * dwarf2out.c: Include tree-flow.h.
2329         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
2330         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
2331         Handle DW_OP_bit_piece.
2332         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
2333         construct_piece_list, adjust_piece_list): New functions.
2334         (add_var_loc_to_decl): Handle SRA optimized variables.
2335         Adjust for var_loc_note to loc field renaming.
2336         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
2337         in VAR_LOCATION note.
2338         (new_loc_descr_op_bit_piece): New function.
2339         (dw_sra_loc_expr): New function.
2340         (dw_loc_list): Use it.  Don't handle the last range after the
2341         loop, handle it inside of the loop.  Adjust for var_loc_note
2342         to loc field renaming.
2343         (add_location_or_const_value_attribute): Only special case
2344         single entry loc lists if loc is NOTE_P.  Adjust for
2345         var_loc_note to loc field renaming.
2346         (dwarf2out_var_location): Don't set newloc->var_loc_note
2347         and newloc->next here.
2348
2349 2010-05-12  Jan Hubicka  <jh@suse.cz>
2350
2351         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
2352         flag.
2353         * cgraph.h (cgraph_only_called_directly_p,
2354         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
2355         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
2356         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
2357         (assemble
2358         * ipa.c (cgraph_remove_unreachable_nodes): Use
2359         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
2360         flags.
2361         * tree-inline.c (copy_bb): Check address_taken flag.
2362         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
2363         externally_visible flag.
2364
2365 2010-05-12  Jason Merrill  <jason@redhat.com>
2366
2367         PR bootstrap/44048
2368         PR target/44099
2369         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
2370         * sdbout.c (plain_type_1): Likewise.
2371         * dwarf2out.c (is_base_type): Likewise.
2372         (gen_type_die_with_usage): Likewise.  Generate
2373         DW_TAG_unspecified_type for any LANG_TYPE.
2374
2375 2010-05-12  Jan Hubicka  <jh@suse.cz>
2376
2377         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
2378         indrect edges too.
2379         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
2380         (cgraph_clone_edge): Update.
2381         (cgraph_node_remove_callees): Remove indirect calls too.
2382         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
2383         (cgraph_create_indirect_edge): Update prototype.
2384         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
2385         is_proper_for_analysis.
2386         (add_new_function, visited_nodes, function_insertion_hook_holder,
2387         get_local_reference_vars_info, mark_address_taken, mark_address,
2388         mark_load, mark_store, check_asm_memory_clobber, check_call,
2389         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
2390         (ipa_init): Do not initialize visited_nodes;
2391         function_insertion_hook_holder.
2392         (analyze_variable): Rewrite.
2393         (analyze_function): Rewrite.
2394         (copy_local_bitmap): Remove.
2395         (duplicate_node_dat): Do not duplicate local info.
2396         (generate_summary): Simplify to only walk cgraph.
2397         (write_node_summary_p, ipa_reference_write_summary,
2398         ipa_reference_read_summary): Remove.
2399         (propagate): Do not remove function insertion;
2400         generate summary.
2401         (pass_ipa_reference): NULLify summary handling fields.
2402         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
2403         (input_edge): Input ecf_flags.
2404         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
2405         (update_indirect_edges_after_inlining): Ignore edges with unknown
2406         param.
2407
2408 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
2409
2410         * implicit-zee.c: New file.
2411         * tree-pass.h (pass_implicit_zee): Declare.
2412         * passes.c (init_optimization_passes): Add zee pass.
2413         * common.opt (fzee): New flag.
2414         * timevar.def (TV_ZEE): Define.
2415         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
2416         and beyond.
2417         * Makefile.in (implicit-zee.o): Add new build file.
2418
2419 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2420             Nathan Froyd  <froydnj@codesourcery.com>
2421
2422         * c-common.c (sync_resolve_params): Remove write-only variable.
2423
2424 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
2425
2426         * target.h (struct gcc_target): Add mode_dependent_address_p field.
2427         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2428         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
2429         * targhooks.c (default_mode_dependent_address_p): New function.
2430         * targhooks.h (default_mode_dependent_address_p): Declare function.
2431         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2432         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
2433         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
2434         target hook. Change return type to bool.
2435         * recog.h (mode_dependent_address_p): Change return type to bool.
2436
2437 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2438             Nathan Froyd  <froydnj@codesourcery.com>
2439
2440         * tree-mudflap.c (build_function_type_0, build_function_type_1,
2441         build_function_type_2, build_function_type_3): Remove.
2442         (mudflap_init): Use build_function_type_list.
2443
2444 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2445             Nathan Froyd  <froydnj@codesourcery.com>
2446
2447         * coverage.c (build_fn_info_value): Call build_constructor instead of
2448         build_constructor_from_list.
2449         (build_ctr_info_value): Likewise.
2450         (build_gcov_info): Likewise.
2451
2452 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
2453
2454         * tree.c (build_constructor): Compute TREE_CONSTANT for the
2455         resultant constructor.
2456         (build_constructor_single): Don't set TREE_CONSTANT.
2457         (build_constructor_from_list): Don't compute TREE_CONSTANT.
2458
2459 2010-05-12  Jan Hubicka  <jh@suse.cz>
2460
2461         * cgraph.h (struct varpool_node): Add aux.
2462         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
2463         * varpool.c (varpool_remove_node): Do not remove initializer.
2464         (varpool_reset_queue): Export.
2465         (varpool_finalize_decl): Volatile vars are forced to be output.
2466         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
2467         replaced decl.
2468         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
2469         process_references, varpool_can_remove_if_no_refs): New functions.
2470         (cgraph_remove_unreachable_nodes): Handle variables too.
2471
2472 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2473
2474         PR target/44088
2475         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
2476
2477 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
2478
2479         PR middle-end/44085
2480         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
2481         change value of ORT_TASK.
2482         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
2483         (omp_notice_threadprivate_variable): New function.
2484         (omp_notice_variable): Call it for threadprivate variables.
2485         If enclosing ctx is a task, print enclosing task rather than
2486         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
2487         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
2488         if task has untied clause.
2489
2490         PR debug/42278
2491         * dwarf2out.c (base_type_die): Don't add name attribute here.
2492         (modified_type_die): Instead of sizetype use
2493         its underlying original type.  If a DW_TAG_base_type doesn't
2494         have name added, add __unknown__.
2495         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
2496         always call force_type_die instead.
2497
2498 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
2499
2500         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
2501         for __stack_chk_guard.
2502
2503 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2504
2505         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
2506         don't call start_source_file debug hook here...
2507         (finish_options): ... but here, after outputting predefined and
2508         command line defines and undefs.
2509
2510         PR middle-end/44071
2511         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
2512         no fallthru edge.
2513         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
2514         optimizing away empty bb with no successors, move over its
2515         footer chain to fallthru predecessor.
2516         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
2517         (rtl_split_edge): For asm goto call patch_jump_insn even if
2518         splitting fallthru edge.
2519
2520         PR c++/44059
2521         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
2522         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
2523         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
2524         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
2525         on DW.ref.* decls.
2526
2527         PR c++/44062
2528         * c-parser.c (c_parser_expression): Mark LHS of a comma
2529         expression as read if it is a decl, handled component or
2530         COMPOUND_EXPR with that on the RHS.
2531         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
2532         if it is a decl or handled component.
2533
2534 2010-05-11  Jan Hubicka  <jh@suse.cz>
2535
2536         * lto-symtab.c (lto_symtab_free): New function.
2537         * lto-streamer.h (lto_symtab_free): Declare.
2538
2539 2010-05-11  Jan Hubicka  <jh@suse.cz>
2540
2541         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
2542         that if function is needed it is reachable.
2543         (lto_output_node): See if it the function is reachable or referenced.
2544         (output_cgraph): Update call of lto_output_node.
2545         * lto-streamer.h (reachable_from_other_partition_p): Declare.
2546
2547 2010-05-11  Jan Hubicka  <jh@suse.cz>
2548
2549         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
2550         Mark as used.
2551
2552 2010-05-11  Jan Hubicka  <jh@suse.cz>
2553
2554         PR tree-optimize/44063
2555         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
2556         queue.
2557         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
2558         limits.
2559         (estimate_function_body_sizes): Compute sizes even when disregarding.
2560
2561 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
2562
2563         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
2564
2565 2010-05-11  Jan Hubicka  <jh@suse.cz>
2566
2567         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
2568         into every boundary.
2569
2570 2010-05-11  Jan Hubicka  <jh@suse.cz>
2571
2572         * matrix-reorg.c (matrix_reorg): Rebuild edges.
2573
2574 2010-05-11  Jan Hubicka  <jh@suse.cz>
2575
2576         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
2577         lto_streamer_cache_delete): Put nodes into heap.
2578         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
2579         heap.
2580
2581 2010-05-11  Jan Hubicka  <jh@suse.cz>
2582
2583         * cgraphbuild.c (cgraph_rebuild_references): New.
2584         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
2585         out extern inlines.
2586         * cgraph.h (cgraph_rebuild_references): Declare.
2587         * tree-inline.c (tree_function_versioning): Use it.
2588         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
2589
2590 2010-05-11  Jan Hubicka  <jh@suse.cz>
2591
2592         * cgraph.c: Include ipa-utils.h
2593         (cgraph_create_virtual_clone): Update references.
2594         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
2595
2596 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2597
2598         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
2599         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
2600         cache size.
2601
2602 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2603
2604         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
2605
2606 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2607
2608         * gcc.c (execute): For -### don't quote arguments that
2609         contain just alphanumerics and _/-. characters.
2610         * doc/invoke.texi: Document that change for -###.
2611
2612         PR debug/44023
2613         * df-problems.c (struct dead_debug): Add to_rescan field.
2614         (dead_debug_init): Clear to_rescan field.
2615         (dead_debug_finish): Rescan all debug insns in to_rescan
2616         bitmap and free the bitmap.
2617         (dead_debug_insert_before): Instead of rescanning debug insns
2618         immediately queue their rescanning until dead_debug_finish.
2619         (df_note_bb_compute): After dead_debug_add do continue instead
2620         of break.
2621
2622 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
2623
2624         PR debug/44028
2625         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
2626         clear also INSN_REG_USE_LIST.
2627
2628 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2629
2630         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
2631
2632 2010-05-10  Jan Hubicka  <jh@suse.cz>
2633
2634         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
2635         commited change.
2636
2637 2010-05-10  Jan Hubicka  <jh@suse.cz>
2638
2639         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
2640         Allocate encoders.
2641         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
2642         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
2643         (lto_streamer_cache_create): Init alloc pool.
2644         (lto_streamer_cache_delete): Free alloc pool.
2645         * lto-streamer.h: Include alloc pool.
2646         (lto_streamer_cache_d): Use alloc pool.
2647         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
2648
2649 2010-05-10  Jan Hubicka  <jh@suse.cz>
2650
2651         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
2652         * cgraphbuild.c: Include except.h
2653         (record_type_list, record_eh_tables): New function.
2654         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
2655
2656 2010-05-10  Jan Hubicka  <jh@suse.cz>
2657
2658         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
2659         __frame_dummy_init_array_entry, force_to_data): Attribute as used
2660         rather than unused.
2661
2662 2010-05-10  Michael Matz  <matz@suse.de>
2663
2664         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
2665         (can_reassociate_p): Use FLOAT_TYPE_P.
2666         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
2667         (vect_force_simple_reduction): ... this.
2668         * tree-parloops.c (gather_scalar_reductions): Use
2669         vect_force_simple_reduction.
2670         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
2671         vect_is_simple_reduction, add modify argument, if true rewrite
2672         "a-b" into "a+(-b)".
2673         (vect_is_simple_reduction, vect_force_simple_reduction): New
2674         functions.
2675         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
2676
2677 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
2678             Vladimir Makarov  <vmakarov@redhat.com>
2679
2680         PR rtl-optimization/44012
2681         * ira-build.c (remove_unnecessary_allocnos): Nullify
2682         regno_allocno_map of the removed allocno.
2683
2684 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2685
2686         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
2687         to /dev/null.
2688         * configure: Regenerate.
2689
2690 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2691
2692         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
2693         unused.
2694         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
2695         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
2696         support in Sun ld.
2697         * configure: Regenerate.
2698
2699 2010-05-10  Richard Guenther  <rguenther@suse.de>
2700
2701         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
2702         marked if the entry identifier is marked.
2703
2704 2010-05-10  Richard Guenther  <rguenther@suse.de>
2705
2706         * c-common.c (struct c_common_attributes): Add fnspec attribute.
2707         (handle_fnspec_attribute): New function.
2708         * gimple.h (gimple_call_return_flags): Declare.
2709         (gimple_call_arg_flags): Likewise.
2710         * gimple.c (gimple_call_arg_flags): New function.
2711         (gimple_call_return_flags): Likewise.
2712         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
2713         New argument flags.
2714         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
2715         return value flags.
2716         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
2717         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
2718         main work to ...
2719         (make_heapvar_for): ... this new function.
2720         (handle_rhs_call): Handle fnspec attribute argument specifiers.
2721         (handle_lhs_call): Likewise.
2722         (find_func_aliases): Adjust.
2723
2724 2010-05-10  Richard Guenther  <rguenther@suse.de>
2725
2726         PR tree-optimization/44050
2727         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
2728
2729 2010-05-10  Wei Guozhi  <carrot@google.com>
2730
2731         PR target/42879
2732         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
2733
2734 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
2735
2736         PR c/10676
2737         * c-typeck.c (lookup_field): Take a type directly.  Update
2738         recursive calls.
2739         (build_component_ref): Update call to lookup_field.
2740         (set_init_label): Use lookup_field to find initialized field.
2741         Handle returned list of fields like a sequence of designators.
2742
2743 2010-05-09  Richard Guenther  <rguenther@suse.de>
2744
2745         PR middle-end/44024
2746         * fold-const.c (tree_single_nonzero_warnv_p): Properly
2747         handle &FUNCTION_DECL.
2748
2749 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
2750
2751         PR c/4784
2752         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
2753         structures and unions recursively.
2754         (detect_field_duplicates): Move duplicate detection with a hash to
2755         detect_field_duplicates_hash.  Always use a hash if anonymous
2756         structures or unions are present.
2757         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
2758         give errors.
2759
2760 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2761
2762         PR target/44046
2763         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
2764         detect Atom, Core 2 and Core i7.
2765
2766 2010-05-09  Richard Guenther  <rguenther@suse.de>
2767
2768         * gcc.c (store_arg): Handle temporary file deletion for
2769         joined arguments.
2770
2771 2010-05-09  Richard Guenther  <rguenther@suse.de>
2772
2773         PR middle-end/44043
2774         * ipa-inline.c (estimate_function_body_sizes): Return after
2775         disregarding inline limits.
2776
2777 2010-05-09  Richard Guenther  <rguenther@suse.de>
2778
2779         * gcc.c (store_arg): Revert last change.
2780
2781 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
2782
2783         PR middle-end/28685
2784         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
2785         (optimize_ops_list): Call it.
2786
2787 2010-05-08  Richard Guenther  <rguenther@suse.de>
2788
2789         PR tree-optimization/44030
2790         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
2791         NECESSARY flag if we propagate from a inserted expression.
2792
2793 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2794
2795         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
2796         domain types as equal if they are both PLACEHOLDER_EXPRs.
2797
2798 2010-05-08  Richard Guenther  <rguenther@suse.de>
2799
2800         * lto-wrapper.c (run_gcc): Remove linker output from
2801         command line for LTRANS invocation.
2802
2803 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
2804
2805         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2806         lto-macho as lto_binary_reader.
2807         * target.h (struct gcc_target): New hooks lto_start and lto_end.
2808         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
2809         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
2810         in lto_start and lto_end calls.
2811         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
2812         magic numbers.
2813         (scan_prog_file): Update is_elf_or_coff call.
2814         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
2815
2816         * collect2.c (main): Fix enum comparison.
2817
2818         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
2819         Add prototypes.
2820         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
2821         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
2822         and TARGET_ASM_LTO_END.
2823         * darwin.c: Include obstack.h and lto-streamer.h.
2824         (lto_section_names_offset, lto_section_names_obstack,
2825         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
2826         global variables.
2827         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
2828         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
2829         to a temporary file.
2830         (darwin_asm_lto_end): New function.  Restore asm_out_file.
2831         (darwin_asm_named_section): For LTO sections, replace the name with
2832         the offset of the section name in a string table, and build this
2833         table.
2834         (darwin_file_start): Initialize global vars for LTO support.
2835         (darwin_file_end): If output to asm_out_file was redirected, append it
2836         to the proper asm_out_file here.  Add the section names section.
2837
2838 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
2839
2840         * c-pragma.c (pending_weak_d, pending_weak): New.
2841         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
2842         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
2843         handle_pragma_weak): Update the uses of pending_weaks.
2844
2845 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2846
2847         PR documentation/44016
2848         * doc/standards.texi (Standards): Link to unversioned
2849         cxx0x_status.html page.
2850
2851 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
2852
2853         PR target/43708
2854         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
2855         in addition to TREE_USED, to avoid "set but unused" warnings.
2856
2857 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2858
2859         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
2860         (is_loop_prefetching_profitable): Do not insert prefetches
2861         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
2862         times the prefetch ahead distance.
2863
2864 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2865
2866         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
2867         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
2868         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
2869         the unroll_factor.
2870
2871 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2872
2873         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
2874         a diagnostic info when the insn-to-mem ratio is too small.
2875
2876 2010-05-07  Richard Guenther <rguenther@suse.de>
2877
2878         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
2879         the linker plugin.
2880         (store_arg): Queue temp_filename for deletion instead of
2881         the whole argument.
2882
2883 2010-05-07  Richard Guenther  <rguenther@suse.de>
2884
2885         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
2886         (run_gcc): Handle LTRANS phase invocation.
2887         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
2888
2889 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
2890
2891         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
2892         this is also meaningful on PARM_DECLs and RESULT_DECLs.
2893
2894 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2895
2896         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
2897
2898 2010-05-07  Richard Guenther  <rguenther@suse.de>
2899
2900         PR tree-optimization/44020
2901         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
2902         code when PRE is not yet initialized.
2903
2904 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2905
2906         * config/mips/dbxmdebug.h: Remove.
2907         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
2908
2909 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
2910
2911         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
2912         with null pointer and also warn about ordered comparison of zero with
2913         pointer if -Wextra.
2914
2915 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2916
2917         * graphite-blocking.c
2918         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
2919         * graphite-clast-to-gimple.c
2920         (clast_to_gcc_expression): Same.
2921         (precision_for_value): Same.
2922         (precision_for_interval): Same.
2923         (gcc_type_for_interval): Same.
2924         (graphite_create_new_guard): Same.
2925         (compute_bounds_for_level): Same.
2926         (graphite_create_new_loop_guard): Same.
2927         * graphite-interchange.c
2928         (build_linearized_memory_access): Same.
2929         (pdr_stride_in_loop): Same.
2930         (memory_strides_in_loop_1): Same.
2931         (memory_strides_in_loop): Same.
2932         (extend_scattering): Same.
2933         (psct_scattering_dim_for_loop_depth): Same.
2934         (pbb_number_of_iterations): Same.
2935         * graphite-poly.h
2936         (debug_iteration_domains): Same.
2937         * graphite-ppl.c
2938         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
2939         (ppl_set_inhomogeneous_gmp): Same.
2940         (ppl_strip_loop): Same.
2941         (ppl_lexico_compare_linear_expressions): Same.
2942         (ppl_read_polyhedron_matrix): Same.
2943         (ppl_max_for_le_pointset): Same.
2944         * graphite-ppl.h
2945         (ppl_read_polyhedron_matrix): Same.
2946         (tree_int_to_gmp): Same.
2947         (gmp_cst_to_tree): Same.
2948         (ppl_set_inhomogeneous): Same.
2949         (ppl_set_inhomogeneous_tree): Same.
2950         (ppl_set_coef): Same.
2951         (ppl_set_coef_tree): Same.
2952         * graphite-sese-to-poly.c
2953         (build_pbb_scattering_polyhedrons): Same.
2954         (build_scop_scattering): Same.
2955         (scan_tree_for_params_right_scev): Same.
2956         (scan_tree_for_params): Same.
2957         (find_params_in_bb): Same.
2958         (find_scop_parameters): Same.
2959         (add_upper_bounds_from_estimated_nit): Same.
2960         (build_loop_iteration_domains): Same.
2961         (add_condition_to_domain): Same.
2962         (pdr_add_memory_accesses): Same.
2963
2964 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2965
2966         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
2967         CLooG's value_* macros to their respective mpz_* counterparts.
2968         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
2969         (graphite_create_new_loop_guard): Same.
2970         * graphite-interchange.c (build_linearized_memory_access): Same.
2971         (pdr_stride_in_loop): Same.
2972         (memory_strides_in_loop_1): Same.
2973         (1st_interchange_profitable_p): Same.
2974         * graphite-poly.c (extend_scattering): Same.
2975         (psct_scattering_dim_for_loop_depth): Same.
2976         (pbb_number_of_iterations): Same.
2977         (pbb_number_of_iterations_at_time): Same.
2978         * graphite-poly.h (new_1st_loop): Same.
2979         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
2980         (oppose_constraint): Same.
2981         (insert_constraint_into_matrix): Same.
2982         (ppl_set_inhomogeneous_gmp): Same.
2983         (ppl_set_coef_gmp): Same.
2984         (ppl_strip_loop): Same.
2985         (ppl_lexico_compare_linear_expressions): Same.
2986         (ppl_max_for_le_pointset): Same.
2987         (ppl_min_for_le_pointset): Same.
2988         (ppl_build_realtion): Same.
2989         * graphite-ppl.h (gmp_cst_to_tree): Same.
2990         (ppl_set_inhomogeneous): Same.
2991         (ppl_set_inhomogeneous_tree): Same.
2992         (ppl_set_coef): Same.
2993         (ppl_set_coef_tree): Same.
2994         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
2995         (build_scop_scattering): Same.
2996         (add_value_to_dim): Same.
2997         (scan_tree_for_params_right_scev): Same.
2998         (scan_tree_for_params_int): Same.
2999         (scan_tree_for_params): Same.
3000         (find_params_in_bb): Same.
3001         (find_scop_parameters): Same.
3002         (add_upper_bounds_from_estimated_nit): Same.
3003         (build_loop_iteration_domains): Same.
3004         (create_linear_expr_from_tree): Same.
3005         (add_condition_to_domain): Same.
3006         (pdr_add_memory_accesses): Same.
3007
3008 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
3009             Jason Merrill  <jason@redhat.com>
3010
3011         * c-common.c (c_common_reswords): Add nullptr.
3012         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
3013         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
3014         (gen_type_die_with_usage): Likewise.
3015         * dbxout.c (dbxout_type): Likewise.
3016         * sdbout.c (plain_type_1): Likewise.
3017
3018 2010-05-06  Jason Merrill  <jason@redhat.com>
3019
3020         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
3021         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
3022         ret appropriately.
3023         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
3024
3025         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
3026         stripping WITH_SIZE_EXPR.
3027         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
3028         change.
3029
3030 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3031
3032         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
3033         list of obsolete configurations.
3034         Disabled check for obsolete configurations.
3035         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
3036         Removed support for previous versions.
3037         * config/mips/iris.h: Removed.
3038         * config/mips/iris5.h: Removed.
3039         * config/mips/iris6.h: Merged old iris.h contents.
3040         (TARGET_IRIX): Removed.
3041         (DRIVER_SELF_SPECS): Removed mabi=32.
3042         (IDENT_ASM_OP): Removed undef.
3043         (STARTFILE_SPEC): Removed mabi=32.
3044         (ENDFILE_SPEC): Likewise.
3045         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
3046         (MACHINE_TYPE): Update for IRIX 6.5.
3047         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
3048         TARGET_IRIX by TARGET_IRIX6.
3049         (mips_file_start): Likewise.
3050         (mips_output_external): Remove IRIX 5/6 O32 support.
3051         (mips_output_function_prologue): Likewise.
3052         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
3053         TARGET_IRIX6.
3054         (TARGET_CPU_CPP_BUILTINS): Likewise.
3055         (TARGET_IRIX): Removed.
3056         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
3057         (MULTILIB_DIRNAMES): Removed 32.
3058         (MULTILIB_OSDIRNAMES): Removed ../lib.
3059         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
3060         (Specific, mips-sgi-irix5): Document removal.
3061         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
3062         Remove references to older IRIX 6 releases and the O32 ABI.
3063
3064 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
3065
3066         PR bootstrap/43994
3067         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
3068         instead of DF_REF_REAL_REG.
3069
3070 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
3071
3072         PR target/43888
3073         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
3074         handling to still return true for x64 targets.
3075
3076 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3077
3078         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
3079
3080 2010-05-06  Jan Hubicka  <jh@suse.cz>
3081
3082         PR tree-optimization/43791
3083         * ipa-inline.c (update_caller_keys): Remove bogus
3084         disregard_inline_limits check.
3085
3086 2010-05-06  Michael Matz  <matz@suse.de>
3087
3088         PR tree-optimization/43984
3089         * tree-ssa-pre.c (inserted_phi_names): Remove.
3090         (inserted_exprs): Change to bitmap.
3091         (create_expression_by_pieces): Set bits, don't append to vector.
3092         (insert_into_preds_of_block): Don't handle inserted_phi_names.
3093         (eliminate): Don't look at inserted_phi_names, remove deleted
3094         insns from inserted_exprs.
3095         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
3096         (init_pre, fini_pre): Allocate and free bitmaps.
3097         (execute_pre): Insert insns on edges before elimination.
3098
3099 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3100
3101         * tree.c (initializer_zerop): Handle STRING_CST.
3102
3103 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3104
3105         PR 40989
3106         * doc/invoke.texi (Wimplicit): Document as C only.
3107         * opts.c (common_handle_option): Add argument kind.
3108         (handle_option): Rename as read_cmdline_option. Factor out code to...
3109         (handle_option): ... here. New.
3110         (handle_options): Rename as read_cmdline_options.
3111         (decode_options): Update call.
3112         (set_option): Use option index instead of option pointer. Classify
3113         diagnostics correctly.
3114         (enable_warning_as_error): Call handle_option.
3115         * opts.h (set_option): Update declaration.
3116         (handle_option): Declare.
3117         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
3118         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
3119         * c-opts.c (set_Wimplicit): Delete.
3120         (c_family_lang_mask): New static constant.
3121         (c_common_handle_option): Add argument kind. Use handle_option
3122         instead of set_Wimplicit.
3123         (c_common_post_options): warn_implicit and warn_implicit_int
3124         are disabled by default.
3125         * c-common.c (warn_implicit): Do not define here.
3126         * c-common.h (warn_implicit): Do not declare here.
3127         (c_common_handle_option): Update declaration.
3128         * lto-opts.c (lto_reissue_options): Update call to set_option.
3129
3130 2010-05-06  Richard Guenther  <rguenther@suse.de>
3131
3132         PR tree-optimization/43571
3133         * domwalk.c (walk_dominator_tree): Walk the dominator
3134         sons in more optimal order.
3135
3136 2010-05-06  Richard Guenther  <rguenther@suse.de>
3137
3138         PR tree-optimization/43934
3139         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
3140         (stmt_cost): Likewise.
3141         (extract_true_false_args_from_phi): New helper.
3142         (determine_max_movement): For PHI nodes verify we can hoist them
3143         and compute their cost.
3144         (determine_invariantness_stmt): Handle PHI nodes.
3145         (move_computations_stmt): Likewise.  Hoist PHI nodes in
3146         if-converted form using COND_EXPRs.
3147         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
3148         (tree_ssa_lim): Likewise.
3149         * tree-flow.h (tree_ssa_lim): Adjust prototype.
3150         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
3151
3152 2010-05-06  Richard Guenther  <rguenther@suse.de>
3153
3154         PR tree-optimization/43987
3155         * tree-ssa-structalias.c (could_have_pointers): For possibly
3156         address-taken variables force pointers to be recorded.
3157         (create_variable_info_for_1): Likewise.
3158         (push_fields_onto_fieldstack): Pass in wheter all fields
3159         must have pointers.
3160         (find_func_aliases): Query types instead of vars whether
3161         they contain pointers where appropriate.
3162
3163 2010-05-06  Jan Hubicka  <jh@suse.cz>
3164
3165         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
3166         (record_reference, mark_address, mark_load, mark_store): Record
3167         references.
3168         (record_references_in_initializer): Update call of record_references.
3169         (rebuild_cgraph_edges): Remove all references before rebuiding.
3170         * cgraph.c (cgraph_create_node): Clear ref list.
3171         (cgraph_remove_node): Remove references.
3172         (dump_cgraph_node): Dump references.
3173         (cgraph_clone_node): Clone references.
3174         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
3175         (struct cgraph_node, varpool_node): Add ref_lst.
3176         * ipa-ref.c: New file.
3177         * ipa-ref.h: New file.
3178         * ipa-ref-inline.h: New file.
3179         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
3180         (referenced_from_other_partition_p): New function.
3181         (lto_output_varpool_node): Take set arugment; call
3182         referenced_from_other_partition.
3183         (lto_output_ref): New.
3184         (add_references): New.
3185         (output_refs): New.
3186         (output_cgraph): Compute boundary based on references; output refs.
3187         (output_varpool): Accept cgraph_node_set argument.
3188         (input_ref): New.
3189         (input_refs): New.
3190         (input_cgraph): Call input_refs.
3191         * lto-section-in.c (lto_section_name): Add refs.
3192         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
3193         (ipa-ref.o): New file.
3194         * varpool.c (varpool_node): Clear ipa ref list.
3195         (varpool_remove_node): Remove references.
3196         (dump_varpool_node): Dump references.
3197         (varpool_assemble_decl): Only compile finalized ones.
3198         (varpool_extra_name_alias): Initialize ref list.
3199         * lto-streamer.c (lto-get_section_name): Add .refs section.
3200         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
3201         (referenced_from_other_partition_p): Declared.
3202
3203 2010-05-06  Ira Rosen  <irar@il.ibm.com>
3204
3205         PR tree-optimization/43901
3206         * tree-vect-stmts.c (vectorizable_call): Assert that vector
3207         type is not NULL if it's transformation phase, and return
3208         FALSE if it's analysis.
3209         (vectorizable_conversion, vectorizable_operation,
3210         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
3211
3212 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
3213
3214         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3215         Delete.
3216         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3217         New define.
3218         * config/mips/mips-protos.h
3219         (mips_small_register_classes_for_mode_p): Delete prototype.
3220
3221 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
3222
3223         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
3224         * config/arm/arm.c (multiple_operation_profitable_p,
3225         compute_offset_order): New static functions.
3226         (load_multiple_sequence, store_multiple_sequence): Use them.
3227         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
3228         memory offsets, not register numbers.
3229         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
3230
3231 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
3232
3233         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
3234         (get_pending_sizes, put_pending_size, put_pending_sizes):
3235         Update the uses of pending_sizes.
3236         * c-decl.c (store_parm_decls): Likewise.
3237         * c-tree.h (struct c_arg_info): Likewise.
3238         * tree.h: Update the prototype for get_pending_sizes and
3239         put_pending_sizes.
3240
3241 2010-05-05  Jason Merrill  <jason@redhat.com>
3242
3243         PR debug/43370
3244         * c-common.c (handle_aligned_attribute): Respect
3245         ATTR_FLAG_TYPE_IN_PLACE.
3246
3247         PR testsuite/43758
3248         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
3249         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3250         (TARGET_INITIALIZER): Use it.
3251         * c-common.c (attribute_takes_identifier_p): Call it.
3252         * c-common.h: Update prototype.
3253         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
3254         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3255
3256 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
3257
3258         PR debug/43950
3259         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
3260         DW_ID_down_case for Fortran compilation units.
3261
3262 2010-05-05  Jan Hubicka  <jh@suse.cz>
3263
3264         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
3265         handle aliases.
3266
3267 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
3268
3269         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
3270         a variable-sized RESULT_DECL.
3271
3272 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
3273
3274         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
3275
3276 2010-05-05  Jason Merrill  <jason@redhat.com>
3277
3278         PR c++/43787
3279         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
3280         returns GS_OK.
3281         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
3282
3283 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
3284             Jakub Jelinek  <jakub@redhat.com>
3285
3286         PR debug/43478
3287         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
3288         (dead_debug_init, dead_debug_finish): New functions.
3289         (dead_debug_add, dead_debug_insert_before): Likewise.
3290         (df_note_bb_compute): Initialize a dead_debug object, add dead
3291         debug uses to it, insert debug bind insns before death insns,
3292         reset debug insns that refer to pending uses at the end.
3293         * rtl.h (make_debug_expr_from_rtl): New prototype.
3294         * varasm.c (make_debug_expr_from_rtl): New function.
3295
3296 2010-05-05  Jan Hubicka  <jh@suse.cz>
3297
3298         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
3299         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
3300         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
3301         lto_varpool_encoder_deref, lto_varpool_encoder_size,
3302         lto_varpool_encoder_encode_initializer_p,
3303         lto_set_varpool_encoder_encode_initializer): New functions.
3304         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
3305         call output_varpool.
3306         (input_varpool_node): Do not always set analyzed.
3307         (input_cgraph_1): Return vector of cgraph nodes.
3308         (input_varpool_1): Return vector of varpools.
3309         (input_cgraph): Free the vectors.
3310         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
3311         output only initializers needed.
3312         (lto_output): Only call output_cgraph.
3313         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
3314         * lto-section-out.c (lto_new_out_decl_state): Initialize
3315         state->varpool_node_encoder.
3316         * lto-streamer.h (lto_varpool_encoder_d): New.
3317         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
3318         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
3319         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
3320         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
3321         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
3322         Declare.
3323         (output_varpool, input_varpool): Remove declarations.
3324
3325 2010-05-05  Jan Hubicka  <jh@suse.cz>
3326
3327         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
3328         with body can prevail.
3329
3330 2010-05-05  Jan Hubicka  <jh@suse.cz>
3331
3332         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
3333         size.
3334
3335 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3336
3337         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
3338
3339         * gengtype.h (erro_at_line): Constify pos argument.
3340
3341         * gengtype.c: Include hashtab.h.
3342         (enum gc_used): Document GC_MAYBE_POINTED_TO.
3343         (error_at_line): Constify pos argument.
3344         (do_typedef): Initialize p->opt field.
3345         (get_file_gtfilename): Fix comment typo.
3346         (struct walk_type_data): Constify line field.
3347         (get_output_file_for_structure): New function.
3348         (write_local_func_for_structure): Constify orig_s argument.
3349         Use get_output_file_for_structure.
3350         (write_func_for_structure): Use get_output_file_for_structure.
3351         (INDENT): New define.
3352         (dump_pair, dump_type, dump_type_list, dump_typekind)
3353         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
3354         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
3355         functions.
3356         (seen_types): New variable.
3357         (main): New variable do_dump.  Process "-d" command line option.
3358         Call dump_everything if dump requested.
3359
3360 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
3361
3362         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
3363         in a temporary instead of invoking the macro multiple times.
3364         (track_expr_p): Likewise.
3365
3366 2010-05-04  Neil Vachharajani <nvachhar@google.com>
3367
3368         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
3369         per new semantics.
3370         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
3371         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
3372         conditions for printing notes.
3373         * common.opt (-Wcoverage-mismatch): Allow negative, default to
3374         true, update documentation.
3375         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
3376
3377 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
3378
3379         PR c/43981
3380         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
3381         on dimen.
3382
3383 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3384
3385         PR target/43799
3386         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
3387         (*sse_prologue_save_insn1): Likewise.
3388         (SSE prologue save splitter): Likewise.
3389
3390 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
3391
3392         * tree.c (free_lang_data_in_one_sizepos): New inline function.
3393         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
3394         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
3395         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
3396         all decls.  Call it on DECL_FIELD_OFFSET of fields.
3397         (find_decls_types_r): Follow DECL_VALUE_EXPR.
3398         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
3399
3400 2010-05-04  Martin Jambor  <mjambor@suse.cz>
3401
3402         * tree-sra.c (build_access_from_expr_1): The first parameter type
3403         changed to simple tree.
3404         (build_access_from_expr): Likewise, gsi parameter was eliminated.
3405         (scan_assign_result): Renamed to assignment_mod_result, enum elements
3406         renamed as well.
3407         (build_accesses_from_assign): Removed all parameters except for a
3408         simple gimple statement.  Now returns a simple bool.
3409         (scan_function): All non-analysis parts moved to separate functions
3410         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
3411         parameters and updated both callers.
3412         (sra_modify_expr): Removed parameter data.
3413         (sra_modify_function_body): New function.
3414         (perform_intra_sra): Call sra_modify_function_body to modify the
3415         function body.
3416         (replace_removed_params_ssa_names): Parameter data changed into
3417         adjustments vector.
3418         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
3419         changed the parameter dont_convert to convert with the opposite
3420         meaning.
3421         (sra_ipa_modify_assign): Parameter data changed into adjustments
3422         vector, return value changed to bool.
3423         (ipa_sra_modify_function_body): New function.
3424         (sra_ipa_reset_debug_stmts): Updated a comment.
3425         (modify_function): Use ipa_sra_modify_function_body to modify function
3426         body.
3427
3428 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3429
3430         PR middle-end/43671
3431         * alias.c (true_dependence): Handle the same VALUE in x and mem.
3432         (canon_true_dependence): Likewise.
3433         (write_dependence_p): Likewise.
3434
3435 2010-05-04  Jan Hubicka  <jh@suse.cz>
3436
3437         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
3438         * cgraphbuild.c: Include ipa-utils.h
3439         (record_reference_ctx): New struct.
3440         (record_reference): Simplify to work on initializers; not statements.
3441         (mark_address, mark_load, mark_store): New.
3442         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3443         walk PHI nodes too.
3444         (record_references_in_initializer): Update use of record_reference.
3445         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3446         walk PHI nodes too.
3447
3448 2010-05-04  Jan Hubicka  <jh@suse.cz>
3449
3450         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
3451         node will be removed anyway.
3452         (lto_varpool_replace_node): Allow also unanalyzed nodes;
3453         relink aliases of node into prevailing node.
3454         * varpool.c (varpool_remove_node): Remove aliases properly;
3455         when removing node, remove all its aliases too; remove DECL_INITIAL
3456         of removed node; ggc_free the varpool node.
3457
3458 2010-05-04  Richard Guenther  <rguenther@suse.de>
3459
3460         PR tree-optimization/43879
3461         * tree-ssa-structalias.c (alias_get_name): Use
3462         DECL_ASSEMBLER_NAME if available.
3463         (create_function_info_for): Return the varinfo node.
3464         (ipa_pta_execute): Associate same-body aliases and extra names
3465         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
3466
3467 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
3468
3469         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
3470
3471 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
3472
3473         PR bootstrap/43964
3474         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
3475         only if HONOR_REG_ALLOC_ORDER is not defined.
3476
3477 2010-05-04  Richard Guenther  <rguenther@suse.de>
3478
3479         PR tree-optimization/43949
3480         * tree-vrp.c (extract_range_from_binary_expr): Only handle
3481         TRUNC_MOD_EXPR.
3482
3483 2010-04-26  Jason Merrill  <jason@redhat.com>
3484
3485         * c.opt (-fstrict-enums): New.
3486         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
3487
3488 2010-05-03  David Ung <davidu@mips.com>
3489             James E. Wilson  <wilson@codesourcery.com>
3490
3491         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
3492         emit the trap instruction before the divide for TUNE_74K.
3493
3494 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
3495
3496         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
3497         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
3498         based on the above, for new target hook.
3499
3500         * hooks.c (hook_bool_mode_true): New generic hook.
3501         * hooks.h (hook_bool_mode_true): Add prototype.
3502
3503         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
3504         target hook.
3505         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
3506         target hook, set to hook_bool_mode_false.
3507         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
3508         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
3509         with targetm.small_register_classes_for_mode_p.
3510         (find_reusable_reload): Likewise.
3511         (combine_reloads): Likewise.
3512         * reload1.c (reload_as_needed): Likewise.
3513         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
3514         * ifcvt.c (noce_process_if_block, check_cond_move_block,
3515         dead_or_predicable): Likewise.
3516         * regmove.c (optimize_reg_copy_1): Likewise.
3517         * calls.c (prepare_call_address): Likewise.
3518         (precompute_register_parameters): Likewise.
3519
3520         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
3521         hook definition.
3522         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
3523         implementation of the hook that considers all register classes
3524         small except for SH64.
3525         (sh_override_options): Use the new hook.
3526         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
3527         Add prototype.
3528
3529         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
3530         hook definition.
3531         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
3532         implementation of the hook that considers all register classes
3533         small for THUMB1.
3534         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
3535         Add prototype.
3536
3537         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
3538         hook definition.
3539         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
3540         implementation of the hook that considers all register classes
3541         small for MIPS16.
3542         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
3543         Add prototype.
3544
3545         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
3546         hook definition.
3547         * config/m32c/m32c.h: Likewise.
3548         * config/pdp11/pdp11.h: Likewise.
3549         * config/avr/avr.h: Likewise.
3550         * config/xtensa/xtensa.h: Likewise.
3551         * config/m68hc11/m68hc11.h: Likewise.
3552         * config/mn10300/mn10300.h: Likewise.
3553         * config/mcore/mcore.h: Likewise.
3554         * config/h8300/h8300.h: Likewise.
3555         * config/bfin/bfin.h: Likewise.
3556
3557         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
3558         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
3559
3560 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
3561
3562         * double-int.h (tree_to_double_int): Remove macro.
3563         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
3564         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
3565         (tree_to_double_int): New function.
3566         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
3567         Move ...
3568         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
3569
3570 2010-05-03  Richard Guenther  <rguenther@suse.de>
3571
3572         PR tree-optimization/43971
3573         * tree-ssa-structalias.c (get_constraint_for_1): Fix
3574         constraints in the !flag_delete_null_pointer_checks case.
3575
3576 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
3577
3578         PR debug/43972
3579         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
3580         result mode matches original rtl mode.
3581
3582 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
3583
3584         PR target/43888
3585         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
3586
3587 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3588
3589         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
3590         when processing flag options.
3591
3592 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3593
3594         * gcov-iov.c (main): Change format string placeholder
3595         from %#08x to 0x%08x.
3596         * genchecksum.c (dosum): Change format string placeholder
3597         from %#02x to 0x%02x.
3598
3599 2010-05-02  Richard Guenther  <rguenther@suse.de>
3600
3601         PR tree-optimization/43879
3602         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
3603
3604 2010-05-02  Bruno Haible  <bruno@clisp.org>
3605
3606         * doc/extend.texi (Function Attributes): Fix a typo.
3607
3608 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3609
3610         Revert:
3611         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
3612         placeholder from 0x%x to %#x.
3613         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
3614         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
3615         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
3616         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
3617         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
3618         * config/i386/i386.c (ix86_target_string): Ditto.
3619         * config/i386/i386.c (output_pic_addr_const): Ditto.
3620         (print_operand): Ditto.
3621
3622 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3623
3624         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
3625         placeholder from 0x%x to %#x.
3626         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
3627         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
3628         (ASM_OUTPUT_DEBUG_DATA): Ditto.
3629         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
3630         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
3631         * optc-gen.awk: Ditto.
3632         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
3633         (HOST_WIDE_INT_PRINT_HEX): Ditto.
3634         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
3635         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
3636
3637 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
3638
3639         * target.h (struct calls): Add function_value_regno_p field.
3640         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
3641         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
3642         * targhooks.c (default_function_value_regno_p): New function.
3643         * targhooks.h (default_function_value_regno_p): Declare function.
3644         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
3645         * builtins.c. (apply_result_size): (Ditto.).
3646         * combine.c. (likely_spilled_retval_p): (Ditto.).
3647         * mode-switching.c. Include 'target.h'.
3648         (create_pre_exit): Use function_value_regno_p hook.
3649         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
3650         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
3651         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
3652
3653         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
3654         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
3655         (ix86_function_value_regno_p): Declare as static, change argument
3656         type to const unsigned int.
3657         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
3658
3659 2010-05-01  Richard Guenther  <rguenther@suse.de>
3660
3661         PR tree-optimization/43949
3662         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
3663         types.
3664         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
3665
3666 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
3667
3668         * rtl.h (CONST_DOUBLE_P): Define.
3669         (rtx_to_double_int): Declare.
3670         * emit-rtl.c (rtx_to_double_int): New function.
3671         * dwarf2out.c (insert_double): New function.
3672         (loc_descriptor, add_const_value_attribute): Clean up, use
3673         rtx_to_double_int and insert_double functions.
3674
3675 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
3676
3677         * doc/extend.texi (Inline): Add missing return keyword to examples.
3678         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
3679         "command-line".
3680
3681 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
3682
3683         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
3684         the variable part of the offset as well.  Use highest_pow2_factor for
3685         all alignment checks.
3686
3687 2010-04-30  Richard Guenther  <rguenther@suse.de>
3688
3689         PR tree-optimization/43879
3690         * tree-ssa-structalias.c (type_could_have_pointers): Functions
3691         can have pointers.
3692
3693 2010-04-30  Jan Hubicka  <jh@suse.cz>
3694
3695         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
3696         varpool.
3697         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
3698
3699 2010-04-30  Jan Hubicka  <jh@suse.cz>
3700
3701         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
3702         New.
3703         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
3704         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
3705         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
3706         cgraph_node_set_needs_ltrans_p): Remove.
3707
3708 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
3709
3710         * sdbout.c: Include vec.h, do not include varray.h.
3711         (deferred_global_decls, sdbout_global_decl,
3712         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
3713         * toplev.c: Do not include varray.h.
3714         (dump_memory_report): Do not dump VARRAY statistics.
3715         * gengtype.c (open_base_file): Ignore varray.h.
3716         * Makefile.in: Update for abovementioned changes.
3717         Remove all traces of varray.c and varray.h.
3718         * varray.c: Remove file.
3719         * varray.h: Remove file.
3720
3721 2010-04-30  Jan Hubicka  <jh@suse.cz>
3722
3723         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
3724         references.
3725
3726 2010-04-30  Jan Hubicka  <jh@suse.cz>
3727
3728         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
3729         needed.
3730
3731 2010-04-30  Richard Guenther  <rguenther@suse.de>
3732
3733         * tree-ssa-structalias.c (get_constraint_for_1): Generate
3734         constraints for CONSTRUCTOR.
3735
3736 2010-04-30  Richard Guenther  <rguenther@suse.de>
3737
3738         PR lto/43946
3739         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
3740         first after all lowering passes.
3741
3742 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
3743
3744         * toplev.c: Include varray.h for statistics dumping.
3745         * tree.h: Do not declare varray_head_tag.
3746         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
3747         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
3748         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
3749         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
3750         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
3751         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
3752         c-common.c, c-common.h, reg-stack.c, basic-block.h,
3753         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
3754         include varray.h.
3755         * Makefile.in: Update for abovementioned changes.
3756
3757 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
3758
3759         PR debug/43942
3760         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
3761
3762 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
3763
3764         * config/picochip/picochip.c (picochip_legitimize_address): Define.
3765         Use this function to do machine-specific conversion.
3766         (picochip_legitimize_reload_address): Likewise.
3767         (picochip_legitimate_address_p): Check valid base register only if
3768         strict.
3769         (picochip_check_conditional_copy): Check for modw only if opnd is
3770         register.
3771         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
3772         to call the function in c.
3773         * config/picochip/picochip-protos.h
3774         (picochip_legitimize_reload_address): Define.
3775         * config/picochip/picochip.md (supported_compare1): Define.
3776
3777 2010-04-30  Jan Hubicka  <jh@suse.cz>
3778
3779         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
3780         (cgraph_global_info): Remove inlined.
3781         (LTO_cgraph_tag_names): Remove.
3782         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
3783         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
3784         simplify cgraph tags and document.
3785         (lto_output_node): Use only LTO_cgraph_unavail_node and
3786         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
3787         for_functions_valid, global info, process and output flags.
3788         (input_overwrite_node): Initialize estimated stack size and
3789         estimated growth.  Do not read flags we no longer store.
3790         (input_node): Likewise do not read info no longer stored.
3791         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
3792         flag.
3793
3794 2010-04-30  Richard Guenther  <rguenther@suse.de>
3795
3796         PR tree-optimization/43879
3797         * tree-ssa-structalias.c (get_constraint_for_1): Properly
3798         handle non-zero initializers.
3799
3800 2010-04-30  Richard Guenther  <rguenther@suse.de>
3801
3802         * builtins.c (fold_builtin_1): Delete free (0).
3803
3804 2010-04-29  Jan Hubicka  <jh@suse.cz>
3805
3806         * gengtype.c (open_base_files): Add lto-streamer.h
3807         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
3808         (pass_ipa_cp): GGC collect.
3809         * toplev. (compile_file): Do not output symbols.
3810         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
3811         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
3812         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
3813         * lto-section-in.c: Include ggc.h
3814         (lto_new_in_decl_state): Alloc in GGC.
3815         (lto_delete_in_decl_state): Likewise.
3816         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
3817         Collect.
3818
3819 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
3820
3821         PR target/42895
3822         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
3823         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
3824         (HONOR_REG_ALLOC_ORDER): Describe new macro.
3825         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
3826         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
3827         account only if HONOR_REG_ALLOC_ORDER is not defined.
3828         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
3829         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
3830
3831 2010-04-29  Jon Grant  <04@jguk.org>
3832
3833         * collect2.c (vflag): Change type from int to bool.
3834         (debug): Likewise.
3835         (helpflag): New global bool.
3836         (main): Set vflag and debug with boolean, not integer truth values.
3837         Accept new "--help" option and output usage text if found.
3838         * collect2.h (vflag): Update prototype.
3839         (debug): Likewise.
3840
3841 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3842
3843         PR bootstrap/43936
3844         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
3845
3846 2010-04-29  Richard Guenther  <rguenther@suse.de>
3847
3848         PR bootstrap/43935
3849         * plugin.h (invoke_plugin_callbacks): Annotate arguments
3850         with ATTRIBUTE_UNUSED.
3851
3852 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3853
3854         PR target/43921
3855         * config/i386/i386.c (get_some_local_dynamic_name): Replace
3856         INSN_P with NONDEBUG_INSN_P.
3857         (distance_non_agu_define): Likewise.
3858         (distance_agu_use): Likewise.
3859
3860 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
3861
3862         From Dominique d'Humieres <dominiq@lps.ens.fr>
3863         PR bootstrap/43858
3864         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
3865         test_set.
3866
3867 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
3868
3869         * plugin.h (invoke_plugin_callbacks): New inline function.
3870         * plugin.c (flag_plugin_added): New global flag.
3871         (add_new_plugin): Initialize above flag.
3872         (invoke_plugin_callbacks): Rename to ...
3873         (invoke_plugin_callbacks_full): ... this.
3874
3875 2010-04-28  Jan Hubicka  <jh@suse.cz>
3876
3877         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
3878         (lto_varpool_replace_node): New.
3879         (lto_symtab_resolve_symbols): Resolve varpool nodes.
3880         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
3881         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
3882         * cgraph.h (varpool_node_ptr): New type.
3883         (varpool_node_ptr): New vector.
3884         (varpool_node_set_def): New structure.
3885         (varpool_node_set): New type.
3886         (varpool_node_set): New vector.
3887         (varpool_node_set_element_def): New structure.
3888         (varpool_node_set_element, const_varpool_node_set_element): New types.
3889         (varpool_node_set_iterator): New type.
3890         (varpool_node): Add prev pointers, add used_from_other_partition,
3891         in_other_partition.
3892         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
3893         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
3894         varpool_get_node, varpool_remove_node): Declare.
3895         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
3896         varpool_node_set_size): New inlines.
3897         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
3898         * tree-pass.h (varpool_node_set_def): Forward declare.
3899         (ipa_opt_pass_d): Summary writting takes vnode sets too.
3900         (ipa_write_optimization_summaries): Update prototype.
3901         * ipa-cp.c (ipcp_write_summary): Update.
3902         * ipa-reference.c (ipa_reference_write_summary): Update.
3903         * lto-cgraph.c (lto_output_varpool_node): New static function.
3904         (output_varpool): New function.
3905         (input_varpool_node): New static function.
3906         (input_varpool_1): New function.
3907         (input_cgraph): Input varpool.
3908         * ipa-pure-const.c (pure_const_write_summary): Update.
3909         * lto-streamer-out.c (lto_output): Update, output varpool too.
3910         (write_global_stream): Kill WPA hack.
3911         (produce_asm_for_decls): Update.
3912         (output_alias_pair_p): Handle variables.
3913         (output_unreferenced_globals): Output only needed partition of varpool.
3914         * ipa-inline.c (inline_write_summary): Update.
3915         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
3916         cgraph.
3917         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
3918         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
3919         varpool_node_set_new, varpool_node_set_add,
3920         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
3921         debug_varpool_node_set): New functions.
3922         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
3923         (execute_one_pass): Process new decls too.
3924         (ipa_write_summaries_2): Pass around vsets.
3925         (ipa_write_summaries_1): Likewise.
3926         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
3927         to add.
3928         (ipa_write_optimization_summaries_1): Pass around vsets.
3929         (ipa_write_optimization_summaries): Likewise.
3930         * varpool.c (varpool_get_node): New.
3931         (varpool_node): Update doubly linked lists.
3932         (varpool_remove_node): New.
3933         (dump_varpool_node): More dumping.
3934         (varpool_enqueue_needed_node): Update doubly linked lists.
3935         (decide_is_variable_needed): Kill ltrans hack.
3936         (varpool_finalize_decl): Kill lto hack.
3937         (varpool_assemble_decl): Skip decls in other partitions.
3938         (varpool_assemble_pending_decls): Update doubly linkes lists.
3939         (varpool_empty_needed_queue): Likewise.
3940         (varpool_extra_name_alias): Likewise.
3941         * lto-streamer.c (lto_get_section_name): Add vars section.
3942         * lto-streamer.h (lto_section_type): Update.
3943         (output_varpool, input_varpool): Declare.
3944
3945 2010-04-28  Mike Stump  <mikestump@comcast.net>
3946
3947         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
3948
3949 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
3950
3951         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
3952         record or union type with RECORD_OR_UNION_TYPE_P predicate.
3953         (lto_input_ts_type_tree_pointers): Likewise.
3954         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
3955         (lto_output_ts_type_tree_pointers): Likewise.
3956
3957 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
3958
3959         Uniquization of constants at the Tree level
3960         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
3961         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
3962         bit to the end.
3963         (tree_output_constant_def): Declare.
3964         * gimplify.c (gimplify_init_constructor): When using block copy, first
3965         uniquize the constant constructor on the RHS.
3966         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
3967         DECL_IN_CONSTANT_POOL flag.
3968         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
3969         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
3970         constant pool.
3971         (assemble_variable): Deal with symbols belonging to the tree constant
3972         pool.
3973         (get_constant_section): Add ALIGN parameter and simplify.
3974         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
3975         (assemble_constant_contents): Use the expression of the VAR_DECL.
3976         (output_constant_def_contents): Use the alignment of the VAR_DECL.
3977         (tree_output_constant_def): New global function.
3978         (mark_constant): Use the expression of the VAR_DECL.
3979         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
3980         its expression.
3981         (output_object_block): Likewise and assemble the expression.
3982
3983 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
3984
3985         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
3986         hash_tree, eq_tree): New tree hash table.
3987         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
3988         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
3989         lto_orig_address_remove): Reimplement.
3990
3991 2010-04-28  Xinliang David Li  <davidxl@google.com>
3992
3993         PR c/42643
3994         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
3995         (compute_uninit_opnds_pos): New function.
3996         (is_non_loop_exit_postdominating): New function.
3997         (compute_control_dep_chain): New function.
3998         (find_pdom): New function.
3999         (convert_control_dep_chain_into_preds): New function.
4000         (find_predicates): New function.
4001         (find_control_equiv_block): New function.
4002         (collect_phi_def_edges): New function.
4003         (find_def_preds): New function.
4004         (find_dom): New function.
4005         (dump_predicates): New function.
4006         (get_cmp_code): New function.
4007         (is_value_included_in): New function.
4008         (find_matching_predicate_in_rest_chains): New function.
4009         (use_pred_not_overlap_with_undef_path_pred): New function.
4010         (is_use_properly_guarded): New function.
4011         (normalize_cond_1): New function.
4012         (is_and_or_or): New function.
4013         (normalize_cond): New function.
4014         (is_gcond_subset_of): New function.
4015         (is_subset_of_any): New function.
4016         (is_or_set_subset_of): New function.
4017         (is_and_set_subset_of): New function.
4018         (is_norm_cond_subset_of): New function.
4019         (is_pred_expr_subset_of): New function.
4020         (is_pred_chain_subset_of): New function.
4021         (is_included_in): New function.
4022         (is_superset_of): New function.
4023         (find_uninit_use): New function.
4024         (warn_uninitialized_phi): New function.
4025         (compute_possibly_undefined_names): New function.
4026         (ssa_undefined_value_p): New function.
4027         (execute_late_warn_uninitialized): New function.
4028         * tree-ssa.c (ssa_undefined_value_p): Removed.
4029         (warn_uninit): Changed to extern.
4030         (warn_uninitialized_phi): Removed.
4031         (warn_uninitialized_vars): Changed to extern.
4032         (execute_late_warn_uninitialized): Removed
4033         * tree-flow.h: Add new prototypes.
4034         * timevar.def: Add new time variable.
4035         * Makefile.in: Add new build file.
4036
4037 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
4038
4039         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
4040         type if available.
4041
4042 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4043
4044         PR target/22224
4045         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
4046
4047 2010-04-28  Martin Jambor  <mjambor@suse.cz>
4048
4049         * cgraph.h (struct cgraph_node): New field indirect_calls.
4050         (struct cgraph_indirect_call_info): New type.
4051         (struct cgraph_edge): Removed field indirect_call. New fields
4052         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
4053         (cgraph_create_indirect_edge): Declare.
4054         (cgraph_make_edge_direct): Likewise.
4055         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
4056         * ipa-prop.h (struct ipa_param_call_note): Removed.
4057         (struct ipa_node_params): Removed field param_calls.
4058         (ipa_create_all_structures_for_iinln): Declare.
4059         * cgraph.c: Described indirect edges and uids in initial comment.
4060         (cgraph_add_edge_to_call_site_hash): New function.
4061         (cgraph_edge): Search also among the indirect edges, use
4062         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
4063         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
4064         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
4065         site hash.
4066         (initialize_inline_failed): Assign a reason to indirect edges.
4067         (cgraph_create_edge_1): New function.
4068         (cgraph_create_edge): Moved some functionality to
4069         cgraph_create_edge_1.
4070         (cgraph_create_indirect_edge): New function.
4071         (cgraph_edge_remove_callee): Add an assert checking for
4072         non-indirectness.
4073         (cgraph_edge_remove_caller): Special-case indirect edges.
4074         (cgraph_remove_edge): Likewise.
4075         (cgraph_set_edge_callee): New function.
4076         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
4077         (cgraph_make_edge_direct): New function.
4078         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
4079         the declaration of the call statement matches.
4080         (cgraph_node_remove_callees): Special-case indirect edges.
4081         (cgraph_clone_edge): Likewise.
4082         (cgraph_clone_node): Clone also the indirect edges.
4083         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
4084         indirect_call, dump count of indirect_calls edges.
4085         * ipa-prop.c (iinlining_processed_edges): New variable.
4086         (ipa_note_param_call): Create indirect edges instead of
4087         creating notes.  New parameter node.
4088         (ipa_analyze_call_uses): New parameter node, pass it on to
4089         ipa_note_param_call.
4090         (ipa_analyze_stmt_uses): Likewise.
4091         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
4092         (print_edge_addition_message): Work on edges rather than on notes.
4093         (update_call_notes_after_inlining): Likewise, renamed to
4094         update_indirect_edges_after_inlining.
4095         (ipa_create_all_structures_for_iinln): New function.
4096         (ipa_free_node_params_substructures): Do not free notes.
4097         (ipa_edge_duplication_hook): Propagate bits within
4098         iinlining_processed_edges bitmap.
4099         (ipa_node_duplication_hook): Do not duplicate notes.
4100         (free_all_ipa_structures_after_ipa_cp): Renamed to
4101         ipa_free_all_structures_after_ipa_cp.
4102         (free_all_ipa_structures_after_iinln): Renamed to
4103         ipa_free_all_structures_after_iinln.
4104         (ipa_write_param_call_note): Removed.
4105         (ipa_read_param_call_note): Removed.
4106         (ipa_write_indirect_edge_info): New function.
4107         (ipa_read_indirect_edge_info): Likewise.
4108         (ipa_write_node_info): Do not stream notes, do stream information
4109         in indirect edges.
4110         (ipa_read_node_info): Likewise.
4111         (lto_ipa_fixup_call_notes): Removed.
4112         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
4113         * ipa-inline.c (pass_ipa_inline): Likewise.
4114         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
4115         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
4116         * tree-inline.c (copy_bb): Removed an unnecessary double check for
4117         is_gimple_call.
4118         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
4119         edges.
4120         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
4121         (output_cgraph): Stream also indirect edges.
4122         (lto_output_edge): Added capability to stream indirect edges.
4123         (input_edge): Likewise.
4124         (input_cgraph_1): Likewise.
4125         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
4126         of indirect edges.
4127
4128 2010-04-28  Richard Guenther  <rguenther@suse.de>
4129
4130         PR tree-optimization/43879
4131         PR tree-optimization/43909
4132         * tree-ssa-structalias.c (struct variable_info): Add
4133         only_restrict_pointers flag.
4134         (new_var_info): Initialize it.  Increment stats.total_vars here.
4135         (create_function_info_for): Do not increment stats.total_vars here.
4136         (get_function_part_constraint): Fix build with C++.
4137         (insert_into_field_list): Remove.
4138         (push_fields_onto_fieldstack): Properly merge fields.
4139         (create_variable_info_for): Split and simplify.
4140         (create_variable_info_for_1): New piece.
4141         (intra_create_variable_infos): Properly make restrict constraints
4142         from parameters.
4143
4144 2010-04-28  Richard Guenther  <rguenther@suse.de>
4145
4146         PR c++/43880
4147         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
4148
4149 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4150             Jan Hubicka <hubicka@ucw.cz>
4151
4152         * doc/invoke.texi (-Wsuggest-attribute=const,
4153         -Wsuggest-attribute=pure): Document.
4154         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
4155         (function_always_visible_to_compiler_p,
4156         suggest_attribute, warn_function_pure, warn_function_const):
4157         New functions.
4158         (check_call): Improve debug info.
4159         (analyze_function): Do not check availability.
4160         (add_new_function): Check availability.
4161         (propagate): Output warnings.
4162         (skip_function_for_local_pure_const): New function.
4163         (local_pure_const): Use it; output warnings.
4164         * common.opt (Wsuggest-attribute=const,
4165         Wsuggest-attribute=pure): New.
4166
4167 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
4168
4169         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
4170         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
4171         or DW_CFA_def_cfa_offset{,_sf}.
4172
4173 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
4174
4175         * tree.h: Fix truncated long macros.
4176
4177 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
4178
4179         * collect2.c (TARGET_64BIT): Redefine to target's default.
4180         * tlink.c: Likewise.
4181         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
4182         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
4183         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
4184         for underscoring __USER_LABEL_PREFIX__.
4185         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
4186         (SUB_LINK_ENTRY32): New.
4187         (SUB_LINK_ENTRY64): New.
4188         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
4189         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
4190         (SUB_LINK_ENTRY64): New.
4191         (SUB_LINK_ENTRY): New.
4192         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
4193         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
4194         x64 target is choosen.
4195         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
4196         * configure: Regenerated.
4197         * configure.ac (leading-mingw64-underscores): Option added.
4198
4199 2010-04-27  Jan Hubicka  <jh@suse.cz>
4200
4201         * doc/invoke.texi (-fipa-profile): Document.
4202         * opts.c (decode_options): Enable ipa-profile at -O1.
4203         * timevar.def (TV_IPA_PROFILE): Define.
4204         * common.opt (fipa-profile): Add.
4205         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
4206         flag for clones.
4207         (cgraph_propagate_frequency): Handle only local ones.
4208         * tree-pass.h (pass_ipa_profile): Declare.
4209         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
4210         (pass_ipa_profile): Use TV_IPA_PROFILE.
4211         * ipa.c (ipa_profile): New function.
4212         (gate_ipa_profile): Likewise.
4213         (pass_ipa_profile): New global variable.
4214         * passes.c (pass_ipa_profile): New.
4215
4216 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
4217
4218         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
4219
4220 2010-04-27  Martin Jambor  <mjambor@suse.cz>
4221
4222         PR middle-end/43812
4223         * ipa.c (dissolve_same_comdat_group_list): New function.
4224         (function_and_variable_visibility): Call
4225         dissolve_same_comdat_group_list when comdat group contains external or
4226         newly local nodes.
4227         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
4228         lists are circular and that they contain only DECL_ONE_ONLY nodes.
4229
4230 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
4231
4232         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
4233         (const_hash_1) <VECTOR_CST>: New case.
4234         (compare_constant) <VECTOR_CST>: Likewise.
4235         <ADDR_EXPR>: Deal with LABEL_REFs.
4236         (copy_constant) <VECTOR_CST>: New case.
4237
4238 2010-04-27  Jan Hubicka  <jh@suse.cz>
4239
4240         * cgraph.c (cgraph_propagate_frequency): New function.
4241         * cgraph.h (cgraph_propagate_frequency): Declare.
4242         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
4243         cgraph_propagate_frequency.
4244
4245 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
4246
4247         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
4248
4249 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
4250
4251         PR target/40657
4252         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
4253         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
4254         here to determine which regs to push and how much stack to reserve.
4255
4256 2010-04-27  Jie Zhang  <jie@codesourcery.com>
4257
4258         * doc/gimple.texi (gimple_statement_with_ops): Remove
4259         addresses_taken field.
4260         (gimple_statement_with_memory_ops): Likewise.
4261
4262 2010-04-27  Jan Hubicka  <jh@suse.cz>
4263
4264         * tree-inline.c (eni_inlining_weights): Remove.
4265         (estimate_num_insns): Special case more builtins.
4266
4267 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
4268
4269         PR c/32207
4270         * c-typeck.c (build_binary_op): Move forward check for comparison
4271         pointer with null pointer constant and adjust the diagnostic message.
4272
4273 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
4274
4275         PR lto/42776
4276         * configure.ac (gcc_cv_as_section_has_align): Set if installed
4277         binutils supports extended .section directive needed by LTO, or
4278         warn if older binutils found.
4279         (LTO_BINARY_READER): New AC_SUBST'd variable.
4280         (LTO_USE_LIBELF): Likewise.
4281         * gcc/config.gcc (lto_binary_reader): New target-specific configure
4282         variable.
4283         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
4284         (LTO_USE_LIBELF): Likewise.
4285         * configure: Regenerate.
4286
4287         * collect2.c (is_elf): Rename from this ...
4288         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
4289          object files in addition to ELF-formatted ones.
4290         (scan_prog_file): Caller updated.  Also allow for LTO info marker
4291         symbol to be prefixed or not by an extra underscore.
4292
4293         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
4294         * config/i386/winnt.c: Also #include lto-streamer.h
4295         (i386_pe_asm_named_section): Specify 1-byte section alignment for
4296         LTO named sections.
4297         (i386_pe_asm_output_aligned_decl_common): Add comment.
4298         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
4299
4300 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
4301
4302         PR target/43889
4303         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
4304         Add missing earlyclobber for second alternative.
4305
4306 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
4307
4308         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
4309         bits for artificial defs at the top of the block.
4310         * fwprop.c (single_def_use_enter_block): Don't call it.
4311
4312 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
4313
4314         PR 43715
4315         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
4316         instead of "$gcc_cv_objdump -T".
4317         Use "-undefined dynamic_lookup" on darwin.
4318         * gcc/configure: Regenerate.
4319
4320 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
4321
4322         PR c/43893
4323         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
4324
4325 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
4326
4327         * c-parser.c (struct c_token): Move location field up.
4328         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
4329         (struct c_declspecs): Convert typespec_word, storage_class, and
4330         default_int_p into bitfields.
4331         (struct c_declarator): Move loc field up.
4332
4333 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
4334
4335         * cfgloop.h (struct loop): Move can_be_parallel field up.
4336         * ipa-prop.h (struct ip_node_params): Move bitfields up.
4337         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
4338         down.
4339         (struct iv_cand): Convert pos field into a bitfield.
4340         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
4341         field up.
4342         (struct _stmt_vec_info): Shuffle fields for better packing.
4343
4344 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
4345
4346         * varasm.c (IN_NAMED_SECTION): Remove guard.
4347         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
4348         (IN_NAMED_SECTION_P): ...this.
4349         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
4350         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
4351
4352 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
4353
4354         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
4355         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
4356         of shadowing it.  Fix comments.
4357
4358 2010-04-26  Jan Hubicka  <jh@suse.cz>
4359
4360         * cgraph.c (cgraph_create_node): Set node frequency to normal.
4361         (cgraph_clone_node): Copy function frequency.
4362         * cgraph.h (node_frequency): New enum
4363         (struct cgraph_node): Add.
4364         * final.c (rest_of_clean_state): Update.
4365         * lto-cgraph.c (lto_output_node): Output node frequency.
4366         (input_overwrite_node): Input node frequency.
4367         * tre-ssa-loop-ivopts (computation_cost): Update.
4368         * lto-streamer-out.c (output_function): Do not output function
4369         frequency.
4370         * predict.c (maybe_hot_frequency_p): Update and handle functions
4371         executed once.
4372         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
4373         attribute lookup.
4374         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
4375         (compute_function_frequency): Set noreturn functions to be executed
4376         once.
4377         (choose_function_section): Update.
4378         * lto-streamer-in.c (input_function): Do not input function frequency.
4379         * function.c (allocate_struct_function): Do not initialize function
4380         frequency.
4381         * function.h (function_frequency): Remove.
4382         (struct function): Remove function frequency.
4383         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
4384         (try_update): Update.
4385         * tree-inline.c (initialize_cfun): Do not update function frequency.
4386         * passes.c (pass_init_dump_file): Update.
4387         * i386.c (ix86_compute_frame_layout): Update.
4388         (ix86_pad_returns): Update.
4389
4390 2010-04-26  Jie Zhang  <jie@codesourcery.com>
4391
4392         PR tree-optimization/43833
4393         * tree-vrp.c (range_int_cst_p): New.
4394         (range_int_cst_singleton_p): New.
4395         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
4396         when both operands are constants.  Use range_int_cst_p in
4397         BIT_IOR_EXPR case.
4398
4399 2010-04-26  Jan Hubicka  <jh@suse.cz>
4400
4401         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
4402
4403 2010-04-26  Richard Guenther  <rguenther@suse.de>
4404
4405         PR lto/43080
4406         * gimple.c (gimple_decl_printable_name): Deal gracefully
4407         with a NULL DECL_NAME.
4408
4409 2010-04-26  Richard Guenther  <rguenther@suse.de>
4410
4411         PR lto/42425
4412         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
4413         if emitting debug information and it is either a function
4414         or a namespace decl.
4415
4416 2010-04-26  Ira Rosen  <irar@il.ibm.com>
4417
4418         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
4419         determine if the statement is vectorizable, and a macro to access it.
4420         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
4421         Skip statements that can't be vectorized. If the analysis fails,
4422         mark the statement as unvectorizable if vectorizing basic block.
4423         (vect_compute_data_refs_alignment): Likewise.
4424         (vect_verify_datarefs_alignment): Skip statements marked as
4425         unvectorizable. Add print.
4426         (vect_analyze_group_access): Skip statements that can't be
4427         vectorized. If the analysis fails, mark the statement as
4428         unvectorizable if vectorizing basic block.
4429         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
4430         * tree-vect-stmts.c (vectorizable_store): Fix the number of
4431         generated stmts for SLP.
4432         (new_stmt_vec_info): Initialize the new field.
4433         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
4434         statements marked as unvectorizable.
4435
4436 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
4437
4438         * c-common.c (flag_isoc1x): New.
4439         (flag_isoc99): Update comment.
4440         * c-common.h (flag_isoc1x): New.
4441         (flag_isoc99): Update comment.
4442         * c-cppbuiltin.c (builtin_define_float_constants): Also define
4443         __<type>_DECIMAL_DIG__.
4444         * c-opts.c (set_std_c1x): New.
4445         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
4446         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
4447         * c.opt (-std=c1x, -std=gnu1x): New options.
4448         * doc/cpp.texi: Mention -std=c1x.
4449         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
4450         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
4451         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
4452         * doc/standards.texi: Mention C1X.
4453         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
4454         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
4455         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
4456         Define for C1X.
4457
4458 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
4459
4460         * config/i386/gmon-sol2.c (_mcleanup): Change format string
4461         placeholder from 0x%x to %#x.
4462         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
4463         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
4464         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
4465         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
4466         * config/i386/i386.c (ix86_target_string): Ditto.
4467         (output_pic_addr_const): Ditto.
4468         (print_operand): Ditto.
4469
4470 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
4471
4472         * combine.c (find_split_point): Add third argument.  Use it
4473         to find nested multiply-accumulate instructions.  Adjust calls.
4474         (try_combine): Adjust call to find_split_point.
4475
4476 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
4477
4478         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
4479
4480 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
4481
4482         PR tree-optimization/41442
4483         * fold-const.c (merge_truthop_with_opposite_arm): New function.
4484         (fold_binary_loc): Call it.
4485
4486 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4487
4488         * toplev.c (general_init): Set default for fdiagnostics-show-option.
4489         * opts.c (common_handle_option): Allow disabling it.
4490         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
4491
4492 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
4493
4494         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
4495         between modes if both types are integral.
4496
4497 2010-04-23  Richard Guenther  <rguenther@suse.de>
4498
4499         PR tree-optimization/43572
4500         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
4501
4502 2010-04-23  Richard Guenther  <rguenther@suse.de>
4503
4504         PR lto/43455
4505         * tree-inline.c (tree_can_inline_p): Also check compatibility
4506         of return types.
4507
4508 2010-04-23  Martin Jambor  <mjambor@suse.cz>
4509
4510         PR tree-optimization/43846
4511         * tree-sra.c (struct access): New flag grp_assignment_read.
4512         (build_accesses_from_assign): Set grp_assignment_read.
4513         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
4514         (enum mark_read_status): New type.
4515         (analyze_access_subtree): Propagate grp_assignment_read, create
4516         accesses also if both direct_read and root->grp_assignment_read.
4517
4518 2010-04-23  Martin Jambor  <mjambor@suse.cz>
4519
4520         PR middle-end/43835
4521         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
4522         function does not have type attributes.
4523
4524 2010-04-23  Richard Guenther  <rguenther@suse.de>
4525
4526         PR lto/42653
4527         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
4528         of FUNCTION_DECLs.
4529
4530 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4531
4532         * sese.h (create_if_region_on_edge): Remove.
4533
4534         * sese.c (create_if_region_on_edge): Make static.
4535
4536         * tree-inline.c: Do not include ggc.h.
4537
4538         * expr.c: Do not include ggc.h.
4539
4540         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
4541         dependencies.
4542
4543 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
4544
4545         PR target/43744
4546         * config/sh/sh.c (find_barrier): Don't emit a constant pool
4547         in the middle of insns for casesi_worker_2.
4548
4549 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
4550
4551         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
4552
4553 2010-04-22  Ira Rosen  <irar@il.ibm.com>
4554
4555         PR tree-optimization/43842
4556         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
4557         loop unrolling in update of exit phis. Fix comment.
4558         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
4559         least two reduction statements in the loop before starting SLP
4560         analysis.
4561
4562 2010-04-22  Nick Clifton  <nickc@redhat.com>
4563
4564         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
4565
4566 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
4567
4568         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
4569         to simplify a + ~a.
4570
4571 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4572
4573         * tree-parloops.c (loop_parallel_p): New argument
4574         parloop_obstack.  Pass it down.
4575         (parallelize_loops): New variable parloop_obstack.  Initialize it,
4576         pass it down, free it.
4577
4578         * tree-loop-linear.c (linear_transform_loops): Pass down
4579         lambda_obstack.
4580
4581         * tree-data-ref.h (lambda_compute_access_matrices): New argument
4582         of type struct obstack *.
4583
4584         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
4585         scratch_obstack.  Initialize it, pass down, free it.
4586
4587         * lambda.h (lambda_loop_new): Remove.
4588         (lambda_matrix_new, lambda_matrix_inverse)
4589         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
4590         argument of type struct obstack *.
4591
4592         * lambda-trans.c (lambda_trans_matrix_new): New argument
4593         lambda_obstack.  Pass it down, use obstack allocation for ret.
4594         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
4595         it down.
4596
4597         * lambda-mat.c (lambda_matrix_get_column)
4598         (lambda_matrix_project_to_null): Remove.
4599         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
4600         allocation for mat.
4601         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
4602         lambda_obstack.
4603
4604         * lambda-code.c (lambda_loop_new): New function.
4605         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
4606         (lambda_compute_auxillary_space, lambda_compute_target_space)
4607         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
4608         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
4609         (build_access_matrix): New argument lambda_obstack.  Use obstack
4610         allocation for am.
4611         (lambda_compute_step_signs, lambda_compute_access_matrices): New
4612         argument lambda_obstack.  Pass it down.
4613
4614 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4615
4616         * optabs.h (expand_widening_mult): Declare.
4617
4618 2010-04-22  Richard Guenther  <rguenther@suse.de>
4619
4620         PR tree-optimization/43845
4621         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
4622         lookup the CALL_EXPR function and arguments.
4623
4624 2010-04-22  Nick Clifton  <nickc@redhat.com>
4625
4626         * config/stormy16/stormy16.c
4627         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
4628         * config/stormy16/stormy16.h: Tidy up formatting.
4629         (DONT_USE_BUILTIN_SETJMP): Remove definition.
4630         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
4631         (ineqbranchsi): Delete pattern.
4632         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
4633         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
4634         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
4635         stormy16-lib2-ucmpsi2.c.
4636
4637 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4638
4639         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
4640         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
4641         extra set merge_set_noclobber, and use it to relax the final test
4642         slightly.
4643         * df.h (df_simulate_find_noclobber_defs): Declare.
4644         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
4645         conditional defs.
4646         (df_simulate_find_noclobber_defs): New function.
4647
4648 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
4649
4650         * config/i386/i386.md: Use {} around multi-line preparation statements.
4651
4652 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4653
4654         * c-tree.h (push_init_level, pop_init_level, set_init_index)
4655         (process_init_element): New argument of type struct obstack *.
4656
4657         * c-typeck.c (push_init_level, pop_init_level, set_designator)
4658         (set_init_index, set_init_label, set_nonincremental_init)
4659         (set_nonincremental_init_from_string, find_init_member)
4660         (output_init_element, output_pending_init_elements)
4661         (process_init_element): New argument braced_init_obstack.  Pass it
4662         down.
4663         (push_range_stack, add_pending_init): New argument
4664         braced_init_obstack.  Use obstack allocation.
4665
4666         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
4667         braced_init_obstack.  Pass it down.
4668         (c_parser_braced_init): New variables ret, braced_init_obstack.
4669         Initialize obstack, pass it down and finally free it.
4670
4671 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4672
4673         PR middle-end/29274
4674         * tree-pass.h (pass_optimize_widening_mul): Declare.
4675         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
4676         gate_optimize_widening_mul): New static functions.
4677         (pass_optimize_widening_mul): New.
4678         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
4679         <case MULT_EXPR>: Remove support for widening multiplies.
4680         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
4681         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
4682         simplify_gen_unary rather than directly building extensions.
4683         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
4684         WIDEN_MULT_EXPR.
4685         * expmed.c (expand_widening_mult): New function.
4686         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
4687
4688 2010-04-21  Jan Hubicka  <jh@suse.cz>
4689
4690         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
4691         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
4692         * lto-wpa-fixup.c: Remove.
4693         * Makefile.in (lto-wpa-fixup.o): Remove.
4694         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
4695         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
4696         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
4697
4698 2010-04-21  Jan Hubicka  <jh@suse.cz>
4699
4700         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
4701         add write_optimization_summary, read_optimization_summary.
4702         (ipa_write_summaries_of_cgraph_node_set): Remove.
4703         (ipa_write_optimization_summaries): Declare.
4704         (ipa_read_optimization_summaries): Declare.
4705         * ipa-cp.c (pass_ipa_cp): Update.
4706         * ipa-reference.c (pass_ipa_reference): Update.
4707         * ipa-pure-const.c (pass_ipa_pure_const): Update.
4708         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
4709         Update.
4710         * ipa-inline.c (pass_ipa_inline): Update.
4711         * ipa.c (pass_ipa_whole_program): Update.
4712         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
4713         * passes.c (ipa_write_summaries_1): Do not test wpa.
4714         (ipa_write_optimization_summaries_1): New.
4715         (ipa_write_optimization_summaries): New.
4716         (ipa_read_summaries): Do not test ltrans.
4717         (ipa_read_optimization_summaries_1): New.
4718         (ipa_read_optimization_summaries): New.
4719
4720 2010-04-21  Jan Hubicka  <jh@suse.cz>
4721
4722         * lto-cgraph.c (lto_output_node): Do not output comdat groups
4723         for boundary nodes.
4724         (output_cgraph): Do not arrange comdat groups for boundary nodes.
4725
4726 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4727
4728         PR debug/40040
4729         * dwarf2out.c (add_name_and_src_coords_attributes): Add
4730         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
4731
4732 2010-04-21  Jan Hubicka  <jh@suse.cz>
4733
4734         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
4735
4736 2010-04-21  Jan Hubicka  <jh@suse.cz>
4737
4738         * varpool.c (decide_is_variable_needed): Variable is always needed
4739         during ltrans.
4740
4741 2010-04-21  Jan Hubicka  <jh@suse.cz>
4742
4743         * opts.c (decode_options): Enable pure-const pass for whopr.
4744
4745 2010-04-21  Jan Hubicka  <jh@suse.cz>
4746
4747         * cgraph.c (dump_cgraph_node): Dump also assembler name.
4748         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
4749         at WPA dumping.
4750         (cgraph_decide_inlining): Do not expect callee to be removed in all
4751         cases.
4752
4753 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
4754
4755         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
4756
4757 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
4758
4759         * config/i386/i386.md (x86_shrd): Add athlon_decode and
4760         amdfam10_decode attributes.
4761
4762 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4763
4764         PR middle-end/43570
4765         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
4766         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
4767         (lower_copyprivate_clauses): Use private var in outer
4768         context instead of original var.  Make sure the types
4769         are correct for VLAs.
4770
4771 2010-04-21  Richard Guenther  <rguenther@suse.de>
4772
4773         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
4774         to non-pointer objects.
4775
4776 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4777
4778         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
4779         last chain entry if it starts with the still current label.
4780         (add_location_or_const_value_attribute): Check that
4781         loc_list->first->next is NULL instead of comparing ->first with ->last.
4782         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
4783         to add_var_loc_to_decl.
4784
4785         * dwarf2out.c (output_call_frame_info): For dw_cie_version
4786         >= 4 add also address size and segment size fields into CIE header.
4787
4788         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
4789         long as address size is the same as sizeof (void *) and
4790         segment size is 0.
4791         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
4792         address size or segment size is unexpected, return DW_EH_PE_omit.
4793         (classify_object_over_fdes): If get_cie_encoding returned
4794         DW_EH_PE_omit, return -1.
4795         (init_object): If classify_object_over_fdes returned -1,
4796         pretend there were no FDEs at all.
4797
4798 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
4799
4800         * config/i386/i386.md (bswap<mode>2): Macroize expander from
4801         bswap{si,di}2 using SWI48 mode iterator.
4802         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
4803         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
4804         set modrm attribute of bswap insn to 0 and remove length attribute.
4805         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
4806         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
4807         set mode attribute to <MODE> and remove length attribute.
4808
4809 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
4810
4811         PR rtl-optimization/43520
4812         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
4813         zero available registers.
4814
4815 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4816
4817         * builtins.c (fold_builtin_cproj): Fold more cases.
4818
4819 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4820
4821         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
4822         (fold_builtin_1): Fold builtin cproj.
4823         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
4824         Use ATTR_CONST_NOTHROW_LIST.
4825
4826 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
4827
4828         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
4829         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
4830         ffsi2_no_cmove for !TARGET_CMOVE.
4831         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
4832         (ffssi2): Remove expander.
4833         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
4834         mode iterator.
4835         (ctz<mode>2): Ditto from ctz{si,di}2.
4836         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
4837         mode iterator.
4838         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
4839         mode iterator.
4840
4841 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
4842
4843         * dwarf2out.c (AT_linkage_name): Define.
4844         (clone_as_declaration): Handle DW_AT_linkage_name.
4845         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
4846         of DW_AT_MIPS_linkage_name.
4847         (move_linkage_attr): Likewise.
4848         (dwarf2out_finish): Likewise.
4849
4850 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
4851
4852         PR middle-end/41952
4853         * fold-const.c (fold_comparison): New folding rule.
4854
4855 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
4856
4857         * double-int.h (double_int_setbit): Declare.
4858         * double-int.c (double_int_setbit): New function.
4859         * rtl.h (immed_double_int_const): Declare.
4860         * emit-rtl.c (immed_double_int_const): New function.
4861         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
4862         and immed_double_int_const functions.
4863         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
4864         expand_copysign_bit):  (Ditto.).
4865         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
4866         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
4867         * dojump.c (prefer_and_bit_test): (Ditto.).
4868         * expr.c (convert_modes, reduce_to_bit_field_precision,
4869         const_vector_from_tree): (Ditto.).
4870         * expmed.c (mask_rtx, lshift_value): (Ditto.).
4871
4872 2010-04-20  Jan Hubicka  <jh@suse.cz>
4873
4874         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
4875         (dump_cgraph_node): Dump new flags.
4876         * cgraph.h (struct cgraph_node): Add flags
4877         reachable_from_other_partition and in_other_partition.
4878         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
4879         other partition can not be removed.
4880         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
4881         the other partition must be output; silence sanity checking on
4882         leaking functions bodies from other paritition.
4883         * lto-cgraph.c (reachable_from_other_partition_p): New function.
4884         (lto_output_node): Output new flags; do not sanity check that inline
4885         clones are output; drop lto_forced_extern_inline_p code; do not mock
4886         visibility flags at partition boundaries.
4887         (add_node_to): New function.
4888         (output_cgraph): Use it to sort functions so masters appear before
4889         clones.
4890         (input_overwrite_node): Input new flags.
4891         * passes.c (ipa_write_summaries): Do not call
4892         lto_new_extern_inline_states.
4893         * lto-section-out.c (forced_extern_inline,
4894         lto_new_extern_inline_states lto_delete_extern_inline_states,
4895         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
4896         * lto-streamer.h (lto_new_extern_inline_states,
4897         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
4898         lto_forced_extern_inline_p): Kill.
4899
4900 2010-04-20  Richard Guenther  <rguenther@suse.de>
4901
4902         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
4903         from vars that can have pointers.
4904         (process_constraint): Dump useless constraints.
4905
4906 2010-04-20  Richard Guenther  <rguenther@suse.de>
4907
4908         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
4909         (dump_sa_points_to_info): Remove asserts.
4910         (init_base_vars): nothing_id isn't an escape point nor does it
4911         have pointers.
4912
4913 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
4914
4915         * tree.h (TYPE_REF_IS_RVALUE): Define.
4916         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
4917         should_move_die_to_comdat, prune_unused_types_walk): Handle
4918         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
4919         (modified_type_die, gen_reference_type_die): Emit
4920         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
4921         if TYPE_REF_IS_RVALUE and -gdwarf-4.
4922
4923 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4924
4925         PR target/43635
4926         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
4927         calls for -fpic -m31 if they have been sibcall optimized.
4928
4929 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
4930
4931         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
4932         ar.lc fixed and call-used.
4933
4934         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
4935
4936 2010-04-19  Jan Hubicka  <jh@suse.cz>
4937
4938         * opts.c (decode_options): Disable whpr incompatible passes.
4939         * lto/lto.c (lto_1_to_1_map): Skip clones.
4940         (read_cgraph_and_symbols): Do not mark everything as needed.
4941         (do_whole_program_analysis): Do map only after optimizing;
4942         set proper cgraph_state; use passmanager.
4943
4944 2010-04-19  DJ Delorie  <dj@redhat.com>
4945
4946         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
4947         POINTER_PLUS_EXPR and fix them.
4948
4949 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
4950
4951         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
4952         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
4953         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
4954         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
4955         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
4956         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
4957         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
4958         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
4959         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
4960         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
4961         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
4962
4963 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4964
4965         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
4966         (check_cond_move_block): Likewise.
4967         (cond_move_process_if_block): Likewise.
4968         (noce_find_if_block): Improve formatting.
4969         (find_if_header): Pass 0 to memset and tweak conditions.
4970         (cond_exec_find_if_block): Fix long lines and tweak conditions.
4971
4972 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
4973
4974         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
4975         for -gdwarf-4.
4976
4977         PR middle-end/43337
4978         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
4979         with non-local decl doesn't need chain.
4980
4981 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
4982
4983         * ira-color.c (allocno_reload_assign): Avoid accumulating
4984         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
4985
4986 2010-04-19  Martin Jambor  <mjambor@suse.cz>
4987
4988         * gimple.h (create_tmp_reg): Declare.
4989         * gimplify.c (create_tmp_reg): New function.
4990         (gimplify_return_expr): Use create_tmp_reg.
4991         (gimplify_omp_atomic): Likewise.
4992         (gimple_regimplify_operands): Likewise.
4993         * tree-dfa.c (make_rename_temp): Likewise.
4994         * tree-predcom.c (predcom_tmp_var): Likewise.
4995         (reassociate_to_the_same_stmt): Likewise.
4996         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
4997         (get_replaced_param_substitute): Likewise.
4998         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
4999         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
5000         * tree-ssa-pre.c (get_representative_for): Likewise.
5001         (create_expression_by_pieces): Likewise.
5002         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
5003         (create_tailcall_accumulator): Likewise.
5004
5005 2010-04-19  Martin Jambor  <mjambor@suse.cz>
5006
5007         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
5008         new_stmt.
5009         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
5010
5011 2010-04-19  Richard Guenther  <rguenther@suse.de>
5012
5013         PR tree-optimization/43796
5014         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
5015         from SCEV in the lattice.
5016         (vrp_visit_phi_node): Dump change.
5017
5018 2010-04-19  Richard Guenther  <rguenther@suse.de>
5019
5020         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
5021         * configure: Re-generated.
5022
5023 2010-04-19  Richard Guenther  <rguenther@suse.de>
5024
5025         PR tree-optimization/43783
5026         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
5027         constant ARRAY_REF operands two and three if possible.
5028
5029 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
5030
5031         PR target/43766
5032         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
5033
5034 2010-04-19  Jie Zhang  <jie@codesourcery.com>
5035
5036         PR target/43662
5037         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
5038
5039 2010-04-19  Ira Rosen  <irar@il.ibm.com>
5040
5041         PR tree-optimization/37027
5042         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
5043         and macro to access it.
5044         (vectorizable_reduction): Add argument.
5045         (vect_get_slp_defs): Likewise.
5046         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
5047         statements for possible use in SLP.
5048         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
5049         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
5050         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
5051         add new argument.
5052         (vectorizable_reduction): Likewise.
5053         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
5054         vect_get_slp_defs.
5055         (vectorizable_type_demotion, vectorizable_type_promotion,
5056         vectorizable_store): Likewise.
5057         (vect_analyze_stmt): Update call to vectorizable_reduction.
5058         (vect_transform_stmt): Likewise.
5059         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
5060         (vect_build_slp_tree): Fix indentation. Check that there are no loads
5061         from different interleaving chains in same node.
5062         (vect_slp_rearrange_stmts): New function.
5063         (vect_supported_load_permutation_p): Allow load permutations for
5064         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
5065         inside SLP nodes if necessary.
5066         (vect_analyze_slp_instance): Handle reductions.
5067         (vect_analyze_slp): Try to build SLP instances originating from groups
5068         of reductions.
5069         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
5070         (vect_get_constant_vectors): Create initial vectors for reductions
5071         according to reduction code. Add new argument.
5072         (vect_get_slp_defs): Add new argument, pass it to
5073         vect_get_constant_vectors.
5074         (vect_schedule_slp_instance): Remove SLP tree root statements.
5075
5076 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
5077
5078         * tree.h (ENUM_IS_SCOPED): Define.
5079         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
5080         for ENUM_IS_SCOPED enums.
5081
5082 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5083
5084         * fold-const.c (fold_comparison): Use ssizetype.
5085         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
5086         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
5087         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
5088         * tree-object-size.c (compute_object_sizes): Use size_type_node.
5089
5090         * tree.h (initialize_sizetypes): Remove parameter.
5091         (build_common_tree_nodes): Remove second parameter.
5092         * stor-layout.c (initialize_sizetypes): Remove parameter.
5093         Always create an unsigned type.
5094         (set_sizetype): Assert that the passed type is unsigned and simplify.
5095         * tree.c (build_common_tree_nodes): Remove second parameter.
5096         Adjust call to initialize_sizetypes.
5097         * c-decl.c (c_init_decl_processing): Remove second argument in call to
5098         build_common_tree_nodes.
5099
5100 2010-04-18  Matthias Klose  <doko@ubuntu.com>
5101
5102         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
5103
5104 2010-04-18  Ira Rosen  <irar@il.ibm.com>
5105
5106         PR tree-optimization/43771
5107         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
5108         load permutation doesn't have gaps.
5109
5110 2010-04-18  Jan Hubicka  <jh@suse.cz>
5111
5112         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
5113         (sse_prologue_save_insn expander): Use new pattern.
5114         (sse_prologue_save_insn1): New pattern and splitter.
5115         (sse_prologue_save_insn): Update to deal also with 64bit aligned
5116         blocks.
5117         * i386.c (setup_incoming_varargs_64): Do not compute jump
5118         destination here.
5119         (ix86_gimplify_va_arg): Update alignment needed.
5120         (ix86_local_alignment): Do not align all local arrays to 128bit.
5121
5122 2010-04-17  Jan Hubicka  <jh@suse.cz>
5123
5124         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
5125
5126 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5127
5128         * arm.md (negdi2): Remove redundant code to force values into a
5129         register.
5130
5131 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5132
5133         * arm/bpabi.S: Add EABI alignment attributes to objects.
5134         * arm/bpabi-v6m.S: Likewise.
5135         * arm/crti.asm: Likewise.
5136         * arm/crtn.asm: Likewise.
5137         * arm/lib1funcs.asm: Likewise.
5138         * arm/libunwind.S: Likewise.
5139
5140 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5141
5142         * arm-protos.h (tune_params): New structure.
5143         * arm.c (current_tune): New variable.
5144         (arm_constant_limit): Delete.
5145         (struct processors): Add pointer to the tune parameters.
5146         (arm_slowmul_tune): New tuning option.
5147         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
5148         (all_cores): Adjust to pick up the tuning model.
5149         (arm_constant_limit): New function.
5150         (arm_override_options): Select the appropriate tuning model.  Delete
5151         initialization of arm_const_limit.
5152         (arm_split_constant): Use the new constant-limit model.
5153         (arm_rtx_costs): Pick up the current tuning model.
5154         * arm.md (is_strongarm, is_xscale): Delete.
5155         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
5156         for Xscale variant architectures.
5157         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
5158
5159 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5160
5161         * config/arm/arm.c (arm_gen_constant): Remove unused variable
5162         can_shift.
5163         (arm_rtx_costs_1): Remove unused variable extra_cost.
5164         (arm_unwind_emit_set): Use variable offset.
5165         (thumb1_output_casesi): Remove unused variable flags.
5166
5167 2010-04-16  Jeff Law  <law@redhat.com>
5168
5169         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
5170         needing assignment rather than doing a two-phase assignment.  Remove
5171         unused variable 'm'.
5172
5173 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5174
5175         PR bootstrap/43767
5176         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
5177
5178 2010-04-16  Doug Kwan  <dougkwan@google.com>
5179
5180         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
5181         (next_operand_entry_id): New static variable.
5182         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
5183         (add_to_ops_vec): Assigned unique ID to operand entry.
5184         (struct oecount_s): New field ID.
5185         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
5186         (undistribute_ops_list): Assign unique IDs to oecounts.
5187         (init_reassoc): reset next_operand_entry_id.
5188
5189 2010-04-16  Doug Kwan  <dougkwan@google.com>
5190
5191         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
5192         missing left parenthesis.
5193
5194 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
5195
5196         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
5197         *btdi_rex64 using SWI48 mode iterator.
5198         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
5199         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
5200         *jcc_btdi_mask_rex64.
5201
5202 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
5203
5204         * double-int.h (tree_to_double_int): Convert to macro.
5205         * double-int.c (tree_to_double_int): Remove.
5206
5207 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5208
5209         PR debug/43762
5210         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
5211         with want_address 2 and in case a single element list might be
5212         possible, call it again with want_address 0.
5213
5214 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
5215
5216         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
5217         case 'W' print operands for HI mode.
5218         * config/h8300/h8300.h (Y0, Y2) : New constraints.
5219         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
5220         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
5221         * config/h8300/predicate.md (bit_register_indirect_operand): New.
5222
5223         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
5224
5225         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
5226         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
5227         #xx:3 and #xx:4 mode.
5228
5229         * config/h8300/h8300.md (inverted load with HImode dest): Add
5230         support for H8300SX.
5231
5232         * config/h8300/predicate.md (bit_operand): Allow immediate values that
5233         satisfy 'U' constraint.
5234
5235 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5236
5237         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
5238         * configure: Regenerate.
5239         * config.in: Regenerate.
5240         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
5241         works.
5242
5243 2010-04-16  Richard Guenther  <rguenther@suse.de>
5244
5245         * tree.h (struct tree_decl_minimal): Move pt_uid ...
5246         (struct tree_decl_common): ... here.
5247         (DECL_PT_UID): Adjust.
5248         (SET_DECL_PT_UID): Likewise.
5249         (DECL_PT_UID_SET_P): Likewise.
5250
5251 2010-04-16  Richard Guenther  <rguenther@suse.de>
5252
5253         PR tree-optimization/43572
5254         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
5255         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
5256         * tree-flow.h (is_call_clobbered): Remove.
5257         * tree-flow-inline.h (is_call_clobbered): Likewise.
5258         * tree-dfa.c (dump_variable): Do not dump call clobber state.
5259         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
5260         (execute_return_slot_opt): Adjust.
5261         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
5262         check for call clobbered vars here.
5263         (find_tail_calls): Move tailcall verification to the
5264         proper place.
5265
5266 2010-04-16  Diego Novillo  <dnovillo@google.com>
5267
5268         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
5269
5270 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5271
5272         PR target/40603
5273         * config/arm/arm.md (cbranchqi4): New pattern.
5274         * config/arm/predicates.md (const0_operand,
5275         cbranchqi4_comparison_operator): New predicates.
5276
5277 2010-04-16  Richard Guenther  <rguenther@suse.de>
5278
5279         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
5280         (dump_gimple_stmt): Likewise.
5281
5282 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5283
5284         * recog.h (struct recog_data): New field is_operator.
5285         (struct insn_operand_data): New field is_operator.
5286         * recog.c (extract_insn): Set recog_data.is_operator.
5287         * genoutput.c (output_operand_data): Emit code to set the
5288         is_operator field.
5289         * reload.c (find_reloads): Use it rather than testing for an
5290         empty constraint string.
5291
5292         PR target/41514
5293         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
5294         If the previous insn is a cbranchsi4_insn with the same arguments,
5295         omit the compare instruction.
5296
5297         * config/arm/arm.md (addsi3_cbranch): If destination is a high
5298         register, inputs must be low registers and we need a low register
5299         scratch.  Handle alternative 2 like alternative 3.
5300
5301 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5302
5303         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
5304         don't call get_addr on both.  If one expression is a VALUE and
5305         the other a REG, check VALUE's locs if the REG isn't among them.
5306
5307 2010-04-16  Christian Bruel  <christian.bruel@st.com>
5308
5309         * config/sh/sh.h (sh_frame_pointer_required): New function.
5310         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
5311         (flag_omit_frame_pointer) Set.
5312         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
5313         (rounded_frame_size): Adjust size with outgoing_args_size.
5314         (sh_set_return_address): Must return from stack pointer.
5315         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
5316         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
5317         (ACCUMULATE_OUTGOING_ARGS): Define.
5318         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
5319         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
5320
5321 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5322
5323         PR target/43471
5324         * config/sh/sh.c (sh_legitimize_reload_address): Use
5325         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
5326         Remove a unneeded check for offset_base.
5327
5328 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
5329
5330         * configure: Regenerated.
5331
5332 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5333
5334         * config/s390/s390.c (s390_call_save_register_used): Switch back
5335         to HARD_REGNO_NREGS.
5336
5337 2010-04-15  Richard Guenther  <rguenther@suse.de>
5338
5339         * alias.c (alias_set_subset_of): Handle alias-set zero
5340         child properly.
5341
5342 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
5343             Julian Brown  <julian@codesourcery.com>
5344
5345         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
5346         alternatives according to use of high and low regs.
5347         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
5348         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
5349         optimizing for size on Thumb-2.
5350
5351 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
5352
5353         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
5354
5355 2010-04-15  Richard Guenther  <rguenther@suse.de>
5356
5357         * tree-ssa-structalias.c (struct variable_info): Add
5358         is_fn_info flag.
5359         (new_var_info): Initialize it.
5360         (dump_constraints): Support printing last added constraints.
5361         (debug_constraints): Adjust.
5362         (dump_constraint_graph): Likewise.
5363         (make_heapvar_for): Check for NULL cfun.
5364         (get_function_part_constraint): New function.
5365         (get_fi_for_callee): Likewise.
5366         (find_func_aliases): Properly implement IPA PTA constraints.
5367         (process_ipa_clobber): New function.
5368         (find_func_clobbers): Likewise.
5369         (insert_into_field_list_sorted): Remove.
5370         (create_function_info_for): Properly allocate vars for IPA mode.
5371         Do not use insert_into_field_list_sorted.
5372         (create_variable_info_for): Properly generate constraints for
5373         global vars in IPA mode.
5374         (dump_solution_for_var): Always dump the solution.
5375         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
5376         (find_what_var_points_to): Adjust.
5377         (pt_solution_set): Change.
5378         (pt_solution_ior_into): New function.
5379         (pt_solution_empty_p): Export.
5380         (pt_solution_includes_global): Adjust.
5381         (pt_solution_includes_1): Likewise.
5382         (pt_solutions_intersect_1): Likewise.
5383         (dump_sa_points_to_info): Check some invariants.
5384         (solve_constraints): Move constraint dumping ...
5385         (compute_points_to_sets): ... here.
5386         (ipa_pta_execute): ... and here.
5387         (compute_may_aliases): Do not re-compute points-to info
5388         locally if IPA info is available.
5389         (ipa_escaped_pt): New global var.
5390         (ipa_pta_execute): Properly implement IPA PTA.
5391         * tree-into-ssa.c (dump_decl_set): Support dumping
5392         decls not in referenced-vars.
5393         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
5394         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
5395         (dump_points_to_solution): Likewise.
5396         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
5397         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
5398         (remap_gimple_stmt): Reset call clobber/use information if necessary.
5399         (copy_decl_to_var): Copy DECL_PT_UID.
5400         (copy_result_decl_to_var): Likewise.
5401         * tree.c (make_node_stat): Initialize DECL_PT_UID.
5402         (copy_node_stat): Copy it.
5403         * tree.h (DECL_PT_UID): New macro.
5404         (SET_DECL_PT_UID): Likewise.
5405         (DECL_PT_UID_SET_P): Likewise.
5406         (struct tree_decl_minimal): Add pt_uid member.
5407         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
5408         (pt_solution_empty_p): Declare.
5409         (pt_solution_set): Adjust.
5410         (ipa_escaped_pt): Declare.
5411         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
5412         * gimple-pretty-print.c (pp_points_to_solution): New function.
5413         (dump_gimple_call): Dump call clobber/use information.
5414         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
5415         * tree-pass.h (TDF_ALIAS): New dump option.
5416         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
5417         * doc/invoke.texi (-fipa-pta): Update documentation.
5418
5419 2010-04-15  Richard Guenther  <rguenther@suse.de>
5420
5421         * Makefile.in (OBJS-common): Add gimple-fold.o.
5422         (gimple-fold.o): New rule.
5423         * tree.h (maybe_fold_offset_to_reference,
5424         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
5425         prototypes ...
5426         * gimple.h: ... here.
5427         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
5428         may_propagate_address_into_dereference): Move prototypes ...
5429         * gimple.h: ... here.
5430         * tree-ssa-ccp.c (get_symbol_constant_value,
5431         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
5432         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
5433         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
5434         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
5435         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
5436         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
5437         gimplify_and_update_call_from_tree): Move ...
5438         * gimple-fold.c: ... here.  New file.
5439         (ccp_fold_builtin): Rename to ...
5440         (gimple_fold_builtin): ... this.
5441         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
5442
5443 2010-04-15  Richard Guenther  <rguenther@suse.de>
5444
5445         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
5446         fit_double_type, force_fit_type_double, add_double_with_sign,
5447         neg_double, mul_double_with_sign, lshift_double, rshift_double,
5448         lrotate_double, rrotate_double, div_and_round_double): Move ...
5449         * double-int.c: ... here.
5450         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
5451         add_double, neg_double, mul_double_with_sign, mul_double,
5452         lshift_double, rshift_double, lrotate_double, rrotate_double,
5453         div_and_round_double): Move prototypes ...
5454         * double-int.h: ... here.
5455
5456 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
5457
5458         PR target/43742
5459         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
5460         matching constraints to ensure inputs match the output.
5461
5462 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5463
5464         PR target/43742
5465         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
5466         in an input-only operand.
5467
5468 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
5469
5470         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
5471         (double_int_not, double_int_lshift, double_int_rshift): Declare.
5472         (double_int_negative_p): Convert to static inline function.
5473         * double-int.c (double_int_lshift, double_int_lshift): New functions.
5474         (double_int_negative_p): Remove.
5475         * tree.h (lshift_double, rshift_double):
5476         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
5477         * fold-const.c (fold_convert_const_int_from_real,
5478         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
5479         (lshift_double): Change type of arith argument to bool.
5480         (rshift_double): Change type of arith argument to bool. Correct
5481         comment.
5482         * expmed.c (mask_rtx, lshift_value): (Ditto.).
5483
5484 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
5485
5486         PR target/21803
5487         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
5488         at the start and end of the then/else blocks, and omit them from the
5489         conversion.
5490         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
5491         argument; all callers changed.  Pass zero to old_insns_match_p instead.
5492         (flow_find_head_matching_sequence): New function.
5493         (old_insns_match_p): Check REG_EH_REGION notes for calls.
5494         * basic-block.h (flow_find_cross_jump,
5495         flow_find_head_matching_sequence): Declare functions.
5496
5497 2010-04-14  Jason Merrill  <jason@redhat.com>
5498
5499         PR c++/36625
5500         * c-common.c (attribute_takes_identifier_p): New fn.
5501         * c-common.h: Declare it.
5502
5503 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5504
5505         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
5506         splitter condition.
5507         (*udivmod<mode>4): Ditto.
5508
5509 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5510
5511         * config/i386/i386.md (maxmin_int): Rename code attribute from
5512         maxminiprefix and update all users.
5513         (maxmin_float): Ditto from maxminfprefix.
5514         (logic): Ditto from logicprefix.
5515         (absneg_mnemonic): Ditto from absnegprefix.
5516         * config/i386/mmx.md: Update all users of maxminiprefix,
5517         maxminfprefix and logicprefix for rename.
5518         * config/i386/sse.md: Ditto.
5519         * config/i386/sync.md (sync_<code><mode>): Update for
5520         logicprefix rename.
5521
5522 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5523
5524         PR 42966
5525         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
5526         warnings converted to errors.
5527
5528 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5529
5530         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
5531         used insn_type variable.
5532         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
5533         to avoid set-but-not-used warning.
5534
5535 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5536
5537         * df-core.c (df_ref_debug): Change format string placeholder
5538         from 0x%x to %#x.
5539         * dwarf2asm.c (dw2_asm_output_data_raw,
5540         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
5541         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
5542         * dwarf2out.c (output_cfi, output_cfi_directive,
5543         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
5544         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
5545         Ditto.
5546         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
5547         * print-rtl.c (print_rtx): Ditto.
5548
5549 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
5550
5551         PR middle-end/42694
5552         * builtins.c (expand_builtin_pow_root): New function to expand pow
5553         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
5554         series of sqrt and cbrt calls under -ffast-math.
5555         (expand_builtin_pow): Call it.
5556
5557 2010-04-14  Michael Matz  <matz@suse.de>
5558
5559         PR tree-optimization/42963
5560         * tree-cfg.c (touched_switch_bbs): New static variable.
5561         (group_case_labels_stmt): New function broken out from ...
5562         (group_case_labels): ... here, use the above.
5563         (start_recording_case_labels): Allocate touched_switch_bbs.
5564         (end_recording_case_labels): Deallocate it, call
5565         group_case_labels_stmt.
5566         (gimple_redirect_edge_and_branch): Remember index of affected BB.
5567
5568 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5569
5570         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
5571         from insn template.
5572
5573 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5574
5575         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
5576
5577 2010-04-13  Jan Hubicka  <jh@suse.cz>
5578
5579         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
5580         of optimized out static functions.
5581         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
5582         cost computation.  Also sanity check for overflows.
5583         (update_caller_keys): Update cgraph_edge_badness call; properly
5584         update fibheap and sanity check that it is up to date.
5585         (add_new_edges_to_heap): Update cgraph_edge_badness.
5586         (cgraph_decide_inlining_of_small_function): Likewise;
5587         add sanity checking that badness in heap is up to date;
5588         improve dumping of reason; Update badness of calls to the
5589         offline copy of function currently inlined; dump badness
5590         of functions not inlined because of unit growth limits.
5591
5592 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
5593
5594         PR middle-end/32628
5595         * c-common.c (pointer_int_sum): Disregard overflow that occured only
5596         because of sign-extension change when converting to sizetype here...
5597         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
5598
5599         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
5600         the folding to constants.  Remove redundant final conversion.
5601         (fold_binary) <associate>: Do not associate if the re-association of
5602         constants alone overflows.
5603         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
5604         to the end of the list.
5605         (multiple_of_p) <COND_EXPR>: New case.
5606
5607 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5608
5609         * opt-functions.awk (opt_sanitized_name): New.
5610         (opt_enum): New.
5611         * optc-gen.awk: Use it
5612         * opth-gen.awk: Use it.
5613
5614 2010-04-13  Martin Jambor  <mjambor@suse.cz>
5615
5616         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
5617         (sra_modify_assign): Delete stmts loading dead data even if racc has no
5618         children.  Call replace_uses_with_default_def_ssa_name to handle
5619         SSA_NAES on lhs.
5620
5621 2010-04-13  Michael Matz  <matz@suse.de>
5622
5623         PR middle-end/43730
5624         * builtins.c (expand_builtin_interclass_mathfn): Also create
5625         a register if the predicate doesn't match.
5626
5627 2010-04-13  Diego Novillo  <dnovillo@google.com>
5628
5629         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
5630         * c-pch.c: Include timevar.h.
5631         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
5632         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
5633         * ggc-common.c: Include timevar.h.
5634         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
5635         * timevar.def (TV_PCH_SAVE): Define.
5636         (TV_PCH_CPP_SAVE): Define.
5637         (TV_PCH_PTR_REALLOC): Define.
5638         (TV_PCH_PTR_SORT): Define.
5639         (TV_PCH_RESTORE): Define.
5640         (TV_PCH_CPP_RESTORE): Define.
5641
5642 2010-04-13  Michael Matz  <matz@suse.de>
5643
5644         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
5645         into MINUS_EXPRs.
5646         (can_reassociate_p): New function.
5647         (break_up_subtract_bb, reassociate_bb): Use it.
5648
5649 2010-04-13  Richard Guenther  <rguenther@suse.de>
5650
5651         PR bootstrap/43737
5652         * builtins.c (c_readstr): Fix assert.
5653
5654 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
5655
5656         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
5657         when generating cltd insn.
5658
5659         (*ashl<mode>3_1): Remove special handling for register operand 2.
5660         (*ashlsi3_1_zext): Ditto.
5661         (*ashlhi3_1): Ditto.
5662         (*ashlhi3_1_lea): Ditto.
5663         (*ashlqi3_1): Ditto.
5664         (*ashlqi3_1_lea): Ditto.
5665         (*<shiftrt_insn><mode>3_1): Ditto.
5666         (*<shiftrt_insn>si3_1_zext): Ditto.
5667         (*<shiftrt_insn>qi3_1_slp): Ditto.
5668         (*<rotate_insn><mode>3_1): Ditto.
5669         (*<rotate_insn>si3_1_zext): Ditto.
5670         (*<rotate_insn>qi3_1_slp): Ditto.
5671
5672 2010-04-13  Richard Guenther  <rguenther@suse.de>
5673
5674         * tree-ssa-structalias.c (callused_id): Remove.
5675         (call_stmt_vars): New.
5676         (get_call_vi): Likewise.
5677         (lookup_call_use_vi): Likewise.
5678         (lookup_call_clobber_vi): Likewise.
5679         (get_call_use_vi): Likewise.
5680         (get_call_clobber_vi): Likewise.
5681         (make_transitive_closure_constraints): Likewise.
5682         (handle_const_call): Adjust to do per-call call-used handling.
5683         (handle_pure_call): Likewise.
5684         (find_what_var_points_to): Remove general callused handling.
5685         (init_base_vars): Likewise.
5686         (init_alias_vars): Initialize call_stmt_vars.
5687         (compute_points_to_sets): Process call-used and call-clobbered
5688         vars for call statements.
5689         (delete_points_to_sets): Free call_stmt_vars.
5690
5691 2010-04-13  Richard Guenther  <rguenther@suse.de>
5692
5693         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
5694         Only add RW dependence for dependence distance zero.
5695         Adjust maximal vectorization factor according to dependences.
5696         Move alignment handling ...
5697         (vect_find_same_alignment_drs): ... here.  New function.
5698         (vect_analyze_data_ref_dependences): Adjust.
5699         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
5700         (vect_analyze_data_refs): Adjust minimal vectorization factor
5701         according to data references.
5702         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
5703         dependences before determining the vectorization factor.
5704         Analyze alignment after determining the vectorization factor.
5705         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
5706         dependences before alignment.
5707         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
5708         Adjust prototype.
5709         (vect_analyze_data_refs): Likewise.
5710         (MAX_VECTORIZATION_FACTOR): New define.
5711
5712 2010-04-13  Duncan Sands  <baldrick@free.fr>
5713
5714         * except.h (lang_eh_type_covers): Remove.
5715         * except.c (lang_eh_type_covers): Likewise.
5716
5717 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5718             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5719
5720         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
5721         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
5722         UNITS_PER_LONG where it is ABI relevant.
5723         (s390_return_addr_rtx): Likewise.
5724         (s390_back_chain_rtx): Likewise.
5725         (s390_frame_area): Likewise.
5726         (s390_frame_info): Likewise.
5727         (s390_initial_elimination_offset): Likewise.
5728         (save_gprs): Likewise.
5729         (s390_emit_prologue): Likewise.
5730         (s390_emit_epilogue): Likewise.
5731         (s390_function_arg_advance): Likewise.
5732         (s390_function_arg): Likewise.
5733         (s390_va_start): Likewise.
5734         (s390_gimplify_va_arg): Likewise.
5735         (s390_function_profiler): Likewise.
5736         (s390_optimize_prologue): Likewise.
5737         (s390_rtx_costs): Likewise.
5738         (s390_secondary_reload): Likewise.
5739         (s390_promote_function_mode): Likewise.
5740         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
5741         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
5742         registers available.
5743         (s390_unwind_word_mode): New function.
5744         (s390_function_value): Split 64 bit values into register pair if
5745         used as return value.
5746         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
5747         function call parameters.  Handle parallels.
5748         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
5749         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
5750         (DWARF_CIE_DATA_ALIGNMENT): New macro.
5751         (s390_expand_setmem): Remove unused variable src_addr.
5752         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
5753         deal with 64 bit registers.
5754         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
5755         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
5756         (UNITS_PER_LONG): New macro.
5757         * libjava/include/s390-signal.h: Define extended ucontext
5758         structure containing the upper halfs of the 64 bit registers.
5759
5760 2010-04-13  Simon Baldwin  <simonb@google.com>
5761
5762         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
5763
5764 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
5765
5766         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
5767         rvalue on the RHS if the LHS is of a non-renamable type.
5768         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
5769
5770 2010-04-13  Matthias Klose  <doko@ubuntu.com>
5771
5772         * gcc.c (cc1_options): Handle -iplugindir before processing
5773         the cc1 spec. Only add -iplugindir once.
5774         (cpp_unique_options): Add -iplugindir option if -fplugin* options
5775         found.
5776         * common.opt (iplugindir): Remove `Separate' property, initialize.
5777         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
5778         option.
5779         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
5780         (distclean): Remove plugin dir.
5781         * doc/invoke.texi: Document -iplugindir.
5782
5783 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
5784
5785         * doc/plugins.texi (Loading Plugins): Document short
5786         -fplugin=foo option.
5787         (Plugin API): Mention default_plugin_dir_name function.
5788
5789         * gcc.c (find_file_spec_function): Add new declaration.
5790         (static_spec_func): Use it for "find-file".
5791         (find_file_spec_function): Add new function.
5792         (cc1_options): Add -iplugindir option if -fplugin* options found.
5793
5794         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
5795
5796         * plugin.c (add_new_plugin): Updated comment, and handle short
5797         plugin name.
5798         (default_plugin_dir_name): Added new function.
5799
5800         * common.opt (iplugindir): New option to set the plugin directory.
5801
5802 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
5803
5804         * config/i386/i386.md (any_rotate): New code iterator.
5805         (rotate_insn): New code attribute.
5806         (rotate): Ditto.
5807         (SWIM124): New mode iterator.
5808         (<rotate_insn>ti3): New expander.
5809         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
5810         any_rotate code iterator.
5811         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
5812         using any_rotate code iterator and SWIM124 mode iterator.
5813         (ix86_rotlti3): New insn_and_split pattern.
5814         (ix86_rotrti3): Ditto.
5815         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
5816         ix86_rotl{di,ti}3 patterns.
5817         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
5818         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
5819         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
5820         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
5821         code iterator and SWI mode iterator.
5822         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
5823         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
5824         code iterator.
5825         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
5826         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
5827         (bswap rotatert splitter): Add splitter.
5828         (bswap splitter): Macroize splitter using any_rotate code iterator.
5829         Add insn predicate to split only for TARGET_USE_XCHGB or when
5830         optimizing function for size.
5831
5832 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5833
5834         * config/pa/pa.c (emit_move_sequence): Remove use of
5835         deleted variable flag_argument_noalias.
5836
5837 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5838
5839         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
5840         configurations.
5841         Add to unsupported targets list.
5842         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
5843         sparc*-sun-solaris2.[567]* from target lists.
5844         * configure: Regenerate.
5845         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
5846         removal.
5847         Remove Solaris 7 patch references.
5848         (Specific, sparc-sun-solaris2.7): Removed.
5849         (sparc-sun-solaris2*): Update Solaris 7 example.
5850         (sparc64-*-solaris2*): Likewise.
5851
5852 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5853
5854         * config.build (alpha*-dec-osf4*): Remove.
5855         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
5856         of obsolete configurations.
5857         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
5858         support.
5859         * config/alpha/t-osf4: Renamed to ...
5860         * config/alpha/t-osf5: ... this.
5861         * config/alpha/osf.h: Renamed to ...
5862         * config/alpha/osf5.h: ... this.
5863         Merged old osf5.h contents.
5864         Update comments.
5865         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
5866         (EXTRA_SPECS): Removed.
5867         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
5868         reflect removal of Tru64 UNIX V4.0/V5.0 support.
5869         Document that.
5870
5871 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5872
5873         * doc/contrib.texi (Contributors, Rainer Orth): Update.
5874
5875 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
5876
5877         PR/43702
5878         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
5879         __thiscall convention.
5880
5881 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5882
5883         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
5884         orig_base.
5885         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
5886
5887 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5888
5889         * function.c (assign_parms_initialize_all): Add unused attribute
5890         to fntype.
5891
5892 2010-04-12  Richard Guenther  <rguenther@suse.de>
5893
5894         * gsstruct.def (GSS_CALL): New.
5895         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
5896         * gimple.h: Include tree-ssa-alias.h.
5897         (struct gimple_statement_call): New.
5898         (union gimple_statement_struct_d): Add gimple_call member.
5899         (gimple_call_reset_alias_info): Declare.
5900         (gimple_call_use_set): New function.
5901         (gimple_call_clobber_set): Likewise.
5902         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
5903         * gimple.c (gimple_call_reset_alias_info): New function.
5904         (gimple_build_call_1): Call it.
5905         * lto-streamer-in.c (input_gimple_stmt): Likewise.
5906         * tree-inline.c (remap_gimple_stmt): Likewise.
5907         (expand_call_inline): Remove callused handling.
5908         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
5909         * tree-dfa.c (dump_variable): Likewise.
5910         * tree-parloops.c (parallelize_loops): Likewise.
5911         * tree-ssa.c (init_tree_ssa): Likewise.
5912         (delete_tree_ssa): Likewise.
5913         * tree-flow-inline.h (is_call_used): Remove.
5914         * tree-flow.h (struct gimple_df): Remove callused member.
5915         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
5916         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
5917         (ref_maybe_used_by_call_p_1): Simplify.
5918         (call_may_clobber_ref_p_1): Likewise.
5919         * tree-ssa-structalias.c (compute_points_to_sets): Set
5920         the call stmt used and clobbered sets.
5921         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
5922         (find_tail_calls): Verify the tail call.
5923
5924 2010-04-12  Richard Guenther  <rguenther@suse.de>
5925
5926         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
5927         single-iteration always-inline inlining.
5928         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
5929         (cgraph_decide_inlining): Do not handle always-inline specially.
5930         (try_inline): Remove always-inline cycle detection special case.
5931         Do not recurse on always-inlines.
5932         (cgraph_early_inlining): Do not iterate if not optimizing.
5933         (cgraph_gate_early_inlining): remove.
5934         (pass_early_inline): Run unconditionally.
5935         (gate_cgraph_decide_inlining): New function.
5936         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
5937         not inlining or optimizing.
5938         (cgraph_decide_inlining_of_small_functions): Also consider
5939         always-inline functions.
5940         (cgraph_default_inline_p): Return true for nodes which should
5941         disregard inline limits.
5942         (estimate_function_body_sizes): Assume zero size and time for
5943         nodes which are marked as disregarding inline limits.
5944         (cgraph_decide_recursive_inlining): Do not perform recursive
5945         inlining on always-inline nodes.
5946
5947 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
5948
5949         PR bootstrap/43699
5950         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
5951         for exprs satisfying handled_component_p.
5952
5953 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
5954
5955         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
5956         non-constant aggregate elements.
5957
5958         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
5959         is a real initialization.
5960
5961 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
5962
5963         PR c/36774
5964         * c-decl.c (start_function): Move forward check for nested function.
5965
5966 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5967
5968         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
5969         * config/sh/sh.c: Include reload.h.
5970         (sh_legitimize_reload_address): New.
5971         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
5972         sh_legitimize_reload_address.
5973
5974 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
5975
5976         * config/sh/sh.md (*movqi_pop): New insn pattern.
5977         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
5978
5979 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
5980
5981         * config/i386/i386.md (any_shiftrt): New code iterator.
5982         (shiftrt_insn): New code attribute.
5983         (shiftrt): Ditto.
5984         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
5985         using any_shiftrt code iterator.
5986         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
5987         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
5988         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
5989         pattern from corresponding peephole2 patterns.
5990         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
5991         using any_shiftrt code iterator.
5992         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
5993         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
5994         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
5995         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
5996         *{ashr,lshr}<mode>3_cmp_zext.
5997         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
5998
5999 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
6000
6001         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
6002         scratch register.
6003         (*lshr<mode>3_cconly): Ditto.
6004
6005 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
6006
6007         * config/i386/i386.md (lshr<mode>3): Macroize expander from
6008         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
6009         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6010         pattern from *lshr{di,ti}3_1 and corresponding splitters using
6011         DWI mode iterator.
6012         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
6013         from corresponding peephole2 patterns.
6014         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
6015         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
6016         and *lshrdi3_1_rex64 using SWI mode iterator.
6017         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
6018         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
6019         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
6020         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
6021         and *lshrdi3_cmp_rex64 using SWI mode iterator.
6022         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
6023         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
6024         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
6025         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
6026         SWI mode iterator.
6027
6028 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
6029
6030         * config/i386/i386.md (ashr<mode>3): Macroize expander from
6031         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
6032         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6033         pattern from *ashr{di,ti}3_1 and corresponding splitters using
6034         DWI mode iterator.
6035         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
6036         from corresponding peephole2 patterns.
6037         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
6038         (ashrsi3_cvt): Rename from ashrsi3_31.
6039         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
6040         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
6041         and x86_64_shift_adj_3 using SWI48 mode iterator.
6042         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
6043         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
6044         and *ashrdi3_1_rex64 using SWI mode iterator.
6045         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
6046         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
6047         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
6048         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
6049         and *ashrdi3_cmp_rex64 using SWI mode iterator.
6050         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
6051         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
6052         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
6053         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
6054         SWI mode iterator.
6055         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
6056         * config/i386/i386.c (ix86_split_ashr): Update for renamed
6057         x86_shift<mode>_adj_3 expanders.
6058
6059 2010-04-10  Wei Guozhi  <carrot@google.com>
6060
6061         PR target/42601
6062         * config/arm/arm.c (arm_pic_static_addr): New function.
6063         (legitimize_pic_address): Call arm_pic_static_addr when it detects
6064         a static symbol.
6065         (arm_output_addr_const_extra): Output expression for new pattern.
6066         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
6067
6068 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
6069
6070         * ira-costs.c (record_reg_classes): Ignore alternatives that are
6071         not enabled.
6072
6073         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
6074         * web.c: Include "insn-config.h" and "recog.h".
6075         (union_match_dups): New function.
6076         (web_main): Call it.
6077         (union_defs): Don't try to recognize match_dups.
6078
6079         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
6080         if doing so would replace the entire pattern.
6081
6082 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
6083
6084         PR target/43707
6085         PR target/43709
6086         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
6087         and splitter pattern.  Change splitter operand 1 predicate to
6088         nonmemory_operand.
6089
6090 2010-04-09  Martin Jambor  <mjambor@suse.cz>
6091
6092         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
6093         lattices are addresses of CONST_DECLs with the same initial value.
6094         (ipcp_print_all_lattices): Print values of CONST_DECLs.
6095         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
6096
6097 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
6098             Bernd Schmidt  <bernds@codesourcery.com>
6099
6100         * loop-invariant.c (replace_uses): New static function.
6101         (move_invariant_reg): Use it to ensure we can replace the uses.
6102
6103 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
6104
6105         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
6106         function template.
6107         (picochip_override_options): Enable section anchors only above -O1.
6108         (picochip_reorg): Fixed a couple of build warnings.
6109
6110 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6111
6112         * configure.ac (plugin -rdynamic test): Log result.
6113         * configure: Regenerate.
6114         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
6115         (RDYNAMIC_SPEC): Define.
6116         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
6117
6118 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6119
6120         * configure.ac: Determine Sun ld version numbers.
6121         (comdat_group): Restrict GNU ld version checks to gld.
6122         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
6123         (enable_comdat): Support --enable-comdat.
6124         * configure: Regenerate.
6125         * doc/install.texi (Configuration): Document --enable-comdat.
6126
6127 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6128
6129         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
6130         * config/sol2-gld.h: ... here.
6131         * config.gcc (sparc*-*-solaris2*): Reflect this.
6132         (i[34567]86-*-solaris2*): Use it.
6133
6134 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
6135
6136         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
6137         setup_clocks_p.
6138         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
6139
6140 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6141
6142         PR 42965
6143         * diagnostic.c (diagnostic_initialize): Initialize
6144         some_warnings_are_errors.
6145         (diagnostic_finish): New.
6146         (diagnostic_action_after_output): Call it before exiting.
6147         (diagnostic_report_diagnostic): Do not print message here. Set
6148         some_warnings_are_errors.
6149         * diagnostic.h (diagnostic_context): Delete
6150         issue_warnings_are_errors_message. Add some_warnings_are_errors.
6151         (diagnostic_finish): Declare.
6152         * toplev.c (toplev_main): Call it before exit.
6153
6154 2010-04-09  Jason Merrill  <jason@redhat.com>
6155
6156         PR c++/42623
6157         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
6158         for incomplete type.
6159
6160         PR c++/41788
6161         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
6162         based on a warning flag.
6163
6164 2010-04-09  Richard Guenther  <rguenther@suse.de>
6165
6166         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
6167
6168 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
6169
6170         PR bootstrap/43684
6171         * varasm.c (default_assemble_visibility): Wrap vars that are
6172         set, but unused, by targets without GAS.
6173         * config/rs6000/rs6000.c (paired_emit_vector_compare):
6174         Remove set, but unused, vars.
6175         (rs6000_legitimize_tls_address): Likewise.
6176         (altivec_expand_dst_builtin): Likewise.
6177         * config/darwin.c (machopic_classify_symbol): Likewise.
6178         (machopic_indirection_name): Likewise.
6179
6180 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
6181
6182         * config/i386/i386.md (DWI): New mode iterator.
6183         (S): New mode attribute.
6184         (shift_operand): Ditto.
6185         (shift_immediate_operand): Ditto.
6186         (ashl_input_operand): Ditto.
6187         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
6188         using SDWIM mode iterator.
6189         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6190         pattern from *ashl{di,ti}3_1 and corresponding splitters using
6191         DWI mode iterator.
6192         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
6193         from corresponding peephole2 patterns.
6194         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
6195         and x86_64_shift_adj_1 using SWI48 mode iterator.
6196         (x86_shift<mode>_adj_2): Ditto.
6197         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
6198         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
6199         using SWI48 mode iterator.
6200         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
6201         *ashldi3_cmp_rex64 using SWI mode iterator.
6202         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
6203         *ashldi3_cconly_rex64 using SWI mode iterator.
6204         * config/i386/i386.c (ix86_split_ashl): Update for renamed
6205         x86_shift<mode>_adj_{1,2}.
6206         (ix86_split_ashr): Ditto.
6207         (ix86_split_lshr): Ditto.
6208
6209 2010-04-09  Richard Guenther  <rguenther@suse.de>
6210
6211         * target.h (builtin_conversion): Pass in input and output types.
6212         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
6213         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
6214         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
6215         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
6216
6217         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
6218         Handle AVX modes.
6219         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
6220
6221 2010-04-09  Richard Guenther  <rguenther@suse.de>
6222
6223         PR target/43152
6224         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
6225
6226 2010-04-09  Richard Guenther  <rguenther@suse.de>
6227
6228         * tree-vectorizer.h (struct _stmt_vec_info): Document
6229         that vectype is the type of the LHS.
6230         (supportable_widening_operation, supportable_narrowing_operation):
6231         Get both input and output vector types as arguments.
6232         (vect_is_simple_use_1): Declare.
6233         (get_same_sized_vectype): Likewise.
6234         * tree-vect-loop.c (vect_determine_vectorization_factor):
6235         Set STMT_VINFO_VECTYPE to the vector type of the def.
6236         (vectorizable_reduction): Adjust.
6237         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
6238         Adjust.  Specify the output vector type.
6239         (vect_pattern_recog_1): Adjust.
6240         * tree-vect-stmts.c (get_same_sized_vectype): New function.
6241         (vectorizable_call): Adjust.
6242         (vectorizable_conversion): Likewise.
6243         (vectorizable_operation): Likewise.
6244         (vectorizable_type_demotion): Likewise.
6245         (vectorizable_type_promotion): Likewise.
6246         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
6247         the def.
6248         (vect_is_simple_use_1): New function.
6249         (supportable_widening_operation): Get both input and output
6250         vector types.
6251         (supportable_narrowing_operation): Likewise.
6252         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
6253
6254 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
6255
6256         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
6257         __thiscall and _thiscall as predefined macros.
6258         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
6259         thiscall attribute handling.
6260         (ix86_comp_type_attributes): Likewise.
6261         (ix86_function_regparm): Likewise.
6262         (ix86_return_pops_args): Likewise.
6263         (init_cumulative_args): Likewise.
6264         (find_drap_reg): Likewise.
6265         (ix86_static_chain): Likewise.
6266         (x86_this_parameter): Likewise.
6267         (x86_output_mi_thunk): Likewise.
6268         (ix86_attribute_table): Add description for thiscall attribute.
6269         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
6270         * doc/extend.texi: Add documentation for thiscall.
6271
6272 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6273
6274         PR c++/28584
6275         * c.opt (Wint-to-pointer-cast): Available in C++.
6276         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
6277
6278 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
6279
6280         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
6281         * calls.c (expand_call): Pass the function type to aggregate_value_p.
6282         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
6283         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
6284         function type instead.  Reorder and simplify checks.
6285
6286         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
6287
6288 2010-04-08  Jing Yu  <jingyu@google.com>
6289             Zdenek Dvorak  <ook@ucw.cz>
6290
6291         PR tree-optimization/42720
6292         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
6293         loop unswitch conditions here from ...
6294         (tree_unswitch_single_loop): ... here.
6295
6296 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
6297
6298         * tree-if-conv.c: Fix comments and simplify logic.
6299
6300 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
6301
6302         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
6303         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
6304         (main_tree_if_conversion): Update call to tree_if_conversion.
6305
6306 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6307
6308         PR 42485
6309         * doc/invoke.texi (-b,-V): Delete.
6310         * doc/tm.texi: Do not mention -b.
6311         * gcc.c (display_help): Delete -b and -V.
6312         (process_command): Delete -b and -V.
6313         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
6314
6315 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
6316             Wolfgang Gellerich  <gellerich@de.ibm.com>
6317
6318         Implement target hook for loop unrolling
6319         * target.h (loop_unroll_adjust): Add a new target hook function.
6320         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
6321         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
6322         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
6323         (s390_loop_unroll_adjust): Implement the new target hook for s390.
6324         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
6325         target hook.
6326         (decide_unroll_stupid): Likewise.
6327
6328 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6329
6330         PR target/43643
6331         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
6332
6333 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6334
6335         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
6336         (Specific, *-*-solaris2*): Likewise.
6337         Don't prefer Sun as over GNU as.
6338
6339 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
6340
6341         * config/s390/s390.c (override_options): Adjust the z10 defaults
6342         for max-unroll-times, max-completely-peeled-insns
6343         and max-completely-peel-times.
6344
6345 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6346
6347         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
6348         instructions for z10.
6349         (s390_expand_setmem): Likewise.
6350         (s390_expand_cmpmem): Likewise.
6351
6352 2010-04-08  Richard Guenther  <rguenther@suse.de>
6353
6354         PR tree-optimization/43679
6355         * tree-ssa-pre.c (eliminate): Only propagate copies.
6356
6357 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
6358
6359         PR bootstrap/43681
6360         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
6361         set but not used variable warning.
6362
6363 2010-04-08  Wei Guozhi  <carrot@google.com>
6364
6365         PR target/41653
6366         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
6367         (arm_size_rtx_costs): Call the new function when optimized for size.
6368
6369 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
6370
6371         PR debug/43670
6372         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
6373         op0 is not a MEM, just return NULL instead of assertion
6374         failure.
6375         (discover_nonconstant_array_refs): Don't walk debug stmts.
6376
6377 2010-04-08  Doug Kwan  <dougkwan@google.com>
6378
6379         * configure.ac: Recognize gold and do not use its version number
6380         to test ld features.
6381         * configure: Regenerate.
6382
6383 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
6384
6385         PR middle-end/40815
6386         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
6387         (negate_value): Move code to push elements to broken_up_substracts ...
6388         (eliminate_plus_minus_pair): ... here.  Push operands that have no
6389         negative pair to plus_negates.
6390         (repropagate_negates, init_reassoc, fini_reassoc): Update.
6391
6392 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6393
6394         * doc/install.texi (Configuration): Move description of
6395         --enable-lto, --with-libelf*, --enable-gold from Java section to
6396         general section.
6397
6398         * doc/generic.texi (Working with declarations)
6399         (Function Properties, C and C++ Trees): Fix typos.
6400         * doc/sourcebuild.texi (Top Level): Likewise.
6401
6402 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
6403
6404         PR c/18624
6405         * tree.h (DECL_READ_P): Define.
6406         (struct tree_decl_common): Add decl_read_flag.
6407         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
6408         a set but not used warning.
6409         (merge_decls): Merge DECL_READ_P flag.
6410         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
6411         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
6412         * c-common.c (handle_used_attribute, handle_unused_attribute):
6413         Likewise.
6414         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
6415         New prototypes.
6416         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
6417         New functions.
6418         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
6419         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
6420         c_parser_binary_expression, c_parser_cast_expression,
6421         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
6422         Call default_function_array_read_conversion instead of
6423         default_function_array_conversion where needed.
6424         (c_parser_unary_expression, c_parser_conditional_expression,
6425         c_parser_postfix_expression_after_primary, c_parser_initelt):
6426         Likewise.  Call mark_exp_read where needed.
6427         (c_parser_statement_after_labels, c_parser_asm_operands,
6428         c_parser_typeof_specifier, c_parser_sizeof_expression,
6429         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
6430         where needed.
6431         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
6432         New.
6433         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
6434         (warn_unused_but_set_parameter): Default to warn_unused
6435         && extra_warnings.
6436         * doc/invoke.texi: Document -Wunused-but-set-variable and
6437         -Wunused-but-set-parameter.
6438
6439         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
6440         used count variable.
6441         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
6442         when operandN variables aren't used in the body of the expander
6443         or splitter.
6444         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
6445         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
6446         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
6447         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
6448         FOR_EACH_IMM_USE_ON_STMT): Likewise.
6449         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
6450         * tree.c (PROCESS_ARG): Likewise.
6451
6452 2010-04-07  Simon Baldwin  <simonb@google.com>
6453
6454         * diagnostic.h (diagnostic_override_option_index): New macro to
6455         set a diagnostic's option_index.
6456         * c-tree.h (c_cpp_error): Add warning reason argument.
6457         * opts.c (_warning_as_error_callback): New.
6458         (register_warning_as_error_callback): Store callback for
6459         warnings enabled via enable_warning_as_error.
6460         (enable_warning_as_error): Call callback, minor code tidy.
6461         * opts.h (register_warning_as_error_callback): Declare.
6462         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
6463         response to -Werror=.
6464         (c_common_init_options): Register warning_as_error_callback in opts.c.
6465         * common.opt: Add -Wno-cpp option.
6466         * c-common.c (struct reason_option_codes_t): Map cpp warning
6467         reason codes to gcc option indexes.
6468         * (c_option_controlling_cpp_error): New function, lookup the gcc
6469         option index for a cpp warning reason code.
6470         * (c_cpp_error): Add warning reason argument, call
6471         c_option_controlling_cpp_error for diagnostic_override_option_index.
6472         * doc/invoke.texi: Document -Wno-cpp.
6473
6474 2010-04-07  Richard Guenther  <rguenther@suse.de>
6475
6476         * ipa-reference.c (mark_load): Use get_base_address.
6477         (mark_store): Likewise.
6478
6479         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
6480         inserting GIMPLE_NOPs into the IL.
6481         * tree-ssa-structalias.c (get_constraint_for_component_ref):
6482         Explicitly strip handled components and indirect references.
6483
6484         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
6485         folding address expressions.
6486         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
6487         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
6488         operand_equal_p to compare decls.
6489         (ptr_deref_may_alias_decl_p): Likewise.
6490         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
6491         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
6492         Handle reversed comparison ops.
6493         * tree-sra.c (asm_visit_addr): Use get_base_address.
6494         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
6495         * ipa-reference.c (mark_address): Use get_base_address.
6496
6497 2010-04-07  Richard Guenther  <rguenther@suse.de>
6498
6499         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
6500         Propagate constants everywhere.
6501
6502 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
6503
6504         PR debug/43516
6505         * tree.c (MAX_INT_CACHED_PREC): Define.
6506         (nonstandard_integer_type_cache): New array.
6507         (build_nonstandard_integer_type): Cache results for precision
6508         <= MAX_INT_CACHED_PREC.
6509
6510 2010-04-07  Richard Guenther  <rguenther@suse.de>
6511
6512         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
6513         -fargument-noalias-global, -fargument-noalias-anything): Remove.
6514         * common.opt: Likewise.
6515         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
6516         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
6517         (nonoverlapping_memrefs_p): Likewise.
6518         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6519         * opts.c (common_handle_option): Handle OPT_fargument_alias,
6520         OPT_fargument_noalias, OPT_fargument_noalias_anything and
6521         OPT_fargument_noalias_global for backward compatibility.
6522
6523 2010-04-07  Richard Guenther  <rguenther@suse.de>
6524
6525         PR tree-optimization/43270
6526         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
6527         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
6528         * tree-ssa-pre.c (phi_translate_1): Adjust.
6529         (fully_constant_expression): Split out vn_reference handling to ...
6530         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
6531         Fold reads from constant strings.
6532         (vn_reference_lookup): Handle fully constant references.
6533         (vn_reference_lookup_pieces): Likewise.
6534         * Makefile.in (expmed.o-warn): Add -Wno-error.
6535
6536 2010-04-07  Martin Jambor  <mjambor@suse.cz>
6537
6538         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
6539
6540 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
6541
6542         PR driver/41594
6543         * gcc.c: Add -static-libstdc++ to list of recognized options.
6544
6545 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6546
6547         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
6548
6549 2010-04-07  Richard Guenther  <rguenther@suse.de>
6550
6551         PR middle-end/42617
6552         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
6553         bases build simple mem attributes to retain points-to information.
6554
6555 2010-04-07  Richard Guenther  <rguenther@suse.de>
6556
6557         PR middle-end/42617
6558         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
6559         preserve points-to related information.
6560
6561 2010-04-07  Richard Guenther  <rguenther@suse.de>
6562
6563         PR middle-end/42617
6564         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
6565         discard plain indirect references.
6566         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
6567         * tree.c (tree_nop_conversion): Likewise.
6568
6569 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
6570
6571         PR debug/43628
6572         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
6573
6574 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
6575
6576         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
6577         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
6578
6579 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6580
6581         * tree-if-conv.c: Fix indentation and comments.
6582
6583 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6584
6585         * tree-if-conv.c: Sort static functions in topological order.
6586
6587 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6588
6589         * tree-if-conv.c: Fix indentation and comments.
6590
6591 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6592
6593         PR middle-end/43519
6594         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
6595         lang_hooks.types.type_for_size instead of
6596         build_nonstandard_integer_type.
6597         When converting an unsigned type to signed, double its precision.
6598         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
6599         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
6600         (graphite_create_new_loop_guard): When ub + 1 wraps around,
6601         use lb <= ub.
6602
6603 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6604
6605         PR middle-end/43519
6606         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
6607         POINTER_PLUS_EXPR for pointer types.
6608
6609 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6610
6611         PR middle-end/43519
6612         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
6613         * graphite-clast-to-gimple.c: Include langhooks.h.
6614         (max_signed_precision_type): New.
6615         (max_precision_type): Takes two types as arguments.
6616         (precision_for_value): New.
6617         (precision_for_interval): New.
6618         (gcc_type_for_interval): New.
6619         (gcc_type_for_value): New.
6620         (gcc_type_for_clast_term): New.
6621         (gcc_type_for_clast_red): New.
6622         (gcc_type_for_clast_bin): New.
6623         (gcc_type_for_clast_expr): Split up into several functions.
6624         (gcc_type_for_clast_eq): Rewritten.
6625         (compute_bounds_for_level): New.
6626         (compute_type_for_level_1): New.
6627         (compute_type_for_level): New.
6628         (gcc_type_for_cloog_iv): Removed.
6629         (gcc_type_for_iv_of_clast_loop): Rewritten.
6630         (graphite_create_new_loop): Compute the lower and upper bound types
6631         with gcc_type_for_clast_expr.
6632         (graphite_create_new_loop_guard): Same.
6633         (find_cloog_iv_in_expr): Removed.
6634         (compute_cloog_iv_types_1): Removed.
6635         (compute_cloog_iv_types): Removed.
6636         (gloog): Do not call compute_cloog_iv_types.
6637         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
6638         GBB_CLOOG_IV_TYPES.
6639         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
6640         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
6641         (GBB_CLOOG_IV_TYPES): Removed.
6642
6643 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6644
6645         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
6646         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
6647         (detect_commutative_reduction): Same.
6648
6649 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6650
6651         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
6652         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
6653         argument.
6654         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
6655         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
6656         (rewrite_commutative_reductions_out_of_ssa): Same.
6657         * passes.c (execute_function_todo): Call verify_ssa for every pass
6658         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
6659         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
6660         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
6661         with an extra argument.
6662         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
6663         verify_ssa only when the extra argument is true.
6664         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
6665         with an extra argument.
6666         (tree_transform_and_unroll_loop): Same.
6667
6668 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6669
6670         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
6671         for all the passes of the LNO having LOOP_CLOSED_SSA.
6672         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
6673         * tree-loop-distribution.c (pass_loop_distribution): Same.
6674         * tree-pass.h (TODO_verify_loops): Removed.
6675         * tree-ssa-loop.c (pass_tree_loop_init): Same.
6676         (pass_lim): Same.
6677         (pass_tree_unswitch): Same.
6678         (pass_predcom): Same.
6679         (pass_vectorize): Same.
6680         (pass_linear_transform): Same.
6681         (pass_graphite_transforms): Same.
6682         (pass_iv_canon): Same.
6683         (pass_complete_unroll): Same.
6684         (pass_complete_unrolli): Same.
6685         (pass_parallelize_loops): Same.
6686         (pass_loop_prefetch): Same.
6687         (pass_iv_optimize): Same.
6688
6689 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
6690
6691         PR middle-end/32824
6692         * passes.c (init_optimization_passes): Move pass_lim before
6693         pass_copy_prop and pass_dce_loop.
6694
6695 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
6696
6697         PR target/43667
6698         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
6699         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
6700         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
6701         MULTI_* defines for 4 argument vpermil2p* builtins.
6702
6703 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
6704
6705         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
6706         * config/i386/i386.c (x86_maybe_negate_const_int): New.
6707         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
6708         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
6709         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
6710         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
6711         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
6712         Use x86_maybe_negate_const_int to output insn mnemonic.
6713         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
6714         check from instruction predicate.  Update comments.
6715         * config/i386/sync.md (sync_add<mode>): Use
6716         x86_maybe_negate_const_int to output insn mnemonic.
6717
6718 2010-04-06  Jan Hubicka  <jh@suse.cz>
6719
6720         PR tree-optimization/42906
6721         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
6722         IGNORE_SELF argument.  Set visited_control_parents for fully
6723         processed BBs.
6724         (find_obviously_necessary_stmts): Update call of
6725         mark_control_dependent_edges_necessary.
6726         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
6727
6728 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
6729
6730         * config/i386/i386.md: Remove comment about 'e' and 'E'
6731         operand modifier.
6732
6733 2010-04-06  Richard Guenther  <rguenther@suse.de>
6734
6735         PR tree-optimization/43627
6736         * tree-vrp.c (extract_range_from_unary_expr): Widenings
6737         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
6738         not varying.
6739
6740 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
6741
6742         * BASE-VER: Change to 4.6.0.
6743
6744         PR target/43638
6745         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
6746         handling.
6747
6748 2010-04-06  Richard Guenther  <rguenther@suse.de>
6749
6750         PR middle-end/43661
6751         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
6752
6753 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6754
6755         * doc/invoke.texi (Optimize Options): Document that LTO
6756         won't remove object access purely due to incompatible
6757         declarations.
6758
6759 2010-04-04  Matthias Klose  <doko@ubuntu.com>
6760
6761         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
6762         Initialize variable.
6763
6764 2010-04-03  Richard Guenther  <rguenther@suse.de>
6765
6766         PR middle-end/42509
6767         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
6768         require a non-NULL MEM_OFFSET.
6769
6770 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
6771
6772         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
6773         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
6774         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
6775         config/alpha/predicates.md, config/arm/arm.md,
6776         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
6777         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
6778         config/darwin9.h, config/darwin.c, config/darwin.h,
6779         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
6780         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
6781         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
6782         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
6783         config/mips/mips.md, config/mn10300/mn10300.c,
6784         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
6785         config/rs6000/aix.h, config/rs6000/dfp.md,
6786         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
6787         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
6788         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
6789         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
6790         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
6791         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
6792         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
6793         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
6794         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
6795         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
6796         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
6797         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
6798         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
6799         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
6800         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
6801         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
6802         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
6803         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
6804         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
6805         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
6806         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
6807         opt-functions.awk, opth-gen.awk, params.def, passes.c,
6808         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
6809         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
6810         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
6811         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
6812         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
6813         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
6814         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
6815         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
6816         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
6817         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
6818         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
6819         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
6820         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
6821         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
6822
6823 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6824
6825         PR other/43620
6826         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
6827         * aclocal.m4: Regenerate.
6828
6829 2010-04-02  Richard Guenther  <rguenther@suse.de>
6830
6831         PR tree-optimization/43629
6832         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
6833         if we have seen a constant value.
6834
6835 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
6836
6837         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
6838
6839 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
6840
6841         PR target/43469
6842         * arm.c (legitimize_tls_address): Adjust call to
6843         gen_tls_load_dot_plus_four.
6844         (arm_note_pic_base): New function.
6845         (arm_cannot_copy_insn_p): Use it.
6846         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
6847         constraint.
6848
6849 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6850
6851         PR bootstrap/43531
6852
6853         Revert:
6854         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6855
6856         * Makefile.in ($(out_object_file)): Depend on
6857         gt-$(basename $(notdir $(out_file))).h.
6858
6859 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
6860
6861         * config.gcc (lm32-*-rtems*): Add t-lm32.
6862
6863 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
6864
6865         * config.gcc: Add lm32-*-rtems*.
6866         * config/lm32/rtems.h: New file.
6867
6868 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
6869
6870         PR target/42609
6871         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
6872
6873 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
6874
6875         * dwarf2out.c (output_compilation_unit_header): For
6876         -gdwarf-4 use version 4 instead of version 3.
6877         (output_line_info): For version 4 and above emit additional
6878         maximum ops per insn header field.
6879         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
6880
6881         * dwarf2out.c (is_c_family, is_java): Remove.
6882         (lower_bound_default): New function.
6883         (add_bound_info, gen_descr_array_type_die): Use it.
6884
6885 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
6886
6887         PR debug/43325
6888         * dwarf2out.c (gen_variable_die): Allow debug info for variable
6889         re-declaration when it happens in a function.
6890
6891 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
6892
6893         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
6894         (cgraph_remove_function_insertion_hook): Same.
6895         (cgraph_call_function_insertion_hooks): Same.
6896
6897 2010-04-01  Richard Guenther  <rguenther@suse.de>
6898
6899         PR middle-end/43614
6900         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
6901         and TREE_THIS_VOLATILE.
6902         (copy_ref_info): Likewise.
6903         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
6904         * tree.c (build6_stat): Ignore side-effects of all but arg5
6905         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
6906         TARGET_MEM_REF.
6907
6908 2010-04-01  Richard Guenther  <rguenther@suse.de>
6909
6910         PR tree-optimization/43607
6911         * ipa-type-escape.c (check_call): Do not access non-existing
6912         arguments.
6913
6914 2010-04-01  Richard Guenther  <rguenther@suse.de>
6915
6916         PR middle-end/43602
6917         Revert
6918         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
6919                     Jack Howarth <howarth@bromo.med.uc.edu>
6920
6921         * tree-profile.c (tree_init_ic_make_global_vars): Make static
6922         variables TLS.
6923
6924 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6925
6926         * doc/install.texi (Prerequisites): Document libelf usability on
6927         IRIX 5/6 and Solaris 2.
6928         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
6929         Update GNU as, GNU ld requirements.
6930         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
6931         Document Sun Studio compiler download.
6932         Update and simplify as, ld recommendations.
6933         (Specific, *-*-solaris2.7): Note obsoletion, removal.
6934
6935 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6936
6937         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
6938         with_tune_32 to pentium4.
6939
6940 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
6941
6942         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
6943
6944 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6945
6946         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
6947         obsoletion, removal.
6948         Update IDO URL.
6949         Document GNU as requirement.
6950         Update configure requirements.
6951         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
6952         Recomment IRIX 6.5.18+.
6953         Document IDF/IDL requirement.
6954         Document GNU as requirement.
6955         Document GNU ld bootstrap failure.
6956         Remove freeware.sgi.com reference.
6957
6958 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6959
6960         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
6961         UNIX V4.0, V5.0 obsoletion, removal.
6962         Remove --with-gc=simple reference.
6963         Update VM requirements during bootstrap.
6964         Remove -oldas bootstrap description.
6965         Update binutils reference.
6966         Remove comparison failure note.
6967
6968 2010-03-31  Richard Guenther  <rguenther@suse.de>
6969             Zdenek Dvorak  <ook@ucw.cz>
6970             Sebastian Pop  <sebastian.pop@amd.com>
6971
6972         PR middle-end/43464
6973         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
6974         with multiple arguments.
6975         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
6976
6977 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
6978
6979         * graphite-dependences.c (print_pddr): Call print_pdr with an
6980         extra argument.
6981         * graphite-poly.c (debug_pdr): Add an extra argument for the
6982         verbosity level.
6983         (print_pdr): Same.
6984         (print_pbb_domain): Same.
6985         (print_pbb): Same.
6986         (print_scop_context): Same.
6987         (print_scop): Same.
6988         (print_cloog): Same.
6989         (debug_pbb_domain): Same.
6990         (debug_pbb): Same.
6991         (print_pdrs): Same.
6992         (debug_pdrs): Same.
6993         (debug_scop_context): Same.
6994         (debug_scop): Same.
6995         (debug_cloog): Same.
6996         (print_scop_params): Same.
6997         (debug_scop_params): Same.
6998         (print_iteration_domain): Same.
6999         (print_iteration_domains): Same.
7000         (debug_iteration_domain): Same.
7001         (debug_iteration_domains): Same.
7002         (print_scattering_function): Same.
7003         (print_scattering_functions): Same.
7004         (debug_scattering_function): Same.
7005         (debug_scattering_functions): Same.
7006         * graphite-poly.h (debug_pdr): Update declaration.
7007         (print_pdr): Same.
7008         (print_pbb_domain): Same.
7009         (print_pbb): Same.
7010         (print_scop_context): Same.
7011         (print_scop): Same.
7012         (print_cloog): Same.
7013         (debug_pbb_domain): Same.
7014         (debug_pbb): Same.
7015         (print_pdrs): Same.
7016         (debug_pdrs): Same.
7017         (debug_scop_context): Same.
7018         (debug_scop): Same.
7019         (debug_cloog): Same.
7020         (print_scop_params): Same.
7021         (debug_scop_params): Same.
7022         (print_iteration_domain): Same.
7023         (print_iteration_domains): Same.
7024         (debug_iteration_domain): Same.
7025         (debug_iteration_domains): Same.
7026         (print_scattering_function): Same.
7027         (print_scattering_functions): Same.
7028         (debug_scattering_function): Same.
7029         (debug_scattering_functions): Same.
7030
7031 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7032
7033         * graphite-poly.c (print_scattering_function_1): New.
7034         (print_scattering_function): Call it.
7035         (print_scop_params): Remove spaces at the end of lines.
7036         (print_cloog): New.
7037         (debug_cloog): New.
7038         * graphite-poly.h (print_cloog): Declared.
7039         (debug_cloog): Declared.
7040
7041 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7042
7043         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
7044         in loop->header.
7045         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
7046         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
7047         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
7048         to switch between adding the IV bump in loop->latch or in loop->header.
7049
7050 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7051
7052         * graphite-poly.c (print_scattering_function): Pretty print following
7053         the scoplib format.
7054         (print_pdr): Same.
7055         (print_pbb_domain): Same.
7056         (dump_gbb_cases): Same.
7057         (dump_gbb_conditions): Same.
7058         (print_pdrs): Same.
7059         (print_pbb): Same.
7060         (print_scop_params): Same.
7061         (print_scop_context): Same.
7062         (print_scop): Same.
7063         (print_pbb_body): New.
7064         (lst_indent_to): New.
7065         (print_lst): Start new lines with a #.
7066         * graphite-poly.h (pbb_bb): New.
7067         (pbb_index): Use pbb_bb.
7068         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
7069         disjuncts.
7070         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
7071
7072 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
7073
7074         * dwarf2out.c (size_of_die): For -gdwarf-4 use
7075         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
7076         and 0 instead of 1 for dw_val_class_flag.
7077         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
7078         dw_val_class_range_list, dw_val_class_loc_list,
7079         dw_val_class_lineptr and dw_val_class_macptr, use
7080         DW_FORM_flag_present for dw_val_class_flag and
7081         DW_FORM_exprloc for dw_val_class_loc.
7082         (output_die): For -gdwarf-4 print dw_val_class_loc
7083         size as uleb128 instead of 1 or 2 bytes and don't print
7084         anything for dw_val_class_flag.
7085
7086         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
7087         instead of cselib_lookup following by tweaking locs->setting_insn.
7088
7089         PR bootstrap/43596
7090         * cselib.c (cselib_process_insn): Clear cselib_current_insn
7091         even before returning from label, setjmp call or volatile asm
7092         handling.
7093
7094 2010-03-31  Richard Guenther  <rguenther@suse.de>
7095
7096         PR middle-end/43600
7097         * cgraphunit.c (cgraph_output_in_order): Do not allocate
7098         temporary data on stack.
7099
7100 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7101
7102         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
7103         (PUSHSECTION_ASM_OP): Remove.
7104         (POPSECTION_ASM_OP): Remove.
7105         (PUSHSECTION_FORMAT): Remove.
7106         * config/sol2.h (PUSHSECTION_FORMAT): Define.
7107         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
7108         * config/sol2.c (solaris_output_init_fini): Use it.
7109
7110 2010-03-31  Jie Zhang  <jie@codesourcery.com>
7111
7112         PR 43574
7113         * opt-functions.awk (var_type_struct): Use signed char type
7114         for simple variables.
7115
7116 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7117
7118         * config/sol2.c: Include output.h.
7119         (solaris_assemble_visibility): New function.
7120         * config/t-sol2 (sol2.o): Add output.h dependency.
7121         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
7122         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
7123         Redefine.
7124
7125 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
7126
7127         PR target/43580
7128         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
7129         V2SImode or XFmode on PRE_DEC.
7130
7131         PR debug/43557
7132         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
7133         BLKmode.
7134
7135 2010-03-31  Jie Zhang  <jie@codesourcery.com>
7136
7137         PR 43562
7138         * reload.h (caller_save_initialized_p): Declare.
7139         * toplev.c (backend_init_target): Don't call
7140         init_caller_save but set caller_save_initialized_p to false.
7141         * caller-save.c (caller_save_initialized_p): Define.
7142         (init_caller_save): Check caller_save_initialized_p.
7143         * ira.c (ira): Call init_caller_save if flag_caller_saves.
7144
7145 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7146
7147         PR target/39048
7148         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
7149         and soft-fp/t-softfp to tmake_file.
7150         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
7151         (LIBGCC2_TF_CEXT): Define.
7152         (TF_SIZE): Define.
7153
7154 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
7155
7156         PR debug/42977
7157         * cselib.c (n_useless_values): Document handling of debug locs.
7158         (n_useless_debug_values, n_debug_values): New variables.
7159         (new_elt_loc_list): Don't add to debug values, keep count.
7160         (promote_debug_loc): New.
7161         (cselib_reset_table): Zero new variables.
7162         (entry_and_rtx_equal_p): Promote debug locs.
7163         (discard_useless_locs): Increment n_useless_debug_values for
7164         debug values.
7165         (remove_useless_values): Adjust n_useless_values and n_debug_values
7166         with n_useless_debug_values.
7167         (add_mem_for_addr): Promote debug locs.
7168         (cselib_lookup_mem): Likewise.
7169         (cselib_lookup_addr): Renamed to...
7170         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
7171         (cselib_log_lookup): ... this.  Turn into...
7172         (cselib_lookup_addr): ... new wrapper.
7173         (cselib_lookup_from_insn): New.
7174         (cselib_invalidate_regno): Increment n_useless_debug_values for
7175         debug values.
7176         (cselib_invalidate_mem): Likewise.
7177         (cselib_process_insn): Take n_deleted and n_debug_values into
7178         account to guard remove_useless_value call.
7179         (cselib_finish): Zero n_useless_debug_values.
7180         * cselib.h (cselib_lookup_from_insn): Declare.
7181         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
7182         (sched_analyze_2): Likewise.
7183
7184 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
7185
7186         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
7187         functions.
7188         (adjust_mems): Replace narrowing SUBREG of expression containing
7189         just PLUS, MINUS, MULT and ASHIFT of registers and constants
7190         with operations in the narrower mode.
7191
7192         PR debug/43593
7193         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
7194         regs_invalidated_by_call instead all call_used_reg_set registers.
7195
7196 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
7197
7198         PR middle-end/43430
7199         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
7200         pointer comparisons with types_compatible_p.
7201         * tree-vect-stmts.c (vectorizable_call): Same.
7202         (vectorizable_condition): Same.
7203
7204 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7205
7206         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
7207         stack check if the mask would be zero.
7208
7209 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
7210             Jack Howarth <howarth@bromo.med.uc.edu>
7211
7212         * tree-profile.c (tree_init_ic_make_global_vars): Make static
7213         variables TLS.
7214
7215 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
7216
7217         PR other/25232
7218         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
7219         and __unordtf2.
7220         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
7221         Include ___unordxf2 and ___unordtf2.
7222         * config/i386/libgcc-glibc.ver: Do not define inheritance from
7223         GCC_4.4.0 here.
7224
7225 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
7226
7227         * config/lm32/t-lm32: New file.
7228         * config.gcc: Use the above file when targetting lm32.
7229
7230 2010-03-28  Duncan Sands  <baldrick@free.fr>
7231
7232         * Makefile.in (PLUGIN_HEADERS): Add except.h.
7233
7234 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
7235
7236         PR middle-end/43431
7237         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
7238         Improve vectorization cost model diagnostic.
7239
7240 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
7241
7242         PR middle-end/43436
7243         * tree-vect-data-refs.c (vect_analyze_data_refs): When
7244         compute_data_dependences_for_loop returns false, early exit
7245         and output an extra diagnostic for the failed data reference
7246         analysis.
7247
7248 2010-03-29  Richard Guenther  <rguenther@suse.de>
7249
7250         PR tree-optimization/43560
7251         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
7252         (can_sm_ref_p): Treat stores to readonly locations as trapping.
7253
7254 2010-03-29  Jie Zhang  <jie@codesourcery.com>
7255
7256         PR 43564
7257         * toplev.c (process_options): Set optimization_default_node
7258         and optimization_current_node.
7259         * opts.c (decode_options): Don't set optimization_default_node
7260         and optimization_current_node.
7261
7262 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
7263
7264         * config/rtems.h: Abandon -qrtems_debug.
7265
7266 2010-03-28  Jan Hubicka  <jh@suse.cz>
7267
7268         PR tree-optimization/43505
7269         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
7270         map should not be copied.
7271
7272 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7273
7274         PR middle-end/41674
7275         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
7276         cdtors, set DECL_PRESERVE_P.
7277         * ipa.c (cgraph_externally_visible_p): Return true if declaration
7278         should be preseved.
7279
7280 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
7281
7282         PR tree-optimization/43528
7283         * stor-layout.c (place_field): Check that constant fits into
7284         unsigned HWI when skipping calculation of MS bitfield layout.
7285
7286 2010-03-27  Jan Hubicka  <jh@suse.cz>
7287
7288         PR middle-end/43391
7289         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
7290         notice_global_symbol work.
7291
7292 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
7293
7294         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
7295         instead of dwarf2out_decl.
7296         (struct var_loc_node): Remove section_label field.
7297         (dwarf2out_function_decl): New function.
7298         (dwarf2out_var_location): Don't set section_label field.
7299         (dwarf2out_begin_function): Don't empty decl_loc_table here.
7300
7301 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
7302
7303         PR tree-optimization/43544
7304         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
7305         First argument for builtin vectorized function hook is now a
7306         tree to be able to distinguish between machine specific and
7307         standard builtins.
7308         * targhooks.c (default_builtin_vectorized_function): Ditto.
7309         * targhooks.h (default_builtin_vectorized_function): Ditto.
7310         * target.h (struct gcc_target): Ditto.
7311         * tree-vect-stmts.c (vectorizable_function): Ditto.
7312         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
7313         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
7314         Ditto.
7315
7316 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
7317
7318         PR c/43381
7319         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
7320         nested binding iff it is a FUNCTION_DECL.
7321         (store_parm_decls_newstyle): Pass nested=true to bind for
7322         FUNCTION_DECLs amongst parameters.
7323
7324 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
7325
7326         * var-tracking.c (vt_expand_loc_callback): Don't run
7327         cselib_expand_value_rtx_cb in dummy mode if
7328         cselib_dummy_expand_value_rtx_cb returned false.
7329
7330         * var-tracking.c (emit_note_insn_var_location): For one part
7331         notes with offset 0, don't add EXPR_LIST around the location.
7332         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
7333         add_location_or_const_value_attribute): Adjust for that change.
7334
7335         PR debug/43540
7336         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
7337         into first operand and location into second.
7338         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
7339         dw_cfi_oprnd_loc for DW_CFA_expression.
7340         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
7341         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
7342         assume first argument is regnum and second argument is location.
7343
7344 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
7345
7346         PR target/42113
7347         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
7348         of scratch register to DImode.  Split to DImode comparison operator.
7349         Use SImode subreg of scratch register in the multiplication.
7350         (*cmp_sadd_sidi): Ditto.
7351         (*cmp_ssub_si): Ditto.
7352         (*cmp_ssub_sidi): Ditto.
7353
7354 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
7355
7356         PR target/43524
7357         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
7358         Remove invalid assert and wrong comment.
7359
7360 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
7361
7362         PR debug/43516
7363         * flags.h (final_insns_dump_p): New extern.
7364         * final.c (final_insns_dump_p): New variable.
7365         (rest_of_clean_state): Set it before -fdump-final-insns=
7366         dumping, clear afterwards.
7367         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
7368         MEM_ALIAS_SET on MEMs.
7369
7370 2010-03-26  David S. Miller  <davem@davemloft.net>
7371
7372         * configure.ac: Fix sparc GOTDATA_OP bug check.
7373         * configure: Rebuild.
7374
7375 2010-03-26  Alan Modra  <amodra@gmail.com>
7376
7377         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
7378
7379 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7380
7381         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
7382         TLS_SECTION_ASM_FLAG.
7383
7384 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
7385
7386         PR bootstrap/43511
7387         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
7388         Clear first_function_block_is_cold.
7389
7390         PR c/43385
7391         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
7392         argument if the argument is truth_value_p.
7393
7394 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
7395
7396         * config/rs6000/constraints.md: Update copyright year for my changes.
7397
7398         PR target/43484
7399         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
7400         used in reg+reg addressing, swap registers.
7401
7402 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
7403
7404         PR debug/43293
7405         * target.h (struct gcc_target): Add code_end hook.
7406         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
7407         if not yet defined.
7408         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
7409         * toplev.c (compile_file): Call targetm.asm_out.code_end
7410         hook before unwind info/debug info output.
7411         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
7412         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
7413         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7414         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
7415         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7416         * config/i386/i386.c (ix86_file_end): Renamed to...
7417         (ix86_code_end): ... this.  Make static.  Don't call
7418         file_end_indicate_exec_stack.  Emit unwind info using
7419         final_start_function/final_end_function.
7420         (darwin_x86_file_end): Remove.
7421         (TARGET_ASM_CODE_END): Define.
7422         * config/i386/i386.h (TARGET_ASM_FILE_END,
7423         NEED_INDICATE_EXEC_STACK): Don't define.
7424         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
7425         (TARGET_ASM_FILE_END): Define to darwin_file_end.
7426         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
7427         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
7428
7429         PR target/43498
7430         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
7431         at the beginning and final_end_function at the end.
7432         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
7433
7434 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7435
7436         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
7437         and Sun as TLS syntax.
7438         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
7439         * configure: Regenerate.
7440         * config.in: Regenerate.
7441         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
7442         (default_elf_asm_named_section): Use it.
7443         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
7444         (i386_output_dwarf_dtprel): Likewise.
7445         (output_addr_const_extra): Likewise.
7446         (output_pic_addr_const): Lowercase @GOTTPOFF.
7447         (output_addr_const_extra): Likewise.
7448         (output_pic_addr_const): Lowercase @GOTNTPOFF.
7449         (output_addr_const_extra): Likewise.
7450         (output_pic_addr_const): Lowercase @INDNTPOFF.
7451         (output_addr_const_extra): Likewise.
7452         (output_pic_addr_const): Lowercase @NTPOFF.
7453         (output_addr_const_extra): Likewise.
7454         (output_pic_addr_const): Lowercase @TPOFF.
7455         (output_addr_const_extra): Likewise.
7456         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
7457         (*tls_global_dynamic_64): Likewise.
7458         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
7459         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
7460
7461         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
7462         (ASM_OUTPUT_TLS_COMMON): Use it.
7463         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
7464
7465         PR target/38118
7466         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
7467         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
7468         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
7469         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
7470         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7471         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
7472
7473 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7474
7475         * config/i386/i386.c (override_options): Don't accept
7476         -mtls-dialect=sun any longer.
7477         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
7478         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
7479         (*tls_local_dynamic_base_32_sun): Likewise.
7480         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7481
7482 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
7483
7484         PR debug/43508
7485         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
7486         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
7487
7488         PR debug/43479
7489         * ira.c (adjust_cleared_regs): New function.
7490         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
7491
7492         PR debug/19192
7493         PR debug/43479
7494         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
7495         from gimple_block.
7496         * expr.c (expand_expr_real): Restore previous
7497         curr_insn_source_location and curr_insn_block after
7498         expand_expr_real_1 call.
7499         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
7500         instead of expand_expr_real_1.
7501
7502 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
7503
7504         PR rtl-optimization/43413
7505         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
7506         hard regs too.
7507
7508 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
7509
7510         PR target/43348
7511         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
7512         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
7513
7514 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
7515
7516         * config/i386/i386.c (ix86_target_string): Add -mfma.
7517         Fix a typo in comment.
7518
7519 2010-03-22  Mike Stump  <mikestump@comcast.net>
7520
7521         PR target/23071
7522         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
7523         Don't overly align based upon packed packed fields.
7524
7525 2010-03-22  Jason Merrill  <jason@redhat.com>
7526
7527         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
7528         Use () rather than [], and move before the element type.
7529
7530 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7531
7532         * doc/configfiles.texi (Configuration Files): Removed
7533         fixinc/Makefile*, intl/Makefile.*.
7534         * doc/makefile.texi: Fixed markup. Abstract from version
7535         control system used.
7536         (Makefile): Removed obsolete gcc/java/parse.y example.
7537         * doc/sourcebuild.texi: Likewise.
7538         (Top Level): Added config, gnattools, libdecnumber, libgcc,
7539         libgomp, libssp.  Removed fastjar.
7540         (Miscellaneous Docs): Clarify location.
7541         Added COPYING3, COPYING3.LIB.
7542         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
7543
7544 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7545
7546         PR target/38085
7547         * config/i386/i386.c (x86_function_profiler)
7548         [!NO_PROFILE_COUNTERS]: Fix typo.
7549         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
7550         instead of callq.
7551
7552 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
7553             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7554
7555         * doc/sourcebuild.texi (Test Directives): Split into six
7556         subsections, with most of the current text in new subsections
7557         Directives, Selectors, and Final Actions.
7558         (Directives): Split list of test directives into multiple
7559         subsubsections.
7560         (Selectors): Describe use and syntax of selectors.
7561         (Effective-Target Keywords): Describe all existing keywords.
7562         (Add Options): Describe features for dg-add-options.
7563         (Require Support): Describe variants of dg-require-support.
7564         (Final Actions): Describe commands to use in dg-final.
7565
7566 2010-03-22  Michael Matz  <matz@suse.de>
7567
7568         PR middle-end/43475
7569         * recog.c (validate_replace_rtx_group): Replace also in
7570         REG_EQUAL and REG_EQUIV notes.
7571
7572 2010-03-22  Richard Guenther  <rguenther@suse.de>
7573
7574         PR tree-optimization/43390
7575         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
7576         sure vector extracts are type correct.
7577
7578 2010-03-22  Richard Guenther  <rguenther@suse.de>
7579
7580         PR middle-end/40106
7581         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
7582         x * sqrt (x) even when optimizing for size if the target
7583         has native support for sqrt.
7584
7585 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
7586
7587         * varasm.c (make_decl_rtl_for_debug): Also clear
7588         flag_mudflap for the duration of make_decl_rtl call.
7589
7590         PR debug/43443
7591         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
7592         locs from preserved VALUEs.
7593
7594 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7595
7596         PR middle-end/42718
7597         * pa.md (movmemsi): Set align to one if zero.
7598         (movmemdi): Likewise.
7599
7600 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
7601
7602         PR target/42321
7603         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
7604         with their corresponding prologue pushes.
7605
7606 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
7607
7608         PR target/43156
7609         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
7610         at the begining or end.
7611         (spu_expand_epilogue): Likewise.
7612
7613 2010-03-20  Richard Guenther  <rguenther@suse.de>
7614
7615         PR rtl-optimization/43438
7616         * combine.c (make_extraction): Properly zero-/sign-extend an
7617         extraction of the low part of a CONST_INT.  Also handle
7618         CONST_DOUBLE.
7619
7620 2010-03-19  Mike Stump  <mikestump@comcast.net>
7621
7622         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
7623         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
7624         (override_options): Use SUBTARGET32_DEFAULT_CPU.
7625
7626 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
7627
7628         PR c/43211
7629         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
7630         an error.
7631
7632 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
7633
7634         PR rtl-optimization/42258
7635         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
7636         use that may match DEF.
7637
7638         PR target/40697
7639         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
7640         the cost of loading the constant rather than assuming
7641         COSTS_N_INSNS (1).
7642         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
7643         outer code is AND, do the same tests as the andsi3 expander and
7644         return COSTS_N_INSNS (1) if and is cheap.
7645
7646         * optabs.c (avoid_expensive_constant): Fix formatting.
7647
7648 2010-03-19  Michael Matz  <matz@suse.de>
7649
7650         PR c++/43116
7651         * attribs.c (decl_attributes): When rebuilding a function pointer
7652         type use the same qualifiers as the original pointer type.
7653
7654 2010-03-19  Martin Jambor  <mjambor@suse.cz>
7655
7656         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
7657         and is_gimple_ip_invariant_address.
7658
7659 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7660
7661         Revert
7662         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7663
7664         * config/arm/arm.c (arm_override_options): Turn off
7665         flag_dwarf2_cfi_asm for AAPCS variants.
7666
7667 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7668
7669         PR target/43399
7670         * config/arm/arm.c (emit_multi_reg_push): Update comments.
7671         Use PRE_MODIFY instead of PRE_DEC.
7672         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
7673         (vfp_emit_fstmd): Likewise.
7674
7675 2010-03-19  Michael Matz  <matz@suse.de>
7676
7677         PR target/43305
7678         * builtins.c (expand_builtin_interclass_mathfn,
7679         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
7680         if that fails.
7681
7682 2010-03-19  Richard Guenther  <rguenther@suse.de>
7683
7684         PR tree-optimization/43415
7685         * tree-ssa-pre.c (phi_translate): Split out worker to ...
7686         (phi_translate_1): ... this.
7687         (phi_translate): Move all caching here.  Cache all NARY
7688         and REFERENCE translations.
7689
7690 2010-03-19  David S. Miller  <davem@davemloft.net>
7691
7692         With help from Eric Botcazou.
7693         * config/sparc/sparc.c: Include dwarf2out.h.
7694         (emit_pic_helper): Delete.
7695         (pic_helper_symbol_name): Delete.
7696         (pic_helper_emitted_p): Delete.
7697         (pic_helper_needed): New.
7698         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
7699         (get_pc_thunk_name): New.
7700         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
7701         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
7702         Set pic_helper_needed to true.  Don't call emit_pic_helper.
7703         (sparc_expand_prologue): Update load_pic_register call.
7704         (sparc_output_mi_thunk): Likewise.
7705         (sparc_file_end): Emit a hidden comdat symbol for the PIC
7706         thunk if possible.  Output CFI information as needed.
7707
7708 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
7709             Jack Howarth <howarth@bromo.med.uc.edu>
7710
7711         PR target/36399
7712         * config/i386/i386.h: Fix ABI on darwin x86-32.
7713
7714 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
7715
7716         * tree.h: Declare make_decl_rtl_for_debug.
7717         * varasm.c (make_decl_rtl_for_debug): New.
7718         * dwarf2out.c (rtl_for_decl_location): Call it.
7719         * cfgexpand.c (expand_debug_expr): Call it.
7720
7721 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
7722
7723         PR bootstrap/43399
7724         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
7725         mem_mode.
7726
7727         PR bootstrap/43403
7728         * var-tracking.c (vt_init_cfa_base): Do nothing if
7729         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
7730
7731 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
7732
7733         PR debug/42873
7734         * var-tracking.c (canonicalize_vars_star): New.
7735         (dataflow_post_merge_adjust): Use it.
7736
7737 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
7738
7739         PR debug/43058
7740         * var-tracking.c (non_suitable_const): New function.
7741         (add_uses): For DEBUG_INSNs with constants, don't record any
7742         value, instead just the constant value itself.
7743         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
7744         is not VAR_LOC_UNKNOWN_P, set var to the constant.
7745         (emit_notes_in_bb): Likewise.
7746         (emit_note_insn_var_location): For onepart variables if
7747         cur_loc is a VOIDmode constant, use DECL_MODE.
7748
7749 2010-03-18  Martin Jambor  <mjambor@suse.cz>
7750
7751         PR middle-end/42450
7752         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
7753         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
7754         all non-clones.  Moved call redirection...
7755         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
7756         (cgraph_materialize_all_clones): Dispose of all
7757         combined_args_to_skip bitmaps.
7758         (verify_cgraph_node): Do not check for edges pointing to wrong
7759         nodes in inline clones.
7760         * tree-inline.c (copy_bb): Call
7761         cgraph_redirect_edge_call_stmt_to_callee.
7762         * ipa.c (cgraph_remove_unreachable_nodes): Call
7763         cgraph_node_remove_callees even when there are used clones.
7764
7765 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
7766
7767         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
7768
7769 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
7770
7771         PR target/43383
7772         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
7773         for 32bit.
7774
7775 2010-03-18  Michael Matz  <matz@suse.de>
7776
7777         PR middle-end/43419
7778         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
7779         into sqrt(x) if we need to preserve signed zeros.
7780
7781 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
7782             Eric Botcazou  <ebotcazou@adacore.com>
7783
7784         PR rtl-optimization/43360
7785         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
7786         note if we don't know its invariant status.
7787
7788 2010-03-18  Michael Matz  <matz@suse.de>
7789
7790         PR tree-optimization/43402
7791         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
7792         PHI chains of ssa names registered for update.
7793
7794 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
7795
7796         PR target/42427
7797         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
7798         non-offsettable and pre_modify update addressing.
7799         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
7800         and "2" alternatives "#".
7801         (*movdd_softfloat32): Make all alternatives "#";
7802         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
7803         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
7804         (*movdf_softfloat32): Make all alternatives "#";
7805         (movdi): Use the new DIFD mode iterator to create a common splitter
7806         for movdi, movdf and movdd patterns.
7807
7808 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
7809
7810         * common.opt (dumpdir): Remove redundant tab.
7811
7812 2010-03-17  Martin Jambor  <mjambor@suse.cz>
7813
7814         PR tree-optimization/43347
7815         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
7816         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
7817
7818 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
7819
7820         PR rtl-optimization/42216
7821         * regrename.c (create_new_chain): New function, broken out from...
7822         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
7823         appending a use to an empty chain.
7824         (build_def_use): Remove previous changes that convert OP_INOUT to
7825         OP_OUT operands; instead detect the case where an OP_INOUT operand
7826         uses a previously untracked register and create an empty chain for it.
7827
7828 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7829
7830         * doc/extend.texi (Function Attributes): Rewrite unfinished
7831         sentence in ms_abi documentation.
7832
7833 2010-03-17  Alan Modra  <amodra@gmail.com>
7834
7835         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
7836         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
7837         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
7838         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
7839
7840 2010-03-16  Richard Henderson  <rth@redhat.com>
7841
7842         PR middle-end/43365
7843         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
7844         (lower_try_finally): Save and restore eh_seq around the expansion
7845         of the try-finally.
7846
7847 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
7848
7849         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
7850         statements before splitting block.
7851
7852 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7853
7854         * doc/sourcebuild.texi (Testsuites): Fix markup.
7855         Use pathnames relative to gcc/testsuite.
7856         (Test Directives): Move description of how timeout is determined.
7857         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
7858         (C Tests): Correct gcc.misc-tests directory.
7859         Framework tests now live in gcc.test-framework.
7860
7861 2010-03-16  Richard Guenther  <rguenther@suse.de>
7862
7863         PR middle-end/43379
7864         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
7865         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
7866
7867 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
7868             Alexandre Oliva  <aoliva@redhat.com>
7869
7870         PR tree-optimization/42917
7871         * lambda-code.c (remove_iv): Skip debug statements.
7872         (lambda_loopnest_to_gcc_loopnest): Likewise.
7873         (not_interesting_stmt): Debug statements are not interesting.
7874
7875 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
7876
7877         PR debug/43051
7878         PR debug/43092
7879         * cselib.c (cselib_preserve_constants,
7880         cfa_base_preserved_val): New static variables.
7881         (preserve_only_constants): New function.
7882         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
7883         clear its REG_VALUES.  If cselib_preserve_constants, don't
7884         empty the whole hash table, but preserve there VALUEs with constants,
7885         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
7886         (cselib_preserve_cfa_base_value): New function.
7887         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
7888         (cselib_init): Change argument to int bitfield.  Set
7889         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
7890         is in it.
7891         (cselib_finish): Clear cselib_preserve_constants and
7892         cfa_base_preserved_val.
7893         * cselib.h (enum cselib_record_what): New enum.
7894         (cselib_init): Change argument to int.
7895         (cselib_preserve_cfa_base_value): New prototype.
7896         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
7897         * dse.c (dse_step1): Likewise.
7898         * cfgcleanup.c (thread_jump): Likewise.
7899         * sched-deps.c (sched_analyze): Likewise.
7900         * gcse.c (local_cprop_pass): Likewise.
7901         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
7902         If FN is non-NULL, call the callback always and whenever it returns
7903         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
7904         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
7905         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
7906         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
7907         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
7908         * var-tracking.c: Include recog.h.
7909         (bb_stack_adjust_offset): Remove.
7910         (vt_stack_adjustments): Don't call it, instead just gather the
7911         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
7912         (adjust_stack_reference): Remove.
7913         (compute_cfa_pointer): New function.
7914         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
7915         (struct adjust_mem_data): New type.
7916         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
7917         functions.
7918         (get_address_mode): New function.
7919         (replace_expr_with_values): Use it.
7920         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
7921         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
7922         (adjust_sets): Remove.
7923         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
7924         Use get_address_mode.
7925         (get_adjusted_src): Remove.
7926         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
7927         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
7928         (add_with_sets): Don't call adjust_sets.
7929         (fp_setter, vt_init_cfa_base): New functions.
7930         (vt_initialize): Change return type to bool.  Move most of pool etc.
7931         initialization to the beginning of the function from end.  Pass
7932         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
7933         If !frame_pointer_needed, call vt_stack_adjustment before mos
7934         vector is filled, call vt_init_cfa_base if argp/framep has been
7935         eliminated to sp.  If frame_pointer_needed and argp/framep has
7936         been eliminated to hard frame pointer, set
7937         hard_frame_pointer_adjustment and call vt_init_cfa_base after
7938         encountering fp setter in the prologue.  For MO_ADJUST, call
7939         log_op_type before pusing the op into mos vector, not afterwards.
7940         Call adjust_insn before cselib_process_insn/add_with_sets,
7941         call cancel_changes (0) afterwards.
7942         (variable_tracking_main_1): Adjust for vt_initialize calling
7943         vt_stack_adjustments and returning whether it succeeded or not.
7944
7945 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
7946
7947         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
7948         debug statements.
7949
7950 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
7951
7952         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
7953         has been set.
7954         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
7955         drap_reg has not been set.
7956
7957 2010-03-15  Michael Matz  <matz@suse.de>
7958
7959         PR middle-end/43300
7960         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
7961         use it to expand block copies.
7962         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
7963         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
7964         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
7965
7966 2010-03-15  Richard Guenther  <rguenther@suse.de>
7967
7968         PR tree-optimization/43367
7969         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
7970         elimination check.
7971
7972 2010-03-15  Richard Guenther  <rguenther@suse.de>
7973
7974         PR tree-optimization/43317
7975         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
7976
7977 2010-03-15  Martin Jambor  <mjambor@suse.cz>
7978
7979         PR tree-optimization/43141
7980         * tree-sra.c (create_abstract_origin): New function.
7981         (modify_function): Call create_abstract_origin.
7982
7983 2010-03-15  Chris Demetriou  <cgd@google.com>
7984
7985         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
7986         wasn't copied.
7987
7988 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7989
7990         PR middle-end/43354
7991         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
7992         call insert_out_of_ssa_copy for default definitions.
7993
7994 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7995
7996         * graphite-clast-to-gimple.c (my_long_long): Defined.
7997         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
7998         * graphite-sese-to-poly.c (my_long_long): Defined.
7999         (scop_ivs_can_be_represented): Use it.
8000
8001 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8002
8003         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
8004         graphite-max-bbs-per-function, and loop-block-tile-size.
8005         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
8006         with "maximum".
8007         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
8008
8009 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8010
8011         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
8012         forward declaration.
8013         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
8014         (add_upper_bounds_from_estimated_nit): New.
8015         (build_loop_iteration_domains): Use it.
8016
8017 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8018
8019         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
8020
8021 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8022
8023         PR middle-end/43306
8024         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
8025         should be an INTEGER_CST.  Also handle CASE_CONVERT.
8026
8027 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8028
8029         * graphite.c (graphite_initialize): To bound the number of bbs per
8030         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
8031         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
8032         * doc/invoke.texi: Document it.
8033
8034 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8035
8036         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
8037         * graphite-sese-to-poly.h (build_poly_scop): Same.
8038
8039 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8040
8041         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
8042         the number of parameters in the scop.  Use as an upper bound
8043         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
8044         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
8045         * doc/invoke.texi: Document it.
8046
8047 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
8048
8049         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
8050         * doc/c-tree.texi: Remove.
8051         * doc/generic.texi: Merge c-tree.texi here.
8052         * doc/gccint.texi (Trees): Remove menu entry.
8053         (c-tree.texi): Remove @include.
8054         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
8055         * doc/languages.texi (Reading RTL): Ditto.
8056
8057 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
8058
8059         PR target/42869
8060         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
8061
8062 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
8063
8064         PR middle-end/42431
8065         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
8066         code added to work around reload clobbering CONST insns.
8067
8068 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
8069
8070         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
8071         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
8072         (cselib_preserve_only_values): Remove retain argument, don't
8073         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
8074         * cselib.h (cselib_preserve_only_values): Remove retain argument.
8075         * var-tracking.c (micro_operation): Move insn field before union.
8076         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
8077         (struct variable_tracking_info_def): Remove n_mos field, change
8078         mos into a vector of micro_operations.
8079         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
8080         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
8081         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
8082         changing into a vector.
8083         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
8084         come before all other uops generated by add_stores.
8085         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
8086         argument removal.
8087         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
8088         a vector.  Run just one pass over the bbs instead of separate counting
8089         and computation phase.
8090         (vt_finalize): Free VTI (bb)->mos vector instead of array.
8091
8092         PR debug/43329
8093         * tree-inline.c (remap_decls): Put old_var rather than origin_var
8094         into *nonlocalized_list vector.
8095         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
8096         even if origin is non-NULL.
8097         (gen_variable_die): Likewise.
8098         (process_scope_var): Don't change origin.
8099         (gen_decl_die): Likewise.
8100         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
8101         before adding new edges instead of after it, fix moving over
8102         debug stmts.
8103
8104 2010-03-11  David S. Miller  <davem@davemloft.net>
8105
8106         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
8107         of four.
8108         * configure: Rebuild.
8109
8110 2010-03-11  Martin Jambor  <mjambor@suse.cz>
8111
8112         PR tree-optimization/43257
8113         * tree.c (assign_assembler_name_if_neeeded): New function.
8114         (free_lang_data_in_cgraph): Assembler name assignment moved to the
8115         above new function.
8116         * tree.h (assign_assembler_name_if_neeeded): Declare.
8117         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
8118         the function if needed.
8119
8120 2010-03-11  Chris Demetriou  <cgd@google.com>
8121
8122         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
8123         include/stdint-gcc.h, and include/stdint.h world-readable.
8124
8125 2010-03-11  Richard Guenther  <rguenther@suse.de>
8126
8127         PR tree-optimization/43255
8128         * tree-vrp.c (process_assert_insertions_for): Do not insert
8129         asserts for trivial conditions.
8130
8131 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8132
8133         PR tree-optimization/43280
8134         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
8135         generation.  Move calculation of size out of the if branch.
8136         (find_bswap): Modify compare number generation.
8137
8138 2010-03-11  Richard Guenther  <rguenther@suse.de>
8139
8140         PR lto/43200
8141         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
8142         (input_gimple_stmt): Fixup handled component types during
8143         operand read.  Also fix up decls in ADDR_EXPRs.
8144
8145 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
8146
8147         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
8148         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
8149
8150 2010-03-10  Jan Hubicka  <jh@suse.cz>
8151
8152         PR c/43288
8153         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
8154         * varasm.c (get_variable_section): Don't do that here...
8155         (make_decl_rtl): ... and here.
8156         (do_assemble_alias): Produce decl RTL.
8157         (assemble_alias): Likewise.
8158
8159 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
8160
8161         PR debug/43290
8162         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
8163         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
8164         of fde->vdrap_reg.
8165         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
8166         (based_loc_descr): Only express drap or vdrap regno based expressions
8167         using DW_OP_fbreg when not optimizing.
8168         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
8169         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
8170         REG_CFA_SET_VDRAP note.
8171
8172 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
8173
8174         PR tree-optimization/43236
8175         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
8176         error in calculation of base address in reverse iteration case.
8177         (generate_builtin): Take number of latch executions if the statement
8178         is in the latch.
8179
8180 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
8181
8182         PR middle-end/42859
8183         * tree-eh.c: Include pointer-set.h.
8184         (lower_eh_dispatch): Filter out duplicate case labels and
8185         remove the unneeded edge when the label is unused.  Return
8186         true when some edges are removed.
8187         (execute_lower_eh_dispatch): When any lowering resulted in
8188         removing an edge, also delete unreachable blocks.
8189
8190 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
8191
8192         PR bootstrap/43287
8193         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
8194         UNSPEC_MACHOPIC_OFFSET.
8195
8196 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
8197
8198         PR target/43294
8199         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
8200         (m68k_delegitimize_address): New function.
8201
8202 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
8203
8204         PR debug/43299
8205         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
8206
8207         PR debug/43299
8208         * var-tracking.c (adjust_sets): New function.
8209         (count_with_sets, add_with_sets): Use it.
8210         (get_adjusted_src): New inline function.
8211         (add_stores): Use it.
8212
8213         PR debug/43304
8214         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
8215         call cselib_dummy_expand_value_rtx_cb instead of
8216         cselib_expand_value_rtx_cb.
8217
8218         PR debug/43293
8219         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
8220         * config/i386/i386.c: Include debug.h and dwarf2out.h.
8221         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
8222         and .cfi_endproc around the pic thunks.
8223         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
8224         all queued unwind info register saves are saved before the call.
8225         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
8226         considered as sp-=4 for unwind info and the pop as sp+=4 which
8227         also clobbers dest, but doesn't actually restore it.
8228
8229         PR debug/43290
8230         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
8231         RTX_FRAME_RELATED_P.
8232
8233 2010-03-09  Jie Zhang  <jie@codesourcery.com>
8234
8235         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
8236         whitespaces in output template.
8237
8238 2010-03-09  Jie Zhang  <jie@codesourcery.com>
8239
8240         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
8241         out array boundary.
8242
8243 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
8244
8245         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
8246         builtins.exp in a separate job.
8247
8248 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8249
8250         * graphite-sese-to-poly.c (add_param_constraints): Use
8251         lower_bound_in_type and upper_bound_in_type.
8252
8253 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8254
8255         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
8256         instead of unsigned_type_node.
8257
8258 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8259             Reza Yazdani  <reza.yazdani@amd.com>
8260
8261         PR middle-end/43065
8262         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
8263         on pointer type parameters.
8264
8265 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
8266
8267         PR middle-end/42644
8268         PR middle-end/42130
8269         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
8270         handle conversions from pointer to integers.
8271         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
8272         induction variable, to be able to work with code generated by CLooG.
8273         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
8274         (build_poly_scop): Bail out if we cannot codegen a loop.
8275
8276 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
8277
8278         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
8279         code generation with gloog_error.
8280
8281 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8282
8283         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
8284         Call fold_convert on all the returned values.
8285         (expand_scalar_variables_expr): Pass to
8286         expand_scalar_variables_ssa_name the type of the resulting expression.
8287
8288 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8289
8290         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
8291         ppl_min_for_le_pointset.
8292         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
8293         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
8294
8295 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8296
8297         * graphite-dependences.c (map_into_dep_poly): Removed.
8298         (dependence_polyhedron_1): Use combine_context_id_scat.
8299
8300 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8301
8302         * graphite-poly.h (struct poly_scattering): Add layout documentation.
8303         (struct poly_bb): Same.
8304         (combine_context_id_scat): New.
8305
8306 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8307
8308         PR middle-end/42326
8309         * sese.c (name_defined_in_loop_p): Return false for default
8310         definitions.
8311
8312 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8313
8314         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
8315         and clean up the logic.
8316
8317 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8318
8319         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
8320         early return.
8321
8322 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
8323
8324         * var-tracking.c (remove_cselib_value_chains): Define only for
8325         ENABLE_CHECKING.
8326         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
8327         delete_slot_part, emit_notes_for_differences_1): Don't call
8328         remove_cselib_value_chains here.
8329         (set_slot_part, emit_notes_for_differences_2): Don't call
8330         add_cselib_value_chains here.
8331         (preserved_values): New vector.
8332         (preserve_value): New function.
8333         (add_uses, add_stores, vt_add_function_parameters): Use it
8334         instead of cselib_preserve_value.
8335         (changed_values_stack): New vector.
8336         (check_changed_vars_0): New function.
8337         (check_changed_vars_1, check_changed_vars_2): Use it.
8338         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
8339         changed_values_stack VALUEs.
8340         (vt_emit_notes): For all preserved_values call
8341         add_cselib_value_chains.  If ENABLE_CHECKING call
8342         remove_cselib_value_chains before verifying value_chains is empty.
8343         Initialize and free changed_values_stack.
8344         (vt_initialize): Initialize preserved_values.
8345         (vt_finalize): Free preserved_values.
8346
8347 2010-03-08  Richard Guenther  <rguenther@suse.de>
8348
8349         PR tree-optimization/43269
8350         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
8351         region detection.
8352
8353 2010-03-08  Martin Jambor  <mjambor@suse.cz>
8354
8355         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
8356         (ipa_is_param_called): Removed.
8357         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
8358         (ipa_print_node_params): Do not print the called flag.
8359         (ipa_write_node_info): Do not stream the called flag.
8360         (ipa_read_node_info): Likewise.
8361
8362 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
8363
8364         PR debug/43176
8365         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
8366         * cselib.c (struct expand_value_data): Add dummy field.
8367         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
8368         dummy to false.
8369         (cselib_dummy_expand_value_rtx_cb): New function.
8370         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
8371         any rtl.
8372         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
8373         * var-tracking.c: Include pointer-set.h.
8374         (variable): Change n_var_parts to char from int.  Add
8375         cur_loc_changed and in_changed_variables fields.
8376         (variable_canonicalize): Remove.
8377         (shared_var_p): New inline function.
8378         (unshare_variable): Maintain cur_loc_changed and
8379         in_changed_variables fields.  If var was in changed_variables,
8380         replace it there with new_var.  Just copy cur_loc instead of
8381         resetting it to something else.
8382         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
8383         (dataflow_set_union): Don't call variable_canonicalize.
8384         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
8385         of their DEBUG_EXPR_TREE_DECLs.
8386         (canonicalize_loc_order_check): Verify that cur_loc is NULL
8387         and in_changed_variables and cur_loc_changed is false.
8388         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
8389         and cur_loc_changed.  Don't update cur_loc here.
8390         (variable_merge_over_src): Don't call variable_canonicalize.
8391         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
8392         removing loc that is equal to cur_loc, clear cur_loc,
8393         set cur_loc_changed and ensure variable_was_changed is called.
8394         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
8395         compare pointers in cur_loc check, if it is equal to loc,
8396         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
8397         (variable_different_p): Remove compare_current_location argument,
8398         don't compare cur_loc.
8399         (dataflow_set_different_1): Adjust variable_different_p caller.
8400         (variable_was_changed): If dv had some var in changed_variables
8401         already, reset in_changed_variables flag for it and propagate
8402         cur_loc_changed over to the new variable.  On empty var
8403         always set cur_loc_changed.  Set in_changed_variables on whatever
8404         var is added to changed_variables.
8405         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
8406         Use shared_var_p.  When removing loc that is equal to cur_loc,
8407         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
8408         end, don't set it to something else, just call variable_was_changed.
8409         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
8410         loc being removed, clear cur_loc and set cur_loc_changed.
8411         Set cur_loc_changed if all locations have been removed.
8412         (struct expand_loc_callback_data): New type.
8413         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
8414         allocated.  Always create SUBREGs if simplify_subreg failed.
8415         Prefer to use cur_loc, when that fails and still in
8416         changed_variables (and seen first time) recompute it.  Set
8417         cur_loc_changed of variables which had to change cur_loc and
8418         compute elcd->cur_loc_changed if any of the subexpressions used
8419         had to change cur_loc.
8420         (vt_expand_loc): Adjust to pass arguments in
8421         expand_loc_callback_data structure.
8422         (vt_expand_loc_dummy): New function.
8423         (emitted_notes): New variable.
8424         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
8425         that weren't used for any other decl in current
8426         emit_notes_for_changes call call vt_expand_loc_dummy to update
8427         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
8428         first loc_chain location if NULL before.  Always use just
8429         cur_loc instead of first loc_chain location.  When cur_loc_changed
8430         is false, when not --enable-checking=rtl just don't emit any note.
8431         When rtl checking, compute the note and assert it is the same
8432         as previous note.  Clear cur_loc_changed and in_changed_variables
8433         at the end before removing from changed_variables.
8434         (check_changed_vars_3): New function.
8435         (emit_notes_for_changes): Traverse changed_vars to call
8436         check_changed_vars_3 on each changed var.
8437         (emit_notes_for_differences_1): Clear cur_loc_changed and
8438         in_changed_variables.  Recompute cur_loc of new_var.
8439         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
8440         (vt_emit_notes): Initialize and destroy emitted_notes.
8441
8442 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
8443
8444         PR rtl-optimization/42220
8445         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
8446         Use verify_reg_tracked to determine if we should use OP_OUT rather
8447         than OP_INOUT.
8448         (build_def_use): If we see an in-out operand for a register that we
8449         know nothing about, treat is an output if possible, fail the block if
8450         not.
8451
8452 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
8453
8454         PR debug/42897
8455         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
8456         permanently.
8457
8458 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
8459
8460         PR debug/42897
8461         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
8462         uses of relevant DEFs that are dead outside the loop too.
8463
8464 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
8465
8466         * var-tracking.c (dataflow_set_merge): Swap src and src2.
8467         Reverted:
8468         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
8469         PR debug/41371
8470         * var-tracking.c (values_to_unmark): New variable.
8471         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
8472         values_to_unmark vector.  Moved body to...
8473         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
8474         instead queue it into values_to_unmark vector.
8475         (vt_find_locations): Free values_to_unmark vector.
8476
8477 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
8478
8479         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
8480         (site.exp): Export them when plugins are enabled.
8481
8482 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
8483
8484         PR middle-end/42326
8485         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
8486         that contain scevs.
8487         (chrec_fold_multiply): Same.
8488
8489 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
8490
8491         PR c/43248
8492         * c-decl.c (build_compound_literal): Return early if init is
8493         an error_mark_node.
8494
8495 2010-03-04  Martin Jambor  <mjambor@suse.cz>
8496
8497         PR tree-optimization/43164
8498         PR tree-optimization/43191
8499         * tree-sra.c (type_consists_of_records_p): Reject records with
8500         zero-size bit-fields at the end.
8501
8502 2010-03-04  Mike Stump  <mikestump@comcast.net>
8503
8504         * Makefile.in (TAGS): Remove *.y.
8505
8506 2010-03-04  Richard Guenther  <rguenther@suse.de>
8507
8508         PR tree-optimization/40761
8509         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
8510         in reverse order.
8511         (my_rev_post_order_compute): New function.
8512         (init_pre): Call it.
8513
8514 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
8515
8516         PR middle-end/43209
8517         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
8518         decrease the cost of an IV candidate when the cost is infinite.
8519
8520 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8521
8522         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
8523         Use '3DNow!' for the extension of that name, ensure normal space
8524         after the string.
8525         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
8526
8527 2010-03-03  Jeff Law  <law@redhat.com>
8528
8529         * PR middle-end/32693
8530         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
8531         than gen_rtx_SUBREG.
8532         (extract_bit_field_1): Likewise.
8533
8534 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
8535
8536         * doc/sourcebuild.texi (Test directives): Document that arguments
8537         include-opts and exclude-opts are now optional for dg-skip-if,
8538         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
8539
8540 2010-03-03  Jason Merrill  <jason@redhat.com>
8541
8542         PR c++/12909
8543         * cgraph.h (varpool_node): Add extra_name field.
8544         * varpool.c (varpool_extra_name_alias): New.
8545         (varpool_assemble_decl): Emit extra name aliases.
8546         (varpool_mark_needed_node): Look past an extra name alias.
8547         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
8548         * lto-streamer-in.c (lto_input_tree): Read it.
8549         * lto-streamer-out.c (output_unreferenced_globals): Write it.
8550
8551 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
8552
8553         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
8554         (sparc*-*-solaris2*): ...this.
8555
8556 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
8557
8558         PR debug/43229
8559         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
8560         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
8561         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
8562         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
8563
8564         PR debug/43237
8565         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
8566         fallthrough to default handling, just with want_address 0 instead of 2.
8567         For single element lists, add_AT_loc directly, otherwise create an
8568         artificial variable DIE and stick location list to it.
8569
8570         PR debug/43177
8571         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
8572         (VAL_EXPR_HAS_REVERSE): Define.
8573         (reverse_op): New function.
8574         (add_stores): For reversible operations add an extra MO_VAL_USE.
8575
8576 2010-03-02  Jason Merrill  <jason@redhat.com>
8577
8578         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
8579
8580 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
8581
8582         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
8583         (sparc64-*-linux*): Likewise.
8584         (sparc64-*-solaris2*): Include assembler files before linker ones.
8585         (sparc-*-solaris2*): Simplify and reorder to match previous case.
8586         * config/sparc/gas.h: Delete.
8587         * config/sparc/sol2-64.h: Add copyright notice.
8588         * config/sparc/sol2-gas-bi.h: Likewise.
8589         * config/sparc/sol2-gld.h: Likewise.
8590         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
8591         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
8592         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
8593         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
8594         (sparc_elf_asm_named_section): Rename into...
8595         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
8596
8597 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
8598
8599         * config/alpha/alpha.c (override_options): Fix -mtune error message.
8600
8601 2010-03-02  Jeff Law  <law@redhat.com>
8602
8603         PR middle-end/42431
8604         * reload1.c (rtx_p, substitute_stack): Declare.
8605         (substitute): Record addresses of changed rtxs.
8606         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
8607         Restore the original rtx when complete.
8608         (reload): Free subsitute_stack when complete.
8609
8610 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
8611
8612         * doc/gccint.texi (menu): Add Testsuites as a chapter.
8613         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
8614         new chapter.
8615         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
8616         LTO Testing, gcov Testing, profopt Testing, compat Testing,
8617         Torture Tests): Change from subsection to section.
8618
8619 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
8620             Steven Bosscher  <steven@gcc.gnu.org>
8621
8622         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
8623         instead of bb.
8624
8625 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
8626
8627         PR middle-end/42640
8628         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
8629         the assignment from the new induction variable to the assignment
8630         of the value from the original loop PHI function.
8631
8632 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
8633             Daniel Jacobowitz  <dan@codesourcery.com>
8634
8635         * doc/sourcebuild.texi (Test directives): Clarify options to
8636         dg-skip-if.
8637
8638 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8639
8640         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
8641         Disable cfi directives unless GCC and gas agree on using read-only
8642         .eh_frame sections for 64-bit.
8643         * configure: Regenerate.
8644
8645 2010-03-01  Richard Guenther  <rguenther@suse.de>
8646
8647         PR tree-optimization/43220
8648         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
8649         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
8650
8651 2010-03-01  Richard Guenther  <rguenther@suse.de>
8652             Martin Jambor  <mjambor@suse.cz>
8653
8654         PR middle-end/41250
8655         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
8656         gimplified parameters.
8657
8658 2010-03-01  Christian Bruel  <christian.bruel@st.com>
8659
8660         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
8661
8662 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
8663
8664         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
8665
8666 2010-03-01  Richard Guenther  <rguenther@suse.de>
8667
8668         PR middle-end/43213
8669         * expr.c (expand_assignment): Use the alias-oracle to tell
8670         if the rhs aliases the result decl.
8671
8672 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8673
8674         PR pch/14940
8675         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
8676         to sol_gt_pch_get_address.
8677         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
8678         64-bit, SPARC and x86.
8679         (sol_gt_pch_get_address): New function.
8680
8681 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
8682
8683         * toplev.h (inform_n, error_n): Declare.
8684         * diagnostic.c (inform_n, error_n): New function.
8685
8686 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
8687
8688         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
8689         has no rtl yet when processing local_decls, queue it and recheck
8690         if deferred stack allocation hasn't assigned it rtl.
8691
8692 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
8693
8694         * config/sh/sh.c (unspec_bbr_uid): New.
8695         (gen_block_redirect): Use it instead of INSN_UID.
8696         (gen_far_branch): Likewise.
8697
8698 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
8699
8700         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
8701         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
8702
8703 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8704
8705         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
8706         (Warning Options): -Wno-conversion-null is valid for
8707         Objective-C++ as well.
8708         * doc/tm.texi (Named Address Spaces): Likewise.
8709         * doc/plugins.texi (Plugins): Replace TABs with spaces.
8710         * doc/tree-ssa.texi (Tree SSA): Likewise.
8711
8712 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8713
8714         PR bootstrap/43202
8715         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
8716         by default.  Don't set the default arch for
8717         i[34567]86-*-darwin*|x86_64-*-darwin*.
8718
8719 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8720
8721         PR bootstrap/43202
8722         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
8723         default.  Set the default 32bit/64bit archs with $with_arch
8724         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
8725
8726 2010-02-27  Richard Guenther  <rguenther@suse.de>
8727
8728         PR tree-optimization/43186
8729         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
8730         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
8731         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
8732         unroller iterations.
8733
8734 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8735
8736         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
8737         required and i[34567]86-*-* targets don't support 64bit ISA.
8738
8739 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
8740
8741         PR ada/43096
8742         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
8743         the same alias set.
8744
8745 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
8746
8747         * config.gcc: Set the default arch at least to Prescott for
8748         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
8749         if SSE math is enabled.
8750
8751 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8752
8753         * diagnostic.c (diagnostic_initialize): Update.
8754         (diagnostic_report_diagnostic): Test inhibit_notes_p for
8755         informative notes.
8756         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
8757         (diagnostic_inhibit_notes): New.
8758         * toplev.c (process_options): inhibit notes with -fcompare-debug.
8759
8760 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8761
8762         PR c/20631
8763         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
8764         * doc/standards.texi: Likewise.
8765         * doc/extend.texi: Likewise.
8766         * doc/trouble.texi: Likewise.
8767         * doc/cppopts.texi: Likewise.
8768         * doc/install.texi: Likewise.
8769         * c.opt (std=c90,std=gnu90): New options.
8770         * c-opts.c (c_common_handle_option): Handle them.
8771
8772 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8773
8774         PR c/24577
8775         * c-decl.c (undeclared_variable): Use an informative note.
8776
8777 2010-02-26  Richard Guenther  <rguenther@suse.de>
8778
8779         PR tree-optimization/43186
8780         * gimple.h (gimple_fold): Remove.
8781         * gimple.c (gimple_fold): Remove.  Inline into single user ...
8782         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
8783         Try harder for conditions.
8784
8785 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
8786
8787         PR debug/43190
8788         * function.c (used_types_insert): Don't skip through named pointer
8789         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
8790         and it is different from the main variant's type.
8791
8792 2010-02-26  Nick Clifton  <nickc@redhat.com>
8793
8794         * config/rx/rx.md (sminsi3): Remove bogus alternative.
8795
8796 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
8797
8798         * config.gcc: Support --with-fpmath=sse for x86.
8799
8800         * config/i386/ssemath.h: New.
8801
8802         * doc/install.texi (--with-fpmath=sse): Documented.
8803
8804 2010-02-26  Richard Guenther  <rguenther@suse.de>
8805
8806         PR tree-optimization/43188
8807         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
8808         vector types of over-aligned element type.
8809
8810 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
8811
8812         PR target/43175
8813         * config/i386/i386.c (expand_vec_perm_blend): Use correct
8814         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
8815
8816 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
8817
8818         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
8819
8820 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
8821
8822         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
8823         * var-tracking.c: Include diagnostic.h.
8824         (debug_dv): New function.
8825         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
8826
8827         PR debug/43160
8828         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
8829         (add_value_chain, add_value_chains, remove_value_chain,
8830         remove_value_chains): Handle DEBUG_EXPRs.
8831         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
8832
8833         PR debug/43161
8834         * regcprop.c (struct queued_debug_insn_change): New type.
8835         (struct value_data_entry): Add debug_insn_changes field.
8836         (struct value_data): Add n_debug_insn_changes field.
8837         (debug_insn_changes_pool): New variable.
8838         (free_debug_insn_changes, apply_debug_insn_changes,
8839         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
8840         (kill_value_one_regno): Call free_debug_insn_changes if needed.
8841         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
8842         fields.
8843         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
8844         changes for them.
8845         (copyprop_hardreg_forward_1): Don't call apply_change_group for
8846         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
8847         changes, call cprop_find_used_regs via note_stores.
8848         (copyprop_hardreg_forward): When copying vd from predecessor
8849         which has any queued DEBUG_INSN changes, make sure the pointers are
8850         cleared.  At the end call df_analyze and then if there are any
8851         DEBUG_INSN changes queued at the end of some basic block for still
8852         live registers, apply them.
8853         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
8854
8855 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
8856
8857         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
8858         (arm*-*-*): Ditto.
8859
8860 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
8861
8862         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
8863         targets.  Set the default with_cpu/with_arch from arch/cpu.
8864         Allow x86-64 and native for with_cpu/with_arch.
8865
8866 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
8867
8868         * ebitmap.c: Change calls to verify_popcount with calls to
8869         sbitmap_verify_popcount.
8870         (ebitmap_clear_bit): Fixed map->cacheindex test and
8871         map>cache update when bit clearing results in an empty
8872         element.
8873
8874 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
8875
8876         PR target/43154
8877         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
8878         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
8879         and support both V2DF and V2DI modes.
8880         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
8881         support both V2DF and V2DI modes.
8882         (general): Delete trailing whitespace from a few patterns.
8883
8884         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8885         V2DF/V2DI interleave high/low builtins.
8886
8887         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
8888         new VSX builtins.
8889
8890         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
8891         interleave high/low functions.
8892
8893 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
8894
8895         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
8896         #pragma extern_prefix.
8897
8898 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
8899
8900         PR debug/43166
8901         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
8902         BLKmode, assert op0 is a MEM and just adjust its mode.
8903
8904         PR debug/43165
8905         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
8906         if bitpos isn't multiple of mode's bitsize.
8907
8908 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8909
8910         * c.opt (-ftemplate-depth=): New.
8911         (-ftemplate-depth-): Deprecate.
8912         * optc-gen.awk: Handle -ftemplate-depth=.
8913         * opth-gen.awk: Likewise.
8914         * c-opts.c (c_common_handle_option): Likewise.
8915         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
8916
8917 2010-02-24  Jason Merrill  <jason@redhat.com>
8918
8919         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
8920
8921 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8922
8923         * cfg.c (alloc_aux_for_block): Remove inline.
8924         (alloc_aux_for_edge): Likewise.
8925
8926 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8927
8928         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
8929
8930 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8931
8932         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
8933         * config/i386/sol2-gas.h: New file.
8934         * config.gcc (i[34567]86-*-solaris2*): Use it.
8935
8936 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8937
8938         PR c/43128
8939         * c-typeck.c (ep_convert_and_check): New.
8940         (build_conditional_expr): Use it.
8941         (build_binary_op): Likewise.
8942
8943 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
8944
8945         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
8946
8947         PR debug/43150
8948         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
8949         bounds even for -O+.
8950         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
8951         expr needs to have DECL_NAME set.
8952
8953 2010-02-24  Nick Clifton  <nickc@redhat.com>
8954
8955         * config/mep/mep.c: Include gimple.h.
8956         (mep_function_uses_sp): Delete unused function.
8957         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
8958         parameters.  Use unsigned integers to count args.  Return a
8959         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
8960
8961 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
8962
8963         PR target/43107
8964         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
8965         greater or equal to nelt instead of 2 * nelt.
8966         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
8967         with nelt - 1.
8968
8969 2010-02-23  Jason Merrill  <jason@redhat.com>
8970
8971         PR debug/42800
8972         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
8973         in cfun->local_decls even if they have register types.
8974
8975         PR c++/42837
8976         * stor-layout.c (place_field): Don't warn about unnecessary
8977         DECL_PACKED if the type is packed.
8978
8979 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
8980
8981         PR target/43139
8982         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
8983         GOTOFF relocs, even when the base reg isn't pic pointer.
8984
8985 2010-02-23  Michael Matz  <matz@suse.de>
8986
8987         PR debug/43077
8988         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
8989         (expand_gimple_basic_block): Generate and use debug temps if there
8990         are debug uses left after the last real use of TERed ssa names.
8991         Unlink debug immediate uses when they are expanded.
8992
8993 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8994
8995         PR 43123
8996         * config/i386/i386.c (override_options): Reorganise to provide
8997         better error messages.
8998
8999 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9000
9001         PR middle-end/43083
9002         * graphite-scop-detection.c (create_single_exit_edge): Move
9003         the call to find_single_exit_edge to....
9004         (create_sese_edges): ...here.  Don't handle multiple edges
9005         exiting the function.
9006         (build_graphite_scops): Don't handle multiple edges
9007         exiting the function.
9008
9009 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9010
9011         PR middle-end/43097
9012         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
9013         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
9014
9015 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9016
9017         PR middle-end/43026
9018         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
9019
9020 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9021
9022         PR c++/43126
9023         * c-typeck.c (convert_arguments): Print declaration location.
9024         * c-common.c (validate_nargs): Rename as
9025         builtin_function_validate_nargs.
9026         (check_builtin_function_arguments): Update.
9027
9028 2010-02-22  Richard Guenther  <rguenther@suse.de>
9029
9030         PR lto/43045
9031         * tree-inline.c (declare_return_variable): Use the type of
9032         the call stmt lhs if available.
9033
9034 2010-02-22  Duncan Sands  <baldrick@free.fr>
9035
9036         * passes.c (register_pass): Always consider all pass lists when
9037         ref_pass_instance_number is zero.
9038
9039 2010-02-22  Richard Guenther  <rguenther@suse.de>
9040
9041         PR tree-optimization/42749
9042         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
9043         parameter.  Do arithmetic in the original type.
9044         (update_accumulator_with_ops): Likewise.
9045         (adjust_accumulator_values): Adjust.
9046
9047 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9048
9049         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
9050         (QI to BLKmode splitter): New splitter.
9051
9052 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
9053
9054         * config/i386/i386.c (initial_ix86_tune_features): Turn on
9055         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
9056
9057 2010-02-22  Richard Guenther  <rguenther@suse.de>
9058
9059         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
9060
9061 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
9062
9063         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
9064         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
9065         ($(T)crti.o, $(T)crtn.o): Remove rules.
9066
9067 2010-02-21  Tobias Burnus  <burnus@net-b.de>
9068
9069         PR fortran/35259
9070         * doc/invoke.texi (-fassociative-math): Document that this
9071         option is automatically enabled for Fortran.
9072
9073 2010-02-20  David S. Miller  <davem@davemloft.net>
9074
9075         * configure.ac: Test if linker and assembler properly support
9076         GOTDATA_OP relocations.
9077         * configure: Rebuild.
9078         * config.in: Likewise.
9079         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
9080         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
9081         (movsi_high_pic): Likewise.
9082         (movdi_lo_sum_pic): Likewise.
9083         (movdi_high_pic): Likewise.
9084         (movsi_pic_gotdata_op): New pattern.
9085         (movdi_pic_gotdata_op): Likewise.
9086         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
9087         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
9088
9089 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
9090
9091         PR target/43067
9092         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
9093         attribute to ssemul.
9094         (xop_mulv2div2di3_high): Ditto.
9095
9096 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9097
9098         PR c++/35669
9099         * c.opt (Wconversion-null): New option.
9100         * doc/invoke.texi (Wconversion-null): Document.
9101
9102 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9103
9104         * common.opt (Wlarger-than-): Add Undocumented.
9105
9106 2010-02-19  Mike Stump  <mikestump@comcast.net>
9107
9108         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
9109
9110 2010-02-19  Jason Merrill  <jason@redhat.com>
9111
9112         PR target/40332
9113         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
9114         * configure: Likewise.
9115
9116 2010-02-20  Alan Modra  <amodra@gmail.com>
9117
9118         PR middle-end/42344
9119         * cgraph.h (cgraph_make_decl_local): Declare.
9120         * cgraph.c (cgraph_make_decl_local): New function.
9121         (cgraph_make_node_local): Use it.
9122         * cgraphunit.c (cgraph_function_versioning): Likewise.
9123         * ipa.c (function_and_variable_visibility): Likewise.
9124
9125 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9126
9127         PR bootstrap/43121
9128         * except.c (sjlj_emit_function_enter): Don't call
9129         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
9130         directly.
9131         * rtl.h (add_reg_br_prob_note): Remove prototype.
9132
9133 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9134
9135         PR 41779
9136         * c-common.c (conversion_warning): Remove widening conversions
9137         before checking the conversion of integers to reals.
9138
9139 2010-02-19  Mike Stump  <mikestump@comcast.net>
9140
9141         PR middle-end/43125
9142         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
9143
9144         PR objc/43061
9145         * cgraphunit.c (process_function_and_variable_attributes): Check
9146         DECL_PRESERVE_P instead of looking up attribute "used".
9147         * ipa-pure-const.c (check_decl): Likewise.
9148         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
9149         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
9150         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
9151         instead of attribute "used".
9152         * config/sol2-c.c (solaris_pragma_init): Likewise.
9153         (solaris_pragma_fini): Likewise.
9154
9155 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9156
9157         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
9158         Use XCNEW instead of xcalloc.
9159         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
9160         XNEW instead of xmalloc.
9161         (get_fields): Use XNEWVEC instead of xmalloc.
9162
9163         PR debug/43084
9164         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
9165         populate vars array.
9166         (create_new_general_access): For debug stmts just reset value.
9167         (get_stmt_accesses): For accesses within debug stmts just record them
9168         using add_access_to_acc_sites instead of preventing the peeling or
9169         counting them as accesses.
9170
9171         PR middle-end/42233
9172         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
9173
9174 2010-02-19  Richard Guenther  <rguenther@suse.de>
9175
9176         PR tree-optimization/42916
9177         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
9178         instructions.
9179
9180 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
9181
9182         * configure.ac: Replace all uses of changequote in macro arguments
9183         with proper quoting.
9184
9185 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9186
9187         PR middle-end/42233
9188         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
9189
9190 2010-02-19  Richard Guenther  <rguenther@suse.de>
9191
9192         PR tree-optimization/42944
9193         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
9194         test for aliasing with errno.
9195
9196 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9197
9198         PR middle-end/42233
9199         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
9200         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
9201         * dojump.c: Include output.h.
9202         (inv): New inline function.
9203         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
9204         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
9205         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
9206         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
9207         argument, pass it down to other calls.
9208         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
9209         add REG_BR_PROB note to the conditional jump.
9210         * cfgexpand.c (add_reg_br_prob_note): Removed.
9211         (expand_gimple_cond): Don't call it, add the probability
9212         as last argument to jumpif_1/jumpifnot_1.
9213         * Makefile.in (dojump.o): Depend on output.h.
9214         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
9215         callers.
9216         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
9217         * stmt.c (do_jump_if_equal): Likewise.
9218         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
9219         * loop-unswitch.c (compare_and_jump_seq): Likewise.
9220         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
9221         Likewise.
9222         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
9223         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
9224         jumpifnot_1 callers.
9225         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
9226         callers.
9227         (store_expr): Adjust jumpifnot caller.
9228         (store_constructor): Adjust jumpif caller.
9229
9230         PR middle-end/42233
9231         * gimplify.c (gimple_boolify): For __builtin_expect call
9232         gimple_boolify also on its first argument.
9233
9234 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
9235
9236         * configure.ac (gnu-unique-object): Wrap regexps using [] in
9237         changequote block.
9238         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
9239         * configure: Regenerated.
9240
9241 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9242
9243         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
9244         lang_hooks.types_compatible_p instead of comptypes.
9245
9246 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
9247
9248         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
9249         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
9250         if __prefer_thumb__ is defined.
9251
9252 2010-02-18  Martin Jambor  <mjambor@suse.cz>
9253
9254         PR tree-optimization/43066
9255         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
9256         array with zero-sized element type.
9257
9258 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
9259
9260         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
9261         rtx, allocate struct var_loc_node here and return it to the
9262         caller, and only if it is actually needed.
9263         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
9264         move it earlier and return immediately if it returns NULL.
9265
9266 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
9267
9268         * config/sparc/gas.h: New file.  Restore
9269         TARGET_ASM_NAMED_SECTION to its ELF default.
9270         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
9271         check !HAVE_GNU_AS.
9272         * config/sparc/sparc.c (sparc_elf_asm_named_section):
9273         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
9274         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
9275         after sparc/sysv4.h.
9276
9277 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
9278
9279         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
9280
9281 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
9282
9283         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
9284         patterns from predicated pattern.
9285
9286 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
9287
9288         PR target/43103
9289         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
9290         for insn mnemonic suffix.
9291
9292 2010-02-17  Richard Guenther  <rguenther@suse.de>
9293
9294         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
9295         to loop PHI nodes.
9296
9297 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
9298
9299         PR debug/42918
9300         * caller-save.c (save_call_clobbered_regs): If BB ends with
9301         a DEBUG_INSN, move any notes in between last real insn and the last
9302         DEBUG_INSN after the last DEBUG_INSN.
9303
9304 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
9305
9306         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
9307         Fix return type.  Fix argument type.  Explain meaning of return value.
9308
9309 2010-02-16  Richard Guenther  <rguenther@suse.de>
9310
9311         PR tree-optimization/41043
9312         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
9313         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
9314         statements ...
9315         (vrp_visit_phi_node): ... but only for loop PHI nodes.
9316
9317 2010-02-16  Ira Rosen  <irar@il.ibm.com>
9318
9319         PR tree-optimization/43074
9320         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
9321         * tree-vect-loop.c (vect_analyze_loop_operations): Add
9322         vectorizable cycles in hybrid SLP check.
9323         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
9324
9325 2010-02-16  Richard Guenther  <rguenther@suse.de>
9326
9327         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
9328         (true_dependence): If memrefs_conflict_p computes must-alias
9329         trust it.  Move TBAA check after offset-based disambiguation.
9330         (canon_true_dependence): Likewise.
9331
9332 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
9333
9334         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
9335         * doc/invoke.texi: Document it.
9336         * var-tracking.c: Include toplev.h and params.h.
9337         (vt_find_locations): Return bool indicating success.  Compute
9338         hash sizes unconditionally.  Check new parameter, report.
9339         (variable_tracking_main_1): Check vt_find_locations results and
9340         retry.  Renamed from...
9341         (variable_tracking_main): ... this.  New wrapper to preserve
9342         flag_var_tracking_assignments.
9343         * Makefile.in (var-tracking.o): Adjust dependencies.
9344
9345 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
9346             Jakub Jelinek <jakub@redhat.com>
9347
9348         PR target/42854
9349         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
9350         if weak_import attribute is present.
9351         * config/darwin.c (machopic_select_section): Likewise.
9352
9353 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
9354
9355         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
9356         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
9357         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
9358         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
9359
9360         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
9361         types.
9362
9363         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
9364         Fix argument types.
9365
9366         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
9367         Rewrite text to refer to the names.
9368
9369 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
9370
9371         * config/i386/i386-builtin-types.def
9372         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
9373         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
9374         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
9375         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
9376         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
9377         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
9378         IX86_BUILTIN_VPERMIL2PS256.
9379         (MULTI_ARG_4_DF2_DI_I): Defined.
9380         (MULTI_ARG_4_DF2_DI_I1): Defined.
9381         (MULTI_ARG_4_SF2_SI_I): Defined.
9382         (MULTI_ARG_4_SF2_SI_I1): Defined.
9383         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
9384         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
9385         __builtin_ia32_vpermil2ps256.
9386         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9387         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9388         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
9389         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9390         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9391         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
9392         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
9393         CODE_FOR_xop_vpermil2v8sf3.
9394         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
9395         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
9396         * config/i386/xopintrin.h (_mm_permute2_pd): New.
9397         (_mm256_permute2_pd): New.
9398         (_mm_permute2_ps): New.
9399         (_mm256_permute2_ps): New.
9400
9401 2010-02-15  Nick Clifton  <nickc@redhat.com>
9402
9403         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
9404         boolean parameters.  Use emit_jump_insn when emitting a pop
9405         instruction containing a return insn.
9406         (push): Use 'true' rather than '1' as second parameter to F.
9407         (h8300_expand_prologue): Likewise.
9408         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
9409         (h8300_expand_epilogue): Likewise.
9410
9411 2010-02-15  Richard Guenther  <rguenther@suse.de>
9412
9413         PR middle-end/43068
9414         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
9415         if that is zero.
9416
9417 2010-02-15  Nick Clifton  <nickc@redhat.com>
9418
9419         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
9420         delta.
9421
9422 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
9423
9424         * intl.c (fake_ngettext): New function.
9425         * intl.h (fake_ngettext): Declare.
9426         (ngettext): Define macro.
9427         * collect2.c (notice_translated): New function.
9428         (main): Use notice_translated and ngettext.
9429         * collect2.h (notice_translated): Declare.
9430
9431 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
9432
9433         * reorg.c (delete_computation): Comment fixes.
9434         * caller-save.c (setup_save_areas): Idem.
9435         * sel-sched-dump.c (dump_lv_set): Idem.
9436         * rtl.def: Idem.
9437
9438 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9439
9440         * config/s390/s390.c (s390_sched_init): New function.
9441         (TARGET_SCHED_INIT): Target hook defined.
9442
9443 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
9444             Jack Howarth  <howarth@bromo.med.uc.edu>
9445             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
9446
9447         PR target/42982
9448         Partial revert of unintended change in fix for PR41605.
9449         * config/darwin.h: Fix typo.
9450         * config/darwin9.h: Same.
9451
9452 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
9453
9454         * c-pch.c (pch_init): Clear v.
9455
9456 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9457
9458         PR middle-end/42930
9459         * graphite-scop-detection.c (graphite_can_represent_scev): Call
9460         graphite_can_represent_init for MULT_EXPR.
9461
9462 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9463
9464         PR middle-end/42914
9465         PR middle-end/42530
9466         * graphite-sese-to-poly.c (remove_phi): New.
9467         (translate_scalar_reduction_to_array): Call remove_phi.
9468
9469 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9470
9471         PR middle-end/42771
9472         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
9473         * graphite-clast-to-gimple.h (gloog): Update declaration.
9474         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
9475         * graphite-poly.h (struct poly_bb): Add missing comments.
9476         (struct scop): Add poly_scop_p field.
9477         (POLY_SCOP_P): New.
9478         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
9479         * graphite.c (graphite_transform_loops): Build the polyhedral
9480         representation for each scop before code generation.
9481         * sese.c (rename_variables_in_operand): Removed.
9482         (rename_variables_in_expr): Return the renamed expression.
9483         (rename_sese_parameters): New.
9484         * sese.h (rename_sese_parameters): Declared.
9485
9486 2010-02-11  Richard Guenther  <rguenther@suse.de>
9487
9488         PR tree-optimization/42998
9489         * tree-ssa-pre.c (create_expression_by_pieces): Treat
9490         POINTER_PLUS_EXPR properly.
9491
9492 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9493             Changpeng Fang  <changpeng.fang@amd.com>
9494
9495         PR middle-end/40886
9496         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
9497         the cost of an IV candidate when the IV is used in a test against zero.
9498
9499         * gcc.dg/tree-ssa/ivopts-3.c: New.
9500
9501 2010-02-11  Richard Guenther  <rguenther@suse.de>
9502
9503         PR lto/41664
9504         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
9505         pointer-vs-decl case by swapping refs.  Handle some cases
9506         of pointer-vs-decl disambiguations more conservatively.
9507         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
9508         to false after expanding.
9509
9510 2010-02-11  Richard Guenther  <rguenther@suse.de>
9511
9512         PR driver/43021
9513         * gcc.c (process_command): Handle LTO file@offset case more
9514         appropriately.
9515
9516 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
9517
9518         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
9519         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
9520         of DEBUG_INSNs.
9521         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
9522
9523         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
9524         if MEM's mode size isn't DWARF2_ADDR_SIZE.
9525         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
9526         Optimize eq/ne comparisons when both arguments are known to be
9527         zero-extended.
9528         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
9529         Don't mask operands unnecessarily if they are known to be already
9530         zero-extended.
9531
9532 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
9533
9534         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
9535         instead of loop.
9536
9537 2010-02-10  Richard Guenther  <rguenther@suse.de>
9538
9539         PR tree-optimization/43017
9540         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
9541         for wrapping signed arithmetic.
9542
9543 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
9544
9545         PR debug/43010
9546         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
9547         if no debug info should be emitted for it.
9548
9549 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
9550
9551         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
9552         note when flag_exceptions is set.
9553
9554 2010-02-10  Duncan Sands  <baldrick@free.fr>
9555
9556         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
9557
9558 2010-02-10  Richard Guenther  <rguenther@suse.de>
9559
9560         PR c/43007
9561         * tree.c (get_unwidened): Handle constants.
9562         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
9563
9564 2010-02-10  Martin Jambor  <mjambor@suse.cz>
9565
9566         PR lto/42985
9567         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
9568         check for variable argument counts independently.
9569
9570 2010-02-10  Christian Bruel  <christian.bruel@st.com>
9571
9572         PR target/42841
9573         * config/sh/sh.c (find_barrier): Increase length for non delayed
9574         conditional branches.
9575
9576 2010-02-10  Christian Bruel  <christian.bruel@st.com>
9577
9578         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
9579
9580 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
9581
9582         * builtins.c (set_builtin_user_assembler_name): Also handle
9583         ffs if int is smaller than word.
9584
9585 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
9586
9587         PR middle-end/42973
9588         * ira-conflicts.c (get_dup): Remove.
9589         (process_reg_shuffles): Add new parameter.  Use it as an
9590         additional guard for copy generation.
9591         (add_insn_allocno_copies): Rewrite.
9592
9593 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
9594
9595         * common.opt (fsched2-use-traces): Preserved for backward
9596         compatibility.
9597         * doc/invoke.texi: Remove the documentation about option
9598         -fsched2-use-traces.
9599         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
9600         flag_sched2_use_traces.
9601         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
9602         the backward compatibility flag section.
9603
9604 2010-02-09  Richard Guenther  <rguenther@suse.de>
9605
9606         PR tree-optimization/43008
9607         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
9608         make HEAP variables initialized from global memory if they
9609         are not known builtin functions.
9610         (find_func_aliases): Adjust.
9611
9612 2010-02-09  Richard Guenther  <rguenther@suse.de>
9613
9614         PR tree-optimization/43000
9615         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
9616         arithmetic manually.
9617
9618 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
9619
9620         PR tree-optimization/42931
9621         * tree-loop-linear.c (try_interchange_loops): Don't call
9622         double_int_mul if estimated_loop_iterations failed.
9623
9624 2010-02-08  Martin Jambor  <mjambor@suse.cz>
9625
9626         PR middle-end/42898
9627         * tree-sra.c (build_accesses_from_assign): Do not mark in
9628         should_scalarize_away_bitmap if stmt has volatile ops.
9629         (sra_modify_assign): Do not process assigns piecemeal if if stmt
9630         has volatile ops.
9631
9632 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
9633
9634         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
9635
9636 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
9637
9638         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
9639         before the pattern.
9640
9641 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
9642
9643         PR middle-end/42946
9644         * df-core.c (df_finish_pass): Change type of saved_flags to int.
9645
9646 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
9647
9648         PR middle-end/42988
9649         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
9650         to unknown_dependence.
9651         (graphite_legal_transform_dr): Handle the unknown_dependence.
9652         (graphite_carried_dependence_level_k): Same.
9653
9654 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
9655
9656         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
9657
9658 2010-02-07  Richard Guenther  <rguenther@suse.de>
9659
9660         PR middle-end/42991
9661         * expr.c (get_inner_reference): Always initialize *pbitsize.
9662
9663 2010-02-07  Richard Guenther  <rguenther@suse.de>
9664
9665         PR middle-end/42956
9666         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
9667         new ARRAY_REFs on variable size element or minimal index arrays.
9668         Complete.
9669         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
9670         gimple_fold_indirect_ref.
9671
9672 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
9673
9674         PR target/42957
9675         * arm.c (arm_override_options): Just return if the user has specified
9676         an invalid fpu name.
9677
9678 2010-02-03  Jason Merrill  <jason@redhat.com>
9679
9680         PR c++/42870
9681         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
9682         i386_pe_maybe_record_exported_symbol.
9683
9684 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
9685
9686         PR target/42924
9687         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
9688         (pa_delegitimize_address): New function.
9689
9690 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
9691
9692         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
9693         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
9694
9695 2010-02-05  Richard Guenther  <rguenther@suse.de>
9696
9697         PR lto/42762
9698         * lto-streamer-in.c (get_resolution): Deal with references
9699         to undefined functions.
9700
9701 2010-02-05  Richard Guenther  <rguenther@suse.de>
9702
9703         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
9704         (fold_const_aggregate_ref): Likewise.
9705         (ccp_fold_stmt): Substitute loads.
9706         (maybe_fold_reference): Verify types before substituting.
9707         Unshare properly.
9708         (fold_gimple_assign): Unshare properly.
9709         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
9710
9711 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
9712
9713         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
9714         for rs6000_gen_cell_microcode.
9715
9716 2010-02-04  Richard Guenther  <rguenther@suse.de>
9717
9718         PR rtl-optimization/42952
9719         * dse.c (const_or_frame_p): Remove MEM handling.
9720
9721 2010-02-04  Nick Clifton  <nickc@redhat.com>
9722
9723         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
9724         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
9725         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
9726         (mn10300_asm_output_mi_thunk): New function.
9727         (mn10300_can_output_mu_thunk): New function.
9728         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
9729         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
9730         (FUNCTION_ARG): Delete incorrect comment.
9731
9732 2010-02-03  Jason Merrill  <jason@redhat.com>
9733
9734         PR c++/40138
9735         * fold-const.c (operand_equal_p): Handle erroneous types.
9736
9737 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
9738
9739         * config/h8300/h8300.md (can_delay): Fix attibute condition.
9740
9741 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
9742
9743         PR rtl-optimization/42941
9744         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
9745         of xmalloc.
9746
9747 2010-02-03  Jason Merrill  <jason@redhat.com>
9748
9749         PR c++/35652
9750         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
9751
9752 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
9753
9754         PR debug/42896
9755         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
9756         (cselib_reset_table): Renamed from...
9757         (cselib_reset_table_with_next_value): ... this.
9758         (cselib_get_next_uid): Renamed from...
9759         (cselib_get_next_unknown_value): ... this.
9760         * cselib.c (next_uid): Renamed from...
9761         (next_unknown_value): ... this.
9762         (cselib_clear_table): Adjust.
9763         (cselib_reset_table): Adjust.  Renamed from...
9764         (cselib_reset_table_with_next_value): ... this.
9765         (cselib_get_next_uid): Adjust.  Renamed from...
9766         (cselib_get_next_unknown_value): ... this.
9767         (get_value_hash): Use hash.
9768         (cselib_hash_rtx): Likewise.
9769         (new_cselib_val): Adjust.  Set and dump uid.
9770         (cselib_lookup_mem): Pass next_uid as hash.
9771         (cselib_subst_to_values): Likewise.
9772         (cselib_log_lookup): Dump uid.
9773         (cselib_lookup): Pass next_uid as hash.  Adjust.
9774         (cselib_process_insn): Adjust.
9775         (cselib_init): Initialize next_uid.
9776         (cselib_finish): Adjust.
9777         (dump_cselib_table): Likewise.
9778         * dse.c (canon_address): Dump value uid.
9779         * print-rtl.c (print_rtx): Print value uid.
9780         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
9781         (dvuid): New type.
9782         (dv_uid): New function, sort of renamed from...
9783         (dv_htab_hash): ... this, reimplemented in terms of it and...
9784         (dv_uid2hash): ... this.  New.
9785         (variable_htab_eq): Drop excess assertions.
9786         (tie_break_pointers): Removed.
9787         (canon_value_cmp): Compare uids.
9788         (variable_post_merge_New_vals): Print uids.
9789         (vt_add_function_parameters): Adjust.
9790         (vt_initialize): Reset table.  Adjust.
9791
9792 2010-02-03  Richard Guenther  <rguenther@suse.de>
9793
9794         PR tree-optimization/42944
9795         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
9796         (call_may_clobber_ref_p_1): Likewise.  Properly handle
9797         malloc and calloc clobbering errno.
9798
9799 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
9800
9801         * doc/invoke.texi: Fix name of sched1 dump.
9802
9803         * opts.c (decode_options): Set flag_tree_switch_conversion
9804         only conditionally on optimize >= 2.
9805
9806         * gcse.c: Assorted comment fixes in pass description.
9807
9808 2010-02-03  Anthony Green  <green@moxielogic.com>
9809
9810         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
9811         nop padding in order to maintain alignment of storage location of
9812         target function address.
9813         (moxie_trampoline_init): Store target function address at newly
9814         aligned location.
9815         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
9816         to 32.
9817         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
9818
9819 2010-02-03  Richard Guenther  <rguenther@suse.de>
9820
9821         PR middle-end/42927
9822         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
9823
9824 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9825
9826         * config.gcc: Reenable check for obsolete targets.
9827         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
9828         mips-sgi-irix6.[0-4]*.
9829
9830 2010-02-02  Nick Clifton  <nickc@redhat.com>
9831
9832         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
9833         constant size of 4 as being the same as 0.
9834         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
9835         can take values in the range 0..4.
9836
9837 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
9838
9839         PR java/41991
9840         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
9841         as _darwin10_Unwind_FindEnclosingFunction().
9842         * libgcc-libsystem.ver: New.
9843
9844 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
9845
9846         PR target/41399
9847         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
9848         implicitly set registers.
9849
9850 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
9851
9852         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
9853         (arm_override_options): Allow automatic selection of the thread
9854         pointer register if thumb2.
9855         (legitimize_pic_address): Improve code sequences for Thumb2.
9856         (arm_call_tls_get_addr): Likewise.
9857         (legitimize_tls_address): Likewise.
9858         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
9859         (pic_load_addr_32bit): ... this.  New named pattern.
9860         * thumb2.md (pic_load_addr_thumb2): Delete.
9861         (pic_load_dot_plus_four): Delete.
9862         (tls_load_dot_plus_four): New named pattern.
9863
9864 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9865
9866         PR libgomp/29986
9867         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
9868         Document fix for TLS bug.
9869
9870 2010-01-31  Richard Guenther  <rguenther@suse.de>
9871
9872         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
9873         conservatively correct.
9874
9875 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9876
9877         PR target/42850
9878         Revert:
9879         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9880
9881         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
9882
9883 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9884
9885         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
9886
9887 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
9888
9889         * config.gcc: Adjust order of makefile fragments for mingw targets.
9890
9891 2010-01-31  Richard Guenther  <rguenther@suse.de>
9892
9893         PR middle-end/42898
9894         * gimplify.c (gimplify_init_constructor): For volatile LHS
9895         initialize a temporary.
9896
9897 2010-01-31  Matthias Klose  <doko@ubuntu.com>
9898
9899         * configure.ac: Fix __stack_chk_fail check for cross builds configured
9900         --with-headers
9901         * configure: Regenerate.
9902
9903 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
9904
9905         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
9906         the same alias set and their sizes different constantness.
9907         (aliasing_component_refs_p): Revert 2009-10-24 change.
9908
9909 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9910
9911         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
9912         unused.
9913
9914 2010-01-29  Richard Guenther  <rguenther@suse.de>
9915
9916         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
9917         Assert we successfully updated the call.
9918
9919 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
9920
9921         PR rtl-optimization/42889
9922         * df.h (df_set_bb_dirty_nonlr): New prototype.
9923         * df-core.c (df_set_bb_dirty_nonlr): New function.
9924         * df-scan.c (df_insn_rescan): Call it instead of
9925         df_set_bb_dirty for DEBUG_INSNs.
9926
9927 2010-01-29  Richard Guenther  <rguenther@suse.de>
9928
9929         PR middle-end/37448
9930         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
9931         quadratic behavior in most cases.
9932
9933 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
9934
9935         PR target/42891
9936         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
9937         in the call to gen_x86_movsicc_0_m1.
9938
9939 2010-01-28  Richard Guenther  <rguenther@suse.de>
9940
9941         PR tree-optimization/42871
9942         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
9943
9944 2010-01-28  Richard Guenther  <rguenther@suse.de>
9945
9946         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
9947         into call arguments.
9948
9949 2010-01-28  Richard Guenther  <rguenther@suse.de>
9950
9951         PR middle-end/42883
9952         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
9953         the forwarder if the destination is an EH landing pad.
9954
9955 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
9956
9957         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
9958         block list passed to gimple_duplicate_sese_tail.
9959         (parallelize_loops): Avoid parallelization when the function
9960         has_nonlocal_label.
9961         Avoid parallelization when the preheader is IRREDUCIBLE.
9962         Try to optimize when estimated_loop_iterations_int is unresolved.
9963         Add the loop's location to the dump file.
9964         * tree-cfg.c (add_phi_args_after_redirect): Remove.
9965         (gimple_duplicate_sese_tail): Remove the check for the latch.
9966         Redirect nexits to the exit block.
9967         Remove handling of the incoming edges to the latch.
9968         Redirect the backedge from the copied latch to the exit bb.
9969
9970 2010-01-28  Michael Matz  <matz@suse.de>
9971
9972         PR target/42881
9973         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
9974         Wrap force_reg into a sequence, emit it before user.
9975
9976 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
9977
9978         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
9979         (arm_rev): New.
9980         (arm_legacy_rev): Likewise.
9981         (thumb_legacy_rev): Likewise.
9982
9983 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
9984
9985         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
9986         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
9987         on MEM's address failed, try avoid_constant_pool_reference and
9988         recurse if it returned something different.
9989         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
9990         address, try avoid_constant_pool_reference and recurse if it
9991         returned something different.
9992         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
9993         address and avoid_constant_pool_reference returned something
9994         different, don't set have_address.
9995
9996 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
9997
9998         PR debug/42861
9999         * var-tracking.c (val_store): Add modified argument, obey it.
10000         Adjust callers.
10001         (count_uses): Move down logging of main.
10002         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
10003         don't need resolution.
10004         (emit_notes_in_bb): Likewise.
10005
10006 2010-01-27  Richard Guenther  <rguenther@suse.de>
10007
10008         PR middle-end/42878
10009         * tree-inline.c (remap_decl): Delay remapping of SSA name
10010         default definitions until we need them.
10011
10012 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
10013
10014         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
10015         (rs6000_delegitimize_address): New function.
10016
10017         * config/s390/s390.c (s390_delegitimize_address): Call
10018         delegitimize_mem_from_attrs.
10019
10020         PR middle-end/42874
10021         * tree-inline.c (cannot_copy_type_1): Removed.
10022         (copy_forbidden): Don't forbid copying of functions containing
10023         records/unions with variable length fields.
10024
10025 2010-01-27  Christian Bruel  <christian.bruel@st.com>
10026
10027         Revert:
10028         PR target/42841
10029         * config/sh/sh.c (find_barrier): Increase length for non delayed
10030         conditional branches.
10031
10032 2010-01-27  Matthias Klose  <doko@ubuntu.com>
10033
10034         * configure.ac (gnu-unique-object): Fix ldd version check.
10035         * configure: Regenerate.
10036
10037 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10038
10039         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
10040         HAVE_GNU_AS value.
10041         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
10042         Test for HAVE_GNU_AS value.
10043
10044 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10045
10046         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
10047         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
10048         INT64_TYPE): Define.
10049         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
10050         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10051         INT_LEAST64_TYPE): Define.
10052         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
10053         UINT_LEAST64_TYPE): Define.
10054         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
10055         INT_FAST64_TYPE): Define.
10056         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10057         UINT_FAST64_TYPE): Define.
10058         (INTMAX_TYPE, UINTMAX_TYPE): Define.
10059         (INTPTR_TYPE, UINTPTR_TYPE): Define.
10060         (SIG_ATOMIC_TYPE): Define.
10061
10062 2010-01-26  Richard Guenther  <rguenther@suse.de>
10063
10064         * df-scan.c (df_scan_set_bb_info): Remove assert.
10065         (df_insn_rescan_debug_internal): Merge asserts.
10066         (df_install_ref): Likewise.
10067         (df_mark_reg): Use bitmap_set_range.
10068         (df_hard_reg_used_p): Remove assert.
10069         (df_hard_reg_used_count): Likewise.
10070
10071 2010-01-26  Richard Guenther  <rguenther@suse.de>
10072
10073         PR rtl-optimization/42685
10074         * web.c (web_main): Ignore DEBUG_INSNs.
10075
10076 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
10077
10078         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
10079
10080         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
10081         Fix types of fndecl and arglist parameters.
10082
10083 2010-01-26  Richard Guenther  <rguenther@suse.de>
10084
10085         PR middle-end/42806
10086         * tree-eh.c (unsplit_eh): Skip debug insns.
10087
10088 2010-01-26  Richard Guenther  <rguenther@suse.de>
10089
10090         PR tree-optimization/42250
10091         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
10092
10093 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
10094
10095         PR fortran/42866
10096         * omp-low.c (expand_omp_sections): Only use single_pred if
10097         l2_bb is single_pred_p.
10098
10099 2010-01-25  Christian Bruel  <christian.bruel@st.com>
10100
10101         PR target/42841
10102         * config/sh/sh.c (find_barrier): Increase length for non delayed
10103         conditional branches.
10104         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
10105
10106 2010-01-24  David S. Miller  <davem@davemloft.net>
10107
10108         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
10109         define if not using GAS.
10110         * config/sparc/sparc.c (sparc_elf_asm_named_section):
10111         Likewise.  Delete SECTION_MERGE code, which is only applicable
10112         when using GAS.
10113
10114 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
10115
10116         PR c++/42748
10117         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
10118         mangling of va_list in system headers.
10119
10120 2010-01-23  Toon Moene  <toon@moene.org>
10121
10122         * tree-predcom.c (combine_chains): Return NULL, not false.
10123
10124 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
10125
10126         * tree-loop-distribution.c (distribute_loop): Fix declaration and
10127         initialization of variable res to agree with return type.
10128
10129 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
10130
10131         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
10132         * tree-sra.c: Add include of expr.h.
10133
10134 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
10135
10136         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
10137         insert the debug stmt on the single non-EH edge from the stmt.
10138
10139 2010-01-22  Richard Henderson  <rth@redhat.com>
10140
10141         PR tree-opt/42833
10142         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
10143         the RHS until after generate_subtree_copies has insertted its
10144         code before the current statement.
10145
10146 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
10147
10148         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
10149
10150         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
10151
10152 2010-01-21  Martin Jambor  <mjambor@suse.cz>
10153
10154         PR tree-optimization/42585
10155         * tree-sra.c (struct access): New field grp_total_scalarization.
10156         (dump_access): Dump the new field.
10157         (should_scalarize_away_bitmap): New variable.
10158         (cannot_scalarize_away_bitmap): Likewise.
10159         (sra_initialize): Allocate new bitmaps.
10160         (sra_deinitialize): Free new bitmaps.
10161         (create_access_1): New function.
10162         (create_access): Parts moved to create_access_1.
10163         (type_consists_of_records_p): New function.
10164         (completely_scalarize_record): Likewise.
10165         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
10166         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
10167         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
10168         access.
10169         (analyze_all_variable_accesses): Completely scalarize small eligible
10170         records.
10171
10172 2010-01-21  Martin Jambor  <mjambor@suse.cz>
10173
10174         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
10175
10176 2010-01-21  Andrew Haley  <aph@redhat.com>
10177
10178         * gcc.c (process_command): Move lang_specific_driver before
10179         setting cc_libexec_prefix.
10180
10181 2010-01-21  Richard Guenther  <rguenther@suse.de>
10182
10183         PR middle-end/19988
10184         * fold-const.c (negate_expr_p): Pretend only negative
10185         real constants are easily negatable.
10186
10187 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
10188             Jason Merrill  <jason@redhat.com>
10189
10190         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
10191         (TYPE_TRANSPARENT_AGGR): this, for union and record.
10192         * calls.c (initialize argument_information): Handle it.
10193         * c-common.c (handle_transparent_union_attribute): Use new name.
10194         * c-decl.c (finish_struct): Ditto.
10195         * c-typeck.c (type_lists_compatible_p): Ditto.
10196         (convert_for_assignment): Use new name and also handle record.
10197         * function.c (aggregate_value_p): Handle it.
10198         (pass_by_reference): Ditto.
10199         (assign_parm_data_types): Ditto.
10200         * print-tree.c (print_node): Ditto.
10201         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
10202         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
10203         * tree.c (first_field): New fn.
10204
10205 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
10206
10207         PR target/42818
10208         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
10209         even when linking statically, for now.
10210
10211 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
10212
10213         PR debug/42715
10214         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
10215         without a cselib val.
10216         (count_uses): Accept MO_VAL_SET with no val on stores.
10217         (add_stores): Likewise.
10218
10219 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10220
10221         * var-tracking.c (check_value_val): Add a compile time assertion.
10222         (dv_is_decl_p): Simplify.
10223         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
10224         gcc_assert if ENABLE_CHECKING.
10225
10226 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
10227
10228         PR debug/42782
10229         * var-tracking.c: Include tree-flow.h.
10230         (mem_dies_at_call): New.
10231         (dataflow_set_preserve_mem_locs): Use it.
10232         (dataflow_set_remove_mem_locs): Likewise.
10233         (dump_var): Renamed from dump_variable.  Adjust all callers.
10234         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
10235         * Makefile.in (var-tracking.o): Adjust deps.
10236
10237 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
10238
10239         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
10240
10241 2010-01-20  Richard Guenther  <rguenther@suse.de>
10242
10243         PR tree-optimization/42717
10244         * tree-ssa-dce.c (get_live_post_dom): Remove.
10245         (forward_edge_to_pdom): Take an arbitrary edge to copy
10246         degenerate PHI args from.
10247         (remove_dead_stmt): Use the first post-dominator even if it
10248         does not contain live statements as redirection destination.
10249
10250 2010-01-20  Richard Guenther  <rguenther@suse.de>
10251
10252         * tree-inline.c (estimate_num_insns): Handle EH builtins.
10253
10254 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10255
10256         * sel-sched.c (create_speculation_check): Remove set but not used
10257         variable twin.
10258         (try_transformation_cache): Remove set but not used variable ds.
10259         (calculate_privileged_insns): Remove set but not used variables
10260         cur_insn and min_spec_insn.
10261         (find_best_expr): Remove set but not used variable avail_n.
10262         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
10263         variable e.
10264         * cgraphunit.c (assemble_thunk): Remove set but not used variable
10265         false_label.
10266         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
10267         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
10268         new_scop_exit_edge.
10269
10270 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
10271
10272         PR bootstrap/42786
10273         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
10274         cpu types.  Add support for *-sse3 cpu types.
10275         (x86_64-*-*): Ditto.
10276
10277 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10278
10279         PR middle-end/42803
10280         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
10281         argument, call initializer_constant_valid_p_1 instead of
10282         initializer_constant_valid_p, pass CACHE to it, return NULL
10283         immediately if first call returns NULL.
10284         (initializer_constant_valid_p_1): New function.
10285         (initializer_constant_valid_p): Use it.
10286
10287 2010-01-20  Thomas Quinot  <quinot@adacore.com>
10288
10289         * tree.def (PLACEHOLDER_EXPR): Fix comment.
10290
10291 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10292
10293         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
10294         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
10295         (loc_list_from_tree): Don't handle unsigned division.  Handle
10296         signed modulo using DW_OP_{over,over,div,mul,minus}.
10297         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
10298         modulo instead of signed.
10299
10300 2010-01-20  DJ Delorie  <dj@redhat.com>
10301
10302         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
10303         (Fpa): Pass it
10304         (h8300_emit_stack_adjustment): Propogate it.
10305         (push): Pass it.
10306         (h8300_expand_prologue): Likewise.
10307         (h8300_expand_epilogue): Likewise.
10308
10309 2010-01-19  Michael Matz  <matz@suse.de>
10310
10311         PR tree-optimization/41783
10312         * tree-data-ref.c (toplevel): Include flags.h.
10313         (dump_data_dependence_relation):  Also dump the inputs if the
10314         result will be unknown.
10315         (split_constant_offset_1): Look through some conversions.
10316         * tree-predcom.c (determine_roots_comp): Restart a new chain if
10317         the offset from last element is too large.
10318         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
10319         (reassociate_to_the_same_stmt): Handle vector registers.
10320         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
10321         (e.g. conversions).
10322         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
10323         wide_prolog_niters argument, emit widening instructions.
10324         (vect_do_peeling_for_alignment): Adjust caller, use widened
10325         variant of the iteration cound.
10326         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
10327
10328 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10329
10330         PR target/38697
10331         * config/arm/neon-testgen.m (emit_automatics): New parameter
10332         features. Adjust for Fixed_return_reg feature.
10333         (test_intrinsic): Call emit_automatics with new feature.
10334         * config/arm/neon.ml: Update copyright years.
10335         (features): New Fixed_return_reg feature.
10336         (ops): Update feature for Vget_low.
10337
10338 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
10339
10340         PR tree-optimization/42719
10341         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
10342         stmt uses.
10343
10344         PR debug/42728
10345         * fwprop.c (all_uses_available_at): Return false if def_set dest
10346         is a REG that is used in def_insn.
10347
10348 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
10349
10350         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
10351
10352         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
10353         Add argument names.
10354
10355         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
10356
10357         * target.h (struct gcc_target) <secondary_reload>: Change type
10358         of last argument to secondary_reload_info *.
10359
10360 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
10361
10362         PR target/42774
10363         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
10364         memory references with unaligned offsets.  Remove CQImode handling.
10365         (unaligned_memory_operand): Return 1 for memory references with
10366         unaligned offsets.  Remove CQImode handling.
10367
10368 2010-01-18  Richard Guenther  <rguenther@suse.de>
10369
10370         PR middle-end/39954
10371         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
10372         builtin calls.
10373
10374 2010-01-18  Richard Guenther  <rguenther@suse.de>
10375
10376         PR tree-optimization/42781
10377         * tree-ssa-structalias.c (find_what_var_points_to): Skip
10378         restrict processing only if the original variable was artificial.
10379
10380 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
10381
10382         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
10383         find number of popped argument bytes.
10384
10385         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
10386         Fix the text that describes the return value for invalid insns.
10387
10388         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
10389
10390         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
10391         Clarify what 'cost of the -dependence' is.  Fix quoting.
10392
10393         * toplev.c (default_get_pch_validity): Rename argument to "sz".
10394         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
10395
10396 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
10397
10398         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
10399         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
10400
10401 2010-01-17  Richard Guenther  <rguenther@suse.de>
10402
10403         PR middle-end/42248
10404         * function.c (split_complex_args): Take a VEC to modify.
10405         (assign_parms_augmented_arg_list): Build a VEC instead of
10406         a chain of PARM_DECLs.
10407         (assign_parms_unsplit_complex): Take a VEC of arguments.
10408         Do not fixup unmodified parms.
10409         (assign_parms): Deal with the VEC.
10410         (gimplify_parameters): Likewise.
10411
10412 2010-01-17  Richard Guenther  <rguenther@suse.de>
10413
10414         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
10415         node existence check.
10416         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
10417         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
10418         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
10419         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
10420         (gimple_execute_on_growing_pred): Likewise.
10421
10422 2010-01-17  Richard Guenther  <rguenther@suse.de>
10423
10424         PR tree-optimization/42773
10425         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
10426         (compute_antic_aux): Likewise.
10427         (compute_partial_antic_aux): Likewise.
10428
10429 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
10430
10431         PR debug/42767
10432         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
10433         and US_TRUNCATE.
10434
10435 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
10436
10437         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
10438         appearance.
10439
10440         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
10441         Fix markup for strict argument.
10442
10443         (TARGET_SCHED_REORDER2): Fix argument types.
10444
10445         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
10446         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
10447
10448         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
10449         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
10450
10451         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
10452         Add argument name.
10453
10454         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
10455         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
10456         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
10457         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
10458         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
10459
10460         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
10461
10462         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
10463
10464         (TARGET_ASM_RELOC_RW_MASK): Add return type.
10465         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
10466
10467         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
10468
10469         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
10470         Use prototype.
10471
10472         (TARGET_ASM_NAMED_SECTION): Fix argument list.
10473
10474         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
10475         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
10476
10477         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
10478
10479         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
10480
10481         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
10482         referring to it.  Fix language.
10483
10484         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
10485
10486         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
10487
10488         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
10489
10490         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
10491
10492         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
10493         '@var{stream}.  Remove stray 'and'.
10494
10495         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
10496
10497         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
10498
10499         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
10500
10501         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
10502         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
10503
10504         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
10505         Fix description of return value.
10506         Rename argument "sz" to "len."
10507
10508         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
10509         Clarify meaning of 'true' return value.
10510
10511         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
10512
10513         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
10514         rep_mode versus mode_rep.
10515
10516         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
10517
10518         (TARGET_BUILTIN_DECL): Fix name.
10519
10520         (TARGET_COMMUTATIVE_P): Fix type of first argument.
10521
10522         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
10523
10524         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
10525
10526         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
10527
10528         (TARGET_RELAXED_ORDERING): Use @deftypevr.
10529
10530         (TARGET_GET_DRAP_RTX): Note that this is a hook.
10531         Clarify language.
10532
10533         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
10534         Rename argument tm_fn to md_fn.
10535
10536         (TARGET_OPTION_PRINT): Fix argument list.
10537
10538 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
10539
10540         PR target/42664
10541         * config/i386/i386.c (ix86_fixup_binary_operands):
10542         Revert FMA4 fixup of operands.
10543
10544 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10545
10546         PR gcc/42525
10547         * Makefile.in (write_entries_to_file, install-plugin):
10548         Use \012 instead of \n with tr.
10549
10550 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
10551
10552         * configure.ac (HAVE_AS_REF): New C macro.
10553         * configure: Regenerate.
10554         * config.in: Likewise.
10555         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
10556         if HAVE_AS_REF.
10557         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
10558         if HAVE_AS_REF.
10559
10560 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
10561
10562         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
10563
10564         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
10565
10566         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
10567
10568         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
10569
10570         (TARGET_IN_SMALL_DATA_P): Fix argument type.
10571
10572         (TARGET_BINDS_LOCAL_P): Fix argument type.
10573
10574         (TARGET_ASM_FILE_END): Use prototype.
10575
10576         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
10577
10578         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
10579
10580         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
10581
10582         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
10583
10584         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
10585         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
10586
10587         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
10588         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
10589
10590         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
10591         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
10592         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
10593         (TARGET_ADDR_SPACE_CONVERT): Likewise.
10594
10595         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
10596
10597         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
10598
10599         (TARGET_INIT_BUILTINS): Use prototype.
10600
10601         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
10602         Put 'const char *' in braces.  Fix parameter types.
10603         (TARGET_INVALID_CONVERSION): Fix parameter types.
10604         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
10605         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
10606
10607         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
10608         Fix argument type.
10609
10610         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
10611
10612         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
10613
10614 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
10615
10616         * doc/tm.texi (TARGET_HELP): Fix return type.
10617
10618         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
10619         in braces.  Fix argument types.
10620
10621         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
10622
10623         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
10624
10625         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
10626
10627         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
10628         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
10629
10630         (TARGET_MANGLE_TYPE): Fix argument types.
10631
10632         (TARGET_IRA_COVER_CLASSES): Use prototype.
10633
10634         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
10635
10636         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
10637
10638         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
10639
10640         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
10641
10642         (TARGET_CALLEE_COPIES): Fix argument types.
10643
10644         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
10645
10646         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
10647
10648         (TARGET_FUNCTION_VALUE): Fix argument types.
10649
10650         (TARGET_RETURN_IN_MSB): Fix argument type.
10651
10652         (TARGET_RETURN_IN_MEMORY): Fix argument types.
10653
10654         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
10655
10656         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
10657
10658         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
10659         agree with return type.
10660
10661         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
10662
10663 2010-01-15  Jing Yu  <jingyu@google.com>
10664
10665         PR rtl-optimization/42691
10666         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
10667         a pseudo to a constant and are merged, and adjust comments.
10668
10669 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
10670
10671         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
10672
10673 2010-01-15  Richard Guenther  <rguenther@suse.de>
10674
10675         PR middle-end/42739
10676         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
10677         labels of computed or non-local gotos to the destination.
10678         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
10679         landing pad label is the first label.
10680
10681 2010-01-15  Richard Guenther  <rguenther@suse.de>
10682
10683         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
10684
10685 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
10686
10687         PR target/42747
10688         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
10689         to allow generation of the xssqrtdp instruction on power7.
10690         (sqrtdf2_fpr): Ditto.
10691
10692 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10693
10694         PR middle-end/42674
10695         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
10696         functions with noreturn attribute.
10697
10698         PR c++/42608
10699         * varasm.c (declare_weak): Add weak attribute to decl if it
10700         doesn't have one already.
10701         (assemble_external): Only add decls to weak_decls if they also
10702         have weak attribute.
10703
10704 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
10705
10706         * var-tracking.c (var_reg_delete): Don't delete the association
10707         between REGs and values or one-part variables if the register
10708         isn't clobbered.
10709
10710 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10711
10712         PR debug/42657
10713         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
10714         because its first operand is a non-localized variable.
10715
10716 2010-01-14  Martin Jambor  <mjambor@suse.cz>
10717
10718         PR tree-optimization/42706
10719         * tree-sra.c (encountered_recursive_call): New variable.
10720         (encountered_unchangable_recursive_call): Likewise.
10721         (sra_initialize): Initialize both new variables.
10722         (callsite_has_enough_arguments_p): New function.
10723         (scan_function): Call decl and flags check only for IPA-SRA, check
10724         whether there is a recursive call and whether it has enough arguments.
10725         (all_callers_have_enough_arguments_p): New function.
10726         (convert_callers): Look for recursive calls only when
10727         encountered_recursive_call is set.
10728         (ipa_early_sra): Bail out either if
10729         !all_callers_have_enough_arguments_p or
10730         encountered_unchangable_recursive_call.
10731
10732 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10733
10734         * sel-sched.c: Add 2010 to copyright years.
10735         * sel-sched-ir.c: Likewise.
10736         * sel-sched-ir.h: Likewise.
10737
10738 2010-01-14  Martin Jambor  <mjambor@suse.cz>
10739
10740         PR tree-optimization/42714
10741         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
10742         constructors specially.
10743
10744 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10745
10746         * config/i386/drivers-i386.c (detect_caches_intel):
10747         Add l2sizekb parameter and fill in.
10748         (host_detect_local_cpu): Add l2sizekb, fill in.
10749         Add Atom small cache heuristic.
10750
10751 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10752
10753         * config/i386/drivers-i386.c (detect_caches_cpuid4):
10754         Add level3 parameter and fill in.
10755         (detect_caches_intel): Handle level3 cache.
10756
10757 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10758
10759         * config/i386/drivers-i386.c (host_detect_local_cpu):
10760         Fix core duo detection.
10761
10762 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10763
10764         * config/i386/drivers-i386.c (host_detect_local_cpu):
10765         Fix Atom detection.
10766
10767 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10768
10769         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
10770         (rs6000_variable_issue_1): this.  Use...
10771         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
10772
10773 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10774
10775         * sel-sched-ir.c (sel_restore_other_notes): Rename to
10776         sel_restore_notes.  Update all callers.  Call reemit_notes
10777         for all insns.
10778
10779 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10780
10781         PR rtl-optimization/42246
10782         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
10783         loops.
10784
10785 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10786
10787         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
10788         all successors is the same as number of successors in current region.
10789
10790 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10791
10792         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
10793         to rename is not separable.  Otherwise check that its LHS is not NULL.
10794
10795 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10796
10797         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
10798
10799 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10800
10801         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
10802         available registers when failed to discover LHS register class.
10803         Fix indentation.  Update comment.
10804
10805 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10806             Alexander Monakov  <amonakov@ispras.ru>
10807
10808         PR rtl-optimization/42389
10809         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
10810         to can_issue_more.
10811         (advance_state_on_fence): Likewise.
10812         (sel_target_adjust_priority): Print debug output only when
10813         sched_verbose >= 4, not 2.
10814         (get_expr_cost): Do not issue all unique insns on the next cycle.
10815         (fill_insns): Initialize can_issue_more from the value saved
10816         with the fence.
10817         * sel-sched-ir.c (flist_add): New parameter issue_more.
10818         Init FENCE_ISSUE_MORE with it.
10819         (merge_fences): Likewise.
10820         (init_fences): Update call to flist_add.
10821         (add_to_fences, add_clean_fence_to_fences)
10822         (add_dirty_fence_to_fences): Likewise.
10823         (move_fence_to_fences): Update call to merge_fences.
10824         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
10825         sched groups.
10826         * sel-sched-ir.h (struct _fence): New field issue_more.
10827         (FENCE_ISSUE_MORE): New accessor macro.
10828
10829 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10830
10831         PR rtl-optimization/42388
10832         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
10833         that have no predecessors nor successors.  Do not call move_bb_info
10834         for empty blocks outside of current region.
10835
10836 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10837
10838         PR rtl-optimization/42294
10839         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
10840         * sel-sched.c (move_exprs_to_boundary): Transitively add all
10841         originators' originators.
10842
10843 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10844
10845         PR rtl-optimization/39453
10846         PR rtl-optimization/42246
10847         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
10848         for pipelining_p.
10849         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
10850
10851 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10852             Alexander Monakov  <amonakov@ispras.ru>
10853
10854         PR middle-end/42245
10855         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
10856         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
10857         argument.  Update all callers.
10858         (tidy_control_flow): ... and here.  Recompute topological order
10859         of basic blocks in region if necessary.
10860         (sel_redirect_edge_and_branch): Change return type.  Return true
10861         if topological order might have been invalidated.
10862         (purge_empty_blocks): Export and move from...
10863         * sel-sched.c (purge_empty_blocks): ... here.
10864         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
10865         (maybe_tidy_empty_bb): Delete prototype.
10866         (purge_empty_blocks): Declare.
10867
10868 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
10869
10870         PR rtl-optimization/42249
10871         * sel-sched.c (try_replace_dest_reg): When chosen register
10872         and original register is the same, do not bail out early, but
10873         still check all original insns for validity of replacing destination
10874         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
10875         in this case.
10876
10877 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10878
10879         PR c/42721
10880         Port from no-undefined-overflow branch:
10881         2009-03-09  Richard Guenther  <rguenther@suse.de>
10882
10883         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
10884
10885 2010-01-14  Richard Guenther  <rguenther@suse.de>
10886
10887         PR lto/42665
10888         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
10889
10890 2010-01-14  Ira Rosen  <irar@il.ibm.com>
10891
10892         PR tree-optimization/42709
10893         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
10894         as scalar type in creation of constant vector operand.
10895
10896 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10897
10898         PR testsuite/42414
10899         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
10900         (check-parallel-%): Match `testsuite' directory component only
10901         at the end.
10902
10903 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
10904
10905         PR translation/39521
10906         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
10907         strings with _().
10908
10909 2010-01-13  Richard Guenther  <rguenther@suse.de>
10910
10911         PR tree-optimization/42730
10912         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
10913         offset zero.
10914
10915 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
10916
10917         PR target/pr42542
10918         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
10919         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
10920         them signed.
10921
10922 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
10923
10924         * config/bfin/libgcc-bfin.ver: Regenerate based on current
10925         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
10926         ___umulsi3_highpart.
10927
10928         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
10929         rather than schedule_insns if the pass is enabled.
10930
10931 2010-01-13  Martin Jambor  <mjambor@suse.cz>
10932
10933         PR tree-optimization/42704
10934         * tree-sra.c (sra_modify_assign): Do not delete assignments to
10935         SSA_NAMEs.
10936
10937 2010-01-13  Martin Jambor  <mjambor@suse.cz>
10938
10939         PR tree-optimization/42703
10940         * tree-sra.c (analyze_access_subtree): Check that we can build a
10941         reference to the original data within the aggregate.
10942
10943 2010-01-13  Richard Guenther  <rguenther@suse.de>
10944
10945         PR tree-optimization/42705
10946         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
10947
10948 2010-01-13  Richard Guenther  <rguenther@suse.de>
10949
10950         PR middle-end/42716
10951         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
10952
10953 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
10954
10955         PR debug/41371
10956         * var-tracking.c (values_to_unmark): New variable.
10957         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
10958         values_to_unmark vector.  Moved body to...
10959         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
10960         instead queue it into values_to_unmark vector.
10961         (vt_find_locations): Free values_to_unmark vector.
10962
10963 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
10964
10965         * config/s390/s390.c (override_options): Set
10966         default of max-pending-list-length to 256
10967
10968 2010-01-13  Richard Guenther  <rguenther@suse.de>
10969
10970         PR lto/42678
10971         * tree-pass.h (PROP_gimple_lcx): New.
10972         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
10973         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
10974         before the final cleanup_eh.
10975         (dump_properties): Dump PROP_gimple_lcx.
10976         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
10977         (tree_lower_complex_O0): Remove.
10978         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
10979         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
10980         tree_lower_complex, schedule TODO_update_ssa.
10981         * lto-streamer-out.c (output_function): Stream the functions
10982         properties.
10983         * lto-streamer-in.c (input_function): Likewise.
10984         (lto_read_body): Do not override them here.
10985
10986 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
10987
10988         PR c/42708
10989         * c-typeck.c (build_c_cast): Fold value cast to union type before
10990         wrapping it in a CONSTRUCTOR.
10991
10992 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
10993
10994         PR rtl-optimization/42699
10995         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
10996         involved.
10997
10998 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10999
11000         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
11001         SUBTARGET_WARN_UNUSED_SPEC): Move ...
11002         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
11003         SUBTARGET_WARN_UNUSED_SPEC): ... here
11004         * config/mips/iris5.h (LIBGCC_SPEC): Define.
11005
11006 2010-01-12  Julian Brown  <julian@codesourcery.com>
11007
11008         * config/arm/neon-schedgen.ml (Utils): Don't try to
11009         open missing module.
11010         (find_with_result): New.
11011
11012 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
11013
11014         PR debug/42662
11015         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
11016         sharing when canonicalizing ({lt,ge}u (plus a b) b).
11017
11018         PR tree-optimization/42645
11019         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
11020         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
11021         decl_map, set processing_debug_stmt to -1 and return name without
11022         any remapping.
11023
11024 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
11025
11026         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
11027         binutils version, and reword target configuration description.
11028
11029 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
11030
11031         * config/avr/avr.h (LINKER_NAME): Remove.
11032
11033 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
11034
11035         PR target/42416
11036         * config/rs6000/rs6000.c (rs6000_override_options): On targets
11037         that support VSX, warn for -mno-altivec if vsx is not disabled,
11038         and disable vsx.
11039
11040 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
11041             Shujing Zhao  <pearly.zhao@oracle.com>
11042
11043         PR translation/42469
11044         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
11045         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
11046         character between option name and help text.
11047         * c.opt (imultilib): Likewise.
11048
11049 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
11050
11051         * lto-streamer-out.c (output_unreferenced_globals): Output static
11052         variables.
11053
11054 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
11055
11056         PR rtl-optimization/42621
11057         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
11058         optimizing for size.
11059         (duplicate_computed_gotos): Remove now-redundant check.
11060
11061 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
11062
11063         PR target/37454
11064         * configure.ac: Save and restore LDFLAGS and LIBS
11065         * configure: Regenerate.
11066
11067 2010-01-10  Richard Guenther  <rguenther@suse.de>
11068
11069         PR middle-end/42667
11070         * builtins.c (fold_builtin_strlen): Add type argument and
11071         convert the resulting length to it.
11072         (fold_builtin_1): Adjust.
11073
11074 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
11075
11076         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
11077         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
11078         1 insn.
11079         (num_insns_constant_wide): Adjust for that change.
11080
11081 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11082
11083         PR debug/42631
11084         * web.c (union_defs): Add used argument, to combine uses of
11085         uninitialized regs.
11086         (entry_register): Adjust type and tests of used argument.
11087         (web_main): Widen used for new use.  Pass it to union_defs.
11088         * df.h (union_defs): Adjust prototype.
11089
11090 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11091
11092         PR debug/42630
11093         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
11094         uses in new incoming argument.  Free body.
11095         (reset_debug_uses_in_loop): New.
11096         (analyze_insn_to_expand_var): Call the latter if the former found
11097         anything.  Fix whitespace.  Reject invalid dest overlaps before
11098         going through all insns in the loop.
11099
11100 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11101
11102         PR debug/42629
11103         * haifa-sched.c (dying_use_p): Debug insns don't count.
11104
11105 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11106
11107         PR middle-end/42363
11108         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
11109         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
11110         (verify_gimple_call): Reject LHS in noreturn calls.
11111
11112 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11113
11114         PR debug/42604
11115         PR debug/42395
11116         * tree-vect-loop-manip.c (adjust_info): New type.
11117         (adjust_vec): New pointer to vector.
11118         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
11119         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
11120         (slpeel_update_phis_for_duplicate_loop): Use them.
11121         (slpeel_update_phi_nodes_for_guard1): Likewise.
11122         (slpeel_update_phi_nodes_for_guard2): Likewise.
11123         (slpeel_tree_peel_loop_to_edge): Likewise.
11124         (vect_update_ivs_after_vectorizer): Likewise.
11125
11126 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11127
11128         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
11129         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
11130
11131 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11132
11133         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
11134         bogus uninitialized warning.
11135
11136 2010-01-09  Richard Guenther  <rguenther@suse.de>
11137
11138         PR middle-end/42512
11139         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
11140         the evolution is compatible with the initial condition.
11141
11142 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
11143
11144         * gcc.c (process_command): Update copyright notice dates.
11145         * gcov.c (print_version): Likewise.
11146         * gcov-dump.c (print_version): Likewise.
11147         * mips-tfile.c (main): Likewise.
11148         * mips-tdump.c (main): Likewise.
11149
11150 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
11151
11152         PR target/41885
11153         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
11154         (rotlhi3): Delete.
11155         (rotlhi3_8): Delete.
11156         (rotlsi3): Delete.
11157         (rotlsi3_8): Delete.
11158         (rotlsi3_16): Delete.
11159         (rotlsi3_24): Delete.
11160         (rotl<mode>3): New.
11161         (*rotw<mode>3): New.
11162         (*rotb<mode>3): New.
11163         * config/avr/avr.c (avr_rotate_bytes): New function.
11164         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
11165
11166 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
11167
11168         PR target/37454
11169         * configure.ac: Modify -rdynamic check.
11170         * configure: Regenerate.
11171
11172 2010-01-08  DJ Delorie  <dj@redhat.com>
11173
11174         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
11175         register popping order.
11176
11177 2010-01-08  Richard Guenther  <rguenther@suse.de>
11178
11179         PR lto/42528
11180         * c.opt (fsigned-char): Also let LTO handle this option.
11181         (funsigned-char): Likewise.
11182
11183 2010-01-07  Richard Guenther  <rguenther@suse.de>
11184
11185         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
11186         (gimple_op): Likewise.
11187         (gimple_op_ptr): Likewise.
11188         (gimple_assign_set_lhs): Remove gcc_assert.
11189         (gimple_assign_set_rhs1): Likewise.
11190         (gimple_assign_set_rhs2): Likewise.
11191         (gimple_call_set_lhs): Likewise.
11192         (gimple_call_set_fn): Likewise.
11193         (gimple_call_set_fndecl): Likewise.
11194         (gimple_call_fndecl): Likewise.
11195         (gimple_call_return_type): Likewise.
11196         (gimple_call_set_chain): Likewise.
11197         (gimple_call_num_args): Likewise.
11198         (gimple_call_set_arg): Likewise.
11199         (gimple_cond_set_code): Likewise.
11200         (gimple_cond_set_lhs): Likewise.
11201         (gimple_cond_set_rhs): Likewise.
11202         (gimple_cond_set_true_label): Likewise.
11203         (gimple_cond_set_false_label): Likewise.
11204         (gimple_label_set_label): Likewise.
11205         (gimple_goto_set_dest): Likewise.
11206         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
11207         (gimple_debug_bind_get_value): Likewise.
11208         (gimple_debug_bind_get_value_ptr): Likewise.
11209         (gimple_debug_bind_set_var): Likewise.
11210         (gimple_debug_bind_set_value): Likewise.
11211         (gimple_debug_bind_reset_value): Likewise.
11212         (gimple_debug_bind_has_value_p): Likewise.
11213         (gimple_return_retval_ptr): Remove gcc_assert.
11214         (gimple_return_retval): Likewise.
11215         (gimple_return_set_retval): Likewise.
11216         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
11217         (safe_referenced_var_iterator): Remove.
11218         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
11219         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
11220         (fill_referenced_var_vec): Remove.
11221         (first_readonly_imm_use): Remove redundant gcc_assert.
11222         (phi_arg_index_from_use): Combine gcc_asserts.
11223         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
11224         (first_imm_use_stmt): Remove redundant gcc_assert.
11225         * tree-cfg.c (verify_gimple_call): Verify function and chain
11226         operands.  Verify arguments.
11227         (verify_types_in_gimple_stmt): Verify condition code and labels.
11228
11229 2010-01-07  Richard Guenther  <rguenther@suse.de>
11230
11231         PR tree-optimization/42641
11232         * sese.c (rename_map_elt_info): Use the SSA name version, do
11233         not hash pointers.
11234
11235 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
11236
11237         PR tree-optimization/42625
11238         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
11239         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
11240
11241 2010-01-07  Duncan Sands  <baldrick@free.fr>
11242
11243         * Makefile.in (PLUGIN_HEADERS): Add version.h.
11244
11245 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
11246
11247         PR target/42511
11248         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
11249         note itself is not function_invariant_p.
11250
11251 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
11252
11253         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
11254         Do not add the DF_NOTE problem.
11255         * store-motion.c (execute_rtl_store_motion): Likewise.
11256
11257 2010-01-07  Martin Jambor  <mjambor@suse.cz>
11258
11259         PR tree-optimization/42157
11260         * tree-sra.c (compare_access_positions): Stabilize sort if both
11261         accesses have integer types, return zero immediately if they are the
11262         same.
11263
11264 2010-01-06  Richard Henderson  <rth@redhat.com>
11265
11266         PR middle-end/41883
11267         * haifa-sched.c (add_to_note_list): Merge into ...
11268         (concat_note_lists): ... here, and ...
11269         (unlink_other_notes, rm_other_notes): Merge into...
11270         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
11271         NOTE_INSN_EPILOGUE_BEG.
11272
11273 2010-01-06  Richard Guenther  <rguenther@suse.de>
11274
11275         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
11276         not inline regular functions into always-inline functions.
11277
11278 2010-01-06  Nick Clifton  <nickc@redhat.com>
11279
11280         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
11281         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
11282         used together.
11283         (OVERRIDE_OPTIONS): Delete.
11284         (OPTIMIZATION_OPTIONS): Define.
11285         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
11286         * config/rx/rx.c (rx_handle_option): Issue an error message if
11287         -mcpu=rx200 and -fpu are used together.
11288         (rx_set_optimization_options): New function.  Issue an error
11289         message if an optimization attribute attempts to reset the FPU/
11290         math optimization pairing.
11291         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
11292         * config/rx/rx.opt: Set the default to 32-bit doubles.
11293         * config/rx/t-rx: Add multilibs for -nofpu option.
11294         * doc/invoke.texi: Update documentation of RX options.
11295
11296 2010-01-06  Richard Guenther  <rguenther@suse.de>
11297
11298         * tree-ssa-pre.c (name_to_id): New global.
11299         (alloc_expression_id): Simplify SSA name handling.
11300         (lookup_expression_id): Likewise.
11301         (init_pre): Zero name_to_id.
11302         (fini_pre): Free it.
11303
11304 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
11305
11306         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
11307
11308 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
11309
11310         PR target/42542
11311         * config/i386/sse.md (smaxv2di3): New.
11312         (umaxv2di3): Likewise.
11313         (sminv2di3): Likewise.
11314         (uminv2di3): Likewise.
11315
11316 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
11317
11318         PR target/42564
11319         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
11320         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
11321         (legitimize_tls_address): Likewise.
11322         (sparc_tls_referenced_p): Likewise.
11323         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
11324         and adjust calls to legitimize_pic_address.
11325         (legitimate_constant_p) Use sparc_tls_referenced_p.
11326         (legitimate_pic_operand_p): Likewise.
11327         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
11328         (sparc_tls_symbol_ref_1): Delete.
11329         (sparc_tls_referenced_p): Make static, recognize specific patterns.
11330         (legitimize_tls_address): Make static, handle CONST patterns.
11331         (legitimize_pic_address): Make static, remove unused parameter and
11332         adjust recursive calls.
11333         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
11334         and adjust call to legitimize_pic_address.
11335         (sparc_output_mi_thunk): Likewise.
11336
11337 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
11338             H.J. Lu  <hongjiu.lu@intel.com>
11339
11340         PR target/42542
11341         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
11342         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
11343         operands to make them signed.
11344
11345         Revert:
11346         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11347
11348         PR target/42542
11349         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11350         GTU to GT for V4SI and V2DI.
11351
11352         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11353         (umin<mode>3): Removed.
11354         (uminv8hi3): New.
11355         (uminv4si3): Likewise.
11356
11357 2010-01-05  Martin Jambor  <mjambor@suse.cz>
11358
11359         PR tree-optimization/42462
11360         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
11361         current_function_decl to helper functions and macros.
11362
11363 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11364
11365         PR bootstrap/41771
11366         * flags.h: Don't include real.h.
11367         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
11368         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
11369         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
11370         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
11371         * dominance.c: Update copyright.
11372         * gimple.c (walk_gimple_op): Remove inline.
11373         * tree-ssa-reassoc.c: Include real.h.
11374         * Makefile.in (FLAGS_H): Remove $(REAL_H).
11375         (tree-ssa-reassoc.o): Depend on $(REAL_H).
11376
11377 2010-01-05  Nick Clifton  <nickc@redhat.com>
11378
11379         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
11380         register to push into the stack frame when the accumulator has to
11381         be saved during interrupts.
11382
11383 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
11384
11385         * doc/invoke.texi: Remove the documentation about option
11386         -Wunreachable-code.
11387         * common.opt (Wunreachable-code):  Preserved for backward
11388         compatibility.
11389         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
11390         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
11391         the backward compatibility flag section.
11392
11393 2010-01-05  Richard Guenther  <rguenther@suse.de>
11394
11395         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
11396
11397 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
11398
11399         PR other/42611
11400         * cfgexpand.c (expand_one_var): Diagnose too large variables.
11401
11402         PR tree-optimization/42508
11403         * tree-sra.c (convert_callers): Check for recursive call
11404         by comparing cgraph nodes instead of decls.
11405         (modify_function): Call ipa_modify_formal_parameters also
11406         on all same_body aliases.
11407
11408         * cgraphunit.c (cgraph_materialize_all_clones): Compare
11409         cgraph nodes when checking for same_body aliases.
11410
11411 2010-01-05  Richard Guenther  <rguenther@suse.de>
11412
11413         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
11414         allocation and lookup.
11415         (get_or_alloc_expr_for_constant): Likewise.
11416         (phi_translate): Sink allocation.
11417
11418 2010-01-04  Richard Guenther  <rguenther@suse.de>
11419
11420         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
11421         a new entry only if needed.
11422         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
11423         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
11424         hashtable lookup.
11425         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
11426         the result array.
11427         (phi_translate): Handle CONSTANTs early.
11428
11429 2010-01-04  Martin Jambor  <mjambor@suse.cz>
11430
11431         PR tree-optimization/42398
11432         * tree-sra.c (struct access): Removed flag grp_different_types.
11433         (dump_access): Do not dump the removed flag.
11434         (sort_and_splice_var_accesses): Do not set the removed flag.
11435         (sra_modify_expr): Check for type compatibility directly.
11436
11437 2010-01-04  Martin Jambor  <mjambor@suse.cz>
11438
11439         PR tree-optimization/42366
11440         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
11441         edges with variable number of parameters.
11442         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
11443         flag instead of asserting it.
11444         (ipa_read_node_info): Read uses_analysis_done flag.
11445
11446 2010-01-04  Richard Guenther  <rguenther@suse.de>
11447
11448         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
11449         iterative_hash_* as intended.
11450         (vn_reference_compute_hash): Likewise.  Simplify hashing
11451         SSA names.
11452         (vn_reference_lookup_2): Likewise.
11453         (vn_nary_op_compute_hash): Likewise.
11454         (vn_phi_compute_hash): Likewise.
11455         (expressions_equal_p): Remove strange code.
11456         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
11457         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
11458         (bitmap_insert_into_set_1): Take value-id as parameter.
11459         (add_to_value): Pass it.
11460         (bitmap_insert_into_set): Likewise.
11461         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
11462
11463 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
11464
11465         PR driver/42442
11466         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
11467         (do_self_spec): For switches with SWITCH_IGNORE set set also
11468         SWITCH_IGNORE_PERMANENTLY.
11469         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
11470         of SWITCH_IGNORE.
11471
11472 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
11473
11474         * lto-streamer-out.c (output_unreferenced_globals): Output the full
11475         tree of an unreferenced global var.
11476
11477 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11478
11479         PR target/42542
11480         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11481         GTU to GT for V4SI and V2DI.
11482
11483         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11484         (umin<mode>3): Removed.
11485         (uminv8hi3): New.
11486         (uminv4si3): Likewise.
11487
11488 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11489
11490         PR lto/42581
11491         * collect2.c (main): Turn on trace in collect2 if -v is passed
11492         to gcc with LTO.
11493
11494 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
11495
11496         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
11497         description of expression operand.
11498
11499 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
11500
11501         * configure.ac: Add install-html to target_list for Make-hooks.
11502         * configure: Regenerate.
11503         * fortran/Make-lang.in (F95_HTMLFILES): New.
11504         (fortran.html): Use it.
11505         (fortran.install-html): New.
11506         * Makefile.in (install-html): Add lang.install-html.
11507         * java/Make-lang.in (JAVA_HTMLFILES): New.
11508         (java.html): Use it.
11509         (java.install-html): New.
11510         * objc/Make-lang.in (objc.install-html): New.
11511         * objcp/Make-lang.in (obj-c++.install-html): New.
11512         * cp/Make-lang.in (c++.install-html): New.
11513         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
11514         * lto/Make-lang.in (lto.install-html): New.
11515
11516 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
11517
11518         PR lto/42520
11519         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
11520
11521 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
11522
11523         PR rtl-optimization/41862
11524         * store-motion.c (store_killed_in_insn, compute_store_table,
11525         remove_reachable_equiv_notes, replace_store_insn,
11526         build_store_vectors): Ignore all DEBUG_INSNs.
11527
11528 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
11529
11530         PR lto/41564
11531         * common.opt: Add dumpdir.
11532
11533         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
11534         isn't specified.
11535         (option_map): Add --dumpdir.
11536
11537         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
11538
11539         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
11540
11541         * opts.c (decode_options): Try dump_dir_name first if
11542         dump_base_name isn't an absolute path.
11543         (common_handle_option): Handle OPT_dumpdir.
11544
11545         * toplev.c (dump_dir_name): New.
11546         (print_switch_values): Also ignore -dumpdir.
11547
11548         * toplev.h (dump_dir_name): New.
11549
11550 2010-01-03  Richard Guenther  <rguenther@suse.de>
11551
11552         PR tree-optimization/42589
11553         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
11554         double-word expansion of bswap32.
11555
11556 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
11557
11558         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
11559         with BLOCK_FOR_INSN.
11560         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
11561         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
11562         noce_process_if_block): Likewise.
11563         * gcse.c (compute_local_properties, insert_expr_in_table,
11564         insert_set_in_table, canon_list_insert, find_avail_set,
11565         pre_insert_copy_insn): Likewise.
11566
11567         * basic-block.h (BLOCK_NUM): Move from here...
11568         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
11569
11570 2010-01-03  Richard Guenther  <rguenther@suse.de>
11571
11572         PR tree-optimization/42438
11573         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
11574         contains_may_not_return_call flag.
11575         (BB_MAY_NOTRETURN): New.
11576         (valid_in_sets): Trapping nary operations are not valid
11577         in blocks that may not return.
11578         (insert_into_preds_of_block): Remove check for trapping expressions.
11579         (compute_avail): Compute also BB_MAY_NOTRETURN.
11580
11581 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
11582
11583         * doc/invoke.texi: Add 2010 to copyright years.
11584
11585 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
11586
11587         * config/sparc/sparc.c: Fix formatting nits.
11588
11589 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
11590             Alexander Monakov  <amonakov@ispras.ru>
11591
11592         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
11593
11594 2010-01-02  Richard Guenther  <rguenther@suse.de>
11595
11596         PR middle-end/42577
11597         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
11598         (simplify_switch_using_ranges): Mark to be removed edges
11599         as non-executable.
11600
11601 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11602
11603         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
11604
11605         * collect2.c (scan_libraries): Add missing argument in call to
11606         scan_prog_file.
11607
11608 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
11609
11610         PR target/42448
11611         * config/alpha/predicates.md (aligned_memory_operand): Return false
11612         for CQImode.
11613         (unaligned_memory_operand): Return true for CQImode.
11614         * config/alpha/alpha.c (get_aligned_mem): Assert that location
11615         doesn not cross aligned SImode word boundary.
11616
11617 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
11618
11619         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
11620         Remove.
11621         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
11622         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
11623
11624 2010-01-02  Richard Guenther  <rguenther@suse.de>
11625
11626         PR lto/41597
11627         * toplev.c (compile_file): Emit LTO marker properly.  Change
11628         it to __gnu_lto_v1.
11629         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
11630
11631 2010-01-01  Richard Guenther  <rguenther@suse.de>
11632
11633         PR debug/42455
11634         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
11635
11636 2010-01-01  Richard Guenther  <rguenther@suse.de>
11637
11638         PR c/42570
11639         * c-decl.c (grokdeclarator): For zero-size arrays force
11640         structural equality checks as layout_type does.
11641
11642 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
11643
11644         * builtins.c: Update copyright to 2010.
11645
11646 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
11647
11648         PR lto/42531
11649         * lto-streamer-out.c (produce_asm): Revert the last change.
11650         (copy_function): Likewise.
11651
11652         * lto-streamer.c (lto_get_section_name): Skip any leading
11653         asterisk in name.
11654
11655 2010-01-01  Richard Guenther  <rguenther@suse.de>
11656
11657         PR middle-end/42559
11658         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
11659         for LABEL_DECLs.
11660
11661 \f
11662 Copyright (C) 2010 Free Software Foundation, Inc.
11663
11664 Copying and distribution of this file, with or without modification,
11665 are permitted in any medium without royalty provided the copyright
11666 notice and this notice are preserved.
11667
11668         PR bootstrap/44299
11669         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
11670         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
11671
11672 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
11673
11674         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
11675         toplev.h.
11676         * diagnostic.c: Don't include toplev.h.
11677         (progname): Define.  Moved from toplev.c.
11678         (seen_error): New function.
11679         * diagnostic.h: Include diagnostic-core.h.
11680         (diagnostic_t, emit_diagnostic): Don't declare here.
11681         * toplev.c (progname): Move to toplev.c.
11682         (emit_debug_global_declarations, compile_file, finalize,
11683         do_compile, toplev_main): Use seen_error.
11684         * toplev.h: Include diagnostic-core.h.
11685         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
11686         internal_error, warning, warning_at, error, error_n, error_at,
11687         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
11688         verbatim, fnotice, progname): Move to diagnostic-core.h.
11689         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
11690         (expand_builtin_expect): Use seen_error.
11691         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
11692         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
11693         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
11694         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
11695         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
11696         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
11697         errorcount for errors.
11698         * c-opts.c (c_common_finish): Use seen_error.
11699         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
11700         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
11701         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
11702         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
11703         (get_coverage_counts): Use seen_error.
11704         * dwarf2out.c (dwarf2out_finish): Use seen_error.
11705         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
11706         gimplify_body): Use seen_error.
11707         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
11708         * ipa-pure-const.c (gate_pure_const): Use seen_error.
11709         * ipa-reference.c (gate_reference): Use seen_error.
11710         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
11711         * lambda-code.c: Include diagnostic-core.h instead of
11712         diagnostic.h.
11713         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
11714         * lto-compress.c: Include diagnostic-core.h instead of
11715         diagnostic.h.
11716         * lto-section-in.c: Include diagnostic-core.h instead of
11717         diagnostic.h.
11718         * lto-streamer-out.c: Include diagnostic-core.h instead of
11719         diagnostic.h.
11720         * lto-streamer.c: Include diagnostic-core.h instead of
11721         diagnostic.h.
11722         (gate_lto_out): Use seen_error.
11723         * matrix-reorg.c: Include diagnostic-core.h instead of
11724         diagnostic.h.
11725         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
11726         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
11727         (gate_expand_omp, lower_omp_1): Use seen_error.
11728         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
11729         (rest_of_decl_compilation, rest_of_type_compilation,
11730         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
11731         * tree-cfg.c (label_to_block_fn): Use seen_error.
11732         * tree-inline.c (optimize_inline_calls): Use seen_error.
11733         * tree-mudflap.c (mudflap_finish_file): Use
11734         seen_error.
11735         * tree-optimize.c (gate_all_optimizations,
11736         gate_all_early_local_passes, gate_all_early_optimizations): Use
11737         seen_error.
11738         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
11739         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
11740         (varpool_remove_unreferenced_decls,
11741         varpool_assemble_pending_decls): Use seen_error.
11742         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
11743         (TOPLEV_H, DIAGNOSTIC_H): Update.
11744         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
11745         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
11746         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
11747         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
11748         coverage.o, lambda-code.o): Update dependencies.
11749
11750 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
11751
11752         PR c++/44188
11753         * c-common.c (is_typedef_decl): Move this definition ...
11754         * tree.c (is_typedef_decl): ... here.
11755         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
11756         * c-common.h (is_typedef_decl): Move this declaration ...
11757         * tree.h (is_typedef_decl): ... here.
11758         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
11759         * dwarf2out.c (is_naming_typedef_decl): New function.
11760         (gen_tagged_type_die): Split out of ...
11761         (gen_type_die_with_usage): ... this function. When an anonymous
11762         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
11763         is emitted for the typedef.
11764         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
11765         anonymous tagged types.
11766
11767 2010-05-27  Jason Merrill  <jason@redhat.com>
11768
11769         * print-tree.c (debug_vec_tree): New fn.
11770         (print_vec_tree): New fn.
11771         * tree.h: Declare them.
11772         * gdbinit.in (pvt): New command.
11773
11774         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
11775
11776         * gdbinit.in (pdd): New command.
11777
11778 2010-05-27  Jan Hubicka  <jh@suse.cz>
11779
11780         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
11781         (update_caller_keys): Return early if there are no callers;
11782         only update fibheap when decresing the key.
11783         (update_callee_keys): Avoid recursion.
11784         (decide_inlining_of_small_functions): When badness does not match;
11785         re-insert into fibheap.
11786
11787 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
11788
11789         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
11790         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
11791         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
11792         (ALL_HOST_OBJS): Now a union of the above two.
11793         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
11794         all files in ALL_HOST_FRONTEND_OBJS.
11795         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
11796
11797         * c-common.c: Pretend to be a backend file by undefining
11798         IN_GCC_FRONTEND (still need rtl.h here).
11799
11800 2010-05-27  Jan Hubicka  <jh@suse.cz>
11801
11802         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
11803         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
11804
11805 2010-05-27  Jan Hubicka  <jh@suse.cz>
11806
11807         * sched-ebb.c: Rename struct deps to struct deps_desc.
11808         * ddg.c: Likewise.
11809         * sel-sched-ir.c: Likewise.
11810         * sched-deps.c: Likewise.
11811         * sched-int.h: Likewise.
11812         * sched-rgn.c: Likewise.
11813
11814 2010-05-27  Jon Beniston <jon@beniston.com>
11815
11816         PR 43726
11817         * config/lm32/lm32.h: Remove definition of 
11818         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
11819
11820 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
11821
11822         PR lto/44230
11823         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
11824
11825 2010-05-27  Richard Guenther  <rguenther@suse.de>
11826
11827         PR tree-optimization/44284
11828         * tree-vect-stmts.c (vectorizable_assignment): Handle
11829         sign-changing conversions as simple copy.
11830
11831 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11832
11833         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
11834         Bionic C library.
11835         (__gthread_active_p): Check for pthread_create if compiling against
11836         Bionic C library.
11837
11838 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11839
11840         Support compilation for Android platform.  Reimplement -mandroid.
11841
11842         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
11843         (*android*): Set ANDROID_DEFAULT.
11844         (arm*-*-linux*): Include linux-android.h.
11845         (arm*-*-eabi*): Don't include previous -mandroid implementation.
11846         * config/arm/eabi.h: Remove, move Android-specific parts ...
11847         * config/linux-android.h: ... here.  New file.
11848         * config/arm/eabi.opt: Rename to ...
11849         * config/linux-android.opt: ... this.
11850         (mandroid): Allow -mno-android option.  Initialize based on
11851         ANDROID_DEFAULT.
11852         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
11853         Move logic to corresponding LINUX_TARGET_* macros.
11854         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
11855         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
11856         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
11857         Android definitions.
11858         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
11859         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
11860         Document.
11861
11862 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11863
11864         Add support for Bionic C library
11865
11866         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
11867         macro.
11868         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
11869         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
11870
11871         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
11872         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
11873         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
11874         to support multiple C libraries.  Handle Bionic.
11875         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
11876         (BIONIC_DYNAMIC_LINKER64): Define.
11877         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
11878         Update.
11879         (TARGET_HAS_SINCOS): Enable for Bionic.
11880
11881         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
11882         the last option specified on command line take effect.
11883         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
11884         (mbionic): New.
11885         (mglibc, muclibc): Update.
11886
11887         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
11888         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
11889         DEFAULT_LIBC.
11890
11891         * doc/invoke.texi (-mglibc, -muclibc): Update.
11892         (-mbionic): Document.
11893
11894 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11895
11896         * c-common.h (c_register_addr_space): Add prototype.
11897         (ADDR_SPACE_KEYWORD): Remove.
11898         * c-common.c (c_register_addr_space): New function.
11899         (c_addr_space_name): Reimplement.
11900         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
11901
11902         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
11903         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
11904
11905         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
11906         Remove TARGET_ADDR_SPACE_KEYWORDS.
11907
11908 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
11909
11910         * input.c: New file.
11911         * input.h (main_input_filename): Move declaration to toplev.h.
11912         * toplev.c (input_location, line_table): Move to input.c
11913         * toplev.h (main_input_filename): Move declaration from input.h.
11914         * tree.c (expand_location): Move to input.c.
11915         * Makefile.in (OBJS-common): Add input.o.
11916         (input.o): Add dependencies.
11917
11918 2010-05-27  Richard Guenther  <rguenther@suse.de>
11919
11920         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
11921         for non-existant files.
11922         (fork_execute): Mark args_name file as deleted.
11923
11924 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
11925
11926         PR bootstrp/44287
11927         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
11928         (narrow_signed_type): Likewise.
11929
11930 2010-05-26  Jan Hubicka  <jh@suse.cz>
11931
11932         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
11933         edge only when checking is enabled; check using former_clone_of;
11934         check inline clones too.
11935         (cgraph_materialize_clone): Record former_clone_of pointer.
11936         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
11937         combining redirections; dump args_to_skip bitmap
11938         (cgraph_materialize_all_clones): Do no redirection here.
11939         * ipa-inline.c (inline_transform): Do redirection here.
11940         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
11941         cheking only).
11942
11943 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
11944
11945         * config/avr/avr-c.c: Do not include regs.h.
11946         Include cpplib.h for cpp_define and tree.h for c-common.h.
11947         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
11948         * config/avr/t-avr: Fix dependencies for avr-c.o.
11949
11950 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
11951
11952         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
11953         string instead of SYMBOL_REF rtx.
11954         * rtl.h (set_stack_check_libfunc): Move prototype from here...
11955         * libfuncs.h: ...to here.  Adjust for explow.c change.
11956
11957 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
11958
11959         * pretty-print.c: Don't include ggc.h.
11960         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
11961         (identifier_to_locale): Use them for allocation.
11962         * pretty-print.h (identifier_to_locale_alloc,
11963         identifier_to_locale_free): Declare.
11964         * toplev.c (alloc_for_identifier_to_locale): New.
11965         (general_init): Set identifier_to_locale_alloc and
11966         identifier_to_locale_free.
11967         * Makefile.in (pretty-print.o): Update dependencies.
11968
11969 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
11970
11971         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
11972         pointer types if they have different alignment or mode.
11973
11974 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
11975
11976         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
11977         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
11978         * config/sparc/sparc-protos.h (function_value): Remove declaration.
11979         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
11980         sparc_function_value_regno_p): New functions.
11981         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11982         TARGET_FUNCTION_VALUE_REGNO_P): Define.
11983         (function_value): Rename to...
11984         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
11985         argument to 'outgoing'.
11986         (function_arg_record_value, function_arg_union_value,
11987         function_arg_vector_value): Update comment.
11988
11989 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
11990
11991         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
11992         (fde_needed_for_eh_p): New predicate.
11993         (output_call_frame_info): Use it throughout to decide whether FDEs
11994         are needed for EH purpose.
11995         (dwarf2out_begin_prologue): Reorder assignments.
11996
11997 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
11998
11999         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
12000         special case loop->header.
12001         (is_predicated): New.
12002         (if_convertible_loop_p): Call it.
12003
12004 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12005
12006         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
12007         iterator in parameter.  Do not generate code during the analysis.
12008         (tree_if_convert_cond_stmt): Removed.
12009         (tree_if_convert_stmt): Removed.
12010         (predicate_bbs): New.
12011         (if_convertible_loop_p): Call predicate_bbs.
12012         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
12013         now contains all the analysis part.
12014
12015 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12016
12017         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
12018         statements in the analysis part.
12019         (tree_if_convert_stmt): Update comment.
12020         (remove_conditions_and_labels): New.
12021         (combine_blocks): Call remove_conditions_and_labels.
12022         (tree_if_conversion): Update comment.
12023
12024 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12025
12026         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
12027         than 2 predecessors or more than 2 successors.
12028
12029 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12030
12031         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
12032         of loops in which the data dependence analysis fails.
12033
12034 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12035
12036         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
12037         CDI_POST_DOMINATORS.
12038         (tree_if_conversion): Same.
12039
12040 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12041
12042         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
12043
12044 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12045
12046         * tree-if-conv.c: Update copyright years.  Fix comments.
12047         Fix indentation.
12048
12049 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
12050
12051         * builtin-types.def (BT_INT128): New primitive type.
12052         (BT_UINT128): Likewise.
12053         * c-common.c (c_common_r): Add __int128 keyword.
12054         (c_common_type_for_size): Handle __int128.
12055         (c_common_type_for_mode): Likewise.
12056         (c_common_signed_or_unsigned_type): Likewise.
12057         (c_common_nodes_and_builtins): Add builtin type
12058         if target supports 128-bit integer scalar.
12059         * c-common.h (enum rid): Add RID_INT128.
12060         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
12061         if target supports 128-bit integer scalar.
12062         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
12063         (finish_declspecs): Likewise.
12064         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
12065         (c_token_starts_declspecs): Likewise.
12066         (c_parser_declspecs): Likewise.
12067         (c_parser_attributes): Likewise.
12068         (c_parser_objc_selector): Likewise.
12069         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
12070         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
12071         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
12072         * tree.c (make_or_reuse_type): Likewise.
12073         (make_unsigned_type): Likewise.
12074         (build_common_tree_nodes_2): Likewise.
12075         * tree.h (enum integer_type_kind): Add itk_int128 and
12076         itk_unsigned_int128.
12077         (int128_integer_type_node): New define.
12078         (int128_unsigned_type_node): New define.
12079         * doc/extend.texi: Add documentation about __int128 type.
12080
12081 2010-05-26  Richard Guenther  <rguenther@suse.de>
12082
12083         * tree-ssa-sccvn.c (copy_nary): Adjust.
12084         (copy_phis): Rename to ...
12085         (copy_phi): ... this.  Adjust.
12086         (copy_references): Rename to ...
12087         (copy_reference): ... this.  Adjust.
12088         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
12089         result into the valid table.
12090
12091 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12092
12093         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
12094         insn-config.h, insn-codes.h, recog.h, and optabs.h.
12095
12096 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12097
12098         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
12099
12100 2010-05-26  Richard Guenther  <rguenther@suse.de>
12101
12102         * opts.c (common_handle_option): Handle OPT_Ofast.
12103
12104 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
12105
12106         * diagnostic.c: Don't include opts.h.
12107         (permissive_error_option): Define.
12108         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
12109         for classify_diagnostic.  Don't use memset for
12110         classify_diagnostic.  Initialize new and recently added fields.
12111         (diagnostic_classify_diagnostic): Use context->n_opts instead of
12112         N_OPTS.
12113         (diagnostic_report_diagnostic): Pass context parameter to
12114         diagnostic_report_warnings_p.  Use option_enabled and option_name
12115         hooks from context.
12116         (emit_diagnostic): Use permissive_error_option.
12117         (permerror): Likewise.
12118         * diagnostic.h: Don't include options.h.
12119         (struct diagnostic_context): Add n_opts, opt_permissive,
12120         inhibit_warnings, warn_system_headers, option_enabled and
12121         option_name fields.  Change classify_diagnostic to a pointer.
12122         * opts-diagnostic.h: New file.
12123         * opts.c: Include opts-diagnostic.h.
12124         (common_handle_option): Set global_dc fields for -Wfatal-errors,
12125         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
12126         (option_name): New function.
12127         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
12128         (c_common_handle_option): Set global_dc->permissive for
12129         -fpermissive.
12130         * c-common.c (c_cpp_error): Save and restore
12131         global_dc->warn_system_headers, not variable warn_system_headers.
12132         * toplev.c: Include opts-diagnostic.h.
12133         (general_init): Update call to diagnostic_initialize.  Set
12134         global_dc->show_column, global_dc->option_enabled and
12135         global_dc->option_name.
12136         (process_options): Don't set global_dc fields here.
12137         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
12138         (diagnostic.o, opts.o, toplev.o): Update dependencies.
12139
12140 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
12141
12142         * config/picochip/picochip.md (movsi): Split a movsi from a
12143         const after reload.
12144
12145 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12146
12147         * ggc-zone.c: Update copyright year.
12148         (poison_region): Mark memory for Valgrind as undefined before
12149         memset () call and inaccessible afterwards.
12150         (ggc_pch_total_size): Change type of i to int.
12151
12152 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12153
12154         * ggc-common.c (ggc_free_overhead): Allow empty slot.
12155
12156 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12157
12158         * ggc-common.c: Update copyright year.
12159         (ggc_rlimit_bound): Remove prototype.  Compile only if
12160         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
12161         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
12162         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
12163         (ggc_min_heapsize_heuristic): Likewise.
12164
12165 2010-05-26  Richard Guenther  <rguenther@suse.de>
12166
12167         PR rtl-optimization/44164
12168         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
12169         no-common access-path disambiguation.
12170         (indirect_ref_may_alias_decl_p): Adjust.
12171         (indirect_refs_may_alias_p): Likewise.
12172         (refs_may_alias_p_1): Likewise.
12173
12174 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12175
12176         * c-typeck.c: Do not include expr.h.
12177
12178 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12179
12180         * rtl.h (decl_default_tls_model): Move prototype from here...
12181         * output.h: ...to here.
12182         * c-decl.c: Do not include rtl.h.
12183         * c-pragma.c: Likewise.
12184         * c-parser.c: Likewise.
12185         * c-gimplify.c: Likewise.  And also not hard-reg-set.
12186         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
12187         FIXME note for it.  Add a FIXME note for expr.h.
12188         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
12189         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
12190         defined.
12191
12192 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
12193
12194         PR target/44199
12195         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
12196         or total_size is larger than red zone size for non-V4 ABI, emit a
12197         stack_tie resp. frame_tie insn before stack pointer restore.
12198         * config/rs6000/rs6000.md (frame_tie): New insn.
12199
12200 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
12201
12202         * function.h (struct function): Add can_throw_non_call_exceptions bit.
12203         * lto-streamer-in.c (input_function): Stream it in.
12204         * lto-streamer-out.c (output_function): Stream it out.
12205         * function.c (allocate_struct_function): Set it.
12206         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
12207         for flag_non_call_exceptions.
12208         * cfgbuild.c (control_flow_insn_p): Likewise.
12209         (make_edges): Likewise.
12210         * cfgexpand.c (expand_stack_alignment): Likewise.
12211         * combine.c (distribute_notes): Likewise.
12212         * cse.c (cse_extended_basic_block): Likewise.
12213         * except.c (insn_could_throw_p): Likewise.
12214         * gcse.c (simple_mem): Likewise.
12215         * ipa-pure-const.c (check_call): Likewise.
12216         (check_stmt ): Likewise.
12217         * lower-subreg.c (lower-subreg.c): Likewise.
12218         * optabs.c (emit_libcall_block): Likewise.
12219         (prepare_cmp_insn): Likewise.
12220         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
12221         * postreload.c (rest_of_handle_postreload): Likewise.
12222         * reload1.c (reload_as_needed): Likewise.
12223         (emit_input_reload_insns): Likewise.
12224         (emit_output_reload_insns): Likewise.
12225         (fixup_abnormal_edges): Likewise.
12226         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
12227         * store-motion.c (find_moveable_store): Likewise.
12228         * tree-eh.c (stmt_could_throw_p): Likewise.
12229         (tree_could_throw_p): Likewise.
12230         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
12231         * config/arm/arm.c (arm_expand_prologue): Likewise.
12232         (thumb1_expand_prologue): Likewise.
12233         * config/rx/rx.md (cbranchsf4): Likewise.
12234         (cmpsf): Likewise.
12235         * config/s390/s390.c (s390_emit_prologue): Likewise.
12236         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
12237         (inline_forbidden_into_p): New predicate.
12238         (expand_call_inline): Use it to forbid inlining.
12239         (tree_can_inline_p): Likewise.
12240
12241 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
12242
12243         * config/i386/i386-c.c: Do not include rtl.h.
12244         * config/i386/t-i386: Update dependencies.
12245
12246 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
12247
12248         * attribs.c: Do not include rtl.h.
12249         * Makefile.in: Update dependencies.
12250
12251 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
12252
12253         * double-int.h (double_int_and): New.
12254         * combine.c (try_combine): Clean up, use double_int_* and
12255         immed_double_int_const functions.
12256
12257 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12258
12259         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
12260         stderr to /dev/null instead of grep -q.
12261         * configure: Regenerate.
12262
12263 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
12264
12265         * Makefile.in (EXCEPT_H): Fix typo.
12266
12267 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
12268
12269         * ira-build.c (update_conflict_hard_reg_costs): New.
12270         (ira_build): Call update_conflict_hard_reg_costs.
12271
12272 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
12273
12274         PR debug/41371
12275         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
12276         ENABLE_CHECKING.
12277         (intersect_loc_chains): Walk the s2var's loc_chain together
12278         with s1node chain as long as the locations are equal, don't
12279         call find_loc_in_1pdv in that case.
12280
12281         PR debug/42801
12282         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
12283         (copy_bind_expr): ... instead of here.
12284         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
12285         if the block hasn't been remapped.
12286         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
12287         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
12288
12289 2010-05-25  Richard Guenther  <rguenther@suse.de>
12290
12291         PR middle-end/44069
12292         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
12293         out-of-bounds array accesses.
12294
12295 2010-05-25  Richard Guenther  <rguenther@suse.de>
12296
12297         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
12298         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
12299         (run_gcc): Re-organize to make cleanup easier.
12300
12301 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12302
12303         * config/s390/s390.c (optimization_options): Fix and move the
12304         flag_prefetch_loop_arrays override ...
12305         (override_options): ... here.
12306
12307 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
12308
12309         * diagnostic.c: Don't include plugin.h.
12310         (diagnostic_report_diagnostic): Don't handle plugins specially
12311         here.  Pass context to internal_error callback.
12312         * diagnostic.h (struct diagnostic_context): Add context parameter
12313         to internal_error callback.
12314         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
12315         * plugin.h (struct diagnostic_context): Declare.
12316         (warn_if_plugins, plugins_internal_error_function): Declare.
12317         * toplev.c (general_init): Set global_dc->internal_error.
12318         * Makefile.in (diagnostic.o): Update dependencies.
12319
12320 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
12321
12322         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
12323         * config/rs6000/t-darwin64: New.
12324         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
12325         build crt2.
12326
12327 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
12328
12329         PR 44203
12330         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
12331         match the original (and intended) behaviour before r159557.  This
12332         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
12333         in two ways.
12334
12335 2010-05-25  Richard Guenther  <rguenther@suse.de>
12336
12337         * doc/invoke.texi: Document -Ofast.
12338         * target.h (struct gcc_target): Add handle_ofast.
12339         * target-def.h (TARGET_HANDLE_OFAST): Add.
12340         (TARGET_INITIALIZER): Adjust.
12341         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
12342         * common.opt (Ofast): Add.
12343
12344 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
12345
12346         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
12347         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
12348
12349 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
12350
12351         PR target/43610
12352         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
12353         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
12354         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
12355         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
12356
12357 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
12358
12359         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
12360         DW_OP_minus with negated offset instead of DW_OP_plus.
12361         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
12362
12363 2010-05-25  Wei Guozhi  <carrot@google.com>
12364
12365         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
12366         tst instruction and a new alternative.
12367         * config/arm/constraints.md (Pu): New constraint.
12368
12369 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
12370
12371         * function.c (assign_stack_local_1): Initialize variable
12372         to avoid warning when bootstrapping at -O3.
12373
12374 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
12375
12376         * configure.ac (all_lang_makefiles): Remove everything related to it.
12377         * configure: Regenerate.
12378         * Makefile.in: Fix reference to ada Make-lang.in.
12379         Remove support for LANG_MAKEFILES.
12380
12381 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
12382             Sandra Loosemore  <sandra@codesourcery.com>
12383
12384         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
12385         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
12386         description.  Add arm_neon_fp16_ok.
12387         (Add Options): Add arm_neon and arm_neon_fp16.
12388
12389 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
12390
12391         * diagnostic.c: Don't include flags.h.
12392         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
12393         context parameters.  Check flags in the context passed as a parameter.
12394         (diagnostic_build_prefix): Add context parameter.  Check
12395         show_column flag in context.
12396         (diagnostic_action_after_output): Check fatal_errors flag in context.
12397         (diagnostic_report_current_module): Check show_column flag in context.
12398         (default_diagnostic_starter): Update call to
12399         diagnostic_build_prefix.
12400         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
12401         (emit_diagnostic): Pass context to permissive_error_kind.
12402         (permerror): Pass context to permissive_error_kind.
12403         * diagnostic.h (struct diagnostic_context): Add show_column,
12404         pedantic_errors, permissive and fatal_errors fields.
12405         (diagnostic_build_prefix): Update prototype.
12406         * langhooks.c
12407         * toplev.c (process_options): Set flags in global_dc from
12408         flag_show_column, flag_pedantic_errors, flag_permissive,
12409         flag_fatal_errors.
12410         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
12411         to diagnostic_build_prefix.
12412         * Makefile.in (diagnostic.o): Update dependencies.
12413
12414 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
12415
12416         * config/i386/ia32intrin.h (__crc32q): Define only if
12417         __SSE4_2__ is defined.
12418
12419 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
12420
12421         PR target/44132
12422         PR middle-end/43602
12423         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
12424         DECL_VISIBILITY_SPECIFIED.
12425         (emutls_decl): Set DECL_PRESERVE_P and copy
12426         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
12427         (emutls_finalize_control_var): New callback.
12428         (emutls_finish): Finalize emutls control variables.
12429         * toplev.c (compile_file): Move the call to emutls_finish ()
12430         before varpool_assemble_pending_decls ().
12431
12432 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
12433
12434         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
12435         added to the preprocessor condition.
12436
12437 2010-05-24  Paul Brook  <paul@codesourcery.com>
12438
12439         * gengtype-lex.l: Add HARD_REG_SET.
12440         * expr.c (expand_expr_real_1): Record writes to hard registers.
12441         * function.c (rtl_data): Add asm_clobbers.
12442         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
12443         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
12444         Use crtl->asm_clobbers.
12445
12446 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12447
12448         * doc/makefile.texi (Makefile): Mention stages 'profile'
12449         and 'feedback' for profiledbootstrap.
12450
12451 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
12452
12453         PR target/44245
12454         * config/i386/i386.c (def_builtin): Properly check
12455         OPTION_MASK_ISA_64BIT.
12456
12457 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
12458
12459         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
12460         typedefs with different but compatible types.  Allow duplicate
12461         typedefs with the same type except for pedantic non-C1X, but give
12462         warning for variably modified types.
12463         * c-typeck.c (tagged_types_tu_compatible_p,
12464         function_types_compatible_p, type_lists_compatible_p,
12465         comptypes_internal): Add parameter different_types_p; set
12466         *different_types_p for different but compatible types.  All
12467         callers changed.
12468         (comptypes_check_different_types): New.
12469         * c-tree.h (comptypes_check_different_types): Declare.
12470
12471 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
12472
12473         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
12474         * jump.c: Include basic-block.h.
12475         * profile.c: Likewise.
12476         * tree-profile.c: Likewise.
12477         * coverage.c: Likewise.
12478         * basic-block.h (optimize_function_for_size_p): Move to function.h.
12479         (optimize_function_for_speed_p): Likewise.
12480         * function.h (optimize_function_for_size_p,
12481         optimize_function_for_speed_p): Moved here from basic-block.h.
12482         * Makefile.in: Update dependencies.
12483
12484 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12485
12486         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
12487         before calling make; allow override through $MAKE.
12488         * doc/invoke.texi (Optimize Options): Document override.
12489
12490 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
12491
12492         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
12493         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12494         (rs6000_mode_dependent_address_ptr): Make static.
12495         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12496         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
12497         Remove.
12498
12499 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
12500
12501         PR target/43869
12502         * config/i386/i386.c: Make sure that the correct regparm is passed.
12503
12504 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
12505
12506         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
12507         * sbitmap.c: ...to here to internalize sbitmap element access.
12508         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
12509         Explain why basic-block.h is included.
12510         * function.h: Include tm.h for CUMULATIVE_ARGS.
12511         * Makefile.in: Update dependencies.
12512
12513 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
12514
12515         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
12516         New core types.
12517         * sbitmap.h (struct sbitmap_def): Do not typedef here.
12518         * sbitmap.c: Include sbitmap.h.
12519         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
12520         hard-reg-set.h.  Split everything related to regsets out from here...
12521         * regset.h: ...to here.  New file.
12522         * df.h: Include regset.h and sbitmap.h.
12523         * tree-flow.h: Likewise.
12524         * cfgloop.h: Likewise.
12525         * except.h: Do not include sbitmap.h.  Include hashtab.h.
12526         * cgraph.h: Include vec.h and function.h.
12527         * reload.h (struct insn_chain): Change types of live_throughout
12528         and dead_or_set from regset_head to bitmap_head.
12529         (compute_use_by_pseudos): Be defined also if regset.h is not included.
12530         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
12531         spilled_regs from regset_head to bitmap_head to avoid dependency
12532         in regset.h.
12533         * sel-sched-ir.h: Include regset.h.
12534         * reload.c: Include df.h before reload.h.
12535         * caller-save.c: Likewise.
12536         * reload1.c: Likewise.
12537         * ira.c: Likewise.
12538         (mark_elimination): Update type of r to bitmap, consistent with
12539         DF_LR_IN.
12540         * dominance.c: Include bitmap.h.
12541         * modulo-sched.c: Include df.h.
12542         * cfganal.c: Include bitmap.h and sbitmap.h.
12543         * cfgbuild.c: Include sbitmap.h.
12544         * lcm.c: Include sbitmap.h.
12545         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
12546         * domwalk.c: Include sbitmap.h, exclude ggc.h.
12547         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
12548         * cselib.c: Include bitmap.h.
12549         * tree-optimize.c: Include regset.h.
12550         * stmt.c: Include bitmap.h.
12551         * Makefile.in: Update dependencies.
12552
12553 2010-05-22  Jan Hubicka  <jh@suse.cz>
12554
12555         * cgraph.h (struct varpool_node): Add same_comdat_group.
12556         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
12557         pointer.
12558         (output_varpool): Update call of lto_output_varpool_node.
12559         (input_varpool): Read same_comdat_group pointer.
12560         (input_varpool_1): Fixup same_comdat_group pointer.
12561         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
12562         group is needed, all are.
12563         * varpool.c (varpool_remove_node): Remove node from same comdat group
12564         linklist too.
12565         (varpool_analyze_pending_decls): Walk same comdat groups.
12566
12567 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
12568
12569         * rtl.h (union rtunion_def): Remove rt_bit member.
12570         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
12571         * print-rtl (print_rtx): Do not print the member.
12572         * gengtype.c (adjust_field_rtx_def): Do not handle it.
12573         * gengenrtl.c (type_from_format): Likewise.
12574         (accessor_from_format): Likewise.
12575
12576 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
12577
12578         * dbgcnt.c: Include toplev.h instead of errors.h.
12579         * ira-emit.c: Don't include errors.h.
12580         * ira.c: Include toplev.h instead of errors.h.
12581         * lto-compress.c: Include toplev.h instead of errors.h.
12582         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
12583         ira.o, dbgcnt.o): Update dependencies.
12584
12585 2010-05-22  Richard Guenther  <rguenther@suse.de>
12586
12587         * gimple.c (gimple_types_compatible_p): Check type qualifications
12588         before merging pointer to complete and pointer to incomplete type.
12589         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
12590         we use our own resolution algorithm.  The gold linker plugin
12591         doesn't do the job we want it to do here.
12592
12593 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
12594
12595         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12596         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12597         (sparc_mode_dependent_address_p): New function.
12598
12599 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
12600
12601         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
12602
12603         * timevar.c: Do not include any core headers.
12604         (timevar_print): De-i18n-ize.
12605         (print_time): Likewise.
12606         * timevar.h (timevar_push, timevar_pop): Make inline functions.
12607
12608 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
12609
12610         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
12611         langhooks-def.h.
12612         (diagnostic_initialize): Initialize x_data not last_function.
12613         (diagnostic_report_current_function): Move to tree-diagnostic.c.
12614         (default_diagnostic_starter): Call
12615         diagnostic_report_current_module not
12616         diagnostic_report_current_function.
12617         (diagnostic_report_diagnostic): Initialize x_data not
12618         abstract_origin.
12619         (verbatim): Likewise.
12620         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
12621         x_data.
12622         (struct diagnostic_context): Change last_function to x_data.
12623         (diagnostic_auxiliary_data): Replace with
12624         diagnostic_context_auxiliary_data and
12625         diagnostic_info_auxiliary_data.
12626         (diagnostic_last_function_changed, diagnostic_set_last_function,
12627         diagnostic_report_current_function): Move to tree-diagnostic.h.
12628         (print_declaration, dump_generic_node, print_generic_stmt,
12629         print_generic_stmt_indented, print_generic_expr,
12630         print_generic_decl, debug_c_tree, dump_omp_clauses,
12631         print_call_name, debug_generic_expr, debug_generic_stmt,
12632         debug_tree_chain, default_tree_printer): Move to
12633         tree-pretty-print.h.
12634         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
12635         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
12636         gimple-pretty-print.h.
12637         * pretty-print.c: Don't include tree.h
12638         (pp_base_format): Don't handle %K here.
12639         (pp_base_tree_identifier): Move to tree-pretty-print.c.
12640         * pretty-print.h (text_info): Change abstract_origin to x_data.
12641         (pp_tree_identifier, pp_unsupported_tree,
12642         pp_base_tree_identifier): Move to tree-pretty-print.h.
12643         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
12644         tree-pretty-print.h: New files.
12645         * tree-pretty-print.c: Include tree-pretty-print.h.
12646         (percent_K_format): New.  Moved from pretty-print.c.
12647         (pp_base_tree_identifier): Move from pretty-print.c.
12648         * c-objc-common.c: Include tree-pretty-print.h.
12649         (c_tree_printer): Handle %K here.
12650         * langhooks.c: Include tree-diagnostic.h.
12651         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
12652         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
12653         (default_tree_printer): Handle %K using percent_K_format.
12654         (general_init): Use default_tree_diagnostic_starter.
12655         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
12656         (free_lang_data): Use default_tree_diagnostic_starter.
12657         * c-pretty-print.c: Include tree-pretty-print.h.
12658         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12659         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12660         * dwarf2out.c: Include tree-pretty-print.h.
12661         * except.c: Include tree-pretty-print.h.
12662         * gimple-pretty-print.c: Include tree-pretty-print.h and
12663         gimple-pretty-print.h.
12664         * gimplify.c: Include tree-pretty-print.h.
12665         * graphite-poly.c: Include tree-pretty-print.h and
12666         gimple-pretty-print.h.
12667         * ipa-cp.c: Include tree-pretty-print.h.
12668         * ipa-inline.c: Include gimple-pretty-print.h.
12669         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12670         * ipa-pure-const.c: Include gimple-pretty-print.h.
12671         * ipa-struct-reorg.c: Include tree-pretty-print.h and
12672         gimple-pretty-print.h.
12673         * ipa-type-escape.c: Include tree-pretty-print.h.
12674         * print-rtl.c: Include tree-pretty-print.h.
12675         * print-tree.c: Include gimple-pretty-print.h.
12676         * sese.c: Include tree-pretty-print.h.
12677         * tree-affine.c: Include tree-pretty-print.h.
12678         * tree-browser.c: Include tree-pretty-print.h.
12679         * tree-call-cdce.c: Include gimple-pretty-print.h.
12680         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12681         * tree-chrec.c: Include tree-pretty-print.h.
12682         * tree-data-ref.c: Include tree-pretty-print.h and
12683         gimple-pretty-print.h.
12684         * tree-dfa.c: Include tree-pretty-print.h.
12685         * tree-if-conv.c: Include tree-pretty-print.h and
12686         gimple-pretty-print.h.
12687         * tree-inline.c: Include tree-pretty-print.h.
12688         * tree-into-ssa.c: Include tree-pretty-print.h and
12689         gimple-pretty-print.h.
12690         * tree-nrv.c: Include tree-pretty-print.h.
12691         * tree-object-size.c: Include tree-pretty-print.h and
12692         gimple-pretty-print.h.
12693         * tree-outof-ssa.c: Include tree-pretty-print.h and
12694         gimple-pretty-print.h.
12695         * tree-parloops.c: Include tree-pretty-print.h and
12696         gimple-pretty-print.h.
12697         * tree-predcom.c: Include tree-pretty-print.h and
12698         gimple-pretty-print.h.
12699         * tree-scalar-evolution.c: Include tree-pretty-print.h and
12700         gimple-pretty-print.h.
12701         * tree-sra.c: Include tree-pretty-print.h.
12702         * tree-ssa-address.c: Include tree-pretty-print.h.
12703         * tree-ssa-alias.c: Include tree-pretty-print.h.
12704         * tree-ssa-ccp.c: Include tree-pretty-print.h and
12705         gimple-pretty-print.h.
12706         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
12707         * tree-ssa-copy.c: Include tree-pretty-print.h and
12708         gimple-pretty-print.h.
12709         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
12710         * tree-ssa-dce.c: Include tree-pretty-print.h and
12711         gimple-pretty-print.h.
12712         * tree-ssa-dom.c: Include tree-pretty-print.h and
12713         gimple-pretty-print.h.
12714         * tree-ssa-dse.c: Include gimple-pretty-print.h.
12715         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
12716         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
12717         * tree-ssa-live.c: Include tree-pretty-print.h and
12718         gimple-pretty-print.h.
12719         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
12720         gimple-pretty-print.h.
12721         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
12722         gimple-pretty-print.h.
12723         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
12724         gimple-pretty-print.h.
12725         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
12726         gimple-pretty-print.h.
12727         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
12728         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
12729         * tree-ssa-operands.c: Include tree-pretty-print.h and
12730         gimple-pretty-print.h.
12731         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
12732         gimple-pretty-print.h.
12733         * tree-ssa-pre.c: Include tree-pretty-print.h and
12734         gimple-pretty-print.h.
12735         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
12736         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
12737         gimple-pretty-print.h.
12738         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
12739         gimple-pretty-print.h.
12740         * tree-ssa-sink.c: Include gimple-pretty-print.h.
12741         * tree-ssa-ter.c: Include tree-pretty-print.h and
12742         gimple-pretty-print.h.
12743         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
12744         * tree-ssa.c: Include tree-pretty-print.h and
12745         gimple-pretty-print.h.
12746         * tree-stdarg.c: Include gimple-pretty-print.h.
12747         * tree-switch-conversion.c: Include gimple-pretty-print.h.
12748         * tree-tailcall.c: Include tree-pretty-print.h and
12749         gimple-pretty-print.h.
12750         * tree-vect-data-refs.c: Include tree-pretty-print.h and
12751         gimple-pretty-print.h.
12752         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
12753         gimple-pretty-print.h.
12754         * tree-vect-loop.c: Include tree-pretty-print.h and
12755         gimple-pretty-print.h.
12756         * tree-vect-patterns.c: Include gimple-pretty-print.h.
12757         * tree-vect-slp.c: Include tree-pretty-print.h and
12758         gimple-pretty-print.h.
12759         * tree-vect-stmts.c: Include tree-pretty-print.h and
12760         gimple-pretty-print.h.
12761         * tree-vectorizer.c: Include tree-pretty-print.h.
12762         * tree-vrp.c: Include tree-pretty-print.h and
12763         gimple-pretty-print.h.
12764         * value-prof.c: Include tree-pretty-print.h and
12765         gimple-pretty-print.h.
12766         * var-tracking.c: Include tree-pretty-print.h.
12767         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
12768         (tree-diagnostic.o): New dependencies.
12769         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
12770         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
12771         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
12772         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
12773         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
12774         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
12775         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
12776         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
12777         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
12778         tree-ssa-address.o, tree-ssa-loop-niter.o,
12779         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
12780         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
12781         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
12782         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
12783         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
12784         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
12785         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
12786         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
12787         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
12788         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
12789         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
12790         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
12791         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
12792         tree-switch-conversion.o, var-tracking.o, value-prof.o,
12793         cfgexpand.o, pretty-print.o): Update dependencies.
12794
12795 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
12796
12797         * tree-ssa-structalias.c: Remove tm_p.h from include.
12798
12799 2010-05-21  Jeff Law  <law@redhat.com>
12800
12801         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
12802
12803 2010-05-21  Jason Merrill  <jason@redhat.com>
12804
12805         * tree-eh.c (cleanup_is_dead_in): New.
12806         (lower_try_finally): Don't generate a dead cleanup region.
12807         (lower_cleanup): Likewise.
12808
12809 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
12810
12811         PR debug/44223
12812         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
12813         unchain each use from the cyclic next_regno_use chain first.
12814
12815 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
12816
12817         * real: Do not include gmp.h, mpfr.h, and mpc.h.
12818         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
12819         (real_value_negate, real_value_abs): New prototypes.
12820         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
12821         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
12822         new include file for interface between MPFR and REAL_VALUE_TYPE.
12823         * real.c: Include realmpfr.h.
12824         (real_arithmetic2): Remove legacy function.
12825         (real_value_negate): New.
12826         (real_value_abs): New.
12827         (mfpr_from_real, real_from_mpfr): Move from here...
12828         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
12829         * builtins.c: Include realmpfr.h.
12830         * fold-const.c: Include realmpfr.h.
12831         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
12832         (fold_negate_const): Likewise.
12833         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
12834         * toplev.c: Include realmpfr.h.
12835         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
12836         and real_value_negate.
12837         * fixed-value.c (check_real_for_fixed_mode): Likewise.
12838         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
12839         (vfp3_const_double_index): Likewise.
12840         (arm_print_operand): Likewise.
12841         * Makefile.in: Update dependencies.
12842
12843 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12844
12845         * config/s390/s390.c (override_options): Increase the default
12846         of max-completely-peel-times.
12847
12848 2010-05-21  Julian Brown  <julian@codesourcery.com>
12849             Mark Mitchell  <mark@codesourcery.com>
12850
12851         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
12852         sibling calls for Thumb-1.
12853         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
12854         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
12855         Thumb-2.
12856         (*call_insn, *call_value_insn): Don't use for Thumb-2.
12857         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
12858         for Thumb-2.
12859         (return): New expander.
12860         (*arm_return): New name for ARM return insn.
12861         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
12862
12863 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
12864
12865         * config.gcc (sparc64-*-rtems*): New target.
12866
12867 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
12868
12869         * tree.c (build_function_decl_skip_args): Fix grammar.
12870         (build_function_type_list_1): Fix typos, adjust formatting.
12871
12872 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
12873
12874         * tree.h: Include real.h and fixed-value.h as basic datatypes.
12875         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
12876         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
12877         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
12878         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
12879         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
12880         tree-pretty-print.c, tree-loop-distribution.c,
12881         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
12882         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
12883         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
12884         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
12885         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
12886         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
12887         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
12888         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
12889         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
12890         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
12891         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
12892         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
12893         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
12894         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
12895         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
12896         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
12897         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
12898         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
12899         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
12900         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
12901         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
12902         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
12903         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
12904         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
12905         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
12906         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
12907         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
12908         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
12909         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
12910         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
12911         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
12912         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
12913         config/score/score7.c, config/score/score.c, config/arm/arm.c,
12914         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
12915         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
12916         config/bfin/bfin.c: Clean up redundant includes.
12917         * Makefile.in: Update accordingly.
12918
12919 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
12920
12921         PR middle-end/44204
12922         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
12923         statement has no arguments.
12924
12925 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
12926
12927         PR/44139
12928         * varasm.c (emutls_decl): Merge attributes to new decl.
12929
12930 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
12931
12932         PR middle-end/44101
12933         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
12934         around the uniquized constructor if its type requires a conversion.
12935
12936 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
12937
12938         PR debug/44205
12939         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
12940         at -O0 goto_locus of any of the incoming edges differs from
12941         goto_locus of outgoing edge, or gimple_location of any of the
12942         labels differs.
12943
12944 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
12945
12946         * ira.c (ira_non_ordered_class_hard_regs): Define.
12947         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
12948         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
12949         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
12950         cost of unaligned hard regs when allocating multi-reg pseudos.
12951
12952 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
12953
12954         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
12955         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
12956         for TARGET_NO_FLOAT.
12957         * config/mips/mips.c (mips_file_start): Expand conditional expression
12958         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
12959         (mips_override_options): Move -mno-float override -msoft-float and
12960         -mhard-float.
12961         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
12962         Condition(TARGET_SUPPORTS_NO_FLOAT).
12963         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
12964         __mips_no_float here.
12965         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
12966         (TARGET_SUPPORTS_NO_FLOAT): Define.
12967         * config/mips/sdemtk.opt: Delete.
12968
12969 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
12970
12971         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
12972
12973 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
12974
12975         PR target/43733
12976         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
12977         * configure: Regenerate.
12978         * config.in: Regenerate.
12979         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
12980         instead of sahf only for 64bit targets.
12981
12982 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
12983
12984         PR debug/44178
12985         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
12986         setup_ref_regs for DEBUG_INSNs.
12987
12988 2010-05-20  Jan Hubicka  <jh@suse.cz>
12989
12990         PR middle-end/44197
12991         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
12992
12993 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
12994
12995         PR bootstrap/43870
12996         * df-scan.c (df_ref_compare): Stabilize sort.
12997
12998 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
12999
13000         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
13001         argument.  Don't use DW_OP_piece if offset is non-zero,
13002         put offset into second DW_OP_bit_piece argument.
13003         (dw_sra_loc_expr): Adjust callers.  For memory expressions
13004         compute offset.
13005
13006 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
13007
13008         PR target/44202
13009         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
13010         settings for 16-bit-constant "addo" alternative.
13011
13012 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
13013
13014         * config/mips/mips-dsp.md (add<DSPV:mode>3,
13015         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
13016
13017         PR target/43764
13018         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
13019         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
13020         Use it.
13021
13022 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
13023
13024         * diagnostic.c (FLOAT, FFS): Don't undefine.
13025         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
13026         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
13027         include ordering.
13028
13029 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
13030
13031         * combine.c (propagate_for_debug): Call make_compound_operation
13032         on the source value.
13033         (try_combine): When implementing a split chosen by find_split_point,
13034         either copy i2src or set it to null.  Assert that i2src is not null
13035         before substituting into CALL_INSN_FUNCTION_USAGE.
13036
13037 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
13038
13039         * double-int.h (double_int_ior): New function.
13040         * tree.h (build_int_cst_wide_type): Remove.
13041         * tree.c (build_int_cst_wide_type): Remove.
13042         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
13043         of build_int_cst_wide_type.
13044         * stor-layout.c (set_sizetype): (Ditto.).
13045         * dojump.c (do_jump): Use build_int_cstu instead of
13046         build_int_cst_wide_type.
13047
13048 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
13049
13050         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
13051         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
13052         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
13053         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
13054         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
13055         propagate the 'data' argument to copy_tree_r.
13056         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
13057         Propagate 'data' argument to walk_tree.
13058         (copy_if_shared): New function.
13059         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
13060         (unmark_visited): New function.
13061         (unshare_body): Call copy_if_shared instead of doing it manually.
13062         (unvisit_body): Call unmark_visited instead of doing it manually.
13063
13064 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
13065
13066         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
13067         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
13068         * hooks.c: Likewise.
13069         * target-def.h (TARGET_FOLD_BUILTIN): Define to
13070         hook_tree_tree_int_treep_bool_null.
13071         * target.h (struct gcc_target): Update signature of fold_builtin
13072         field.
13073         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
13074         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
13075         instead of the call expression.
13076         (fold_builtin_call_array): Pass n and argarray directly.
13077         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
13078         consing a list.
13079         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
13080         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
13081         `i' and use it in place of `arity'.
13082         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
13083         Dereference `args' directly.
13084         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
13085
13086 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13087
13088         * doc/sourcebuild.texi (Effective-Target Keywords): Document
13089         3dnow, sse3, sse2.
13090         (Directives): Document optional dg-require-effective-target
13091         selector.
13092
13093 2010-05-19  Richard Guenther  <rguenther@suse.de>
13094
13095         PR lto/44196
13096         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
13097
13098 2010-05-19  Richard Guenther  <rguenther@suse.de>
13099
13100         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
13101         * common.opt (fwhopr=): New.
13102         * opts.c (common_handle_option): Handle OPT_fwhopr.
13103         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
13104         * collect2.c (main): Match -fwhopr*.
13105         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
13106         Execute ltrans stage in parallel when jobs is bigger than 1.
13107
13108 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13109
13110         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
13111         pentiumpro on Solaris 8/x86 with Sun as.
13112         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
13113         hidden alias bug.
13114         (gcc_cv_as_ix86_quad): Check for .quad directive.
13115         * configure: Regenerate.
13116         * config.in: Regenerate.
13117         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
13118
13119 2010-05-19  Martin Jambor  <mjambor@suse.cz>
13120
13121         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
13122         also for indirect edges.  Actual printing moved...
13123         (ipa_print_node_jump_functions_for_edge): ...here.
13124         (ipa_compute_jump_functions): Renamed to
13125         ipa_compute_jump_functions_for_edge and made static.
13126         (ipa_compute_jump_functions): New function.
13127         (make_edge_direct_to_target): Check if the number of arguments on
13128         the newly direct edge is the same as the number of parametrs of
13129         the callee.
13130         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
13131         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
13132         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
13133         analysis functions unconditionally, call the new
13134         ipa_analyze_params_uses on the node instead of every edge.
13135
13136 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
13137
13138         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
13139         to tree.
13140         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
13141         also checks for a constant int vs.  non-constant but
13142         loop-invariant steps.
13143         (find_or_create_group): Change the sort algorithm to only consider
13144         steps that are constant ints.
13145         (idx_analyze_ref): Adopt code to handle a tree instead of a
13146         HOST_WIDE_INT for step.
13147         (gather_memory_references_ref): Handle tree instead of int and be
13148         prepared to see a NULL_TREE.
13149         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
13150         prefetches if the step cannot be calculated at compile time.
13151         (issue_prefetch_ref): Issue prefetches for non-constant but
13152         loop-invariant steps.
13153
13154 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
13155
13156         Revert:
13157         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
13158
13159         * tree.h (build_call_list): Remove.
13160         * tree.c (build_call_list): Remove.
13161
13162 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
13163
13164         * tree.h (build_call_list): Remove.
13165         * tree.c (build_call_list): Remove.
13166
13167 2010-05-18  Jan Hubicka  <jh@suse.cz>
13168
13169         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
13170
13171 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
13172
13173         PR rtl-optimization/43332
13174         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
13175
13176 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
13177
13178         * tree.h (build_int_cstu): Implement as static inline.
13179         * tree.c (build_int_cstu): Remove function.
13180         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
13181         sign extended.
13182
13183 2010-05-18  Richard Guenther  <rguenther@suse.de>
13184
13185         PR lto/44143
13186         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
13187         (debug): Initialize from -save-temps.
13188         (collect_execute): Print command-line when verbose.
13189         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
13190         for ltrans invocation.  Produce -dumpbase flag again.
13191         (process_args): Remove.
13192         (main): Simplify.
13193         * collect2.c (maybe_run_lto_and_relink): Only pass object
13194         files to lto-wrapper.
13195         * gcc.c (LINK_COMMAND_SPEC): Likewise.
13196
13197 2010-05-18  Jan Hubicka  <jh@suse.cz>
13198
13199         * opts.c (decode_options): Do not disable whopr at ipa_cp.
13200         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
13201
13202 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
13203
13204         PR lto/44184
13205         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
13206         in a GIMPLE_ASM.
13207         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
13208         in a GIMPLE_ASM.
13209
13210 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
13211
13212         PR debug/41371
13213         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
13214         rtx_equal_p inline.
13215
13216 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
13217
13218         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
13219         lto-macho as lto_binary_reader.
13220
13221         * darwin.c (darwin_asm_named_section): Do not add assembler comment
13222         after .section directive; just print it before the directive instead.
13223
13224 2010-05-17  Jan Hubicka  <jh@suse.cz>
13225
13226         * cgraph.c (cgraph_create_virtual_clone): Only check
13227         versionable_function_p when not in wpa and checking is enabled.
13228         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
13229         there are no more functions to materialize.
13230
13231 2010-05-17  Jan Hubicka  <jh@suse.cz>
13232
13233         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
13234         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
13235         New functions.
13236         (output_cgraph): Call output_cgraph_opt_summary.
13237         (input_cgrpah): Call input_cgraph_opt_summary.
13238         (output_cgraph_opt_summary_p, output_node_opt_summary,
13239         input_node_opt_summary, input_cgraph_opt_section): New functions.
13240         * lto-section-in.c (lto_section_name): Add cgraphopt.
13241         * tree-inline.c (tree_function_versioning): Handle parm_num.
13242         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
13243         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
13244
13245 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
13246
13247         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
13248         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
13249         the insn to prefetch ratio heuristic to loops with known trip count.
13250
13251 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
13252
13253         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
13254         (schedule_prefetches): Do not generate a prefetch if the unroll factor
13255         is far from what is required by the prefetch.
13256
13257 2010-05-17  Jan Hubicka  <jh@suse.cz>
13258
13259         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
13260         (ipcp_estimate_growth): Likewise.
13261         (ipcp_const_param_count): Likewise.
13262         (ipcp_insert_stage): Likewise.
13263         * ipa-prop.c (visit_load_for_mod_analysis): New function.
13264         (visit_store_addr_for_mod_analysis): Set used flag.
13265         (ipa_detect_param_modifications): Set used flag for SSE params;
13266         update use of walk_stmt_load_store_addr_ops.
13267         (ipa_print_node_params): Print used flag.
13268         (ipa_write_node_info): Stream used flag.
13269         (ipa_read_node_info): Likewise.
13270         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
13271         (ipa_is_param_used): New function.
13272         (lto_ipa_fixup_call_notes): Remove unused declaration.
13273
13274 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13275
13276         PR target/44074
13277         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
13278         * configure: Regenerate.
13279         * config.in: Regenerate.
13280         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
13281         !HAVE_AS_IX86_REP_LOCK_PREFIX.
13282         Don't emit whitespace.
13283         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
13284         (*rep_movsi): Likewise.
13285         (*rep_movsi_rex64): Likewise.
13286         (*rep_movqi): Likewise.
13287         (*rep_movqi_rex64): Likewise.
13288         (*rep_stosdi_rex64): Likewise.
13289         (*rep_stossi): Likewise.
13290         (*rep_stossi_rex64): Likewise.
13291         (*rep_stosqi): Likewise.
13292         (*rep_stosqi_rex64): Likewise.
13293         (*cmpstrnqi_nz_1): Use {%;} after repz.
13294         (*cmpstrnqi_nz_rex_1): Likewise.
13295         (*cmpstrnqi_1): Likewise.
13296         (*cmpstrnqi_rex_1): Likewise.
13297         (*strlenqi_1): Use {%;} after repnz.
13298         (*strlenqi_rex_1): Likewise.
13299         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
13300         (*sync_compare_and_swap<mode>): Likewise.
13301         (sync_double_compare_and_swap<mode>): Likewise.
13302         (*sync_double_compare_and_swapdi_pic): Likewise.
13303         (sync_old_add<mode>): Likewise.
13304         (sync_add<mode>): Likewise.
13305         (sync_sub<mode>): Likewise.
13306         (sync_<code><mode>): Likewise.
13307
13308 2010-05-17  Martin Jambor  <mjambor@suse.cz>
13309
13310         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
13311         otr_token and polymorphic.
13312         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
13313         (cgraph_clone_edge): Copy the above fields.
13314         * tree.c (get_binfo_at_offset): New function.
13315         * tree.h (get_binfo_at_offset): Declare.
13316         * ipa-prop.h (enum jump_func_type): Added known_type jump function
13317         type, reordered items, updated comments.
13318         (union jump_func_value): Added base_type field, reordered fields.
13319         (enum ipa_lattice_type): Moved down in the file.
13320         (struct ipa_param_descriptor): New field polymorphic.
13321         (ipa_is_param_polymorphic): New function.
13322         * ipa-prop.c: Include gimple.h and gimple-fold.h.
13323         (ipa_print_node_jump_functions): Print known type jump functions.
13324         (compute_complex_pass_through): Renamed to...
13325         (compute_complex_assign_jump_func): this.
13326         (compute_complex_ancestor_jump_func): New function.
13327         (compute_known_type_jump_func): Likewise.
13328         (compute_scalar_jump_functions): Create known type and complex ancestor
13329         jump functions.
13330         (ipa_note_param_call): New parameter polymorphic, set the corresponding
13331         flag in the call note accordingly.
13332         (ipa_analyze_call_uses): Renamed to...
13333         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
13334         variable var only in the block where it is used.
13335         (ipa_analyze_virtual_call_uses): New function.
13336         (ipa_analyze_call_uses): Likewise.
13337         (combine_known_type_and_ancestor_jfs): Likewise.
13338         (update_jump_functions_after_inlining): Implemented handling of a
13339         number of new jump function types combination.
13340         (print_edge_addition_message): Removed.
13341         (make_edge_direct_to_target): New function.
13342         (try_make_edge_direct_simple_call): Likewise.
13343         (try_make_edge_direct_virtual_call): Likewise.
13344         (update_call_notes_after_inlining): Renamed to...
13345         (update_indirect_edges_after_inlining): this.  Moved edge creation for
13346         indirect calls to try_make_edge_direct_simple_call, also calls
13347         try_make_edge_direct_virtual_call for virtual calls.
13348         (ipa_print_node_params): Changed the header message.
13349         (ipa_write_jump_function): Stream also known type jump functions.
13350         (ipa_read_jump_function): Likewise.
13351         (ipa_write_indirect_edge_info): Stream new fields in
13352         cgraph_indirect_call_info.
13353         (ipa_read_indirect_edge_info): Likewise.
13354         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
13355         GIMPLE_FOLD_H.
13356
13357 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13358
13359         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
13360
13361 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
13362
13363         * tree.h (CALL_EXPR_ARGS): Delete.
13364         (call_expr_arglist): Delete.
13365         * tree.c (call_expr_arglist): Delete.
13366         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
13367         targetm.fold_builtin.
13368         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
13369         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
13370         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
13371         arglist parameter.  Use CALL_EXPR_ARG.
13372         (picochip_expand_builtin_3op): Likewise.
13373         (picochip_expand_builtin_2opvoid): Likewise.
13374         (picochip_expand_array_get): Likewise.
13375         (picochip_expand_array_put): Likewise.
13376         (picochip_expand_array_testport): Likewise.
13377         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
13378         rather than arglist.
13379         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
13380         CALL_EXPR_ARGS.
13381         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
13382         than TREE_VALUE and TREE_CHAIN.
13383         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
13384         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
13385         the arglist.
13386
13387 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
13388
13389         PR bootstrap/42347
13390         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
13391         to have no fallthru edge.
13392
13393         PR middle-end/44102
13394         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
13395         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
13396         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
13397         add BARRIER after previous bb if needed.
13398
13399 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
13400
13401         * tree.c (build_function_type_list_1): Remove bogus assert condition.
13402
13403 2010-05-17  Alan Modra  <amodra@gmail.com>
13404
13405         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
13406         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
13407         with copy_reg rtx param.
13408         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
13409         Correct cases where code for ABI_V4 did not initialise the reg
13410         used to access frame.  Also leave frame_reg_rtx as sp for large
13411         frames that save no regs.
13412
13413 2010-05-17  Martin Jambor  <mjambor@suse.cz>
13414
13415         PR middle-end/44133
13416         * tree-sra.c (create_access_replacement): New parameter rename, mark
13417         the replaement for renaming only when it is true.
13418         (get_access_replacement): Pass true in the rename parameter of
13419         create_access_replacement.
13420         (get_unrenamed_access_replacement): New function.
13421         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
13422         replacement declaration from it.
13423
13424 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
13425
13426         * function.c (try_fit_stack_local, add_frame_space): New static
13427         functions.
13428         (assign_stack_local_1): Use them.  Look for opportunities to use
13429         space previously wasted on alignment.
13430         * function.h (struct frame_space): New.
13431         (struct rtl_data): Add FRAME_SPACE_LIST member.
13432         * reload1.c (something_was_spilled): New static variable.
13433         (alter_reg): Set it.
13434         (reload): Test it in addition to testing if the frame size changed.
13435
13436 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
13437
13438         * config/s390/s390.c: Define sane prefetch settings and activate
13439         flag_prefetch_loop_arrays on -O3.
13440         * config/s390/s390.h: Declare that read can use write prefetch.
13441
13442 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
13443
13444         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
13445         build.
13446
13447 2010-05-16  Jan Hubicka  <jh@suse.cz>
13448
13449         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
13450         function body; do not check stdarg field of struct function.
13451
13452 2010-05-16  Jan Hubicka  <jh@suse.cz>
13453
13454         * cgraph.c (dump_cgraph_node): Dump versionable flag.
13455         * cgraph.h (cgraph_local_info): Add versionable flag.
13456         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
13457         (ipcp_versionable_function_p): Use it.
13458         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
13459         versionable flag.
13460
13461 2010-05-16  Jan Hubicka  <jh@suse.cz>
13462
13463         * cgraph.c (cgraph_clone_node): Take decl argument and insert
13464         clone into hash when it is different from orig.
13465         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
13466         * cgraph.h (cgraph_clone_node): Update prototype.
13467         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
13468         (lto_cgraph_encoder_delete): Delete body map.
13469         (lto_cgraph_encoder_size): Move to header.
13470         (lto_cgraph_encoder_encode_body_p,
13471         lto_set_cgraph_encoder_encode_body): New.
13472         (lto_output_node): Do not take written_decls argument; output clone_of
13473         pointer.
13474         (add_node_to): Add include_body_argument; call
13475         lto_set_cgraph_encoder_encode_body on master of the clone.
13476         (add_references): Update use of add_node_to.
13477         (compute_ltrans_boundary): Likewise.
13478         (output_cgraph): Do not create written_decls bitmap.
13479         (input_node): Take nodes argument; stream in clone_of correctly.
13480         (input_cgraph_1): Update use of input_node.
13481         * lto-streamer-out.c (lto_output): Use encoder info to decide
13482         what bodies to output.
13483         * ipa-inline.c (cgraph_clone_inlined_nodes,
13484         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
13485         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
13486         (lto_cgraph_encoder_size): Define here.
13487         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
13488         Declare.
13489
13490 2010-05-16  Richard Guenther  <rguenther@suse.de>
13491
13492         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
13493         -fipa-type-escape.
13494         * ipa-type-escape.c (gate_type_escape_vars): Run when
13495         -fipa-struct-reorg runs.
13496         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
13497         * common.opt (fipa-type-escape): Remove.
13498
13499 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
13500
13501         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
13502         (decode_options): Likewise.
13503         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
13504
13505 2010-05-16  Jan Hubicka  <jh@suse.cz>
13506
13507         * ipa.c (function_and_variable_visibility): Also bring local all
13508         aliases.
13509
13510 2010-05-16  Richard Guenther  <rguenther@suse.de>
13511
13512         * alias.c (nonoverlapping_memrefs_p): Remove use of
13513         IPA type-escape information.
13514
13515 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
13516
13517         * c-common.c (c_common_reswords): Add _Static_assert for C.
13518         * c-parser.c (c_token_starts_declaration,
13519         c_parser_next_token_starts_declaration,
13520         c_parser_static_assert_declaration_no_semi,
13521         c_parser_static_assert_declaration): New.
13522         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
13523         Handle static assertions if static_assert_ok.
13524         (c_parser_external_declaration, c_parser_declaration_or_fndef,
13525         c_parser_compound_statement_nostart, c_parser_label,
13526         c_parser_for_statement, c_parser_objc_methodprotolist,
13527         c_parser_omp_for_loop): All callers of
13528         c_parser_declaration_or_fndef changed.
13529         (c_parser_struct_declaration): Handle static assertions.
13530         (c_parser_compound_statement_nostart): Use
13531         c_parser_next_token_starts_declaration and
13532         c_token_starts_declaration to detect start of declarations.
13533         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
13534         Likewise.
13535
13536 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
13537
13538         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
13539         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
13540         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
13541         TARGET_FUNCTION_VALUE_REGNO_P): Define.
13542         (mmix_function_outgoing_value): Rename to...
13543         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
13544         (mmix_function_value_regno_p): Make static.
13545         (mmix_libcall_value): New function.
13546         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
13547         mmix_function_value_regno_p): Remove declaration.
13548
13549 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
13550
13551         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
13552         BUILT_IN_ALLOCA if stack checking is enabled.
13553
13554 2010-05-16  Richard Guenther  <rguenther@suse.de>
13555
13556         * var-tracking.c (vars_copy_1): Inline ...
13557         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
13558         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
13559         (variable_merge_over_cur): Adjust.  Merge asserts.
13560         (variable_merge_over_src): Likewise.
13561         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
13562         (variable_post_merge_new_vals): Merge asserts.
13563         (variable_post_merge_perm_vals): Likewise.
13564         (find_mem_expr_in_1pdv): Likewise.
13565         (dataflow_set_different_value): Remove.
13566         (onepart_variable_different_p): Merge asserts.
13567         (variable_different_p): Likewise.
13568         (dataflow_set_different_1): Inline ...
13569         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
13570         (emit_notes_for_differences_1): Merge asserts.
13571
13572 2010-05-16  Richard Guenther  <rguenther@suse.de>
13573
13574         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
13575         * optabs.c (libfunc_decl_hash): Likewise.
13576         * varasm.c (emutls_decl): Likewise.
13577
13578 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
13579
13580         * c-decl.c: Don't include gimple.h.
13581         (merge_decls): Do not copy gimple_body.
13582
13583 2010-05-15  Jason Merrill  <jason@redhat.com>
13584
13585         * c.opt: Add -fnothrow-opt.
13586
13587 2010-05-15  Jan Hubicka  <jh@suse.cz>
13588
13589         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
13590         analyzed.
13591         * passes.c (ipa_write_summaries): Write all analyzed nodes.
13592
13593 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
13594
13595         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
13596         * Makefile.in: Add it.
13597         Fix all other Makefile dependencies for changes below.
13598         * tree.h: Include it instead of defining VEC primitives here.
13599         * gimple.h: Likewise.
13600         * rtl.h: Likewise.
13601         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
13602         * except.h: Include vecir.h, break dependence on tree.h.
13603
13604         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
13605         Move from here...
13606         * tree-iterator.c: ...to here.
13607         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
13608
13609         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
13610         tm_p.h.
13611         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
13612         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
13613         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
13614         tree-mudflap.h, and target.h.
13615         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
13616         predict.h, tree-inline.h, gimple.h, and langhooks.h.
13617         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
13618         Add FIXME for why gimple.h is still included (should be unnecessary
13619         since GCC 4.5 gimplification unit-at-a-time).
13620         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
13621         * c-pragma.c: Add FIXME for why function.h needs to be included just
13622         for cfun, at front-end level.
13623         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
13624         Do not include ggc.h, but include vecprim.h for VEC(char).
13625         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
13626         Explain why target.h is included.
13627         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
13628         Explain why gimple.h is included.
13629         * c-ppoutput.c: Do not include tm.h.
13630         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
13631         * c-parses.c: Explain why rtl.h is included, and that this (and only
13632         this) is also why tm.h must be included.
13633         Do not include except.h.
13634         * c-lang.c: Do not include ggc.h.
13635
13636 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
13637
13638         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
13639
13640 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
13641
13642         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
13643         unions by default if those structs and unions have no tags.  Do
13644         not condition anonymous struct and unions handling on flag_iso.
13645         Allow anonymous structs and unions for C1X.
13646         (finish_struct): Do not diagnose lack of named fields when
13647         anonymous structs and unions present for C1X.  Accept flexible
13648         array members in structure with anonymous structs or unions but no
13649         directly named fields.
13650         * doc/extend.texi (Unnamed Fields): Update.
13651
13652 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
13653
13654         * gimple.h (compare_field_offset): Rename into...
13655         (gimple_compare_field_offset): ...this.
13656         * gimple.c (compare_field_offset): Rename into...
13657         (gimple_compare_field_offset): ...this.  Compare the full access if
13658         the offset is self-referential.
13659         (gimple_types_compatible_p): Adjust for above renaming.
13660         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
13661         DECL_NONADDRESSABLE_P flag of fields before merging them.
13662
13663 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
13664
13665         * tree.h (ctor_to_list): Delete.
13666         * tree.c (ctor_to_list): Delete.
13667
13668 2010-05-15  Jan Hubicka  <jh@suse.cz>
13669
13670         * ipa-reference.c: Include toplev.h
13671         (is_proper_for_analysis): Only add to all_module_statics
13672         if it is allocated.
13673         (write_node_summary_p, stream_out_bitmap,
13674         ipa_reference_write_optimization_summary,
13675         ipa_reference_read_optimization_summary): New.
13676         (struct ipa_opt_pass_d pass_ipa_reference): Add
13677         optimization summary streaming.
13678         * lto-cgraph.c (referenced_from_this_partition_p,
13679         reachable_from_this_partition_p): New functions.
13680         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
13681         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
13682         * opts.c (decode_options): Enable ipa_reference.
13683         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
13684         * lto-streamer.h (referenced_from_this_partition_p,
13685         reachable_from_this_partition_p): Declare.
13686
13687 2010-05-15  Richard Guenther  <rguenther@suse.de>
13688
13689         PR tree-optimization/44038
13690         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
13691         taking the address of a V_C_E of a constant.
13692
13693 2010-05-14  Jan Hubicka  <jh@suse.cz>
13694
13695         * tree.h (memory_identifier_string): Remove.
13696         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
13697         (ipa_reference_global_vars_info_d): Remove statics_not_read and
13698         statics_not_written.
13699         (ipa_reference_optimization_summary_d): New structure.
13700         (ipa_reference_optimization_summary_t): New type and vector.
13701         (ipa_reference_vars_info_d): Embedd structures instead of using
13702         pointers.
13703         (reference_vars_to_consider): Remove out of GGC space.
13704         (module_statics_escape): Remove.
13705         (global_info_obstack): Rename to ...
13706         (optimization_summary_obstack): ... this one.
13707         (initialization_status_t): Remove.
13708         (memory_identifier_string): Remove.
13709         (get_reference_vars_info): Fix indenting.
13710         (set_reference_vars_info): Likewise.
13711         (get_reference_optimization_summary): New.
13712         (set_reference_optimization_summary): New.
13713         (get_global_reference_vars_info): Remove.
13714         (ipa_reference_get_read_global): Remove.
13715         (ipa_reference_get_written_global): Remove.
13716         (ipa_reference_get_not_read_global): Update.
13717         (ipa_reference_get_not_written_global): Update.
13718         (is_proper_for_analysis): Outlaw addressable.
13719         (propagate_bits): Update for new datastructures.
13720         (analyze_variable): Remove.
13721         (init_function_info): Update for new datastructures.
13722         (clean_function_local_data): Remove.
13723         (clean_function): Remove.
13724         (copy_global_bitmap): Use optimizations_summary_obstack.
13725         (duplicate_node_data): Duplicate optimization summary only.
13726         (remove_node_data): Remove optimization summary only.
13727         (generate_summary): Do not analyze variables; do not compute
13728         module_statics_escape; do not prune solutions by it.
13729         (read_write_all_from_decl): Fix typos in comments.
13730         (propagate): Doscover readonly and nonaddressable first;
13731         update for new datastructures; share global bitmaps.
13732         * ipa-reference.h (ipa_reference_get_read_global,
13733         ipa_reference_get_written_global): Remove.
13734         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
13735         * Makefile.in: Remove ipa-refereference from GT files.
13736
13737 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
13738
13739         PR debug/44112
13740         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
13741         for all SYMBOL_REF_DECLs.
13742
13743 2010-05-14  Jan Hubicka  <jh@suse.cz>
13744
13745         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
13746         (varpool_all_refs_explicit_p): New inline function.
13747         * ipa-reference.c: Update comment.
13748         (module_statics_written): Remove.
13749         (get_static_decl): Remove.
13750         (ipa_init): Do not initialize module_statics_written.
13751         (analyze_function): Likewise.
13752         (generate_summary): Likewise; do not compute module_statics_readonly
13753         and do not update variable flags.
13754         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
13755         * ipa.c: Inlucde flags.h
13756         (cgraph_local_node_p): New.
13757         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
13758         promote functions to local.
13759         (ipa_discover_readonly_nonaddressable_vars): New function.
13760         (function_and_variable_visibility): Use cgraph_local_node_p.
13761         * varpool.c (varpool_finalize_decl): Set force_output for
13762         DECL_PRESERVE_P vars.
13763
13764 2010-05-14  Jan Hubicka  <jh@suse.cz>
13765
13766         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
13767
13768 2010-05-14  Richard Guenther  <rguenther@suse.de>
13769
13770         PR tree-optimization/44119
13771         * tree-ssa-pre.c (eliminate): Properly mark replacement of
13772         a PHI node necessary.
13773
13774 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
13775
13776         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
13777
13778 2010-05-14  Jason Merrill  <jason@redhat.com>
13779
13780         PR c++/44127
13781         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
13782         (gimple_call_set_nothrow): New.
13783         * gimple.c (gimple_build_call_from_tree): Call it.
13784         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
13785
13786         PR c++/44127
13787         * gimplify.c (gimplify_seq_add_stmt): No longer static.
13788         * gimple.h: Declare it.
13789         * gimple.c (gimple_build_eh_filter): No ops.
13790
13791 2010-05-14  Jan Hubicka  <jh@suse.cz>
13792
13793         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
13794         nodes already in queue.
13795         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
13796         re-enqueueing node.
13797
13798 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
13799
13800         PR debug/44136
13801         * cfgexpand.c (expand_debug_expr): If non-memory op0
13802         has BLKmode, return NULL.
13803
13804 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
13805
13806         * config.gcc: Add support for --with-cpu option for bdver1.
13807         * config/i386/i386.h (TARGET_BDVER1): New macro.
13808         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
13809         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
13810         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
13811         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
13812         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
13813         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
13814         (processor_type): Add PROCESSOR_BDVER1.
13815         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
13816         processor_type in config/i386/i386.h.
13817         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
13818         movaps <reg, reg> instead of movapd <reg, reg> when replacing
13819         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
13820         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
13821         to emit packed xor instead of packed double/packed integer
13822         xor for SSE and AVX when moving a zero value.
13823         * config/i386/sse.md: Add check for
13824         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
13825         movapd/movdqa for SSE and AVX.
13826         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
13827         single logical operations i.e and, or and xor instead of packed double
13828         logical operations for SSE and AVX.
13829         * config/i386/i386-c.c (ix86_target_macros_internal):
13830         Add PROCESSOR_BDVER1.
13831         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
13832         (has_fma4, has_xop): New.
13833         * config/i386/i386.c (bdver1_cost): New variable.
13834         (m_BDVER1): New macro.
13835         (m_AMD_MULTIPLE): Add m_BDVER1.
13836         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
13837         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
13838         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
13839         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
13840         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
13841         x86_tune_sse_partial_reg_dependency,
13842         x86_tune_sse_unaligned_load_optimal,
13843         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
13844         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
13845         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
13846         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
13847         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
13848         Enable/disable for bdver1.
13849         (processor_target_table): Add bdver1_cost.
13850         (cpu_names): Add bdver1.
13851         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
13852          processor_alias_table.
13853         (ix86_expand_vector_move_misalign): Change.
13854         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
13855         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
13856         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
13857         of movupd/movdqu for SSE and AVX.
13858         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
13859         (ix86_tune_adjust_cost): Add code for bdver1.
13860         (standard_sse_constant_opcode): Add check for
13861         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
13862         of packed double xor for SSE and AVX.
13863
13864 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
13865
13866         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
13867         result to unsigned.
13868
13869 2010-05-14  Tristan Gingold  <gingold@adacore.com>
13870
13871         * toplev.c (default_debug_hooks): Remove this variable.
13872         (process_options): Remove assignments to default_debug_hooks.
13873
13874 2010-05-14  Martin Jambor  <mjambor@suse.cz>
13875
13876         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
13877         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
13878         * langhooks.h (struct lang_hooks_for_decls): Removed field
13879         fold_obj_type_ref.
13880         * tree.c (free_lang_data): Remove assignment to
13881         lang_hooks.fold_obj_type_ref.
13882         * tree.def (OBJ_TYPE_REF): Update comment.
13883
13884 2010-05-14  Richard Guenther  <rguenther@suse.de>
13885
13886         PR tree-optimization/44124
13887         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
13888
13889 2010-05-14  Alan Modra  <amodra@gmail.com>
13890
13891         PR target/44075
13892         * config/rs6000/rs6000.c (struct machine_function): Reorder
13893         fields for better packing.  Add lr_save_state.
13894         (rs6000_ra_ever_killed): Return lr_save_state if set.
13895         (rs6000_emit_eh_reg_restore): Set lr_save_state.
13896
13897 2010-05-13  Jan Hubicka  <jh@suse.cz>
13898
13899         * varpool.c (decide_is_variable_needed): Drop code checking
13900         TREE_SYMBOL_REFERENCED.
13901
13902 2010-05-13  Jan Hubicka  <jh@suse.cz>
13903
13904         * final.c (output_addr_const): Do not call mark_decl_referenced.
13905         * cgraphunit.c (process_function_and_variable_attributes): Use
13906         mark_needed_node dirrectly.
13907         (assemble_thunk): Do not call mark_decl_referenced.
13908
13909 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
13910
13911         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
13912
13913 2010-05-13  Jeff Law  <law@redhat.com>
13914
13915         * ira-conflicts.c (print_allocno_conflicts): New function broken out
13916         from...
13917         (print_conflicts): Call print_allocno_conflicts.
13918
13919 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
13920
13921         PR debug/44104
13922         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
13923         if it is NULL.
13924
13925 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
13926
13927         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
13928         t-mingw-w64 or t-mingw-w32 for multilib configuration.
13929         * config/i386/t-mingw-w32: New.
13930         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
13931
13932 2010-05-13  Martin Jambor  <mjambor@suse.cz>
13933
13934         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
13935         gimple-fold.c).
13936         * gimple-fold.c (get_base_binfo_for_type): New function.
13937         (gimple_get_relevant_ref_binfo): Likewise.
13938         (gimple_fold_obj_type_ref_known_binfo): Likewise.
13939         (gimple_fold_obj_type_ref): Likewise.
13940         (fold_gimple_call): Simplify condition for folding virtual calls
13941         and call gimple_fold_obj_type_ref.
13942         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
13943         (gimple_fold_obj_type_ref_known_binfo): Likewise.
13944
13945 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
13946
13947         * config/rs6000/rs6000-protos.h
13948         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
13949         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
13950         (rs6000_debug_mode_dependent_address)
13951         (rs6000_mode_dependent_address_ptr): Likewise.
13952
13953 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
13954
13955         PR debug/43983
13956         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
13957         by SRA.
13958         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
13959         * tree-sra.c (create_access_replacement): Call unshare_expr before
13960         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
13961         * dwarf2out.c: Include tree-flow.h.
13962         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
13963         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
13964         Handle DW_OP_bit_piece.
13965         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
13966         construct_piece_list, adjust_piece_list): New functions.
13967         (add_var_loc_to_decl): Handle SRA optimized variables.
13968         Adjust for var_loc_note to loc field renaming.
13969         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
13970         in VAR_LOCATION note.
13971         (new_loc_descr_op_bit_piece): New function.
13972         (dw_sra_loc_expr): New function.
13973         (dw_loc_list): Use it.  Don't handle the last range after the
13974         loop, handle it inside of the loop.  Adjust for var_loc_note
13975         to loc field renaming.
13976         (add_location_or_const_value_attribute): Only special case
13977         single entry loc lists if loc is NOTE_P.  Adjust for
13978         var_loc_note to loc field renaming.
13979         (dwarf2out_var_location): Don't set newloc->var_loc_note
13980         and newloc->next here.
13981
13982 2010-05-12  Jan Hubicka  <jh@suse.cz>
13983
13984         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
13985         flag.
13986         * cgraph.h (cgraph_only_called_directly_p,
13987         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
13988         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
13989         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
13990         (assemble
13991         * ipa.c (cgraph_remove_unreachable_nodes): Use
13992         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
13993         flags.
13994         * tree-inline.c (copy_bb): Check address_taken flag.
13995         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
13996         externally_visible flag.
13997
13998 2010-05-12  Jason Merrill  <jason@redhat.com>
13999
14000         PR bootstrap/44048
14001         PR target/44099
14002         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
14003         * sdbout.c (plain_type_1): Likewise.
14004         * dwarf2out.c (is_base_type): Likewise.
14005         (gen_type_die_with_usage): Likewise.  Generate
14006         DW_TAG_unspecified_type for any LANG_TYPE.
14007
14008 2010-05-12  Jan Hubicka  <jh@suse.cz>
14009
14010         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
14011         indrect edges too.
14012         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
14013         (cgraph_clone_edge): Update.
14014         (cgraph_node_remove_callees): Remove indirect calls too.
14015         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
14016         (cgraph_create_indirect_edge): Update prototype.
14017         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
14018         is_proper_for_analysis.
14019         (add_new_function, visited_nodes, function_insertion_hook_holder,
14020         get_local_reference_vars_info, mark_address_taken, mark_address,
14021         mark_load, mark_store, check_asm_memory_clobber, check_call,
14022         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
14023         (ipa_init): Do not initialize visited_nodes;
14024         function_insertion_hook_holder.
14025         (analyze_variable): Rewrite.
14026         (analyze_function): Rewrite.
14027         (copy_local_bitmap): Remove.
14028         (duplicate_node_dat): Do not duplicate local info.
14029         (generate_summary): Simplify to only walk cgraph.
14030         (write_node_summary_p, ipa_reference_write_summary,
14031         ipa_reference_read_summary): Remove.
14032         (propagate): Do not remove function insertion;
14033         generate summary.
14034         (pass_ipa_reference): NULLify summary handling fields.
14035         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
14036         (input_edge): Input ecf_flags.
14037         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
14038         (update_indirect_edges_after_inlining): Ignore edges with unknown
14039         param.
14040
14041 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
14042
14043         * implicit-zee.c: New file.
14044         * tree-pass.h (pass_implicit_zee): Declare.
14045         * passes.c (init_optimization_passes): Add zee pass.
14046         * common.opt (fzee): New flag.
14047         * timevar.def (TV_ZEE): Define.
14048         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
14049         and beyond.
14050         * Makefile.in (implicit-zee.o): Add new build file.
14051
14052 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
14053             Nathan Froyd  <froydnj@codesourcery.com>
14054
14055         * c-common.c (sync_resolve_params): Remove write-only variable.
14056
14057 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
14058
14059         * target.h (struct gcc_target): Add mode_dependent_address_p field.
14060         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
14061         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
14062         * targhooks.c (default_mode_dependent_address_p): New function.
14063         * targhooks.h (default_mode_dependent_address_p): Declare function.
14064         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
14065         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
14066         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
14067         target hook. Change return type to bool.
14068         * recog.h (mode_dependent_address_p): Change return type to bool.
14069
14070 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
14071             Nathan Froyd  <froydnj@codesourcery.com>
14072
14073         * tree-mudflap.c (build_function_type_0, build_function_type_1,
14074         build_function_type_2, build_function_type_3): Remove.
14075         (mudflap_init): Use build_function_type_list.
14076
14077 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
14078             Nathan Froyd  <froydnj@codesourcery.com>
14079
14080         * coverage.c (build_fn_info_value): Call build_constructor instead of
14081         build_constructor_from_list.
14082         (build_ctr_info_value): Likewise.
14083         (build_gcov_info): Likewise.
14084
14085 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
14086
14087         * tree.c (build_constructor): Compute TREE_CONSTANT for the
14088         resultant constructor.
14089         (build_constructor_single): Don't set TREE_CONSTANT.
14090         (build_constructor_from_list): Don't compute TREE_CONSTANT.
14091
14092 2010-05-12  Jan Hubicka  <jh@suse.cz>
14093
14094         * cgraph.h (struct varpool_node): Add aux.
14095         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
14096         * varpool.c (varpool_remove_node): Do not remove initializer.
14097         (varpool_reset_queue): Export.
14098         (varpool_finalize_decl): Volatile vars are forced to be output.
14099         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
14100         replaced decl.
14101         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
14102         process_references, varpool_can_remove_if_no_refs): New functions.
14103         (cgraph_remove_unreachable_nodes): Handle variables too.
14104
14105 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
14106
14107         PR target/44088
14108         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
14109
14110 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
14111
14112         PR middle-end/44085
14113         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
14114         change value of ORT_TASK.
14115         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
14116         (omp_notice_threadprivate_variable): New function.
14117         (omp_notice_variable): Call it for threadprivate variables.
14118         If enclosing ctx is a task, print enclosing task rather than
14119         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
14120         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
14121         if task has untied clause.
14122
14123         PR debug/42278
14124         * dwarf2out.c (base_type_die): Don't add name attribute here.
14125         (modified_type_die): Instead of sizetype use
14126         its underlying original type.  If a DW_TAG_base_type doesn't
14127         have name added, add __unknown__.
14128         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
14129         always call force_type_die instead.
14130
14131 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
14132
14133         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
14134         for __stack_chk_guard.
14135
14136 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
14137
14138         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
14139         don't call start_source_file debug hook here...
14140         (finish_options): ... but here, after outputting predefined and
14141         command line defines and undefs.
14142
14143         PR middle-end/44071
14144         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
14145         no fallthru edge.
14146         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
14147         optimizing away empty bb with no successors, move over its
14148         footer chain to fallthru predecessor.
14149         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
14150         (rtl_split_edge): For asm goto call patch_jump_insn even if
14151         splitting fallthru edge.
14152
14153         PR c++/44059
14154         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
14155         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
14156         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
14157         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
14158         on DW.ref.* decls.
14159
14160         PR c++/44062
14161         * c-parser.c (c_parser_expression): Mark LHS of a comma
14162         expression as read if it is a decl, handled component or
14163         COMPOUND_EXPR with that on the RHS.
14164         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
14165         if it is a decl or handled component.
14166
14167 2010-05-11  Jan Hubicka  <jh@suse.cz>
14168
14169         * lto-symtab.c (lto_symtab_free): New function.
14170         * lto-streamer.h (lto_symtab_free): Declare.
14171
14172 2010-05-11  Jan Hubicka  <jh@suse.cz>
14173
14174         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
14175         that if function is needed it is reachable.
14176         (lto_output_node): See if it the function is reachable or referenced.
14177         (output_cgraph): Update call of lto_output_node.
14178         * lto-streamer.h (reachable_from_other_partition_p): Declare.
14179
14180 2010-05-11  Jan Hubicka  <jh@suse.cz>
14181
14182         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
14183         Mark as used.
14184
14185 2010-05-11  Jan Hubicka  <jh@suse.cz>
14186
14187         PR tree-optimize/44063
14188         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
14189         queue.
14190         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
14191         limits.
14192         (estimate_function_body_sizes): Compute sizes even when disregarding.
14193
14194 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
14195
14196         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
14197
14198 2010-05-11  Jan Hubicka  <jh@suse.cz>
14199
14200         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
14201         into every boundary.
14202
14203 2010-05-11  Jan Hubicka  <jh@suse.cz>
14204
14205         * matrix-reorg.c (matrix_reorg): Rebuild edges.
14206
14207 2010-05-11  Jan Hubicka  <jh@suse.cz>
14208
14209         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
14210         lto_streamer_cache_delete): Put nodes into heap.
14211         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
14212         heap.
14213
14214 2010-05-11  Jan Hubicka  <jh@suse.cz>
14215
14216         * cgraphbuild.c (cgraph_rebuild_references): New.
14217         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
14218         out extern inlines.
14219         * cgraph.h (cgraph_rebuild_references): Declare.
14220         * tree-inline.c (tree_function_versioning): Use it.
14221         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
14222
14223 2010-05-11  Jan Hubicka  <jh@suse.cz>
14224
14225         * cgraph.c: Include ipa-utils.h
14226         (cgraph_create_virtual_clone): Update references.
14227         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
14228
14229 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
14230
14231         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
14232         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
14233         cache size.
14234
14235 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
14236
14237         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
14238
14239 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
14240
14241         * gcc.c (execute): For -### don't quote arguments that
14242         contain just alphanumerics and _/-. characters.
14243         * doc/invoke.texi: Document that change for -###.
14244
14245         PR debug/44023
14246         * df-problems.c (struct dead_debug): Add to_rescan field.
14247         (dead_debug_init): Clear to_rescan field.
14248         (dead_debug_finish): Rescan all debug insns in to_rescan
14249         bitmap and free the bitmap.
14250         (dead_debug_insert_before): Instead of rescanning debug insns
14251         immediately queue their rescanning until dead_debug_finish.
14252         (df_note_bb_compute): After dead_debug_add do continue instead
14253         of break.
14254
14255 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
14256
14257         PR debug/44028
14258         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
14259         clear also INSN_REG_USE_LIST.
14260
14261 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14262
14263         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
14264
14265 2010-05-10  Jan Hubicka  <jh@suse.cz>
14266
14267         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
14268         commited change.
14269
14270 2010-05-10  Jan Hubicka  <jh@suse.cz>
14271
14272         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
14273         Allocate encoders.
14274         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
14275         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
14276         (lto_streamer_cache_create): Init alloc pool.
14277         (lto_streamer_cache_delete): Free alloc pool.
14278         * lto-streamer.h: Include alloc pool.
14279         (lto_streamer_cache_d): Use alloc pool.
14280         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
14281
14282 2010-05-10  Jan Hubicka  <jh@suse.cz>
14283
14284         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
14285         * cgraphbuild.c: Include except.h
14286         (record_type_list, record_eh_tables): New function.
14287         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
14288
14289 2010-05-10  Jan Hubicka  <jh@suse.cz>
14290
14291         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
14292         __frame_dummy_init_array_entry, force_to_data): Attribute as used
14293         rather than unused.
14294
14295 2010-05-10  Michael Matz  <matz@suse.de>
14296
14297         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
14298         (can_reassociate_p): Use FLOAT_TYPE_P.
14299         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
14300         (vect_force_simple_reduction): ... this.
14301         * tree-parloops.c (gather_scalar_reductions): Use
14302         vect_force_simple_reduction.
14303         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
14304         vect_is_simple_reduction, add modify argument, if true rewrite
14305         "a-b" into "a+(-b)".
14306         (vect_is_simple_reduction, vect_force_simple_reduction): New
14307         functions.
14308         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
14309
14310 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
14311             Vladimir Makarov  <vmakarov@redhat.com>
14312
14313         PR rtl-optimization/44012
14314         * ira-build.c (remove_unnecessary_allocnos): Nullify
14315         regno_allocno_map of the removed allocno.
14316
14317 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14318
14319         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
14320         to /dev/null.
14321         * configure: Regenerate.
14322
14323 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14324
14325         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
14326         unused.
14327         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
14328         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
14329         support in Sun ld.
14330         * configure: Regenerate.
14331
14332 2010-05-10  Richard Guenther  <rguenther@suse.de>
14333
14334         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
14335         marked if the entry identifier is marked.
14336
14337 2010-05-10  Richard Guenther  <rguenther@suse.de>
14338
14339         * c-common.c (struct c_common_attributes): Add fnspec attribute.
14340         (handle_fnspec_attribute): New function.
14341         * gimple.h (gimple_call_return_flags): Declare.
14342         (gimple_call_arg_flags): Likewise.
14343         * gimple.c (gimple_call_arg_flags): New function.
14344         (gimple_call_return_flags): Likewise.
14345         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
14346         New argument flags.
14347         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
14348         return value flags.
14349         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
14350         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
14351         main work to ...
14352         (make_heapvar_for): ... this new function.
14353         (handle_rhs_call): Handle fnspec attribute argument specifiers.
14354         (handle_lhs_call): Likewise.
14355         (find_func_aliases): Adjust.
14356
14357 2010-05-10  Richard Guenther  <rguenther@suse.de>
14358
14359         PR tree-optimization/44050
14360         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
14361
14362 2010-05-10  Wei Guozhi  <carrot@google.com>
14363
14364         PR target/42879
14365         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
14366
14367 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
14368
14369         PR c/10676
14370         * c-typeck.c (lookup_field): Take a type directly.  Update
14371         recursive calls.
14372         (build_component_ref): Update call to lookup_field.
14373         (set_init_label): Use lookup_field to find initialized field.
14374         Handle returned list of fields like a sequence of designators.
14375
14376 2010-05-09  Richard Guenther  <rguenther@suse.de>
14377
14378         PR middle-end/44024
14379         * fold-const.c (tree_single_nonzero_warnv_p): Properly
14380         handle &FUNCTION_DECL.
14381
14382 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
14383
14384         PR c/4784
14385         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
14386         structures and unions recursively.
14387         (detect_field_duplicates): Move duplicate detection with a hash to
14388         detect_field_duplicates_hash.  Always use a hash if anonymous
14389         structures or unions are present.
14390         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
14391         give errors.
14392
14393 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
14394
14395         PR target/44046
14396         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
14397         detect Atom, Core 2 and Core i7.
14398
14399 2010-05-09  Richard Guenther  <rguenther@suse.de>
14400
14401         * gcc.c (store_arg): Handle temporary file deletion for
14402         joined arguments.
14403
14404 2010-05-09  Richard Guenther  <rguenther@suse.de>
14405
14406         PR middle-end/44043
14407         * ipa-inline.c (estimate_function_body_sizes): Return after
14408         disregarding inline limits.
14409
14410 2010-05-09  Richard Guenther  <rguenther@suse.de>
14411
14412         * gcc.c (store_arg): Revert last change.
14413
14414 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
14415
14416         PR middle-end/28685
14417         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
14418         (optimize_ops_list): Call it.
14419
14420 2010-05-08  Richard Guenther  <rguenther@suse.de>
14421
14422         PR tree-optimization/44030
14423         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
14424         NECESSARY flag if we propagate from a inserted expression.
14425
14426 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
14427
14428         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
14429         domain types as equal if they are both PLACEHOLDER_EXPRs.
14430
14431 2010-05-08  Richard Guenther  <rguenther@suse.de>
14432
14433         * lto-wrapper.c (run_gcc): Remove linker output from
14434         command line for LTRANS invocation.
14435
14436 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
14437
14438         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
14439         lto-macho as lto_binary_reader.
14440         * target.h (struct gcc_target): New hooks lto_start and lto_end.
14441         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
14442         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
14443         in lto_start and lto_end calls.
14444         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
14445         magic numbers.
14446         (scan_prog_file): Update is_elf_or_coff call.
14447         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
14448
14449         * collect2.c (main): Fix enum comparison.
14450
14451         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
14452         Add prototypes.
14453         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
14454         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
14455         and TARGET_ASM_LTO_END.
14456         * darwin.c: Include obstack.h and lto-streamer.h.
14457         (lto_section_names_offset, lto_section_names_obstack,
14458         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
14459         global variables.
14460         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
14461         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
14462         to a temporary file.
14463         (darwin_asm_lto_end): New function.  Restore asm_out_file.
14464         (darwin_asm_named_section): For LTO sections, replace the name with
14465         the offset of the section name in a string table, and build this
14466         table.
14467         (darwin_file_start): Initialize global vars for LTO support.
14468         (darwin_file_end): If output to asm_out_file was redirected, append it
14469         to the proper asm_out_file here.  Add the section names section.
14470
14471 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
14472
14473         * c-pragma.c (pending_weak_d, pending_weak): New.
14474         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
14475         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
14476         handle_pragma_weak): Update the uses of pending_weaks.
14477
14478 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14479
14480         PR documentation/44016
14481         * doc/standards.texi (Standards): Link to unversioned
14482         cxx0x_status.html page.
14483
14484 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
14485
14486         PR target/43708
14487         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
14488         in addition to TREE_USED, to avoid "set but unused" warnings.
14489
14490 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
14491
14492         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
14493         (is_loop_prefetching_profitable): Do not insert prefetches
14494         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
14495         times the prefetch ahead distance.
14496
14497 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
14498
14499         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
14500         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
14501         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
14502         the unroll_factor.
14503
14504 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
14505
14506         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
14507         a diagnostic info when the insn-to-mem ratio is too small.
14508
14509 2010-05-07  Richard Guenther <rguenther@suse.de>
14510
14511         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
14512         the linker plugin.
14513         (store_arg): Queue temp_filename for deletion instead of
14514         the whole argument.
14515
14516 2010-05-07  Richard Guenther  <rguenther@suse.de>
14517
14518         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
14519         (run_gcc): Handle LTRANS phase invocation.
14520         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
14521
14522 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
14523
14524         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
14525         this is also meaningful on PARM_DECLs and RESULT_DECLs.
14526
14527 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14528
14529         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
14530
14531 2010-05-07  Richard Guenther  <rguenther@suse.de>
14532
14533         PR tree-optimization/44020
14534         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
14535         code when PRE is not yet initialized.
14536
14537 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14538
14539         * config/mips/dbxmdebug.h: Remove.
14540         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
14541
14542 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
14543
14544         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
14545         with null pointer and also warn about ordered comparison of zero with
14546         pointer if -Wextra.
14547
14548 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14549
14550         * graphite-blocking.c
14551         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
14552         * graphite-clast-to-gimple.c
14553         (clast_to_gcc_expression): Same.
14554         (precision_for_value): Same.
14555         (precision_for_interval): Same.
14556         (gcc_type_for_interval): Same.
14557         (graphite_create_new_guard): Same.
14558         (compute_bounds_for_level): Same.
14559         (graphite_create_new_loop_guard): Same.
14560         * graphite-interchange.c
14561         (build_linearized_memory_access): Same.
14562         (pdr_stride_in_loop): Same.
14563         (memory_strides_in_loop_1): Same.
14564         (memory_strides_in_loop): Same.
14565         (extend_scattering): Same.
14566         (psct_scattering_dim_for_loop_depth): Same.
14567         (pbb_number_of_iterations): Same.
14568         * graphite-poly.h
14569         (debug_iteration_domains): Same.
14570         * graphite-ppl.c
14571         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14572         (ppl_set_inhomogeneous_gmp): Same.
14573         (ppl_strip_loop): Same.
14574         (ppl_lexico_compare_linear_expressions): Same.
14575         (ppl_read_polyhedron_matrix): Same.
14576         (ppl_max_for_le_pointset): Same.
14577         * graphite-ppl.h
14578         (ppl_read_polyhedron_matrix): Same.
14579         (tree_int_to_gmp): Same.
14580         (gmp_cst_to_tree): Same.
14581         (ppl_set_inhomogeneous): Same.
14582         (ppl_set_inhomogeneous_tree): Same.
14583         (ppl_set_coef): Same.
14584         (ppl_set_coef_tree): Same.
14585         * graphite-sese-to-poly.c
14586         (build_pbb_scattering_polyhedrons): Same.
14587         (build_scop_scattering): Same.
14588         (scan_tree_for_params_right_scev): Same.
14589         (scan_tree_for_params): Same.
14590         (find_params_in_bb): Same.
14591         (find_scop_parameters): Same.
14592         (add_upper_bounds_from_estimated_nit): Same.
14593         (build_loop_iteration_domains): Same.
14594         (add_condition_to_domain): Same.
14595         (pdr_add_memory_accesses): Same.
14596
14597 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14598
14599         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
14600         CLooG's value_* macros to their respective mpz_* counterparts.
14601         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
14602         (graphite_create_new_loop_guard): Same.
14603         * graphite-interchange.c (build_linearized_memory_access): Same.
14604         (pdr_stride_in_loop): Same.
14605         (memory_strides_in_loop_1): Same.
14606         (1st_interchange_profitable_p): Same.
14607         * graphite-poly.c (extend_scattering): Same.
14608         (psct_scattering_dim_for_loop_depth): Same.
14609         (pbb_number_of_iterations): Same.
14610         (pbb_number_of_iterations_at_time): Same.
14611         * graphite-poly.h (new_1st_loop): Same.
14612         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
14613         (oppose_constraint): Same.
14614         (insert_constraint_into_matrix): Same.
14615         (ppl_set_inhomogeneous_gmp): Same.
14616         (ppl_set_coef_gmp): Same.
14617         (ppl_strip_loop): Same.
14618         (ppl_lexico_compare_linear_expressions): Same.
14619         (ppl_max_for_le_pointset): Same.
14620         (ppl_min_for_le_pointset): Same.
14621         (ppl_build_realtion): Same.
14622         * graphite-ppl.h (gmp_cst_to_tree): Same.
14623         (ppl_set_inhomogeneous): Same.
14624         (ppl_set_inhomogeneous_tree): Same.
14625         (ppl_set_coef): Same.
14626         (ppl_set_coef_tree): Same.
14627         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
14628         (build_scop_scattering): Same.
14629         (add_value_to_dim): Same.
14630         (scan_tree_for_params_right_scev): Same.
14631         (scan_tree_for_params_int): Same.
14632         (scan_tree_for_params): Same.
14633         (find_params_in_bb): Same.
14634         (find_scop_parameters): Same.
14635         (add_upper_bounds_from_estimated_nit): Same.
14636         (build_loop_iteration_domains): Same.
14637         (create_linear_expr_from_tree): Same.
14638         (add_condition_to_domain): Same.
14639         (pdr_add_memory_accesses): Same.
14640
14641 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
14642             Jason Merrill  <jason@redhat.com>
14643
14644         * c-common.c (c_common_reswords): Add nullptr.
14645         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
14646         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
14647         (gen_type_die_with_usage): Likewise.
14648         * dbxout.c (dbxout_type): Likewise.
14649         * sdbout.c (plain_type_1): Likewise.
14650
14651 2010-05-06  Jason Merrill  <jason@redhat.com>
14652
14653         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
14654         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
14655         ret appropriately.
14656         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
14657
14658         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
14659         stripping WITH_SIZE_EXPR.
14660         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
14661         change.
14662
14663 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14664
14665         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
14666         list of obsolete configurations.
14667         Disabled check for obsolete configurations.
14668         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
14669         Removed support for previous versions.
14670         * config/mips/iris.h: Removed.
14671         * config/mips/iris5.h: Removed.
14672         * config/mips/iris6.h: Merged old iris.h contents.
14673         (TARGET_IRIX): Removed.
14674         (DRIVER_SELF_SPECS): Removed mabi=32.
14675         (IDENT_ASM_OP): Removed undef.
14676         (STARTFILE_SPEC): Removed mabi=32.
14677         (ENDFILE_SPEC): Likewise.
14678         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
14679         (MACHINE_TYPE): Update for IRIX 6.5.
14680         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
14681         TARGET_IRIX by TARGET_IRIX6.
14682         (mips_file_start): Likewise.
14683         (mips_output_external): Remove IRIX 5/6 O32 support.
14684         (mips_output_function_prologue): Likewise.
14685         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
14686         TARGET_IRIX6.
14687         (TARGET_CPU_CPP_BUILTINS): Likewise.
14688         (TARGET_IRIX): Removed.
14689         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
14690         (MULTILIB_DIRNAMES): Removed 32.
14691         (MULTILIB_OSDIRNAMES): Removed ../lib.
14692         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
14693         (Specific, mips-sgi-irix5): Document removal.
14694         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
14695         Remove references to older IRIX 6 releases and the O32 ABI.
14696
14697 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
14698
14699         PR bootstrap/43994
14700         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
14701         instead of DF_REF_REAL_REG.
14702
14703 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
14704
14705         PR target/43888
14706         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
14707         handling to still return true for x64 targets.
14708
14709 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
14710
14711         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
14712
14713 2010-05-06  Jan Hubicka  <jh@suse.cz>
14714
14715         PR tree-optimization/43791
14716         * ipa-inline.c (update_caller_keys): Remove bogus
14717         disregard_inline_limits check.
14718
14719 2010-05-06  Michael Matz  <matz@suse.de>
14720
14721         PR tree-optimization/43984
14722         * tree-ssa-pre.c (inserted_phi_names): Remove.
14723         (inserted_exprs): Change to bitmap.
14724         (create_expression_by_pieces): Set bits, don't append to vector.
14725         (insert_into_preds_of_block): Don't handle inserted_phi_names.
14726         (eliminate): Don't look at inserted_phi_names, remove deleted
14727         insns from inserted_exprs.
14728         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
14729         (init_pre, fini_pre): Allocate and free bitmaps.
14730         (execute_pre): Insert insns on edges before elimination.
14731
14732 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
14733
14734         * tree.c (initializer_zerop): Handle STRING_CST.
14735
14736 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14737
14738         PR 40989
14739         * doc/invoke.texi (Wimplicit): Document as C only.
14740         * opts.c (common_handle_option): Add argument kind.
14741         (handle_option): Rename as read_cmdline_option. Factor out code to...
14742         (handle_option): ... here. New.
14743         (handle_options): Rename as read_cmdline_options.
14744         (decode_options): Update call.
14745         (set_option): Use option index instead of option pointer. Classify
14746         diagnostics correctly.
14747         (enable_warning_as_error): Call handle_option.
14748         * opts.h (set_option): Update declaration.
14749         (handle_option): Declare.
14750         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
14751         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
14752         * c-opts.c (set_Wimplicit): Delete.
14753         (c_family_lang_mask): New static constant.
14754         (c_common_handle_option): Add argument kind. Use handle_option
14755         instead of set_Wimplicit.
14756         (c_common_post_options): warn_implicit and warn_implicit_int
14757         are disabled by default.
14758         * c-common.c (warn_implicit): Do not define here.
14759         * c-common.h (warn_implicit): Do not declare here.
14760         (c_common_handle_option): Update declaration.
14761         * lto-opts.c (lto_reissue_options): Update call to set_option.
14762
14763 2010-05-06  Richard Guenther  <rguenther@suse.de>
14764
14765         PR tree-optimization/43571
14766         * domwalk.c (walk_dominator_tree): Walk the dominator
14767         sons in more optimal order.
14768
14769 2010-05-06  Richard Guenther  <rguenther@suse.de>
14770
14771         PR tree-optimization/43934
14772         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
14773         (stmt_cost): Likewise.
14774         (extract_true_false_args_from_phi): New helper.
14775         (determine_max_movement): For PHI nodes verify we can hoist them
14776         and compute their cost.
14777         (determine_invariantness_stmt): Handle PHI nodes.
14778         (move_computations_stmt): Likewise.  Hoist PHI nodes in
14779         if-converted form using COND_EXPRs.
14780         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
14781         (tree_ssa_lim): Likewise.
14782         * tree-flow.h (tree_ssa_lim): Adjust prototype.
14783         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
14784
14785 2010-05-06  Richard Guenther  <rguenther@suse.de>
14786
14787         PR tree-optimization/43987
14788         * tree-ssa-structalias.c (could_have_pointers): For possibly
14789         address-taken variables force pointers to be recorded.
14790         (create_variable_info_for_1): Likewise.
14791         (push_fields_onto_fieldstack): Pass in wheter all fields
14792         must have pointers.
14793         (find_func_aliases): Query types instead of vars whether
14794         they contain pointers where appropriate.
14795
14796 2010-05-06  Jan Hubicka  <jh@suse.cz>
14797
14798         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
14799         (record_reference, mark_address, mark_load, mark_store): Record
14800         references.
14801         (record_references_in_initializer): Update call of record_references.
14802         (rebuild_cgraph_edges): Remove all references before rebuiding.
14803         * cgraph.c (cgraph_create_node): Clear ref list.
14804         (cgraph_remove_node): Remove references.
14805         (dump_cgraph_node): Dump references.
14806         (cgraph_clone_node): Clone references.
14807         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
14808         (struct cgraph_node, varpool_node): Add ref_lst.
14809         * ipa-ref.c: New file.
14810         * ipa-ref.h: New file.
14811         * ipa-ref-inline.h: New file.
14812         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
14813         (referenced_from_other_partition_p): New function.
14814         (lto_output_varpool_node): Take set arugment; call
14815         referenced_from_other_partition.
14816         (lto_output_ref): New.
14817         (add_references): New.
14818         (output_refs): New.
14819         (output_cgraph): Compute boundary based on references; output refs.
14820         (output_varpool): Accept cgraph_node_set argument.
14821         (input_ref): New.
14822         (input_refs): New.
14823         (input_cgraph): Call input_refs.
14824         * lto-section-in.c (lto_section_name): Add refs.
14825         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
14826         (ipa-ref.o): New file.
14827         * varpool.c (varpool_node): Clear ipa ref list.
14828         (varpool_remove_node): Remove references.
14829         (dump_varpool_node): Dump references.
14830         (varpool_assemble_decl): Only compile finalized ones.
14831         (varpool_extra_name_alias): Initialize ref list.
14832         * lto-streamer.c (lto-get_section_name): Add .refs section.
14833         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
14834         (referenced_from_other_partition_p): Declared.
14835
14836 2010-05-06  Ira Rosen  <irar@il.ibm.com>
14837
14838         PR tree-optimization/43901
14839         * tree-vect-stmts.c (vectorizable_call): Assert that vector
14840         type is not NULL if it's transformation phase, and return
14841         FALSE if it's analysis.
14842         (vectorizable_conversion, vectorizable_operation,
14843         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
14844
14845 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
14846
14847         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
14848         Delete.
14849         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
14850         New define.
14851         * config/mips/mips-protos.h
14852         (mips_small_register_classes_for_mode_p): Delete prototype.
14853
14854 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
14855
14856         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
14857         * config/arm/arm.c (multiple_operation_profitable_p,
14858         compute_offset_order): New static functions.
14859         (load_multiple_sequence, store_multiple_sequence): Use them.
14860         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
14861         memory offsets, not register numbers.
14862         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
14863
14864 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
14865
14866         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
14867         (get_pending_sizes, put_pending_size, put_pending_sizes):
14868         Update the uses of pending_sizes.
14869         * c-decl.c (store_parm_decls): Likewise.
14870         * c-tree.h (struct c_arg_info): Likewise.
14871         * tree.h: Update the prototype for get_pending_sizes and
14872         put_pending_sizes.
14873
14874 2010-05-05  Jason Merrill  <jason@redhat.com>
14875
14876         PR debug/43370
14877         * c-common.c (handle_aligned_attribute): Respect
14878         ATTR_FLAG_TYPE_IN_PLACE.
14879
14880         PR testsuite/43758
14881         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
14882         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
14883         (TARGET_INITIALIZER): Use it.
14884         * c-common.c (attribute_takes_identifier_p): Call it.
14885         * c-common.h: Update prototype.
14886         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
14887         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
14888
14889 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
14890
14891         PR debug/43950
14892         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
14893         DW_ID_down_case for Fortran compilation units.
14894
14895 2010-05-05  Jan Hubicka  <jh@suse.cz>
14896
14897         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
14898         handle aliases.
14899
14900 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
14901
14902         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
14903         a variable-sized RESULT_DECL.
14904
14905 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
14906
14907         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
14908
14909 2010-05-05  Jason Merrill  <jason@redhat.com>
14910
14911         PR c++/43787
14912         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
14913         returns GS_OK.
14914         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
14915
14916 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
14917             Jakub Jelinek  <jakub@redhat.com>
14918
14919         PR debug/43478
14920         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
14921         (dead_debug_init, dead_debug_finish): New functions.
14922         (dead_debug_add, dead_debug_insert_before): Likewise.
14923         (df_note_bb_compute): Initialize a dead_debug object, add dead
14924         debug uses to it, insert debug bind insns before death insns,
14925         reset debug insns that refer to pending uses at the end.
14926         * rtl.h (make_debug_expr_from_rtl): New prototype.
14927         * varasm.c (make_debug_expr_from_rtl): New function.
14928
14929 2010-05-05  Jan Hubicka  <jh@suse.cz>
14930
14931         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
14932         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
14933         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
14934         lto_varpool_encoder_deref, lto_varpool_encoder_size,
14935         lto_varpool_encoder_encode_initializer_p,
14936         lto_set_varpool_encoder_encode_initializer): New functions.
14937         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
14938         call output_varpool.
14939         (input_varpool_node): Do not always set analyzed.
14940         (input_cgraph_1): Return vector of cgraph nodes.
14941         (input_varpool_1): Return vector of varpools.
14942         (input_cgraph): Free the vectors.
14943         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
14944         output only initializers needed.
14945         (lto_output): Only call output_cgraph.
14946         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
14947         * lto-section-out.c (lto_new_out_decl_state): Initialize
14948         state->varpool_node_encoder.
14949         * lto-streamer.h (lto_varpool_encoder_d): New.
14950         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
14951         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
14952         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
14953         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
14954         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
14955         Declare.
14956         (output_varpool, input_varpool): Remove declarations.
14957
14958 2010-05-05  Jan Hubicka  <jh@suse.cz>
14959
14960         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
14961         with body can prevail.
14962
14963 2010-05-05  Jan Hubicka  <jh@suse.cz>
14964
14965         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
14966         size.
14967
14968 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
14969
14970         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
14971
14972         * gengtype.h (erro_at_line): Constify pos argument.
14973
14974         * gengtype.c: Include hashtab.h.
14975         (enum gc_used): Document GC_MAYBE_POINTED_TO.
14976         (error_at_line): Constify pos argument.
14977         (do_typedef): Initialize p->opt field.
14978         (get_file_gtfilename): Fix comment typo.
14979         (struct walk_type_data): Constify line field.
14980         (get_output_file_for_structure): New function.
14981         (write_local_func_for_structure): Constify orig_s argument.
14982         Use get_output_file_for_structure.
14983         (write_func_for_structure): Use get_output_file_for_structure.
14984         (INDENT): New define.
14985         (dump_pair, dump_type, dump_type_list, dump_typekind)
14986         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
14987         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
14988         functions.
14989         (seen_types): New variable.
14990         (main): New variable do_dump.  Process "-d" command line option.
14991         Call dump_everything if dump requested.
14992
14993 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
14994
14995         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
14996         in a temporary instead of invoking the macro multiple times.
14997         (track_expr_p): Likewise.
14998
14999 2010-05-04  Neil Vachharajani <nvachhar@google.com>
15000
15001         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
15002         per new semantics.
15003         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
15004         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
15005         conditions for printing notes.
15006         * common.opt (-Wcoverage-mismatch): Allow negative, default to
15007         true, update documentation.
15008         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
15009
15010 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
15011
15012         PR c/43981
15013         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
15014         on dimen.
15015
15016 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
15017
15018         PR target/43799
15019         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
15020         (*sse_prologue_save_insn1): Likewise.
15021         (SSE prologue save splitter): Likewise.
15022
15023 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
15024
15025         * tree.c (free_lang_data_in_one_sizepos): New inline function.
15026         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
15027         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
15028         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
15029         all decls.  Call it on DECL_FIELD_OFFSET of fields.
15030         (find_decls_types_r): Follow DECL_VALUE_EXPR.
15031         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
15032
15033 2010-05-04  Martin Jambor  <mjambor@suse.cz>
15034
15035         * tree-sra.c (build_access_from_expr_1): The first parameter type
15036         changed to simple tree.
15037         (build_access_from_expr): Likewise, gsi parameter was eliminated.
15038         (scan_assign_result): Renamed to assignment_mod_result, enum elements
15039         renamed as well.
15040         (build_accesses_from_assign): Removed all parameters except for a
15041         simple gimple statement.  Now returns a simple bool.
15042         (scan_function): All non-analysis parts moved to separate functions
15043         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
15044         parameters and updated both callers.
15045         (sra_modify_expr): Removed parameter data.
15046         (sra_modify_function_body): New function.
15047         (perform_intra_sra): Call sra_modify_function_body to modify the
15048         function body.
15049         (replace_removed_params_ssa_names): Parameter data changed into
15050         adjustments vector.
15051         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
15052         changed the parameter dont_convert to convert with the opposite
15053         meaning.
15054         (sra_ipa_modify_assign): Parameter data changed into adjustments
15055         vector, return value changed to bool.
15056         (ipa_sra_modify_function_body): New function.
15057         (sra_ipa_reset_debug_stmts): Updated a comment.
15058         (modify_function): Use ipa_sra_modify_function_body to modify function
15059         body.
15060
15061 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
15062
15063         PR middle-end/43671
15064         * alias.c (true_dependence): Handle the same VALUE in x and mem.
15065         (canon_true_dependence): Likewise.
15066         (write_dependence_p): Likewise.
15067
15068 2010-05-04  Jan Hubicka  <jh@suse.cz>
15069
15070         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
15071         * cgraphbuild.c: Include ipa-utils.h
15072         (record_reference_ctx): New struct.
15073         (record_reference): Simplify to work on initializers; not statements.
15074         (mark_address, mark_load, mark_store): New.
15075         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
15076         walk PHI nodes too.
15077         (record_references_in_initializer): Update use of record_reference.
15078         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
15079         walk PHI nodes too.
15080
15081 2010-05-04  Jan Hubicka  <jh@suse.cz>
15082
15083         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
15084         node will be removed anyway.
15085         (lto_varpool_replace_node): Allow also unanalyzed nodes;
15086         relink aliases of node into prevailing node.
15087         * varpool.c (varpool_remove_node): Remove aliases properly;
15088         when removing node, remove all its aliases too; remove DECL_INITIAL
15089         of removed node; ggc_free the varpool node.
15090
15091 2010-05-04  Richard Guenther  <rguenther@suse.de>
15092
15093         PR tree-optimization/43879
15094         * tree-ssa-structalias.c (alias_get_name): Use
15095         DECL_ASSEMBLER_NAME if available.
15096         (create_function_info_for): Return the varinfo node.
15097         (ipa_pta_execute): Associate same-body aliases and extra names
15098         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
15099
15100 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
15101
15102         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
15103
15104 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
15105
15106         PR bootstrap/43964
15107         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
15108         only if HONOR_REG_ALLOC_ORDER is not defined.
15109
15110 2010-05-04  Richard Guenther  <rguenther@suse.de>
15111
15112         PR tree-optimization/43949
15113         * tree-vrp.c (extract_range_from_binary_expr): Only handle
15114         TRUNC_MOD_EXPR.
15115
15116 2010-04-26  Jason Merrill  <jason@redhat.com>
15117
15118         * c.opt (-fstrict-enums): New.
15119         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
15120
15121 2010-05-03  David Ung <davidu@mips.com>
15122             James E. Wilson  <wilson@codesourcery.com>
15123
15124         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
15125         emit the trap instruction before the divide for TUNE_74K.
15126
15127 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
15128
15129         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
15130         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
15131         based on the above, for new target hook.
15132
15133         * hooks.c (hook_bool_mode_true): New generic hook.
15134         * hooks.h (hook_bool_mode_true): Add prototype.
15135
15136         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
15137         target hook.
15138         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
15139         target hook, set to hook_bool_mode_false.
15140         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
15141         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
15142         with targetm.small_register_classes_for_mode_p.
15143         (find_reusable_reload): Likewise.
15144         (combine_reloads): Likewise.
15145         * reload1.c (reload_as_needed): Likewise.
15146         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
15147         * ifcvt.c (noce_process_if_block, check_cond_move_block,
15148         dead_or_predicable): Likewise.
15149         * regmove.c (optimize_reg_copy_1): Likewise.
15150         * calls.c (prepare_call_address): Likewise.
15151         (precompute_register_parameters): Likewise.
15152
15153         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
15154         hook definition.
15155         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
15156         implementation of the hook that considers all register classes
15157         small except for SH64.
15158         (sh_override_options): Use the new hook.
15159         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
15160         Add prototype.
15161
15162         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
15163         hook definition.
15164         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
15165         implementation of the hook that considers all register classes
15166         small for THUMB1.
15167         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
15168         Add prototype.
15169
15170         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
15171         hook definition.
15172         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
15173         implementation of the hook that considers all register classes
15174         small for MIPS16.
15175         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
15176         Add prototype.
15177
15178         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
15179         hook definition.
15180         * config/m32c/m32c.h: Likewise.
15181         * config/pdp11/pdp11.h: Likewise.
15182         * config/avr/avr.h: Likewise.
15183         * config/xtensa/xtensa.h: Likewise.
15184         * config/m68hc11/m68hc11.h: Likewise.
15185         * config/mn10300/mn10300.h: Likewise.
15186         * config/mcore/mcore.h: Likewise.
15187         * config/h8300/h8300.h: Likewise.
15188         * config/bfin/bfin.h: Likewise.
15189
15190         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
15191         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
15192
15193 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
15194
15195         * double-int.h (tree_to_double_int): Remove macro.
15196         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
15197         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
15198         (tree_to_double_int): New function.
15199         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
15200         Move ...
15201         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
15202
15203 2010-05-03  Richard Guenther  <rguenther@suse.de>
15204
15205         PR tree-optimization/43971
15206         * tree-ssa-structalias.c (get_constraint_for_1): Fix
15207         constraints in the !flag_delete_null_pointer_checks case.
15208
15209 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
15210
15211         PR debug/43972
15212         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
15213         result mode matches original rtl mode.
15214
15215 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
15216
15217         PR target/43888
15218         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
15219
15220 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15221
15222         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
15223         when processing flag options.
15224
15225 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15226
15227         * gcov-iov.c (main): Change format string placeholder
15228         from %#08x to 0x%08x.
15229         * genchecksum.c (dosum): Change format string placeholder
15230         from %#02x to 0x%02x.
15231
15232 2010-05-02  Richard Guenther  <rguenther@suse.de>
15233
15234         PR tree-optimization/43879
15235         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
15236
15237 2010-05-02  Bruno Haible  <bruno@clisp.org>
15238
15239         * doc/extend.texi (Function Attributes): Fix a typo.
15240
15241 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15242
15243         Revert:
15244         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
15245         placeholder from 0x%x to %#x.
15246         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
15247         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
15248         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
15249         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
15250         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
15251         * config/i386/i386.c (ix86_target_string): Ditto.
15252         * config/i386/i386.c (output_pic_addr_const): Ditto.
15253         (print_operand): Ditto.
15254
15255 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15256
15257         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
15258         placeholder from 0x%x to %#x.
15259         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
15260         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
15261         (ASM_OUTPUT_DEBUG_DATA): Ditto.
15262         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
15263         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
15264         * optc-gen.awk: Ditto.
15265         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
15266         (HOST_WIDE_INT_PRINT_HEX): Ditto.
15267         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
15268         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
15269
15270 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
15271
15272         * target.h (struct calls): Add function_value_regno_p field.
15273         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
15274         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
15275         * targhooks.c (default_function_value_regno_p): New function.
15276         * targhooks.h (default_function_value_regno_p): Declare function.
15277         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
15278         * builtins.c. (apply_result_size): (Ditto.).
15279         * combine.c. (likely_spilled_retval_p): (Ditto.).
15280         * mode-switching.c. Include 'target.h'.
15281         (create_pre_exit): Use function_value_regno_p hook.
15282         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
15283         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
15284         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
15285
15286         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
15287         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
15288         (ix86_function_value_regno_p): Declare as static, change argument
15289         type to const unsigned int.
15290         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
15291
15292 2010-05-01  Richard Guenther  <rguenther@suse.de>
15293
15294         PR tree-optimization/43949
15295         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
15296         types.
15297         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
15298
15299 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
15300
15301         * rtl.h (CONST_DOUBLE_P): Define.
15302         (rtx_to_double_int): Declare.
15303         * emit-rtl.c (rtx_to_double_int): New function.
15304         * dwarf2out.c (insert_double): New function.
15305         (loc_descriptor, add_const_value_attribute): Clean up, use
15306         rtx_to_double_int and insert_double functions.
15307
15308 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
15309
15310         * doc/extend.texi (Inline): Add missing return keyword to examples.
15311         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
15312         "command-line".
15313
15314 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
15315
15316         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
15317         the variable part of the offset as well.  Use highest_pow2_factor for
15318         all alignment checks.
15319
15320 2010-04-30  Richard Guenther  <rguenther@suse.de>
15321
15322         PR tree-optimization/43879
15323         * tree-ssa-structalias.c (type_could_have_pointers): Functions
15324         can have pointers.
15325
15326 2010-04-30  Jan Hubicka  <jh@suse.cz>
15327
15328         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
15329         varpool.
15330         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
15331
15332 2010-04-30  Jan Hubicka  <jh@suse.cz>
15333
15334         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
15335         New.
15336         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
15337         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
15338         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
15339         cgraph_node_set_needs_ltrans_p): Remove.
15340
15341 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
15342
15343         * sdbout.c: Include vec.h, do not include varray.h.
15344         (deferred_global_decls, sdbout_global_decl,
15345         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
15346         * toplev.c: Do not include varray.h.
15347         (dump_memory_report): Do not dump VARRAY statistics.
15348         * gengtype.c (open_base_file): Ignore varray.h.
15349         * Makefile.in: Update for abovementioned changes.
15350         Remove all traces of varray.c and varray.h.
15351         * varray.c: Remove file.
15352         * varray.h: Remove file.
15353
15354 2010-04-30  Jan Hubicka  <jh@suse.cz>
15355
15356         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
15357         references.
15358
15359 2010-04-30  Jan Hubicka  <jh@suse.cz>
15360
15361         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
15362         needed.
15363
15364 2010-04-30  Richard Guenther  <rguenther@suse.de>
15365
15366         * tree-ssa-structalias.c (get_constraint_for_1): Generate
15367         constraints for CONSTRUCTOR.
15368
15369 2010-04-30  Richard Guenther  <rguenther@suse.de>
15370
15371         PR lto/43946
15372         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
15373         first after all lowering passes.
15374
15375 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
15376
15377         * toplev.c: Include varray.h for statistics dumping.
15378         * tree.h: Do not declare varray_head_tag.
15379         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
15380         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
15381         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
15382         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
15383         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
15384         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
15385         c-common.c, c-common.h, reg-stack.c, basic-block.h,
15386         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
15387         include varray.h.
15388         * Makefile.in: Update for abovementioned changes.
15389
15390 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
15391
15392         PR debug/43942
15393         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
15394
15395 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
15396
15397         * config/picochip/picochip.c (picochip_legitimize_address): Define.
15398         Use this function to do machine-specific conversion.
15399         (picochip_legitimize_reload_address): Likewise.
15400         (picochip_legitimate_address_p): Check valid base register only if
15401         strict.
15402         (picochip_check_conditional_copy): Check for modw only if opnd is
15403         register.
15404         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
15405         to call the function in c.
15406         * config/picochip/picochip-protos.h
15407         (picochip_legitimize_reload_address): Define.
15408         * config/picochip/picochip.md (supported_compare1): Define.
15409
15410 2010-04-30  Jan Hubicka  <jh@suse.cz>
15411
15412         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
15413         (cgraph_global_info): Remove inlined.
15414         (LTO_cgraph_tag_names): Remove.
15415         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
15416         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
15417         simplify cgraph tags and document.
15418         (lto_output_node): Use only LTO_cgraph_unavail_node and
15419         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
15420         for_functions_valid, global info, process and output flags.
15421         (input_overwrite_node): Initialize estimated stack size and
15422         estimated growth.  Do not read flags we no longer store.
15423         (input_node): Likewise do not read info no longer stored.
15424         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
15425         flag.
15426
15427 2010-04-30  Richard Guenther  <rguenther@suse.de>
15428
15429         PR tree-optimization/43879
15430         * tree-ssa-structalias.c (get_constraint_for_1): Properly
15431         handle non-zero initializers.
15432
15433 2010-04-30  Richard Guenther  <rguenther@suse.de>
15434
15435         * builtins.c (fold_builtin_1): Delete free (0).
15436
15437 2010-04-29  Jan Hubicka  <jh@suse.cz>
15438
15439         * gengtype.c (open_base_files): Add lto-streamer.h
15440         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
15441         (pass_ipa_cp): GGC collect.
15442         * toplev. (compile_file): Do not output symbols.
15443         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
15444         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
15445         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
15446         * lto-section-in.c: Include ggc.h
15447         (lto_new_in_decl_state): Alloc in GGC.
15448         (lto_delete_in_decl_state): Likewise.
15449         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
15450         Collect.
15451
15452 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
15453
15454         PR target/42895
15455         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
15456         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
15457         (HONOR_REG_ALLOC_ORDER): Describe new macro.
15458         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
15459         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
15460         account only if HONOR_REG_ALLOC_ORDER is not defined.
15461         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
15462         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
15463
15464 2010-04-29  Jon Grant  <04@jguk.org>
15465
15466         * collect2.c (vflag): Change type from int to bool.
15467         (debug): Likewise.
15468         (helpflag): New global bool.
15469         (main): Set vflag and debug with boolean, not integer truth values.
15470         Accept new "--help" option and output usage text if found.
15471         * collect2.h (vflag): Update prototype.
15472         (debug): Likewise.
15473
15474 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
15475
15476         PR bootstrap/43936
15477         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
15478
15479 2010-04-29  Richard Guenther  <rguenther@suse.de>
15480
15481         PR bootstrap/43935
15482         * plugin.h (invoke_plugin_callbacks): Annotate arguments
15483         with ATTRIBUTE_UNUSED.
15484
15485 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
15486
15487         PR target/43921
15488         * config/i386/i386.c (get_some_local_dynamic_name): Replace
15489         INSN_P with NONDEBUG_INSN_P.
15490         (distance_non_agu_define): Likewise.
15491         (distance_agu_use): Likewise.
15492
15493 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
15494
15495         From Dominique d'Humieres <dominiq@lps.ens.fr>
15496         PR bootstrap/43858
15497         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
15498         test_set.
15499
15500 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
15501
15502         * plugin.h (invoke_plugin_callbacks): New inline function.
15503         * plugin.c (flag_plugin_added): New global flag.
15504         (add_new_plugin): Initialize above flag.
15505         (invoke_plugin_callbacks): Rename to ...
15506         (invoke_plugin_callbacks_full): ... this.
15507
15508 2010-04-28  Jan Hubicka  <jh@suse.cz>
15509
15510         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
15511         (lto_varpool_replace_node): New.
15512         (lto_symtab_resolve_symbols): Resolve varpool nodes.
15513         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
15514         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
15515         * cgraph.h (varpool_node_ptr): New type.
15516         (varpool_node_ptr): New vector.
15517         (varpool_node_set_def): New structure.
15518         (varpool_node_set): New type.
15519         (varpool_node_set): New vector.
15520         (varpool_node_set_element_def): New structure.
15521         (varpool_node_set_element, const_varpool_node_set_element): New types.
15522         (varpool_node_set_iterator): New type.
15523         (varpool_node): Add prev pointers, add used_from_other_partition,
15524         in_other_partition.
15525         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
15526         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
15527         varpool_get_node, varpool_remove_node): Declare.
15528         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
15529         varpool_node_set_size): New inlines.
15530         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
15531         * tree-pass.h (varpool_node_set_def): Forward declare.
15532         (ipa_opt_pass_d): Summary writting takes vnode sets too.
15533         (ipa_write_optimization_summaries): Update prototype.
15534         * ipa-cp.c (ipcp_write_summary): Update.
15535         * ipa-reference.c (ipa_reference_write_summary): Update.
15536         * lto-cgraph.c (lto_output_varpool_node): New static function.
15537         (output_varpool): New function.
15538         (input_varpool_node): New static function.
15539         (input_varpool_1): New function.
15540         (input_cgraph): Input varpool.
15541         * ipa-pure-const.c (pure_const_write_summary): Update.
15542         * lto-streamer-out.c (lto_output): Update, output varpool too.
15543         (write_global_stream): Kill WPA hack.
15544         (produce_asm_for_decls): Update.
15545         (output_alias_pair_p): Handle variables.
15546         (output_unreferenced_globals): Output only needed partition of varpool.
15547         * ipa-inline.c (inline_write_summary): Update.
15548         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
15549         cgraph.
15550         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
15551         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
15552         varpool_node_set_new, varpool_node_set_add,
15553         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
15554         debug_varpool_node_set): New functions.
15555         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
15556         (execute_one_pass): Process new decls too.
15557         (ipa_write_summaries_2): Pass around vsets.
15558         (ipa_write_summaries_1): Likewise.
15559         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
15560         to add.
15561         (ipa_write_optimization_summaries_1): Pass around vsets.
15562         (ipa_write_optimization_summaries): Likewise.
15563         * varpool.c (varpool_get_node): New.
15564         (varpool_node): Update doubly linked lists.
15565         (varpool_remove_node): New.
15566         (dump_varpool_node): More dumping.
15567         (varpool_enqueue_needed_node): Update doubly linked lists.
15568         (decide_is_variable_needed): Kill ltrans hack.
15569         (varpool_finalize_decl): Kill lto hack.
15570         (varpool_assemble_decl): Skip decls in other partitions.
15571         (varpool_assemble_pending_decls): Update doubly linkes lists.
15572         (varpool_empty_needed_queue): Likewise.
15573         (varpool_extra_name_alias): Likewise.
15574         * lto-streamer.c (lto_get_section_name): Add vars section.
15575         * lto-streamer.h (lto_section_type): Update.
15576         (output_varpool, input_varpool): Declare.
15577
15578 2010-04-28  Mike Stump  <mikestump@comcast.net>
15579
15580         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
15581
15582 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
15583
15584         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
15585         record or union type with RECORD_OR_UNION_TYPE_P predicate.
15586         (lto_input_ts_type_tree_pointers): Likewise.
15587         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
15588         (lto_output_ts_type_tree_pointers): Likewise.
15589
15590 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
15591
15592         Uniquization of constants at the Tree level
15593         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
15594         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
15595         bit to the end.
15596         (tree_output_constant_def): Declare.
15597         * gimplify.c (gimplify_init_constructor): When using block copy, first
15598         uniquize the constant constructor on the RHS.
15599         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
15600         DECL_IN_CONSTANT_POOL flag.
15601         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
15602         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
15603         constant pool.
15604         (assemble_variable): Deal with symbols belonging to the tree constant
15605         pool.
15606         (get_constant_section): Add ALIGN parameter and simplify.
15607         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
15608         (assemble_constant_contents): Use the expression of the VAR_DECL.
15609         (output_constant_def_contents): Use the alignment of the VAR_DECL.
15610         (tree_output_constant_def): New global function.
15611         (mark_constant): Use the expression of the VAR_DECL.
15612         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
15613         its expression.
15614         (output_object_block): Likewise and assemble the expression.
15615
15616 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
15617
15618         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
15619         hash_tree, eq_tree): New tree hash table.
15620         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
15621         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
15622         lto_orig_address_remove): Reimplement.
15623
15624 2010-04-28  Xinliang David Li  <davidxl@google.com>
15625
15626         PR c/42643
15627         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
15628         (compute_uninit_opnds_pos): New function.
15629         (is_non_loop_exit_postdominating): New function.
15630         (compute_control_dep_chain): New function.
15631         (find_pdom): New function.
15632         (convert_control_dep_chain_into_preds): New function.
15633         (find_predicates): New function.
15634         (find_control_equiv_block): New function.
15635         (collect_phi_def_edges): New function.
15636         (find_def_preds): New function.
15637         (find_dom): New function.
15638         (dump_predicates): New function.
15639         (get_cmp_code): New function.
15640         (is_value_included_in): New function.
15641         (find_matching_predicate_in_rest_chains): New function.
15642         (use_pred_not_overlap_with_undef_path_pred): New function.
15643         (is_use_properly_guarded): New function.
15644         (normalize_cond_1): New function.
15645         (is_and_or_or): New function.
15646         (normalize_cond): New function.
15647         (is_gcond_subset_of): New function.
15648         (is_subset_of_any): New function.
15649         (is_or_set_subset_of): New function.
15650         (is_and_set_subset_of): New function.
15651         (is_norm_cond_subset_of): New function.
15652         (is_pred_expr_subset_of): New function.
15653         (is_pred_chain_subset_of): New function.
15654         (is_included_in): New function.
15655         (is_superset_of): New function.
15656         (find_uninit_use): New function.
15657         (warn_uninitialized_phi): New function.
15658         (compute_possibly_undefined_names): New function.
15659         (ssa_undefined_value_p): New function.
15660         (execute_late_warn_uninitialized): New function.
15661         * tree-ssa.c (ssa_undefined_value_p): Removed.
15662         (warn_uninit): Changed to extern.
15663         (warn_uninitialized_phi): Removed.
15664         (warn_uninitialized_vars): Changed to extern.
15665         (execute_late_warn_uninitialized): Removed
15666         * tree-flow.h: Add new prototypes.
15667         * timevar.def: Add new time variable.
15668         * Makefile.in: Add new build file.
15669
15670 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
15671
15672         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
15673         type if available.
15674
15675 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15676
15677         PR target/22224
15678         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
15679
15680 2010-04-28  Martin Jambor  <mjambor@suse.cz>
15681
15682         * cgraph.h (struct cgraph_node): New field indirect_calls.
15683         (struct cgraph_indirect_call_info): New type.
15684         (struct cgraph_edge): Removed field indirect_call. New fields
15685         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
15686         (cgraph_create_indirect_edge): Declare.
15687         (cgraph_make_edge_direct): Likewise.
15688         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
15689         * ipa-prop.h (struct ipa_param_call_note): Removed.
15690         (struct ipa_node_params): Removed field param_calls.
15691         (ipa_create_all_structures_for_iinln): Declare.
15692         * cgraph.c: Described indirect edges and uids in initial comment.
15693         (cgraph_add_edge_to_call_site_hash): New function.
15694         (cgraph_edge): Search also among the indirect edges, use
15695         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
15696         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
15697         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
15698         site hash.
15699         (initialize_inline_failed): Assign a reason to indirect edges.
15700         (cgraph_create_edge_1): New function.
15701         (cgraph_create_edge): Moved some functionality to
15702         cgraph_create_edge_1.
15703         (cgraph_create_indirect_edge): New function.
15704         (cgraph_edge_remove_callee): Add an assert checking for
15705         non-indirectness.
15706         (cgraph_edge_remove_caller): Special-case indirect edges.
15707         (cgraph_remove_edge): Likewise.
15708         (cgraph_set_edge_callee): New function.
15709         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
15710         (cgraph_make_edge_direct): New function.
15711         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
15712         the declaration of the call statement matches.
15713         (cgraph_node_remove_callees): Special-case indirect edges.
15714         (cgraph_clone_edge): Likewise.
15715         (cgraph_clone_node): Clone also the indirect edges.
15716         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
15717         indirect_call, dump count of indirect_calls edges.
15718         * ipa-prop.c (iinlining_processed_edges): New variable.
15719         (ipa_note_param_call): Create indirect edges instead of
15720         creating notes.  New parameter node.
15721         (ipa_analyze_call_uses): New parameter node, pass it on to
15722         ipa_note_param_call.
15723         (ipa_analyze_stmt_uses): Likewise.
15724         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
15725         (print_edge_addition_message): Work on edges rather than on notes.
15726         (update_call_notes_after_inlining): Likewise, renamed to
15727         update_indirect_edges_after_inlining.
15728         (ipa_create_all_structures_for_iinln): New function.
15729         (ipa_free_node_params_substructures): Do not free notes.
15730         (ipa_edge_duplication_hook): Propagate bits within
15731         iinlining_processed_edges bitmap.
15732         (ipa_node_duplication_hook): Do not duplicate notes.
15733         (free_all_ipa_structures_after_ipa_cp): Renamed to
15734         ipa_free_all_structures_after_ipa_cp.
15735         (free_all_ipa_structures_after_iinln): Renamed to
15736         ipa_free_all_structures_after_iinln.
15737         (ipa_write_param_call_note): Removed.
15738         (ipa_read_param_call_note): Removed.
15739         (ipa_write_indirect_edge_info): New function.
15740         (ipa_read_indirect_edge_info): Likewise.
15741         (ipa_write_node_info): Do not stream notes, do stream information
15742         in indirect edges.
15743         (ipa_read_node_info): Likewise.
15744         (lto_ipa_fixup_call_notes): Removed.
15745         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
15746         * ipa-inline.c (pass_ipa_inline): Likewise.
15747         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
15748         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
15749         * tree-inline.c (copy_bb): Removed an unnecessary double check for
15750         is_gimple_call.
15751         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
15752         edges.
15753         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
15754         (output_cgraph): Stream also indirect edges.
15755         (lto_output_edge): Added capability to stream indirect edges.
15756         (input_edge): Likewise.
15757         (input_cgraph_1): Likewise.
15758         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
15759         of indirect edges.
15760
15761 2010-04-28  Richard Guenther  <rguenther@suse.de>
15762
15763         PR tree-optimization/43879
15764         PR tree-optimization/43909
15765         * tree-ssa-structalias.c (struct variable_info): Add
15766         only_restrict_pointers flag.
15767         (new_var_info): Initialize it.  Increment stats.total_vars here.
15768         (create_function_info_for): Do not increment stats.total_vars here.
15769         (get_function_part_constraint): Fix build with C++.
15770         (insert_into_field_list): Remove.
15771         (push_fields_onto_fieldstack): Properly merge fields.
15772         (create_variable_info_for): Split and simplify.
15773         (create_variable_info_for_1): New piece.
15774         (intra_create_variable_infos): Properly make restrict constraints
15775         from parameters.
15776
15777 2010-04-28  Richard Guenther  <rguenther@suse.de>
15778
15779         PR c++/43880
15780         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
15781
15782 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15783             Jan Hubicka <hubicka@ucw.cz>
15784
15785         * doc/invoke.texi (-Wsuggest-attribute=const,
15786         -Wsuggest-attribute=pure): Document.
15787         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
15788         (function_always_visible_to_compiler_p,
15789         suggest_attribute, warn_function_pure, warn_function_const):
15790         New functions.
15791         (check_call): Improve debug info.
15792         (analyze_function): Do not check availability.
15793         (add_new_function): Check availability.
15794         (propagate): Output warnings.
15795         (skip_function_for_local_pure_const): New function.
15796         (local_pure_const): Use it; output warnings.
15797         * common.opt (Wsuggest-attribute=const,
15798         Wsuggest-attribute=pure): New.
15799
15800 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
15801
15802         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
15803         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
15804         or DW_CFA_def_cfa_offset{,_sf}.
15805
15806 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
15807
15808         * tree.h: Fix truncated long macros.
15809
15810 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
15811
15812         * collect2.c (TARGET_64BIT): Redefine to target's default.
15813         * tlink.c: Likewise.
15814         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
15815         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
15816         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
15817         for underscoring __USER_LABEL_PREFIX__.
15818         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
15819         (SUB_LINK_ENTRY32): New.
15820         (SUB_LINK_ENTRY64): New.
15821         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
15822         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
15823         (SUB_LINK_ENTRY64): New.
15824         (SUB_LINK_ENTRY): New.
15825         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
15826         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
15827         x64 target is choosen.
15828         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
15829         * configure: Regenerated.
15830         * configure.ac (leading-mingw64-underscores): Option added.
15831
15832 2010-04-27  Jan Hubicka  <jh@suse.cz>
15833
15834         * doc/invoke.texi (-fipa-profile): Document.
15835         * opts.c (decode_options): Enable ipa-profile at -O1.
15836         * timevar.def (TV_IPA_PROFILE): Define.
15837         * common.opt (fipa-profile): Add.
15838         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
15839         flag for clones.
15840         (cgraph_propagate_frequency): Handle only local ones.
15841         * tree-pass.h (pass_ipa_profile): Declare.
15842         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
15843         (pass_ipa_profile): Use TV_IPA_PROFILE.
15844         * ipa.c (ipa_profile): New function.
15845         (gate_ipa_profile): Likewise.
15846         (pass_ipa_profile): New global variable.
15847         * passes.c (pass_ipa_profile): New.
15848
15849 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
15850
15851         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
15852
15853 2010-04-27  Martin Jambor  <mjambor@suse.cz>
15854
15855         PR middle-end/43812
15856         * ipa.c (dissolve_same_comdat_group_list): New function.
15857         (function_and_variable_visibility): Call
15858         dissolve_same_comdat_group_list when comdat group contains external or
15859         newly local nodes.
15860         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
15861         lists are circular and that they contain only DECL_ONE_ONLY nodes.
15862
15863 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
15864
15865         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
15866         (const_hash_1) <VECTOR_CST>: New case.
15867         (compare_constant) <VECTOR_CST>: Likewise.
15868         <ADDR_EXPR>: Deal with LABEL_REFs.
15869         (copy_constant) <VECTOR_CST>: New case.
15870
15871 2010-04-27  Jan Hubicka  <jh@suse.cz>
15872
15873         * cgraph.c (cgraph_propagate_frequency): New function.
15874         * cgraph.h (cgraph_propagate_frequency): Declare.
15875         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
15876         cgraph_propagate_frequency.
15877
15878 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
15879
15880         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
15881
15882 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
15883
15884         PR target/40657
15885         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
15886         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
15887         here to determine which regs to push and how much stack to reserve.
15888
15889 2010-04-27  Jie Zhang  <jie@codesourcery.com>
15890
15891         * doc/gimple.texi (gimple_statement_with_ops): Remove
15892         addresses_taken field.
15893         (gimple_statement_with_memory_ops): Likewise.
15894
15895 2010-04-27  Jan Hubicka  <jh@suse.cz>
15896
15897         * tree-inline.c (eni_inlining_weights): Remove.
15898         (estimate_num_insns): Special case more builtins.
15899
15900 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
15901
15902         PR c/32207
15903         * c-typeck.c (build_binary_op): Move forward check for comparison
15904         pointer with null pointer constant and adjust the diagnostic message.
15905
15906 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
15907
15908         PR lto/42776
15909         * configure.ac (gcc_cv_as_section_has_align): Set if installed
15910         binutils supports extended .section directive needed by LTO, or
15911         warn if older binutils found.
15912         (LTO_BINARY_READER): New AC_SUBST'd variable.
15913         (LTO_USE_LIBELF): Likewise.
15914         * gcc/config.gcc (lto_binary_reader): New target-specific configure
15915         variable.
15916         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
15917         (LTO_USE_LIBELF): Likewise.
15918         * configure: Regenerate.
15919
15920         * collect2.c (is_elf): Rename from this ...
15921         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
15922          object files in addition to ELF-formatted ones.
15923         (scan_prog_file): Caller updated.  Also allow for LTO info marker
15924         symbol to be prefixed or not by an extra underscore.
15925
15926         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
15927         * config/i386/winnt.c: Also #include lto-streamer.h
15928         (i386_pe_asm_named_section): Specify 1-byte section alignment for
15929         LTO named sections.
15930         (i386_pe_asm_output_aligned_decl_common): Add comment.
15931         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
15932
15933 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
15934
15935         PR target/43889
15936         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
15937         Add missing earlyclobber for second alternative.
15938
15939 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
15940
15941         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
15942         bits for artificial defs at the top of the block.
15943         * fwprop.c (single_def_use_enter_block): Don't call it.
15944
15945 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
15946
15947         PR 43715
15948         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
15949         instead of "$gcc_cv_objdump -T".
15950         Use "-undefined dynamic_lookup" on darwin.
15951         * gcc/configure: Regenerate.
15952
15953 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
15954
15955         PR c/43893
15956         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
15957
15958 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
15959
15960         * c-parser.c (struct c_token): Move location field up.
15961         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
15962         (struct c_declspecs): Convert typespec_word, storage_class, and
15963         default_int_p into bitfields.
15964         (struct c_declarator): Move loc field up.
15965
15966 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
15967
15968         * cfgloop.h (struct loop): Move can_be_parallel field up.
15969         * ipa-prop.h (struct ip_node_params): Move bitfields up.
15970         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
15971         down.
15972         (struct iv_cand): Convert pos field into a bitfield.
15973         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
15974         field up.
15975         (struct _stmt_vec_info): Shuffle fields for better packing.
15976
15977 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
15978
15979         * varasm.c (IN_NAMED_SECTION): Remove guard.
15980         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
15981         (IN_NAMED_SECTION_P): ...this.
15982         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
15983         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
15984
15985 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
15986
15987         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
15988         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
15989         of shadowing it.  Fix comments.
15990
15991 2010-04-26  Jan Hubicka  <jh@suse.cz>
15992
15993         * cgraph.c (cgraph_create_node): Set node frequency to normal.
15994         (cgraph_clone_node): Copy function frequency.
15995         * cgraph.h (node_frequency): New enum
15996         (struct cgraph_node): Add.
15997         * final.c (rest_of_clean_state): Update.
15998         * lto-cgraph.c (lto_output_node): Output node frequency.
15999         (input_overwrite_node): Input node frequency.
16000         * tre-ssa-loop-ivopts (computation_cost): Update.
16001         * lto-streamer-out.c (output_function): Do not output function
16002         frequency.
16003         * predict.c (maybe_hot_frequency_p): Update and handle functions
16004         executed once.
16005         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
16006         attribute lookup.
16007         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
16008         (compute_function_frequency): Set noreturn functions to be executed
16009         once.
16010         (choose_function_section): Update.
16011         * lto-streamer-in.c (input_function): Do not input function frequency.
16012         * function.c (allocate_struct_function): Do not initialize function
16013         frequency.
16014         * function.h (function_frequency): Remove.
16015         (struct function): Remove function frequency.
16016         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
16017         (try_update): Update.
16018         * tree-inline.c (initialize_cfun): Do not update function frequency.
16019         * passes.c (pass_init_dump_file): Update.
16020         * i386.c (ix86_compute_frame_layout): Update.
16021         (ix86_pad_returns): Update.
16022
16023 2010-04-26  Jie Zhang  <jie@codesourcery.com>
16024
16025         PR tree-optimization/43833
16026         * tree-vrp.c (range_int_cst_p): New.
16027         (range_int_cst_singleton_p): New.
16028         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
16029         when both operands are constants.  Use range_int_cst_p in
16030         BIT_IOR_EXPR case.
16031
16032 2010-04-26  Jan Hubicka  <jh@suse.cz>
16033
16034         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
16035
16036 2010-04-26  Richard Guenther  <rguenther@suse.de>
16037
16038         PR lto/43080
16039         * gimple.c (gimple_decl_printable_name): Deal gracefully
16040         with a NULL DECL_NAME.
16041
16042 2010-04-26  Richard Guenther  <rguenther@suse.de>
16043
16044         PR lto/42425
16045         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
16046         if emitting debug information and it is either a function
16047         or a namespace decl.
16048
16049 2010-04-26  Ira Rosen  <irar@il.ibm.com>
16050
16051         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
16052         determine if the statement is vectorizable, and a macro to access it.
16053         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
16054         Skip statements that can't be vectorized. If the analysis fails,
16055         mark the statement as unvectorizable if vectorizing basic block.
16056         (vect_compute_data_refs_alignment): Likewise.
16057         (vect_verify_datarefs_alignment): Skip statements marked as
16058         unvectorizable. Add print.
16059         (vect_analyze_group_access): Skip statements that can't be
16060         vectorized. If the analysis fails, mark the statement as
16061         unvectorizable if vectorizing basic block.
16062         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
16063         * tree-vect-stmts.c (vectorizable_store): Fix the number of
16064         generated stmts for SLP.
16065         (new_stmt_vec_info): Initialize the new field.
16066         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
16067         statements marked as unvectorizable.
16068
16069 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
16070
16071         * c-common.c (flag_isoc1x): New.
16072         (flag_isoc99): Update comment.
16073         * c-common.h (flag_isoc1x): New.
16074         (flag_isoc99): Update comment.
16075         * c-cppbuiltin.c (builtin_define_float_constants): Also define
16076         __<type>_DECIMAL_DIG__.
16077         * c-opts.c (set_std_c1x): New.
16078         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
16079         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
16080         * c.opt (-std=c1x, -std=gnu1x): New options.
16081         * doc/cpp.texi: Mention -std=c1x.
16082         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
16083         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
16084         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
16085         * doc/standards.texi: Mention C1X.
16086         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
16087         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
16088         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
16089         Define for C1X.
16090
16091 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
16092
16093         * config/i386/gmon-sol2.c (_mcleanup): Change format string
16094         placeholder from 0x%x to %#x.
16095         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
16096         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
16097         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
16098         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
16099         * config/i386/i386.c (ix86_target_string): Ditto.
16100         (output_pic_addr_const): Ditto.
16101         (print_operand): Ditto.
16102
16103 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
16104
16105         * combine.c (find_split_point): Add third argument.  Use it
16106         to find nested multiply-accumulate instructions.  Adjust calls.
16107         (try_combine): Adjust call to find_split_point.
16108
16109 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
16110
16111         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
16112
16113 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
16114
16115         PR tree-optimization/41442
16116         * fold-const.c (merge_truthop_with_opposite_arm): New function.
16117         (fold_binary_loc): Call it.
16118
16119 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16120
16121         * toplev.c (general_init): Set default for fdiagnostics-show-option.
16122         * opts.c (common_handle_option): Allow disabling it.
16123         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
16124
16125 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
16126
16127         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
16128         between modes if both types are integral.
16129
16130 2010-04-23  Richard Guenther  <rguenther@suse.de>
16131
16132         PR tree-optimization/43572
16133         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
16134
16135 2010-04-23  Richard Guenther  <rguenther@suse.de>
16136
16137         PR lto/43455
16138         * tree-inline.c (tree_can_inline_p): Also check compatibility
16139         of return types.
16140
16141 2010-04-23  Martin Jambor  <mjambor@suse.cz>
16142
16143         PR tree-optimization/43846
16144         * tree-sra.c (struct access): New flag grp_assignment_read.
16145         (build_accesses_from_assign): Set grp_assignment_read.
16146         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
16147         (enum mark_read_status): New type.
16148         (analyze_access_subtree): Propagate grp_assignment_read, create
16149         accesses also if both direct_read and root->grp_assignment_read.
16150
16151 2010-04-23  Martin Jambor  <mjambor@suse.cz>
16152
16153         PR middle-end/43835
16154         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
16155         function does not have type attributes.
16156
16157 2010-04-23  Richard Guenther  <rguenther@suse.de>
16158
16159         PR lto/42653
16160         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
16161         of FUNCTION_DECLs.
16162
16163 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16164
16165         * sese.h (create_if_region_on_edge): Remove.
16166
16167         * sese.c (create_if_region_on_edge): Make static.
16168
16169         * tree-inline.c: Do not include ggc.h.
16170
16171         * expr.c: Do not include ggc.h.
16172
16173         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
16174         dependencies.
16175
16176 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
16177
16178         PR target/43744
16179         * config/sh/sh.c (find_barrier): Don't emit a constant pool
16180         in the middle of insns for casesi_worker_2.
16181
16182 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
16183
16184         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
16185
16186 2010-04-22  Ira Rosen  <irar@il.ibm.com>
16187
16188         PR tree-optimization/43842
16189         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
16190         loop unrolling in update of exit phis. Fix comment.
16191         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
16192         least two reduction statements in the loop before starting SLP
16193         analysis.
16194
16195 2010-04-22  Nick Clifton  <nickc@redhat.com>
16196
16197         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
16198
16199 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
16200
16201         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
16202         to simplify a + ~a.
16203
16204 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16205
16206         * tree-parloops.c (loop_parallel_p): New argument
16207         parloop_obstack.  Pass it down.
16208         (parallelize_loops): New variable parloop_obstack.  Initialize it,
16209         pass it down, free it.
16210
16211         * tree-loop-linear.c (linear_transform_loops): Pass down
16212         lambda_obstack.
16213
16214         * tree-data-ref.h (lambda_compute_access_matrices): New argument
16215         of type struct obstack *.
16216
16217         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
16218         scratch_obstack.  Initialize it, pass down, free it.
16219
16220         * lambda.h (lambda_loop_new): Remove.
16221         (lambda_matrix_new, lambda_matrix_inverse)
16222         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
16223         argument of type struct obstack *.
16224
16225         * lambda-trans.c (lambda_trans_matrix_new): New argument
16226         lambda_obstack.  Pass it down, use obstack allocation for ret.
16227         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
16228         it down.
16229
16230         * lambda-mat.c (lambda_matrix_get_column)
16231         (lambda_matrix_project_to_null): Remove.
16232         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
16233         allocation for mat.
16234         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
16235         lambda_obstack.
16236
16237         * lambda-code.c (lambda_loop_new): New function.
16238         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
16239         (lambda_compute_auxillary_space, lambda_compute_target_space)
16240         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
16241         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
16242         (build_access_matrix): New argument lambda_obstack.  Use obstack
16243         allocation for am.
16244         (lambda_compute_step_signs, lambda_compute_access_matrices): New
16245         argument lambda_obstack.  Pass it down.
16246
16247 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
16248
16249         * optabs.h (expand_widening_mult): Declare.
16250
16251 2010-04-22  Richard Guenther  <rguenther@suse.de>
16252
16253         PR tree-optimization/43845
16254         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
16255         lookup the CALL_EXPR function and arguments.
16256
16257 2010-04-22  Nick Clifton  <nickc@redhat.com>
16258
16259         * config/stormy16/stormy16.c
16260         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
16261         * config/stormy16/stormy16.h: Tidy up formatting.
16262         (DONT_USE_BUILTIN_SETJMP): Remove definition.
16263         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
16264         (ineqbranchsi): Delete pattern.
16265         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
16266         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
16267         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
16268         stormy16-lib2-ucmpsi2.c.
16269
16270 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
16271
16272         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
16273         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
16274         extra set merge_set_noclobber, and use it to relax the final test
16275         slightly.
16276         * df.h (df_simulate_find_noclobber_defs): Declare.
16277         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
16278         conditional defs.
16279         (df_simulate_find_noclobber_defs): New function.
16280
16281 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
16282
16283         * config/i386/i386.md: Use {} around multi-line preparation statements.
16284
16285 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16286
16287         * c-tree.h (push_init_level, pop_init_level, set_init_index)
16288         (process_init_element): New argument of type struct obstack *.
16289
16290         * c-typeck.c (push_init_level, pop_init_level, set_designator)
16291         (set_init_index, set_init_label, set_nonincremental_init)
16292         (set_nonincremental_init_from_string, find_init_member)
16293         (output_init_element, output_pending_init_elements)
16294         (process_init_element): New argument braced_init_obstack.  Pass it
16295         down.
16296         (push_range_stack, add_pending_init): New argument
16297         braced_init_obstack.  Use obstack allocation.
16298
16299         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
16300         braced_init_obstack.  Pass it down.
16301         (c_parser_braced_init): New variables ret, braced_init_obstack.
16302         Initialize obstack, pass it down and finally free it.
16303
16304 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
16305
16306         PR middle-end/29274
16307         * tree-pass.h (pass_optimize_widening_mul): Declare.
16308         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
16309         gate_optimize_widening_mul): New static functions.
16310         (pass_optimize_widening_mul): New.
16311         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
16312         <case MULT_EXPR>: Remove support for widening multiplies.
16313         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
16314         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
16315         simplify_gen_unary rather than directly building extensions.
16316         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
16317         WIDEN_MULT_EXPR.
16318         * expmed.c (expand_widening_mult): New function.
16319         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
16320
16321 2010-04-21  Jan Hubicka  <jh@suse.cz>
16322
16323         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
16324         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
16325         * lto-wpa-fixup.c: Remove.
16326         * Makefile.in (lto-wpa-fixup.o): Remove.
16327         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
16328         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
16329         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
16330
16331 2010-04-21  Jan Hubicka  <jh@suse.cz>
16332
16333         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
16334         add write_optimization_summary, read_optimization_summary.
16335         (ipa_write_summaries_of_cgraph_node_set): Remove.
16336         (ipa_write_optimization_summaries): Declare.
16337         (ipa_read_optimization_summaries): Declare.
16338         * ipa-cp.c (pass_ipa_cp): Update.
16339         * ipa-reference.c (pass_ipa_reference): Update.
16340         * ipa-pure-const.c (pass_ipa_pure_const): Update.
16341         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
16342         Update.
16343         * ipa-inline.c (pass_ipa_inline): Update.
16344         * ipa.c (pass_ipa_whole_program): Update.
16345         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
16346         * passes.c (ipa_write_summaries_1): Do not test wpa.
16347         (ipa_write_optimization_summaries_1): New.
16348         (ipa_write_optimization_summaries): New.
16349         (ipa_read_summaries): Do not test ltrans.
16350         (ipa_read_optimization_summaries_1): New.
16351         (ipa_read_optimization_summaries): New.
16352
16353 2010-04-21  Jan Hubicka  <jh@suse.cz>
16354
16355         * lto-cgraph.c (lto_output_node): Do not output comdat groups
16356         for boundary nodes.
16357         (output_cgraph): Do not arrange comdat groups for boundary nodes.
16358
16359 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
16360
16361         PR debug/40040
16362         * dwarf2out.c (add_name_and_src_coords_attributes): Add
16363         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
16364
16365 2010-04-21  Jan Hubicka  <jh@suse.cz>
16366
16367         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
16368
16369 2010-04-21  Jan Hubicka  <jh@suse.cz>
16370
16371         * varpool.c (decide_is_variable_needed): Variable is always needed
16372         during ltrans.
16373
16374 2010-04-21  Jan Hubicka  <jh@suse.cz>
16375
16376         * opts.c (decode_options): Enable pure-const pass for whopr.
16377
16378 2010-04-21  Jan Hubicka  <jh@suse.cz>
16379
16380         * cgraph.c (dump_cgraph_node): Dump also assembler name.
16381         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
16382         at WPA dumping.
16383         (cgraph_decide_inlining): Do not expect callee to be removed in all
16384         cases.
16385
16386 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
16387
16388         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
16389
16390 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
16391
16392         * config/i386/i386.md (x86_shrd): Add athlon_decode and
16393         amdfam10_decode attributes.
16394
16395 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
16396
16397         PR middle-end/43570
16398         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
16399         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
16400         (lower_copyprivate_clauses): Use private var in outer
16401         context instead of original var.  Make sure the types
16402         are correct for VLAs.
16403
16404 2010-04-21  Richard Guenther  <rguenther@suse.de>
16405
16406         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
16407         to non-pointer objects.
16408
16409 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
16410
16411         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
16412         last chain entry if it starts with the still current label.
16413         (add_location_or_const_value_attribute): Check that
16414         loc_list->first->next is NULL instead of comparing ->first with ->last.
16415         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
16416         to add_var_loc_to_decl.
16417
16418         * dwarf2out.c (output_call_frame_info): For dw_cie_version
16419         >= 4 add also address size and segment size fields into CIE header.
16420
16421         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
16422         long as address size is the same as sizeof (void *) and
16423         segment size is 0.
16424         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
16425         address size or segment size is unexpected, return DW_EH_PE_omit.
16426         (classify_object_over_fdes): If get_cie_encoding returned
16427         DW_EH_PE_omit, return -1.
16428         (init_object): If classify_object_over_fdes returned -1,
16429         pretend there were no FDEs at all.
16430
16431 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
16432
16433         * config/i386/i386.md (bswap<mode>2): Macroize expander from
16434         bswap{si,di}2 using SWI48 mode iterator.
16435         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
16436         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
16437         set modrm attribute of bswap insn to 0 and remove length attribute.
16438         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
16439         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
16440         set mode attribute to <MODE> and remove length attribute.
16441
16442 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
16443
16444         PR rtl-optimization/43520
16445         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
16446         zero available registers.
16447
16448 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16449
16450         * builtins.c (fold_builtin_cproj): Fold more cases.
16451
16452 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16453
16454         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
16455         (fold_builtin_1): Fold builtin cproj.
16456         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
16457         Use ATTR_CONST_NOTHROW_LIST.
16458
16459 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
16460
16461         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
16462         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
16463         ffsi2_no_cmove for !TARGET_CMOVE.
16464         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
16465         (ffssi2): Remove expander.
16466         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
16467         mode iterator.
16468         (ctz<mode>2): Ditto from ctz{si,di}2.
16469         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
16470         mode iterator.
16471         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
16472         mode iterator.
16473
16474 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
16475
16476         * dwarf2out.c (AT_linkage_name): Define.
16477         (clone_as_declaration): Handle DW_AT_linkage_name.
16478         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
16479         of DW_AT_MIPS_linkage_name.
16480         (move_linkage_attr): Likewise.
16481         (dwarf2out_finish): Likewise.
16482
16483 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
16484
16485         PR middle-end/41952
16486         * fold-const.c (fold_comparison): New folding rule.
16487
16488 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
16489
16490         * double-int.h (double_int_setbit): Declare.
16491         * double-int.c (double_int_setbit): New function.
16492         * rtl.h (immed_double_int_const): Declare.
16493         * emit-rtl.c (immed_double_int_const): New function.
16494         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
16495         and immed_double_int_const functions.
16496         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
16497         expand_copysign_bit):  (Ditto.).
16498         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
16499         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
16500         * dojump.c (prefer_and_bit_test): (Ditto.).
16501         * expr.c (convert_modes, reduce_to_bit_field_precision,
16502         const_vector_from_tree): (Ditto.).
16503         * expmed.c (mask_rtx, lshift_value): (Ditto.).
16504
16505 2010-04-20  Jan Hubicka  <jh@suse.cz>
16506
16507         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
16508         (dump_cgraph_node): Dump new flags.
16509         * cgraph.h (struct cgraph_node): Add flags
16510         reachable_from_other_partition and in_other_partition.
16511         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
16512         other partition can not be removed.
16513         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
16514         the other partition must be output; silence sanity checking on
16515         leaking functions bodies from other paritition.
16516         * lto-cgraph.c (reachable_from_other_partition_p): New function.
16517         (lto_output_node): Output new flags; do not sanity check that inline
16518         clones are output; drop lto_forced_extern_inline_p code; do not mock
16519         visibility flags at partition boundaries.
16520         (add_node_to): New function.
16521         (output_cgraph): Use it to sort functions so masters appear before
16522         clones.
16523         (input_overwrite_node): Input new flags.
16524         * passes.c (ipa_write_summaries): Do not call
16525         lto_new_extern_inline_states.
16526         * lto-section-out.c (forced_extern_inline,
16527         lto_new_extern_inline_states lto_delete_extern_inline_states,
16528         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
16529         * lto-streamer.h (lto_new_extern_inline_states,
16530         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
16531         lto_forced_extern_inline_p): Kill.
16532
16533 2010-04-20  Richard Guenther  <rguenther@suse.de>
16534
16535         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
16536         from vars that can have pointers.
16537         (process_constraint): Dump useless constraints.
16538
16539 2010-04-20  Richard Guenther  <rguenther@suse.de>
16540
16541         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
16542         (dump_sa_points_to_info): Remove asserts.
16543         (init_base_vars): nothing_id isn't an escape point nor does it
16544         have pointers.
16545
16546 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
16547
16548         * tree.h (TYPE_REF_IS_RVALUE): Define.
16549         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
16550         should_move_die_to_comdat, prune_unused_types_walk): Handle
16551         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
16552         (modified_type_die, gen_reference_type_die): Emit
16553         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
16554         if TYPE_REF_IS_RVALUE and -gdwarf-4.
16555
16556 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16557
16558         PR target/43635
16559         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
16560         calls for -fpic -m31 if they have been sibcall optimized.
16561
16562 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
16563
16564         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
16565         ar.lc fixed and call-used.
16566
16567         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
16568
16569 2010-04-19  Jan Hubicka  <jh@suse.cz>
16570
16571         * opts.c (decode_options): Disable whpr incompatible passes.
16572         * lto/lto.c (lto_1_to_1_map): Skip clones.
16573         (read_cgraph_and_symbols): Do not mark everything as needed.
16574         (do_whole_program_analysis): Do map only after optimizing;
16575         set proper cgraph_state; use passmanager.
16576
16577 2010-04-19  DJ Delorie  <dj@redhat.com>
16578
16579         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
16580         POINTER_PLUS_EXPR and fix them.
16581
16582 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
16583
16584         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
16585         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
16586         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
16587         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
16588         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
16589         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
16590         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
16591         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
16592         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
16593         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
16594         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
16595
16596 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
16597
16598         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
16599         (check_cond_move_block): Likewise.
16600         (cond_move_process_if_block): Likewise.
16601         (noce_find_if_block): Improve formatting.
16602         (find_if_header): Pass 0 to memset and tweak conditions.
16603         (cond_exec_find_if_block): Fix long lines and tweak conditions.
16604
16605 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
16606
16607         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
16608         for -gdwarf-4.
16609
16610         PR middle-end/43337
16611         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
16612         with non-local decl doesn't need chain.
16613
16614 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
16615
16616         * ira-color.c (allocno_reload_assign): Avoid accumulating
16617         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
16618
16619 2010-04-19  Martin Jambor  <mjambor@suse.cz>
16620
16621         * gimple.h (create_tmp_reg): Declare.
16622         * gimplify.c (create_tmp_reg): New function.
16623         (gimplify_return_expr): Use create_tmp_reg.
16624         (gimplify_omp_atomic): Likewise.
16625         (gimple_regimplify_operands): Likewise.
16626         * tree-dfa.c (make_rename_temp): Likewise.
16627         * tree-predcom.c (predcom_tmp_var): Likewise.
16628         (reassociate_to_the_same_stmt): Likewise.
16629         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
16630         (get_replaced_param_substitute): Likewise.
16631         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
16632         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
16633         * tree-ssa-pre.c (get_representative_for): Likewise.
16634         (create_expression_by_pieces): Likewise.
16635         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
16636         (create_tailcall_accumulator): Likewise.
16637
16638 2010-04-19  Martin Jambor  <mjambor@suse.cz>
16639
16640         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
16641         new_stmt.
16642         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
16643
16644 2010-04-19  Richard Guenther  <rguenther@suse.de>
16645
16646         PR tree-optimization/43796
16647         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
16648         from SCEV in the lattice.
16649         (vrp_visit_phi_node): Dump change.
16650
16651 2010-04-19  Richard Guenther  <rguenther@suse.de>
16652
16653         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
16654         * configure: Re-generated.
16655
16656 2010-04-19  Richard Guenther  <rguenther@suse.de>
16657
16658         PR tree-optimization/43783
16659         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
16660         constant ARRAY_REF operands two and three if possible.
16661
16662 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
16663
16664         PR target/43766
16665         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
16666
16667 2010-04-19  Jie Zhang  <jie@codesourcery.com>
16668
16669         PR target/43662
16670         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
16671
16672 2010-04-19  Ira Rosen  <irar@il.ibm.com>
16673
16674         PR tree-optimization/37027
16675         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
16676         and macro to access it.
16677         (vectorizable_reduction): Add argument.
16678         (vect_get_slp_defs): Likewise.
16679         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
16680         statements for possible use in SLP.
16681         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
16682         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
16683         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
16684         add new argument.
16685         (vectorizable_reduction): Likewise.
16686         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
16687         vect_get_slp_defs.
16688         (vectorizable_type_demotion, vectorizable_type_promotion,
16689         vectorizable_store): Likewise.
16690         (vect_analyze_stmt): Update call to vectorizable_reduction.
16691         (vect_transform_stmt): Likewise.
16692         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
16693         (vect_build_slp_tree): Fix indentation. Check that there are no loads
16694         from different interleaving chains in same node.
16695         (vect_slp_rearrange_stmts): New function.
16696         (vect_supported_load_permutation_p): Allow load permutations for
16697         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
16698         inside SLP nodes if necessary.
16699         (vect_analyze_slp_instance): Handle reductions.
16700         (vect_analyze_slp): Try to build SLP instances originating from groups
16701         of reductions.
16702         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
16703         (vect_get_constant_vectors): Create initial vectors for reductions
16704         according to reduction code. Add new argument.
16705         (vect_get_slp_defs): Add new argument, pass it to
16706         vect_get_constant_vectors.
16707         (vect_schedule_slp_instance): Remove SLP tree root statements.
16708
16709 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
16710
16711         * tree.h (ENUM_IS_SCOPED): Define.
16712         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
16713         for ENUM_IS_SCOPED enums.
16714
16715 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
16716
16717         * fold-const.c (fold_comparison): Use ssizetype.
16718         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
16719         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
16720         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
16721         * tree-object-size.c (compute_object_sizes): Use size_type_node.
16722
16723         * tree.h (initialize_sizetypes): Remove parameter.
16724         (build_common_tree_nodes): Remove second parameter.
16725         * stor-layout.c (initialize_sizetypes): Remove parameter.
16726         Always create an unsigned type.
16727         (set_sizetype): Assert that the passed type is unsigned and simplify.
16728         * tree.c (build_common_tree_nodes): Remove second parameter.
16729         Adjust call to initialize_sizetypes.
16730         * c-decl.c (c_init_decl_processing): Remove second argument in call to
16731         build_common_tree_nodes.
16732
16733 2010-04-18  Matthias Klose  <doko@ubuntu.com>
16734
16735         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
16736
16737 2010-04-18  Ira Rosen  <irar@il.ibm.com>
16738
16739         PR tree-optimization/43771
16740         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
16741         load permutation doesn't have gaps.
16742
16743 2010-04-18  Jan Hubicka  <jh@suse.cz>
16744
16745         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
16746         (sse_prologue_save_insn expander): Use new pattern.
16747         (sse_prologue_save_insn1): New pattern and splitter.
16748         (sse_prologue_save_insn): Update to deal also with 64bit aligned
16749         blocks.
16750         * i386.c (setup_incoming_varargs_64): Do not compute jump
16751         destination here.
16752         (ix86_gimplify_va_arg): Update alignment needed.
16753         (ix86_local_alignment): Do not align all local arrays to 128bit.
16754
16755 2010-04-17  Jan Hubicka  <jh@suse.cz>
16756
16757         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
16758
16759 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
16760
16761         * arm.md (negdi2): Remove redundant code to force values into a
16762         register.
16763
16764 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
16765
16766         * arm/bpabi.S: Add EABI alignment attributes to objects.
16767         * arm/bpabi-v6m.S: Likewise.
16768         * arm/crti.asm: Likewise.
16769         * arm/crtn.asm: Likewise.
16770         * arm/lib1funcs.asm: Likewise.
16771         * arm/libunwind.S: Likewise.
16772
16773 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
16774
16775         * arm-protos.h (tune_params): New structure.
16776         * arm.c (current_tune): New variable.
16777         (arm_constant_limit): Delete.
16778         (struct processors): Add pointer to the tune parameters.
16779         (arm_slowmul_tune): New tuning option.
16780         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
16781         (all_cores): Adjust to pick up the tuning model.
16782         (arm_constant_limit): New function.
16783         (arm_override_options): Select the appropriate tuning model.  Delete
16784         initialization of arm_const_limit.
16785         (arm_split_constant): Use the new constant-limit model.
16786         (arm_rtx_costs): Pick up the current tuning model.
16787         * arm.md (is_strongarm, is_xscale): Delete.
16788         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
16789         for Xscale variant architectures.
16790         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
16791
16792 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16793
16794         * config/arm/arm.c (arm_gen_constant): Remove unused variable
16795         can_shift.
16796         (arm_rtx_costs_1): Remove unused variable extra_cost.
16797         (arm_unwind_emit_set): Use variable offset.
16798         (thumb1_output_casesi): Remove unused variable flags.
16799
16800 2010-04-16  Jeff Law  <law@redhat.com>
16801
16802         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
16803         needing assignment rather than doing a two-phase assignment.  Remove
16804         unused variable 'm'.
16805
16806 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
16807
16808         PR bootstrap/43767
16809         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
16810
16811 2010-04-16  Doug Kwan  <dougkwan@google.com>
16812
16813         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
16814         (next_operand_entry_id): New static variable.
16815         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
16816         (add_to_ops_vec): Assigned unique ID to operand entry.
16817         (struct oecount_s): New field ID.
16818         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
16819         (undistribute_ops_list): Assign unique IDs to oecounts.
16820         (init_reassoc): reset next_operand_entry_id.
16821
16822 2010-04-16  Doug Kwan  <dougkwan@google.com>
16823
16824         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
16825         missing left parenthesis.
16826
16827 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
16828
16829         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
16830         *btdi_rex64 using SWI48 mode iterator.
16831         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
16832         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
16833         *jcc_btdi_mask_rex64.
16834
16835 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
16836
16837         * double-int.h (tree_to_double_int): Convert to macro.
16838         * double-int.c (tree_to_double_int): Remove.
16839
16840 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
16841
16842         PR debug/43762
16843         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
16844         with want_address 2 and in case a single element list might be
16845         possible, call it again with want_address 0.
16846
16847 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
16848
16849         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
16850         case 'W' print operands for HI mode.
16851         * config/h8300/h8300.h (Y0, Y2) : New constraints.
16852         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
16853         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
16854         * config/h8300/predicate.md (bit_register_indirect_operand): New.
16855
16856         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
16857
16858         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
16859         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
16860         #xx:3 and #xx:4 mode.
16861
16862         * config/h8300/h8300.md (inverted load with HImode dest): Add
16863         support for H8300SX.
16864
16865         * config/h8300/predicate.md (bit_operand): Allow immediate values that
16866         satisfy 'U' constraint.
16867
16868 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16869
16870         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
16871         * configure: Regenerate.
16872         * config.in: Regenerate.
16873         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
16874         works.
16875
16876 2010-04-16  Richard Guenther  <rguenther@suse.de>
16877
16878         * tree.h (struct tree_decl_minimal): Move pt_uid ...
16879         (struct tree_decl_common): ... here.
16880         (DECL_PT_UID): Adjust.
16881         (SET_DECL_PT_UID): Likewise.
16882         (DECL_PT_UID_SET_P): Likewise.
16883
16884 2010-04-16  Richard Guenther  <rguenther@suse.de>
16885
16886         PR tree-optimization/43572
16887         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
16888         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
16889         * tree-flow.h (is_call_clobbered): Remove.
16890         * tree-flow-inline.h (is_call_clobbered): Likewise.
16891         * tree-dfa.c (dump_variable): Do not dump call clobber state.
16892         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
16893         (execute_return_slot_opt): Adjust.
16894         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
16895         check for call clobbered vars here.
16896         (find_tail_calls): Move tailcall verification to the
16897         proper place.
16898
16899 2010-04-16  Diego Novillo  <dnovillo@google.com>
16900
16901         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
16902
16903 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
16904
16905         PR target/40603
16906         * config/arm/arm.md (cbranchqi4): New pattern.
16907         * config/arm/predicates.md (const0_operand,
16908         cbranchqi4_comparison_operator): New predicates.
16909
16910 2010-04-16  Richard Guenther  <rguenther@suse.de>
16911
16912         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
16913         (dump_gimple_stmt): Likewise.
16914
16915 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
16916
16917         * recog.h (struct recog_data): New field is_operator.
16918         (struct insn_operand_data): New field is_operator.
16919         * recog.c (extract_insn): Set recog_data.is_operator.
16920         * genoutput.c (output_operand_data): Emit code to set the
16921         is_operator field.
16922         * reload.c (find_reloads): Use it rather than testing for an
16923         empty constraint string.
16924
16925         PR target/41514
16926         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
16927         If the previous insn is a cbranchsi4_insn with the same arguments,
16928         omit the compare instruction.
16929
16930         * config/arm/arm.md (addsi3_cbranch): If destination is a high
16931         register, inputs must be low registers and we need a low register
16932         scratch.  Handle alternative 2 like alternative 3.
16933
16934 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
16935
16936         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
16937         don't call get_addr on both.  If one expression is a VALUE and
16938         the other a REG, check VALUE's locs if the REG isn't among them.
16939
16940 2010-04-16  Christian Bruel  <christian.bruel@st.com>
16941
16942         * config/sh/sh.h (sh_frame_pointer_required): New function.
16943         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
16944         (flag_omit_frame_pointer) Set.
16945         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
16946         (rounded_frame_size): Adjust size with outgoing_args_size.
16947         (sh_set_return_address): Must return from stack pointer.
16948         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
16949         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
16950         (ACCUMULATE_OUTGOING_ARGS): Define.
16951         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
16952         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
16953
16954 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
16955
16956         PR target/43471
16957         * config/sh/sh.c (sh_legitimize_reload_address): Use
16958         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
16959         Remove a unneeded check for offset_base.
16960
16961 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
16962
16963         * configure: Regenerated.
16964
16965 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16966
16967         * config/s390/s390.c (s390_call_save_register_used): Switch back
16968         to HARD_REGNO_NREGS.
16969
16970 2010-04-15  Richard Guenther  <rguenther@suse.de>
16971
16972         * alias.c (alias_set_subset_of): Handle alias-set zero
16973         child properly.
16974
16975 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
16976             Julian Brown  <julian@codesourcery.com>
16977
16978         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
16979         alternatives according to use of high and low regs.
16980         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
16981         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
16982         optimizing for size on Thumb-2.
16983
16984 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
16985
16986         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
16987
16988 2010-04-15  Richard Guenther  <rguenther@suse.de>
16989
16990         * tree-ssa-structalias.c (struct variable_info): Add
16991         is_fn_info flag.
16992         (new_var_info): Initialize it.
16993         (dump_constraints): Support printing last added constraints.
16994         (debug_constraints): Adjust.
16995         (dump_constraint_graph): Likewise.
16996         (make_heapvar_for): Check for NULL cfun.
16997         (get_function_part_constraint): New function.
16998         (get_fi_for_callee): Likewise.
16999         (find_func_aliases): Properly implement IPA PTA constraints.
17000         (process_ipa_clobber): New function.
17001         (find_func_clobbers): Likewise.
17002         (insert_into_field_list_sorted): Remove.
17003         (create_function_info_for): Properly allocate vars for IPA mode.
17004         Do not use insert_into_field_list_sorted.
17005         (create_variable_info_for): Properly generate constraints for
17006         global vars in IPA mode.
17007         (dump_solution_for_var): Always dump the solution.
17008         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
17009         (find_what_var_points_to): Adjust.
17010         (pt_solution_set): Change.
17011         (pt_solution_ior_into): New function.
17012         (pt_solution_empty_p): Export.
17013         (pt_solution_includes_global): Adjust.
17014         (pt_solution_includes_1): Likewise.
17015         (pt_solutions_intersect_1): Likewise.
17016         (dump_sa_points_to_info): Check some invariants.
17017         (solve_constraints): Move constraint dumping ...
17018         (compute_points_to_sets): ... here.
17019         (ipa_pta_execute): ... and here.
17020         (compute_may_aliases): Do not re-compute points-to info
17021         locally if IPA info is available.
17022         (ipa_escaped_pt): New global var.
17023         (ipa_pta_execute): Properly implement IPA PTA.
17024         * tree-into-ssa.c (dump_decl_set): Support dumping
17025         decls not in referenced-vars.
17026         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
17027         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
17028         (dump_points_to_solution): Likewise.
17029         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
17030         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
17031         (remap_gimple_stmt): Reset call clobber/use information if necessary.
17032         (copy_decl_to_var): Copy DECL_PT_UID.
17033         (copy_result_decl_to_var): Likewise.
17034         * tree.c (make_node_stat): Initialize DECL_PT_UID.
17035         (copy_node_stat): Copy it.
17036         * tree.h (DECL_PT_UID): New macro.
17037         (SET_DECL_PT_UID): Likewise.
17038         (DECL_PT_UID_SET_P): Likewise.
17039         (struct tree_decl_minimal): Add pt_uid member.
17040         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
17041         (pt_solution_empty_p): Declare.
17042         (pt_solution_set): Adjust.
17043         (ipa_escaped_pt): Declare.
17044         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
17045         * gimple-pretty-print.c (pp_points_to_solution): New function.
17046         (dump_gimple_call): Dump call clobber/use information.
17047         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
17048         * tree-pass.h (TDF_ALIAS): New dump option.
17049         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
17050         * doc/invoke.texi (-fipa-pta): Update documentation.
17051
17052 2010-04-15  Richard Guenther  <rguenther@suse.de>
17053
17054         * Makefile.in (OBJS-common): Add gimple-fold.o.
17055         (gimple-fold.o): New rule.
17056         * tree.h (maybe_fold_offset_to_reference,
17057         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
17058         prototypes ...
17059         * gimple.h: ... here.
17060         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
17061         may_propagate_address_into_dereference): Move prototypes ...
17062         * gimple.h: ... here.
17063         * tree-ssa-ccp.c (get_symbol_constant_value,
17064         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
17065         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
17066         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
17067         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
17068         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
17069         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
17070         gimplify_and_update_call_from_tree): Move ...
17071         * gimple-fold.c: ... here.  New file.
17072         (ccp_fold_builtin): Rename to ...
17073         (gimple_fold_builtin): ... this.
17074         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
17075
17076 2010-04-15  Richard Guenther  <rguenther@suse.de>
17077
17078         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
17079         fit_double_type, force_fit_type_double, add_double_with_sign,
17080         neg_double, mul_double_with_sign, lshift_double, rshift_double,
17081         lrotate_double, rrotate_double, div_and_round_double): Move ...
17082         * double-int.c: ... here.
17083         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
17084         add_double, neg_double, mul_double_with_sign, mul_double,
17085         lshift_double, rshift_double, lrotate_double, rrotate_double,
17086         div_and_round_double): Move prototypes ...
17087         * double-int.h: ... here.
17088
17089 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
17090
17091         PR target/43742
17092         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
17093         matching constraints to ensure inputs match the output.
17094
17095 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
17096
17097         PR target/43742
17098         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
17099         in an input-only operand.
17100
17101 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
17102
17103         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
17104         (double_int_not, double_int_lshift, double_int_rshift): Declare.
17105         (double_int_negative_p): Convert to static inline function.
17106         * double-int.c (double_int_lshift, double_int_lshift): New functions.
17107         (double_int_negative_p): Remove.
17108         * tree.h (lshift_double, rshift_double):
17109         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
17110         * fold-const.c (fold_convert_const_int_from_real,
17111         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
17112         (lshift_double): Change type of arith argument to bool.
17113         (rshift_double): Change type of arith argument to bool. Correct
17114         comment.
17115         * expmed.c (mask_rtx, lshift_value): (Ditto.).
17116
17117 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
17118
17119         PR target/21803
17120         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
17121         at the start and end of the then/else blocks, and omit them from the
17122         conversion.
17123         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
17124         argument; all callers changed.  Pass zero to old_insns_match_p instead.
17125         (flow_find_head_matching_sequence): New function.
17126         (old_insns_match_p): Check REG_EH_REGION notes for calls.
17127         * basic-block.h (flow_find_cross_jump,
17128         flow_find_head_matching_sequence): Declare functions.
17129
17130 2010-04-14  Jason Merrill  <jason@redhat.com>
17131
17132         PR c++/36625
17133         * c-common.c (attribute_takes_identifier_p): New fn.
17134         * c-common.h: Declare it.
17135
17136 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17137
17138         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
17139         splitter condition.
17140         (*udivmod<mode>4): Ditto.
17141
17142 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17143
17144         * config/i386/i386.md (maxmin_int): Rename code attribute from
17145         maxminiprefix and update all users.
17146         (maxmin_float): Ditto from maxminfprefix.
17147         (logic): Ditto from logicprefix.
17148         (absneg_mnemonic): Ditto from absnegprefix.
17149         * config/i386/mmx.md: Update all users of maxminiprefix,
17150         maxminfprefix and logicprefix for rename.
17151         * config/i386/sse.md: Ditto.
17152         * config/i386/sync.md (sync_<code><mode>): Update for
17153         logicprefix rename.
17154
17155 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17156
17157         PR 42966
17158         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
17159         warnings converted to errors.
17160
17161 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17162
17163         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
17164         used insn_type variable.
17165         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
17166         to avoid set-but-not-used warning.
17167
17168 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17169
17170         * df-core.c (df_ref_debug): Change format string placeholder
17171         from 0x%x to %#x.
17172         * dwarf2asm.c (dw2_asm_output_data_raw,
17173         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
17174         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
17175         * dwarf2out.c (output_cfi, output_cfi_directive,
17176         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
17177         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
17178         Ditto.
17179         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
17180         * print-rtl.c (print_rtx): Ditto.
17181
17182 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
17183
17184         PR middle-end/42694
17185         * builtins.c (expand_builtin_pow_root): New function to expand pow
17186         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
17187         series of sqrt and cbrt calls under -ffast-math.
17188         (expand_builtin_pow): Call it.
17189
17190 2010-04-14  Michael Matz  <matz@suse.de>
17191
17192         PR tree-optimization/42963
17193         * tree-cfg.c (touched_switch_bbs): New static variable.
17194         (group_case_labels_stmt): New function broken out from ...
17195         (group_case_labels): ... here, use the above.
17196         (start_recording_case_labels): Allocate touched_switch_bbs.
17197         (end_recording_case_labels): Deallocate it, call
17198         group_case_labels_stmt.
17199         (gimple_redirect_edge_and_branch): Remember index of affected BB.
17200
17201 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17202
17203         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
17204         from insn template.
17205
17206 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17207
17208         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
17209
17210 2010-04-13  Jan Hubicka  <jh@suse.cz>
17211
17212         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
17213         of optimized out static functions.
17214         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
17215         cost computation.  Also sanity check for overflows.
17216         (update_caller_keys): Update cgraph_edge_badness call; properly
17217         update fibheap and sanity check that it is up to date.
17218         (add_new_edges_to_heap): Update cgraph_edge_badness.
17219         (cgraph_decide_inlining_of_small_function): Likewise;
17220         add sanity checking that badness in heap is up to date;
17221         improve dumping of reason; Update badness of calls to the
17222         offline copy of function currently inlined; dump badness
17223         of functions not inlined because of unit growth limits.
17224
17225 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
17226
17227         PR middle-end/32628
17228         * c-common.c (pointer_int_sum): Disregard overflow that occured only
17229         because of sign-extension change when converting to sizetype here...
17230         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
17231
17232         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
17233         the folding to constants.  Remove redundant final conversion.
17234         (fold_binary) <associate>: Do not associate if the re-association of
17235         constants alone overflows.
17236         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
17237         to the end of the list.
17238         (multiple_of_p) <COND_EXPR>: New case.
17239
17240 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17241
17242         * opt-functions.awk (opt_sanitized_name): New.
17243         (opt_enum): New.
17244         * optc-gen.awk: Use it
17245         * opth-gen.awk: Use it.
17246
17247 2010-04-13  Martin Jambor  <mjambor@suse.cz>
17248
17249         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
17250         (sra_modify_assign): Delete stmts loading dead data even if racc has no
17251         children.  Call replace_uses_with_default_def_ssa_name to handle
17252         SSA_NAES on lhs.
17253
17254 2010-04-13  Michael Matz  <matz@suse.de>
17255
17256         PR middle-end/43730
17257         * builtins.c (expand_builtin_interclass_mathfn): Also create
17258         a register if the predicate doesn't match.
17259
17260 2010-04-13  Diego Novillo  <dnovillo@google.com>
17261
17262         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
17263         * c-pch.c: Include timevar.h.
17264         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
17265         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
17266         * ggc-common.c: Include timevar.h.
17267         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
17268         * timevar.def (TV_PCH_SAVE): Define.
17269         (TV_PCH_CPP_SAVE): Define.
17270         (TV_PCH_PTR_REALLOC): Define.
17271         (TV_PCH_PTR_SORT): Define.
17272         (TV_PCH_RESTORE): Define.
17273         (TV_PCH_CPP_RESTORE): Define.
17274
17275 2010-04-13  Michael Matz  <matz@suse.de>
17276
17277         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
17278         into MINUS_EXPRs.
17279         (can_reassociate_p): New function.
17280         (break_up_subtract_bb, reassociate_bb): Use it.
17281
17282 2010-04-13  Richard Guenther  <rguenther@suse.de>
17283
17284         PR bootstrap/43737
17285         * builtins.c (c_readstr): Fix assert.
17286
17287 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
17288
17289         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
17290         when generating cltd insn.
17291
17292         (*ashl<mode>3_1): Remove special handling for register operand 2.
17293         (*ashlsi3_1_zext): Ditto.
17294         (*ashlhi3_1): Ditto.
17295         (*ashlhi3_1_lea): Ditto.
17296         (*ashlqi3_1): Ditto.
17297         (*ashlqi3_1_lea): Ditto.
17298         (*<shiftrt_insn><mode>3_1): Ditto.
17299         (*<shiftrt_insn>si3_1_zext): Ditto.
17300         (*<shiftrt_insn>qi3_1_slp): Ditto.
17301         (*<rotate_insn><mode>3_1): Ditto.
17302         (*<rotate_insn>si3_1_zext): Ditto.
17303         (*<rotate_insn>qi3_1_slp): Ditto.
17304
17305 2010-04-13  Richard Guenther  <rguenther@suse.de>
17306
17307         * tree-ssa-structalias.c (callused_id): Remove.
17308         (call_stmt_vars): New.
17309         (get_call_vi): Likewise.
17310         (lookup_call_use_vi): Likewise.
17311         (lookup_call_clobber_vi): Likewise.
17312         (get_call_use_vi): Likewise.
17313         (get_call_clobber_vi): Likewise.
17314         (make_transitive_closure_constraints): Likewise.
17315         (handle_const_call): Adjust to do per-call call-used handling.
17316         (handle_pure_call): Likewise.
17317         (find_what_var_points_to): Remove general callused handling.
17318         (init_base_vars): Likewise.
17319         (init_alias_vars): Initialize call_stmt_vars.
17320         (compute_points_to_sets): Process call-used and call-clobbered
17321         vars for call statements.
17322         (delete_points_to_sets): Free call_stmt_vars.
17323
17324 2010-04-13  Richard Guenther  <rguenther@suse.de>
17325
17326         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
17327         Only add RW dependence for dependence distance zero.
17328         Adjust maximal vectorization factor according to dependences.
17329         Move alignment handling ...
17330         (vect_find_same_alignment_drs): ... here.  New function.
17331         (vect_analyze_data_ref_dependences): Adjust.
17332         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
17333         (vect_analyze_data_refs): Adjust minimal vectorization factor
17334         according to data references.
17335         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
17336         dependences before determining the vectorization factor.
17337         Analyze alignment after determining the vectorization factor.
17338         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
17339         dependences before alignment.
17340         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
17341         Adjust prototype.
17342         (vect_analyze_data_refs): Likewise.
17343         (MAX_VECTORIZATION_FACTOR): New define.
17344
17345 2010-04-13  Duncan Sands  <baldrick@free.fr>
17346
17347         * except.h (lang_eh_type_covers): Remove.
17348         * except.c (lang_eh_type_covers): Likewise.
17349
17350 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17351             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17352
17353         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
17354         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
17355         UNITS_PER_LONG where it is ABI relevant.
17356         (s390_return_addr_rtx): Likewise.
17357         (s390_back_chain_rtx): Likewise.
17358         (s390_frame_area): Likewise.
17359         (s390_frame_info): Likewise.
17360         (s390_initial_elimination_offset): Likewise.
17361         (save_gprs): Likewise.
17362         (s390_emit_prologue): Likewise.
17363         (s390_emit_epilogue): Likewise.
17364         (s390_function_arg_advance): Likewise.
17365         (s390_function_arg): Likewise.
17366         (s390_va_start): Likewise.
17367         (s390_gimplify_va_arg): Likewise.
17368         (s390_function_profiler): Likewise.
17369         (s390_optimize_prologue): Likewise.
17370         (s390_rtx_costs): Likewise.
17371         (s390_secondary_reload): Likewise.
17372         (s390_promote_function_mode): Likewise.
17373         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
17374         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
17375         registers available.
17376         (s390_unwind_word_mode): New function.
17377         (s390_function_value): Split 64 bit values into register pair if
17378         used as return value.
17379         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
17380         function call parameters.  Handle parallels.
17381         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
17382         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
17383         (DWARF_CIE_DATA_ALIGNMENT): New macro.
17384         (s390_expand_setmem): Remove unused variable src_addr.
17385         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
17386         deal with 64 bit registers.
17387         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
17388         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
17389         (UNITS_PER_LONG): New macro.
17390         * libjava/include/s390-signal.h: Define extended ucontext
17391         structure containing the upper halfs of the 64 bit registers.
17392
17393 2010-04-13  Simon Baldwin  <simonb@google.com>
17394
17395         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
17396
17397 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
17398
17399         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
17400         rvalue on the RHS if the LHS is of a non-renamable type.
17401         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
17402
17403 2010-04-13  Matthias Klose  <doko@ubuntu.com>
17404
17405         * gcc.c (cc1_options): Handle -iplugindir before processing
17406         the cc1 spec. Only add -iplugindir once.
17407         (cpp_unique_options): Add -iplugindir option if -fplugin* options
17408         found.
17409         * common.opt (iplugindir): Remove `Separate' property, initialize.
17410         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
17411         option.
17412         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
17413         (distclean): Remove plugin dir.
17414         * doc/invoke.texi: Document -iplugindir.
17415
17416 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
17417
17418         * doc/plugins.texi (Loading Plugins): Document short
17419         -fplugin=foo option.
17420         (Plugin API): Mention default_plugin_dir_name function.
17421
17422         * gcc.c (find_file_spec_function): Add new declaration.
17423         (static_spec_func): Use it for "find-file".
17424         (find_file_spec_function): Add new function.
17425         (cc1_options): Add -iplugindir option if -fplugin* options found.
17426
17427         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
17428
17429         * plugin.c (add_new_plugin): Updated comment, and handle short
17430         plugin name.
17431         (default_plugin_dir_name): Added new function.
17432
17433         * common.opt (iplugindir): New option to set the plugin directory.
17434
17435 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
17436
17437         * config/i386/i386.md (any_rotate): New code iterator.
17438         (rotate_insn): New code attribute.
17439         (rotate): Ditto.
17440         (SWIM124): New mode iterator.
17441         (<rotate_insn>ti3): New expander.
17442         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
17443         any_rotate code iterator.
17444         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
17445         using any_rotate code iterator and SWIM124 mode iterator.
17446         (ix86_rotlti3): New insn_and_split pattern.
17447         (ix86_rotrti3): Ditto.
17448         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
17449         ix86_rotl{di,ti}3 patterns.
17450         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
17451         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
17452         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
17453         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
17454         code iterator and SWI mode iterator.
17455         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
17456         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
17457         code iterator.
17458         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
17459         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
17460         (bswap rotatert splitter): Add splitter.
17461         (bswap splitter): Macroize splitter using any_rotate code iterator.
17462         Add insn predicate to split only for TARGET_USE_XCHGB or when
17463         optimizing function for size.
17464
17465 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
17466
17467         * config/pa/pa.c (emit_move_sequence): Remove use of
17468         deleted variable flag_argument_noalias.
17469
17470 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17471
17472         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
17473         configurations.
17474         Add to unsupported targets list.
17475         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
17476         sparc*-sun-solaris2.[567]* from target lists.
17477         * configure: Regenerate.
17478         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
17479         removal.
17480         Remove Solaris 7 patch references.
17481         (Specific, sparc-sun-solaris2.7): Removed.
17482         (sparc-sun-solaris2*): Update Solaris 7 example.
17483         (sparc64-*-solaris2*): Likewise.
17484
17485 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17486
17487         * config.build (alpha*-dec-osf4*): Remove.
17488         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
17489         of obsolete configurations.
17490         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
17491         support.
17492         * config/alpha/t-osf4: Renamed to ...
17493         * config/alpha/t-osf5: ... this.
17494         * config/alpha/osf.h: Renamed to ...
17495         * config/alpha/osf5.h: ... this.
17496         Merged old osf5.h contents.
17497         Update comments.
17498         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
17499         (EXTRA_SPECS): Removed.
17500         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
17501         reflect removal of Tru64 UNIX V4.0/V5.0 support.
17502         Document that.
17503
17504 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17505
17506         * doc/contrib.texi (Contributors, Rainer Orth): Update.
17507
17508 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
17509
17510         PR/43702
17511         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
17512         __thiscall convention.
17513
17514 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
17515
17516         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
17517         orig_base.
17518         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
17519
17520 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
17521
17522         * function.c (assign_parms_initialize_all): Add unused attribute
17523         to fntype.
17524
17525 2010-04-12  Richard Guenther  <rguenther@suse.de>
17526
17527         * gsstruct.def (GSS_CALL): New.
17528         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
17529         * gimple.h: Include tree-ssa-alias.h.
17530         (struct gimple_statement_call): New.
17531         (union gimple_statement_struct_d): Add gimple_call member.
17532         (gimple_call_reset_alias_info): Declare.
17533         (gimple_call_use_set): New function.
17534         (gimple_call_clobber_set): Likewise.
17535         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
17536         * gimple.c (gimple_call_reset_alias_info): New function.
17537         (gimple_build_call_1): Call it.
17538         * lto-streamer-in.c (input_gimple_stmt): Likewise.
17539         * tree-inline.c (remap_gimple_stmt): Likewise.
17540         (expand_call_inline): Remove callused handling.
17541         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
17542         * tree-dfa.c (dump_variable): Likewise.
17543         * tree-parloops.c (parallelize_loops): Likewise.
17544         * tree-ssa.c (init_tree_ssa): Likewise.
17545         (delete_tree_ssa): Likewise.
17546         * tree-flow-inline.h (is_call_used): Remove.
17547         * tree-flow.h (struct gimple_df): Remove callused member.
17548         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
17549         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
17550         (ref_maybe_used_by_call_p_1): Simplify.
17551         (call_may_clobber_ref_p_1): Likewise.
17552         * tree-ssa-structalias.c (compute_points_to_sets): Set
17553         the call stmt used and clobbered sets.
17554         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
17555         (find_tail_calls): Verify the tail call.
17556
17557 2010-04-12  Richard Guenther  <rguenther@suse.de>
17558
17559         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
17560         single-iteration always-inline inlining.
17561         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
17562         (cgraph_decide_inlining): Do not handle always-inline specially.
17563         (try_inline): Remove always-inline cycle detection special case.
17564         Do not recurse on always-inlines.
17565         (cgraph_early_inlining): Do not iterate if not optimizing.
17566         (cgraph_gate_early_inlining): remove.
17567         (pass_early_inline): Run unconditionally.
17568         (gate_cgraph_decide_inlining): New function.
17569         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
17570         not inlining or optimizing.
17571         (cgraph_decide_inlining_of_small_functions): Also consider
17572         always-inline functions.
17573         (cgraph_default_inline_p): Return true for nodes which should
17574         disregard inline limits.
17575         (estimate_function_body_sizes): Assume zero size and time for
17576         nodes which are marked as disregarding inline limits.
17577         (cgraph_decide_recursive_inlining): Do not perform recursive
17578         inlining on always-inline nodes.
17579
17580 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
17581
17582         PR bootstrap/43699
17583         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
17584         for exprs satisfying handled_component_p.
17585
17586 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
17587
17588         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
17589         non-constant aggregate elements.
17590
17591         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
17592         is a real initialization.
17593
17594 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
17595
17596         PR c/36774
17597         * c-decl.c (start_function): Move forward check for nested function.
17598
17599 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
17600
17601         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
17602         * config/sh/sh.c: Include reload.h.
17603         (sh_legitimize_reload_address): New.
17604         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
17605         sh_legitimize_reload_address.
17606
17607 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
17608
17609         * config/sh/sh.md (*movqi_pop): New insn pattern.
17610         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
17611
17612 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
17613
17614         * config/i386/i386.md (any_shiftrt): New code iterator.
17615         (shiftrt_insn): New code attribute.
17616         (shiftrt): Ditto.
17617         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
17618         using any_shiftrt code iterator.
17619         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
17620         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
17621         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
17622         pattern from corresponding peephole2 patterns.
17623         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
17624         using any_shiftrt code iterator.
17625         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
17626         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
17627         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
17628         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
17629         *{ashr,lshr}<mode>3_cmp_zext.
17630         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
17631
17632 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
17633
17634         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
17635         scratch register.
17636         (*lshr<mode>3_cconly): Ditto.
17637
17638 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
17639
17640         * config/i386/i386.md (lshr<mode>3): Macroize expander from
17641         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
17642         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
17643         pattern from *lshr{di,ti}3_1 and corresponding splitters using
17644         DWI mode iterator.
17645         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
17646         from corresponding peephole2 patterns.
17647         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
17648         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
17649         and *lshrdi3_1_rex64 using SWI mode iterator.
17650         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
17651         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
17652         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
17653         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
17654         and *lshrdi3_cmp_rex64 using SWI mode iterator.
17655         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
17656         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
17657         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
17658         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
17659         SWI mode iterator.
17660
17661 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
17662
17663         * config/i386/i386.md (ashr<mode>3): Macroize expander from
17664         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
17665         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
17666         pattern from *ashr{di,ti}3_1 and corresponding splitters using
17667         DWI mode iterator.
17668         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
17669         from corresponding peephole2 patterns.
17670         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
17671         (ashrsi3_cvt): Rename from ashrsi3_31.
17672         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
17673         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
17674         and x86_64_shift_adj_3 using SWI48 mode iterator.
17675         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
17676         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
17677         and *ashrdi3_1_rex64 using SWI mode iterator.
17678         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
17679         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
17680         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
17681         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
17682         and *ashrdi3_cmp_rex64 using SWI mode iterator.
17683         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
17684         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
17685         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
17686         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
17687         SWI mode iterator.
17688         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
17689         * config/i386/i386.c (ix86_split_ashr): Update for renamed
17690         x86_shift<mode>_adj_3 expanders.
17691
17692 2010-04-10  Wei Guozhi  <carrot@google.com>
17693
17694         PR target/42601
17695         * config/arm/arm.c (arm_pic_static_addr): New function.
17696         (legitimize_pic_address): Call arm_pic_static_addr when it detects
17697         a static symbol.
17698         (arm_output_addr_const_extra): Output expression for new pattern.
17699         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
17700
17701 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
17702
17703         * ira-costs.c (record_reg_classes): Ignore alternatives that are
17704         not enabled.
17705
17706         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
17707         * web.c: Include "insn-config.h" and "recog.h".
17708         (union_match_dups): New function.
17709         (web_main): Call it.
17710         (union_defs): Don't try to recognize match_dups.
17711
17712         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
17713         if doing so would replace the entire pattern.
17714
17715 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
17716
17717         PR target/43707
17718         PR target/43709
17719         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
17720         and splitter pattern.  Change splitter operand 1 predicate to
17721         nonmemory_operand.
17722
17723 2010-04-09  Martin Jambor  <mjambor@suse.cz>
17724
17725         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
17726         lattices are addresses of CONST_DECLs with the same initial value.
17727         (ipcp_print_all_lattices): Print values of CONST_DECLs.
17728         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
17729
17730 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
17731             Bernd Schmidt  <bernds@codesourcery.com>
17732
17733         * loop-invariant.c (replace_uses): New static function.
17734         (move_invariant_reg): Use it to ensure we can replace the uses.
17735
17736 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
17737
17738         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
17739         function template.
17740         (picochip_override_options): Enable section anchors only above -O1.
17741         (picochip_reorg): Fixed a couple of build warnings.
17742
17743 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17744
17745         * configure.ac (plugin -rdynamic test): Log result.
17746         * configure: Regenerate.
17747         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
17748         (RDYNAMIC_SPEC): Define.
17749         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
17750
17751 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17752
17753         * configure.ac: Determine Sun ld version numbers.
17754         (comdat_group): Restrict GNU ld version checks to gld.
17755         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
17756         (enable_comdat): Support --enable-comdat.
17757         * configure: Regenerate.
17758         * doc/install.texi (Configuration): Document --enable-comdat.
17759
17760 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17761
17762         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
17763         * config/sol2-gld.h: ... here.
17764         * config.gcc (sparc*-*-solaris2*): Reflect this.
17765         (i[34567]86-*-solaris2*): Use it.
17766
17767 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
17768
17769         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
17770         setup_clocks_p.
17771         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
17772
17773 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17774
17775         PR 42965
17776         * diagnostic.c (diagnostic_initialize): Initialize
17777         some_warnings_are_errors.
17778         (diagnostic_finish): New.
17779         (diagnostic_action_after_output): Call it before exiting.
17780         (diagnostic_report_diagnostic): Do not print message here. Set
17781         some_warnings_are_errors.
17782         * diagnostic.h (diagnostic_context): Delete
17783         issue_warnings_are_errors_message. Add some_warnings_are_errors.
17784         (diagnostic_finish): Declare.
17785         * toplev.c (toplev_main): Call it before exit.
17786
17787 2010-04-09  Jason Merrill  <jason@redhat.com>
17788
17789         PR c++/42623
17790         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
17791         for incomplete type.
17792
17793         PR c++/41788
17794         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
17795         based on a warning flag.
17796
17797 2010-04-09  Richard Guenther  <rguenther@suse.de>
17798
17799         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
17800
17801 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
17802
17803         PR bootstrap/43684
17804         * varasm.c (default_assemble_visibility): Wrap vars that are
17805         set, but unused, by targets without GAS.
17806         * config/rs6000/rs6000.c (paired_emit_vector_compare):
17807         Remove set, but unused, vars.
17808         (rs6000_legitimize_tls_address): Likewise.
17809         (altivec_expand_dst_builtin): Likewise.
17810         * config/darwin.c (machopic_classify_symbol): Likewise.
17811         (machopic_indirection_name): Likewise.
17812
17813 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
17814
17815         * config/i386/i386.md (DWI): New mode iterator.
17816         (S): New mode attribute.
17817         (shift_operand): Ditto.
17818         (shift_immediate_operand): Ditto.
17819         (ashl_input_operand): Ditto.
17820         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
17821         using SDWIM mode iterator.
17822         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
17823         pattern from *ashl{di,ti}3_1 and corresponding splitters using
17824         DWI mode iterator.
17825         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
17826         from corresponding peephole2 patterns.
17827         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
17828         and x86_64_shift_adj_1 using SWI48 mode iterator.
17829         (x86_shift<mode>_adj_2): Ditto.
17830         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
17831         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
17832         using SWI48 mode iterator.
17833         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
17834         *ashldi3_cmp_rex64 using SWI mode iterator.
17835         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
17836         *ashldi3_cconly_rex64 using SWI mode iterator.
17837         * config/i386/i386.c (ix86_split_ashl): Update for renamed
17838         x86_shift<mode>_adj_{1,2}.
17839         (ix86_split_ashr): Ditto.
17840         (ix86_split_lshr): Ditto.
17841
17842 2010-04-09  Richard Guenther  <rguenther@suse.de>
17843
17844         * target.h (builtin_conversion): Pass in input and output types.
17845         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
17846         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
17847         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
17848         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
17849
17850         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
17851         Handle AVX modes.
17852         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
17853
17854 2010-04-09  Richard Guenther  <rguenther@suse.de>
17855
17856         PR target/43152
17857         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
17858
17859 2010-04-09  Richard Guenther  <rguenther@suse.de>
17860
17861         * tree-vectorizer.h (struct _stmt_vec_info): Document
17862         that vectype is the type of the LHS.
17863         (supportable_widening_operation, supportable_narrowing_operation):
17864         Get both input and output vector types as arguments.
17865         (vect_is_simple_use_1): Declare.
17866         (get_same_sized_vectype): Likewise.
17867         * tree-vect-loop.c (vect_determine_vectorization_factor):
17868         Set STMT_VINFO_VECTYPE to the vector type of the def.
17869         (vectorizable_reduction): Adjust.
17870         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
17871         Adjust.  Specify the output vector type.
17872         (vect_pattern_recog_1): Adjust.
17873         * tree-vect-stmts.c (get_same_sized_vectype): New function.
17874         (vectorizable_call): Adjust.
17875         (vectorizable_conversion): Likewise.
17876         (vectorizable_operation): Likewise.
17877         (vectorizable_type_demotion): Likewise.
17878         (vectorizable_type_promotion): Likewise.
17879         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
17880         the def.
17881         (vect_is_simple_use_1): New function.
17882         (supportable_widening_operation): Get both input and output
17883         vector types.
17884         (supportable_narrowing_operation): Likewise.
17885         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
17886
17887 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
17888
17889         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
17890         __thiscall and _thiscall as predefined macros.
17891         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
17892         thiscall attribute handling.
17893         (ix86_comp_type_attributes): Likewise.
17894         (ix86_function_regparm): Likewise.
17895         (ix86_return_pops_args): Likewise.
17896         (init_cumulative_args): Likewise.
17897         (find_drap_reg): Likewise.
17898         (ix86_static_chain): Likewise.
17899         (x86_this_parameter): Likewise.
17900         (x86_output_mi_thunk): Likewise.
17901         (ix86_attribute_table): Add description for thiscall attribute.
17902         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
17903         * doc/extend.texi: Add documentation for thiscall.
17904
17905 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17906
17907         PR c++/28584
17908         * c.opt (Wint-to-pointer-cast): Available in C++.
17909         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
17910
17911 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
17912
17913         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
17914         * calls.c (expand_call): Pass the function type to aggregate_value_p.
17915         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
17916         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
17917         function type instead.  Reorder and simplify checks.
17918
17919         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
17920
17921 2010-04-08  Jing Yu  <jingyu@google.com>
17922             Zdenek Dvorak  <ook@ucw.cz>
17923
17924         PR tree-optimization/42720
17925         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
17926         loop unswitch conditions here from ...
17927         (tree_unswitch_single_loop): ... here.
17928
17929 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
17930
17931         * tree-if-conv.c: Fix comments and simplify logic.
17932
17933 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
17934
17935         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
17936         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
17937         (main_tree_if_conversion): Update call to tree_if_conversion.
17938
17939 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17940
17941         PR 42485
17942         * doc/invoke.texi (-b,-V): Delete.
17943         * doc/tm.texi: Do not mention -b.
17944         * gcc.c (display_help): Delete -b and -V.
17945         (process_command): Delete -b and -V.
17946         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
17947
17948 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
17949             Wolfgang Gellerich  <gellerich@de.ibm.com>
17950
17951         Implement target hook for loop unrolling
17952         * target.h (loop_unroll_adjust): Add a new target hook function.
17953         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
17954         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
17955         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
17956         (s390_loop_unroll_adjust): Implement the new target hook for s390.
17957         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
17958         target hook.
17959         (decide_unroll_stupid): Likewise.
17960
17961 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17962
17963         PR target/43643
17964         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
17965
17966 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17967
17968         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
17969         (Specific, *-*-solaris2*): Likewise.
17970         Don't prefer Sun as over GNU as.
17971
17972 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
17973
17974         * config/s390/s390.c (override_options): Adjust the z10 defaults
17975         for max-unroll-times, max-completely-peeled-insns
17976         and max-completely-peel-times.
17977
17978 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17979
17980         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
17981         instructions for z10.
17982         (s390_expand_setmem): Likewise.
17983         (s390_expand_cmpmem): Likewise.
17984
17985 2010-04-08  Richard Guenther  <rguenther@suse.de>
17986
17987         PR tree-optimization/43679
17988         * tree-ssa-pre.c (eliminate): Only propagate copies.
17989
17990 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
17991
17992         PR bootstrap/43681
17993         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
17994         set but not used variable warning.
17995
17996 2010-04-08  Wei Guozhi  <carrot@google.com>
17997
17998         PR target/41653
17999         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
18000         (arm_size_rtx_costs): Call the new function when optimized for size.
18001
18002 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
18003
18004         PR debug/43670
18005         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
18006         op0 is not a MEM, just return NULL instead of assertion
18007         failure.
18008         (discover_nonconstant_array_refs): Don't walk debug stmts.
18009
18010 2010-04-08  Doug Kwan  <dougkwan@google.com>
18011
18012         * configure.ac: Recognize gold and do not use its version number
18013         to test ld features.
18014         * configure: Regenerate.
18015
18016 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
18017
18018         PR middle-end/40815
18019         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
18020         (negate_value): Move code to push elements to broken_up_substracts ...
18021         (eliminate_plus_minus_pair): ... here.  Push operands that have no
18022         negative pair to plus_negates.
18023         (repropagate_negates, init_reassoc, fini_reassoc): Update.
18024
18025 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18026
18027         * doc/install.texi (Configuration): Move description of
18028         --enable-lto, --with-libelf*, --enable-gold from Java section to
18029         general section.
18030
18031         * doc/generic.texi (Working with declarations)
18032         (Function Properties, C and C++ Trees): Fix typos.
18033         * doc/sourcebuild.texi (Top Level): Likewise.
18034
18035 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
18036
18037         PR c/18624
18038         * tree.h (DECL_READ_P): Define.
18039         (struct tree_decl_common): Add decl_read_flag.
18040         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
18041         a set but not used warning.
18042         (merge_decls): Merge DECL_READ_P flag.
18043         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
18044         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
18045         * c-common.c (handle_used_attribute, handle_unused_attribute):
18046         Likewise.
18047         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
18048         New prototypes.
18049         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
18050         New functions.
18051         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
18052         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
18053         c_parser_binary_expression, c_parser_cast_expression,
18054         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
18055         Call default_function_array_read_conversion instead of
18056         default_function_array_conversion where needed.
18057         (c_parser_unary_expression, c_parser_conditional_expression,
18058         c_parser_postfix_expression_after_primary, c_parser_initelt):
18059         Likewise.  Call mark_exp_read where needed.
18060         (c_parser_statement_after_labels, c_parser_asm_operands,
18061         c_parser_typeof_specifier, c_parser_sizeof_expression,
18062         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
18063         where needed.
18064         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
18065         New.
18066         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
18067         (warn_unused_but_set_parameter): Default to warn_unused
18068         && extra_warnings.
18069         * doc/invoke.texi: Document -Wunused-but-set-variable and
18070         -Wunused-but-set-parameter.
18071
18072         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
18073         used count variable.
18074         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
18075         when operandN variables aren't used in the body of the expander
18076         or splitter.
18077         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
18078         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
18079         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
18080         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
18081         FOR_EACH_IMM_USE_ON_STMT): Likewise.
18082         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
18083         * tree.c (PROCESS_ARG): Likewise.
18084
18085 2010-04-07  Simon Baldwin  <simonb@google.com>
18086
18087         * diagnostic.h (diagnostic_override_option_index): New macro to
18088         set a diagnostic's option_index.
18089         * c-tree.h (c_cpp_error): Add warning reason argument.
18090         * opts.c (_warning_as_error_callback): New.
18091         (register_warning_as_error_callback): Store callback for
18092         warnings enabled via enable_warning_as_error.
18093         (enable_warning_as_error): Call callback, minor code tidy.
18094         * opts.h (register_warning_as_error_callback): Declare.
18095         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
18096         response to -Werror=.
18097         (c_common_init_options): Register warning_as_error_callback in opts.c.
18098         * common.opt: Add -Wno-cpp option.
18099         * c-common.c (struct reason_option_codes_t): Map cpp warning
18100         reason codes to gcc option indexes.
18101         * (c_option_controlling_cpp_error): New function, lookup the gcc
18102         option index for a cpp warning reason code.
18103         * (c_cpp_error): Add warning reason argument, call
18104         c_option_controlling_cpp_error for diagnostic_override_option_index.
18105         * doc/invoke.texi: Document -Wno-cpp.
18106
18107 2010-04-07  Richard Guenther  <rguenther@suse.de>
18108
18109         * ipa-reference.c (mark_load): Use get_base_address.
18110         (mark_store): Likewise.
18111
18112         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
18113         inserting GIMPLE_NOPs into the IL.
18114         * tree-ssa-structalias.c (get_constraint_for_component_ref):
18115         Explicitly strip handled components and indirect references.
18116
18117         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
18118         folding address expressions.
18119         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
18120         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
18121         operand_equal_p to compare decls.
18122         (ptr_deref_may_alias_decl_p): Likewise.
18123         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
18124         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
18125         Handle reversed comparison ops.
18126         * tree-sra.c (asm_visit_addr): Use get_base_address.
18127         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
18128         * ipa-reference.c (mark_address): Use get_base_address.
18129
18130 2010-04-07  Richard Guenther  <rguenther@suse.de>
18131
18132         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
18133         Propagate constants everywhere.
18134
18135 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
18136
18137         PR debug/43516
18138         * tree.c (MAX_INT_CACHED_PREC): Define.
18139         (nonstandard_integer_type_cache): New array.
18140         (build_nonstandard_integer_type): Cache results for precision
18141         <= MAX_INT_CACHED_PREC.
18142
18143 2010-04-07  Richard Guenther  <rguenther@suse.de>
18144
18145         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
18146         -fargument-noalias-global, -fargument-noalias-anything): Remove.
18147         * common.opt: Likewise.
18148         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
18149         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
18150         (nonoverlapping_memrefs_p): Likewise.
18151         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
18152         * opts.c (common_handle_option): Handle OPT_fargument_alias,
18153         OPT_fargument_noalias, OPT_fargument_noalias_anything and
18154         OPT_fargument_noalias_global for backward compatibility.
18155
18156 2010-04-07  Richard Guenther  <rguenther@suse.de>
18157
18158         PR tree-optimization/43270
18159         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
18160         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
18161         * tree-ssa-pre.c (phi_translate_1): Adjust.
18162         (fully_constant_expression): Split out vn_reference handling to ...
18163         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
18164         Fold reads from constant strings.
18165         (vn_reference_lookup): Handle fully constant references.
18166         (vn_reference_lookup_pieces): Likewise.
18167         * Makefile.in (expmed.o-warn): Add -Wno-error.
18168
18169 2010-04-07  Martin Jambor  <mjambor@suse.cz>
18170
18171         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
18172
18173 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
18174
18175         PR driver/41594
18176         * gcc.c: Add -static-libstdc++ to list of recognized options.
18177
18178 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18179
18180         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
18181
18182 2010-04-07  Richard Guenther  <rguenther@suse.de>
18183
18184         PR middle-end/42617
18185         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
18186         bases build simple mem attributes to retain points-to information.
18187
18188 2010-04-07  Richard Guenther  <rguenther@suse.de>
18189
18190         PR middle-end/42617
18191         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
18192         preserve points-to related information.
18193
18194 2010-04-07  Richard Guenther  <rguenther@suse.de>
18195
18196         PR middle-end/42617
18197         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
18198         discard plain indirect references.
18199         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
18200         * tree.c (tree_nop_conversion): Likewise.
18201
18202 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
18203
18204         PR debug/43628
18205         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
18206
18207 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
18208
18209         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
18210         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
18211
18212 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
18213
18214         * tree-if-conv.c: Fix indentation and comments.
18215
18216 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
18217
18218         * tree-if-conv.c: Sort static functions in topological order.
18219
18220 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
18221
18222         * tree-if-conv.c: Fix indentation and comments.
18223
18224 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18225
18226         PR middle-end/43519
18227         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
18228         lang_hooks.types.type_for_size instead of
18229         build_nonstandard_integer_type.
18230         When converting an unsigned type to signed, double its precision.
18231         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
18232         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
18233         (graphite_create_new_loop_guard): When ub + 1 wraps around,
18234         use lb <= ub.
18235
18236 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18237
18238         PR middle-end/43519
18239         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
18240         POINTER_PLUS_EXPR for pointer types.
18241
18242 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18243
18244         PR middle-end/43519
18245         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
18246         * graphite-clast-to-gimple.c: Include langhooks.h.
18247         (max_signed_precision_type): New.
18248         (max_precision_type): Takes two types as arguments.
18249         (precision_for_value): New.
18250         (precision_for_interval): New.
18251         (gcc_type_for_interval): New.
18252         (gcc_type_for_value): New.
18253         (gcc_type_for_clast_term): New.
18254         (gcc_type_for_clast_red): New.
18255         (gcc_type_for_clast_bin): New.
18256         (gcc_type_for_clast_expr): Split up into several functions.
18257         (gcc_type_for_clast_eq): Rewritten.
18258         (compute_bounds_for_level): New.
18259         (compute_type_for_level_1): New.
18260         (compute_type_for_level): New.
18261         (gcc_type_for_cloog_iv): Removed.
18262         (gcc_type_for_iv_of_clast_loop): Rewritten.
18263         (graphite_create_new_loop): Compute the lower and upper bound types
18264         with gcc_type_for_clast_expr.
18265         (graphite_create_new_loop_guard): Same.
18266         (find_cloog_iv_in_expr): Removed.
18267         (compute_cloog_iv_types_1): Removed.
18268         (compute_cloog_iv_types): Removed.
18269         (gloog): Do not call compute_cloog_iv_types.
18270         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
18271         GBB_CLOOG_IV_TYPES.
18272         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
18273         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
18274         (GBB_CLOOG_IV_TYPES): Removed.
18275
18276 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18277
18278         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
18279         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
18280         (detect_commutative_reduction): Same.
18281
18282 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18283
18284         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
18285         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
18286         argument.
18287         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
18288         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
18289         (rewrite_commutative_reductions_out_of_ssa): Same.
18290         * passes.c (execute_function_todo): Call verify_ssa for every pass
18291         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
18292         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
18293         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
18294         with an extra argument.
18295         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
18296         verify_ssa only when the extra argument is true.
18297         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
18298         with an extra argument.
18299         (tree_transform_and_unroll_loop): Same.
18300
18301 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18302
18303         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
18304         for all the passes of the LNO having LOOP_CLOSED_SSA.
18305         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
18306         * tree-loop-distribution.c (pass_loop_distribution): Same.
18307         * tree-pass.h (TODO_verify_loops): Removed.
18308         * tree-ssa-loop.c (pass_tree_loop_init): Same.
18309         (pass_lim): Same.
18310         (pass_tree_unswitch): Same.
18311         (pass_predcom): Same.
18312         (pass_vectorize): Same.
18313         (pass_linear_transform): Same.
18314         (pass_graphite_transforms): Same.
18315         (pass_iv_canon): Same.
18316         (pass_complete_unroll): Same.
18317         (pass_complete_unrolli): Same.
18318         (pass_parallelize_loops): Same.
18319         (pass_loop_prefetch): Same.
18320         (pass_iv_optimize): Same.
18321
18322 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
18323
18324         PR middle-end/32824
18325         * passes.c (init_optimization_passes): Move pass_lim before
18326         pass_copy_prop and pass_dce_loop.
18327
18328 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
18329
18330         PR target/43667
18331         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
18332         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
18333         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
18334         MULTI_* defines for 4 argument vpermil2p* builtins.
18335
18336 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
18337
18338         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
18339         * config/i386/i386.c (x86_maybe_negate_const_int): New.
18340         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
18341         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
18342         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
18343         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
18344         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
18345         Use x86_maybe_negate_const_int to output insn mnemonic.
18346         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
18347         check from instruction predicate.  Update comments.
18348         * config/i386/sync.md (sync_add<mode>): Use
18349         x86_maybe_negate_const_int to output insn mnemonic.
18350
18351 2010-04-06  Jan Hubicka  <jh@suse.cz>
18352
18353         PR tree-optimization/42906
18354         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
18355         IGNORE_SELF argument.  Set visited_control_parents for fully
18356         processed BBs.
18357         (find_obviously_necessary_stmts): Update call of
18358         mark_control_dependent_edges_necessary.
18359         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
18360
18361 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
18362
18363         * config/i386/i386.md: Remove comment about 'e' and 'E'
18364         operand modifier.
18365
18366 2010-04-06  Richard Guenther  <rguenther@suse.de>
18367
18368         PR tree-optimization/43627
18369         * tree-vrp.c (extract_range_from_unary_expr): Widenings
18370         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
18371         not varying.
18372
18373 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
18374
18375         * BASE-VER: Change to 4.6.0.
18376
18377         PR target/43638
18378         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
18379         handling.
18380
18381 2010-04-06  Richard Guenther  <rguenther@suse.de>
18382
18383         PR middle-end/43661
18384         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
18385
18386 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18387
18388         * doc/invoke.texi (Optimize Options): Document that LTO
18389         won't remove object access purely due to incompatible
18390         declarations.
18391
18392 2010-04-04  Matthias Klose  <doko@ubuntu.com>
18393
18394         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
18395         Initialize variable.
18396
18397 2010-04-03  Richard Guenther  <rguenther@suse.de>
18398
18399         PR middle-end/42509
18400         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
18401         require a non-NULL MEM_OFFSET.
18402
18403 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
18404
18405         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
18406         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
18407         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
18408         config/alpha/predicates.md, config/arm/arm.md,
18409         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
18410         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
18411         config/darwin9.h, config/darwin.c, config/darwin.h,
18412         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
18413         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
18414         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
18415         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
18416         config/mips/mips.md, config/mn10300/mn10300.c,
18417         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
18418         config/rs6000/aix.h, config/rs6000/dfp.md,
18419         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
18420         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
18421         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
18422         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
18423         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
18424         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
18425         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
18426         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
18427         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
18428         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
18429         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
18430         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
18431         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
18432         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
18433         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
18434         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
18435         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
18436         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
18437         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
18438         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
18439         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
18440         opt-functions.awk, opth-gen.awk, params.def, passes.c,
18441         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
18442         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
18443         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
18444         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
18445         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
18446         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
18447         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
18448         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
18449         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
18450         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
18451         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
18452         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
18453         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
18454         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
18455
18456 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18457
18458         PR other/43620
18459         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
18460         * aclocal.m4: Regenerate.
18461
18462 2010-04-02  Richard Guenther  <rguenther@suse.de>
18463
18464         PR tree-optimization/43629
18465         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
18466         if we have seen a constant value.
18467
18468 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
18469
18470         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
18471
18472 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
18473
18474         PR target/43469
18475         * arm.c (legitimize_tls_address): Adjust call to
18476         gen_tls_load_dot_plus_four.
18477         (arm_note_pic_base): New function.
18478         (arm_cannot_copy_insn_p): Use it.
18479         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
18480         constraint.
18481
18482 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18483
18484         PR bootstrap/43531
18485
18486         Revert:
18487         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18488
18489         * Makefile.in ($(out_object_file)): Depend on
18490         gt-$(basename $(notdir $(out_file))).h.
18491
18492 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
18493
18494         * config.gcc (lm32-*-rtems*): Add t-lm32.
18495
18496 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
18497
18498         * config.gcc: Add lm32-*-rtems*.
18499         * config/lm32/rtems.h: New file.
18500
18501 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
18502
18503         PR target/42609
18504         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
18505
18506 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
18507
18508         * dwarf2out.c (output_compilation_unit_header): For
18509         -gdwarf-4 use version 4 instead of version 3.
18510         (output_line_info): For version 4 and above emit additional
18511         maximum ops per insn header field.
18512         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
18513
18514         * dwarf2out.c (is_c_family, is_java): Remove.
18515         (lower_bound_default): New function.
18516         (add_bound_info, gen_descr_array_type_die): Use it.
18517
18518 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
18519
18520         PR debug/43325
18521         * dwarf2out.c (gen_variable_die): Allow debug info for variable
18522         re-declaration when it happens in a function.
18523
18524 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
18525
18526         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
18527         (cgraph_remove_function_insertion_hook): Same.
18528         (cgraph_call_function_insertion_hooks): Same.
18529
18530 2010-04-01  Richard Guenther  <rguenther@suse.de>
18531
18532         PR middle-end/43614
18533         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
18534         and TREE_THIS_VOLATILE.
18535         (copy_ref_info): Likewise.
18536         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
18537         * tree.c (build6_stat): Ignore side-effects of all but arg5
18538         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
18539         TARGET_MEM_REF.
18540
18541 2010-04-01  Richard Guenther  <rguenther@suse.de>
18542
18543         PR tree-optimization/43607
18544         * ipa-type-escape.c (check_call): Do not access non-existing
18545         arguments.
18546
18547 2010-04-01  Richard Guenther  <rguenther@suse.de>
18548
18549         PR middle-end/43602
18550         Revert
18551         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
18552                     Jack Howarth <howarth@bromo.med.uc.edu>
18553
18554         * tree-profile.c (tree_init_ic_make_global_vars): Make static
18555         variables TLS.
18556
18557 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18558
18559         * doc/install.texi (Prerequisites): Document libelf usability on
18560         IRIX 5/6 and Solaris 2.
18561         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
18562         Update GNU as, GNU ld requirements.
18563         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
18564         Document Sun Studio compiler download.
18565         Update and simplify as, ld recommendations.
18566         (Specific, *-*-solaris2.7): Note obsoletion, removal.
18567
18568 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18569
18570         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
18571         with_tune_32 to pentium4.
18572
18573 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
18574
18575         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
18576
18577 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18578
18579         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
18580         obsoletion, removal.
18581         Update IDO URL.
18582         Document GNU as requirement.
18583         Update configure requirements.
18584         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
18585         Recomment IRIX 6.5.18+.
18586         Document IDF/IDL requirement.
18587         Document GNU as requirement.
18588         Document GNU ld bootstrap failure.
18589         Remove freeware.sgi.com reference.
18590
18591 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18592
18593         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
18594         UNIX V4.0, V5.0 obsoletion, removal.
18595         Remove --with-gc=simple reference.
18596         Update VM requirements during bootstrap.
18597         Remove -oldas bootstrap description.
18598         Update binutils reference.
18599         Remove comparison failure note.
18600
18601 2010-03-31  Richard Guenther  <rguenther@suse.de>
18602             Zdenek Dvorak  <ook@ucw.cz>
18603             Sebastian Pop  <sebastian.pop@amd.com>
18604
18605         PR middle-end/43464
18606         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
18607         with multiple arguments.
18608         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
18609
18610 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18611
18612         * graphite-dependences.c (print_pddr): Call print_pdr with an
18613         extra argument.
18614         * graphite-poly.c (debug_pdr): Add an extra argument for the
18615         verbosity level.
18616         (print_pdr): Same.
18617         (print_pbb_domain): Same.
18618         (print_pbb): Same.
18619         (print_scop_context): Same.
18620         (print_scop): Same.
18621         (print_cloog): Same.
18622         (debug_pbb_domain): Same.
18623         (debug_pbb): Same.
18624         (print_pdrs): Same.
18625         (debug_pdrs): Same.
18626         (debug_scop_context): Same.
18627         (debug_scop): Same.
18628         (debug_cloog): Same.
18629         (print_scop_params): Same.
18630         (debug_scop_params): Same.
18631         (print_iteration_domain): Same.
18632         (print_iteration_domains): Same.
18633         (debug_iteration_domain): Same.
18634         (debug_iteration_domains): Same.
18635         (print_scattering_function): Same.
18636         (print_scattering_functions): Same.
18637         (debug_scattering_function): Same.
18638         (debug_scattering_functions): Same.
18639         * graphite-poly.h (debug_pdr): Update declaration.
18640         (print_pdr): Same.
18641         (print_pbb_domain): Same.
18642         (print_pbb): Same.
18643         (print_scop_context): Same.
18644         (print_scop): Same.
18645         (print_cloog): Same.
18646         (debug_pbb_domain): Same.
18647         (debug_pbb): Same.
18648         (print_pdrs): Same.
18649         (debug_pdrs): Same.
18650         (debug_scop_context): Same.
18651         (debug_scop): Same.
18652         (debug_cloog): Same.
18653         (print_scop_params): Same.
18654         (debug_scop_params): Same.
18655         (print_iteration_domain): Same.
18656         (print_iteration_domains): Same.
18657         (debug_iteration_domain): Same.
18658         (debug_iteration_domains): Same.
18659         (print_scattering_function): Same.
18660         (print_scattering_functions): Same.
18661         (debug_scattering_function): Same.
18662         (debug_scattering_functions): Same.
18663
18664 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18665
18666         * graphite-poly.c (print_scattering_function_1): New.
18667         (print_scattering_function): Call it.
18668         (print_scop_params): Remove spaces at the end of lines.
18669         (print_cloog): New.
18670         (debug_cloog): New.
18671         * graphite-poly.h (print_cloog): Declared.
18672         (debug_cloog): Declared.
18673
18674 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18675
18676         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
18677         in loop->header.
18678         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
18679         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
18680         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
18681         to switch between adding the IV bump in loop->latch or in loop->header.
18682
18683 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18684
18685         * graphite-poly.c (print_scattering_function): Pretty print following
18686         the scoplib format.
18687         (print_pdr): Same.
18688         (print_pbb_domain): Same.
18689         (dump_gbb_cases): Same.
18690         (dump_gbb_conditions): Same.
18691         (print_pdrs): Same.
18692         (print_pbb): Same.
18693         (print_scop_params): Same.
18694         (print_scop_context): Same.
18695         (print_scop): Same.
18696         (print_pbb_body): New.
18697         (lst_indent_to): New.
18698         (print_lst): Start new lines with a #.
18699         * graphite-poly.h (pbb_bb): New.
18700         (pbb_index): Use pbb_bb.
18701         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
18702         disjuncts.
18703         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
18704
18705 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
18706
18707         * dwarf2out.c (size_of_die): For -gdwarf-4 use
18708         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
18709         and 0 instead of 1 for dw_val_class_flag.
18710         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
18711         dw_val_class_range_list, dw_val_class_loc_list,
18712         dw_val_class_lineptr and dw_val_class_macptr, use
18713         DW_FORM_flag_present for dw_val_class_flag and
18714         DW_FORM_exprloc for dw_val_class_loc.
18715         (output_die): For -gdwarf-4 print dw_val_class_loc
18716         size as uleb128 instead of 1 or 2 bytes and don't print
18717         anything for dw_val_class_flag.
18718
18719         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
18720         instead of cselib_lookup following by tweaking locs->setting_insn.
18721
18722         PR bootstrap/43596
18723         * cselib.c (cselib_process_insn): Clear cselib_current_insn
18724         even before returning from label, setjmp call or volatile asm
18725         handling.
18726
18727 2010-03-31  Richard Guenther  <rguenther@suse.de>
18728
18729         PR middle-end/43600
18730         * cgraphunit.c (cgraph_output_in_order): Do not allocate
18731         temporary data on stack.
18732
18733 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18734
18735         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
18736         (PUSHSECTION_ASM_OP): Remove.
18737         (POPSECTION_ASM_OP): Remove.
18738         (PUSHSECTION_FORMAT): Remove.
18739         * config/sol2.h (PUSHSECTION_FORMAT): Define.
18740         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
18741         * config/sol2.c (solaris_output_init_fini): Use it.
18742
18743 2010-03-31  Jie Zhang  <jie@codesourcery.com>
18744
18745         PR 43574
18746         * opt-functions.awk (var_type_struct): Use signed char type
18747         for simple variables.
18748
18749 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18750
18751         * config/sol2.c: Include output.h.
18752         (solaris_assemble_visibility): New function.
18753         * config/t-sol2 (sol2.o): Add output.h dependency.
18754         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
18755         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
18756         Redefine.
18757
18758 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
18759
18760         PR target/43580
18761         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
18762         V2SImode or XFmode on PRE_DEC.
18763
18764         PR debug/43557
18765         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
18766         BLKmode.
18767
18768 2010-03-31  Jie Zhang  <jie@codesourcery.com>
18769
18770         PR 43562
18771         * reload.h (caller_save_initialized_p): Declare.
18772         * toplev.c (backend_init_target): Don't call
18773         init_caller_save but set caller_save_initialized_p to false.
18774         * caller-save.c (caller_save_initialized_p): Define.
18775         (init_caller_save): Check caller_save_initialized_p.
18776         * ira.c (ira): Call init_caller_save if flag_caller_saves.
18777
18778 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18779
18780         PR target/39048
18781         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
18782         and soft-fp/t-softfp to tmake_file.
18783         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
18784         (LIBGCC2_TF_CEXT): Define.
18785         (TF_SIZE): Define.
18786
18787 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
18788
18789         PR debug/42977
18790         * cselib.c (n_useless_values): Document handling of debug locs.
18791         (n_useless_debug_values, n_debug_values): New variables.
18792         (new_elt_loc_list): Don't add to debug values, keep count.
18793         (promote_debug_loc): New.
18794         (cselib_reset_table): Zero new variables.
18795         (entry_and_rtx_equal_p): Promote debug locs.
18796         (discard_useless_locs): Increment n_useless_debug_values for
18797         debug values.
18798         (remove_useless_values): Adjust n_useless_values and n_debug_values
18799         with n_useless_debug_values.
18800         (add_mem_for_addr): Promote debug locs.
18801         (cselib_lookup_mem): Likewise.
18802         (cselib_lookup_addr): Renamed to...
18803         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
18804         (cselib_log_lookup): ... this.  Turn into...
18805         (cselib_lookup_addr): ... new wrapper.
18806         (cselib_lookup_from_insn): New.
18807         (cselib_invalidate_regno): Increment n_useless_debug_values for
18808         debug values.
18809         (cselib_invalidate_mem): Likewise.
18810         (cselib_process_insn): Take n_deleted and n_debug_values into
18811         account to guard remove_useless_value call.
18812         (cselib_finish): Zero n_useless_debug_values.
18813         * cselib.h (cselib_lookup_from_insn): Declare.
18814         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
18815         (sched_analyze_2): Likewise.
18816
18817 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
18818
18819         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
18820         functions.
18821         (adjust_mems): Replace narrowing SUBREG of expression containing
18822         just PLUS, MINUS, MULT and ASHIFT of registers and constants
18823         with operations in the narrower mode.
18824
18825         PR debug/43593
18826         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
18827         regs_invalidated_by_call instead all call_used_reg_set registers.
18828
18829 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
18830
18831         PR middle-end/43430
18832         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
18833         pointer comparisons with types_compatible_p.
18834         * tree-vect-stmts.c (vectorizable_call): Same.
18835         (vectorizable_condition): Same.
18836
18837 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18838
18839         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
18840         stack check if the mask would be zero.
18841
18842 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
18843             Jack Howarth <howarth@bromo.med.uc.edu>
18844
18845         * tree-profile.c (tree_init_ic_make_global_vars): Make static
18846         variables TLS.
18847
18848 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
18849
18850         PR other/25232
18851         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
18852         and __unordtf2.
18853         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
18854         Include ___unordxf2 and ___unordtf2.
18855         * config/i386/libgcc-glibc.ver: Do not define inheritance from
18856         GCC_4.4.0 here.
18857
18858 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
18859
18860         * config/lm32/t-lm32: New file.
18861         * config.gcc: Use the above file when targetting lm32.
18862
18863 2010-03-28  Duncan Sands  <baldrick@free.fr>
18864
18865         * Makefile.in (PLUGIN_HEADERS): Add except.h.
18866
18867 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
18868
18869         PR middle-end/43431
18870         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
18871         Improve vectorization cost model diagnostic.
18872
18873 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
18874
18875         PR middle-end/43436
18876         * tree-vect-data-refs.c (vect_analyze_data_refs): When
18877         compute_data_dependences_for_loop returns false, early exit
18878         and output an extra diagnostic for the failed data reference
18879         analysis.
18880
18881 2010-03-29  Richard Guenther  <rguenther@suse.de>
18882
18883         PR tree-optimization/43560
18884         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
18885         (can_sm_ref_p): Treat stores to readonly locations as trapping.
18886
18887 2010-03-29  Jie Zhang  <jie@codesourcery.com>
18888
18889         PR 43564
18890         * toplev.c (process_options): Set optimization_default_node
18891         and optimization_current_node.
18892         * opts.c (decode_options): Don't set optimization_default_node
18893         and optimization_current_node.
18894
18895 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
18896
18897         * config/rtems.h: Abandon -qrtems_debug.
18898
18899 2010-03-28  Jan Hubicka  <jh@suse.cz>
18900
18901         PR tree-optimization/43505
18902         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
18903         map should not be copied.
18904
18905 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18906
18907         PR middle-end/41674
18908         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
18909         cdtors, set DECL_PRESERVE_P.
18910         * ipa.c (cgraph_externally_visible_p): Return true if declaration
18911         should be preseved.
18912
18913 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
18914
18915         PR tree-optimization/43528
18916         * stor-layout.c (place_field): Check that constant fits into
18917         unsigned HWI when skipping calculation of MS bitfield layout.
18918
18919 2010-03-27  Jan Hubicka  <jh@suse.cz>
18920
18921         PR middle-end/43391
18922         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
18923         notice_global_symbol work.
18924
18925 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
18926
18927         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
18928         instead of dwarf2out_decl.
18929         (struct var_loc_node): Remove section_label field.
18930         (dwarf2out_function_decl): New function.
18931         (dwarf2out_var_location): Don't set section_label field.
18932         (dwarf2out_begin_function): Don't empty decl_loc_table here.
18933
18934 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
18935
18936         PR tree-optimization/43544
18937         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
18938         First argument for builtin vectorized function hook is now a
18939         tree to be able to distinguish between machine specific and
18940         standard builtins.
18941         * targhooks.c (default_builtin_vectorized_function): Ditto.
18942         * targhooks.h (default_builtin_vectorized_function): Ditto.
18943         * target.h (struct gcc_target): Ditto.
18944         * tree-vect-stmts.c (vectorizable_function): Ditto.
18945         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
18946         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
18947         Ditto.
18948
18949 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
18950
18951         PR c/43381
18952         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
18953         nested binding iff it is a FUNCTION_DECL.
18954         (store_parm_decls_newstyle): Pass nested=true to bind for
18955         FUNCTION_DECLs amongst parameters.
18956
18957 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
18958
18959         * var-tracking.c (vt_expand_loc_callback): Don't run
18960         cselib_expand_value_rtx_cb in dummy mode if
18961         cselib_dummy_expand_value_rtx_cb returned false.
18962
18963         * var-tracking.c (emit_note_insn_var_location): For one part
18964         notes with offset 0, don't add EXPR_LIST around the location.
18965         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
18966         add_location_or_const_value_attribute): Adjust for that change.
18967
18968         PR debug/43540
18969         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
18970         into first operand and location into second.
18971         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
18972         dw_cfi_oprnd_loc for DW_CFA_expression.
18973         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
18974         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
18975         assume first argument is regnum and second argument is location.
18976
18977 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
18978
18979         PR target/42113
18980         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
18981         of scratch register to DImode.  Split to DImode comparison operator.
18982         Use SImode subreg of scratch register in the multiplication.
18983         (*cmp_sadd_sidi): Ditto.
18984         (*cmp_ssub_si): Ditto.
18985         (*cmp_ssub_sidi): Ditto.
18986
18987 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
18988
18989         PR target/43524
18990         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
18991         Remove invalid assert and wrong comment.
18992
18993 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
18994
18995         PR debug/43516
18996         * flags.h (final_insns_dump_p): New extern.
18997         * final.c (final_insns_dump_p): New variable.
18998         (rest_of_clean_state): Set it before -fdump-final-insns=
18999         dumping, clear afterwards.
19000         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
19001         MEM_ALIAS_SET on MEMs.
19002
19003 2010-03-26  David S. Miller  <davem@davemloft.net>
19004
19005         * configure.ac: Fix sparc GOTDATA_OP bug check.
19006         * configure: Rebuild.
19007
19008 2010-03-26  Alan Modra  <amodra@gmail.com>
19009
19010         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
19011
19012 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19013
19014         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
19015         TLS_SECTION_ASM_FLAG.
19016
19017 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
19018
19019         PR bootstrap/43511
19020         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
19021         Clear first_function_block_is_cold.
19022
19023         PR c/43385
19024         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
19025         argument if the argument is truth_value_p.
19026
19027 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
19028
19029         * config/rs6000/constraints.md: Update copyright year for my changes.
19030
19031         PR target/43484
19032         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
19033         used in reg+reg addressing, swap registers.
19034
19035 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
19036
19037         PR debug/43293
19038         * target.h (struct gcc_target): Add code_end hook.
19039         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
19040         if not yet defined.
19041         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
19042         * toplev.c (compile_file): Call targetm.asm_out.code_end
19043         hook before unwind info/debug info output.
19044         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
19045         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
19046         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
19047         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
19048         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
19049         * config/i386/i386.c (ix86_file_end): Renamed to...
19050         (ix86_code_end): ... this.  Make static.  Don't call
19051         file_end_indicate_exec_stack.  Emit unwind info using
19052         final_start_function/final_end_function.
19053         (darwin_x86_file_end): Remove.
19054         (TARGET_ASM_CODE_END): Define.
19055         * config/i386/i386.h (TARGET_ASM_FILE_END,
19056         NEED_INDICATE_EXEC_STACK): Don't define.
19057         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
19058         (TARGET_ASM_FILE_END): Define to darwin_file_end.
19059         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
19060         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
19061
19062         PR target/43498
19063         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
19064         at the beginning and final_end_function at the end.
19065         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
19066
19067 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19068
19069         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
19070         and Sun as TLS syntax.
19071         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
19072         * configure: Regenerate.
19073         * config.in: Regenerate.
19074         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
19075         (default_elf_asm_named_section): Use it.
19076         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
19077         (i386_output_dwarf_dtprel): Likewise.
19078         (output_addr_const_extra): Likewise.
19079         (output_pic_addr_const): Lowercase @GOTTPOFF.
19080         (output_addr_const_extra): Likewise.
19081         (output_pic_addr_const): Lowercase @GOTNTPOFF.
19082         (output_addr_const_extra): Likewise.
19083         (output_pic_addr_const): Lowercase @INDNTPOFF.
19084         (output_addr_const_extra): Likewise.
19085         (output_pic_addr_const): Lowercase @NTPOFF.
19086         (output_addr_const_extra): Likewise.
19087         (output_pic_addr_const): Lowercase @TPOFF.
19088         (output_addr_const_extra): Likewise.
19089         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
19090         (*tls_global_dynamic_64): Likewise.
19091         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
19092         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
19093
19094         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
19095         (ASM_OUTPUT_TLS_COMMON): Use it.
19096         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
19097
19098         PR target/38118
19099         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
19100         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
19101         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
19102         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
19103         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
19104         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
19105
19106 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19107
19108         * config/i386/i386.c (override_options): Don't accept
19109         -mtls-dialect=sun any longer.
19110         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
19111         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
19112         (*tls_local_dynamic_base_32_sun): Likewise.
19113         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
19114
19115 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
19116
19117         PR debug/43508
19118         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
19119         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
19120
19121         PR debug/43479
19122         * ira.c (adjust_cleared_regs): New function.
19123         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
19124
19125         PR debug/19192
19126         PR debug/43479
19127         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
19128         from gimple_block.
19129         * expr.c (expand_expr_real): Restore previous
19130         curr_insn_source_location and curr_insn_block after
19131         expand_expr_real_1 call.
19132         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
19133         instead of expand_expr_real_1.
19134
19135 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
19136
19137         PR rtl-optimization/43413
19138         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
19139         hard regs too.
19140
19141 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
19142
19143         PR target/43348
19144         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
19145         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
19146
19147 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
19148
19149         * config/i386/i386.c (ix86_target_string): Add -mfma.
19150         Fix a typo in comment.
19151
19152 2010-03-22  Mike Stump  <mikestump@comcast.net>
19153
19154         PR target/23071
19155         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
19156         Don't overly align based upon packed packed fields.
19157
19158 2010-03-22  Jason Merrill  <jason@redhat.com>
19159
19160         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
19161         Use () rather than [], and move before the element type.
19162
19163 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19164
19165         * doc/configfiles.texi (Configuration Files): Removed
19166         fixinc/Makefile*, intl/Makefile.*.
19167         * doc/makefile.texi: Fixed markup. Abstract from version
19168         control system used.
19169         (Makefile): Removed obsolete gcc/java/parse.y example.
19170         * doc/sourcebuild.texi: Likewise.
19171         (Top Level): Added config, gnattools, libdecnumber, libgcc,
19172         libgomp, libssp.  Removed fastjar.
19173         (Miscellaneous Docs): Clarify location.
19174         Added COPYING3, COPYING3.LIB.
19175         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
19176
19177 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19178
19179         PR target/38085
19180         * config/i386/i386.c (x86_function_profiler)
19181         [!NO_PROFILE_COUNTERS]: Fix typo.
19182         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
19183         instead of callq.
19184
19185 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
19186             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19187
19188         * doc/sourcebuild.texi (Test Directives): Split into six
19189         subsections, with most of the current text in new subsections
19190         Directives, Selectors, and Final Actions.
19191         (Directives): Split list of test directives into multiple
19192         subsubsections.
19193         (Selectors): Describe use and syntax of selectors.
19194         (Effective-Target Keywords): Describe all existing keywords.
19195         (Add Options): Describe features for dg-add-options.
19196         (Require Support): Describe variants of dg-require-support.
19197         (Final Actions): Describe commands to use in dg-final.
19198
19199 2010-03-22  Michael Matz  <matz@suse.de>
19200
19201         PR middle-end/43475
19202         * recog.c (validate_replace_rtx_group): Replace also in
19203         REG_EQUAL and REG_EQUIV notes.
19204
19205 2010-03-22  Richard Guenther  <rguenther@suse.de>
19206
19207         PR tree-optimization/43390
19208         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
19209         sure vector extracts are type correct.
19210
19211 2010-03-22  Richard Guenther  <rguenther@suse.de>
19212
19213         PR middle-end/40106
19214         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
19215         x * sqrt (x) even when optimizing for size if the target
19216         has native support for sqrt.
19217
19218 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
19219
19220         * varasm.c (make_decl_rtl_for_debug): Also clear
19221         flag_mudflap for the duration of make_decl_rtl call.
19222
19223         PR debug/43443
19224         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
19225         locs from preserved VALUEs.
19226
19227 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19228
19229         PR middle-end/42718
19230         * pa.md (movmemsi): Set align to one if zero.
19231         (movmemdi): Likewise.
19232
19233 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
19234
19235         PR target/42321
19236         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
19237         with their corresponding prologue pushes.
19238
19239 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
19240
19241         PR target/43156
19242         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
19243         at the begining or end.
19244         (spu_expand_epilogue): Likewise.
19245
19246 2010-03-20  Richard Guenther  <rguenther@suse.de>
19247
19248         PR rtl-optimization/43438
19249         * combine.c (make_extraction): Properly zero-/sign-extend an
19250         extraction of the low part of a CONST_INT.  Also handle
19251         CONST_DOUBLE.
19252
19253 2010-03-19  Mike Stump  <mikestump@comcast.net>
19254
19255         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
19256         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
19257         (override_options): Use SUBTARGET32_DEFAULT_CPU.
19258
19259 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
19260
19261         PR c/43211
19262         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
19263         an error.
19264
19265 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
19266
19267         PR rtl-optimization/42258
19268         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
19269         use that may match DEF.
19270
19271         PR target/40697
19272         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
19273         the cost of loading the constant rather than assuming
19274         COSTS_N_INSNS (1).
19275         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
19276         outer code is AND, do the same tests as the andsi3 expander and
19277         return COSTS_N_INSNS (1) if and is cheap.
19278
19279         * optabs.c (avoid_expensive_constant): Fix formatting.
19280
19281 2010-03-19  Michael Matz  <matz@suse.de>
19282
19283         PR c++/43116
19284         * attribs.c (decl_attributes): When rebuilding a function pointer
19285         type use the same qualifiers as the original pointer type.
19286
19287 2010-03-19  Martin Jambor  <mjambor@suse.cz>
19288
19289         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
19290         and is_gimple_ip_invariant_address.
19291
19292 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19293
19294         Revert
19295         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19296
19297         * config/arm/arm.c (arm_override_options): Turn off
19298         flag_dwarf2_cfi_asm for AAPCS variants.
19299
19300 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19301
19302         PR target/43399
19303         * config/arm/arm.c (emit_multi_reg_push): Update comments.
19304         Use PRE_MODIFY instead of PRE_DEC.
19305         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
19306         (vfp_emit_fstmd): Likewise.
19307
19308 2010-03-19  Michael Matz  <matz@suse.de>
19309
19310         PR target/43305
19311         * builtins.c (expand_builtin_interclass_mathfn,
19312         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
19313         if that fails.
19314
19315 2010-03-19  Richard Guenther  <rguenther@suse.de>
19316
19317         PR tree-optimization/43415
19318         * tree-ssa-pre.c (phi_translate): Split out worker to ...
19319         (phi_translate_1): ... this.
19320         (phi_translate): Move all caching here.  Cache all NARY
19321         and REFERENCE translations.
19322
19323 2010-03-19  David S. Miller  <davem@davemloft.net>
19324
19325         With help from Eric Botcazou.
19326         * config/sparc/sparc.c: Include dwarf2out.h.
19327         (emit_pic_helper): Delete.
19328         (pic_helper_symbol_name): Delete.
19329         (pic_helper_emitted_p): Delete.
19330         (pic_helper_needed): New.
19331         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
19332         (get_pc_thunk_name): New.
19333         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
19334         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
19335         Set pic_helper_needed to true.  Don't call emit_pic_helper.
19336         (sparc_expand_prologue): Update load_pic_register call.
19337         (sparc_output_mi_thunk): Likewise.
19338         (sparc_file_end): Emit a hidden comdat symbol for the PIC
19339         thunk if possible.  Output CFI information as needed.
19340
19341 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
19342             Jack Howarth <howarth@bromo.med.uc.edu>
19343
19344         PR target/36399
19345         * config/i386/i386.h: Fix ABI on darwin x86-32.
19346
19347 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
19348
19349         * tree.h: Declare make_decl_rtl_for_debug.
19350         * varasm.c (make_decl_rtl_for_debug): New.
19351         * dwarf2out.c (rtl_for_decl_location): Call it.
19352         * cfgexpand.c (expand_debug_expr): Call it.
19353
19354 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
19355
19356         PR bootstrap/43399
19357         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
19358         mem_mode.
19359
19360         PR bootstrap/43403
19361         * var-tracking.c (vt_init_cfa_base): Do nothing if
19362         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
19363
19364 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
19365
19366         PR debug/42873
19367         * var-tracking.c (canonicalize_vars_star): New.
19368         (dataflow_post_merge_adjust): Use it.
19369
19370 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
19371
19372         PR debug/43058
19373         * var-tracking.c (non_suitable_const): New function.
19374         (add_uses): For DEBUG_INSNs with constants, don't record any
19375         value, instead just the constant value itself.
19376         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
19377         is not VAR_LOC_UNKNOWN_P, set var to the constant.
19378         (emit_notes_in_bb): Likewise.
19379         (emit_note_insn_var_location): For onepart variables if
19380         cur_loc is a VOIDmode constant, use DECL_MODE.
19381
19382 2010-03-18  Martin Jambor  <mjambor@suse.cz>
19383
19384         PR middle-end/42450
19385         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
19386         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
19387         all non-clones.  Moved call redirection...
19388         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
19389         (cgraph_materialize_all_clones): Dispose of all
19390         combined_args_to_skip bitmaps.
19391         (verify_cgraph_node): Do not check for edges pointing to wrong
19392         nodes in inline clones.
19393         * tree-inline.c (copy_bb): Call
19394         cgraph_redirect_edge_call_stmt_to_callee.
19395         * ipa.c (cgraph_remove_unreachable_nodes): Call
19396         cgraph_node_remove_callees even when there are used clones.
19397
19398 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
19399
19400         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
19401
19402 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
19403
19404         PR target/43383
19405         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
19406         for 32bit.
19407
19408 2010-03-18  Michael Matz  <matz@suse.de>
19409
19410         PR middle-end/43419
19411         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
19412         into sqrt(x) if we need to preserve signed zeros.
19413
19414 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
19415             Eric Botcazou  <ebotcazou@adacore.com>
19416
19417         PR rtl-optimization/43360
19418         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
19419         note if we don't know its invariant status.
19420
19421 2010-03-18  Michael Matz  <matz@suse.de>
19422
19423         PR tree-optimization/43402
19424         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
19425         PHI chains of ssa names registered for update.
19426
19427 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
19428
19429         PR target/42427
19430         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
19431         non-offsettable and pre_modify update addressing.
19432         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
19433         and "2" alternatives "#".
19434         (*movdd_softfloat32): Make all alternatives "#";
19435         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
19436         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
19437         (*movdf_softfloat32): Make all alternatives "#";
19438         (movdi): Use the new DIFD mode iterator to create a common splitter
19439         for movdi, movdf and movdd patterns.
19440
19441 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
19442
19443         * common.opt (dumpdir): Remove redundant tab.
19444
19445 2010-03-17  Martin Jambor  <mjambor@suse.cz>
19446
19447         PR tree-optimization/43347
19448         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
19449         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
19450
19451 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
19452
19453         PR rtl-optimization/42216
19454         * regrename.c (create_new_chain): New function, broken out from...
19455         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
19456         appending a use to an empty chain.
19457         (build_def_use): Remove previous changes that convert OP_INOUT to
19458         OP_OUT operands; instead detect the case where an OP_INOUT operand
19459         uses a previously untracked register and create an empty chain for it.
19460
19461 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19462
19463         * doc/extend.texi (Function Attributes): Rewrite unfinished
19464         sentence in ms_abi documentation.
19465
19466 2010-03-17  Alan Modra  <amodra@gmail.com>
19467
19468         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
19469         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
19470         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
19471         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
19472
19473 2010-03-16  Richard Henderson  <rth@redhat.com>
19474
19475         PR middle-end/43365
19476         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
19477         (lower_try_finally): Save and restore eh_seq around the expansion
19478         of the try-finally.
19479
19480 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
19481
19482         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
19483         statements before splitting block.
19484
19485 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19486
19487         * doc/sourcebuild.texi (Testsuites): Fix markup.
19488         Use pathnames relative to gcc/testsuite.
19489         (Test Directives): Move description of how timeout is determined.
19490         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
19491         (C Tests): Correct gcc.misc-tests directory.
19492         Framework tests now live in gcc.test-framework.
19493
19494 2010-03-16  Richard Guenther  <rguenther@suse.de>
19495
19496         PR middle-end/43379
19497         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
19498         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
19499
19500 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
19501             Alexandre Oliva  <aoliva@redhat.com>
19502
19503         PR tree-optimization/42917
19504         * lambda-code.c (remove_iv): Skip debug statements.
19505         (lambda_loopnest_to_gcc_loopnest): Likewise.
19506         (not_interesting_stmt): Debug statements are not interesting.
19507
19508 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
19509
19510         PR debug/43051
19511         PR debug/43092
19512         * cselib.c (cselib_preserve_constants,
19513         cfa_base_preserved_val): New static variables.
19514         (preserve_only_constants): New function.
19515         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
19516         clear its REG_VALUES.  If cselib_preserve_constants, don't
19517         empty the whole hash table, but preserve there VALUEs with constants,
19518         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
19519         (cselib_preserve_cfa_base_value): New function.
19520         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
19521         (cselib_init): Change argument to int bitfield.  Set
19522         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
19523         is in it.
19524         (cselib_finish): Clear cselib_preserve_constants and
19525         cfa_base_preserved_val.
19526         * cselib.h (enum cselib_record_what): New enum.
19527         (cselib_init): Change argument to int.
19528         (cselib_preserve_cfa_base_value): New prototype.
19529         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
19530         * dse.c (dse_step1): Likewise.
19531         * cfgcleanup.c (thread_jump): Likewise.
19532         * sched-deps.c (sched_analyze): Likewise.
19533         * gcse.c (local_cprop_pass): Likewise.
19534         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
19535         If FN is non-NULL, call the callback always and whenever it returns
19536         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
19537         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
19538         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
19539         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
19540         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
19541         * var-tracking.c: Include recog.h.
19542         (bb_stack_adjust_offset): Remove.
19543         (vt_stack_adjustments): Don't call it, instead just gather the
19544         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
19545         (adjust_stack_reference): Remove.
19546         (compute_cfa_pointer): New function.
19547         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
19548         (struct adjust_mem_data): New type.
19549         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
19550         functions.
19551         (get_address_mode): New function.
19552         (replace_expr_with_values): Use it.
19553         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
19554         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
19555         (adjust_sets): Remove.
19556         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
19557         Use get_address_mode.
19558         (get_adjusted_src): Remove.
19559         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
19560         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
19561         (add_with_sets): Don't call adjust_sets.
19562         (fp_setter, vt_init_cfa_base): New functions.
19563         (vt_initialize): Change return type to bool.  Move most of pool etc.
19564         initialization to the beginning of the function from end.  Pass
19565         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
19566         If !frame_pointer_needed, call vt_stack_adjustment before mos
19567         vector is filled, call vt_init_cfa_base if argp/framep has been
19568         eliminated to sp.  If frame_pointer_needed and argp/framep has
19569         been eliminated to hard frame pointer, set
19570         hard_frame_pointer_adjustment and call vt_init_cfa_base after
19571         encountering fp setter in the prologue.  For MO_ADJUST, call
19572         log_op_type before pusing the op into mos vector, not afterwards.
19573         Call adjust_insn before cselib_process_insn/add_with_sets,
19574         call cancel_changes (0) afterwards.
19575         (variable_tracking_main_1): Adjust for vt_initialize calling
19576         vt_stack_adjustments and returning whether it succeeded or not.
19577
19578 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
19579
19580         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
19581         debug statements.
19582
19583 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
19584
19585         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
19586         has been set.
19587         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
19588         drap_reg has not been set.
19589
19590 2010-03-15  Michael Matz  <matz@suse.de>
19591
19592         PR middle-end/43300
19593         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
19594         use it to expand block copies.
19595         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
19596         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
19597         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
19598
19599 2010-03-15  Richard Guenther  <rguenther@suse.de>
19600
19601         PR tree-optimization/43367
19602         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
19603         elimination check.
19604
19605 2010-03-15  Richard Guenther  <rguenther@suse.de>
19606
19607         PR tree-optimization/43317
19608         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
19609
19610 2010-03-15  Martin Jambor  <mjambor@suse.cz>
19611
19612         PR tree-optimization/43141
19613         * tree-sra.c (create_abstract_origin): New function.
19614         (modify_function): Call create_abstract_origin.
19615
19616 2010-03-15  Chris Demetriou  <cgd@google.com>
19617
19618         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
19619         wasn't copied.
19620
19621 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19622
19623         PR middle-end/43354
19624         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
19625         call insert_out_of_ssa_copy for default definitions.
19626
19627 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19628
19629         * graphite-clast-to-gimple.c (my_long_long): Defined.
19630         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
19631         * graphite-sese-to-poly.c (my_long_long): Defined.
19632         (scop_ivs_can_be_represented): Use it.
19633
19634 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19635
19636         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
19637         graphite-max-bbs-per-function, and loop-block-tile-size.
19638         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
19639         with "maximum".
19640         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
19641
19642 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19643
19644         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
19645         forward declaration.
19646         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
19647         (add_upper_bounds_from_estimated_nit): New.
19648         (build_loop_iteration_domains): Use it.
19649
19650 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19651
19652         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
19653
19654 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19655
19656         PR middle-end/43306
19657         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
19658         should be an INTEGER_CST.  Also handle CASE_CONVERT.
19659
19660 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19661
19662         * graphite.c (graphite_initialize): To bound the number of bbs per
19663         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
19664         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
19665         * doc/invoke.texi: Document it.
19666
19667 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19668
19669         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
19670         * graphite-sese-to-poly.h (build_poly_scop): Same.
19671
19672 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19673
19674         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
19675         the number of parameters in the scop.  Use as an upper bound
19676         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
19677         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
19678         * doc/invoke.texi: Document it.
19679
19680 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
19681
19682         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
19683         * doc/c-tree.texi: Remove.
19684         * doc/generic.texi: Merge c-tree.texi here.
19685         * doc/gccint.texi (Trees): Remove menu entry.
19686         (c-tree.texi): Remove @include.
19687         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
19688         * doc/languages.texi (Reading RTL): Ditto.
19689
19690 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
19691
19692         PR target/42869
19693         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
19694
19695 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
19696
19697         PR middle-end/42431
19698         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
19699         code added to work around reload clobbering CONST insns.
19700
19701 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
19702
19703         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
19704         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
19705         (cselib_preserve_only_values): Remove retain argument, don't
19706         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
19707         * cselib.h (cselib_preserve_only_values): Remove retain argument.
19708         * var-tracking.c (micro_operation): Move insn field before union.
19709         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
19710         (struct variable_tracking_info_def): Remove n_mos field, change
19711         mos into a vector of micro_operations.
19712         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
19713         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
19714         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
19715         changing into a vector.
19716         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
19717         come before all other uops generated by add_stores.
19718         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
19719         argument removal.
19720         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
19721         a vector.  Run just one pass over the bbs instead of separate counting
19722         and computation phase.
19723         (vt_finalize): Free VTI (bb)->mos vector instead of array.
19724
19725         PR debug/43329
19726         * tree-inline.c (remap_decls): Put old_var rather than origin_var
19727         into *nonlocalized_list vector.
19728         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
19729         even if origin is non-NULL.
19730         (gen_variable_die): Likewise.
19731         (process_scope_var): Don't change origin.
19732         (gen_decl_die): Likewise.
19733         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
19734         before adding new edges instead of after it, fix moving over
19735         debug stmts.
19736
19737 2010-03-11  David S. Miller  <davem@davemloft.net>
19738
19739         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
19740         of four.
19741         * configure: Rebuild.
19742
19743 2010-03-11  Martin Jambor  <mjambor@suse.cz>
19744
19745         PR tree-optimization/43257
19746         * tree.c (assign_assembler_name_if_neeeded): New function.
19747         (free_lang_data_in_cgraph): Assembler name assignment moved to the
19748         above new function.
19749         * tree.h (assign_assembler_name_if_neeeded): Declare.
19750         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
19751         the function if needed.
19752
19753 2010-03-11  Chris Demetriou  <cgd@google.com>
19754
19755         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
19756         include/stdint-gcc.h, and include/stdint.h world-readable.
19757
19758 2010-03-11  Richard Guenther  <rguenther@suse.de>
19759
19760         PR tree-optimization/43255
19761         * tree-vrp.c (process_assert_insertions_for): Do not insert
19762         asserts for trivial conditions.
19763
19764 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19765
19766         PR tree-optimization/43280
19767         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
19768         generation.  Move calculation of size out of the if branch.
19769         (find_bswap): Modify compare number generation.
19770
19771 2010-03-11  Richard Guenther  <rguenther@suse.de>
19772
19773         PR lto/43200
19774         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
19775         (input_gimple_stmt): Fixup handled component types during
19776         operand read.  Also fix up decls in ADDR_EXPRs.
19777
19778 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
19779
19780         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
19781         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
19782
19783 2010-03-10  Jan Hubicka  <jh@suse.cz>
19784
19785         PR c/43288
19786         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
19787         * varasm.c (get_variable_section): Don't do that here...
19788         (make_decl_rtl): ... and here.
19789         (do_assemble_alias): Produce decl RTL.
19790         (assemble_alias): Likewise.
19791
19792 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
19793
19794         PR debug/43290
19795         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
19796         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
19797         of fde->vdrap_reg.
19798         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
19799         (based_loc_descr): Only express drap or vdrap regno based expressions
19800         using DW_OP_fbreg when not optimizing.
19801         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
19802         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
19803         REG_CFA_SET_VDRAP note.
19804
19805 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
19806
19807         PR tree-optimization/43236
19808         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
19809         error in calculation of base address in reverse iteration case.
19810         (generate_builtin): Take number of latch executions if the statement
19811         is in the latch.
19812
19813 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
19814
19815         PR middle-end/42859
19816         * tree-eh.c: Include pointer-set.h.
19817         (lower_eh_dispatch): Filter out duplicate case labels and
19818         remove the unneeded edge when the label is unused.  Return
19819         true when some edges are removed.
19820         (execute_lower_eh_dispatch): When any lowering resulted in
19821         removing an edge, also delete unreachable blocks.
19822
19823 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
19824
19825         PR bootstrap/43287
19826         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
19827         UNSPEC_MACHOPIC_OFFSET.
19828
19829 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
19830
19831         PR target/43294
19832         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
19833         (m68k_delegitimize_address): New function.
19834
19835 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
19836
19837         PR debug/43299
19838         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
19839
19840         PR debug/43299
19841         * var-tracking.c (adjust_sets): New function.
19842         (count_with_sets, add_with_sets): Use it.
19843         (get_adjusted_src): New inline function.
19844         (add_stores): Use it.
19845
19846         PR debug/43304
19847         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
19848         call cselib_dummy_expand_value_rtx_cb instead of
19849         cselib_expand_value_rtx_cb.
19850
19851         PR debug/43293
19852         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
19853         * config/i386/i386.c: Include debug.h and dwarf2out.h.
19854         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
19855         and .cfi_endproc around the pic thunks.
19856         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
19857         all queued unwind info register saves are saved before the call.
19858         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
19859         considered as sp-=4 for unwind info and the pop as sp+=4 which
19860         also clobbers dest, but doesn't actually restore it.
19861
19862         PR debug/43290
19863         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
19864         RTX_FRAME_RELATED_P.
19865
19866 2010-03-09  Jie Zhang  <jie@codesourcery.com>
19867
19868         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
19869         whitespaces in output template.
19870
19871 2010-03-09  Jie Zhang  <jie@codesourcery.com>
19872
19873         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
19874         out array boundary.
19875
19876 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
19877
19878         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
19879         builtins.exp in a separate job.
19880
19881 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19882
19883         * graphite-sese-to-poly.c (add_param_constraints): Use
19884         lower_bound_in_type and upper_bound_in_type.
19885
19886 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19887
19888         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
19889         instead of unsigned_type_node.
19890
19891 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19892             Reza Yazdani  <reza.yazdani@amd.com>
19893
19894         PR middle-end/43065
19895         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
19896         on pointer type parameters.
19897
19898 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
19899
19900         PR middle-end/42644
19901         PR middle-end/42130
19902         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
19903         handle conversions from pointer to integers.
19904         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
19905         induction variable, to be able to work with code generated by CLooG.
19906         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
19907         (build_poly_scop): Bail out if we cannot codegen a loop.
19908
19909 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
19910
19911         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
19912         code generation with gloog_error.
19913
19914 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19915
19916         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
19917         Call fold_convert on all the returned values.
19918         (expand_scalar_variables_expr): Pass to
19919         expand_scalar_variables_ssa_name the type of the resulting expression.
19920
19921 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19922
19923         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
19924         ppl_min_for_le_pointset.
19925         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
19926         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
19927
19928 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19929
19930         * graphite-dependences.c (map_into_dep_poly): Removed.
19931         (dependence_polyhedron_1): Use combine_context_id_scat.
19932
19933 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19934
19935         * graphite-poly.h (struct poly_scattering): Add layout documentation.
19936         (struct poly_bb): Same.
19937         (combine_context_id_scat): New.
19938
19939 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19940
19941         PR middle-end/42326
19942         * sese.c (name_defined_in_loop_p): Return false for default
19943         definitions.
19944
19945 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19946
19947         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
19948         and clean up the logic.
19949
19950 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19951
19952         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
19953         early return.
19954
19955 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
19956
19957         * var-tracking.c (remove_cselib_value_chains): Define only for
19958         ENABLE_CHECKING.
19959         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
19960         delete_slot_part, emit_notes_for_differences_1): Don't call
19961         remove_cselib_value_chains here.
19962         (set_slot_part, emit_notes_for_differences_2): Don't call
19963         add_cselib_value_chains here.
19964         (preserved_values): New vector.
19965         (preserve_value): New function.
19966         (add_uses, add_stores, vt_add_function_parameters): Use it
19967         instead of cselib_preserve_value.
19968         (changed_values_stack): New vector.
19969         (check_changed_vars_0): New function.
19970         (check_changed_vars_1, check_changed_vars_2): Use it.
19971         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
19972         changed_values_stack VALUEs.
19973         (vt_emit_notes): For all preserved_values call
19974         add_cselib_value_chains.  If ENABLE_CHECKING call
19975         remove_cselib_value_chains before verifying value_chains is empty.
19976         Initialize and free changed_values_stack.
19977         (vt_initialize): Initialize preserved_values.
19978         (vt_finalize): Free preserved_values.
19979
19980 2010-03-08  Richard Guenther  <rguenther@suse.de>
19981
19982         PR tree-optimization/43269
19983         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
19984         region detection.
19985
19986 2010-03-08  Martin Jambor  <mjambor@suse.cz>
19987
19988         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
19989         (ipa_is_param_called): Removed.
19990         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
19991         (ipa_print_node_params): Do not print the called flag.
19992         (ipa_write_node_info): Do not stream the called flag.
19993         (ipa_read_node_info): Likewise.
19994
19995 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
19996
19997         PR debug/43176
19998         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
19999         * cselib.c (struct expand_value_data): Add dummy field.
20000         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
20001         dummy to false.
20002         (cselib_dummy_expand_value_rtx_cb): New function.
20003         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
20004         any rtl.
20005         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
20006         * var-tracking.c: Include pointer-set.h.
20007         (variable): Change n_var_parts to char from int.  Add
20008         cur_loc_changed and in_changed_variables fields.
20009         (variable_canonicalize): Remove.
20010         (shared_var_p): New inline function.
20011         (unshare_variable): Maintain cur_loc_changed and
20012         in_changed_variables fields.  If var was in changed_variables,
20013         replace it there with new_var.  Just copy cur_loc instead of
20014         resetting it to something else.
20015         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
20016         (dataflow_set_union): Don't call variable_canonicalize.
20017         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
20018         of their DEBUG_EXPR_TREE_DECLs.
20019         (canonicalize_loc_order_check): Verify that cur_loc is NULL
20020         and in_changed_variables and cur_loc_changed is false.
20021         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
20022         and cur_loc_changed.  Don't update cur_loc here.
20023         (variable_merge_over_src): Don't call variable_canonicalize.
20024         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
20025         removing loc that is equal to cur_loc, clear cur_loc,
20026         set cur_loc_changed and ensure variable_was_changed is called.
20027         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
20028         compare pointers in cur_loc check, if it is equal to loc,
20029         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
20030         (variable_different_p): Remove compare_current_location argument,
20031         don't compare cur_loc.
20032         (dataflow_set_different_1): Adjust variable_different_p caller.
20033         (variable_was_changed): If dv had some var in changed_variables
20034         already, reset in_changed_variables flag for it and propagate
20035         cur_loc_changed over to the new variable.  On empty var
20036         always set cur_loc_changed.  Set in_changed_variables on whatever
20037         var is added to changed_variables.
20038         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
20039         Use shared_var_p.  When removing loc that is equal to cur_loc,
20040         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
20041         end, don't set it to something else, just call variable_was_changed.
20042         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
20043         loc being removed, clear cur_loc and set cur_loc_changed.
20044         Set cur_loc_changed if all locations have been removed.
20045         (struct expand_loc_callback_data): New type.
20046         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
20047         allocated.  Always create SUBREGs if simplify_subreg failed.
20048         Prefer to use cur_loc, when that fails and still in
20049         changed_variables (and seen first time) recompute it.  Set
20050         cur_loc_changed of variables which had to change cur_loc and
20051         compute elcd->cur_loc_changed if any of the subexpressions used
20052         had to change cur_loc.
20053         (vt_expand_loc): Adjust to pass arguments in
20054         expand_loc_callback_data structure.
20055         (vt_expand_loc_dummy): New function.
20056         (emitted_notes): New variable.
20057         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
20058         that weren't used for any other decl in current
20059         emit_notes_for_changes call call vt_expand_loc_dummy to update
20060         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
20061         first loc_chain location if NULL before.  Always use just
20062         cur_loc instead of first loc_chain location.  When cur_loc_changed
20063         is false, when not --enable-checking=rtl just don't emit any note.
20064         When rtl checking, compute the note and assert it is the same
20065         as previous note.  Clear cur_loc_changed and in_changed_variables
20066         at the end before removing from changed_variables.
20067         (check_changed_vars_3): New function.
20068         (emit_notes_for_changes): Traverse changed_vars to call
20069         check_changed_vars_3 on each changed var.
20070         (emit_notes_for_differences_1): Clear cur_loc_changed and
20071         in_changed_variables.  Recompute cur_loc of new_var.
20072         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
20073         (vt_emit_notes): Initialize and destroy emitted_notes.
20074
20075 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
20076
20077         PR rtl-optimization/42220
20078         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
20079         Use verify_reg_tracked to determine if we should use OP_OUT rather
20080         than OP_INOUT.
20081         (build_def_use): If we see an in-out operand for a register that we
20082         know nothing about, treat is an output if possible, fail the block if
20083         not.
20084
20085 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
20086
20087         PR debug/42897
20088         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
20089         permanently.
20090
20091 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
20092
20093         PR debug/42897
20094         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
20095         uses of relevant DEFs that are dead outside the loop too.
20096
20097 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
20098
20099         * var-tracking.c (dataflow_set_merge): Swap src and src2.
20100         Reverted:
20101         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
20102         PR debug/41371
20103         * var-tracking.c (values_to_unmark): New variable.
20104         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
20105         values_to_unmark vector.  Moved body to...
20106         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
20107         instead queue it into values_to_unmark vector.
20108         (vt_find_locations): Free values_to_unmark vector.
20109
20110 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
20111
20112         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
20113         (site.exp): Export them when plugins are enabled.
20114
20115 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
20116
20117         PR middle-end/42326
20118         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
20119         that contain scevs.
20120         (chrec_fold_multiply): Same.
20121
20122 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
20123
20124         PR c/43248
20125         * c-decl.c (build_compound_literal): Return early if init is
20126         an error_mark_node.
20127
20128 2010-03-04  Martin Jambor  <mjambor@suse.cz>
20129
20130         PR tree-optimization/43164
20131         PR tree-optimization/43191
20132         * tree-sra.c (type_consists_of_records_p): Reject records with
20133         zero-size bit-fields at the end.
20134
20135 2010-03-04  Mike Stump  <mikestump@comcast.net>
20136
20137         * Makefile.in (TAGS): Remove *.y.
20138
20139 2010-03-04  Richard Guenther  <rguenther@suse.de>
20140
20141         PR tree-optimization/40761
20142         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
20143         in reverse order.
20144         (my_rev_post_order_compute): New function.
20145         (init_pre): Call it.
20146
20147 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
20148
20149         PR middle-end/43209
20150         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
20151         decrease the cost of an IV candidate when the cost is infinite.
20152
20153 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20154
20155         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
20156         Use '3DNow!' for the extension of that name, ensure normal space
20157         after the string.
20158         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
20159
20160 2010-03-03  Jeff Law  <law@redhat.com>
20161
20162         * PR middle-end/32693
20163         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
20164         than gen_rtx_SUBREG.
20165         (extract_bit_field_1): Likewise.
20166
20167 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
20168
20169         * doc/sourcebuild.texi (Test directives): Document that arguments
20170         include-opts and exclude-opts are now optional for dg-skip-if,
20171         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
20172
20173 2010-03-03  Jason Merrill  <jason@redhat.com>
20174
20175         PR c++/12909
20176         * cgraph.h (varpool_node): Add extra_name field.
20177         * varpool.c (varpool_extra_name_alias): New.
20178         (varpool_assemble_decl): Emit extra name aliases.
20179         (varpool_mark_needed_node): Look past an extra name alias.
20180         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
20181         * lto-streamer-in.c (lto_input_tree): Read it.
20182         * lto-streamer-out.c (output_unreferenced_globals): Write it.
20183
20184 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
20185
20186         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
20187         (sparc*-*-solaris2*): ...this.
20188
20189 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
20190
20191         PR debug/43229
20192         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
20193         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
20194         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
20195         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
20196
20197         PR debug/43237
20198         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
20199         fallthrough to default handling, just with want_address 0 instead of 2.
20200         For single element lists, add_AT_loc directly, otherwise create an
20201         artificial variable DIE and stick location list to it.
20202
20203         PR debug/43177
20204         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
20205         (VAL_EXPR_HAS_REVERSE): Define.
20206         (reverse_op): New function.
20207         (add_stores): For reversible operations add an extra MO_VAL_USE.
20208
20209 2010-03-02  Jason Merrill  <jason@redhat.com>
20210
20211         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
20212
20213 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
20214
20215         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
20216         (sparc64-*-linux*): Likewise.
20217         (sparc64-*-solaris2*): Include assembler files before linker ones.
20218         (sparc-*-solaris2*): Simplify and reorder to match previous case.
20219         * config/sparc/gas.h: Delete.
20220         * config/sparc/sol2-64.h: Add copyright notice.
20221         * config/sparc/sol2-gas-bi.h: Likewise.
20222         * config/sparc/sol2-gld.h: Likewise.
20223         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
20224         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
20225         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
20226         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
20227         (sparc_elf_asm_named_section): Rename into...
20228         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
20229
20230 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
20231
20232         * config/alpha/alpha.c (override_options): Fix -mtune error message.
20233
20234 2010-03-02  Jeff Law  <law@redhat.com>
20235
20236         PR middle-end/42431
20237         * reload1.c (rtx_p, substitute_stack): Declare.
20238         (substitute): Record addresses of changed rtxs.
20239         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
20240         Restore the original rtx when complete.
20241         (reload): Free subsitute_stack when complete.
20242
20243 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
20244
20245         * doc/gccint.texi (menu): Add Testsuites as a chapter.
20246         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
20247         new chapter.
20248         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
20249         LTO Testing, gcov Testing, profopt Testing, compat Testing,
20250         Torture Tests): Change from subsection to section.
20251
20252 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
20253             Steven Bosscher  <steven@gcc.gnu.org>
20254
20255         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
20256         instead of bb.
20257
20258 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
20259
20260         PR middle-end/42640
20261         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
20262         the assignment from the new induction variable to the assignment
20263         of the value from the original loop PHI function.
20264
20265 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
20266             Daniel Jacobowitz  <dan@codesourcery.com>
20267
20268         * doc/sourcebuild.texi (Test directives): Clarify options to
20269         dg-skip-if.
20270
20271 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20272
20273         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
20274         Disable cfi directives unless GCC and gas agree on using read-only
20275         .eh_frame sections for 64-bit.
20276         * configure: Regenerate.
20277
20278 2010-03-01  Richard Guenther  <rguenther@suse.de>
20279
20280         PR tree-optimization/43220
20281         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
20282         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
20283
20284 2010-03-01  Richard Guenther  <rguenther@suse.de>
20285             Martin Jambor  <mjambor@suse.cz>
20286
20287         PR middle-end/41250
20288         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
20289         gimplified parameters.
20290
20291 2010-03-01  Christian Bruel  <christian.bruel@st.com>
20292
20293         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
20294
20295 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
20296
20297         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
20298
20299 2010-03-01  Richard Guenther  <rguenther@suse.de>
20300
20301         PR middle-end/43213
20302         * expr.c (expand_assignment): Use the alias-oracle to tell
20303         if the rhs aliases the result decl.
20304
20305 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20306
20307         PR pch/14940
20308         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
20309         to sol_gt_pch_get_address.
20310         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
20311         64-bit, SPARC and x86.
20312         (sol_gt_pch_get_address): New function.
20313
20314 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
20315
20316         * toplev.h (inform_n, error_n): Declare.
20317         * diagnostic.c (inform_n, error_n): New function.
20318
20319 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
20320
20321         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
20322         has no rtl yet when processing local_decls, queue it and recheck
20323         if deferred stack allocation hasn't assigned it rtl.
20324
20325 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
20326
20327         * config/sh/sh.c (unspec_bbr_uid): New.
20328         (gen_block_redirect): Use it instead of INSN_UID.
20329         (gen_far_branch): Likewise.
20330
20331 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
20332
20333         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
20334         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
20335
20336 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20337
20338         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
20339         (Warning Options): -Wno-conversion-null is valid for
20340         Objective-C++ as well.
20341         * doc/tm.texi (Named Address Spaces): Likewise.
20342         * doc/plugins.texi (Plugins): Replace TABs with spaces.
20343         * doc/tree-ssa.texi (Tree SSA): Likewise.
20344
20345 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
20346
20347         PR bootstrap/43202
20348         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
20349         by default.  Don't set the default arch for
20350         i[34567]86-*-darwin*|x86_64-*-darwin*.
20351
20352 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
20353
20354         PR bootstrap/43202
20355         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
20356         default.  Set the default 32bit/64bit archs with $with_arch
20357         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
20358
20359 2010-02-27  Richard Guenther  <rguenther@suse.de>
20360
20361         PR tree-optimization/43186
20362         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
20363         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
20364         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
20365         unroller iterations.
20366
20367 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
20368
20369         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
20370         required and i[34567]86-*-* targets don't support 64bit ISA.
20371
20372 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
20373
20374         PR ada/43096
20375         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
20376         the same alias set.
20377
20378 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
20379
20380         * config.gcc: Set the default arch at least to Prescott for
20381         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
20382         if SSE math is enabled.
20383
20384 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20385
20386         * diagnostic.c (diagnostic_initialize): Update.
20387         (diagnostic_report_diagnostic): Test inhibit_notes_p for
20388         informative notes.
20389         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
20390         (diagnostic_inhibit_notes): New.
20391         * toplev.c (process_options): inhibit notes with -fcompare-debug.
20392
20393 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20394
20395         PR c/20631
20396         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
20397         * doc/standards.texi: Likewise.
20398         * doc/extend.texi: Likewise.
20399         * doc/trouble.texi: Likewise.
20400         * doc/cppopts.texi: Likewise.
20401         * doc/install.texi: Likewise.
20402         * c.opt (std=c90,std=gnu90): New options.
20403         * c-opts.c (c_common_handle_option): Handle them.
20404
20405 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20406
20407         PR c/24577
20408         * c-decl.c (undeclared_variable): Use an informative note.
20409
20410 2010-02-26  Richard Guenther  <rguenther@suse.de>
20411
20412         PR tree-optimization/43186
20413         * gimple.h (gimple_fold): Remove.
20414         * gimple.c (gimple_fold): Remove.  Inline into single user ...
20415         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
20416         Try harder for conditions.
20417
20418 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
20419
20420         PR debug/43190
20421         * function.c (used_types_insert): Don't skip through named pointer
20422         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
20423         and it is different from the main variant's type.
20424
20425 2010-02-26  Nick Clifton  <nickc@redhat.com>
20426
20427         * config/rx/rx.md (sminsi3): Remove bogus alternative.
20428
20429 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
20430
20431         * config.gcc: Support --with-fpmath=sse for x86.
20432
20433         * config/i386/ssemath.h: New.
20434
20435         * doc/install.texi (--with-fpmath=sse): Documented.
20436
20437 2010-02-26  Richard Guenther  <rguenther@suse.de>
20438
20439         PR tree-optimization/43188
20440         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
20441         vector types of over-aligned element type.
20442
20443 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
20444
20445         PR target/43175
20446         * config/i386/i386.c (expand_vec_perm_blend): Use correct
20447         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
20448
20449 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
20450
20451         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
20452
20453 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
20454
20455         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
20456         * var-tracking.c: Include diagnostic.h.
20457         (debug_dv): New function.
20458         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
20459
20460         PR debug/43160
20461         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
20462         (add_value_chain, add_value_chains, remove_value_chain,
20463         remove_value_chains): Handle DEBUG_EXPRs.
20464         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
20465
20466         PR debug/43161
20467         * regcprop.c (struct queued_debug_insn_change): New type.
20468         (struct value_data_entry): Add debug_insn_changes field.
20469         (struct value_data): Add n_debug_insn_changes field.
20470         (debug_insn_changes_pool): New variable.
20471         (free_debug_insn_changes, apply_debug_insn_changes,
20472         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
20473         (kill_value_one_regno): Call free_debug_insn_changes if needed.
20474         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
20475         fields.
20476         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
20477         changes for them.
20478         (copyprop_hardreg_forward_1): Don't call apply_change_group for
20479         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
20480         changes, call cprop_find_used_regs via note_stores.
20481         (copyprop_hardreg_forward): When copying vd from predecessor
20482         which has any queued DEBUG_INSN changes, make sure the pointers are
20483         cleared.  At the end call df_analyze and then if there are any
20484         DEBUG_INSN changes queued at the end of some basic block for still
20485         live registers, apply them.
20486         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
20487
20488 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
20489
20490         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
20491         (arm*-*-*): Ditto.
20492
20493 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
20494
20495         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
20496         targets.  Set the default with_cpu/with_arch from arch/cpu.
20497         Allow x86-64 and native for with_cpu/with_arch.
20498
20499 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
20500
20501         * ebitmap.c: Change calls to verify_popcount with calls to
20502         sbitmap_verify_popcount.
20503         (ebitmap_clear_bit): Fixed map->cacheindex test and
20504         map>cache update when bit clearing results in an empty
20505         element.
20506
20507 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
20508
20509         PR target/43154
20510         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
20511         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
20512         and support both V2DF and V2DI modes.
20513         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
20514         support both V2DF and V2DI modes.
20515         (general): Delete trailing whitespace from a few patterns.
20516
20517         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20518         V2DF/V2DI interleave high/low builtins.
20519
20520         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
20521         new VSX builtins.
20522
20523         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
20524         interleave high/low functions.
20525
20526 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
20527
20528         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
20529         #pragma extern_prefix.
20530
20531 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
20532
20533         PR debug/43166
20534         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
20535         BLKmode, assert op0 is a MEM and just adjust its mode.
20536
20537         PR debug/43165
20538         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
20539         if bitpos isn't multiple of mode's bitsize.
20540
20541 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20542
20543         * c.opt (-ftemplate-depth=): New.
20544         (-ftemplate-depth-): Deprecate.
20545         * optc-gen.awk: Handle -ftemplate-depth=.
20546         * opth-gen.awk: Likewise.
20547         * c-opts.c (c_common_handle_option): Likewise.
20548         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
20549
20550 2010-02-24  Jason Merrill  <jason@redhat.com>
20551
20552         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
20553
20554 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20555
20556         * cfg.c (alloc_aux_for_block): Remove inline.
20557         (alloc_aux_for_edge): Likewise.
20558
20559 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20560
20561         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
20562
20563 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20564
20565         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
20566         * config/i386/sol2-gas.h: New file.
20567         * config.gcc (i[34567]86-*-solaris2*): Use it.
20568
20569 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20570
20571         PR c/43128
20572         * c-typeck.c (ep_convert_and_check): New.
20573         (build_conditional_expr): Use it.
20574         (build_binary_op): Likewise.
20575
20576 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
20577
20578         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
20579
20580         PR debug/43150
20581         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
20582         bounds even for -O+.
20583         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
20584         expr needs to have DECL_NAME set.
20585
20586 2010-02-24  Nick Clifton  <nickc@redhat.com>
20587
20588         * config/mep/mep.c: Include gimple.h.
20589         (mep_function_uses_sp): Delete unused function.
20590         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
20591         parameters.  Use unsigned integers to count args.  Return a
20592         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
20593
20594 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
20595
20596         PR target/43107
20597         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
20598         greater or equal to nelt instead of 2 * nelt.
20599         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
20600         with nelt - 1.
20601
20602 2010-02-23  Jason Merrill  <jason@redhat.com>
20603
20604         PR debug/42800
20605         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
20606         in cfun->local_decls even if they have register types.
20607
20608         PR c++/42837
20609         * stor-layout.c (place_field): Don't warn about unnecessary
20610         DECL_PACKED if the type is packed.
20611
20612 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
20613
20614         PR target/43139
20615         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
20616         GOTOFF relocs, even when the base reg isn't pic pointer.
20617
20618 2010-02-23  Michael Matz  <matz@suse.de>
20619
20620         PR debug/43077
20621         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
20622         (expand_gimple_basic_block): Generate and use debug temps if there
20623         are debug uses left after the last real use of TERed ssa names.
20624         Unlink debug immediate uses when they are expanded.
20625
20626 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20627
20628         PR 43123
20629         * config/i386/i386.c (override_options): Reorganise to provide
20630         better error messages.
20631
20632 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
20633
20634         PR middle-end/43083
20635         * graphite-scop-detection.c (create_single_exit_edge): Move
20636         the call to find_single_exit_edge to....
20637         (create_sese_edges): ...here.  Don't handle multiple edges
20638         exiting the function.
20639         (build_graphite_scops): Don't handle multiple edges
20640         exiting the function.
20641
20642 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
20643
20644         PR middle-end/43097
20645         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
20646         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
20647
20648 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
20649
20650         PR middle-end/43026
20651         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
20652
20653 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20654
20655         PR c++/43126
20656         * c-typeck.c (convert_arguments): Print declaration location.
20657         * c-common.c (validate_nargs): Rename as
20658         builtin_function_validate_nargs.
20659         (check_builtin_function_arguments): Update.
20660
20661 2010-02-22  Richard Guenther  <rguenther@suse.de>
20662
20663         PR lto/43045
20664         * tree-inline.c (declare_return_variable): Use the type of
20665         the call stmt lhs if available.
20666
20667 2010-02-22  Duncan Sands  <baldrick@free.fr>
20668
20669         * passes.c (register_pass): Always consider all pass lists when
20670         ref_pass_instance_number is zero.
20671
20672 2010-02-22  Richard Guenther  <rguenther@suse.de>
20673
20674         PR tree-optimization/42749
20675         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
20676         parameter.  Do arithmetic in the original type.
20677         (update_accumulator_with_ops): Likewise.
20678         (adjust_accumulator_values): Adjust.
20679
20680 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20681
20682         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
20683         (QI to BLKmode splitter): New splitter.
20684
20685 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
20686
20687         * config/i386/i386.c (initial_ix86_tune_features): Turn on
20688         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
20689
20690 2010-02-22  Richard Guenther  <rguenther@suse.de>
20691
20692         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
20693
20694 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
20695
20696         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
20697         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
20698         ($(T)crti.o, $(T)crtn.o): Remove rules.
20699
20700 2010-02-21  Tobias Burnus  <burnus@net-b.de>
20701
20702         PR fortran/35259
20703         * doc/invoke.texi (-fassociative-math): Document that this
20704         option is automatically enabled for Fortran.
20705
20706 2010-02-20  David S. Miller  <davem@davemloft.net>
20707
20708         * configure.ac: Test if linker and assembler properly support
20709         GOTDATA_OP relocations.
20710         * configure: Rebuild.
20711         * config.in: Likewise.
20712         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
20713         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
20714         (movsi_high_pic): Likewise.
20715         (movdi_lo_sum_pic): Likewise.
20716         (movdi_high_pic): Likewise.
20717         (movsi_pic_gotdata_op): New pattern.
20718         (movdi_pic_gotdata_op): Likewise.
20719         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
20720         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
20721
20722 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
20723
20724         PR target/43067
20725         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
20726         attribute to ssemul.
20727         (xop_mulv2div2di3_high): Ditto.
20728
20729 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20730
20731         PR c++/35669
20732         * c.opt (Wconversion-null): New option.
20733         * doc/invoke.texi (Wconversion-null): Document.
20734
20735 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20736
20737         * common.opt (Wlarger-than-): Add Undocumented.
20738
20739 2010-02-19  Mike Stump  <mikestump@comcast.net>
20740
20741         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
20742
20743 2010-02-19  Jason Merrill  <jason@redhat.com>
20744
20745         PR target/40332
20746         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
20747         * configure: Likewise.
20748
20749 2010-02-20  Alan Modra  <amodra@gmail.com>
20750
20751         PR middle-end/42344
20752         * cgraph.h (cgraph_make_decl_local): Declare.
20753         * cgraph.c (cgraph_make_decl_local): New function.
20754         (cgraph_make_node_local): Use it.
20755         * cgraphunit.c (cgraph_function_versioning): Likewise.
20756         * ipa.c (function_and_variable_visibility): Likewise.
20757
20758 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20759
20760         PR bootstrap/43121
20761         * except.c (sjlj_emit_function_enter): Don't call
20762         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
20763         directly.
20764         * rtl.h (add_reg_br_prob_note): Remove prototype.
20765
20766 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20767
20768         PR 41779
20769         * c-common.c (conversion_warning): Remove widening conversions
20770         before checking the conversion of integers to reals.
20771
20772 2010-02-19  Mike Stump  <mikestump@comcast.net>
20773
20774         PR middle-end/43125
20775         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
20776
20777         PR objc/43061
20778         * cgraphunit.c (process_function_and_variable_attributes): Check
20779         DECL_PRESERVE_P instead of looking up attribute "used".
20780         * ipa-pure-const.c (check_decl): Likewise.
20781         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
20782         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
20783         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
20784         instead of attribute "used".
20785         * config/sol2-c.c (solaris_pragma_init): Likewise.
20786         (solaris_pragma_fini): Likewise.
20787
20788 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20789
20790         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
20791         Use XCNEW instead of xcalloc.
20792         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
20793         XNEW instead of xmalloc.
20794         (get_fields): Use XNEWVEC instead of xmalloc.
20795
20796         PR debug/43084
20797         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
20798         populate vars array.
20799         (create_new_general_access): For debug stmts just reset value.
20800         (get_stmt_accesses): For accesses within debug stmts just record them
20801         using add_access_to_acc_sites instead of preventing the peeling or
20802         counting them as accesses.
20803
20804         PR middle-end/42233
20805         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
20806
20807 2010-02-19  Richard Guenther  <rguenther@suse.de>
20808
20809         PR tree-optimization/42916
20810         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
20811         instructions.
20812
20813 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
20814
20815         * configure.ac: Replace all uses of changequote in macro arguments
20816         with proper quoting.
20817
20818 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20819
20820         PR middle-end/42233
20821         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
20822
20823 2010-02-19  Richard Guenther  <rguenther@suse.de>
20824
20825         PR tree-optimization/42944
20826         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
20827         test for aliasing with errno.
20828
20829 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20830
20831         PR middle-end/42233
20832         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
20833         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
20834         * dojump.c: Include output.h.
20835         (inv): New inline function.
20836         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
20837         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
20838         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
20839         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
20840         argument, pass it down to other calls.
20841         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
20842         add REG_BR_PROB note to the conditional jump.
20843         * cfgexpand.c (add_reg_br_prob_note): Removed.
20844         (expand_gimple_cond): Don't call it, add the probability
20845         as last argument to jumpif_1/jumpifnot_1.
20846         * Makefile.in (dojump.o): Depend on output.h.
20847         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
20848         callers.
20849         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
20850         * stmt.c (do_jump_if_equal): Likewise.
20851         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
20852         * loop-unswitch.c (compare_and_jump_seq): Likewise.
20853         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
20854         Likewise.
20855         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
20856         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
20857         jumpifnot_1 callers.
20858         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
20859         callers.
20860         (store_expr): Adjust jumpifnot caller.
20861         (store_constructor): Adjust jumpif caller.
20862
20863         PR middle-end/42233
20864         * gimplify.c (gimple_boolify): For __builtin_expect call
20865         gimple_boolify also on its first argument.
20866
20867 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
20868
20869         * configure.ac (gnu-unique-object): Wrap regexps using [] in
20870         changequote block.
20871         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
20872         * configure: Regenerated.
20873
20874 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20875
20876         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
20877         lang_hooks.types_compatible_p instead of comptypes.
20878
20879 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
20880
20881         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
20882         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
20883         if __prefer_thumb__ is defined.
20884
20885 2010-02-18  Martin Jambor  <mjambor@suse.cz>
20886
20887         PR tree-optimization/43066
20888         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
20889         array with zero-sized element type.
20890
20891 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
20892
20893         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
20894         rtx, allocate struct var_loc_node here and return it to the
20895         caller, and only if it is actually needed.
20896         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
20897         move it earlier and return immediately if it returns NULL.
20898
20899 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
20900
20901         * config/sparc/gas.h: New file.  Restore
20902         TARGET_ASM_NAMED_SECTION to its ELF default.
20903         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
20904         check !HAVE_GNU_AS.
20905         * config/sparc/sparc.c (sparc_elf_asm_named_section):
20906         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
20907         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
20908         after sparc/sysv4.h.
20909
20910 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
20911
20912         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
20913
20914 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
20915
20916         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
20917         patterns from predicated pattern.
20918
20919 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
20920
20921         PR target/43103
20922         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
20923         for insn mnemonic suffix.
20924
20925 2010-02-17  Richard Guenther  <rguenther@suse.de>
20926
20927         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
20928         to loop PHI nodes.
20929
20930 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
20931
20932         PR debug/42918
20933         * caller-save.c (save_call_clobbered_regs): If BB ends with
20934         a DEBUG_INSN, move any notes in between last real insn and the last
20935         DEBUG_INSN after the last DEBUG_INSN.
20936
20937 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
20938
20939         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
20940         Fix return type.  Fix argument type.  Explain meaning of return value.
20941
20942 2010-02-16  Richard Guenther  <rguenther@suse.de>
20943
20944         PR tree-optimization/41043
20945         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
20946         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
20947         statements ...
20948         (vrp_visit_phi_node): ... but only for loop PHI nodes.
20949
20950 2010-02-16  Ira Rosen  <irar@il.ibm.com>
20951
20952         PR tree-optimization/43074
20953         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
20954         * tree-vect-loop.c (vect_analyze_loop_operations): Add
20955         vectorizable cycles in hybrid SLP check.
20956         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
20957
20958 2010-02-16  Richard Guenther  <rguenther@suse.de>
20959
20960         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
20961         (true_dependence): If memrefs_conflict_p computes must-alias
20962         trust it.  Move TBAA check after offset-based disambiguation.
20963         (canon_true_dependence): Likewise.
20964
20965 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
20966
20967         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
20968         * doc/invoke.texi: Document it.
20969         * var-tracking.c: Include toplev.h and params.h.
20970         (vt_find_locations): Return bool indicating success.  Compute
20971         hash sizes unconditionally.  Check new parameter, report.
20972         (variable_tracking_main_1): Check vt_find_locations results and
20973         retry.  Renamed from...
20974         (variable_tracking_main): ... this.  New wrapper to preserve
20975         flag_var_tracking_assignments.
20976         * Makefile.in (var-tracking.o): Adjust dependencies.
20977
20978 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
20979             Jakub Jelinek <jakub@redhat.com>
20980
20981         PR target/42854
20982         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
20983         if weak_import attribute is present.
20984         * config/darwin.c (machopic_select_section): Likewise.
20985
20986 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
20987
20988         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
20989         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
20990         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
20991         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
20992
20993         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
20994         types.
20995
20996         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
20997         Fix argument types.
20998
20999         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
21000         Rewrite text to refer to the names.
21001
21002 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
21003
21004         * config/i386/i386-builtin-types.def
21005         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
21006         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
21007         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
21008         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
21009         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
21010         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
21011         IX86_BUILTIN_VPERMIL2PS256.
21012         (MULTI_ARG_4_DF2_DI_I): Defined.
21013         (MULTI_ARG_4_DF2_DI_I1): Defined.
21014         (MULTI_ARG_4_SF2_SI_I): Defined.
21015         (MULTI_ARG_4_SF2_SI_I1): Defined.
21016         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
21017         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
21018         __builtin_ia32_vpermil2ps256.
21019         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
21020         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
21021         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
21022         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
21023         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
21024         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
21025         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
21026         CODE_FOR_xop_vpermil2v8sf3.
21027         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
21028         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
21029         * config/i386/xopintrin.h (_mm_permute2_pd): New.
21030         (_mm256_permute2_pd): New.
21031         (_mm_permute2_ps): New.
21032         (_mm256_permute2_ps): New.
21033
21034 2010-02-15  Nick Clifton  <nickc@redhat.com>
21035
21036         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
21037         boolean parameters.  Use emit_jump_insn when emitting a pop
21038         instruction containing a return insn.
21039         (push): Use 'true' rather than '1' as second parameter to F.
21040         (h8300_expand_prologue): Likewise.
21041         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
21042         (h8300_expand_epilogue): Likewise.
21043
21044 2010-02-15  Richard Guenther  <rguenther@suse.de>
21045
21046         PR middle-end/43068
21047         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
21048         if that is zero.
21049
21050 2010-02-15  Nick Clifton  <nickc@redhat.com>
21051
21052         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
21053         delta.
21054
21055 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
21056
21057         * intl.c (fake_ngettext): New function.
21058         * intl.h (fake_ngettext): Declare.
21059         (ngettext): Define macro.
21060         * collect2.c (notice_translated): New function.
21061         (main): Use notice_translated and ngettext.
21062         * collect2.h (notice_translated): Declare.
21063
21064 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
21065
21066         * reorg.c (delete_computation): Comment fixes.
21067         * caller-save.c (setup_save_areas): Idem.
21068         * sel-sched-dump.c (dump_lv_set): Idem.
21069         * rtl.def: Idem.
21070
21071 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21072
21073         * config/s390/s390.c (s390_sched_init): New function.
21074         (TARGET_SCHED_INIT): Target hook defined.
21075
21076 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
21077             Jack Howarth  <howarth@bromo.med.uc.edu>
21078             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
21079
21080         PR target/42982
21081         Partial revert of unintended change in fix for PR41605.
21082         * config/darwin.h: Fix typo.
21083         * config/darwin9.h: Same.
21084
21085 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
21086
21087         * c-pch.c (pch_init): Clear v.
21088
21089 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21090
21091         PR middle-end/42930
21092         * graphite-scop-detection.c (graphite_can_represent_scev): Call
21093         graphite_can_represent_init for MULT_EXPR.
21094
21095 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21096
21097         PR middle-end/42914
21098         PR middle-end/42530
21099         * graphite-sese-to-poly.c (remove_phi): New.
21100         (translate_scalar_reduction_to_array): Call remove_phi.
21101
21102 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21103
21104         PR middle-end/42771
21105         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
21106         * graphite-clast-to-gimple.h (gloog): Update declaration.
21107         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
21108         * graphite-poly.h (struct poly_bb): Add missing comments.
21109         (struct scop): Add poly_scop_p field.
21110         (POLY_SCOP_P): New.
21111         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
21112         * graphite.c (graphite_transform_loops): Build the polyhedral
21113         representation for each scop before code generation.
21114         * sese.c (rename_variables_in_operand): Removed.
21115         (rename_variables_in_expr): Return the renamed expression.
21116         (rename_sese_parameters): New.
21117         * sese.h (rename_sese_parameters): Declared.
21118
21119 2010-02-11  Richard Guenther  <rguenther@suse.de>
21120
21121         PR tree-optimization/42998
21122         * tree-ssa-pre.c (create_expression_by_pieces): Treat
21123         POINTER_PLUS_EXPR properly.
21124
21125 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21126             Changpeng Fang  <changpeng.fang@amd.com>
21127
21128         PR middle-end/40886
21129         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
21130         the cost of an IV candidate when the IV is used in a test against zero.
21131
21132         * gcc.dg/tree-ssa/ivopts-3.c: New.
21133
21134 2010-02-11  Richard Guenther  <rguenther@suse.de>
21135
21136         PR lto/41664
21137         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
21138         pointer-vs-decl case by swapping refs.  Handle some cases
21139         of pointer-vs-decl disambiguations more conservatively.
21140         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
21141         to false after expanding.
21142
21143 2010-02-11  Richard Guenther  <rguenther@suse.de>
21144
21145         PR driver/43021
21146         * gcc.c (process_command): Handle LTO file@offset case more
21147         appropriately.
21148
21149 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
21150
21151         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
21152         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
21153         of DEBUG_INSNs.
21154         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
21155
21156         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
21157         if MEM's mode size isn't DWARF2_ADDR_SIZE.
21158         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
21159         Optimize eq/ne comparisons when both arguments are known to be
21160         zero-extended.
21161         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
21162         Don't mask operands unnecessarily if they are known to be already
21163         zero-extended.
21164
21165 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
21166
21167         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
21168         instead of loop.
21169
21170 2010-02-10  Richard Guenther  <rguenther@suse.de>
21171
21172         PR tree-optimization/43017
21173         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
21174         for wrapping signed arithmetic.
21175
21176 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
21177
21178         PR debug/43010
21179         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
21180         if no debug info should be emitted for it.
21181
21182 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
21183
21184         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
21185         note when flag_exceptions is set.
21186
21187 2010-02-10  Duncan Sands  <baldrick@free.fr>
21188
21189         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
21190
21191 2010-02-10  Richard Guenther  <rguenther@suse.de>
21192
21193         PR c/43007
21194         * tree.c (get_unwidened): Handle constants.
21195         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
21196
21197 2010-02-10  Martin Jambor  <mjambor@suse.cz>
21198
21199         PR lto/42985
21200         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
21201         check for variable argument counts independently.
21202
21203 2010-02-10  Christian Bruel  <christian.bruel@st.com>
21204
21205         PR target/42841
21206         * config/sh/sh.c (find_barrier): Increase length for non delayed
21207         conditional branches.
21208
21209 2010-02-10  Christian Bruel  <christian.bruel@st.com>
21210
21211         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
21212
21213 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
21214
21215         * builtins.c (set_builtin_user_assembler_name): Also handle
21216         ffs if int is smaller than word.
21217
21218 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
21219
21220         PR middle-end/42973
21221         * ira-conflicts.c (get_dup): Remove.
21222         (process_reg_shuffles): Add new parameter.  Use it as an
21223         additional guard for copy generation.
21224         (add_insn_allocno_copies): Rewrite.
21225
21226 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
21227
21228         * common.opt (fsched2-use-traces): Preserved for backward
21229         compatibility.
21230         * doc/invoke.texi: Remove the documentation about option
21231         -fsched2-use-traces.
21232         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
21233         flag_sched2_use_traces.
21234         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
21235         the backward compatibility flag section.
21236
21237 2010-02-09  Richard Guenther  <rguenther@suse.de>
21238
21239         PR tree-optimization/43008
21240         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
21241         make HEAP variables initialized from global memory if they
21242         are not known builtin functions.
21243         (find_func_aliases): Adjust.
21244
21245 2010-02-09  Richard Guenther  <rguenther@suse.de>
21246
21247         PR tree-optimization/43000
21248         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
21249         arithmetic manually.
21250
21251 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
21252
21253         PR tree-optimization/42931
21254         * tree-loop-linear.c (try_interchange_loops): Don't call
21255         double_int_mul if estimated_loop_iterations failed.
21256
21257 2010-02-08  Martin Jambor  <mjambor@suse.cz>
21258
21259         PR middle-end/42898
21260         * tree-sra.c (build_accesses_from_assign): Do not mark in
21261         should_scalarize_away_bitmap if stmt has volatile ops.
21262         (sra_modify_assign): Do not process assigns piecemeal if if stmt
21263         has volatile ops.
21264
21265 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
21266
21267         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
21268
21269 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
21270
21271         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
21272         before the pattern.
21273
21274 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
21275
21276         PR middle-end/42946
21277         * df-core.c (df_finish_pass): Change type of saved_flags to int.
21278
21279 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
21280
21281         PR middle-end/42988
21282         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
21283         to unknown_dependence.
21284         (graphite_legal_transform_dr): Handle the unknown_dependence.
21285         (graphite_carried_dependence_level_k): Same.
21286
21287 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
21288
21289         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
21290
21291 2010-02-07  Richard Guenther  <rguenther@suse.de>
21292
21293         PR middle-end/42991
21294         * expr.c (get_inner_reference): Always initialize *pbitsize.
21295
21296 2010-02-07  Richard Guenther  <rguenther@suse.de>
21297
21298         PR middle-end/42956
21299         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
21300         new ARRAY_REFs on variable size element or minimal index arrays.
21301         Complete.
21302         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
21303         gimple_fold_indirect_ref.
21304
21305 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
21306
21307         PR target/42957
21308         * arm.c (arm_override_options): Just return if the user has specified
21309         an invalid fpu name.
21310
21311 2010-02-03  Jason Merrill  <jason@redhat.com>
21312
21313         PR c++/42870
21314         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
21315         i386_pe_maybe_record_exported_symbol.
21316
21317 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
21318
21319         PR target/42924
21320         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
21321         (pa_delegitimize_address): New function.
21322
21323 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
21324
21325         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
21326         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
21327
21328 2010-02-05  Richard Guenther  <rguenther@suse.de>
21329
21330         PR lto/42762
21331         * lto-streamer-in.c (get_resolution): Deal with references
21332         to undefined functions.
21333
21334 2010-02-05  Richard Guenther  <rguenther@suse.de>
21335
21336         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
21337         (fold_const_aggregate_ref): Likewise.
21338         (ccp_fold_stmt): Substitute loads.
21339         (maybe_fold_reference): Verify types before substituting.
21340         Unshare properly.
21341         (fold_gimple_assign): Unshare properly.
21342         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
21343
21344 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
21345
21346         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
21347         for rs6000_gen_cell_microcode.
21348
21349 2010-02-04  Richard Guenther  <rguenther@suse.de>
21350
21351         PR rtl-optimization/42952
21352         * dse.c (const_or_frame_p): Remove MEM handling.
21353
21354 2010-02-04  Nick Clifton  <nickc@redhat.com>
21355
21356         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
21357         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
21358         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
21359         (mn10300_asm_output_mi_thunk): New function.
21360         (mn10300_can_output_mu_thunk): New function.
21361         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
21362         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
21363         (FUNCTION_ARG): Delete incorrect comment.
21364
21365 2010-02-03  Jason Merrill  <jason@redhat.com>
21366
21367         PR c++/40138
21368         * fold-const.c (operand_equal_p): Handle erroneous types.
21369
21370 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
21371
21372         * config/h8300/h8300.md (can_delay): Fix attibute condition.
21373
21374 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
21375
21376         PR rtl-optimization/42941
21377         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
21378         of xmalloc.
21379
21380 2010-02-03  Jason Merrill  <jason@redhat.com>
21381
21382         PR c++/35652
21383         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
21384
21385 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
21386
21387         PR debug/42896
21388         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
21389         (cselib_reset_table): Renamed from...
21390         (cselib_reset_table_with_next_value): ... this.
21391         (cselib_get_next_uid): Renamed from...
21392         (cselib_get_next_unknown_value): ... this.
21393         * cselib.c (next_uid): Renamed from...
21394         (next_unknown_value): ... this.
21395         (cselib_clear_table): Adjust.
21396         (cselib_reset_table): Adjust.  Renamed from...
21397         (cselib_reset_table_with_next_value): ... this.
21398         (cselib_get_next_uid): Adjust.  Renamed from...
21399         (cselib_get_next_unknown_value): ... this.
21400         (get_value_hash): Use hash.
21401         (cselib_hash_rtx): Likewise.
21402         (new_cselib_val): Adjust.  Set and dump uid.
21403         (cselib_lookup_mem): Pass next_uid as hash.
21404         (cselib_subst_to_values): Likewise.
21405         (cselib_log_lookup): Dump uid.
21406         (cselib_lookup): Pass next_uid as hash.  Adjust.
21407         (cselib_process_insn): Adjust.
21408         (cselib_init): Initialize next_uid.
21409         (cselib_finish): Adjust.
21410         (dump_cselib_table): Likewise.
21411         * dse.c (canon_address): Dump value uid.
21412         * print-rtl.c (print_rtx): Print value uid.
21413         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
21414         (dvuid): New type.
21415         (dv_uid): New function, sort of renamed from...
21416         (dv_htab_hash): ... this, reimplemented in terms of it and...
21417         (dv_uid2hash): ... this.  New.
21418         (variable_htab_eq): Drop excess assertions.
21419         (tie_break_pointers): Removed.
21420         (canon_value_cmp): Compare uids.
21421         (variable_post_merge_New_vals): Print uids.
21422         (vt_add_function_parameters): Adjust.
21423         (vt_initialize): Reset table.  Adjust.
21424
21425 2010-02-03  Richard Guenther  <rguenther@suse.de>
21426
21427         PR tree-optimization/42944
21428         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
21429         (call_may_clobber_ref_p_1): Likewise.  Properly handle
21430         malloc and calloc clobbering errno.
21431
21432 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
21433
21434         * doc/invoke.texi: Fix name of sched1 dump.
21435
21436         * opts.c (decode_options): Set flag_tree_switch_conversion
21437         only conditionally on optimize >= 2.
21438
21439         * gcse.c: Assorted comment fixes in pass description.
21440
21441 2010-02-03  Anthony Green  <green@moxielogic.com>
21442
21443         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
21444         nop padding in order to maintain alignment of storage location of
21445         target function address.
21446         (moxie_trampoline_init): Store target function address at newly
21447         aligned location.
21448         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
21449         to 32.
21450         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
21451
21452 2010-02-03  Richard Guenther  <rguenther@suse.de>
21453
21454         PR middle-end/42927
21455         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
21456
21457 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21458
21459         * config.gcc: Reenable check for obsolete targets.
21460         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
21461         mips-sgi-irix6.[0-4]*.
21462
21463 2010-02-02  Nick Clifton  <nickc@redhat.com>
21464
21465         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
21466         constant size of 4 as being the same as 0.
21467         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
21468         can take values in the range 0..4.
21469
21470 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
21471
21472         PR java/41991
21473         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
21474         as _darwin10_Unwind_FindEnclosingFunction().
21475         * libgcc-libsystem.ver: New.
21476
21477 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
21478
21479         PR target/41399
21480         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
21481         implicitly set registers.
21482
21483 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
21484
21485         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
21486         (arm_override_options): Allow automatic selection of the thread
21487         pointer register if thumb2.
21488         (legitimize_pic_address): Improve code sequences for Thumb2.
21489         (arm_call_tls_get_addr): Likewise.
21490         (legitimize_tls_address): Likewise.
21491         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
21492         (pic_load_addr_32bit): ... this.  New named pattern.
21493         * thumb2.md (pic_load_addr_thumb2): Delete.
21494         (pic_load_dot_plus_four): Delete.
21495         (tls_load_dot_plus_four): New named pattern.
21496
21497 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21498
21499         PR libgomp/29986
21500         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
21501         Document fix for TLS bug.
21502
21503 2010-01-31  Richard Guenther  <rguenther@suse.de>
21504
21505         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
21506         conservatively correct.
21507
21508 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21509
21510         PR target/42850
21511         Revert:
21512         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21513
21514         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
21515
21516 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21517
21518         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
21519
21520 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
21521
21522         * config.gcc: Adjust order of makefile fragments for mingw targets.
21523
21524 2010-01-31  Richard Guenther  <rguenther@suse.de>
21525
21526         PR middle-end/42898
21527         * gimplify.c (gimplify_init_constructor): For volatile LHS
21528         initialize a temporary.
21529
21530 2010-01-31  Matthias Klose  <doko@ubuntu.com>
21531
21532         * configure.ac: Fix __stack_chk_fail check for cross builds configured
21533         --with-headers
21534         * configure: Regenerate.
21535
21536 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
21537
21538         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
21539         the same alias set and their sizes different constantness.
21540         (aliasing_component_refs_p): Revert 2009-10-24 change.
21541
21542 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21543
21544         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
21545         unused.
21546
21547 2010-01-29  Richard Guenther  <rguenther@suse.de>
21548
21549         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
21550         Assert we successfully updated the call.
21551
21552 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
21553
21554         PR rtl-optimization/42889
21555         * df.h (df_set_bb_dirty_nonlr): New prototype.
21556         * df-core.c (df_set_bb_dirty_nonlr): New function.
21557         * df-scan.c (df_insn_rescan): Call it instead of
21558         df_set_bb_dirty for DEBUG_INSNs.
21559
21560 2010-01-29  Richard Guenther  <rguenther@suse.de>
21561
21562         PR middle-end/37448
21563         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
21564         quadratic behavior in most cases.
21565
21566 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
21567
21568         PR target/42891
21569         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
21570         in the call to gen_x86_movsicc_0_m1.
21571
21572 2010-01-28  Richard Guenther  <rguenther@suse.de>
21573
21574         PR tree-optimization/42871
21575         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
21576
21577 2010-01-28  Richard Guenther  <rguenther@suse.de>
21578
21579         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
21580         into call arguments.
21581
21582 2010-01-28  Richard Guenther  <rguenther@suse.de>
21583
21584         PR middle-end/42883
21585         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
21586         the forwarder if the destination is an EH landing pad.
21587
21588 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
21589
21590         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
21591         block list passed to gimple_duplicate_sese_tail.
21592         (parallelize_loops): Avoid parallelization when the function
21593         has_nonlocal_label.
21594         Avoid parallelization when the preheader is IRREDUCIBLE.
21595         Try to optimize when estimated_loop_iterations_int is unresolved.
21596         Add the loop's location to the dump file.
21597         * tree-cfg.c (add_phi_args_after_redirect): Remove.
21598         (gimple_duplicate_sese_tail): Remove the check for the latch.
21599         Redirect nexits to the exit block.
21600         Remove handling of the incoming edges to the latch.
21601         Redirect the backedge from the copied latch to the exit bb.
21602
21603 2010-01-28  Michael Matz  <matz@suse.de>
21604
21605         PR target/42881
21606         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
21607         Wrap force_reg into a sequence, emit it before user.
21608
21609 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
21610
21611         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
21612         (arm_rev): New.
21613         (arm_legacy_rev): Likewise.
21614         (thumb_legacy_rev): Likewise.
21615
21616 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
21617
21618         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
21619         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
21620         on MEM's address failed, try avoid_constant_pool_reference and
21621         recurse if it returned something different.
21622         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
21623         address, try avoid_constant_pool_reference and recurse if it
21624         returned something different.
21625         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
21626         address and avoid_constant_pool_reference returned something
21627         different, don't set have_address.
21628
21629 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
21630
21631         PR debug/42861
21632         * var-tracking.c (val_store): Add modified argument, obey it.
21633         Adjust callers.
21634         (count_uses): Move down logging of main.
21635         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
21636         don't need resolution.
21637         (emit_notes_in_bb): Likewise.
21638
21639 2010-01-27  Richard Guenther  <rguenther@suse.de>
21640
21641         PR middle-end/42878
21642         * tree-inline.c (remap_decl): Delay remapping of SSA name
21643         default definitions until we need them.
21644
21645 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
21646
21647         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
21648         (rs6000_delegitimize_address): New function.
21649
21650         * config/s390/s390.c (s390_delegitimize_address): Call
21651         delegitimize_mem_from_attrs.
21652
21653         PR middle-end/42874
21654         * tree-inline.c (cannot_copy_type_1): Removed.
21655         (copy_forbidden): Don't forbid copying of functions containing
21656         records/unions with variable length fields.
21657
21658 2010-01-27  Christian Bruel  <christian.bruel@st.com>
21659
21660         Revert:
21661         PR target/42841
21662         * config/sh/sh.c (find_barrier): Increase length for non delayed
21663         conditional branches.
21664
21665 2010-01-27  Matthias Klose  <doko@ubuntu.com>
21666
21667         * configure.ac (gnu-unique-object): Fix ldd version check.
21668         * configure: Regenerate.
21669
21670 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21671
21672         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
21673         HAVE_GNU_AS value.
21674         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
21675         Test for HAVE_GNU_AS value.
21676
21677 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21678
21679         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
21680         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
21681         INT64_TYPE): Define.
21682         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
21683         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
21684         INT_LEAST64_TYPE): Define.
21685         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
21686         UINT_LEAST64_TYPE): Define.
21687         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
21688         INT_FAST64_TYPE): Define.
21689         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
21690         UINT_FAST64_TYPE): Define.
21691         (INTMAX_TYPE, UINTMAX_TYPE): Define.
21692         (INTPTR_TYPE, UINTPTR_TYPE): Define.
21693         (SIG_ATOMIC_TYPE): Define.
21694
21695 2010-01-26  Richard Guenther  <rguenther@suse.de>
21696
21697         * df-scan.c (df_scan_set_bb_info): Remove assert.
21698         (df_insn_rescan_debug_internal): Merge asserts.
21699         (df_install_ref): Likewise.
21700         (df_mark_reg): Use bitmap_set_range.
21701         (df_hard_reg_used_p): Remove assert.
21702         (df_hard_reg_used_count): Likewise.
21703
21704 2010-01-26  Richard Guenther  <rguenther@suse.de>
21705
21706         PR rtl-optimization/42685
21707         * web.c (web_main): Ignore DEBUG_INSNs.
21708
21709 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
21710
21711         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
21712
21713         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
21714         Fix types of fndecl and arglist parameters.
21715
21716 2010-01-26  Richard Guenther  <rguenther@suse.de>
21717
21718         PR middle-end/42806
21719         * tree-eh.c (unsplit_eh): Skip debug insns.
21720
21721 2010-01-26  Richard Guenther  <rguenther@suse.de>
21722
21723         PR tree-optimization/42250
21724         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
21725
21726 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
21727
21728         PR fortran/42866
21729         * omp-low.c (expand_omp_sections): Only use single_pred if
21730         l2_bb is single_pred_p.
21731
21732 2010-01-25  Christian Bruel  <christian.bruel@st.com>
21733
21734         PR target/42841
21735         * config/sh/sh.c (find_barrier): Increase length for non delayed
21736         conditional branches.
21737         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
21738
21739 2010-01-24  David S. Miller  <davem@davemloft.net>
21740
21741         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
21742         define if not using GAS.
21743         * config/sparc/sparc.c (sparc_elf_asm_named_section):
21744         Likewise.  Delete SECTION_MERGE code, which is only applicable
21745         when using GAS.
21746
21747 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
21748
21749         PR c++/42748
21750         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
21751         mangling of va_list in system headers.
21752
21753 2010-01-23  Toon Moene  <toon@moene.org>
21754
21755         * tree-predcom.c (combine_chains): Return NULL, not false.
21756
21757 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
21758
21759         * tree-loop-distribution.c (distribute_loop): Fix declaration and
21760         initialization of variable res to agree with return type.
21761
21762 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
21763
21764         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
21765         * tree-sra.c: Add include of expr.h.
21766
21767 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
21768
21769         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
21770         insert the debug stmt on the single non-EH edge from the stmt.
21771
21772 2010-01-22  Richard Henderson  <rth@redhat.com>
21773
21774         PR tree-opt/42833
21775         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
21776         the RHS until after generate_subtree_copies has insertted its
21777         code before the current statement.
21778
21779 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
21780
21781         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
21782
21783         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
21784
21785 2010-01-21  Martin Jambor  <mjambor@suse.cz>
21786
21787         PR tree-optimization/42585
21788         * tree-sra.c (struct access): New field grp_total_scalarization.
21789         (dump_access): Dump the new field.
21790         (should_scalarize_away_bitmap): New variable.
21791         (cannot_scalarize_away_bitmap): Likewise.
21792         (sra_initialize): Allocate new bitmaps.
21793         (sra_deinitialize): Free new bitmaps.
21794         (create_access_1): New function.
21795         (create_access): Parts moved to create_access_1.
21796         (type_consists_of_records_p): New function.
21797         (completely_scalarize_record): Likewise.
21798         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
21799         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
21800         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
21801         access.
21802         (analyze_all_variable_accesses): Completely scalarize small eligible
21803         records.
21804
21805 2010-01-21  Martin Jambor  <mjambor@suse.cz>
21806
21807         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
21808
21809 2010-01-21  Andrew Haley  <aph@redhat.com>
21810
21811         * gcc.c (process_command): Move lang_specific_driver before
21812         setting cc_libexec_prefix.
21813
21814 2010-01-21  Richard Guenther  <rguenther@suse.de>
21815
21816         PR middle-end/19988
21817         * fold-const.c (negate_expr_p): Pretend only negative
21818         real constants are easily negatable.
21819
21820 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
21821             Jason Merrill  <jason@redhat.com>
21822
21823         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
21824         (TYPE_TRANSPARENT_AGGR): this, for union and record.
21825         * calls.c (initialize argument_information): Handle it.
21826         * c-common.c (handle_transparent_union_attribute): Use new name.
21827         * c-decl.c (finish_struct): Ditto.
21828         * c-typeck.c (type_lists_compatible_p): Ditto.
21829         (convert_for_assignment): Use new name and also handle record.
21830         * function.c (aggregate_value_p): Handle it.
21831         (pass_by_reference): Ditto.
21832         (assign_parm_data_types): Ditto.
21833         * print-tree.c (print_node): Ditto.
21834         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
21835         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
21836         * tree.c (first_field): New fn.
21837
21838 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
21839
21840         PR target/42818
21841         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
21842         even when linking statically, for now.
21843
21844 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
21845
21846         PR debug/42715
21847         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
21848         without a cselib val.
21849         (count_uses): Accept MO_VAL_SET with no val on stores.
21850         (add_stores): Likewise.
21851
21852 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
21853
21854         * var-tracking.c (check_value_val): Add a compile time assertion.
21855         (dv_is_decl_p): Simplify.
21856         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
21857         gcc_assert if ENABLE_CHECKING.
21858
21859 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
21860
21861         PR debug/42782
21862         * var-tracking.c: Include tree-flow.h.
21863         (mem_dies_at_call): New.
21864         (dataflow_set_preserve_mem_locs): Use it.
21865         (dataflow_set_remove_mem_locs): Likewise.
21866         (dump_var): Renamed from dump_variable.  Adjust all callers.
21867         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
21868         * Makefile.in (var-tracking.o): Adjust deps.
21869
21870 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
21871
21872         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
21873
21874 2010-01-20  Richard Guenther  <rguenther@suse.de>
21875
21876         PR tree-optimization/42717
21877         * tree-ssa-dce.c (get_live_post_dom): Remove.
21878         (forward_edge_to_pdom): Take an arbitrary edge to copy
21879         degenerate PHI args from.
21880         (remove_dead_stmt): Use the first post-dominator even if it
21881         does not contain live statements as redirection destination.
21882
21883 2010-01-20  Richard Guenther  <rguenther@suse.de>
21884
21885         * tree-inline.c (estimate_num_insns): Handle EH builtins.
21886
21887 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
21888
21889         * sel-sched.c (create_speculation_check): Remove set but not used
21890         variable twin.
21891         (try_transformation_cache): Remove set but not used variable ds.
21892         (calculate_privileged_insns): Remove set but not used variables
21893         cur_insn and min_spec_insn.
21894         (find_best_expr): Remove set but not used variable avail_n.
21895         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
21896         variable e.
21897         * cgraphunit.c (assemble_thunk): Remove set but not used variable
21898         false_label.
21899         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
21900         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
21901         new_scop_exit_edge.
21902
21903 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
21904
21905         PR bootstrap/42786
21906         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
21907         cpu types.  Add support for *-sse3 cpu types.
21908         (x86_64-*-*): Ditto.
21909
21910 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
21911
21912         PR middle-end/42803
21913         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
21914         argument, call initializer_constant_valid_p_1 instead of
21915         initializer_constant_valid_p, pass CACHE to it, return NULL
21916         immediately if first call returns NULL.
21917         (initializer_constant_valid_p_1): New function.
21918         (initializer_constant_valid_p): Use it.
21919
21920 2010-01-20  Thomas Quinot  <quinot@adacore.com>
21921
21922         * tree.def (PLACEHOLDER_EXPR): Fix comment.
21923
21924 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
21925
21926         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
21927         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
21928         (loc_list_from_tree): Don't handle unsigned division.  Handle
21929         signed modulo using DW_OP_{over,over,div,mul,minus}.
21930         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
21931         modulo instead of signed.
21932
21933 2010-01-20  DJ Delorie  <dj@redhat.com>
21934
21935         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
21936         (Fpa): Pass it
21937         (h8300_emit_stack_adjustment): Propogate it.
21938         (push): Pass it.
21939         (h8300_expand_prologue): Likewise.
21940         (h8300_expand_epilogue): Likewise.
21941
21942 2010-01-19  Michael Matz  <matz@suse.de>
21943
21944         PR tree-optimization/41783
21945         * tree-data-ref.c (toplevel): Include flags.h.
21946         (dump_data_dependence_relation):  Also dump the inputs if the
21947         result will be unknown.
21948         (split_constant_offset_1): Look through some conversions.
21949         * tree-predcom.c (determine_roots_comp): Restart a new chain if
21950         the offset from last element is too large.
21951         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
21952         (reassociate_to_the_same_stmt): Handle vector registers.
21953         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
21954         (e.g. conversions).
21955         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
21956         wide_prolog_niters argument, emit widening instructions.
21957         (vect_do_peeling_for_alignment): Adjust caller, use widened
21958         variant of the iteration cound.
21959         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
21960
21961 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21962
21963         PR target/38697
21964         * config/arm/neon-testgen.m (emit_automatics): New parameter
21965         features. Adjust for Fixed_return_reg feature.
21966         (test_intrinsic): Call emit_automatics with new feature.
21967         * config/arm/neon.ml: Update copyright years.
21968         (features): New Fixed_return_reg feature.
21969         (ops): Update feature for Vget_low.
21970
21971 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
21972
21973         PR tree-optimization/42719
21974         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
21975         stmt uses.
21976
21977         PR debug/42728
21978         * fwprop.c (all_uses_available_at): Return false if def_set dest
21979         is a REG that is used in def_insn.
21980
21981 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
21982
21983         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
21984
21985         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
21986         Add argument names.
21987
21988         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
21989
21990         * target.h (struct gcc_target) <secondary_reload>: Change type
21991         of last argument to secondary_reload_info *.
21992
21993 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
21994
21995         PR target/42774
21996         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
21997         memory references with unaligned offsets.  Remove CQImode handling.
21998         (unaligned_memory_operand): Return 1 for memory references with
21999         unaligned offsets.  Remove CQImode handling.
22000
22001 2010-01-18  Richard Guenther  <rguenther@suse.de>
22002
22003         PR middle-end/39954
22004         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
22005         builtin calls.
22006
22007 2010-01-18  Richard Guenther  <rguenther@suse.de>
22008
22009         PR tree-optimization/42781
22010         * tree-ssa-structalias.c (find_what_var_points_to): Skip
22011         restrict processing only if the original variable was artificial.
22012
22013 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
22014
22015         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
22016         find number of popped argument bytes.
22017
22018         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
22019         Fix the text that describes the return value for invalid insns.
22020
22021         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
22022
22023         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
22024         Clarify what 'cost of the -dependence' is.  Fix quoting.
22025
22026         * toplev.c (default_get_pch_validity): Rename argument to "sz".
22027         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
22028
22029 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
22030
22031         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
22032         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
22033
22034 2010-01-17  Richard Guenther  <rguenther@suse.de>
22035
22036         PR middle-end/42248
22037         * function.c (split_complex_args): Take a VEC to modify.
22038         (assign_parms_augmented_arg_list): Build a VEC instead of
22039         a chain of PARM_DECLs.
22040         (assign_parms_unsplit_complex): Take a VEC of arguments.
22041         Do not fixup unmodified parms.
22042         (assign_parms): Deal with the VEC.
22043         (gimplify_parameters): Likewise.
22044
22045 2010-01-17  Richard Guenther  <rguenther@suse.de>
22046
22047         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
22048         node existence check.
22049         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
22050         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
22051         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
22052         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
22053         (gimple_execute_on_growing_pred): Likewise.
22054
22055 2010-01-17  Richard Guenther  <rguenther@suse.de>
22056
22057         PR tree-optimization/42773
22058         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
22059         (compute_antic_aux): Likewise.
22060         (compute_partial_antic_aux): Likewise.
22061
22062 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
22063
22064         PR debug/42767
22065         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
22066         and US_TRUNCATE.
22067
22068 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
22069
22070         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
22071         appearance.
22072
22073         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
22074         Fix markup for strict argument.
22075
22076         (TARGET_SCHED_REORDER2): Fix argument types.
22077
22078         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
22079         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
22080
22081         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
22082         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
22083
22084         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
22085         Add argument name.
22086
22087         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
22088         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
22089         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
22090         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
22091         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
22092
22093         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
22094
22095         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
22096
22097         (TARGET_ASM_RELOC_RW_MASK): Add return type.
22098         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
22099
22100         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
22101
22102         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
22103         Use prototype.
22104
22105         (TARGET_ASM_NAMED_SECTION): Fix argument list.
22106
22107         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
22108         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
22109
22110         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
22111
22112         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
22113
22114         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
22115         referring to it.  Fix language.
22116
22117         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
22118
22119         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
22120
22121         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
22122
22123         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
22124
22125         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
22126         '@var{stream}.  Remove stray 'and'.
22127
22128         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
22129
22130         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
22131
22132         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
22133
22134         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
22135         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
22136
22137         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
22138         Fix description of return value.
22139         Rename argument "sz" to "len."
22140
22141         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
22142         Clarify meaning of 'true' return value.
22143
22144         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
22145
22146         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
22147         rep_mode versus mode_rep.
22148
22149         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
22150
22151         (TARGET_BUILTIN_DECL): Fix name.
22152
22153         (TARGET_COMMUTATIVE_P): Fix type of first argument.
22154
22155         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
22156
22157         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
22158
22159         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
22160
22161         (TARGET_RELAXED_ORDERING): Use @deftypevr.
22162
22163         (TARGET_GET_DRAP_RTX): Note that this is a hook.
22164         Clarify language.
22165
22166         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
22167         Rename argument tm_fn to md_fn.
22168
22169         (TARGET_OPTION_PRINT): Fix argument list.
22170
22171 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
22172
22173         PR target/42664
22174         * config/i386/i386.c (ix86_fixup_binary_operands):
22175         Revert FMA4 fixup of operands.
22176
22177 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22178
22179         PR gcc/42525
22180         * Makefile.in (write_entries_to_file, install-plugin):
22181         Use \012 instead of \n with tr.
22182
22183 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
22184
22185         * configure.ac (HAVE_AS_REF): New C macro.
22186         * configure: Regenerate.
22187         * config.in: Likewise.
22188         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
22189         if HAVE_AS_REF.
22190         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
22191         if HAVE_AS_REF.
22192
22193 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
22194
22195         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
22196
22197         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
22198
22199         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
22200
22201         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
22202
22203         (TARGET_IN_SMALL_DATA_P): Fix argument type.
22204
22205         (TARGET_BINDS_LOCAL_P): Fix argument type.
22206
22207         (TARGET_ASM_FILE_END): Use prototype.
22208
22209         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
22210
22211         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
22212
22213         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
22214
22215         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
22216
22217         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
22218         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
22219
22220         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
22221         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
22222
22223         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
22224         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
22225         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
22226         (TARGET_ADDR_SPACE_CONVERT): Likewise.
22227
22228         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
22229
22230         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
22231
22232         (TARGET_INIT_BUILTINS): Use prototype.
22233
22234         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
22235         Put 'const char *' in braces.  Fix parameter types.
22236         (TARGET_INVALID_CONVERSION): Fix parameter types.
22237         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
22238         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
22239
22240         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
22241         Fix argument type.
22242
22243         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
22244
22245         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
22246
22247 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
22248
22249         * doc/tm.texi (TARGET_HELP): Fix return type.
22250
22251         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
22252         in braces.  Fix argument types.
22253
22254         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
22255
22256         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
22257
22258         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
22259
22260         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
22261         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
22262
22263         (TARGET_MANGLE_TYPE): Fix argument types.
22264
22265         (TARGET_IRA_COVER_CLASSES): Use prototype.
22266
22267         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
22268
22269         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
22270
22271         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
22272
22273         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
22274
22275         (TARGET_CALLEE_COPIES): Fix argument types.
22276
22277         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
22278
22279         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
22280
22281         (TARGET_FUNCTION_VALUE): Fix argument types.
22282
22283         (TARGET_RETURN_IN_MSB): Fix argument type.
22284
22285         (TARGET_RETURN_IN_MEMORY): Fix argument types.
22286
22287         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
22288
22289         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
22290
22291         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
22292         agree with return type.
22293
22294         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
22295
22296 2010-01-15  Jing Yu  <jingyu@google.com>
22297
22298         PR rtl-optimization/42691
22299         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
22300         a pseudo to a constant and are merged, and adjust comments.
22301
22302 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
22303
22304         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
22305
22306 2010-01-15  Richard Guenther  <rguenther@suse.de>
22307
22308         PR middle-end/42739
22309         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
22310         labels of computed or non-local gotos to the destination.
22311         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
22312         landing pad label is the first label.
22313
22314 2010-01-15  Richard Guenther  <rguenther@suse.de>
22315
22316         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
22317
22318 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
22319
22320         PR target/42747
22321         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
22322         to allow generation of the xssqrtdp instruction on power7.
22323         (sqrtdf2_fpr): Ditto.
22324
22325 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
22326
22327         PR middle-end/42674
22328         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
22329         functions with noreturn attribute.
22330
22331         PR c++/42608
22332         * varasm.c (declare_weak): Add weak attribute to decl if it
22333         doesn't have one already.
22334         (assemble_external): Only add decls to weak_decls if they also
22335         have weak attribute.
22336
22337 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
22338
22339         * var-tracking.c (var_reg_delete): Don't delete the association
22340         between REGs and values or one-part variables if the register
22341         isn't clobbered.
22342
22343 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
22344
22345         PR debug/42657
22346         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
22347         because its first operand is a non-localized variable.
22348
22349 2010-01-14  Martin Jambor  <mjambor@suse.cz>
22350
22351         PR tree-optimization/42706
22352         * tree-sra.c (encountered_recursive_call): New variable.
22353         (encountered_unchangable_recursive_call): Likewise.
22354         (sra_initialize): Initialize both new variables.
22355         (callsite_has_enough_arguments_p): New function.
22356         (scan_function): Call decl and flags check only for IPA-SRA, check
22357         whether there is a recursive call and whether it has enough arguments.
22358         (all_callers_have_enough_arguments_p): New function.
22359         (convert_callers): Look for recursive calls only when
22360         encountered_recursive_call is set.
22361         (ipa_early_sra): Bail out either if
22362         !all_callers_have_enough_arguments_p or
22363         encountered_unchangable_recursive_call.
22364
22365 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22366
22367         * sel-sched.c: Add 2010 to copyright years.
22368         * sel-sched-ir.c: Likewise.
22369         * sel-sched-ir.h: Likewise.
22370
22371 2010-01-14  Martin Jambor  <mjambor@suse.cz>
22372
22373         PR tree-optimization/42714
22374         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
22375         constructors specially.
22376
22377 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22378
22379         * config/i386/drivers-i386.c (detect_caches_intel):
22380         Add l2sizekb parameter and fill in.
22381         (host_detect_local_cpu): Add l2sizekb, fill in.
22382         Add Atom small cache heuristic.
22383
22384 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22385
22386         * config/i386/drivers-i386.c (detect_caches_cpuid4):
22387         Add level3 parameter and fill in.
22388         (detect_caches_intel): Handle level3 cache.
22389
22390 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22391
22392         * config/i386/drivers-i386.c (host_detect_local_cpu):
22393         Fix core duo detection.
22394
22395 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22396
22397         * config/i386/drivers-i386.c (host_detect_local_cpu):
22398         Fix Atom detection.
22399
22400 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22401
22402         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
22403         (rs6000_variable_issue_1): this.  Use...
22404         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
22405
22406 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22407
22408         * sel-sched-ir.c (sel_restore_other_notes): Rename to
22409         sel_restore_notes.  Update all callers.  Call reemit_notes
22410         for all insns.
22411
22412 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22413
22414         PR rtl-optimization/42246
22415         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
22416         loops.
22417
22418 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22419
22420         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
22421         all successors is the same as number of successors in current region.
22422
22423 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22424
22425         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
22426         to rename is not separable.  Otherwise check that its LHS is not NULL.
22427
22428 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22429
22430         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
22431
22432 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22433
22434         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
22435         available registers when failed to discover LHS register class.
22436         Fix indentation.  Update comment.
22437
22438 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22439             Alexander Monakov  <amonakov@ispras.ru>
22440
22441         PR rtl-optimization/42389
22442         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
22443         to can_issue_more.
22444         (advance_state_on_fence): Likewise.
22445         (sel_target_adjust_priority): Print debug output only when
22446         sched_verbose >= 4, not 2.
22447         (get_expr_cost): Do not issue all unique insns on the next cycle.
22448         (fill_insns): Initialize can_issue_more from the value saved
22449         with the fence.
22450         * sel-sched-ir.c (flist_add): New parameter issue_more.
22451         Init FENCE_ISSUE_MORE with it.
22452         (merge_fences): Likewise.
22453         (init_fences): Update call to flist_add.
22454         (add_to_fences, add_clean_fence_to_fences)
22455         (add_dirty_fence_to_fences): Likewise.
22456         (move_fence_to_fences): Update call to merge_fences.
22457         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
22458         sched groups.
22459         * sel-sched-ir.h (struct _fence): New field issue_more.
22460         (FENCE_ISSUE_MORE): New accessor macro.
22461
22462 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22463
22464         PR rtl-optimization/42388
22465         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
22466         that have no predecessors nor successors.  Do not call move_bb_info
22467         for empty blocks outside of current region.
22468
22469 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22470
22471         PR rtl-optimization/42294
22472         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
22473         * sel-sched.c (move_exprs_to_boundary): Transitively add all
22474         originators' originators.
22475
22476 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22477
22478         PR rtl-optimization/39453
22479         PR rtl-optimization/42246
22480         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
22481         for pipelining_p.
22482         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
22483
22484 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22485             Alexander Monakov  <amonakov@ispras.ru>
22486
22487         PR middle-end/42245
22488         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
22489         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
22490         argument.  Update all callers.
22491         (tidy_control_flow): ... and here.  Recompute topological order
22492         of basic blocks in region if necessary.
22493         (sel_redirect_edge_and_branch): Change return type.  Return true
22494         if topological order might have been invalidated.
22495         (purge_empty_blocks): Export and move from...
22496         * sel-sched.c (purge_empty_blocks): ... here.
22497         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
22498         (maybe_tidy_empty_bb): Delete prototype.
22499         (purge_empty_blocks): Declare.
22500
22501 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
22502
22503         PR rtl-optimization/42249
22504         * sel-sched.c (try_replace_dest_reg): When chosen register
22505         and original register is the same, do not bail out early, but
22506         still check all original insns for validity of replacing destination
22507         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
22508         in this case.
22509
22510 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
22511
22512         PR c/42721
22513         Port from no-undefined-overflow branch:
22514         2009-03-09  Richard Guenther  <rguenther@suse.de>
22515
22516         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
22517
22518 2010-01-14  Richard Guenther  <rguenther@suse.de>
22519
22520         PR lto/42665
22521         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
22522
22523 2010-01-14  Ira Rosen  <irar@il.ibm.com>
22524
22525         PR tree-optimization/42709
22526         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
22527         as scalar type in creation of constant vector operand.
22528
22529 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22530
22531         PR testsuite/42414
22532         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
22533         (check-parallel-%): Match `testsuite' directory component only
22534         at the end.
22535
22536 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
22537
22538         PR translation/39521
22539         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
22540         strings with _().
22541
22542 2010-01-13  Richard Guenther  <rguenther@suse.de>
22543
22544         PR tree-optimization/42730
22545         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
22546         offset zero.
22547
22548 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
22549
22550         PR target/pr42542
22551         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
22552         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
22553         them signed.
22554
22555 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
22556
22557         * config/bfin/libgcc-bfin.ver: Regenerate based on current
22558         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
22559         ___umulsi3_highpart.
22560
22561         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
22562         rather than schedule_insns if the pass is enabled.
22563
22564 2010-01-13  Martin Jambor  <mjambor@suse.cz>
22565
22566         PR tree-optimization/42704
22567         * tree-sra.c (sra_modify_assign): Do not delete assignments to
22568         SSA_NAMEs.
22569
22570 2010-01-13  Martin Jambor  <mjambor@suse.cz>
22571
22572         PR tree-optimization/42703
22573         * tree-sra.c (analyze_access_subtree): Check that we can build a
22574         reference to the original data within the aggregate.
22575
22576 2010-01-13  Richard Guenther  <rguenther@suse.de>
22577
22578         PR tree-optimization/42705
22579         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
22580
22581 2010-01-13  Richard Guenther  <rguenther@suse.de>
22582
22583         PR middle-end/42716
22584         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
22585
22586 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
22587
22588         PR debug/41371
22589         * var-tracking.c (values_to_unmark): New variable.
22590         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
22591         values_to_unmark vector.  Moved body to...
22592         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
22593         instead queue it into values_to_unmark vector.
22594         (vt_find_locations): Free values_to_unmark vector.
22595
22596 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
22597
22598         * config/s390/s390.c (override_options): Set
22599         default of max-pending-list-length to 256
22600
22601 2010-01-13  Richard Guenther  <rguenther@suse.de>
22602
22603         PR lto/42678
22604         * tree-pass.h (PROP_gimple_lcx): New.
22605         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
22606         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
22607         before the final cleanup_eh.
22608         (dump_properties): Dump PROP_gimple_lcx.
22609         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
22610         (tree_lower_complex_O0): Remove.
22611         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
22612         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
22613         tree_lower_complex, schedule TODO_update_ssa.
22614         * lto-streamer-out.c (output_function): Stream the functions
22615         properties.
22616         * lto-streamer-in.c (input_function): Likewise.
22617         (lto_read_body): Do not override them here.
22618
22619 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
22620
22621         PR c/42708
22622         * c-typeck.c (build_c_cast): Fold value cast to union type before
22623         wrapping it in a CONSTRUCTOR.
22624
22625 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
22626
22627         PR rtl-optimization/42699
22628         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
22629         involved.
22630
22631 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22632
22633         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
22634         SUBTARGET_WARN_UNUSED_SPEC): Move ...
22635         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
22636         SUBTARGET_WARN_UNUSED_SPEC): ... here
22637         * config/mips/iris5.h (LIBGCC_SPEC): Define.
22638
22639 2010-01-12  Julian Brown  <julian@codesourcery.com>
22640
22641         * config/arm/neon-schedgen.ml (Utils): Don't try to
22642         open missing module.
22643         (find_with_result): New.
22644
22645 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
22646
22647         PR debug/42662
22648         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
22649         sharing when canonicalizing ({lt,ge}u (plus a b) b).
22650
22651         PR tree-optimization/42645
22652         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
22653         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
22654         decl_map, set processing_debug_stmt to -1 and return name without
22655         any remapping.
22656
22657 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
22658
22659         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
22660         binutils version, and reword target configuration description.
22661
22662 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
22663
22664         * config/avr/avr.h (LINKER_NAME): Remove.
22665
22666 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
22667
22668         PR target/42416
22669         * config/rs6000/rs6000.c (rs6000_override_options): On targets
22670         that support VSX, warn for -mno-altivec if vsx is not disabled,
22671         and disable vsx.
22672
22673 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
22674             Shujing Zhao  <pearly.zhao@oracle.com>
22675
22676         PR translation/42469
22677         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
22678         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
22679         character between option name and help text.
22680         * c.opt (imultilib): Likewise.
22681
22682 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
22683
22684         * lto-streamer-out.c (output_unreferenced_globals): Output static
22685         variables.
22686
22687 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
22688
22689         PR rtl-optimization/42621
22690         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
22691         optimizing for size.
22692         (duplicate_computed_gotos): Remove now-redundant check.
22693
22694 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
22695
22696         PR target/37454
22697         * configure.ac: Save and restore LDFLAGS and LIBS
22698         * configure: Regenerate.
22699
22700 2010-01-10  Richard Guenther  <rguenther@suse.de>
22701
22702         PR middle-end/42667
22703         * builtins.c (fold_builtin_strlen): Add type argument and
22704         convert the resulting length to it.
22705         (fold_builtin_1): Adjust.
22706
22707 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
22708
22709         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
22710         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
22711         1 insn.
22712         (num_insns_constant_wide): Adjust for that change.
22713
22714 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22715
22716         PR debug/42631
22717         * web.c (union_defs): Add used argument, to combine uses of
22718         uninitialized regs.
22719         (entry_register): Adjust type and tests of used argument.
22720         (web_main): Widen used for new use.  Pass it to union_defs.
22721         * df.h (union_defs): Adjust prototype.
22722
22723 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22724
22725         PR debug/42630
22726         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
22727         uses in new incoming argument.  Free body.
22728         (reset_debug_uses_in_loop): New.
22729         (analyze_insn_to_expand_var): Call the latter if the former found
22730         anything.  Fix whitespace.  Reject invalid dest overlaps before
22731         going through all insns in the loop.
22732
22733 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22734
22735         PR debug/42629
22736         * haifa-sched.c (dying_use_p): Debug insns don't count.
22737
22738 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22739
22740         PR middle-end/42363
22741         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
22742         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
22743         (verify_gimple_call): Reject LHS in noreturn calls.
22744
22745 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22746
22747         PR debug/42604
22748         PR debug/42395
22749         * tree-vect-loop-manip.c (adjust_info): New type.
22750         (adjust_vec): New pointer to vector.
22751         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
22752         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
22753         (slpeel_update_phis_for_duplicate_loop): Use them.
22754         (slpeel_update_phi_nodes_for_guard1): Likewise.
22755         (slpeel_update_phi_nodes_for_guard2): Likewise.
22756         (slpeel_tree_peel_loop_to_edge): Likewise.
22757         (vect_update_ivs_after_vectorizer): Likewise.
22758
22759 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22760
22761         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
22762         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
22763
22764 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22765
22766         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
22767         bogus uninitialized warning.
22768
22769 2010-01-09  Richard Guenther  <rguenther@suse.de>
22770
22771         PR middle-end/42512
22772         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
22773         the evolution is compatible with the initial condition.
22774
22775 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
22776
22777         * gcc.c (process_command): Update copyright notice dates.
22778         * gcov.c (print_version): Likewise.
22779         * gcov-dump.c (print_version): Likewise.
22780         * mips-tfile.c (main): Likewise.
22781         * mips-tdump.c (main): Likewise.
22782
22783 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
22784
22785         PR target/41885
22786         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
22787         (rotlhi3): Delete.
22788         (rotlhi3_8): Delete.
22789         (rotlsi3): Delete.
22790         (rotlsi3_8): Delete.
22791         (rotlsi3_16): Delete.
22792         (rotlsi3_24): Delete.
22793         (rotl<mode>3): New.
22794         (*rotw<mode>3): New.
22795         (*rotb<mode>3): New.
22796         * config/avr/avr.c (avr_rotate_bytes): New function.
22797         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
22798
22799 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
22800
22801         PR target/37454
22802         * configure.ac: Modify -rdynamic check.
22803         * configure: Regenerate.
22804
22805 2010-01-08  DJ Delorie  <dj@redhat.com>
22806
22807         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
22808         register popping order.
22809
22810 2010-01-08  Richard Guenther  <rguenther@suse.de>
22811
22812         PR lto/42528
22813         * c.opt (fsigned-char): Also let LTO handle this option.
22814         (funsigned-char): Likewise.
22815
22816 2010-01-07  Richard Guenther  <rguenther@suse.de>
22817
22818         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
22819         (gimple_op): Likewise.
22820         (gimple_op_ptr): Likewise.
22821         (gimple_assign_set_lhs): Remove gcc_assert.
22822         (gimple_assign_set_rhs1): Likewise.
22823         (gimple_assign_set_rhs2): Likewise.
22824         (gimple_call_set_lhs): Likewise.
22825         (gimple_call_set_fn): Likewise.
22826         (gimple_call_set_fndecl): Likewise.
22827         (gimple_call_fndecl): Likewise.
22828         (gimple_call_return_type): Likewise.
22829         (gimple_call_set_chain): Likewise.
22830         (gimple_call_num_args): Likewise.
22831         (gimple_call_set_arg): Likewise.
22832         (gimple_cond_set_code): Likewise.
22833         (gimple_cond_set_lhs): Likewise.
22834         (gimple_cond_set_rhs): Likewise.
22835         (gimple_cond_set_true_label): Likewise.
22836         (gimple_cond_set_false_label): Likewise.
22837         (gimple_label_set_label): Likewise.
22838         (gimple_goto_set_dest): Likewise.
22839         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
22840         (gimple_debug_bind_get_value): Likewise.
22841         (gimple_debug_bind_get_value_ptr): Likewise.
22842         (gimple_debug_bind_set_var): Likewise.
22843         (gimple_debug_bind_set_value): Likewise.
22844         (gimple_debug_bind_reset_value): Likewise.
22845         (gimple_debug_bind_has_value_p): Likewise.
22846         (gimple_return_retval_ptr): Remove gcc_assert.
22847         (gimple_return_retval): Likewise.
22848         (gimple_return_set_retval): Likewise.
22849         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
22850         (safe_referenced_var_iterator): Remove.
22851         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
22852         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
22853         (fill_referenced_var_vec): Remove.
22854         (first_readonly_imm_use): Remove redundant gcc_assert.
22855         (phi_arg_index_from_use): Combine gcc_asserts.
22856         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
22857         (first_imm_use_stmt): Remove redundant gcc_assert.
22858         * tree-cfg.c (verify_gimple_call): Verify function and chain
22859         operands.  Verify arguments.
22860         (verify_types_in_gimple_stmt): Verify condition code and labels.
22861
22862 2010-01-07  Richard Guenther  <rguenther@suse.de>
22863
22864         PR tree-optimization/42641
22865         * sese.c (rename_map_elt_info): Use the SSA name version, do
22866         not hash pointers.
22867
22868 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
22869
22870         PR tree-optimization/42625
22871         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
22872         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
22873
22874 2010-01-07  Duncan Sands  <baldrick@free.fr>
22875
22876         * Makefile.in (PLUGIN_HEADERS): Add version.h.
22877
22878 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
22879
22880         PR target/42511
22881         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
22882         note itself is not function_invariant_p.
22883
22884 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
22885
22886         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
22887         Do not add the DF_NOTE problem.
22888         * store-motion.c (execute_rtl_store_motion): Likewise.
22889
22890 2010-01-07  Martin Jambor  <mjambor@suse.cz>
22891
22892         PR tree-optimization/42157
22893         * tree-sra.c (compare_access_positions): Stabilize sort if both
22894         accesses have integer types, return zero immediately if they are the
22895         same.
22896
22897 2010-01-06  Richard Henderson  <rth@redhat.com>
22898
22899         PR middle-end/41883
22900         * haifa-sched.c (add_to_note_list): Merge into ...
22901         (concat_note_lists): ... here, and ...
22902         (unlink_other_notes, rm_other_notes): Merge into...
22903         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
22904         NOTE_INSN_EPILOGUE_BEG.
22905
22906 2010-01-06  Richard Guenther  <rguenther@suse.de>
22907
22908         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
22909         not inline regular functions into always-inline functions.
22910
22911 2010-01-06  Nick Clifton  <nickc@redhat.com>
22912
22913         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
22914         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
22915         used together.
22916         (OVERRIDE_OPTIONS): Delete.
22917         (OPTIMIZATION_OPTIONS): Define.
22918         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
22919         * config/rx/rx.c (rx_handle_option): Issue an error message if
22920         -mcpu=rx200 and -fpu are used together.
22921         (rx_set_optimization_options): New function.  Issue an error
22922         message if an optimization attribute attempts to reset the FPU/
22923         math optimization pairing.
22924         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
22925         * config/rx/rx.opt: Set the default to 32-bit doubles.
22926         * config/rx/t-rx: Add multilibs for -nofpu option.
22927         * doc/invoke.texi: Update documentation of RX options.
22928
22929 2010-01-06  Richard Guenther  <rguenther@suse.de>
22930
22931         * tree-ssa-pre.c (name_to_id): New global.
22932         (alloc_expression_id): Simplify SSA name handling.
22933         (lookup_expression_id): Likewise.
22934         (init_pre): Zero name_to_id.
22935         (fini_pre): Free it.
22936
22937 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
22938
22939         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
22940
22941 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
22942
22943         PR target/42542
22944         * config/i386/sse.md (smaxv2di3): New.
22945         (umaxv2di3): Likewise.
22946         (sminv2di3): Likewise.
22947         (uminv2di3): Likewise.
22948
22949 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
22950
22951         PR target/42564
22952         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
22953         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
22954         (legitimize_tls_address): Likewise.
22955         (sparc_tls_referenced_p): Likewise.
22956         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
22957         and adjust calls to legitimize_pic_address.
22958         (legitimate_constant_p) Use sparc_tls_referenced_p.
22959         (legitimate_pic_operand_p): Likewise.
22960         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
22961         (sparc_tls_symbol_ref_1): Delete.
22962         (sparc_tls_referenced_p): Make static, recognize specific patterns.
22963         (legitimize_tls_address): Make static, handle CONST patterns.
22964         (legitimize_pic_address): Make static, remove unused parameter and
22965         adjust recursive calls.
22966         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
22967         and adjust call to legitimize_pic_address.
22968         (sparc_output_mi_thunk): Likewise.
22969
22970 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
22971             H.J. Lu  <hongjiu.lu@intel.com>
22972
22973         PR target/42542
22974         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
22975         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
22976         operands to make them signed.
22977
22978         Revert:
22979         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
22980
22981         PR target/42542
22982         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
22983         GTU to GT for V4SI and V2DI.
22984
22985         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
22986         (umin<mode>3): Removed.
22987         (uminv8hi3): New.
22988         (uminv4si3): Likewise.
22989
22990 2010-01-05  Martin Jambor  <mjambor@suse.cz>
22991
22992         PR tree-optimization/42462
22993         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
22994         current_function_decl to helper functions and macros.
22995
22996 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22997
22998         PR bootstrap/41771
22999         * flags.h: Don't include real.h.
23000         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
23001         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
23002         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
23003         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
23004         * dominance.c: Update copyright.
23005         * gimple.c (walk_gimple_op): Remove inline.
23006         * tree-ssa-reassoc.c: Include real.h.
23007         * Makefile.in (FLAGS_H): Remove $(REAL_H).
23008         (tree-ssa-reassoc.o): Depend on $(REAL_H).
23009
23010 2010-01-05  Nick Clifton  <nickc@redhat.com>
23011
23012         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
23013         register to push into the stack frame when the accumulator has to
23014         be saved during interrupts.
23015
23016 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
23017
23018         * doc/invoke.texi: Remove the documentation about option
23019         -Wunreachable-code.
23020         * common.opt (Wunreachable-code):  Preserved for backward
23021         compatibility.
23022         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
23023         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
23024         the backward compatibility flag section.
23025
23026 2010-01-05  Richard Guenther  <rguenther@suse.de>
23027
23028         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
23029
23030 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
23031
23032         PR other/42611
23033         * cfgexpand.c (expand_one_var): Diagnose too large variables.
23034
23035         PR tree-optimization/42508
23036         * tree-sra.c (convert_callers): Check for recursive call
23037         by comparing cgraph nodes instead of decls.
23038         (modify_function): Call ipa_modify_formal_parameters also
23039         on all same_body aliases.
23040
23041         * cgraphunit.c (cgraph_materialize_all_clones): Compare
23042         cgraph nodes when checking for same_body aliases.
23043
23044 2010-01-05  Richard Guenther  <rguenther@suse.de>
23045
23046         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
23047         allocation and lookup.
23048         (get_or_alloc_expr_for_constant): Likewise.
23049         (phi_translate): Sink allocation.
23050
23051 2010-01-04  Richard Guenther  <rguenther@suse.de>
23052
23053         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
23054         a new entry only if needed.
23055         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
23056         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
23057         hashtable lookup.
23058         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
23059         the result array.
23060         (phi_translate): Handle CONSTANTs early.
23061
23062 2010-01-04  Martin Jambor  <mjambor@suse.cz>
23063
23064         PR tree-optimization/42398
23065         * tree-sra.c (struct access): Removed flag grp_different_types.
23066         (dump_access): Do not dump the removed flag.
23067         (sort_and_splice_var_accesses): Do not set the removed flag.
23068         (sra_modify_expr): Check for type compatibility directly.
23069
23070 2010-01-04  Martin Jambor  <mjambor@suse.cz>
23071
23072         PR tree-optimization/42366
23073         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
23074         edges with variable number of parameters.
23075         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
23076         flag instead of asserting it.
23077         (ipa_read_node_info): Read uses_analysis_done flag.
23078
23079 2010-01-04  Richard Guenther  <rguenther@suse.de>
23080
23081         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
23082         iterative_hash_* as intended.
23083         (vn_reference_compute_hash): Likewise.  Simplify hashing
23084         SSA names.
23085         (vn_reference_lookup_2): Likewise.
23086         (vn_nary_op_compute_hash): Likewise.
23087         (vn_phi_compute_hash): Likewise.
23088         (expressions_equal_p): Remove strange code.
23089         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
23090         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
23091         (bitmap_insert_into_set_1): Take value-id as parameter.
23092         (add_to_value): Pass it.
23093         (bitmap_insert_into_set): Likewise.
23094         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
23095
23096 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
23097
23098         PR driver/42442
23099         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
23100         (do_self_spec): For switches with SWITCH_IGNORE set set also
23101         SWITCH_IGNORE_PERMANENTLY.
23102         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
23103         of SWITCH_IGNORE.
23104
23105 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
23106
23107         * lto-streamer-out.c (output_unreferenced_globals): Output the full
23108         tree of an unreferenced global var.
23109
23110 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
23111
23112         PR target/42542
23113         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
23114         GTU to GT for V4SI and V2DI.
23115
23116         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
23117         (umin<mode>3): Removed.
23118         (uminv8hi3): New.
23119         (uminv4si3): Likewise.
23120
23121 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
23122
23123         PR lto/42581
23124         * collect2.c (main): Turn on trace in collect2 if -v is passed
23125         to gcc with LTO.
23126
23127 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
23128
23129         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
23130         description of expression operand.
23131
23132 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
23133
23134         * configure.ac: Add install-html to target_list for Make-hooks.
23135         * configure: Regenerate.
23136         * fortran/Make-lang.in (F95_HTMLFILES): New.
23137         (fortran.html): Use it.
23138         (fortran.install-html): New.
23139         * Makefile.in (install-html): Add lang.install-html.
23140         * java/Make-lang.in (JAVA_HTMLFILES): New.
23141         (java.html): Use it.
23142         (java.install-html): New.
23143         * objc/Make-lang.in (objc.install-html): New.
23144         * objcp/Make-lang.in (obj-c++.install-html): New.
23145         * cp/Make-lang.in (c++.install-html): New.
23146         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
23147         * lto/Make-lang.in (lto.install-html): New.
23148
23149 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
23150
23151         PR lto/42520
23152         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
23153
23154 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
23155
23156         PR rtl-optimization/41862
23157         * store-motion.c (store_killed_in_insn, compute_store_table,
23158         remove_reachable_equiv_notes, replace_store_insn,
23159         build_store_vectors): Ignore all DEBUG_INSNs.
23160
23161 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
23162
23163         PR lto/41564
23164         * common.opt: Add dumpdir.
23165
23166         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
23167         isn't specified.
23168         (option_map): Add --dumpdir.
23169
23170         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
23171
23172         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
23173
23174         * opts.c (decode_options): Try dump_dir_name first if
23175         dump_base_name isn't an absolute path.
23176         (common_handle_option): Handle OPT_dumpdir.
23177
23178         * toplev.c (dump_dir_name): New.
23179         (print_switch_values): Also ignore -dumpdir.
23180
23181         * toplev.h (dump_dir_name): New.
23182
23183 2010-01-03  Richard Guenther  <rguenther@suse.de>
23184
23185         PR tree-optimization/42589
23186         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
23187         double-word expansion of bswap32.
23188
23189 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
23190
23191         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
23192         with BLOCK_FOR_INSN.
23193         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
23194         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
23195         noce_process_if_block): Likewise.
23196         * gcse.c (compute_local_properties, insert_expr_in_table,
23197         insert_set_in_table, canon_list_insert, find_avail_set,
23198         pre_insert_copy_insn): Likewise.
23199
23200         * basic-block.h (BLOCK_NUM): Move from here...
23201         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
23202
23203 2010-01-03  Richard Guenther  <rguenther@suse.de>
23204
23205         PR tree-optimization/42438
23206         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
23207         contains_may_not_return_call flag.
23208         (BB_MAY_NOTRETURN): New.
23209         (valid_in_sets): Trapping nary operations are not valid
23210         in blocks that may not return.
23211         (insert_into_preds_of_block): Remove check for trapping expressions.
23212         (compute_avail): Compute also BB_MAY_NOTRETURN.
23213
23214 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
23215
23216         * doc/invoke.texi: Add 2010 to copyright years.
23217
23218 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
23219
23220         * config/sparc/sparc.c: Fix formatting nits.
23221
23222 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
23223             Alexander Monakov  <amonakov@ispras.ru>
23224
23225         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
23226
23227 2010-01-02  Richard Guenther  <rguenther@suse.de>
23228
23229         PR middle-end/42577
23230         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
23231         (simplify_switch_using_ranges): Mark to be removed edges
23232         as non-executable.
23233
23234 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23235
23236         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
23237
23238         * collect2.c (scan_libraries): Add missing argument in call to
23239         scan_prog_file.
23240
23241 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
23242
23243         PR target/42448
23244         * config/alpha/predicates.md (aligned_memory_operand): Return false
23245         for CQImode.
23246         (unaligned_memory_operand): Return true for CQImode.
23247         * config/alpha/alpha.c (get_aligned_mem): Assert that location
23248         doesn not cross aligned SImode word boundary.
23249
23250 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
23251
23252         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
23253         Remove.
23254         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
23255         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
23256
23257 2010-01-02  Richard Guenther  <rguenther@suse.de>
23258
23259         PR lto/41597
23260         * toplev.c (compile_file): Emit LTO marker properly.  Change
23261         it to __gnu_lto_v1.
23262         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
23263
23264 2010-01-01  Richard Guenther  <rguenther@suse.de>
23265
23266         PR debug/42455
23267         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
23268
23269 2010-01-01  Richard Guenther  <rguenther@suse.de>
23270
23271         PR c/42570
23272         * c-decl.c (grokdeclarator): For zero-size arrays force
23273         structural equality checks as layout_type does.
23274
23275 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
23276
23277         * builtins.c: Update copyright to 2010.
23278
23279 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
23280
23281         PR lto/42531
23282         * lto-streamer-out.c (produce_asm): Revert the last change.
23283         (copy_function): Likewise.
23284
23285         * lto-streamer.c (lto_get_section_name): Skip any leading
23286         asterisk in name.
23287
23288 2010-01-01  Richard Guenther  <rguenther@suse.de>
23289
23290         PR middle-end/42559
23291         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
23292         for LABEL_DECLs.
23293
23294 \f
23295 Copyright (C) 2010 Free Software Foundation, Inc.
23296
23297 Copying and distribution of this file, with or without modification,
23298 are permitted in any medium without royalty provided the copyright
23299 notice and this notice are preserved.