rs6000-modes.def (PSImode): Delete.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
2
3         * config/rs6000/rs6000-modes.def (PSImode): Delete.
4
5 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
6
7         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
8         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
9         throughout.
10         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
11         "xer" to "ca".
12         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
13         XER_REGS to CA_REGS throughout.
14         * config/rs6000/rs6000.h: Same.
15         (ADDITIONAL_REGISTER_NAMES): Add "xer".
16         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
17         that mode_iterator "P" is the size for arithmetic carries as well.
18         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
19
20 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
21
22         PR bootstrap/44255
23         * combine.c (struct rtx_subst_pair): Define unconditionally.
24         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
25         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
26         Call make_compound_operation on pair->to.
27         (propagate_for_debug): Don't call make_compound_operation here.
28         Always use simplify_replace_fn_rtx.
29
30 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
31
32         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
33         * config/xtensa/xtensa.c (override_options): Check
34           TARGET_FORCE_NO_PIC and set flag_pic.
35         * config/xtensa/xtensa.opt: Document -mforce-no-pic
36
37 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
38
39         PR bootstrap/44299
40         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
41         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
42
43 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
44
45         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
46         toplev.h.
47         * diagnostic.c: Don't include toplev.h.
48         (progname): Define.  Moved from toplev.c.
49         (seen_error): New function.
50         * diagnostic.h: Include diagnostic-core.h.
51         (diagnostic_t, emit_diagnostic): Don't declare here.
52         * toplev.c (progname): Move to toplev.c.
53         (emit_debug_global_declarations, compile_file, finalize,
54         do_compile, toplev_main): Use seen_error.
55         * toplev.h: Include diagnostic-core.h.
56         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
57         internal_error, warning, warning_at, error, error_n, error_at,
58         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
59         verbatim, fnotice, progname): Move to diagnostic-core.h.
60         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
61         (expand_builtin_expect): Use seen_error.
62         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
63         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
64         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
65         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
66         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
67         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
68         errorcount for errors.
69         * c-opts.c (c_common_finish): Use seen_error.
70         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
71         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
72         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
73         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
74         (get_coverage_counts): Use seen_error.
75         * dwarf2out.c (dwarf2out_finish): Use seen_error.
76         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
77         gimplify_body): Use seen_error.
78         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
79         * ipa-pure-const.c (gate_pure_const): Use seen_error.
80         * ipa-reference.c (gate_reference): Use seen_error.
81         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
82         * lambda-code.c: Include diagnostic-core.h instead of
83         diagnostic.h.
84         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
85         * lto-compress.c: Include diagnostic-core.h instead of
86         diagnostic.h.
87         * lto-section-in.c: Include diagnostic-core.h instead of
88         diagnostic.h.
89         * lto-streamer-out.c: Include diagnostic-core.h instead of
90         diagnostic.h.
91         * lto-streamer.c: Include diagnostic-core.h instead of
92         diagnostic.h.
93         (gate_lto_out): Use seen_error.
94         * matrix-reorg.c: Include diagnostic-core.h instead of
95         diagnostic.h.
96         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
97         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
98         (gate_expand_omp, lower_omp_1): Use seen_error.
99         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
100         (rest_of_decl_compilation, rest_of_type_compilation,
101         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
102         * tree-cfg.c (label_to_block_fn): Use seen_error.
103         * tree-inline.c (optimize_inline_calls): Use seen_error.
104         * tree-mudflap.c (mudflap_finish_file): Use
105         seen_error.
106         * tree-optimize.c (gate_all_optimizations,
107         gate_all_early_local_passes, gate_all_early_optimizations): Use
108         seen_error.
109         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
110         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
111         (varpool_remove_unreferenced_decls,
112         varpool_assemble_pending_decls): Use seen_error.
113         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
114         (TOPLEV_H, DIAGNOSTIC_H): Update.
115         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
116         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
117         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
118         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
119         coverage.o, lambda-code.o): Update dependencies.
120
121 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
122
123         PR c++/44188
124         * c-common.c (is_typedef_decl): Move this definition ...
125         * tree.c (is_typedef_decl): ... here.
126         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
127         * c-common.h (is_typedef_decl): Move this declaration ...
128         * tree.h (is_typedef_decl): ... here.
129         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
130         * dwarf2out.c (is_naming_typedef_decl): New function.
131         (gen_tagged_type_die): Split out of ...
132         (gen_type_die_with_usage): ... this function. When an anonymous
133         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
134         is emitted for the typedef.
135         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
136         anonymous tagged types.
137
138 2010-05-27  Jason Merrill  <jason@redhat.com>
139
140         * print-tree.c (debug_vec_tree): New fn.
141         (print_vec_tree): New fn.
142         * tree.h: Declare them.
143         * gdbinit.in (pvt): New command.
144
145         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
146
147         * gdbinit.in (pdd): New command.
148
149 2010-05-27  Jan Hubicka  <jh@suse.cz>
150
151         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
152         (update_caller_keys): Return early if there are no callers;
153         only update fibheap when decresing the key.
154         (update_callee_keys): Avoid recursion.
155         (decide_inlining_of_small_functions): When badness does not match;
156         re-insert into fibheap.
157
158 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
159
160         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
161         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
162         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
163         (ALL_HOST_OBJS): Now a union of the above two.
164         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
165         all files in ALL_HOST_FRONTEND_OBJS.
166         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
167
168         * c-common.c: Pretend to be a backend file by undefining
169         IN_GCC_FRONTEND (still need rtl.h here).
170
171 2010-05-27  Jan Hubicka  <jh@suse.cz>
172
173         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
174         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
175
176 2010-05-27  Jan Hubicka  <jh@suse.cz>
177
178         * sched-ebb.c: Rename struct deps to struct deps_desc.
179         * ddg.c: Likewise.
180         * sel-sched-ir.c: Likewise.
181         * sched-deps.c: Likewise.
182         * sched-int.h: Likewise.
183         * sched-rgn.c: Likewise.
184
185 2010-05-27  Jon Beniston <jon@beniston.com>
186
187         PR 43726
188         * config/lm32/lm32.h: Remove definition of 
189         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
190
191 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
192
193         PR lto/44230
194         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
195
196 2010-05-27  Richard Guenther  <rguenther@suse.de>
197
198         PR tree-optimization/44284
199         * tree-vect-stmts.c (vectorizable_assignment): Handle
200         sign-changing conversions as simple copy.
201
202 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
203
204         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
205         Bionic C library.
206         (__gthread_active_p): Check for pthread_create if compiling against
207         Bionic C library.
208
209 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
210
211         Support compilation for Android platform.  Reimplement -mandroid.
212
213         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
214         (*android*): Set ANDROID_DEFAULT.
215         (arm*-*-linux*): Include linux-android.h.
216         (arm*-*-eabi*): Don't include previous -mandroid implementation.
217         * config/arm/eabi.h: Remove, move Android-specific parts ...
218         * config/linux-android.h: ... here.  New file.
219         * config/arm/eabi.opt: Rename to ...
220         * config/linux-android.opt: ... this.
221         (mandroid): Allow -mno-android option.  Initialize based on
222         ANDROID_DEFAULT.
223         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
224         Move logic to corresponding LINUX_TARGET_* macros.
225         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
226         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
227         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
228         Android definitions.
229         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
230         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
231         Document.
232
233 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
234
235         Add support for Bionic C library
236
237         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
238         macro.
239         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
240         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
241
242         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
243         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
244         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
245         to support multiple C libraries.  Handle Bionic.
246         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
247         (BIONIC_DYNAMIC_LINKER64): Define.
248         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
249         Update.
250         (TARGET_HAS_SINCOS): Enable for Bionic.
251
252         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
253         the last option specified on command line take effect.
254         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
255         (mbionic): New.
256         (mglibc, muclibc): Update.
257
258         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
259         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
260         DEFAULT_LIBC.
261
262         * doc/invoke.texi (-mglibc, -muclibc): Update.
263         (-mbionic): Document.
264
265 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
266
267         * c-common.h (c_register_addr_space): Add prototype.
268         (ADDR_SPACE_KEYWORD): Remove.
269         * c-common.c (c_register_addr_space): New function.
270         (c_addr_space_name): Reimplement.
271         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
272
273         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
274         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
275
276         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
277         Remove TARGET_ADDR_SPACE_KEYWORDS.
278
279 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
280
281         * input.c: New file.
282         * input.h (main_input_filename): Move declaration to toplev.h.
283         * toplev.c (input_location, line_table): Move to input.c
284         * toplev.h (main_input_filename): Move declaration from input.h.
285         * tree.c (expand_location): Move to input.c.
286         * Makefile.in (OBJS-common): Add input.o.
287         (input.o): Add dependencies.
288
289 2010-05-27  Richard Guenther  <rguenther@suse.de>
290
291         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
292         for non-existant files.
293         (fork_execute): Mark args_name file as deleted.
294
295 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
296
297         PR bootstrp/44287
298         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
299         (narrow_signed_type): Likewise.
300
301 2010-05-26  Jan Hubicka  <jh@suse.cz>
302
303         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
304         edge only when checking is enabled; check using former_clone_of;
305         check inline clones too.
306         (cgraph_materialize_clone): Record former_clone_of pointer.
307         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
308         combining redirections; dump args_to_skip bitmap
309         (cgraph_materialize_all_clones): Do no redirection here.
310         * ipa-inline.c (inline_transform): Do redirection here.
311         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
312         cheking only).
313
314 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
315
316         * config/avr/avr-c.c: Do not include regs.h.
317         Include cpplib.h for cpp_define and tree.h for c-common.h.
318         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
319         * config/avr/t-avr: Fix dependencies for avr-c.o.
320
321 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
322
323         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
324         string instead of SYMBOL_REF rtx.
325         * rtl.h (set_stack_check_libfunc): Move prototype from here...
326         * libfuncs.h: ...to here.  Adjust for explow.c change.
327
328 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
329
330         * pretty-print.c: Don't include ggc.h.
331         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
332         (identifier_to_locale): Use them for allocation.
333         * pretty-print.h (identifier_to_locale_alloc,
334         identifier_to_locale_free): Declare.
335         * toplev.c (alloc_for_identifier_to_locale): New.
336         (general_init): Set identifier_to_locale_alloc and
337         identifier_to_locale_free.
338         * Makefile.in (pretty-print.o): Update dependencies.
339
340 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
341
342         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
343         pointer types if they have different alignment or mode.
344
345 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
346
347         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
348         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
349         * config/sparc/sparc-protos.h (function_value): Remove declaration.
350         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
351         sparc_function_value_regno_p): New functions.
352         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
353         TARGET_FUNCTION_VALUE_REGNO_P): Define.
354         (function_value): Rename to...
355         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
356         argument to 'outgoing'.
357         (function_arg_record_value, function_arg_union_value,
358         function_arg_vector_value): Update comment.
359
360 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
361
362         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
363         (fde_needed_for_eh_p): New predicate.
364         (output_call_frame_info): Use it throughout to decide whether FDEs
365         are needed for EH purpose.
366         (dwarf2out_begin_prologue): Reorder assignments.
367
368 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
369
370         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
371         special case loop->header.
372         (is_predicated): New.
373         (if_convertible_loop_p): Call it.
374
375 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
376
377         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
378         iterator in parameter.  Do not generate code during the analysis.
379         (tree_if_convert_cond_stmt): Removed.
380         (tree_if_convert_stmt): Removed.
381         (predicate_bbs): New.
382         (if_convertible_loop_p): Call predicate_bbs.
383         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
384         now contains all the analysis part.
385
386 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
387
388         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
389         statements in the analysis part.
390         (tree_if_convert_stmt): Update comment.
391         (remove_conditions_and_labels): New.
392         (combine_blocks): Call remove_conditions_and_labels.
393         (tree_if_conversion): Update comment.
394
395 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
396
397         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
398         than 2 predecessors or more than 2 successors.
399
400 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
401
402         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
403         of loops in which the data dependence analysis fails.
404
405 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
406
407         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
408         CDI_POST_DOMINATORS.
409         (tree_if_conversion): Same.
410
411 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
412
413         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
414
415 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
416
417         * tree-if-conv.c: Update copyright years.  Fix comments.
418         Fix indentation.
419
420 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
421
422         * builtin-types.def (BT_INT128): New primitive type.
423         (BT_UINT128): Likewise.
424         * c-common.c (c_common_r): Add __int128 keyword.
425         (c_common_type_for_size): Handle __int128.
426         (c_common_type_for_mode): Likewise.
427         (c_common_signed_or_unsigned_type): Likewise.
428         (c_common_nodes_and_builtins): Add builtin type
429         if target supports 128-bit integer scalar.
430         * c-common.h (enum rid): Add RID_INT128.
431         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
432         if target supports 128-bit integer scalar.
433         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
434         (finish_declspecs): Likewise.
435         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
436         (c_token_starts_declspecs): Likewise.
437         (c_parser_declspecs): Likewise.
438         (c_parser_attributes): Likewise.
439         (c_parser_objc_selector): Likewise.
440         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
441         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
442         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
443         * tree.c (make_or_reuse_type): Likewise.
444         (make_unsigned_type): Likewise.
445         (build_common_tree_nodes_2): Likewise.
446         * tree.h (enum integer_type_kind): Add itk_int128 and
447         itk_unsigned_int128.
448         (int128_integer_type_node): New define.
449         (int128_unsigned_type_node): New define.
450         * doc/extend.texi: Add documentation about __int128 type.
451
452 2010-05-26  Richard Guenther  <rguenther@suse.de>
453
454         * tree-ssa-sccvn.c (copy_nary): Adjust.
455         (copy_phis): Rename to ...
456         (copy_phi): ... this.  Adjust.
457         (copy_references): Rename to ...
458         (copy_reference): ... this.  Adjust.
459         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
460         result into the valid table.
461
462 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
463
464         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
465         insn-config.h, insn-codes.h, recog.h, and optabs.h.
466
467 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
468
469         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
470
471 2010-05-26  Richard Guenther  <rguenther@suse.de>
472
473         * opts.c (common_handle_option): Handle OPT_Ofast.
474
475 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
476
477         * diagnostic.c: Don't include opts.h.
478         (permissive_error_option): Define.
479         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
480         for classify_diagnostic.  Don't use memset for
481         classify_diagnostic.  Initialize new and recently added fields.
482         (diagnostic_classify_diagnostic): Use context->n_opts instead of
483         N_OPTS.
484         (diagnostic_report_diagnostic): Pass context parameter to
485         diagnostic_report_warnings_p.  Use option_enabled and option_name
486         hooks from context.
487         (emit_diagnostic): Use permissive_error_option.
488         (permerror): Likewise.
489         * diagnostic.h: Don't include options.h.
490         (struct diagnostic_context): Add n_opts, opt_permissive,
491         inhibit_warnings, warn_system_headers, option_enabled and
492         option_name fields.  Change classify_diagnostic to a pointer.
493         * opts-diagnostic.h: New file.
494         * opts.c: Include opts-diagnostic.h.
495         (common_handle_option): Set global_dc fields for -Wfatal-errors,
496         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
497         (option_name): New function.
498         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
499         (c_common_handle_option): Set global_dc->permissive for
500         -fpermissive.
501         * c-common.c (c_cpp_error): Save and restore
502         global_dc->warn_system_headers, not variable warn_system_headers.
503         * toplev.c: Include opts-diagnostic.h.
504         (general_init): Update call to diagnostic_initialize.  Set
505         global_dc->show_column, global_dc->option_enabled and
506         global_dc->option_name.
507         (process_options): Don't set global_dc fields here.
508         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
509         (diagnostic.o, opts.o, toplev.o): Update dependencies.
510
511 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
512
513         * config/picochip/picochip.md (movsi): Split a movsi from a
514         const after reload.
515
516 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
517
518         * ggc-zone.c: Update copyright year.
519         (poison_region): Mark memory for Valgrind as undefined before
520         memset () call and inaccessible afterwards.
521         (ggc_pch_total_size): Change type of i to int.
522
523 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
524
525         * ggc-common.c (ggc_free_overhead): Allow empty slot.
526
527 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
528
529         * ggc-common.c: Update copyright year.
530         (ggc_rlimit_bound): Remove prototype.  Compile only if
531         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
532         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
533         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
534         (ggc_min_heapsize_heuristic): Likewise.
535
536 2010-05-26  Richard Guenther  <rguenther@suse.de>
537
538         PR rtl-optimization/44164
539         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
540         no-common access-path disambiguation.
541         (indirect_ref_may_alias_decl_p): Adjust.
542         (indirect_refs_may_alias_p): Likewise.
543         (refs_may_alias_p_1): Likewise.
544
545 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
546
547         * c-typeck.c: Do not include expr.h.
548
549 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
550
551         * rtl.h (decl_default_tls_model): Move prototype from here...
552         * output.h: ...to here.
553         * c-decl.c: Do not include rtl.h.
554         * c-pragma.c: Likewise.
555         * c-parser.c: Likewise.
556         * c-gimplify.c: Likewise.  And also not hard-reg-set.
557         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
558         FIXME note for it.  Add a FIXME note for expr.h.
559         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
560         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
561         defined.
562
563 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
564
565         PR target/44199
566         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
567         or total_size is larger than red zone size for non-V4 ABI, emit a
568         stack_tie resp. frame_tie insn before stack pointer restore.
569         * config/rs6000/rs6000.md (frame_tie): New insn.
570
571 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
572
573         * function.h (struct function): Add can_throw_non_call_exceptions bit.
574         * lto-streamer-in.c (input_function): Stream it in.
575         * lto-streamer-out.c (output_function): Stream it out.
576         * function.c (allocate_struct_function): Set it.
577         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
578         for flag_non_call_exceptions.
579         * cfgbuild.c (control_flow_insn_p): Likewise.
580         (make_edges): Likewise.
581         * cfgexpand.c (expand_stack_alignment): Likewise.
582         * combine.c (distribute_notes): Likewise.
583         * cse.c (cse_extended_basic_block): Likewise.
584         * except.c (insn_could_throw_p): Likewise.
585         * gcse.c (simple_mem): Likewise.
586         * ipa-pure-const.c (check_call): Likewise.
587         (check_stmt ): Likewise.
588         * lower-subreg.c (lower-subreg.c): Likewise.
589         * optabs.c (emit_libcall_block): Likewise.
590         (prepare_cmp_insn): Likewise.
591         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
592         * postreload.c (rest_of_handle_postreload): Likewise.
593         * reload1.c (reload_as_needed): Likewise.
594         (emit_input_reload_insns): Likewise.
595         (emit_output_reload_insns): Likewise.
596         (fixup_abnormal_edges): Likewise.
597         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
598         * store-motion.c (find_moveable_store): Likewise.
599         * tree-eh.c (stmt_could_throw_p): Likewise.
600         (tree_could_throw_p): Likewise.
601         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
602         * config/arm/arm.c (arm_expand_prologue): Likewise.
603         (thumb1_expand_prologue): Likewise.
604         * config/rx/rx.md (cbranchsf4): Likewise.
605         (cmpsf): Likewise.
606         * config/s390/s390.c (s390_emit_prologue): Likewise.
607         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
608         (inline_forbidden_into_p): New predicate.
609         (expand_call_inline): Use it to forbid inlining.
610         (tree_can_inline_p): Likewise.
611
612 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
613
614         * config/i386/i386-c.c: Do not include rtl.h.
615         * config/i386/t-i386: Update dependencies.
616
617 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
618
619         * attribs.c: Do not include rtl.h.
620         * Makefile.in: Update dependencies.
621
622 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
623
624         * double-int.h (double_int_and): New.
625         * combine.c (try_combine): Clean up, use double_int_* and
626         immed_double_int_const functions.
627
628 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
629
630         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
631         stderr to /dev/null instead of grep -q.
632         * configure: Regenerate.
633
634 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
635
636         * Makefile.in (EXCEPT_H): Fix typo.
637
638 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
639
640         * ira-build.c (update_conflict_hard_reg_costs): New.
641         (ira_build): Call update_conflict_hard_reg_costs.
642
643 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
644
645         PR debug/41371
646         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
647         ENABLE_CHECKING.
648         (intersect_loc_chains): Walk the s2var's loc_chain together
649         with s1node chain as long as the locations are equal, don't
650         call find_loc_in_1pdv in that case.
651
652         PR debug/42801
653         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
654         (copy_bind_expr): ... instead of here.
655         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
656         if the block hasn't been remapped.
657         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
658         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
659
660 2010-05-25  Richard Guenther  <rguenther@suse.de>
661
662         PR middle-end/44069
663         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
664         out-of-bounds array accesses.
665
666 2010-05-25  Richard Guenther  <rguenther@suse.de>
667
668         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
669         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
670         (run_gcc): Re-organize to make cleanup easier.
671
672 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
673
674         * config/s390/s390.c (optimization_options): Fix and move the
675         flag_prefetch_loop_arrays override ...
676         (override_options): ... here.
677
678 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
679
680         * diagnostic.c: Don't include plugin.h.
681         (diagnostic_report_diagnostic): Don't handle plugins specially
682         here.  Pass context to internal_error callback.
683         * diagnostic.h (struct diagnostic_context): Add context parameter
684         to internal_error callback.
685         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
686         * plugin.h (struct diagnostic_context): Declare.
687         (warn_if_plugins, plugins_internal_error_function): Declare.
688         * toplev.c (general_init): Set global_dc->internal_error.
689         * Makefile.in (diagnostic.o): Update dependencies.
690
691 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
692
693         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
694         * config/rs6000/t-darwin64: New.
695         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
696         build crt2.
697
698 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
699
700         PR 44203
701         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
702         match the original (and intended) behaviour before r159557.  This
703         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
704         in two ways.
705
706 2010-05-25  Richard Guenther  <rguenther@suse.de>
707
708         * doc/invoke.texi: Document -Ofast.
709         * target.h (struct gcc_target): Add handle_ofast.
710         * target-def.h (TARGET_HANDLE_OFAST): Add.
711         (TARGET_INITIALIZER): Adjust.
712         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
713         * common.opt (Ofast): Add.
714
715 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
716
717         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
718         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
719
720 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
721
722         PR target/43610
723         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
724         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
725         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
726         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
727
728 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
729
730         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
731         DW_OP_minus with negated offset instead of DW_OP_plus.
732         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
733
734 2010-05-25  Wei Guozhi  <carrot@google.com>
735
736         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
737         tst instruction and a new alternative.
738         * config/arm/constraints.md (Pu): New constraint.
739
740 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
741
742         * function.c (assign_stack_local_1): Initialize variable
743         to avoid warning when bootstrapping at -O3.
744
745 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
746
747         * configure.ac (all_lang_makefiles): Remove everything related to it.
748         * configure: Regenerate.
749         * Makefile.in: Fix reference to ada Make-lang.in.
750         Remove support for LANG_MAKEFILES.
751
752 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
753             Sandra Loosemore  <sandra@codesourcery.com>
754
755         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
756         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
757         description.  Add arm_neon_fp16_ok.
758         (Add Options): Add arm_neon and arm_neon_fp16.
759
760 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
761
762         * diagnostic.c: Don't include flags.h.
763         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
764         context parameters.  Check flags in the context passed as a parameter.
765         (diagnostic_build_prefix): Add context parameter.  Check
766         show_column flag in context.
767         (diagnostic_action_after_output): Check fatal_errors flag in context.
768         (diagnostic_report_current_module): Check show_column flag in context.
769         (default_diagnostic_starter): Update call to
770         diagnostic_build_prefix.
771         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
772         (emit_diagnostic): Pass context to permissive_error_kind.
773         (permerror): Pass context to permissive_error_kind.
774         * diagnostic.h (struct diagnostic_context): Add show_column,
775         pedantic_errors, permissive and fatal_errors fields.
776         (diagnostic_build_prefix): Update prototype.
777         * langhooks.c
778         * toplev.c (process_options): Set flags in global_dc from
779         flag_show_column, flag_pedantic_errors, flag_permissive,
780         flag_fatal_errors.
781         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
782         to diagnostic_build_prefix.
783         * Makefile.in (diagnostic.o): Update dependencies.
784
785 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
786
787         * config/i386/ia32intrin.h (__crc32q): Define only if
788         __SSE4_2__ is defined.
789
790 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
791
792         PR target/44132
793         PR middle-end/43602
794         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
795         DECL_VISIBILITY_SPECIFIED.
796         (emutls_decl): Set DECL_PRESERVE_P and copy
797         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
798         (emutls_finalize_control_var): New callback.
799         (emutls_finish): Finalize emutls control variables.
800         * toplev.c (compile_file): Move the call to emutls_finish ()
801         before varpool_assemble_pending_decls ().
802
803 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
804
805         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
806         added to the preprocessor condition.
807
808 2010-05-24  Paul Brook  <paul@codesourcery.com>
809
810         * gengtype-lex.l: Add HARD_REG_SET.
811         * expr.c (expand_expr_real_1): Record writes to hard registers.
812         * function.c (rtl_data): Add asm_clobbers.
813         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
814         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
815         Use crtl->asm_clobbers.
816
817 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
818
819         * doc/makefile.texi (Makefile): Mention stages 'profile'
820         and 'feedback' for profiledbootstrap.
821
822 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
823
824         PR target/44245
825         * config/i386/i386.c (def_builtin): Properly check
826         OPTION_MASK_ISA_64BIT.
827
828 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
829
830         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
831         typedefs with different but compatible types.  Allow duplicate
832         typedefs with the same type except for pedantic non-C1X, but give
833         warning for variably modified types.
834         * c-typeck.c (tagged_types_tu_compatible_p,
835         function_types_compatible_p, type_lists_compatible_p,
836         comptypes_internal): Add parameter different_types_p; set
837         *different_types_p for different but compatible types.  All
838         callers changed.
839         (comptypes_check_different_types): New.
840         * c-tree.h (comptypes_check_different_types): Declare.
841
842 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
843
844         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
845         * jump.c: Include basic-block.h.
846         * profile.c: Likewise.
847         * tree-profile.c: Likewise.
848         * coverage.c: Likewise.
849         * basic-block.h (optimize_function_for_size_p): Move to function.h.
850         (optimize_function_for_speed_p): Likewise.
851         * function.h (optimize_function_for_size_p,
852         optimize_function_for_speed_p): Moved here from basic-block.h.
853         * Makefile.in: Update dependencies.
854
855 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
856
857         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
858         before calling make; allow override through $MAKE.
859         * doc/invoke.texi (Optimize Options): Document override.
860
861 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
862
863         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
864         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
865         (rs6000_mode_dependent_address_ptr): Make static.
866         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
867         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
868         Remove.
869
870 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
871
872         PR target/43869
873         * config/i386/i386.c: Make sure that the correct regparm is passed.
874
875 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
876
877         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
878         * sbitmap.c: ...to here to internalize sbitmap element access.
879         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
880         Explain why basic-block.h is included.
881         * function.h: Include tm.h for CUMULATIVE_ARGS.
882         * Makefile.in: Update dependencies.
883
884 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
885
886         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
887         New core types.
888         * sbitmap.h (struct sbitmap_def): Do not typedef here.
889         * sbitmap.c: Include sbitmap.h.
890         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
891         hard-reg-set.h.  Split everything related to regsets out from here...
892         * regset.h: ...to here.  New file.
893         * df.h: Include regset.h and sbitmap.h.
894         * tree-flow.h: Likewise.
895         * cfgloop.h: Likewise.
896         * except.h: Do not include sbitmap.h.  Include hashtab.h.
897         * cgraph.h: Include vec.h and function.h.
898         * reload.h (struct insn_chain): Change types of live_throughout
899         and dead_or_set from regset_head to bitmap_head.
900         (compute_use_by_pseudos): Be defined also if regset.h is not included.
901         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
902         spilled_regs from regset_head to bitmap_head to avoid dependency
903         in regset.h.
904         * sel-sched-ir.h: Include regset.h.
905         * reload.c: Include df.h before reload.h.
906         * caller-save.c: Likewise.
907         * reload1.c: Likewise.
908         * ira.c: Likewise.
909         (mark_elimination): Update type of r to bitmap, consistent with
910         DF_LR_IN.
911         * dominance.c: Include bitmap.h.
912         * modulo-sched.c: Include df.h.
913         * cfganal.c: Include bitmap.h and sbitmap.h.
914         * cfgbuild.c: Include sbitmap.h.
915         * lcm.c: Include sbitmap.h.
916         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
917         * domwalk.c: Include sbitmap.h, exclude ggc.h.
918         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
919         * cselib.c: Include bitmap.h.
920         * tree-optimize.c: Include regset.h.
921         * stmt.c: Include bitmap.h.
922         * Makefile.in: Update dependencies.
923
924 2010-05-22  Jan Hubicka  <jh@suse.cz>
925
926         * cgraph.h (struct varpool_node): Add same_comdat_group.
927         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
928         pointer.
929         (output_varpool): Update call of lto_output_varpool_node.
930         (input_varpool): Read same_comdat_group pointer.
931         (input_varpool_1): Fixup same_comdat_group pointer.
932         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
933         group is needed, all are.
934         * varpool.c (varpool_remove_node): Remove node from same comdat group
935         linklist too.
936         (varpool_analyze_pending_decls): Walk same comdat groups.
937
938 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
939
940         * rtl.h (union rtunion_def): Remove rt_bit member.
941         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
942         * print-rtl (print_rtx): Do not print the member.
943         * gengtype.c (adjust_field_rtx_def): Do not handle it.
944         * gengenrtl.c (type_from_format): Likewise.
945         (accessor_from_format): Likewise.
946
947 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
948
949         * dbgcnt.c: Include toplev.h instead of errors.h.
950         * ira-emit.c: Don't include errors.h.
951         * ira.c: Include toplev.h instead of errors.h.
952         * lto-compress.c: Include toplev.h instead of errors.h.
953         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
954         ira.o, dbgcnt.o): Update dependencies.
955
956 2010-05-22  Richard Guenther  <rguenther@suse.de>
957
958         * gimple.c (gimple_types_compatible_p): Check type qualifications
959         before merging pointer to complete and pointer to incomplete type.
960         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
961         we use our own resolution algorithm.  The gold linker plugin
962         doesn't do the job we want it to do here.
963
964 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
965
966         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
967         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
968         (sparc_mode_dependent_address_p): New function.
969
970 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
971
972         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
973
974         * timevar.c: Do not include any core headers.
975         (timevar_print): De-i18n-ize.
976         (print_time): Likewise.
977         * timevar.h (timevar_push, timevar_pop): Make inline functions.
978
979 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
980
981         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
982         langhooks-def.h.
983         (diagnostic_initialize): Initialize x_data not last_function.
984         (diagnostic_report_current_function): Move to tree-diagnostic.c.
985         (default_diagnostic_starter): Call
986         diagnostic_report_current_module not
987         diagnostic_report_current_function.
988         (diagnostic_report_diagnostic): Initialize x_data not
989         abstract_origin.
990         (verbatim): Likewise.
991         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
992         x_data.
993         (struct diagnostic_context): Change last_function to x_data.
994         (diagnostic_auxiliary_data): Replace with
995         diagnostic_context_auxiliary_data and
996         diagnostic_info_auxiliary_data.
997         (diagnostic_last_function_changed, diagnostic_set_last_function,
998         diagnostic_report_current_function): Move to tree-diagnostic.h.
999         (print_declaration, dump_generic_node, print_generic_stmt,
1000         print_generic_stmt_indented, print_generic_expr,
1001         print_generic_decl, debug_c_tree, dump_omp_clauses,
1002         print_call_name, debug_generic_expr, debug_generic_stmt,
1003         debug_tree_chain, default_tree_printer): Move to
1004         tree-pretty-print.h.
1005         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
1006         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
1007         gimple-pretty-print.h.
1008         * pretty-print.c: Don't include tree.h
1009         (pp_base_format): Don't handle %K here.
1010         (pp_base_tree_identifier): Move to tree-pretty-print.c.
1011         * pretty-print.h (text_info): Change abstract_origin to x_data.
1012         (pp_tree_identifier, pp_unsupported_tree,
1013         pp_base_tree_identifier): Move to tree-pretty-print.h.
1014         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
1015         tree-pretty-print.h: New files.
1016         * tree-pretty-print.c: Include tree-pretty-print.h.
1017         (percent_K_format): New.  Moved from pretty-print.c.
1018         (pp_base_tree_identifier): Move from pretty-print.c.
1019         * c-objc-common.c: Include tree-pretty-print.h.
1020         (c_tree_printer): Handle %K here.
1021         * langhooks.c: Include tree-diagnostic.h.
1022         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
1023         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
1024         (default_tree_printer): Handle %K using percent_K_format.
1025         (general_init): Use default_tree_diagnostic_starter.
1026         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
1027         (free_lang_data): Use default_tree_diagnostic_starter.
1028         * c-pretty-print.c: Include tree-pretty-print.h.
1029         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1030         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1031         * dwarf2out.c: Include tree-pretty-print.h.
1032         * except.c: Include tree-pretty-print.h.
1033         * gimple-pretty-print.c: Include tree-pretty-print.h and
1034         gimple-pretty-print.h.
1035         * gimplify.c: Include tree-pretty-print.h.
1036         * graphite-poly.c: Include tree-pretty-print.h and
1037         gimple-pretty-print.h.
1038         * ipa-cp.c: Include tree-pretty-print.h.
1039         * ipa-inline.c: Include gimple-pretty-print.h.
1040         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1041         * ipa-pure-const.c: Include gimple-pretty-print.h.
1042         * ipa-struct-reorg.c: Include tree-pretty-print.h and
1043         gimple-pretty-print.h.
1044         * ipa-type-escape.c: Include tree-pretty-print.h.
1045         * print-rtl.c: Include tree-pretty-print.h.
1046         * print-tree.c: Include gimple-pretty-print.h.
1047         * sese.c: Include tree-pretty-print.h.
1048         * tree-affine.c: Include tree-pretty-print.h.
1049         * tree-browser.c: Include tree-pretty-print.h.
1050         * tree-call-cdce.c: Include gimple-pretty-print.h.
1051         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1052         * tree-chrec.c: Include tree-pretty-print.h.
1053         * tree-data-ref.c: Include tree-pretty-print.h and
1054         gimple-pretty-print.h.
1055         * tree-dfa.c: Include tree-pretty-print.h.
1056         * tree-if-conv.c: Include tree-pretty-print.h and
1057         gimple-pretty-print.h.
1058         * tree-inline.c: Include tree-pretty-print.h.
1059         * tree-into-ssa.c: Include tree-pretty-print.h and
1060         gimple-pretty-print.h.
1061         * tree-nrv.c: Include tree-pretty-print.h.
1062         * tree-object-size.c: Include tree-pretty-print.h and
1063         gimple-pretty-print.h.
1064         * tree-outof-ssa.c: Include tree-pretty-print.h and
1065         gimple-pretty-print.h.
1066         * tree-parloops.c: Include tree-pretty-print.h and
1067         gimple-pretty-print.h.
1068         * tree-predcom.c: Include tree-pretty-print.h and
1069         gimple-pretty-print.h.
1070         * tree-scalar-evolution.c: Include tree-pretty-print.h and
1071         gimple-pretty-print.h.
1072         * tree-sra.c: Include tree-pretty-print.h.
1073         * tree-ssa-address.c: Include tree-pretty-print.h.
1074         * tree-ssa-alias.c: Include tree-pretty-print.h.
1075         * tree-ssa-ccp.c: Include tree-pretty-print.h and
1076         gimple-pretty-print.h.
1077         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
1078         * tree-ssa-copy.c: Include tree-pretty-print.h and
1079         gimple-pretty-print.h.
1080         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
1081         * tree-ssa-dce.c: Include tree-pretty-print.h and
1082         gimple-pretty-print.h.
1083         * tree-ssa-dom.c: Include tree-pretty-print.h and
1084         gimple-pretty-print.h.
1085         * tree-ssa-dse.c: Include gimple-pretty-print.h.
1086         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
1087         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
1088         * tree-ssa-live.c: Include tree-pretty-print.h and
1089         gimple-pretty-print.h.
1090         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
1091         gimple-pretty-print.h.
1092         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
1093         gimple-pretty-print.h.
1094         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
1095         gimple-pretty-print.h.
1096         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
1097         gimple-pretty-print.h.
1098         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
1099         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
1100         * tree-ssa-operands.c: Include tree-pretty-print.h and
1101         gimple-pretty-print.h.
1102         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
1103         gimple-pretty-print.h.
1104         * tree-ssa-pre.c: Include tree-pretty-print.h and
1105         gimple-pretty-print.h.
1106         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
1107         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
1108         gimple-pretty-print.h.
1109         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
1110         gimple-pretty-print.h.
1111         * tree-ssa-sink.c: Include gimple-pretty-print.h.
1112         * tree-ssa-ter.c: Include tree-pretty-print.h and
1113         gimple-pretty-print.h.
1114         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
1115         * tree-ssa.c: Include tree-pretty-print.h and
1116         gimple-pretty-print.h.
1117         * tree-stdarg.c: Include gimple-pretty-print.h.
1118         * tree-switch-conversion.c: Include gimple-pretty-print.h.
1119         * tree-tailcall.c: Include tree-pretty-print.h and
1120         gimple-pretty-print.h.
1121         * tree-vect-data-refs.c: Include tree-pretty-print.h and
1122         gimple-pretty-print.h.
1123         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
1124         gimple-pretty-print.h.
1125         * tree-vect-loop.c: Include tree-pretty-print.h and
1126         gimple-pretty-print.h.
1127         * tree-vect-patterns.c: Include gimple-pretty-print.h.
1128         * tree-vect-slp.c: Include tree-pretty-print.h and
1129         gimple-pretty-print.h.
1130         * tree-vect-stmts.c: Include tree-pretty-print.h and
1131         gimple-pretty-print.h.
1132         * tree-vectorizer.c: Include tree-pretty-print.h.
1133         * tree-vrp.c: Include tree-pretty-print.h and
1134         gimple-pretty-print.h.
1135         * value-prof.c: Include tree-pretty-print.h and
1136         gimple-pretty-print.h.
1137         * var-tracking.c: Include tree-pretty-print.h.
1138         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
1139         (tree-diagnostic.o): New dependencies.
1140         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
1141         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
1142         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
1143         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
1144         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
1145         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
1146         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
1147         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
1148         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
1149         tree-ssa-address.o, tree-ssa-loop-niter.o,
1150         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
1151         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
1152         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
1153         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
1154         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
1155         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
1156         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
1157         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
1158         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
1159         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
1160         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
1161         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
1162         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
1163         tree-switch-conversion.o, var-tracking.o, value-prof.o,
1164         cfgexpand.o, pretty-print.o): Update dependencies.
1165
1166 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
1167
1168         * tree-ssa-structalias.c: Remove tm_p.h from include.
1169
1170 2010-05-21  Jeff Law  <law@redhat.com>
1171
1172         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
1173
1174 2010-05-21  Jason Merrill  <jason@redhat.com>
1175
1176         * tree-eh.c (cleanup_is_dead_in): New.
1177         (lower_try_finally): Don't generate a dead cleanup region.
1178         (lower_cleanup): Likewise.
1179
1180 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1181
1182         PR debug/44223
1183         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
1184         unchain each use from the cyclic next_regno_use chain first.
1185
1186 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1187
1188         * real: Do not include gmp.h, mpfr.h, and mpc.h.
1189         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
1190         (real_value_negate, real_value_abs): New prototypes.
1191         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
1192         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
1193         new include file for interface between MPFR and REAL_VALUE_TYPE.
1194         * real.c: Include realmpfr.h.
1195         (real_arithmetic2): Remove legacy function.
1196         (real_value_negate): New.
1197         (real_value_abs): New.
1198         (mfpr_from_real, real_from_mpfr): Move from here...
1199         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
1200         * builtins.c: Include realmpfr.h.
1201         * fold-const.c: Include realmpfr.h.
1202         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
1203         (fold_negate_const): Likewise.
1204         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
1205         * toplev.c: Include realmpfr.h.
1206         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
1207         and real_value_negate.
1208         * fixed-value.c (check_real_for_fixed_mode): Likewise.
1209         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
1210         (vfp3_const_double_index): Likewise.
1211         (arm_print_operand): Likewise.
1212         * Makefile.in: Update dependencies.
1213
1214 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1215
1216         * config/s390/s390.c (override_options): Increase the default
1217         of max-completely-peel-times.
1218
1219 2010-05-21  Julian Brown  <julian@codesourcery.com>
1220             Mark Mitchell  <mark@codesourcery.com>
1221
1222         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
1223         sibling calls for Thumb-1.
1224         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
1225         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
1226         Thumb-2.
1227         (*call_insn, *call_value_insn): Don't use for Thumb-2.
1228         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
1229         for Thumb-2.
1230         (return): New expander.
1231         (*arm_return): New name for ARM return insn.
1232         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
1233
1234 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
1235
1236         * config.gcc (sparc64-*-rtems*): New target.
1237
1238 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1239
1240         * tree.c (build_function_decl_skip_args): Fix grammar.
1241         (build_function_type_list_1): Fix typos, adjust formatting.
1242
1243 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1244
1245         * tree.h: Include real.h and fixed-value.h as basic datatypes.
1246         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
1247         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
1248         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
1249         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
1250         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
1251         tree-pretty-print.c, tree-loop-distribution.c,
1252         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
1253         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
1254         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
1255         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
1256         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
1257         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
1258         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
1259         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
1260         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
1261         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
1262         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
1263         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
1264         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
1265         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
1266         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
1267         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
1268         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
1269         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
1270         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
1271         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
1272         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
1273         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
1274         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
1275         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
1276         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
1277         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
1278         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
1279         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
1280         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
1281         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
1282         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
1283         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
1284         config/score/score7.c, config/score/score.c, config/arm/arm.c,
1285         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
1286         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
1287         config/bfin/bfin.c: Clean up redundant includes.
1288         * Makefile.in: Update accordingly.
1289
1290 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1291
1292         PR middle-end/44204
1293         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
1294         statement has no arguments.
1295
1296 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
1297
1298         PR/44139
1299         * varasm.c (emutls_decl): Merge attributes to new decl.
1300
1301 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1302
1303         PR middle-end/44101
1304         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
1305         around the uniquized constructor if its type requires a conversion.
1306
1307 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1308
1309         PR debug/44205
1310         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
1311         at -O0 goto_locus of any of the incoming edges differs from
1312         goto_locus of outgoing edge, or gimple_location of any of the
1313         labels differs.
1314
1315 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
1316
1317         * ira.c (ira_non_ordered_class_hard_regs): Define.
1318         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
1319         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
1320         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
1321         cost of unaligned hard regs when allocating multi-reg pseudos.
1322
1323 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
1324
1325         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
1326         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
1327         for TARGET_NO_FLOAT.
1328         * config/mips/mips.c (mips_file_start): Expand conditional expression
1329         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
1330         (mips_override_options): Move -mno-float override -msoft-float and
1331         -mhard-float.
1332         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
1333         Condition(TARGET_SUPPORTS_NO_FLOAT).
1334         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
1335         __mips_no_float here.
1336         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
1337         (TARGET_SUPPORTS_NO_FLOAT): Define.
1338         * config/mips/sdemtk.opt: Delete.
1339
1340 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
1341
1342         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
1343
1344 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
1345
1346         PR target/43733
1347         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
1348         * configure: Regenerate.
1349         * config.in: Regenerate.
1350         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
1351         instead of sahf only for 64bit targets.
1352
1353 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1354
1355         PR debug/44178
1356         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
1357         setup_ref_regs for DEBUG_INSNs.
1358
1359 2010-05-20  Jan Hubicka  <jh@suse.cz>
1360
1361         PR middle-end/44197
1362         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
1363
1364 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
1365
1366         PR bootstrap/43870
1367         * df-scan.c (df_ref_compare): Stabilize sort.
1368
1369 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1370
1371         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
1372         argument.  Don't use DW_OP_piece if offset is non-zero,
1373         put offset into second DW_OP_bit_piece argument.
1374         (dw_sra_loc_expr): Adjust callers.  For memory expressions
1375         compute offset.
1376
1377 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
1378
1379         PR target/44202
1380         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
1381         settings for 16-bit-constant "addo" alternative.
1382
1383 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
1384
1385         * config/mips/mips-dsp.md (add<DSPV:mode>3,
1386         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
1387
1388         PR target/43764
1389         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
1390         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
1391         Use it.
1392
1393 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
1394
1395         * diagnostic.c (FLOAT, FFS): Don't undefine.
1396         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
1397         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
1398         include ordering.
1399
1400 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
1401
1402         * combine.c (propagate_for_debug): Call make_compound_operation
1403         on the source value.
1404         (try_combine): When implementing a split chosen by find_split_point,
1405         either copy i2src or set it to null.  Assert that i2src is not null
1406         before substituting into CALL_INSN_FUNCTION_USAGE.
1407
1408 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
1409
1410         * double-int.h (double_int_ior): New function.
1411         * tree.h (build_int_cst_wide_type): Remove.
1412         * tree.c (build_int_cst_wide_type): Remove.
1413         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
1414         of build_int_cst_wide_type.
1415         * stor-layout.c (set_sizetype): (Ditto.).
1416         * dojump.c (do_jump): Use build_int_cstu instead of
1417         build_int_cst_wide_type.
1418
1419 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1420
1421         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
1422         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
1423         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
1424         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
1425         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
1426         propagate the 'data' argument to copy_tree_r.
1427         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
1428         Propagate 'data' argument to walk_tree.
1429         (copy_if_shared): New function.
1430         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
1431         (unmark_visited): New function.
1432         (unshare_body): Call copy_if_shared instead of doing it manually.
1433         (unvisit_body): Call unmark_visited instead of doing it manually.
1434
1435 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
1436
1437         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
1438         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
1439         * hooks.c: Likewise.
1440         * target-def.h (TARGET_FOLD_BUILTIN): Define to
1441         hook_tree_tree_int_treep_bool_null.
1442         * target.h (struct gcc_target): Update signature of fold_builtin
1443         field.
1444         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
1445         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
1446         instead of the call expression.
1447         (fold_builtin_call_array): Pass n and argarray directly.
1448         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
1449         consing a list.
1450         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
1451         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
1452         `i' and use it in place of `arity'.
1453         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
1454         Dereference `args' directly.
1455         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
1456
1457 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1458
1459         * doc/sourcebuild.texi (Effective-Target Keywords): Document
1460         3dnow, sse3, sse2.
1461         (Directives): Document optional dg-require-effective-target
1462         selector.
1463
1464 2010-05-19  Richard Guenther  <rguenther@suse.de>
1465
1466         PR lto/44196
1467         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
1468
1469 2010-05-19  Richard Guenther  <rguenther@suse.de>
1470
1471         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
1472         * common.opt (fwhopr=): New.
1473         * opts.c (common_handle_option): Handle OPT_fwhopr.
1474         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
1475         * collect2.c (main): Match -fwhopr*.
1476         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
1477         Execute ltrans stage in parallel when jobs is bigger than 1.
1478
1479 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1480
1481         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
1482         pentiumpro on Solaris 8/x86 with Sun as.
1483         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
1484         hidden alias bug.
1485         (gcc_cv_as_ix86_quad): Check for .quad directive.
1486         * configure: Regenerate.
1487         * config.in: Regenerate.
1488         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
1489
1490 2010-05-19  Martin Jambor  <mjambor@suse.cz>
1491
1492         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
1493         also for indirect edges.  Actual printing moved...
1494         (ipa_print_node_jump_functions_for_edge): ...here.
1495         (ipa_compute_jump_functions): Renamed to
1496         ipa_compute_jump_functions_for_edge and made static.
1497         (ipa_compute_jump_functions): New function.
1498         (make_edge_direct_to_target): Check if the number of arguments on
1499         the newly direct edge is the same as the number of parametrs of
1500         the callee.
1501         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
1502         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
1503         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
1504         analysis functions unconditionally, call the new
1505         ipa_analyze_params_uses on the node instead of every edge.
1506
1507 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
1508
1509         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
1510         to tree.
1511         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
1512         also checks for a constant int vs.  non-constant but
1513         loop-invariant steps.
1514         (find_or_create_group): Change the sort algorithm to only consider
1515         steps that are constant ints.
1516         (idx_analyze_ref): Adopt code to handle a tree instead of a
1517         HOST_WIDE_INT for step.
1518         (gather_memory_references_ref): Handle tree instead of int and be
1519         prepared to see a NULL_TREE.
1520         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
1521         prefetches if the step cannot be calculated at compile time.
1522         (issue_prefetch_ref): Issue prefetches for non-constant but
1523         loop-invariant steps.
1524
1525 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1526
1527         Revert:
1528         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1529
1530         * tree.h (build_call_list): Remove.
1531         * tree.c (build_call_list): Remove.
1532
1533 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1534
1535         * tree.h (build_call_list): Remove.
1536         * tree.c (build_call_list): Remove.
1537
1538 2010-05-18  Jan Hubicka  <jh@suse.cz>
1539
1540         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
1541
1542 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
1543
1544         PR rtl-optimization/43332
1545         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
1546
1547 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
1548
1549         * tree.h (build_int_cstu): Implement as static inline.
1550         * tree.c (build_int_cstu): Remove function.
1551         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
1552         sign extended.
1553
1554 2010-05-18  Richard Guenther  <rguenther@suse.de>
1555
1556         PR lto/44143
1557         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
1558         (debug): Initialize from -save-temps.
1559         (collect_execute): Print command-line when verbose.
1560         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
1561         for ltrans invocation.  Produce -dumpbase flag again.
1562         (process_args): Remove.
1563         (main): Simplify.
1564         * collect2.c (maybe_run_lto_and_relink): Only pass object
1565         files to lto-wrapper.
1566         * gcc.c (LINK_COMMAND_SPEC): Likewise.
1567
1568 2010-05-18  Jan Hubicka  <jh@suse.cz>
1569
1570         * opts.c (decode_options): Do not disable whopr at ipa_cp.
1571         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
1572
1573 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
1574
1575         PR lto/44184
1576         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
1577         in a GIMPLE_ASM.
1578         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
1579         in a GIMPLE_ASM.
1580
1581 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
1582
1583         PR debug/41371
1584         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
1585         rtx_equal_p inline.
1586
1587 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
1588
1589         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
1590         lto-macho as lto_binary_reader.
1591
1592         * darwin.c (darwin_asm_named_section): Do not add assembler comment
1593         after .section directive; just print it before the directive instead.
1594
1595 2010-05-17  Jan Hubicka  <jh@suse.cz>
1596
1597         * cgraph.c (cgraph_create_virtual_clone): Only check
1598         versionable_function_p when not in wpa and checking is enabled.
1599         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
1600         there are no more functions to materialize.
1601
1602 2010-05-17  Jan Hubicka  <jh@suse.cz>
1603
1604         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
1605         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
1606         New functions.
1607         (output_cgraph): Call output_cgraph_opt_summary.
1608         (input_cgrpah): Call input_cgraph_opt_summary.
1609         (output_cgraph_opt_summary_p, output_node_opt_summary,
1610         input_node_opt_summary, input_cgraph_opt_section): New functions.
1611         * lto-section-in.c (lto_section_name): Add cgraphopt.
1612         * tree-inline.c (tree_function_versioning): Handle parm_num.
1613         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
1614         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
1615
1616 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
1617
1618         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
1619         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
1620         the insn to prefetch ratio heuristic to loops with known trip count.
1621
1622 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
1623
1624         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
1625         (schedule_prefetches): Do not generate a prefetch if the unroll factor
1626         is far from what is required by the prefetch.
1627
1628 2010-05-17  Jan Hubicka  <jh@suse.cz>
1629
1630         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
1631         (ipcp_estimate_growth): Likewise.
1632         (ipcp_const_param_count): Likewise.
1633         (ipcp_insert_stage): Likewise.
1634         * ipa-prop.c (visit_load_for_mod_analysis): New function.
1635         (visit_store_addr_for_mod_analysis): Set used flag.
1636         (ipa_detect_param_modifications): Set used flag for SSE params;
1637         update use of walk_stmt_load_store_addr_ops.
1638         (ipa_print_node_params): Print used flag.
1639         (ipa_write_node_info): Stream used flag.
1640         (ipa_read_node_info): Likewise.
1641         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
1642         (ipa_is_param_used): New function.
1643         (lto_ipa_fixup_call_notes): Remove unused declaration.
1644
1645 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1646
1647         PR target/44074
1648         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
1649         * configure: Regenerate.
1650         * config.in: Regenerate.
1651         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
1652         !HAVE_AS_IX86_REP_LOCK_PREFIX.
1653         Don't emit whitespace.
1654         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
1655         (*rep_movsi): Likewise.
1656         (*rep_movsi_rex64): Likewise.
1657         (*rep_movqi): Likewise.
1658         (*rep_movqi_rex64): Likewise.
1659         (*rep_stosdi_rex64): Likewise.
1660         (*rep_stossi): Likewise.
1661         (*rep_stossi_rex64): Likewise.
1662         (*rep_stosqi): Likewise.
1663         (*rep_stosqi_rex64): Likewise.
1664         (*cmpstrnqi_nz_1): Use {%;} after repz.
1665         (*cmpstrnqi_nz_rex_1): Likewise.
1666         (*cmpstrnqi_1): Likewise.
1667         (*cmpstrnqi_rex_1): Likewise.
1668         (*strlenqi_1): Use {%;} after repnz.
1669         (*strlenqi_rex_1): Likewise.
1670         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
1671         (*sync_compare_and_swap<mode>): Likewise.
1672         (sync_double_compare_and_swap<mode>): Likewise.
1673         (*sync_double_compare_and_swapdi_pic): Likewise.
1674         (sync_old_add<mode>): Likewise.
1675         (sync_add<mode>): Likewise.
1676         (sync_sub<mode>): Likewise.
1677         (sync_<code><mode>): Likewise.
1678
1679 2010-05-17  Martin Jambor  <mjambor@suse.cz>
1680
1681         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
1682         otr_token and polymorphic.
1683         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
1684         (cgraph_clone_edge): Copy the above fields.
1685         * tree.c (get_binfo_at_offset): New function.
1686         * tree.h (get_binfo_at_offset): Declare.
1687         * ipa-prop.h (enum jump_func_type): Added known_type jump function
1688         type, reordered items, updated comments.
1689         (union jump_func_value): Added base_type field, reordered fields.
1690         (enum ipa_lattice_type): Moved down in the file.
1691         (struct ipa_param_descriptor): New field polymorphic.
1692         (ipa_is_param_polymorphic): New function.
1693         * ipa-prop.c: Include gimple.h and gimple-fold.h.
1694         (ipa_print_node_jump_functions): Print known type jump functions.
1695         (compute_complex_pass_through): Renamed to...
1696         (compute_complex_assign_jump_func): this.
1697         (compute_complex_ancestor_jump_func): New function.
1698         (compute_known_type_jump_func): Likewise.
1699         (compute_scalar_jump_functions): Create known type and complex ancestor
1700         jump functions.
1701         (ipa_note_param_call): New parameter polymorphic, set the corresponding
1702         flag in the call note accordingly.
1703         (ipa_analyze_call_uses): Renamed to...
1704         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
1705         variable var only in the block where it is used.
1706         (ipa_analyze_virtual_call_uses): New function.
1707         (ipa_analyze_call_uses): Likewise.
1708         (combine_known_type_and_ancestor_jfs): Likewise.
1709         (update_jump_functions_after_inlining): Implemented handling of a
1710         number of new jump function types combination.
1711         (print_edge_addition_message): Removed.
1712         (make_edge_direct_to_target): New function.
1713         (try_make_edge_direct_simple_call): Likewise.
1714         (try_make_edge_direct_virtual_call): Likewise.
1715         (update_call_notes_after_inlining): Renamed to...
1716         (update_indirect_edges_after_inlining): this.  Moved edge creation for
1717         indirect calls to try_make_edge_direct_simple_call, also calls
1718         try_make_edge_direct_virtual_call for virtual calls.
1719         (ipa_print_node_params): Changed the header message.
1720         (ipa_write_jump_function): Stream also known type jump functions.
1721         (ipa_read_jump_function): Likewise.
1722         (ipa_write_indirect_edge_info): Stream new fields in
1723         cgraph_indirect_call_info.
1724         (ipa_read_indirect_edge_info): Likewise.
1725         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
1726         GIMPLE_FOLD_H.
1727
1728 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1729
1730         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
1731
1732 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1733
1734         * tree.h (CALL_EXPR_ARGS): Delete.
1735         (call_expr_arglist): Delete.
1736         * tree.c (call_expr_arglist): Delete.
1737         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
1738         targetm.fold_builtin.
1739         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
1740         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
1741         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
1742         arglist parameter.  Use CALL_EXPR_ARG.
1743         (picochip_expand_builtin_3op): Likewise.
1744         (picochip_expand_builtin_2opvoid): Likewise.
1745         (picochip_expand_array_get): Likewise.
1746         (picochip_expand_array_put): Likewise.
1747         (picochip_expand_array_testport): Likewise.
1748         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
1749         rather than arglist.
1750         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
1751         CALL_EXPR_ARGS.
1752         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
1753         than TREE_VALUE and TREE_CHAIN.
1754         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
1755         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
1756         the arglist.
1757
1758 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
1759
1760         PR bootstrap/42347
1761         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
1762         to have no fallthru edge.
1763
1764         PR middle-end/44102
1765         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
1766         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
1767         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
1768         add BARRIER after previous bb if needed.
1769
1770 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1771
1772         * tree.c (build_function_type_list_1): Remove bogus assert condition.
1773
1774 2010-05-17  Alan Modra  <amodra@gmail.com>
1775
1776         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
1777         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
1778         with copy_reg rtx param.
1779         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
1780         Correct cases where code for ABI_V4 did not initialise the reg
1781         used to access frame.  Also leave frame_reg_rtx as sp for large
1782         frames that save no regs.
1783
1784 2010-05-17  Martin Jambor  <mjambor@suse.cz>
1785
1786         PR middle-end/44133
1787         * tree-sra.c (create_access_replacement): New parameter rename, mark
1788         the replaement for renaming only when it is true.
1789         (get_access_replacement): Pass true in the rename parameter of
1790         create_access_replacement.
1791         (get_unrenamed_access_replacement): New function.
1792         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
1793         replacement declaration from it.
1794
1795 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
1796
1797         * function.c (try_fit_stack_local, add_frame_space): New static
1798         functions.
1799         (assign_stack_local_1): Use them.  Look for opportunities to use
1800         space previously wasted on alignment.
1801         * function.h (struct frame_space): New.
1802         (struct rtl_data): Add FRAME_SPACE_LIST member.
1803         * reload1.c (something_was_spilled): New static variable.
1804         (alter_reg): Set it.
1805         (reload): Test it in addition to testing if the frame size changed.
1806
1807 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
1808
1809         * config/s390/s390.c: Define sane prefetch settings and activate
1810         flag_prefetch_loop_arrays on -O3.
1811         * config/s390/s390.h: Declare that read can use write prefetch.
1812
1813 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
1814
1815         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
1816         build.
1817
1818 2010-05-16  Jan Hubicka  <jh@suse.cz>
1819
1820         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
1821         function body; do not check stdarg field of struct function.
1822
1823 2010-05-16  Jan Hubicka  <jh@suse.cz>
1824
1825         * cgraph.c (dump_cgraph_node): Dump versionable flag.
1826         * cgraph.h (cgraph_local_info): Add versionable flag.
1827         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
1828         (ipcp_versionable_function_p): Use it.
1829         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
1830         versionable flag.
1831
1832 2010-05-16  Jan Hubicka  <jh@suse.cz>
1833
1834         * cgraph.c (cgraph_clone_node): Take decl argument and insert
1835         clone into hash when it is different from orig.
1836         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
1837         * cgraph.h (cgraph_clone_node): Update prototype.
1838         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
1839         (lto_cgraph_encoder_delete): Delete body map.
1840         (lto_cgraph_encoder_size): Move to header.
1841         (lto_cgraph_encoder_encode_body_p,
1842         lto_set_cgraph_encoder_encode_body): New.
1843         (lto_output_node): Do not take written_decls argument; output clone_of
1844         pointer.
1845         (add_node_to): Add include_body_argument; call
1846         lto_set_cgraph_encoder_encode_body on master of the clone.
1847         (add_references): Update use of add_node_to.
1848         (compute_ltrans_boundary): Likewise.
1849         (output_cgraph): Do not create written_decls bitmap.
1850         (input_node): Take nodes argument; stream in clone_of correctly.
1851         (input_cgraph_1): Update use of input_node.
1852         * lto-streamer-out.c (lto_output): Use encoder info to decide
1853         what bodies to output.
1854         * ipa-inline.c (cgraph_clone_inlined_nodes,
1855         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
1856         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
1857         (lto_cgraph_encoder_size): Define here.
1858         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
1859         Declare.
1860
1861 2010-05-16  Richard Guenther  <rguenther@suse.de>
1862
1863         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
1864         -fipa-type-escape.
1865         * ipa-type-escape.c (gate_type_escape_vars): Run when
1866         -fipa-struct-reorg runs.
1867         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
1868         * common.opt (fipa-type-escape): Remove.
1869
1870 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
1871
1872         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
1873         (decode_options): Likewise.
1874         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
1875
1876 2010-05-16  Jan Hubicka  <jh@suse.cz>
1877
1878         * ipa.c (function_and_variable_visibility): Also bring local all
1879         aliases.
1880
1881 2010-05-16  Richard Guenther  <rguenther@suse.de>
1882
1883         * alias.c (nonoverlapping_memrefs_p): Remove use of
1884         IPA type-escape information.
1885
1886 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
1887
1888         * c-common.c (c_common_reswords): Add _Static_assert for C.
1889         * c-parser.c (c_token_starts_declaration,
1890         c_parser_next_token_starts_declaration,
1891         c_parser_static_assert_declaration_no_semi,
1892         c_parser_static_assert_declaration): New.
1893         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
1894         Handle static assertions if static_assert_ok.
1895         (c_parser_external_declaration, c_parser_declaration_or_fndef,
1896         c_parser_compound_statement_nostart, c_parser_label,
1897         c_parser_for_statement, c_parser_objc_methodprotolist,
1898         c_parser_omp_for_loop): All callers of
1899         c_parser_declaration_or_fndef changed.
1900         (c_parser_struct_declaration): Handle static assertions.
1901         (c_parser_compound_statement_nostart): Use
1902         c_parser_next_token_starts_declaration and
1903         c_token_starts_declaration to detect start of declarations.
1904         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
1905         Likewise.
1906
1907 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
1908
1909         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
1910         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
1911         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1912         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1913         (mmix_function_outgoing_value): Rename to...
1914         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
1915         (mmix_function_value_regno_p): Make static.
1916         (mmix_libcall_value): New function.
1917         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
1918         mmix_function_value_regno_p): Remove declaration.
1919
1920 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
1921
1922         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
1923         BUILT_IN_ALLOCA if stack checking is enabled.
1924
1925 2010-05-16  Richard Guenther  <rguenther@suse.de>
1926
1927         * var-tracking.c (vars_copy_1): Inline ...
1928         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
1929         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
1930         (variable_merge_over_cur): Adjust.  Merge asserts.
1931         (variable_merge_over_src): Likewise.
1932         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
1933         (variable_post_merge_new_vals): Merge asserts.
1934         (variable_post_merge_perm_vals): Likewise.
1935         (find_mem_expr_in_1pdv): Likewise.
1936         (dataflow_set_different_value): Remove.
1937         (onepart_variable_different_p): Merge asserts.
1938         (variable_different_p): Likewise.
1939         (dataflow_set_different_1): Inline ...
1940         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
1941         (emit_notes_for_differences_1): Merge asserts.
1942
1943 2010-05-16  Richard Guenther  <rguenther@suse.de>
1944
1945         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
1946         * optabs.c (libfunc_decl_hash): Likewise.
1947         * varasm.c (emutls_decl): Likewise.
1948
1949 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
1950
1951         * c-decl.c: Don't include gimple.h.
1952         (merge_decls): Do not copy gimple_body.
1953
1954 2010-05-15  Jason Merrill  <jason@redhat.com>
1955
1956         * c.opt: Add -fnothrow-opt.
1957
1958 2010-05-15  Jan Hubicka  <jh@suse.cz>
1959
1960         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
1961         analyzed.
1962         * passes.c (ipa_write_summaries): Write all analyzed nodes.
1963
1964 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
1965
1966         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
1967         * Makefile.in: Add it.
1968         Fix all other Makefile dependencies for changes below.
1969         * tree.h: Include it instead of defining VEC primitives here.
1970         * gimple.h: Likewise.
1971         * rtl.h: Likewise.
1972         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
1973         * except.h: Include vecir.h, break dependence on tree.h.
1974
1975         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
1976         Move from here...
1977         * tree-iterator.c: ...to here.
1978         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
1979
1980         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
1981         tm_p.h.
1982         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
1983         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
1984         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
1985         tree-mudflap.h, and target.h.
1986         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
1987         predict.h, tree-inline.h, gimple.h, and langhooks.h.
1988         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
1989         Add FIXME for why gimple.h is still included (should be unnecessary
1990         since GCC 4.5 gimplification unit-at-a-time).
1991         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
1992         * c-pragma.c: Add FIXME for why function.h needs to be included just
1993         for cfun, at front-end level.
1994         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
1995         Do not include ggc.h, but include vecprim.h for VEC(char).
1996         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
1997         Explain why target.h is included.
1998         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
1999         Explain why gimple.h is included.
2000         * c-ppoutput.c: Do not include tm.h.
2001         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
2002         * c-parses.c: Explain why rtl.h is included, and that this (and only
2003         this) is also why tm.h must be included.
2004         Do not include except.h.
2005         * c-lang.c: Do not include ggc.h.
2006
2007 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
2008
2009         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
2010
2011 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
2012
2013         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
2014         unions by default if those structs and unions have no tags.  Do
2015         not condition anonymous struct and unions handling on flag_iso.
2016         Allow anonymous structs and unions for C1X.
2017         (finish_struct): Do not diagnose lack of named fields when
2018         anonymous structs and unions present for C1X.  Accept flexible
2019         array members in structure with anonymous structs or unions but no
2020         directly named fields.
2021         * doc/extend.texi (Unnamed Fields): Update.
2022
2023 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
2024
2025         * gimple.h (compare_field_offset): Rename into...
2026         (gimple_compare_field_offset): ...this.
2027         * gimple.c (compare_field_offset): Rename into...
2028         (gimple_compare_field_offset): ...this.  Compare the full access if
2029         the offset is self-referential.
2030         (gimple_types_compatible_p): Adjust for above renaming.
2031         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
2032         DECL_NONADDRESSABLE_P flag of fields before merging them.
2033
2034 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
2035
2036         * tree.h (ctor_to_list): Delete.
2037         * tree.c (ctor_to_list): Delete.
2038
2039 2010-05-15  Jan Hubicka  <jh@suse.cz>
2040
2041         * ipa-reference.c: Include toplev.h
2042         (is_proper_for_analysis): Only add to all_module_statics
2043         if it is allocated.
2044         (write_node_summary_p, stream_out_bitmap,
2045         ipa_reference_write_optimization_summary,
2046         ipa_reference_read_optimization_summary): New.
2047         (struct ipa_opt_pass_d pass_ipa_reference): Add
2048         optimization summary streaming.
2049         * lto-cgraph.c (referenced_from_this_partition_p,
2050         reachable_from_this_partition_p): New functions.
2051         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2052         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
2053         * opts.c (decode_options): Enable ipa_reference.
2054         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
2055         * lto-streamer.h (referenced_from_this_partition_p,
2056         reachable_from_this_partition_p): Declare.
2057
2058 2010-05-15  Richard Guenther  <rguenther@suse.de>
2059
2060         PR tree-optimization/44038
2061         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
2062         taking the address of a V_C_E of a constant.
2063
2064 2010-05-14  Jan Hubicka  <jh@suse.cz>
2065
2066         * tree.h (memory_identifier_string): Remove.
2067         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
2068         (ipa_reference_global_vars_info_d): Remove statics_not_read and
2069         statics_not_written.
2070         (ipa_reference_optimization_summary_d): New structure.
2071         (ipa_reference_optimization_summary_t): New type and vector.
2072         (ipa_reference_vars_info_d): Embedd structures instead of using
2073         pointers.
2074         (reference_vars_to_consider): Remove out of GGC space.
2075         (module_statics_escape): Remove.
2076         (global_info_obstack): Rename to ...
2077         (optimization_summary_obstack): ... this one.
2078         (initialization_status_t): Remove.
2079         (memory_identifier_string): Remove.
2080         (get_reference_vars_info): Fix indenting.
2081         (set_reference_vars_info): Likewise.
2082         (get_reference_optimization_summary): New.
2083         (set_reference_optimization_summary): New.
2084         (get_global_reference_vars_info): Remove.
2085         (ipa_reference_get_read_global): Remove.
2086         (ipa_reference_get_written_global): Remove.
2087         (ipa_reference_get_not_read_global): Update.
2088         (ipa_reference_get_not_written_global): Update.
2089         (is_proper_for_analysis): Outlaw addressable.
2090         (propagate_bits): Update for new datastructures.
2091         (analyze_variable): Remove.
2092         (init_function_info): Update for new datastructures.
2093         (clean_function_local_data): Remove.
2094         (clean_function): Remove.
2095         (copy_global_bitmap): Use optimizations_summary_obstack.
2096         (duplicate_node_data): Duplicate optimization summary only.
2097         (remove_node_data): Remove optimization summary only.
2098         (generate_summary): Do not analyze variables; do not compute
2099         module_statics_escape; do not prune solutions by it.
2100         (read_write_all_from_decl): Fix typos in comments.
2101         (propagate): Doscover readonly and nonaddressable first;
2102         update for new datastructures; share global bitmaps.
2103         * ipa-reference.h (ipa_reference_get_read_global,
2104         ipa_reference_get_written_global): Remove.
2105         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
2106         * Makefile.in: Remove ipa-refereference from GT files.
2107
2108 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2109
2110         PR debug/44112
2111         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
2112         for all SYMBOL_REF_DECLs.
2113
2114 2010-05-14  Jan Hubicka  <jh@suse.cz>
2115
2116         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
2117         (varpool_all_refs_explicit_p): New inline function.
2118         * ipa-reference.c: Update comment.
2119         (module_statics_written): Remove.
2120         (get_static_decl): Remove.
2121         (ipa_init): Do not initialize module_statics_written.
2122         (analyze_function): Likewise.
2123         (generate_summary): Likewise; do not compute module_statics_readonly
2124         and do not update variable flags.
2125         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
2126         * ipa.c: Inlucde flags.h
2127         (cgraph_local_node_p): New.
2128         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
2129         promote functions to local.
2130         (ipa_discover_readonly_nonaddressable_vars): New function.
2131         (function_and_variable_visibility): Use cgraph_local_node_p.
2132         * varpool.c (varpool_finalize_decl): Set force_output for
2133         DECL_PRESERVE_P vars.
2134
2135 2010-05-14  Jan Hubicka  <jh@suse.cz>
2136
2137         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
2138
2139 2010-05-14  Richard Guenther  <rguenther@suse.de>
2140
2141         PR tree-optimization/44119
2142         * tree-ssa-pre.c (eliminate): Properly mark replacement of
2143         a PHI node necessary.
2144
2145 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
2146
2147         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
2148
2149 2010-05-14  Jason Merrill  <jason@redhat.com>
2150
2151         PR c++/44127
2152         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
2153         (gimple_call_set_nothrow): New.
2154         * gimple.c (gimple_build_call_from_tree): Call it.
2155         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
2156
2157         PR c++/44127
2158         * gimplify.c (gimplify_seq_add_stmt): No longer static.
2159         * gimple.h: Declare it.
2160         * gimple.c (gimple_build_eh_filter): No ops.
2161
2162 2010-05-14  Jan Hubicka  <jh@suse.cz>
2163
2164         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
2165         nodes already in queue.
2166         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
2167         re-enqueueing node.
2168
2169 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2170
2171         PR debug/44136
2172         * cfgexpand.c (expand_debug_expr): If non-memory op0
2173         has BLKmode, return NULL.
2174
2175 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
2176
2177         * config.gcc: Add support for --with-cpu option for bdver1.
2178         * config/i386/i386.h (TARGET_BDVER1): New macro.
2179         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
2180         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2181         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
2182         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2183         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
2184         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
2185         (processor_type): Add PROCESSOR_BDVER1.
2186         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
2187         processor_type in config/i386/i386.h.
2188         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
2189         movaps <reg, reg> instead of movapd <reg, reg> when replacing
2190         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
2191         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
2192         to emit packed xor instead of packed double/packed integer
2193         xor for SSE and AVX when moving a zero value.
2194         * config/i386/sse.md: Add check for
2195         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
2196         movapd/movdqa for SSE and AVX.
2197         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
2198         single logical operations i.e and, or and xor instead of packed double
2199         logical operations for SSE and AVX.
2200         * config/i386/i386-c.c (ix86_target_macros_internal):
2201         Add PROCESSOR_BDVER1.
2202         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
2203         (has_fma4, has_xop): New.
2204         * config/i386/i386.c (bdver1_cost): New variable.
2205         (m_BDVER1): New macro.
2206         (m_AMD_MULTIPLE): Add m_BDVER1.
2207         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
2208         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
2209         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
2210         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
2211         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
2212         x86_tune_sse_partial_reg_dependency,
2213         x86_tune_sse_unaligned_load_optimal,
2214         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
2215         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
2216         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
2217         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
2218         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
2219         Enable/disable for bdver1.
2220         (processor_target_table): Add bdver1_cost.
2221         (cpu_names): Add bdver1.
2222         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
2223          processor_alias_table.
2224         (ix86_expand_vector_move_misalign): Change.
2225         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
2226         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
2227         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
2228         of movupd/movdqu for SSE and AVX.
2229         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
2230         (ix86_tune_adjust_cost): Add code for bdver1.
2231         (standard_sse_constant_opcode): Add check for
2232         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
2233         of packed double xor for SSE and AVX.
2234
2235 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
2236
2237         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
2238         result to unsigned.
2239
2240 2010-05-14  Tristan Gingold  <gingold@adacore.com>
2241
2242         * toplev.c (default_debug_hooks): Remove this variable.
2243         (process_options): Remove assignments to default_debug_hooks.
2244
2245 2010-05-14  Martin Jambor  <mjambor@suse.cz>
2246
2247         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
2248         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
2249         * langhooks.h (struct lang_hooks_for_decls): Removed field
2250         fold_obj_type_ref.
2251         * tree.c (free_lang_data): Remove assignment to
2252         lang_hooks.fold_obj_type_ref.
2253         * tree.def (OBJ_TYPE_REF): Update comment.
2254
2255 2010-05-14  Richard Guenther  <rguenther@suse.de>
2256
2257         PR tree-optimization/44124
2258         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
2259
2260 2010-05-14  Alan Modra  <amodra@gmail.com>
2261
2262         PR target/44075
2263         * config/rs6000/rs6000.c (struct machine_function): Reorder
2264         fields for better packing.  Add lr_save_state.
2265         (rs6000_ra_ever_killed): Return lr_save_state if set.
2266         (rs6000_emit_eh_reg_restore): Set lr_save_state.
2267
2268 2010-05-13  Jan Hubicka  <jh@suse.cz>
2269
2270         * varpool.c (decide_is_variable_needed): Drop code checking
2271         TREE_SYMBOL_REFERENCED.
2272
2273 2010-05-13  Jan Hubicka  <jh@suse.cz>
2274
2275         * final.c (output_addr_const): Do not call mark_decl_referenced.
2276         * cgraphunit.c (process_function_and_variable_attributes): Use
2277         mark_needed_node dirrectly.
2278         (assemble_thunk): Do not call mark_decl_referenced.
2279
2280 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
2281
2282         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
2283
2284 2010-05-13  Jeff Law  <law@redhat.com>
2285
2286         * ira-conflicts.c (print_allocno_conflicts): New function broken out
2287         from...
2288         (print_conflicts): Call print_allocno_conflicts.
2289
2290 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2291
2292         PR debug/44104
2293         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
2294         if it is NULL.
2295
2296 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
2297
2298         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
2299         t-mingw-w64 or t-mingw-w32 for multilib configuration.
2300         * config/i386/t-mingw-w32: New.
2301         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
2302
2303 2010-05-13  Martin Jambor  <mjambor@suse.cz>
2304
2305         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
2306         gimple-fold.c).
2307         * gimple-fold.c (get_base_binfo_for_type): New function.
2308         (gimple_get_relevant_ref_binfo): Likewise.
2309         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2310         (gimple_fold_obj_type_ref): Likewise.
2311         (fold_gimple_call): Simplify condition for folding virtual calls
2312         and call gimple_fold_obj_type_ref.
2313         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
2314         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2315
2316 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
2317
2318         * config/rs6000/rs6000-protos.h
2319         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
2320         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
2321         (rs6000_debug_mode_dependent_address)
2322         (rs6000_mode_dependent_address_ptr): Likewise.
2323
2324 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2325
2326         PR debug/43983
2327         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
2328         by SRA.
2329         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
2330         * tree-sra.c (create_access_replacement): Call unshare_expr before
2331         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
2332         * dwarf2out.c: Include tree-flow.h.
2333         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
2334         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
2335         Handle DW_OP_bit_piece.
2336         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
2337         construct_piece_list, adjust_piece_list): New functions.
2338         (add_var_loc_to_decl): Handle SRA optimized variables.
2339         Adjust for var_loc_note to loc field renaming.
2340         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
2341         in VAR_LOCATION note.
2342         (new_loc_descr_op_bit_piece): New function.
2343         (dw_sra_loc_expr): New function.
2344         (dw_loc_list): Use it.  Don't handle the last range after the
2345         loop, handle it inside of the loop.  Adjust for var_loc_note
2346         to loc field renaming.
2347         (add_location_or_const_value_attribute): Only special case
2348         single entry loc lists if loc is NOTE_P.  Adjust for
2349         var_loc_note to loc field renaming.
2350         (dwarf2out_var_location): Don't set newloc->var_loc_note
2351         and newloc->next here.
2352
2353 2010-05-12  Jan Hubicka  <jh@suse.cz>
2354
2355         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
2356         flag.
2357         * cgraph.h (cgraph_only_called_directly_p,
2358         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
2359         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
2360         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
2361         (assemble
2362         * ipa.c (cgraph_remove_unreachable_nodes): Use
2363         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
2364         flags.
2365         * tree-inline.c (copy_bb): Check address_taken flag.
2366         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
2367         externally_visible flag.
2368
2369 2010-05-12  Jason Merrill  <jason@redhat.com>
2370
2371         PR bootstrap/44048
2372         PR target/44099
2373         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
2374         * sdbout.c (plain_type_1): Likewise.
2375         * dwarf2out.c (is_base_type): Likewise.
2376         (gen_type_die_with_usage): Likewise.  Generate
2377         DW_TAG_unspecified_type for any LANG_TYPE.
2378
2379 2010-05-12  Jan Hubicka  <jh@suse.cz>
2380
2381         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
2382         indrect edges too.
2383         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
2384         (cgraph_clone_edge): Update.
2385         (cgraph_node_remove_callees): Remove indirect calls too.
2386         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
2387         (cgraph_create_indirect_edge): Update prototype.
2388         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
2389         is_proper_for_analysis.
2390         (add_new_function, visited_nodes, function_insertion_hook_holder,
2391         get_local_reference_vars_info, mark_address_taken, mark_address,
2392         mark_load, mark_store, check_asm_memory_clobber, check_call,
2393         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
2394         (ipa_init): Do not initialize visited_nodes;
2395         function_insertion_hook_holder.
2396         (analyze_variable): Rewrite.
2397         (analyze_function): Rewrite.
2398         (copy_local_bitmap): Remove.
2399         (duplicate_node_dat): Do not duplicate local info.
2400         (generate_summary): Simplify to only walk cgraph.
2401         (write_node_summary_p, ipa_reference_write_summary,
2402         ipa_reference_read_summary): Remove.
2403         (propagate): Do not remove function insertion;
2404         generate summary.
2405         (pass_ipa_reference): NULLify summary handling fields.
2406         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
2407         (input_edge): Input ecf_flags.
2408         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
2409         (update_indirect_edges_after_inlining): Ignore edges with unknown
2410         param.
2411
2412 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
2413
2414         * implicit-zee.c: New file.
2415         * tree-pass.h (pass_implicit_zee): Declare.
2416         * passes.c (init_optimization_passes): Add zee pass.
2417         * common.opt (fzee): New flag.
2418         * timevar.def (TV_ZEE): Define.
2419         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
2420         and beyond.
2421         * Makefile.in (implicit-zee.o): Add new build file.
2422
2423 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2424             Nathan Froyd  <froydnj@codesourcery.com>
2425
2426         * c-common.c (sync_resolve_params): Remove write-only variable.
2427
2428 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
2429
2430         * target.h (struct gcc_target): Add mode_dependent_address_p field.
2431         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2432         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
2433         * targhooks.c (default_mode_dependent_address_p): New function.
2434         * targhooks.h (default_mode_dependent_address_p): Declare function.
2435         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2436         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
2437         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
2438         target hook. Change return type to bool.
2439         * recog.h (mode_dependent_address_p): Change return type to bool.
2440
2441 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2442             Nathan Froyd  <froydnj@codesourcery.com>
2443
2444         * tree-mudflap.c (build_function_type_0, build_function_type_1,
2445         build_function_type_2, build_function_type_3): Remove.
2446         (mudflap_init): Use build_function_type_list.
2447
2448 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2449             Nathan Froyd  <froydnj@codesourcery.com>
2450
2451         * coverage.c (build_fn_info_value): Call build_constructor instead of
2452         build_constructor_from_list.
2453         (build_ctr_info_value): Likewise.
2454         (build_gcov_info): Likewise.
2455
2456 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
2457
2458         * tree.c (build_constructor): Compute TREE_CONSTANT for the
2459         resultant constructor.
2460         (build_constructor_single): Don't set TREE_CONSTANT.
2461         (build_constructor_from_list): Don't compute TREE_CONSTANT.
2462
2463 2010-05-12  Jan Hubicka  <jh@suse.cz>
2464
2465         * cgraph.h (struct varpool_node): Add aux.
2466         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
2467         * varpool.c (varpool_remove_node): Do not remove initializer.
2468         (varpool_reset_queue): Export.
2469         (varpool_finalize_decl): Volatile vars are forced to be output.
2470         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
2471         replaced decl.
2472         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
2473         process_references, varpool_can_remove_if_no_refs): New functions.
2474         (cgraph_remove_unreachable_nodes): Handle variables too.
2475
2476 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2477
2478         PR target/44088
2479         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
2480
2481 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
2482
2483         PR middle-end/44085
2484         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
2485         change value of ORT_TASK.
2486         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
2487         (omp_notice_threadprivate_variable): New function.
2488         (omp_notice_variable): Call it for threadprivate variables.
2489         If enclosing ctx is a task, print enclosing task rather than
2490         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
2491         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
2492         if task has untied clause.
2493
2494         PR debug/42278
2495         * dwarf2out.c (base_type_die): Don't add name attribute here.
2496         (modified_type_die): Instead of sizetype use
2497         its underlying original type.  If a DW_TAG_base_type doesn't
2498         have name added, add __unknown__.
2499         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
2500         always call force_type_die instead.
2501
2502 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
2503
2504         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
2505         for __stack_chk_guard.
2506
2507 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2508
2509         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
2510         don't call start_source_file debug hook here...
2511         (finish_options): ... but here, after outputting predefined and
2512         command line defines and undefs.
2513
2514         PR middle-end/44071
2515         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
2516         no fallthru edge.
2517         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
2518         optimizing away empty bb with no successors, move over its
2519         footer chain to fallthru predecessor.
2520         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
2521         (rtl_split_edge): For asm goto call patch_jump_insn even if
2522         splitting fallthru edge.
2523
2524         PR c++/44059
2525         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
2526         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
2527         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
2528         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
2529         on DW.ref.* decls.
2530
2531         PR c++/44062
2532         * c-parser.c (c_parser_expression): Mark LHS of a comma
2533         expression as read if it is a decl, handled component or
2534         COMPOUND_EXPR with that on the RHS.
2535         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
2536         if it is a decl or handled component.
2537
2538 2010-05-11  Jan Hubicka  <jh@suse.cz>
2539
2540         * lto-symtab.c (lto_symtab_free): New function.
2541         * lto-streamer.h (lto_symtab_free): Declare.
2542
2543 2010-05-11  Jan Hubicka  <jh@suse.cz>
2544
2545         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
2546         that if function is needed it is reachable.
2547         (lto_output_node): See if it the function is reachable or referenced.
2548         (output_cgraph): Update call of lto_output_node.
2549         * lto-streamer.h (reachable_from_other_partition_p): Declare.
2550
2551 2010-05-11  Jan Hubicka  <jh@suse.cz>
2552
2553         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
2554         Mark as used.
2555
2556 2010-05-11  Jan Hubicka  <jh@suse.cz>
2557
2558         PR tree-optimize/44063
2559         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
2560         queue.
2561         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
2562         limits.
2563         (estimate_function_body_sizes): Compute sizes even when disregarding.
2564
2565 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
2566
2567         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
2568
2569 2010-05-11  Jan Hubicka  <jh@suse.cz>
2570
2571         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
2572         into every boundary.
2573
2574 2010-05-11  Jan Hubicka  <jh@suse.cz>
2575
2576         * matrix-reorg.c (matrix_reorg): Rebuild edges.
2577
2578 2010-05-11  Jan Hubicka  <jh@suse.cz>
2579
2580         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
2581         lto_streamer_cache_delete): Put nodes into heap.
2582         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
2583         heap.
2584
2585 2010-05-11  Jan Hubicka  <jh@suse.cz>
2586
2587         * cgraphbuild.c (cgraph_rebuild_references): New.
2588         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
2589         out extern inlines.
2590         * cgraph.h (cgraph_rebuild_references): Declare.
2591         * tree-inline.c (tree_function_versioning): Use it.
2592         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
2593
2594 2010-05-11  Jan Hubicka  <jh@suse.cz>
2595
2596         * cgraph.c: Include ipa-utils.h
2597         (cgraph_create_virtual_clone): Update references.
2598         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
2599
2600 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2601
2602         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
2603         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
2604         cache size.
2605
2606 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2607
2608         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
2609
2610 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2611
2612         * gcc.c (execute): For -### don't quote arguments that
2613         contain just alphanumerics and _/-. characters.
2614         * doc/invoke.texi: Document that change for -###.
2615
2616         PR debug/44023
2617         * df-problems.c (struct dead_debug): Add to_rescan field.
2618         (dead_debug_init): Clear to_rescan field.
2619         (dead_debug_finish): Rescan all debug insns in to_rescan
2620         bitmap and free the bitmap.
2621         (dead_debug_insert_before): Instead of rescanning debug insns
2622         immediately queue their rescanning until dead_debug_finish.
2623         (df_note_bb_compute): After dead_debug_add do continue instead
2624         of break.
2625
2626 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
2627
2628         PR debug/44028
2629         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
2630         clear also INSN_REG_USE_LIST.
2631
2632 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2633
2634         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
2635
2636 2010-05-10  Jan Hubicka  <jh@suse.cz>
2637
2638         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
2639         commited change.
2640
2641 2010-05-10  Jan Hubicka  <jh@suse.cz>
2642
2643         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
2644         Allocate encoders.
2645         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
2646         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
2647         (lto_streamer_cache_create): Init alloc pool.
2648         (lto_streamer_cache_delete): Free alloc pool.
2649         * lto-streamer.h: Include alloc pool.
2650         (lto_streamer_cache_d): Use alloc pool.
2651         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
2652
2653 2010-05-10  Jan Hubicka  <jh@suse.cz>
2654
2655         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
2656         * cgraphbuild.c: Include except.h
2657         (record_type_list, record_eh_tables): New function.
2658         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
2659
2660 2010-05-10  Jan Hubicka  <jh@suse.cz>
2661
2662         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
2663         __frame_dummy_init_array_entry, force_to_data): Attribute as used
2664         rather than unused.
2665
2666 2010-05-10  Michael Matz  <matz@suse.de>
2667
2668         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
2669         (can_reassociate_p): Use FLOAT_TYPE_P.
2670         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
2671         (vect_force_simple_reduction): ... this.
2672         * tree-parloops.c (gather_scalar_reductions): Use
2673         vect_force_simple_reduction.
2674         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
2675         vect_is_simple_reduction, add modify argument, if true rewrite
2676         "a-b" into "a+(-b)".
2677         (vect_is_simple_reduction, vect_force_simple_reduction): New
2678         functions.
2679         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
2680
2681 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
2682             Vladimir Makarov  <vmakarov@redhat.com>
2683
2684         PR rtl-optimization/44012
2685         * ira-build.c (remove_unnecessary_allocnos): Nullify
2686         regno_allocno_map of the removed allocno.
2687
2688 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2689
2690         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
2691         to /dev/null.
2692         * configure: Regenerate.
2693
2694 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2695
2696         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
2697         unused.
2698         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
2699         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
2700         support in Sun ld.
2701         * configure: Regenerate.
2702
2703 2010-05-10  Richard Guenther  <rguenther@suse.de>
2704
2705         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
2706         marked if the entry identifier is marked.
2707
2708 2010-05-10  Richard Guenther  <rguenther@suse.de>
2709
2710         * c-common.c (struct c_common_attributes): Add fnspec attribute.
2711         (handle_fnspec_attribute): New function.
2712         * gimple.h (gimple_call_return_flags): Declare.
2713         (gimple_call_arg_flags): Likewise.
2714         * gimple.c (gimple_call_arg_flags): New function.
2715         (gimple_call_return_flags): Likewise.
2716         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
2717         New argument flags.
2718         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
2719         return value flags.
2720         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
2721         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
2722         main work to ...
2723         (make_heapvar_for): ... this new function.
2724         (handle_rhs_call): Handle fnspec attribute argument specifiers.
2725         (handle_lhs_call): Likewise.
2726         (find_func_aliases): Adjust.
2727
2728 2010-05-10  Richard Guenther  <rguenther@suse.de>
2729
2730         PR tree-optimization/44050
2731         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
2732
2733 2010-05-10  Wei Guozhi  <carrot@google.com>
2734
2735         PR target/42879
2736         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
2737
2738 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
2739
2740         PR c/10676
2741         * c-typeck.c (lookup_field): Take a type directly.  Update
2742         recursive calls.
2743         (build_component_ref): Update call to lookup_field.
2744         (set_init_label): Use lookup_field to find initialized field.
2745         Handle returned list of fields like a sequence of designators.
2746
2747 2010-05-09  Richard Guenther  <rguenther@suse.de>
2748
2749         PR middle-end/44024
2750         * fold-const.c (tree_single_nonzero_warnv_p): Properly
2751         handle &FUNCTION_DECL.
2752
2753 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
2754
2755         PR c/4784
2756         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
2757         structures and unions recursively.
2758         (detect_field_duplicates): Move duplicate detection with a hash to
2759         detect_field_duplicates_hash.  Always use a hash if anonymous
2760         structures or unions are present.
2761         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
2762         give errors.
2763
2764 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2765
2766         PR target/44046
2767         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
2768         detect Atom, Core 2 and Core i7.
2769
2770 2010-05-09  Richard Guenther  <rguenther@suse.de>
2771
2772         * gcc.c (store_arg): Handle temporary file deletion for
2773         joined arguments.
2774
2775 2010-05-09  Richard Guenther  <rguenther@suse.de>
2776
2777         PR middle-end/44043
2778         * ipa-inline.c (estimate_function_body_sizes): Return after
2779         disregarding inline limits.
2780
2781 2010-05-09  Richard Guenther  <rguenther@suse.de>
2782
2783         * gcc.c (store_arg): Revert last change.
2784
2785 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
2786
2787         PR middle-end/28685
2788         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
2789         (optimize_ops_list): Call it.
2790
2791 2010-05-08  Richard Guenther  <rguenther@suse.de>
2792
2793         PR tree-optimization/44030
2794         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
2795         NECESSARY flag if we propagate from a inserted expression.
2796
2797 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2798
2799         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
2800         domain types as equal if they are both PLACEHOLDER_EXPRs.
2801
2802 2010-05-08  Richard Guenther  <rguenther@suse.de>
2803
2804         * lto-wrapper.c (run_gcc): Remove linker output from
2805         command line for LTRANS invocation.
2806
2807 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
2808
2809         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2810         lto-macho as lto_binary_reader.
2811         * target.h (struct gcc_target): New hooks lto_start and lto_end.
2812         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
2813         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
2814         in lto_start and lto_end calls.
2815         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
2816         magic numbers.
2817         (scan_prog_file): Update is_elf_or_coff call.
2818         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
2819
2820         * collect2.c (main): Fix enum comparison.
2821
2822         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
2823         Add prototypes.
2824         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
2825         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
2826         and TARGET_ASM_LTO_END.
2827         * darwin.c: Include obstack.h and lto-streamer.h.
2828         (lto_section_names_offset, lto_section_names_obstack,
2829         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
2830         global variables.
2831         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
2832         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
2833         to a temporary file.
2834         (darwin_asm_lto_end): New function.  Restore asm_out_file.
2835         (darwin_asm_named_section): For LTO sections, replace the name with
2836         the offset of the section name in a string table, and build this
2837         table.
2838         (darwin_file_start): Initialize global vars for LTO support.
2839         (darwin_file_end): If output to asm_out_file was redirected, append it
2840         to the proper asm_out_file here.  Add the section names section.
2841
2842 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
2843
2844         * c-pragma.c (pending_weak_d, pending_weak): New.
2845         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
2846         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
2847         handle_pragma_weak): Update the uses of pending_weaks.
2848
2849 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2850
2851         PR documentation/44016
2852         * doc/standards.texi (Standards): Link to unversioned
2853         cxx0x_status.html page.
2854
2855 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
2856
2857         PR target/43708
2858         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
2859         in addition to TREE_USED, to avoid "set but unused" warnings.
2860
2861 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2862
2863         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
2864         (is_loop_prefetching_profitable): Do not insert prefetches
2865         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
2866         times the prefetch ahead distance.
2867
2868 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2869
2870         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
2871         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
2872         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
2873         the unroll_factor.
2874
2875 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2876
2877         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
2878         a diagnostic info when the insn-to-mem ratio is too small.
2879
2880 2010-05-07  Richard Guenther <rguenther@suse.de>
2881
2882         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
2883         the linker plugin.
2884         (store_arg): Queue temp_filename for deletion instead of
2885         the whole argument.
2886
2887 2010-05-07  Richard Guenther  <rguenther@suse.de>
2888
2889         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
2890         (run_gcc): Handle LTRANS phase invocation.
2891         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
2892
2893 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
2894
2895         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
2896         this is also meaningful on PARM_DECLs and RESULT_DECLs.
2897
2898 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2899
2900         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
2901
2902 2010-05-07  Richard Guenther  <rguenther@suse.de>
2903
2904         PR tree-optimization/44020
2905         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
2906         code when PRE is not yet initialized.
2907
2908 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2909
2910         * config/mips/dbxmdebug.h: Remove.
2911         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
2912
2913 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
2914
2915         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
2916         with null pointer and also warn about ordered comparison of zero with
2917         pointer if -Wextra.
2918
2919 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2920
2921         * graphite-blocking.c
2922         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
2923         * graphite-clast-to-gimple.c
2924         (clast_to_gcc_expression): Same.
2925         (precision_for_value): Same.
2926         (precision_for_interval): Same.
2927         (gcc_type_for_interval): Same.
2928         (graphite_create_new_guard): Same.
2929         (compute_bounds_for_level): Same.
2930         (graphite_create_new_loop_guard): Same.
2931         * graphite-interchange.c
2932         (build_linearized_memory_access): Same.
2933         (pdr_stride_in_loop): Same.
2934         (memory_strides_in_loop_1): Same.
2935         (memory_strides_in_loop): Same.
2936         (extend_scattering): Same.
2937         (psct_scattering_dim_for_loop_depth): Same.
2938         (pbb_number_of_iterations): Same.
2939         * graphite-poly.h
2940         (debug_iteration_domains): Same.
2941         * graphite-ppl.c
2942         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
2943         (ppl_set_inhomogeneous_gmp): Same.
2944         (ppl_strip_loop): Same.
2945         (ppl_lexico_compare_linear_expressions): Same.
2946         (ppl_read_polyhedron_matrix): Same.
2947         (ppl_max_for_le_pointset): Same.
2948         * graphite-ppl.h
2949         (ppl_read_polyhedron_matrix): Same.
2950         (tree_int_to_gmp): Same.
2951         (gmp_cst_to_tree): Same.
2952         (ppl_set_inhomogeneous): Same.
2953         (ppl_set_inhomogeneous_tree): Same.
2954         (ppl_set_coef): Same.
2955         (ppl_set_coef_tree): Same.
2956         * graphite-sese-to-poly.c
2957         (build_pbb_scattering_polyhedrons): Same.
2958         (build_scop_scattering): Same.
2959         (scan_tree_for_params_right_scev): Same.
2960         (scan_tree_for_params): Same.
2961         (find_params_in_bb): Same.
2962         (find_scop_parameters): Same.
2963         (add_upper_bounds_from_estimated_nit): Same.
2964         (build_loop_iteration_domains): Same.
2965         (add_condition_to_domain): Same.
2966         (pdr_add_memory_accesses): Same.
2967
2968 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2969
2970         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
2971         CLooG's value_* macros to their respective mpz_* counterparts.
2972         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
2973         (graphite_create_new_loop_guard): Same.
2974         * graphite-interchange.c (build_linearized_memory_access): Same.
2975         (pdr_stride_in_loop): Same.
2976         (memory_strides_in_loop_1): Same.
2977         (1st_interchange_profitable_p): Same.
2978         * graphite-poly.c (extend_scattering): Same.
2979         (psct_scattering_dim_for_loop_depth): Same.
2980         (pbb_number_of_iterations): Same.
2981         (pbb_number_of_iterations_at_time): Same.
2982         * graphite-poly.h (new_1st_loop): Same.
2983         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
2984         (oppose_constraint): Same.
2985         (insert_constraint_into_matrix): Same.
2986         (ppl_set_inhomogeneous_gmp): Same.
2987         (ppl_set_coef_gmp): Same.
2988         (ppl_strip_loop): Same.
2989         (ppl_lexico_compare_linear_expressions): Same.
2990         (ppl_max_for_le_pointset): Same.
2991         (ppl_min_for_le_pointset): Same.
2992         (ppl_build_realtion): Same.
2993         * graphite-ppl.h (gmp_cst_to_tree): Same.
2994         (ppl_set_inhomogeneous): Same.
2995         (ppl_set_inhomogeneous_tree): Same.
2996         (ppl_set_coef): Same.
2997         (ppl_set_coef_tree): Same.
2998         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
2999         (build_scop_scattering): Same.
3000         (add_value_to_dim): Same.
3001         (scan_tree_for_params_right_scev): Same.
3002         (scan_tree_for_params_int): Same.
3003         (scan_tree_for_params): Same.
3004         (find_params_in_bb): Same.
3005         (find_scop_parameters): Same.
3006         (add_upper_bounds_from_estimated_nit): Same.
3007         (build_loop_iteration_domains): Same.
3008         (create_linear_expr_from_tree): Same.
3009         (add_condition_to_domain): Same.
3010         (pdr_add_memory_accesses): Same.
3011
3012 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
3013             Jason Merrill  <jason@redhat.com>
3014
3015         * c-common.c (c_common_reswords): Add nullptr.
3016         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
3017         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
3018         (gen_type_die_with_usage): Likewise.
3019         * dbxout.c (dbxout_type): Likewise.
3020         * sdbout.c (plain_type_1): Likewise.
3021
3022 2010-05-06  Jason Merrill  <jason@redhat.com>
3023
3024         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
3025         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
3026         ret appropriately.
3027         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
3028
3029         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
3030         stripping WITH_SIZE_EXPR.
3031         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
3032         change.
3033
3034 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3035
3036         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
3037         list of obsolete configurations.
3038         Disabled check for obsolete configurations.
3039         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
3040         Removed support for previous versions.
3041         * config/mips/iris.h: Removed.
3042         * config/mips/iris5.h: Removed.
3043         * config/mips/iris6.h: Merged old iris.h contents.
3044         (TARGET_IRIX): Removed.
3045         (DRIVER_SELF_SPECS): Removed mabi=32.
3046         (IDENT_ASM_OP): Removed undef.
3047         (STARTFILE_SPEC): Removed mabi=32.
3048         (ENDFILE_SPEC): Likewise.
3049         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
3050         (MACHINE_TYPE): Update for IRIX 6.5.
3051         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
3052         TARGET_IRIX by TARGET_IRIX6.
3053         (mips_file_start): Likewise.
3054         (mips_output_external): Remove IRIX 5/6 O32 support.
3055         (mips_output_function_prologue): Likewise.
3056         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
3057         TARGET_IRIX6.
3058         (TARGET_CPU_CPP_BUILTINS): Likewise.
3059         (TARGET_IRIX): Removed.
3060         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
3061         (MULTILIB_DIRNAMES): Removed 32.
3062         (MULTILIB_OSDIRNAMES): Removed ../lib.
3063         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
3064         (Specific, mips-sgi-irix5): Document removal.
3065         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
3066         Remove references to older IRIX 6 releases and the O32 ABI.
3067
3068 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
3069
3070         PR bootstrap/43994
3071         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
3072         instead of DF_REF_REAL_REG.
3073
3074 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
3075
3076         PR target/43888
3077         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
3078         handling to still return true for x64 targets.
3079
3080 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3081
3082         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
3083
3084 2010-05-06  Jan Hubicka  <jh@suse.cz>
3085
3086         PR tree-optimization/43791
3087         * ipa-inline.c (update_caller_keys): Remove bogus
3088         disregard_inline_limits check.
3089
3090 2010-05-06  Michael Matz  <matz@suse.de>
3091
3092         PR tree-optimization/43984
3093         * tree-ssa-pre.c (inserted_phi_names): Remove.
3094         (inserted_exprs): Change to bitmap.
3095         (create_expression_by_pieces): Set bits, don't append to vector.
3096         (insert_into_preds_of_block): Don't handle inserted_phi_names.
3097         (eliminate): Don't look at inserted_phi_names, remove deleted
3098         insns from inserted_exprs.
3099         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
3100         (init_pre, fini_pre): Allocate and free bitmaps.
3101         (execute_pre): Insert insns on edges before elimination.
3102
3103 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3104
3105         * tree.c (initializer_zerop): Handle STRING_CST.
3106
3107 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3108
3109         PR 40989
3110         * doc/invoke.texi (Wimplicit): Document as C only.
3111         * opts.c (common_handle_option): Add argument kind.
3112         (handle_option): Rename as read_cmdline_option. Factor out code to...
3113         (handle_option): ... here. New.
3114         (handle_options): Rename as read_cmdline_options.
3115         (decode_options): Update call.
3116         (set_option): Use option index instead of option pointer. Classify
3117         diagnostics correctly.
3118         (enable_warning_as_error): Call handle_option.
3119         * opts.h (set_option): Update declaration.
3120         (handle_option): Declare.
3121         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
3122         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
3123         * c-opts.c (set_Wimplicit): Delete.
3124         (c_family_lang_mask): New static constant.
3125         (c_common_handle_option): Add argument kind. Use handle_option
3126         instead of set_Wimplicit.
3127         (c_common_post_options): warn_implicit and warn_implicit_int
3128         are disabled by default.
3129         * c-common.c (warn_implicit): Do not define here.
3130         * c-common.h (warn_implicit): Do not declare here.
3131         (c_common_handle_option): Update declaration.
3132         * lto-opts.c (lto_reissue_options): Update call to set_option.
3133
3134 2010-05-06  Richard Guenther  <rguenther@suse.de>
3135
3136         PR tree-optimization/43571
3137         * domwalk.c (walk_dominator_tree): Walk the dominator
3138         sons in more optimal order.
3139
3140 2010-05-06  Richard Guenther  <rguenther@suse.de>
3141
3142         PR tree-optimization/43934
3143         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
3144         (stmt_cost): Likewise.
3145         (extract_true_false_args_from_phi): New helper.
3146         (determine_max_movement): For PHI nodes verify we can hoist them
3147         and compute their cost.
3148         (determine_invariantness_stmt): Handle PHI nodes.
3149         (move_computations_stmt): Likewise.  Hoist PHI nodes in
3150         if-converted form using COND_EXPRs.
3151         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
3152         (tree_ssa_lim): Likewise.
3153         * tree-flow.h (tree_ssa_lim): Adjust prototype.
3154         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
3155
3156 2010-05-06  Richard Guenther  <rguenther@suse.de>
3157
3158         PR tree-optimization/43987
3159         * tree-ssa-structalias.c (could_have_pointers): For possibly
3160         address-taken variables force pointers to be recorded.
3161         (create_variable_info_for_1): Likewise.
3162         (push_fields_onto_fieldstack): Pass in wheter all fields
3163         must have pointers.
3164         (find_func_aliases): Query types instead of vars whether
3165         they contain pointers where appropriate.
3166
3167 2010-05-06  Jan Hubicka  <jh@suse.cz>
3168
3169         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
3170         (record_reference, mark_address, mark_load, mark_store): Record
3171         references.
3172         (record_references_in_initializer): Update call of record_references.
3173         (rebuild_cgraph_edges): Remove all references before rebuiding.
3174         * cgraph.c (cgraph_create_node): Clear ref list.
3175         (cgraph_remove_node): Remove references.
3176         (dump_cgraph_node): Dump references.
3177         (cgraph_clone_node): Clone references.
3178         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
3179         (struct cgraph_node, varpool_node): Add ref_lst.
3180         * ipa-ref.c: New file.
3181         * ipa-ref.h: New file.
3182         * ipa-ref-inline.h: New file.
3183         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
3184         (referenced_from_other_partition_p): New function.
3185         (lto_output_varpool_node): Take set arugment; call
3186         referenced_from_other_partition.
3187         (lto_output_ref): New.
3188         (add_references): New.
3189         (output_refs): New.
3190         (output_cgraph): Compute boundary based on references; output refs.
3191         (output_varpool): Accept cgraph_node_set argument.
3192         (input_ref): New.
3193         (input_refs): New.
3194         (input_cgraph): Call input_refs.
3195         * lto-section-in.c (lto_section_name): Add refs.
3196         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
3197         (ipa-ref.o): New file.
3198         * varpool.c (varpool_node): Clear ipa ref list.
3199         (varpool_remove_node): Remove references.
3200         (dump_varpool_node): Dump references.
3201         (varpool_assemble_decl): Only compile finalized ones.
3202         (varpool_extra_name_alias): Initialize ref list.
3203         * lto-streamer.c (lto-get_section_name): Add .refs section.
3204         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
3205         (referenced_from_other_partition_p): Declared.
3206
3207 2010-05-06  Ira Rosen  <irar@il.ibm.com>
3208
3209         PR tree-optimization/43901
3210         * tree-vect-stmts.c (vectorizable_call): Assert that vector
3211         type is not NULL if it's transformation phase, and return
3212         FALSE if it's analysis.
3213         (vectorizable_conversion, vectorizable_operation,
3214         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
3215
3216 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
3217
3218         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3219         Delete.
3220         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3221         New define.
3222         * config/mips/mips-protos.h
3223         (mips_small_register_classes_for_mode_p): Delete prototype.
3224
3225 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
3226
3227         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
3228         * config/arm/arm.c (multiple_operation_profitable_p,
3229         compute_offset_order): New static functions.
3230         (load_multiple_sequence, store_multiple_sequence): Use them.
3231         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
3232         memory offsets, not register numbers.
3233         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
3234
3235 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
3236
3237         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
3238         (get_pending_sizes, put_pending_size, put_pending_sizes):
3239         Update the uses of pending_sizes.
3240         * c-decl.c (store_parm_decls): Likewise.
3241         * c-tree.h (struct c_arg_info): Likewise.
3242         * tree.h: Update the prototype for get_pending_sizes and
3243         put_pending_sizes.
3244
3245 2010-05-05  Jason Merrill  <jason@redhat.com>
3246
3247         PR debug/43370
3248         * c-common.c (handle_aligned_attribute): Respect
3249         ATTR_FLAG_TYPE_IN_PLACE.
3250
3251         PR testsuite/43758
3252         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
3253         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3254         (TARGET_INITIALIZER): Use it.
3255         * c-common.c (attribute_takes_identifier_p): Call it.
3256         * c-common.h: Update prototype.
3257         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
3258         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3259
3260 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
3261
3262         PR debug/43950
3263         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
3264         DW_ID_down_case for Fortran compilation units.
3265
3266 2010-05-05  Jan Hubicka  <jh@suse.cz>
3267
3268         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
3269         handle aliases.
3270
3271 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
3272
3273         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
3274         a variable-sized RESULT_DECL.
3275
3276 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
3277
3278         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
3279
3280 2010-05-05  Jason Merrill  <jason@redhat.com>
3281
3282         PR c++/43787
3283         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
3284         returns GS_OK.
3285         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
3286
3287 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
3288             Jakub Jelinek  <jakub@redhat.com>
3289
3290         PR debug/43478
3291         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
3292         (dead_debug_init, dead_debug_finish): New functions.
3293         (dead_debug_add, dead_debug_insert_before): Likewise.
3294         (df_note_bb_compute): Initialize a dead_debug object, add dead
3295         debug uses to it, insert debug bind insns before death insns,
3296         reset debug insns that refer to pending uses at the end.
3297         * rtl.h (make_debug_expr_from_rtl): New prototype.
3298         * varasm.c (make_debug_expr_from_rtl): New function.
3299
3300 2010-05-05  Jan Hubicka  <jh@suse.cz>
3301
3302         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
3303         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
3304         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
3305         lto_varpool_encoder_deref, lto_varpool_encoder_size,
3306         lto_varpool_encoder_encode_initializer_p,
3307         lto_set_varpool_encoder_encode_initializer): New functions.
3308         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
3309         call output_varpool.
3310         (input_varpool_node): Do not always set analyzed.
3311         (input_cgraph_1): Return vector of cgraph nodes.
3312         (input_varpool_1): Return vector of varpools.
3313         (input_cgraph): Free the vectors.
3314         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
3315         output only initializers needed.
3316         (lto_output): Only call output_cgraph.
3317         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
3318         * lto-section-out.c (lto_new_out_decl_state): Initialize
3319         state->varpool_node_encoder.
3320         * lto-streamer.h (lto_varpool_encoder_d): New.
3321         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
3322         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
3323         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
3324         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
3325         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
3326         Declare.
3327         (output_varpool, input_varpool): Remove declarations.
3328
3329 2010-05-05  Jan Hubicka  <jh@suse.cz>
3330
3331         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
3332         with body can prevail.
3333
3334 2010-05-05  Jan Hubicka  <jh@suse.cz>
3335
3336         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
3337         size.
3338
3339 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3340
3341         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
3342
3343         * gengtype.h (erro_at_line): Constify pos argument.
3344
3345         * gengtype.c: Include hashtab.h.
3346         (enum gc_used): Document GC_MAYBE_POINTED_TO.
3347         (error_at_line): Constify pos argument.
3348         (do_typedef): Initialize p->opt field.
3349         (get_file_gtfilename): Fix comment typo.
3350         (struct walk_type_data): Constify line field.
3351         (get_output_file_for_structure): New function.
3352         (write_local_func_for_structure): Constify orig_s argument.
3353         Use get_output_file_for_structure.
3354         (write_func_for_structure): Use get_output_file_for_structure.
3355         (INDENT): New define.
3356         (dump_pair, dump_type, dump_type_list, dump_typekind)
3357         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
3358         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
3359         functions.
3360         (seen_types): New variable.
3361         (main): New variable do_dump.  Process "-d" command line option.
3362         Call dump_everything if dump requested.
3363
3364 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
3365
3366         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
3367         in a temporary instead of invoking the macro multiple times.
3368         (track_expr_p): Likewise.
3369
3370 2010-05-04  Neil Vachharajani <nvachhar@google.com>
3371
3372         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
3373         per new semantics.
3374         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
3375         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
3376         conditions for printing notes.
3377         * common.opt (-Wcoverage-mismatch): Allow negative, default to
3378         true, update documentation.
3379         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
3380
3381 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
3382
3383         PR c/43981
3384         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
3385         on dimen.
3386
3387 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3388
3389         PR target/43799
3390         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
3391         (*sse_prologue_save_insn1): Likewise.
3392         (SSE prologue save splitter): Likewise.
3393
3394 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
3395
3396         * tree.c (free_lang_data_in_one_sizepos): New inline function.
3397         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
3398         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
3399         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
3400         all decls.  Call it on DECL_FIELD_OFFSET of fields.
3401         (find_decls_types_r): Follow DECL_VALUE_EXPR.
3402         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
3403
3404 2010-05-04  Martin Jambor  <mjambor@suse.cz>
3405
3406         * tree-sra.c (build_access_from_expr_1): The first parameter type
3407         changed to simple tree.
3408         (build_access_from_expr): Likewise, gsi parameter was eliminated.
3409         (scan_assign_result): Renamed to assignment_mod_result, enum elements
3410         renamed as well.
3411         (build_accesses_from_assign): Removed all parameters except for a
3412         simple gimple statement.  Now returns a simple bool.
3413         (scan_function): All non-analysis parts moved to separate functions
3414         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
3415         parameters and updated both callers.
3416         (sra_modify_expr): Removed parameter data.
3417         (sra_modify_function_body): New function.
3418         (perform_intra_sra): Call sra_modify_function_body to modify the
3419         function body.
3420         (replace_removed_params_ssa_names): Parameter data changed into
3421         adjustments vector.
3422         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
3423         changed the parameter dont_convert to convert with the opposite
3424         meaning.
3425         (sra_ipa_modify_assign): Parameter data changed into adjustments
3426         vector, return value changed to bool.
3427         (ipa_sra_modify_function_body): New function.
3428         (sra_ipa_reset_debug_stmts): Updated a comment.
3429         (modify_function): Use ipa_sra_modify_function_body to modify function
3430         body.
3431
3432 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3433
3434         PR middle-end/43671
3435         * alias.c (true_dependence): Handle the same VALUE in x and mem.
3436         (canon_true_dependence): Likewise.
3437         (write_dependence_p): Likewise.
3438
3439 2010-05-04  Jan Hubicka  <jh@suse.cz>
3440
3441         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
3442         * cgraphbuild.c: Include ipa-utils.h
3443         (record_reference_ctx): New struct.
3444         (record_reference): Simplify to work on initializers; not statements.
3445         (mark_address, mark_load, mark_store): New.
3446         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3447         walk PHI nodes too.
3448         (record_references_in_initializer): Update use of record_reference.
3449         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3450         walk PHI nodes too.
3451
3452 2010-05-04  Jan Hubicka  <jh@suse.cz>
3453
3454         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
3455         node will be removed anyway.
3456         (lto_varpool_replace_node): Allow also unanalyzed nodes;
3457         relink aliases of node into prevailing node.
3458         * varpool.c (varpool_remove_node): Remove aliases properly;
3459         when removing node, remove all its aliases too; remove DECL_INITIAL
3460         of removed node; ggc_free the varpool node.
3461
3462 2010-05-04  Richard Guenther  <rguenther@suse.de>
3463
3464         PR tree-optimization/43879
3465         * tree-ssa-structalias.c (alias_get_name): Use
3466         DECL_ASSEMBLER_NAME if available.
3467         (create_function_info_for): Return the varinfo node.
3468         (ipa_pta_execute): Associate same-body aliases and extra names
3469         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
3470
3471 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
3472
3473         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
3474
3475 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
3476
3477         PR bootstrap/43964
3478         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
3479         only if HONOR_REG_ALLOC_ORDER is not defined.
3480
3481 2010-05-04  Richard Guenther  <rguenther@suse.de>
3482
3483         PR tree-optimization/43949
3484         * tree-vrp.c (extract_range_from_binary_expr): Only handle
3485         TRUNC_MOD_EXPR.
3486
3487 2010-04-26  Jason Merrill  <jason@redhat.com>
3488
3489         * c.opt (-fstrict-enums): New.
3490         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
3491
3492 2010-05-03  David Ung <davidu@mips.com>
3493             James E. Wilson  <wilson@codesourcery.com>
3494
3495         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
3496         emit the trap instruction before the divide for TUNE_74K.
3497
3498 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
3499
3500         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
3501         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
3502         based on the above, for new target hook.
3503
3504         * hooks.c (hook_bool_mode_true): New generic hook.
3505         * hooks.h (hook_bool_mode_true): Add prototype.
3506
3507         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
3508         target hook.
3509         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
3510         target hook, set to hook_bool_mode_false.
3511         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
3512         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
3513         with targetm.small_register_classes_for_mode_p.
3514         (find_reusable_reload): Likewise.
3515         (combine_reloads): Likewise.
3516         * reload1.c (reload_as_needed): Likewise.
3517         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
3518         * ifcvt.c (noce_process_if_block, check_cond_move_block,
3519         dead_or_predicable): Likewise.
3520         * regmove.c (optimize_reg_copy_1): Likewise.
3521         * calls.c (prepare_call_address): Likewise.
3522         (precompute_register_parameters): Likewise.
3523
3524         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
3525         hook definition.
3526         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
3527         implementation of the hook that considers all register classes
3528         small except for SH64.
3529         (sh_override_options): Use the new hook.
3530         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
3531         Add prototype.
3532
3533         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
3534         hook definition.
3535         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
3536         implementation of the hook that considers all register classes
3537         small for THUMB1.
3538         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
3539         Add prototype.
3540
3541         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
3542         hook definition.
3543         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
3544         implementation of the hook that considers all register classes
3545         small for MIPS16.
3546         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
3547         Add prototype.
3548
3549         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
3550         hook definition.
3551         * config/m32c/m32c.h: Likewise.
3552         * config/pdp11/pdp11.h: Likewise.
3553         * config/avr/avr.h: Likewise.
3554         * config/xtensa/xtensa.h: Likewise.
3555         * config/m68hc11/m68hc11.h: Likewise.
3556         * config/mn10300/mn10300.h: Likewise.
3557         * config/mcore/mcore.h: Likewise.
3558         * config/h8300/h8300.h: Likewise.
3559         * config/bfin/bfin.h: Likewise.
3560
3561         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
3562         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
3563
3564 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
3565
3566         * double-int.h (tree_to_double_int): Remove macro.
3567         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
3568         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
3569         (tree_to_double_int): New function.
3570         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
3571         Move ...
3572         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
3573
3574 2010-05-03  Richard Guenther  <rguenther@suse.de>
3575
3576         PR tree-optimization/43971
3577         * tree-ssa-structalias.c (get_constraint_for_1): Fix
3578         constraints in the !flag_delete_null_pointer_checks case.
3579
3580 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
3581
3582         PR debug/43972
3583         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
3584         result mode matches original rtl mode.
3585
3586 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
3587
3588         PR target/43888
3589         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
3590
3591 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3592
3593         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
3594         when processing flag options.
3595
3596 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3597
3598         * gcov-iov.c (main): Change format string placeholder
3599         from %#08x to 0x%08x.
3600         * genchecksum.c (dosum): Change format string placeholder
3601         from %#02x to 0x%02x.
3602
3603 2010-05-02  Richard Guenther  <rguenther@suse.de>
3604
3605         PR tree-optimization/43879
3606         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
3607
3608 2010-05-02  Bruno Haible  <bruno@clisp.org>
3609
3610         * doc/extend.texi (Function Attributes): Fix a typo.
3611
3612 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3613
3614         Revert:
3615         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
3616         placeholder from 0x%x to %#x.
3617         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
3618         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
3619         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
3620         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
3621         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
3622         * config/i386/i386.c (ix86_target_string): Ditto.
3623         * config/i386/i386.c (output_pic_addr_const): Ditto.
3624         (print_operand): Ditto.
3625
3626 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3627
3628         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
3629         placeholder from 0x%x to %#x.
3630         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
3631         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
3632         (ASM_OUTPUT_DEBUG_DATA): Ditto.
3633         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
3634         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
3635         * optc-gen.awk: Ditto.
3636         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
3637         (HOST_WIDE_INT_PRINT_HEX): Ditto.
3638         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
3639         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
3640
3641 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
3642
3643         * target.h (struct calls): Add function_value_regno_p field.
3644         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
3645         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
3646         * targhooks.c (default_function_value_regno_p): New function.
3647         * targhooks.h (default_function_value_regno_p): Declare function.
3648         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
3649         * builtins.c. (apply_result_size): (Ditto.).
3650         * combine.c. (likely_spilled_retval_p): (Ditto.).
3651         * mode-switching.c. Include 'target.h'.
3652         (create_pre_exit): Use function_value_regno_p hook.
3653         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
3654         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
3655         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
3656
3657         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
3658         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
3659         (ix86_function_value_regno_p): Declare as static, change argument
3660         type to const unsigned int.
3661         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
3662
3663 2010-05-01  Richard Guenther  <rguenther@suse.de>
3664
3665         PR tree-optimization/43949
3666         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
3667         types.
3668         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
3669
3670 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
3671
3672         * rtl.h (CONST_DOUBLE_P): Define.
3673         (rtx_to_double_int): Declare.
3674         * emit-rtl.c (rtx_to_double_int): New function.
3675         * dwarf2out.c (insert_double): New function.
3676         (loc_descriptor, add_const_value_attribute): Clean up, use
3677         rtx_to_double_int and insert_double functions.
3678
3679 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
3680
3681         * doc/extend.texi (Inline): Add missing return keyword to examples.
3682         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
3683         "command-line".
3684
3685 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
3686
3687         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
3688         the variable part of the offset as well.  Use highest_pow2_factor for
3689         all alignment checks.
3690
3691 2010-04-30  Richard Guenther  <rguenther@suse.de>
3692
3693         PR tree-optimization/43879
3694         * tree-ssa-structalias.c (type_could_have_pointers): Functions
3695         can have pointers.
3696
3697 2010-04-30  Jan Hubicka  <jh@suse.cz>
3698
3699         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
3700         varpool.
3701         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
3702
3703 2010-04-30  Jan Hubicka  <jh@suse.cz>
3704
3705         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
3706         New.
3707         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
3708         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
3709         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
3710         cgraph_node_set_needs_ltrans_p): Remove.
3711
3712 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
3713
3714         * sdbout.c: Include vec.h, do not include varray.h.
3715         (deferred_global_decls, sdbout_global_decl,
3716         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
3717         * toplev.c: Do not include varray.h.
3718         (dump_memory_report): Do not dump VARRAY statistics.
3719         * gengtype.c (open_base_file): Ignore varray.h.
3720         * Makefile.in: Update for abovementioned changes.
3721         Remove all traces of varray.c and varray.h.
3722         * varray.c: Remove file.
3723         * varray.h: Remove file.
3724
3725 2010-04-30  Jan Hubicka  <jh@suse.cz>
3726
3727         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
3728         references.
3729
3730 2010-04-30  Jan Hubicka  <jh@suse.cz>
3731
3732         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
3733         needed.
3734
3735 2010-04-30  Richard Guenther  <rguenther@suse.de>
3736
3737         * tree-ssa-structalias.c (get_constraint_for_1): Generate
3738         constraints for CONSTRUCTOR.
3739
3740 2010-04-30  Richard Guenther  <rguenther@suse.de>
3741
3742         PR lto/43946
3743         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
3744         first after all lowering passes.
3745
3746 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
3747
3748         * toplev.c: Include varray.h for statistics dumping.
3749         * tree.h: Do not declare varray_head_tag.
3750         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
3751         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
3752         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
3753         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
3754         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
3755         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
3756         c-common.c, c-common.h, reg-stack.c, basic-block.h,
3757         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
3758         include varray.h.
3759         * Makefile.in: Update for abovementioned changes.
3760
3761 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
3762
3763         PR debug/43942
3764         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
3765
3766 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
3767
3768         * config/picochip/picochip.c (picochip_legitimize_address): Define.
3769         Use this function to do machine-specific conversion.
3770         (picochip_legitimize_reload_address): Likewise.
3771         (picochip_legitimate_address_p): Check valid base register only if
3772         strict.
3773         (picochip_check_conditional_copy): Check for modw only if opnd is
3774         register.
3775         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
3776         to call the function in c.
3777         * config/picochip/picochip-protos.h
3778         (picochip_legitimize_reload_address): Define.
3779         * config/picochip/picochip.md (supported_compare1): Define.
3780
3781 2010-04-30  Jan Hubicka  <jh@suse.cz>
3782
3783         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
3784         (cgraph_global_info): Remove inlined.
3785         (LTO_cgraph_tag_names): Remove.
3786         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
3787         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
3788         simplify cgraph tags and document.
3789         (lto_output_node): Use only LTO_cgraph_unavail_node and
3790         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
3791         for_functions_valid, global info, process and output flags.
3792         (input_overwrite_node): Initialize estimated stack size and
3793         estimated growth.  Do not read flags we no longer store.
3794         (input_node): Likewise do not read info no longer stored.
3795         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
3796         flag.
3797
3798 2010-04-30  Richard Guenther  <rguenther@suse.de>
3799
3800         PR tree-optimization/43879
3801         * tree-ssa-structalias.c (get_constraint_for_1): Properly
3802         handle non-zero initializers.
3803
3804 2010-04-30  Richard Guenther  <rguenther@suse.de>
3805
3806         * builtins.c (fold_builtin_1): Delete free (0).
3807
3808 2010-04-29  Jan Hubicka  <jh@suse.cz>
3809
3810         * gengtype.c (open_base_files): Add lto-streamer.h
3811         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
3812         (pass_ipa_cp): GGC collect.
3813         * toplev. (compile_file): Do not output symbols.
3814         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
3815         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
3816         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
3817         * lto-section-in.c: Include ggc.h
3818         (lto_new_in_decl_state): Alloc in GGC.
3819         (lto_delete_in_decl_state): Likewise.
3820         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
3821         Collect.
3822
3823 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
3824
3825         PR target/42895
3826         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
3827         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
3828         (HONOR_REG_ALLOC_ORDER): Describe new macro.
3829         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
3830         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
3831         account only if HONOR_REG_ALLOC_ORDER is not defined.
3832         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
3833         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
3834
3835 2010-04-29  Jon Grant  <04@jguk.org>
3836
3837         * collect2.c (vflag): Change type from int to bool.
3838         (debug): Likewise.
3839         (helpflag): New global bool.
3840         (main): Set vflag and debug with boolean, not integer truth values.
3841         Accept new "--help" option and output usage text if found.
3842         * collect2.h (vflag): Update prototype.
3843         (debug): Likewise.
3844
3845 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3846
3847         PR bootstrap/43936
3848         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
3849
3850 2010-04-29  Richard Guenther  <rguenther@suse.de>
3851
3852         PR bootstrap/43935
3853         * plugin.h (invoke_plugin_callbacks): Annotate arguments
3854         with ATTRIBUTE_UNUSED.
3855
3856 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3857
3858         PR target/43921
3859         * config/i386/i386.c (get_some_local_dynamic_name): Replace
3860         INSN_P with NONDEBUG_INSN_P.
3861         (distance_non_agu_define): Likewise.
3862         (distance_agu_use): Likewise.
3863
3864 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
3865
3866         From Dominique d'Humieres <dominiq@lps.ens.fr>
3867         PR bootstrap/43858
3868         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
3869         test_set.
3870
3871 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
3872
3873         * plugin.h (invoke_plugin_callbacks): New inline function.
3874         * plugin.c (flag_plugin_added): New global flag.
3875         (add_new_plugin): Initialize above flag.
3876         (invoke_plugin_callbacks): Rename to ...
3877         (invoke_plugin_callbacks_full): ... this.
3878
3879 2010-04-28  Jan Hubicka  <jh@suse.cz>
3880
3881         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
3882         (lto_varpool_replace_node): New.
3883         (lto_symtab_resolve_symbols): Resolve varpool nodes.
3884         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
3885         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
3886         * cgraph.h (varpool_node_ptr): New type.
3887         (varpool_node_ptr): New vector.
3888         (varpool_node_set_def): New structure.
3889         (varpool_node_set): New type.
3890         (varpool_node_set): New vector.
3891         (varpool_node_set_element_def): New structure.
3892         (varpool_node_set_element, const_varpool_node_set_element): New types.
3893         (varpool_node_set_iterator): New type.
3894         (varpool_node): Add prev pointers, add used_from_other_partition,
3895         in_other_partition.
3896         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
3897         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
3898         varpool_get_node, varpool_remove_node): Declare.
3899         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
3900         varpool_node_set_size): New inlines.
3901         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
3902         * tree-pass.h (varpool_node_set_def): Forward declare.
3903         (ipa_opt_pass_d): Summary writting takes vnode sets too.
3904         (ipa_write_optimization_summaries): Update prototype.
3905         * ipa-cp.c (ipcp_write_summary): Update.
3906         * ipa-reference.c (ipa_reference_write_summary): Update.
3907         * lto-cgraph.c (lto_output_varpool_node): New static function.
3908         (output_varpool): New function.
3909         (input_varpool_node): New static function.
3910         (input_varpool_1): New function.
3911         (input_cgraph): Input varpool.
3912         * ipa-pure-const.c (pure_const_write_summary): Update.
3913         * lto-streamer-out.c (lto_output): Update, output varpool too.
3914         (write_global_stream): Kill WPA hack.
3915         (produce_asm_for_decls): Update.
3916         (output_alias_pair_p): Handle variables.
3917         (output_unreferenced_globals): Output only needed partition of varpool.
3918         * ipa-inline.c (inline_write_summary): Update.
3919         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
3920         cgraph.
3921         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
3922         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
3923         varpool_node_set_new, varpool_node_set_add,
3924         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
3925         debug_varpool_node_set): New functions.
3926         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
3927         (execute_one_pass): Process new decls too.
3928         (ipa_write_summaries_2): Pass around vsets.
3929         (ipa_write_summaries_1): Likewise.
3930         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
3931         to add.
3932         (ipa_write_optimization_summaries_1): Pass around vsets.
3933         (ipa_write_optimization_summaries): Likewise.
3934         * varpool.c (varpool_get_node): New.
3935         (varpool_node): Update doubly linked lists.
3936         (varpool_remove_node): New.
3937         (dump_varpool_node): More dumping.
3938         (varpool_enqueue_needed_node): Update doubly linked lists.
3939         (decide_is_variable_needed): Kill ltrans hack.
3940         (varpool_finalize_decl): Kill lto hack.
3941         (varpool_assemble_decl): Skip decls in other partitions.
3942         (varpool_assemble_pending_decls): Update doubly linkes lists.
3943         (varpool_empty_needed_queue): Likewise.
3944         (varpool_extra_name_alias): Likewise.
3945         * lto-streamer.c (lto_get_section_name): Add vars section.
3946         * lto-streamer.h (lto_section_type): Update.
3947         (output_varpool, input_varpool): Declare.
3948
3949 2010-04-28  Mike Stump  <mikestump@comcast.net>
3950
3951         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
3952
3953 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
3954
3955         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
3956         record or union type with RECORD_OR_UNION_TYPE_P predicate.
3957         (lto_input_ts_type_tree_pointers): Likewise.
3958         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
3959         (lto_output_ts_type_tree_pointers): Likewise.
3960
3961 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
3962
3963         Uniquization of constants at the Tree level
3964         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
3965         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
3966         bit to the end.
3967         (tree_output_constant_def): Declare.
3968         * gimplify.c (gimplify_init_constructor): When using block copy, first
3969         uniquize the constant constructor on the RHS.
3970         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
3971         DECL_IN_CONSTANT_POOL flag.
3972         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
3973         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
3974         constant pool.
3975         (assemble_variable): Deal with symbols belonging to the tree constant
3976         pool.
3977         (get_constant_section): Add ALIGN parameter and simplify.
3978         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
3979         (assemble_constant_contents): Use the expression of the VAR_DECL.
3980         (output_constant_def_contents): Use the alignment of the VAR_DECL.
3981         (tree_output_constant_def): New global function.
3982         (mark_constant): Use the expression of the VAR_DECL.
3983         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
3984         its expression.
3985         (output_object_block): Likewise and assemble the expression.
3986
3987 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
3988
3989         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
3990         hash_tree, eq_tree): New tree hash table.
3991         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
3992         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
3993         lto_orig_address_remove): Reimplement.
3994
3995 2010-04-28  Xinliang David Li  <davidxl@google.com>
3996
3997         PR c/42643
3998         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
3999         (compute_uninit_opnds_pos): New function.
4000         (is_non_loop_exit_postdominating): New function.
4001         (compute_control_dep_chain): New function.
4002         (find_pdom): New function.
4003         (convert_control_dep_chain_into_preds): New function.
4004         (find_predicates): New function.
4005         (find_control_equiv_block): New function.
4006         (collect_phi_def_edges): New function.
4007         (find_def_preds): New function.
4008         (find_dom): New function.
4009         (dump_predicates): New function.
4010         (get_cmp_code): New function.
4011         (is_value_included_in): New function.
4012         (find_matching_predicate_in_rest_chains): New function.
4013         (use_pred_not_overlap_with_undef_path_pred): New function.
4014         (is_use_properly_guarded): New function.
4015         (normalize_cond_1): New function.
4016         (is_and_or_or): New function.
4017         (normalize_cond): New function.
4018         (is_gcond_subset_of): New function.
4019         (is_subset_of_any): New function.
4020         (is_or_set_subset_of): New function.
4021         (is_and_set_subset_of): New function.
4022         (is_norm_cond_subset_of): New function.
4023         (is_pred_expr_subset_of): New function.
4024         (is_pred_chain_subset_of): New function.
4025         (is_included_in): New function.
4026         (is_superset_of): New function.
4027         (find_uninit_use): New function.
4028         (warn_uninitialized_phi): New function.
4029         (compute_possibly_undefined_names): New function.
4030         (ssa_undefined_value_p): New function.
4031         (execute_late_warn_uninitialized): New function.
4032         * tree-ssa.c (ssa_undefined_value_p): Removed.
4033         (warn_uninit): Changed to extern.
4034         (warn_uninitialized_phi): Removed.
4035         (warn_uninitialized_vars): Changed to extern.
4036         (execute_late_warn_uninitialized): Removed
4037         * tree-flow.h: Add new prototypes.
4038         * timevar.def: Add new time variable.
4039         * Makefile.in: Add new build file.
4040
4041 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
4042
4043         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
4044         type if available.
4045
4046 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4047
4048         PR target/22224
4049         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
4050
4051 2010-04-28  Martin Jambor  <mjambor@suse.cz>
4052
4053         * cgraph.h (struct cgraph_node): New field indirect_calls.
4054         (struct cgraph_indirect_call_info): New type.
4055         (struct cgraph_edge): Removed field indirect_call. New fields
4056         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
4057         (cgraph_create_indirect_edge): Declare.
4058         (cgraph_make_edge_direct): Likewise.
4059         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
4060         * ipa-prop.h (struct ipa_param_call_note): Removed.
4061         (struct ipa_node_params): Removed field param_calls.
4062         (ipa_create_all_structures_for_iinln): Declare.
4063         * cgraph.c: Described indirect edges and uids in initial comment.
4064         (cgraph_add_edge_to_call_site_hash): New function.
4065         (cgraph_edge): Search also among the indirect edges, use
4066         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
4067         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
4068         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
4069         site hash.
4070         (initialize_inline_failed): Assign a reason to indirect edges.
4071         (cgraph_create_edge_1): New function.
4072         (cgraph_create_edge): Moved some functionality to
4073         cgraph_create_edge_1.
4074         (cgraph_create_indirect_edge): New function.
4075         (cgraph_edge_remove_callee): Add an assert checking for
4076         non-indirectness.
4077         (cgraph_edge_remove_caller): Special-case indirect edges.
4078         (cgraph_remove_edge): Likewise.
4079         (cgraph_set_edge_callee): New function.
4080         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
4081         (cgraph_make_edge_direct): New function.
4082         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
4083         the declaration of the call statement matches.
4084         (cgraph_node_remove_callees): Special-case indirect edges.
4085         (cgraph_clone_edge): Likewise.
4086         (cgraph_clone_node): Clone also the indirect edges.
4087         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
4088         indirect_call, dump count of indirect_calls edges.
4089         * ipa-prop.c (iinlining_processed_edges): New variable.
4090         (ipa_note_param_call): Create indirect edges instead of
4091         creating notes.  New parameter node.
4092         (ipa_analyze_call_uses): New parameter node, pass it on to
4093         ipa_note_param_call.
4094         (ipa_analyze_stmt_uses): Likewise.
4095         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
4096         (print_edge_addition_message): Work on edges rather than on notes.
4097         (update_call_notes_after_inlining): Likewise, renamed to
4098         update_indirect_edges_after_inlining.
4099         (ipa_create_all_structures_for_iinln): New function.
4100         (ipa_free_node_params_substructures): Do not free notes.
4101         (ipa_edge_duplication_hook): Propagate bits within
4102         iinlining_processed_edges bitmap.
4103         (ipa_node_duplication_hook): Do not duplicate notes.
4104         (free_all_ipa_structures_after_ipa_cp): Renamed to
4105         ipa_free_all_structures_after_ipa_cp.
4106         (free_all_ipa_structures_after_iinln): Renamed to
4107         ipa_free_all_structures_after_iinln.
4108         (ipa_write_param_call_note): Removed.
4109         (ipa_read_param_call_note): Removed.
4110         (ipa_write_indirect_edge_info): New function.
4111         (ipa_read_indirect_edge_info): Likewise.
4112         (ipa_write_node_info): Do not stream notes, do stream information
4113         in indirect edges.
4114         (ipa_read_node_info): Likewise.
4115         (lto_ipa_fixup_call_notes): Removed.
4116         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
4117         * ipa-inline.c (pass_ipa_inline): Likewise.
4118         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
4119         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
4120         * tree-inline.c (copy_bb): Removed an unnecessary double check for
4121         is_gimple_call.
4122         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
4123         edges.
4124         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
4125         (output_cgraph): Stream also indirect edges.
4126         (lto_output_edge): Added capability to stream indirect edges.
4127         (input_edge): Likewise.
4128         (input_cgraph_1): Likewise.
4129         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
4130         of indirect edges.
4131
4132 2010-04-28  Richard Guenther  <rguenther@suse.de>
4133
4134         PR tree-optimization/43879
4135         PR tree-optimization/43909
4136         * tree-ssa-structalias.c (struct variable_info): Add
4137         only_restrict_pointers flag.
4138         (new_var_info): Initialize it.  Increment stats.total_vars here.
4139         (create_function_info_for): Do not increment stats.total_vars here.
4140         (get_function_part_constraint): Fix build with C++.
4141         (insert_into_field_list): Remove.
4142         (push_fields_onto_fieldstack): Properly merge fields.
4143         (create_variable_info_for): Split and simplify.
4144         (create_variable_info_for_1): New piece.
4145         (intra_create_variable_infos): Properly make restrict constraints
4146         from parameters.
4147
4148 2010-04-28  Richard Guenther  <rguenther@suse.de>
4149
4150         PR c++/43880
4151         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
4152
4153 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4154             Jan Hubicka <hubicka@ucw.cz>
4155
4156         * doc/invoke.texi (-Wsuggest-attribute=const,
4157         -Wsuggest-attribute=pure): Document.
4158         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
4159         (function_always_visible_to_compiler_p,
4160         suggest_attribute, warn_function_pure, warn_function_const):
4161         New functions.
4162         (check_call): Improve debug info.
4163         (analyze_function): Do not check availability.
4164         (add_new_function): Check availability.
4165         (propagate): Output warnings.
4166         (skip_function_for_local_pure_const): New function.
4167         (local_pure_const): Use it; output warnings.
4168         * common.opt (Wsuggest-attribute=const,
4169         Wsuggest-attribute=pure): New.
4170
4171 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
4172
4173         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
4174         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
4175         or DW_CFA_def_cfa_offset{,_sf}.
4176
4177 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
4178
4179         * tree.h: Fix truncated long macros.
4180
4181 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
4182
4183         * collect2.c (TARGET_64BIT): Redefine to target's default.
4184         * tlink.c: Likewise.
4185         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
4186         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
4187         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
4188         for underscoring __USER_LABEL_PREFIX__.
4189         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
4190         (SUB_LINK_ENTRY32): New.
4191         (SUB_LINK_ENTRY64): New.
4192         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
4193         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
4194         (SUB_LINK_ENTRY64): New.
4195         (SUB_LINK_ENTRY): New.
4196         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
4197         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
4198         x64 target is choosen.
4199         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
4200         * configure: Regenerated.
4201         * configure.ac (leading-mingw64-underscores): Option added.
4202
4203 2010-04-27  Jan Hubicka  <jh@suse.cz>
4204
4205         * doc/invoke.texi (-fipa-profile): Document.
4206         * opts.c (decode_options): Enable ipa-profile at -O1.
4207         * timevar.def (TV_IPA_PROFILE): Define.
4208         * common.opt (fipa-profile): Add.
4209         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
4210         flag for clones.
4211         (cgraph_propagate_frequency): Handle only local ones.
4212         * tree-pass.h (pass_ipa_profile): Declare.
4213         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
4214         (pass_ipa_profile): Use TV_IPA_PROFILE.
4215         * ipa.c (ipa_profile): New function.
4216         (gate_ipa_profile): Likewise.
4217         (pass_ipa_profile): New global variable.
4218         * passes.c (pass_ipa_profile): New.
4219
4220 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
4221
4222         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
4223
4224 2010-04-27  Martin Jambor  <mjambor@suse.cz>
4225
4226         PR middle-end/43812
4227         * ipa.c (dissolve_same_comdat_group_list): New function.
4228         (function_and_variable_visibility): Call
4229         dissolve_same_comdat_group_list when comdat group contains external or
4230         newly local nodes.
4231         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
4232         lists are circular and that they contain only DECL_ONE_ONLY nodes.
4233
4234 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
4235
4236         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
4237         (const_hash_1) <VECTOR_CST>: New case.
4238         (compare_constant) <VECTOR_CST>: Likewise.
4239         <ADDR_EXPR>: Deal with LABEL_REFs.
4240         (copy_constant) <VECTOR_CST>: New case.
4241
4242 2010-04-27  Jan Hubicka  <jh@suse.cz>
4243
4244         * cgraph.c (cgraph_propagate_frequency): New function.
4245         * cgraph.h (cgraph_propagate_frequency): Declare.
4246         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
4247         cgraph_propagate_frequency.
4248
4249 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
4250
4251         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
4252
4253 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
4254
4255         PR target/40657
4256         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
4257         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
4258         here to determine which regs to push and how much stack to reserve.
4259
4260 2010-04-27  Jie Zhang  <jie@codesourcery.com>
4261
4262         * doc/gimple.texi (gimple_statement_with_ops): Remove
4263         addresses_taken field.
4264         (gimple_statement_with_memory_ops): Likewise.
4265
4266 2010-04-27  Jan Hubicka  <jh@suse.cz>
4267
4268         * tree-inline.c (eni_inlining_weights): Remove.
4269         (estimate_num_insns): Special case more builtins.
4270
4271 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
4272
4273         PR c/32207
4274         * c-typeck.c (build_binary_op): Move forward check for comparison
4275         pointer with null pointer constant and adjust the diagnostic message.
4276
4277 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
4278
4279         PR lto/42776
4280         * configure.ac (gcc_cv_as_section_has_align): Set if installed
4281         binutils supports extended .section directive needed by LTO, or
4282         warn if older binutils found.
4283         (LTO_BINARY_READER): New AC_SUBST'd variable.
4284         (LTO_USE_LIBELF): Likewise.
4285         * gcc/config.gcc (lto_binary_reader): New target-specific configure
4286         variable.
4287         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
4288         (LTO_USE_LIBELF): Likewise.
4289         * configure: Regenerate.
4290
4291         * collect2.c (is_elf): Rename from this ...
4292         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
4293          object files in addition to ELF-formatted ones.
4294         (scan_prog_file): Caller updated.  Also allow for LTO info marker
4295         symbol to be prefixed or not by an extra underscore.
4296
4297         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
4298         * config/i386/winnt.c: Also #include lto-streamer.h
4299         (i386_pe_asm_named_section): Specify 1-byte section alignment for
4300         LTO named sections.
4301         (i386_pe_asm_output_aligned_decl_common): Add comment.
4302         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
4303
4304 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
4305
4306         PR target/43889
4307         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
4308         Add missing earlyclobber for second alternative.
4309
4310 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
4311
4312         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
4313         bits for artificial defs at the top of the block.
4314         * fwprop.c (single_def_use_enter_block): Don't call it.
4315
4316 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
4317
4318         PR 43715
4319         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
4320         instead of "$gcc_cv_objdump -T".
4321         Use "-undefined dynamic_lookup" on darwin.
4322         * gcc/configure: Regenerate.
4323
4324 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
4325
4326         PR c/43893
4327         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
4328
4329 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
4330
4331         * c-parser.c (struct c_token): Move location field up.
4332         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
4333         (struct c_declspecs): Convert typespec_word, storage_class, and
4334         default_int_p into bitfields.
4335         (struct c_declarator): Move loc field up.
4336
4337 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
4338
4339         * cfgloop.h (struct loop): Move can_be_parallel field up.
4340         * ipa-prop.h (struct ip_node_params): Move bitfields up.
4341         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
4342         down.
4343         (struct iv_cand): Convert pos field into a bitfield.
4344         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
4345         field up.
4346         (struct _stmt_vec_info): Shuffle fields for better packing.
4347
4348 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
4349
4350         * varasm.c (IN_NAMED_SECTION): Remove guard.
4351         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
4352         (IN_NAMED_SECTION_P): ...this.
4353         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
4354         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
4355
4356 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
4357
4358         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
4359         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
4360         of shadowing it.  Fix comments.
4361
4362 2010-04-26  Jan Hubicka  <jh@suse.cz>
4363
4364         * cgraph.c (cgraph_create_node): Set node frequency to normal.
4365         (cgraph_clone_node): Copy function frequency.
4366         * cgraph.h (node_frequency): New enum
4367         (struct cgraph_node): Add.
4368         * final.c (rest_of_clean_state): Update.
4369         * lto-cgraph.c (lto_output_node): Output node frequency.
4370         (input_overwrite_node): Input node frequency.
4371         * tre-ssa-loop-ivopts (computation_cost): Update.
4372         * lto-streamer-out.c (output_function): Do not output function
4373         frequency.
4374         * predict.c (maybe_hot_frequency_p): Update and handle functions
4375         executed once.
4376         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
4377         attribute lookup.
4378         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
4379         (compute_function_frequency): Set noreturn functions to be executed
4380         once.
4381         (choose_function_section): Update.
4382         * lto-streamer-in.c (input_function): Do not input function frequency.
4383         * function.c (allocate_struct_function): Do not initialize function
4384         frequency.
4385         * function.h (function_frequency): Remove.
4386         (struct function): Remove function frequency.
4387         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
4388         (try_update): Update.
4389         * tree-inline.c (initialize_cfun): Do not update function frequency.
4390         * passes.c (pass_init_dump_file): Update.
4391         * i386.c (ix86_compute_frame_layout): Update.
4392         (ix86_pad_returns): Update.
4393
4394 2010-04-26  Jie Zhang  <jie@codesourcery.com>
4395
4396         PR tree-optimization/43833
4397         * tree-vrp.c (range_int_cst_p): New.
4398         (range_int_cst_singleton_p): New.
4399         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
4400         when both operands are constants.  Use range_int_cst_p in
4401         BIT_IOR_EXPR case.
4402
4403 2010-04-26  Jan Hubicka  <jh@suse.cz>
4404
4405         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
4406
4407 2010-04-26  Richard Guenther  <rguenther@suse.de>
4408
4409         PR lto/43080
4410         * gimple.c (gimple_decl_printable_name): Deal gracefully
4411         with a NULL DECL_NAME.
4412
4413 2010-04-26  Richard Guenther  <rguenther@suse.de>
4414
4415         PR lto/42425
4416         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
4417         if emitting debug information and it is either a function
4418         or a namespace decl.
4419
4420 2010-04-26  Ira Rosen  <irar@il.ibm.com>
4421
4422         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
4423         determine if the statement is vectorizable, and a macro to access it.
4424         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
4425         Skip statements that can't be vectorized. If the analysis fails,
4426         mark the statement as unvectorizable if vectorizing basic block.
4427         (vect_compute_data_refs_alignment): Likewise.
4428         (vect_verify_datarefs_alignment): Skip statements marked as
4429         unvectorizable. Add print.
4430         (vect_analyze_group_access): Skip statements that can't be
4431         vectorized. If the analysis fails, mark the statement as
4432         unvectorizable if vectorizing basic block.
4433         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
4434         * tree-vect-stmts.c (vectorizable_store): Fix the number of
4435         generated stmts for SLP.
4436         (new_stmt_vec_info): Initialize the new field.
4437         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
4438         statements marked as unvectorizable.
4439
4440 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
4441
4442         * c-common.c (flag_isoc1x): New.
4443         (flag_isoc99): Update comment.
4444         * c-common.h (flag_isoc1x): New.
4445         (flag_isoc99): Update comment.
4446         * c-cppbuiltin.c (builtin_define_float_constants): Also define
4447         __<type>_DECIMAL_DIG__.
4448         * c-opts.c (set_std_c1x): New.
4449         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
4450         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
4451         * c.opt (-std=c1x, -std=gnu1x): New options.
4452         * doc/cpp.texi: Mention -std=c1x.
4453         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
4454         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
4455         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
4456         * doc/standards.texi: Mention C1X.
4457         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
4458         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
4459         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
4460         Define for C1X.
4461
4462 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
4463
4464         * config/i386/gmon-sol2.c (_mcleanup): Change format string
4465         placeholder from 0x%x to %#x.
4466         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
4467         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
4468         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
4469         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
4470         * config/i386/i386.c (ix86_target_string): Ditto.
4471         (output_pic_addr_const): Ditto.
4472         (print_operand): Ditto.
4473
4474 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
4475
4476         * combine.c (find_split_point): Add third argument.  Use it
4477         to find nested multiply-accumulate instructions.  Adjust calls.
4478         (try_combine): Adjust call to find_split_point.
4479
4480 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
4481
4482         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
4483
4484 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
4485
4486         PR tree-optimization/41442
4487         * fold-const.c (merge_truthop_with_opposite_arm): New function.
4488         (fold_binary_loc): Call it.
4489
4490 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4491
4492         * toplev.c (general_init): Set default for fdiagnostics-show-option.
4493         * opts.c (common_handle_option): Allow disabling it.
4494         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
4495
4496 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
4497
4498         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
4499         between modes if both types are integral.
4500
4501 2010-04-23  Richard Guenther  <rguenther@suse.de>
4502
4503         PR tree-optimization/43572
4504         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
4505
4506 2010-04-23  Richard Guenther  <rguenther@suse.de>
4507
4508         PR lto/43455
4509         * tree-inline.c (tree_can_inline_p): Also check compatibility
4510         of return types.
4511
4512 2010-04-23  Martin Jambor  <mjambor@suse.cz>
4513
4514         PR tree-optimization/43846
4515         * tree-sra.c (struct access): New flag grp_assignment_read.
4516         (build_accesses_from_assign): Set grp_assignment_read.
4517         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
4518         (enum mark_read_status): New type.
4519         (analyze_access_subtree): Propagate grp_assignment_read, create
4520         accesses also if both direct_read and root->grp_assignment_read.
4521
4522 2010-04-23  Martin Jambor  <mjambor@suse.cz>
4523
4524         PR middle-end/43835
4525         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
4526         function does not have type attributes.
4527
4528 2010-04-23  Richard Guenther  <rguenther@suse.de>
4529
4530         PR lto/42653
4531         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
4532         of FUNCTION_DECLs.
4533
4534 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4535
4536         * sese.h (create_if_region_on_edge): Remove.
4537
4538         * sese.c (create_if_region_on_edge): Make static.
4539
4540         * tree-inline.c: Do not include ggc.h.
4541
4542         * expr.c: Do not include ggc.h.
4543
4544         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
4545         dependencies.
4546
4547 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
4548
4549         PR target/43744
4550         * config/sh/sh.c (find_barrier): Don't emit a constant pool
4551         in the middle of insns for casesi_worker_2.
4552
4553 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
4554
4555         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
4556
4557 2010-04-22  Ira Rosen  <irar@il.ibm.com>
4558
4559         PR tree-optimization/43842
4560         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
4561         loop unrolling in update of exit phis. Fix comment.
4562         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
4563         least two reduction statements in the loop before starting SLP
4564         analysis.
4565
4566 2010-04-22  Nick Clifton  <nickc@redhat.com>
4567
4568         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
4569
4570 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
4571
4572         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
4573         to simplify a + ~a.
4574
4575 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4576
4577         * tree-parloops.c (loop_parallel_p): New argument
4578         parloop_obstack.  Pass it down.
4579         (parallelize_loops): New variable parloop_obstack.  Initialize it,
4580         pass it down, free it.
4581
4582         * tree-loop-linear.c (linear_transform_loops): Pass down
4583         lambda_obstack.
4584
4585         * tree-data-ref.h (lambda_compute_access_matrices): New argument
4586         of type struct obstack *.
4587
4588         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
4589         scratch_obstack.  Initialize it, pass down, free it.
4590
4591         * lambda.h (lambda_loop_new): Remove.
4592         (lambda_matrix_new, lambda_matrix_inverse)
4593         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
4594         argument of type struct obstack *.
4595
4596         * lambda-trans.c (lambda_trans_matrix_new): New argument
4597         lambda_obstack.  Pass it down, use obstack allocation for ret.
4598         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
4599         it down.
4600
4601         * lambda-mat.c (lambda_matrix_get_column)
4602         (lambda_matrix_project_to_null): Remove.
4603         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
4604         allocation for mat.
4605         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
4606         lambda_obstack.
4607
4608         * lambda-code.c (lambda_loop_new): New function.
4609         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
4610         (lambda_compute_auxillary_space, lambda_compute_target_space)
4611         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
4612         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
4613         (build_access_matrix): New argument lambda_obstack.  Use obstack
4614         allocation for am.
4615         (lambda_compute_step_signs, lambda_compute_access_matrices): New
4616         argument lambda_obstack.  Pass it down.
4617
4618 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4619
4620         * optabs.h (expand_widening_mult): Declare.
4621
4622 2010-04-22  Richard Guenther  <rguenther@suse.de>
4623
4624         PR tree-optimization/43845
4625         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
4626         lookup the CALL_EXPR function and arguments.
4627
4628 2010-04-22  Nick Clifton  <nickc@redhat.com>
4629
4630         * config/stormy16/stormy16.c
4631         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
4632         * config/stormy16/stormy16.h: Tidy up formatting.
4633         (DONT_USE_BUILTIN_SETJMP): Remove definition.
4634         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
4635         (ineqbranchsi): Delete pattern.
4636         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
4637         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
4638         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
4639         stormy16-lib2-ucmpsi2.c.
4640
4641 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4642
4643         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
4644         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
4645         extra set merge_set_noclobber, and use it to relax the final test
4646         slightly.
4647         * df.h (df_simulate_find_noclobber_defs): Declare.
4648         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
4649         conditional defs.
4650         (df_simulate_find_noclobber_defs): New function.
4651
4652 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
4653
4654         * config/i386/i386.md: Use {} around multi-line preparation statements.
4655
4656 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4657
4658         * c-tree.h (push_init_level, pop_init_level, set_init_index)
4659         (process_init_element): New argument of type struct obstack *.
4660
4661         * c-typeck.c (push_init_level, pop_init_level, set_designator)
4662         (set_init_index, set_init_label, set_nonincremental_init)
4663         (set_nonincremental_init_from_string, find_init_member)
4664         (output_init_element, output_pending_init_elements)
4665         (process_init_element): New argument braced_init_obstack.  Pass it
4666         down.
4667         (push_range_stack, add_pending_init): New argument
4668         braced_init_obstack.  Use obstack allocation.
4669
4670         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
4671         braced_init_obstack.  Pass it down.
4672         (c_parser_braced_init): New variables ret, braced_init_obstack.
4673         Initialize obstack, pass it down and finally free it.
4674
4675 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4676
4677         PR middle-end/29274
4678         * tree-pass.h (pass_optimize_widening_mul): Declare.
4679         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
4680         gate_optimize_widening_mul): New static functions.
4681         (pass_optimize_widening_mul): New.
4682         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
4683         <case MULT_EXPR>: Remove support for widening multiplies.
4684         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
4685         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
4686         simplify_gen_unary rather than directly building extensions.
4687         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
4688         WIDEN_MULT_EXPR.
4689         * expmed.c (expand_widening_mult): New function.
4690         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
4691
4692 2010-04-21  Jan Hubicka  <jh@suse.cz>
4693
4694         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
4695         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
4696         * lto-wpa-fixup.c: Remove.
4697         * Makefile.in (lto-wpa-fixup.o): Remove.
4698         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
4699         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
4700         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
4701
4702 2010-04-21  Jan Hubicka  <jh@suse.cz>
4703
4704         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
4705         add write_optimization_summary, read_optimization_summary.
4706         (ipa_write_summaries_of_cgraph_node_set): Remove.
4707         (ipa_write_optimization_summaries): Declare.
4708         (ipa_read_optimization_summaries): Declare.
4709         * ipa-cp.c (pass_ipa_cp): Update.
4710         * ipa-reference.c (pass_ipa_reference): Update.
4711         * ipa-pure-const.c (pass_ipa_pure_const): Update.
4712         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
4713         Update.
4714         * ipa-inline.c (pass_ipa_inline): Update.
4715         * ipa.c (pass_ipa_whole_program): Update.
4716         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
4717         * passes.c (ipa_write_summaries_1): Do not test wpa.
4718         (ipa_write_optimization_summaries_1): New.
4719         (ipa_write_optimization_summaries): New.
4720         (ipa_read_summaries): Do not test ltrans.
4721         (ipa_read_optimization_summaries_1): New.
4722         (ipa_read_optimization_summaries): New.
4723
4724 2010-04-21  Jan Hubicka  <jh@suse.cz>
4725
4726         * lto-cgraph.c (lto_output_node): Do not output comdat groups
4727         for boundary nodes.
4728         (output_cgraph): Do not arrange comdat groups for boundary nodes.
4729
4730 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4731
4732         PR debug/40040
4733         * dwarf2out.c (add_name_and_src_coords_attributes): Add
4734         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
4735
4736 2010-04-21  Jan Hubicka  <jh@suse.cz>
4737
4738         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
4739
4740 2010-04-21  Jan Hubicka  <jh@suse.cz>
4741
4742         * varpool.c (decide_is_variable_needed): Variable is always needed
4743         during ltrans.
4744
4745 2010-04-21  Jan Hubicka  <jh@suse.cz>
4746
4747         * opts.c (decode_options): Enable pure-const pass for whopr.
4748
4749 2010-04-21  Jan Hubicka  <jh@suse.cz>
4750
4751         * cgraph.c (dump_cgraph_node): Dump also assembler name.
4752         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
4753         at WPA dumping.
4754         (cgraph_decide_inlining): Do not expect callee to be removed in all
4755         cases.
4756
4757 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
4758
4759         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
4760
4761 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
4762
4763         * config/i386/i386.md (x86_shrd): Add athlon_decode and
4764         amdfam10_decode attributes.
4765
4766 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4767
4768         PR middle-end/43570
4769         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
4770         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
4771         (lower_copyprivate_clauses): Use private var in outer
4772         context instead of original var.  Make sure the types
4773         are correct for VLAs.
4774
4775 2010-04-21  Richard Guenther  <rguenther@suse.de>
4776
4777         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
4778         to non-pointer objects.
4779
4780 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4781
4782         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
4783         last chain entry if it starts with the still current label.
4784         (add_location_or_const_value_attribute): Check that
4785         loc_list->first->next is NULL instead of comparing ->first with ->last.
4786         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
4787         to add_var_loc_to_decl.
4788
4789         * dwarf2out.c (output_call_frame_info): For dw_cie_version
4790         >= 4 add also address size and segment size fields into CIE header.
4791
4792         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
4793         long as address size is the same as sizeof (void *) and
4794         segment size is 0.
4795         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
4796         address size or segment size is unexpected, return DW_EH_PE_omit.
4797         (classify_object_over_fdes): If get_cie_encoding returned
4798         DW_EH_PE_omit, return -1.
4799         (init_object): If classify_object_over_fdes returned -1,
4800         pretend there were no FDEs at all.
4801
4802 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
4803
4804         * config/i386/i386.md (bswap<mode>2): Macroize expander from
4805         bswap{si,di}2 using SWI48 mode iterator.
4806         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
4807         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
4808         set modrm attribute of bswap insn to 0 and remove length attribute.
4809         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
4810         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
4811         set mode attribute to <MODE> and remove length attribute.
4812
4813 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
4814
4815         PR rtl-optimization/43520
4816         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
4817         zero available registers.
4818
4819 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4820
4821         * builtins.c (fold_builtin_cproj): Fold more cases.
4822
4823 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4824
4825         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
4826         (fold_builtin_1): Fold builtin cproj.
4827         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
4828         Use ATTR_CONST_NOTHROW_LIST.
4829
4830 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
4831
4832         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
4833         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
4834         ffsi2_no_cmove for !TARGET_CMOVE.
4835         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
4836         (ffssi2): Remove expander.
4837         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
4838         mode iterator.
4839         (ctz<mode>2): Ditto from ctz{si,di}2.
4840         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
4841         mode iterator.
4842         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
4843         mode iterator.
4844
4845 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
4846
4847         * dwarf2out.c (AT_linkage_name): Define.
4848         (clone_as_declaration): Handle DW_AT_linkage_name.
4849         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
4850         of DW_AT_MIPS_linkage_name.
4851         (move_linkage_attr): Likewise.
4852         (dwarf2out_finish): Likewise.
4853
4854 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
4855
4856         PR middle-end/41952
4857         * fold-const.c (fold_comparison): New folding rule.
4858
4859 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
4860
4861         * double-int.h (double_int_setbit): Declare.
4862         * double-int.c (double_int_setbit): New function.
4863         * rtl.h (immed_double_int_const): Declare.
4864         * emit-rtl.c (immed_double_int_const): New function.
4865         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
4866         and immed_double_int_const functions.
4867         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
4868         expand_copysign_bit):  (Ditto.).
4869         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
4870         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
4871         * dojump.c (prefer_and_bit_test): (Ditto.).
4872         * expr.c (convert_modes, reduce_to_bit_field_precision,
4873         const_vector_from_tree): (Ditto.).
4874         * expmed.c (mask_rtx, lshift_value): (Ditto.).
4875
4876 2010-04-20  Jan Hubicka  <jh@suse.cz>
4877
4878         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
4879         (dump_cgraph_node): Dump new flags.
4880         * cgraph.h (struct cgraph_node): Add flags
4881         reachable_from_other_partition and in_other_partition.
4882         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
4883         other partition can not be removed.
4884         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
4885         the other partition must be output; silence sanity checking on
4886         leaking functions bodies from other paritition.
4887         * lto-cgraph.c (reachable_from_other_partition_p): New function.
4888         (lto_output_node): Output new flags; do not sanity check that inline
4889         clones are output; drop lto_forced_extern_inline_p code; do not mock
4890         visibility flags at partition boundaries.
4891         (add_node_to): New function.
4892         (output_cgraph): Use it to sort functions so masters appear before
4893         clones.
4894         (input_overwrite_node): Input new flags.
4895         * passes.c (ipa_write_summaries): Do not call
4896         lto_new_extern_inline_states.
4897         * lto-section-out.c (forced_extern_inline,
4898         lto_new_extern_inline_states lto_delete_extern_inline_states,
4899         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
4900         * lto-streamer.h (lto_new_extern_inline_states,
4901         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
4902         lto_forced_extern_inline_p): Kill.
4903
4904 2010-04-20  Richard Guenther  <rguenther@suse.de>
4905
4906         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
4907         from vars that can have pointers.
4908         (process_constraint): Dump useless constraints.
4909
4910 2010-04-20  Richard Guenther  <rguenther@suse.de>
4911
4912         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
4913         (dump_sa_points_to_info): Remove asserts.
4914         (init_base_vars): nothing_id isn't an escape point nor does it
4915         have pointers.
4916
4917 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
4918
4919         * tree.h (TYPE_REF_IS_RVALUE): Define.
4920         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
4921         should_move_die_to_comdat, prune_unused_types_walk): Handle
4922         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
4923         (modified_type_die, gen_reference_type_die): Emit
4924         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
4925         if TYPE_REF_IS_RVALUE and -gdwarf-4.
4926
4927 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4928
4929         PR target/43635
4930         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
4931         calls for -fpic -m31 if they have been sibcall optimized.
4932
4933 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
4934
4935         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
4936         ar.lc fixed and call-used.
4937
4938         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
4939
4940 2010-04-19  Jan Hubicka  <jh@suse.cz>
4941
4942         * opts.c (decode_options): Disable whpr incompatible passes.
4943         * lto/lto.c (lto_1_to_1_map): Skip clones.
4944         (read_cgraph_and_symbols): Do not mark everything as needed.
4945         (do_whole_program_analysis): Do map only after optimizing;
4946         set proper cgraph_state; use passmanager.
4947
4948 2010-04-19  DJ Delorie  <dj@redhat.com>
4949
4950         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
4951         POINTER_PLUS_EXPR and fix them.
4952
4953 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
4954
4955         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
4956         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
4957         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
4958         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
4959         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
4960         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
4961         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
4962         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
4963         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
4964         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
4965         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
4966
4967 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4968
4969         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
4970         (check_cond_move_block): Likewise.
4971         (cond_move_process_if_block): Likewise.
4972         (noce_find_if_block): Improve formatting.
4973         (find_if_header): Pass 0 to memset and tweak conditions.
4974         (cond_exec_find_if_block): Fix long lines and tweak conditions.
4975
4976 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
4977
4978         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
4979         for -gdwarf-4.
4980
4981         PR middle-end/43337
4982         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
4983         with non-local decl doesn't need chain.
4984
4985 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
4986
4987         * ira-color.c (allocno_reload_assign): Avoid accumulating
4988         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
4989
4990 2010-04-19  Martin Jambor  <mjambor@suse.cz>
4991
4992         * gimple.h (create_tmp_reg): Declare.
4993         * gimplify.c (create_tmp_reg): New function.
4994         (gimplify_return_expr): Use create_tmp_reg.
4995         (gimplify_omp_atomic): Likewise.
4996         (gimple_regimplify_operands): Likewise.
4997         * tree-dfa.c (make_rename_temp): Likewise.
4998         * tree-predcom.c (predcom_tmp_var): Likewise.
4999         (reassociate_to_the_same_stmt): Likewise.
5000         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
5001         (get_replaced_param_substitute): Likewise.
5002         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
5003         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
5004         * tree-ssa-pre.c (get_representative_for): Likewise.
5005         (create_expression_by_pieces): Likewise.
5006         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
5007         (create_tailcall_accumulator): Likewise.
5008
5009 2010-04-19  Martin Jambor  <mjambor@suse.cz>
5010
5011         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
5012         new_stmt.
5013         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
5014
5015 2010-04-19  Richard Guenther  <rguenther@suse.de>
5016
5017         PR tree-optimization/43796
5018         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
5019         from SCEV in the lattice.
5020         (vrp_visit_phi_node): Dump change.
5021
5022 2010-04-19  Richard Guenther  <rguenther@suse.de>
5023
5024         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
5025         * configure: Re-generated.
5026
5027 2010-04-19  Richard Guenther  <rguenther@suse.de>
5028
5029         PR tree-optimization/43783
5030         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
5031         constant ARRAY_REF operands two and three if possible.
5032
5033 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
5034
5035         PR target/43766
5036         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
5037
5038 2010-04-19  Jie Zhang  <jie@codesourcery.com>
5039
5040         PR target/43662
5041         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
5042
5043 2010-04-19  Ira Rosen  <irar@il.ibm.com>
5044
5045         PR tree-optimization/37027
5046         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
5047         and macro to access it.
5048         (vectorizable_reduction): Add argument.
5049         (vect_get_slp_defs): Likewise.
5050         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
5051         statements for possible use in SLP.
5052         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
5053         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
5054         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
5055         add new argument.
5056         (vectorizable_reduction): Likewise.
5057         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
5058         vect_get_slp_defs.
5059         (vectorizable_type_demotion, vectorizable_type_promotion,
5060         vectorizable_store): Likewise.
5061         (vect_analyze_stmt): Update call to vectorizable_reduction.
5062         (vect_transform_stmt): Likewise.
5063         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
5064         (vect_build_slp_tree): Fix indentation. Check that there are no loads
5065         from different interleaving chains in same node.
5066         (vect_slp_rearrange_stmts): New function.
5067         (vect_supported_load_permutation_p): Allow load permutations for
5068         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
5069         inside SLP nodes if necessary.
5070         (vect_analyze_slp_instance): Handle reductions.
5071         (vect_analyze_slp): Try to build SLP instances originating from groups
5072         of reductions.
5073         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
5074         (vect_get_constant_vectors): Create initial vectors for reductions
5075         according to reduction code. Add new argument.
5076         (vect_get_slp_defs): Add new argument, pass it to
5077         vect_get_constant_vectors.
5078         (vect_schedule_slp_instance): Remove SLP tree root statements.
5079
5080 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
5081
5082         * tree.h (ENUM_IS_SCOPED): Define.
5083         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
5084         for ENUM_IS_SCOPED enums.
5085
5086 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5087
5088         * fold-const.c (fold_comparison): Use ssizetype.
5089         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
5090         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
5091         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
5092         * tree-object-size.c (compute_object_sizes): Use size_type_node.
5093
5094         * tree.h (initialize_sizetypes): Remove parameter.
5095         (build_common_tree_nodes): Remove second parameter.
5096         * stor-layout.c (initialize_sizetypes): Remove parameter.
5097         Always create an unsigned type.
5098         (set_sizetype): Assert that the passed type is unsigned and simplify.
5099         * tree.c (build_common_tree_nodes): Remove second parameter.
5100         Adjust call to initialize_sizetypes.
5101         * c-decl.c (c_init_decl_processing): Remove second argument in call to
5102         build_common_tree_nodes.
5103
5104 2010-04-18  Matthias Klose  <doko@ubuntu.com>
5105
5106         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
5107
5108 2010-04-18  Ira Rosen  <irar@il.ibm.com>
5109
5110         PR tree-optimization/43771
5111         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
5112         load permutation doesn't have gaps.
5113
5114 2010-04-18  Jan Hubicka  <jh@suse.cz>
5115
5116         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
5117         (sse_prologue_save_insn expander): Use new pattern.
5118         (sse_prologue_save_insn1): New pattern and splitter.
5119         (sse_prologue_save_insn): Update to deal also with 64bit aligned
5120         blocks.
5121         * i386.c (setup_incoming_varargs_64): Do not compute jump
5122         destination here.
5123         (ix86_gimplify_va_arg): Update alignment needed.
5124         (ix86_local_alignment): Do not align all local arrays to 128bit.
5125
5126 2010-04-17  Jan Hubicka  <jh@suse.cz>
5127
5128         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
5129
5130 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5131
5132         * arm.md (negdi2): Remove redundant code to force values into a
5133         register.
5134
5135 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5136
5137         * arm/bpabi.S: Add EABI alignment attributes to objects.
5138         * arm/bpabi-v6m.S: Likewise.
5139         * arm/crti.asm: Likewise.
5140         * arm/crtn.asm: Likewise.
5141         * arm/lib1funcs.asm: Likewise.
5142         * arm/libunwind.S: Likewise.
5143
5144 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5145
5146         * arm-protos.h (tune_params): New structure.
5147         * arm.c (current_tune): New variable.
5148         (arm_constant_limit): Delete.
5149         (struct processors): Add pointer to the tune parameters.
5150         (arm_slowmul_tune): New tuning option.
5151         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
5152         (all_cores): Adjust to pick up the tuning model.
5153         (arm_constant_limit): New function.
5154         (arm_override_options): Select the appropriate tuning model.  Delete
5155         initialization of arm_const_limit.
5156         (arm_split_constant): Use the new constant-limit model.
5157         (arm_rtx_costs): Pick up the current tuning model.
5158         * arm.md (is_strongarm, is_xscale): Delete.
5159         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
5160         for Xscale variant architectures.
5161         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
5162
5163 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5164
5165         * config/arm/arm.c (arm_gen_constant): Remove unused variable
5166         can_shift.
5167         (arm_rtx_costs_1): Remove unused variable extra_cost.
5168         (arm_unwind_emit_set): Use variable offset.
5169         (thumb1_output_casesi): Remove unused variable flags.
5170
5171 2010-04-16  Jeff Law  <law@redhat.com>
5172
5173         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
5174         needing assignment rather than doing a two-phase assignment.  Remove
5175         unused variable 'm'.
5176
5177 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5178
5179         PR bootstrap/43767
5180         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
5181
5182 2010-04-16  Doug Kwan  <dougkwan@google.com>
5183
5184         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
5185         (next_operand_entry_id): New static variable.
5186         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
5187         (add_to_ops_vec): Assigned unique ID to operand entry.
5188         (struct oecount_s): New field ID.
5189         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
5190         (undistribute_ops_list): Assign unique IDs to oecounts.
5191         (init_reassoc): reset next_operand_entry_id.
5192
5193 2010-04-16  Doug Kwan  <dougkwan@google.com>
5194
5195         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
5196         missing left parenthesis.
5197
5198 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
5199
5200         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
5201         *btdi_rex64 using SWI48 mode iterator.
5202         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
5203         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
5204         *jcc_btdi_mask_rex64.
5205
5206 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
5207
5208         * double-int.h (tree_to_double_int): Convert to macro.
5209         * double-int.c (tree_to_double_int): Remove.
5210
5211 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5212
5213         PR debug/43762
5214         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
5215         with want_address 2 and in case a single element list might be
5216         possible, call it again with want_address 0.
5217
5218 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
5219
5220         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
5221         case 'W' print operands for HI mode.
5222         * config/h8300/h8300.h (Y0, Y2) : New constraints.
5223         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
5224         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
5225         * config/h8300/predicate.md (bit_register_indirect_operand): New.
5226
5227         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
5228
5229         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
5230         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
5231         #xx:3 and #xx:4 mode.
5232
5233         * config/h8300/h8300.md (inverted load with HImode dest): Add
5234         support for H8300SX.
5235
5236         * config/h8300/predicate.md (bit_operand): Allow immediate values that
5237         satisfy 'U' constraint.
5238
5239 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5240
5241         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
5242         * configure: Regenerate.
5243         * config.in: Regenerate.
5244         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
5245         works.
5246
5247 2010-04-16  Richard Guenther  <rguenther@suse.de>
5248
5249         * tree.h (struct tree_decl_minimal): Move pt_uid ...
5250         (struct tree_decl_common): ... here.
5251         (DECL_PT_UID): Adjust.
5252         (SET_DECL_PT_UID): Likewise.
5253         (DECL_PT_UID_SET_P): Likewise.
5254
5255 2010-04-16  Richard Guenther  <rguenther@suse.de>
5256
5257         PR tree-optimization/43572
5258         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
5259         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
5260         * tree-flow.h (is_call_clobbered): Remove.
5261         * tree-flow-inline.h (is_call_clobbered): Likewise.
5262         * tree-dfa.c (dump_variable): Do not dump call clobber state.
5263         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
5264         (execute_return_slot_opt): Adjust.
5265         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
5266         check for call clobbered vars here.
5267         (find_tail_calls): Move tailcall verification to the
5268         proper place.
5269
5270 2010-04-16  Diego Novillo  <dnovillo@google.com>
5271
5272         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
5273
5274 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5275
5276         PR target/40603
5277         * config/arm/arm.md (cbranchqi4): New pattern.
5278         * config/arm/predicates.md (const0_operand,
5279         cbranchqi4_comparison_operator): New predicates.
5280
5281 2010-04-16  Richard Guenther  <rguenther@suse.de>
5282
5283         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
5284         (dump_gimple_stmt): Likewise.
5285
5286 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5287
5288         * recog.h (struct recog_data): New field is_operator.
5289         (struct insn_operand_data): New field is_operator.
5290         * recog.c (extract_insn): Set recog_data.is_operator.
5291         * genoutput.c (output_operand_data): Emit code to set the
5292         is_operator field.
5293         * reload.c (find_reloads): Use it rather than testing for an
5294         empty constraint string.
5295
5296         PR target/41514
5297         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
5298         If the previous insn is a cbranchsi4_insn with the same arguments,
5299         omit the compare instruction.
5300
5301         * config/arm/arm.md (addsi3_cbranch): If destination is a high
5302         register, inputs must be low registers and we need a low register
5303         scratch.  Handle alternative 2 like alternative 3.
5304
5305 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5306
5307         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
5308         don't call get_addr on both.  If one expression is a VALUE and
5309         the other a REG, check VALUE's locs if the REG isn't among them.
5310
5311 2010-04-16  Christian Bruel  <christian.bruel@st.com>
5312
5313         * config/sh/sh.h (sh_frame_pointer_required): New function.
5314         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
5315         (flag_omit_frame_pointer) Set.
5316         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
5317         (rounded_frame_size): Adjust size with outgoing_args_size.
5318         (sh_set_return_address): Must return from stack pointer.
5319         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
5320         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
5321         (ACCUMULATE_OUTGOING_ARGS): Define.
5322         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
5323         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
5324
5325 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5326
5327         PR target/43471
5328         * config/sh/sh.c (sh_legitimize_reload_address): Use
5329         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
5330         Remove a unneeded check for offset_base.
5331
5332 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
5333
5334         * configure: Regenerated.
5335
5336 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5337
5338         * config/s390/s390.c (s390_call_save_register_used): Switch back
5339         to HARD_REGNO_NREGS.
5340
5341 2010-04-15  Richard Guenther  <rguenther@suse.de>
5342
5343         * alias.c (alias_set_subset_of): Handle alias-set zero
5344         child properly.
5345
5346 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
5347             Julian Brown  <julian@codesourcery.com>
5348
5349         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
5350         alternatives according to use of high and low regs.
5351         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
5352         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
5353         optimizing for size on Thumb-2.
5354
5355 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
5356
5357         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
5358
5359 2010-04-15  Richard Guenther  <rguenther@suse.de>
5360
5361         * tree-ssa-structalias.c (struct variable_info): Add
5362         is_fn_info flag.
5363         (new_var_info): Initialize it.
5364         (dump_constraints): Support printing last added constraints.
5365         (debug_constraints): Adjust.
5366         (dump_constraint_graph): Likewise.
5367         (make_heapvar_for): Check for NULL cfun.
5368         (get_function_part_constraint): New function.
5369         (get_fi_for_callee): Likewise.
5370         (find_func_aliases): Properly implement IPA PTA constraints.
5371         (process_ipa_clobber): New function.
5372         (find_func_clobbers): Likewise.
5373         (insert_into_field_list_sorted): Remove.
5374         (create_function_info_for): Properly allocate vars for IPA mode.
5375         Do not use insert_into_field_list_sorted.
5376         (create_variable_info_for): Properly generate constraints for
5377         global vars in IPA mode.
5378         (dump_solution_for_var): Always dump the solution.
5379         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
5380         (find_what_var_points_to): Adjust.
5381         (pt_solution_set): Change.
5382         (pt_solution_ior_into): New function.
5383         (pt_solution_empty_p): Export.
5384         (pt_solution_includes_global): Adjust.
5385         (pt_solution_includes_1): Likewise.
5386         (pt_solutions_intersect_1): Likewise.
5387         (dump_sa_points_to_info): Check some invariants.
5388         (solve_constraints): Move constraint dumping ...
5389         (compute_points_to_sets): ... here.
5390         (ipa_pta_execute): ... and here.
5391         (compute_may_aliases): Do not re-compute points-to info
5392         locally if IPA info is available.
5393         (ipa_escaped_pt): New global var.
5394         (ipa_pta_execute): Properly implement IPA PTA.
5395         * tree-into-ssa.c (dump_decl_set): Support dumping
5396         decls not in referenced-vars.
5397         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
5398         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
5399         (dump_points_to_solution): Likewise.
5400         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
5401         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
5402         (remap_gimple_stmt): Reset call clobber/use information if necessary.
5403         (copy_decl_to_var): Copy DECL_PT_UID.
5404         (copy_result_decl_to_var): Likewise.
5405         * tree.c (make_node_stat): Initialize DECL_PT_UID.
5406         (copy_node_stat): Copy it.
5407         * tree.h (DECL_PT_UID): New macro.
5408         (SET_DECL_PT_UID): Likewise.
5409         (DECL_PT_UID_SET_P): Likewise.
5410         (struct tree_decl_minimal): Add pt_uid member.
5411         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
5412         (pt_solution_empty_p): Declare.
5413         (pt_solution_set): Adjust.
5414         (ipa_escaped_pt): Declare.
5415         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
5416         * gimple-pretty-print.c (pp_points_to_solution): New function.
5417         (dump_gimple_call): Dump call clobber/use information.
5418         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
5419         * tree-pass.h (TDF_ALIAS): New dump option.
5420         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
5421         * doc/invoke.texi (-fipa-pta): Update documentation.
5422
5423 2010-04-15  Richard Guenther  <rguenther@suse.de>
5424
5425         * Makefile.in (OBJS-common): Add gimple-fold.o.
5426         (gimple-fold.o): New rule.
5427         * tree.h (maybe_fold_offset_to_reference,
5428         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
5429         prototypes ...
5430         * gimple.h: ... here.
5431         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
5432         may_propagate_address_into_dereference): Move prototypes ...
5433         * gimple.h: ... here.
5434         * tree-ssa-ccp.c (get_symbol_constant_value,
5435         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
5436         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
5437         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
5438         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
5439         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
5440         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
5441         gimplify_and_update_call_from_tree): Move ...
5442         * gimple-fold.c: ... here.  New file.
5443         (ccp_fold_builtin): Rename to ...
5444         (gimple_fold_builtin): ... this.
5445         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
5446
5447 2010-04-15  Richard Guenther  <rguenther@suse.de>
5448
5449         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
5450         fit_double_type, force_fit_type_double, add_double_with_sign,
5451         neg_double, mul_double_with_sign, lshift_double, rshift_double,
5452         lrotate_double, rrotate_double, div_and_round_double): Move ...
5453         * double-int.c: ... here.
5454         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
5455         add_double, neg_double, mul_double_with_sign, mul_double,
5456         lshift_double, rshift_double, lrotate_double, rrotate_double,
5457         div_and_round_double): Move prototypes ...
5458         * double-int.h: ... here.
5459
5460 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
5461
5462         PR target/43742
5463         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
5464         matching constraints to ensure inputs match the output.
5465
5466 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5467
5468         PR target/43742
5469         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
5470         in an input-only operand.
5471
5472 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
5473
5474         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
5475         (double_int_not, double_int_lshift, double_int_rshift): Declare.
5476         (double_int_negative_p): Convert to static inline function.
5477         * double-int.c (double_int_lshift, double_int_lshift): New functions.
5478         (double_int_negative_p): Remove.
5479         * tree.h (lshift_double, rshift_double):
5480         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
5481         * fold-const.c (fold_convert_const_int_from_real,
5482         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
5483         (lshift_double): Change type of arith argument to bool.
5484         (rshift_double): Change type of arith argument to bool. Correct
5485         comment.
5486         * expmed.c (mask_rtx, lshift_value): (Ditto.).
5487
5488 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
5489
5490         PR target/21803
5491         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
5492         at the start and end of the then/else blocks, and omit them from the
5493         conversion.
5494         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
5495         argument; all callers changed.  Pass zero to old_insns_match_p instead.
5496         (flow_find_head_matching_sequence): New function.
5497         (old_insns_match_p): Check REG_EH_REGION notes for calls.
5498         * basic-block.h (flow_find_cross_jump,
5499         flow_find_head_matching_sequence): Declare functions.
5500
5501 2010-04-14  Jason Merrill  <jason@redhat.com>
5502
5503         PR c++/36625
5504         * c-common.c (attribute_takes_identifier_p): New fn.
5505         * c-common.h: Declare it.
5506
5507 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5508
5509         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
5510         splitter condition.
5511         (*udivmod<mode>4): Ditto.
5512
5513 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5514
5515         * config/i386/i386.md (maxmin_int): Rename code attribute from
5516         maxminiprefix and update all users.
5517         (maxmin_float): Ditto from maxminfprefix.
5518         (logic): Ditto from logicprefix.
5519         (absneg_mnemonic): Ditto from absnegprefix.
5520         * config/i386/mmx.md: Update all users of maxminiprefix,
5521         maxminfprefix and logicprefix for rename.
5522         * config/i386/sse.md: Ditto.
5523         * config/i386/sync.md (sync_<code><mode>): Update for
5524         logicprefix rename.
5525
5526 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5527
5528         PR 42966
5529         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
5530         warnings converted to errors.
5531
5532 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5533
5534         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
5535         used insn_type variable.
5536         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
5537         to avoid set-but-not-used warning.
5538
5539 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5540
5541         * df-core.c (df_ref_debug): Change format string placeholder
5542         from 0x%x to %#x.
5543         * dwarf2asm.c (dw2_asm_output_data_raw,
5544         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
5545         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
5546         * dwarf2out.c (output_cfi, output_cfi_directive,
5547         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
5548         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
5549         Ditto.
5550         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
5551         * print-rtl.c (print_rtx): Ditto.
5552
5553 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
5554
5555         PR middle-end/42694
5556         * builtins.c (expand_builtin_pow_root): New function to expand pow
5557         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
5558         series of sqrt and cbrt calls under -ffast-math.
5559         (expand_builtin_pow): Call it.
5560
5561 2010-04-14  Michael Matz  <matz@suse.de>
5562
5563         PR tree-optimization/42963
5564         * tree-cfg.c (touched_switch_bbs): New static variable.
5565         (group_case_labels_stmt): New function broken out from ...
5566         (group_case_labels): ... here, use the above.
5567         (start_recording_case_labels): Allocate touched_switch_bbs.
5568         (end_recording_case_labels): Deallocate it, call
5569         group_case_labels_stmt.
5570         (gimple_redirect_edge_and_branch): Remember index of affected BB.
5571
5572 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5573
5574         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
5575         from insn template.
5576
5577 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5578
5579         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
5580
5581 2010-04-13  Jan Hubicka  <jh@suse.cz>
5582
5583         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
5584         of optimized out static functions.
5585         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
5586         cost computation.  Also sanity check for overflows.
5587         (update_caller_keys): Update cgraph_edge_badness call; properly
5588         update fibheap and sanity check that it is up to date.
5589         (add_new_edges_to_heap): Update cgraph_edge_badness.
5590         (cgraph_decide_inlining_of_small_function): Likewise;
5591         add sanity checking that badness in heap is up to date;
5592         improve dumping of reason; Update badness of calls to the
5593         offline copy of function currently inlined; dump badness
5594         of functions not inlined because of unit growth limits.
5595
5596 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
5597
5598         PR middle-end/32628
5599         * c-common.c (pointer_int_sum): Disregard overflow that occured only
5600         because of sign-extension change when converting to sizetype here...
5601         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
5602
5603         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
5604         the folding to constants.  Remove redundant final conversion.
5605         (fold_binary) <associate>: Do not associate if the re-association of
5606         constants alone overflows.
5607         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
5608         to the end of the list.
5609         (multiple_of_p) <COND_EXPR>: New case.
5610
5611 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5612
5613         * opt-functions.awk (opt_sanitized_name): New.
5614         (opt_enum): New.
5615         * optc-gen.awk: Use it
5616         * opth-gen.awk: Use it.
5617
5618 2010-04-13  Martin Jambor  <mjambor@suse.cz>
5619
5620         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
5621         (sra_modify_assign): Delete stmts loading dead data even if racc has no
5622         children.  Call replace_uses_with_default_def_ssa_name to handle
5623         SSA_NAES on lhs.
5624
5625 2010-04-13  Michael Matz  <matz@suse.de>
5626
5627         PR middle-end/43730
5628         * builtins.c (expand_builtin_interclass_mathfn): Also create
5629         a register if the predicate doesn't match.
5630
5631 2010-04-13  Diego Novillo  <dnovillo@google.com>
5632
5633         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
5634         * c-pch.c: Include timevar.h.
5635         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
5636         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
5637         * ggc-common.c: Include timevar.h.
5638         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
5639         * timevar.def (TV_PCH_SAVE): Define.
5640         (TV_PCH_CPP_SAVE): Define.
5641         (TV_PCH_PTR_REALLOC): Define.
5642         (TV_PCH_PTR_SORT): Define.
5643         (TV_PCH_RESTORE): Define.
5644         (TV_PCH_CPP_RESTORE): Define.
5645
5646 2010-04-13  Michael Matz  <matz@suse.de>
5647
5648         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
5649         into MINUS_EXPRs.
5650         (can_reassociate_p): New function.
5651         (break_up_subtract_bb, reassociate_bb): Use it.
5652
5653 2010-04-13  Richard Guenther  <rguenther@suse.de>
5654
5655         PR bootstrap/43737
5656         * builtins.c (c_readstr): Fix assert.
5657
5658 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
5659
5660         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
5661         when generating cltd insn.
5662
5663         (*ashl<mode>3_1): Remove special handling for register operand 2.
5664         (*ashlsi3_1_zext): Ditto.
5665         (*ashlhi3_1): Ditto.
5666         (*ashlhi3_1_lea): Ditto.
5667         (*ashlqi3_1): Ditto.
5668         (*ashlqi3_1_lea): Ditto.
5669         (*<shiftrt_insn><mode>3_1): Ditto.
5670         (*<shiftrt_insn>si3_1_zext): Ditto.
5671         (*<shiftrt_insn>qi3_1_slp): Ditto.
5672         (*<rotate_insn><mode>3_1): Ditto.
5673         (*<rotate_insn>si3_1_zext): Ditto.
5674         (*<rotate_insn>qi3_1_slp): Ditto.
5675
5676 2010-04-13  Richard Guenther  <rguenther@suse.de>
5677
5678         * tree-ssa-structalias.c (callused_id): Remove.
5679         (call_stmt_vars): New.
5680         (get_call_vi): Likewise.
5681         (lookup_call_use_vi): Likewise.
5682         (lookup_call_clobber_vi): Likewise.
5683         (get_call_use_vi): Likewise.
5684         (get_call_clobber_vi): Likewise.
5685         (make_transitive_closure_constraints): Likewise.
5686         (handle_const_call): Adjust to do per-call call-used handling.
5687         (handle_pure_call): Likewise.
5688         (find_what_var_points_to): Remove general callused handling.
5689         (init_base_vars): Likewise.
5690         (init_alias_vars): Initialize call_stmt_vars.
5691         (compute_points_to_sets): Process call-used and call-clobbered
5692         vars for call statements.
5693         (delete_points_to_sets): Free call_stmt_vars.
5694
5695 2010-04-13  Richard Guenther  <rguenther@suse.de>
5696
5697         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
5698         Only add RW dependence for dependence distance zero.
5699         Adjust maximal vectorization factor according to dependences.
5700         Move alignment handling ...
5701         (vect_find_same_alignment_drs): ... here.  New function.
5702         (vect_analyze_data_ref_dependences): Adjust.
5703         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
5704         (vect_analyze_data_refs): Adjust minimal vectorization factor
5705         according to data references.
5706         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
5707         dependences before determining the vectorization factor.
5708         Analyze alignment after determining the vectorization factor.
5709         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
5710         dependences before alignment.
5711         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
5712         Adjust prototype.
5713         (vect_analyze_data_refs): Likewise.
5714         (MAX_VECTORIZATION_FACTOR): New define.
5715
5716 2010-04-13  Duncan Sands  <baldrick@free.fr>
5717
5718         * except.h (lang_eh_type_covers): Remove.
5719         * except.c (lang_eh_type_covers): Likewise.
5720
5721 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5722             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5723
5724         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
5725         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
5726         UNITS_PER_LONG where it is ABI relevant.
5727         (s390_return_addr_rtx): Likewise.
5728         (s390_back_chain_rtx): Likewise.
5729         (s390_frame_area): Likewise.
5730         (s390_frame_info): Likewise.
5731         (s390_initial_elimination_offset): Likewise.
5732         (save_gprs): Likewise.
5733         (s390_emit_prologue): Likewise.
5734         (s390_emit_epilogue): Likewise.
5735         (s390_function_arg_advance): Likewise.
5736         (s390_function_arg): Likewise.
5737         (s390_va_start): Likewise.
5738         (s390_gimplify_va_arg): Likewise.
5739         (s390_function_profiler): Likewise.
5740         (s390_optimize_prologue): Likewise.
5741         (s390_rtx_costs): Likewise.
5742         (s390_secondary_reload): Likewise.
5743         (s390_promote_function_mode): Likewise.
5744         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
5745         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
5746         registers available.
5747         (s390_unwind_word_mode): New function.
5748         (s390_function_value): Split 64 bit values into register pair if
5749         used as return value.
5750         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
5751         function call parameters.  Handle parallels.
5752         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
5753         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
5754         (DWARF_CIE_DATA_ALIGNMENT): New macro.
5755         (s390_expand_setmem): Remove unused variable src_addr.
5756         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
5757         deal with 64 bit registers.
5758         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
5759         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
5760         (UNITS_PER_LONG): New macro.
5761         * libjava/include/s390-signal.h: Define extended ucontext
5762         structure containing the upper halfs of the 64 bit registers.
5763
5764 2010-04-13  Simon Baldwin  <simonb@google.com>
5765
5766         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
5767
5768 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
5769
5770         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
5771         rvalue on the RHS if the LHS is of a non-renamable type.
5772         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
5773
5774 2010-04-13  Matthias Klose  <doko@ubuntu.com>
5775
5776         * gcc.c (cc1_options): Handle -iplugindir before processing
5777         the cc1 spec. Only add -iplugindir once.
5778         (cpp_unique_options): Add -iplugindir option if -fplugin* options
5779         found.
5780         * common.opt (iplugindir): Remove `Separate' property, initialize.
5781         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
5782         option.
5783         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
5784         (distclean): Remove plugin dir.
5785         * doc/invoke.texi: Document -iplugindir.
5786
5787 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
5788
5789         * doc/plugins.texi (Loading Plugins): Document short
5790         -fplugin=foo option.
5791         (Plugin API): Mention default_plugin_dir_name function.
5792
5793         * gcc.c (find_file_spec_function): Add new declaration.
5794         (static_spec_func): Use it for "find-file".
5795         (find_file_spec_function): Add new function.
5796         (cc1_options): Add -iplugindir option if -fplugin* options found.
5797
5798         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
5799
5800         * plugin.c (add_new_plugin): Updated comment, and handle short
5801         plugin name.
5802         (default_plugin_dir_name): Added new function.
5803
5804         * common.opt (iplugindir): New option to set the plugin directory.
5805
5806 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
5807
5808         * config/i386/i386.md (any_rotate): New code iterator.
5809         (rotate_insn): New code attribute.
5810         (rotate): Ditto.
5811         (SWIM124): New mode iterator.
5812         (<rotate_insn>ti3): New expander.
5813         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
5814         any_rotate code iterator.
5815         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
5816         using any_rotate code iterator and SWIM124 mode iterator.
5817         (ix86_rotlti3): New insn_and_split pattern.
5818         (ix86_rotrti3): Ditto.
5819         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
5820         ix86_rotl{di,ti}3 patterns.
5821         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
5822         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
5823         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
5824         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
5825         code iterator and SWI mode iterator.
5826         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
5827         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
5828         code iterator.
5829         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
5830         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
5831         (bswap rotatert splitter): Add splitter.
5832         (bswap splitter): Macroize splitter using any_rotate code iterator.
5833         Add insn predicate to split only for TARGET_USE_XCHGB or when
5834         optimizing function for size.
5835
5836 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5837
5838         * config/pa/pa.c (emit_move_sequence): Remove use of
5839         deleted variable flag_argument_noalias.
5840
5841 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5842
5843         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
5844         configurations.
5845         Add to unsupported targets list.
5846         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
5847         sparc*-sun-solaris2.[567]* from target lists.
5848         * configure: Regenerate.
5849         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
5850         removal.
5851         Remove Solaris 7 patch references.
5852         (Specific, sparc-sun-solaris2.7): Removed.
5853         (sparc-sun-solaris2*): Update Solaris 7 example.
5854         (sparc64-*-solaris2*): Likewise.
5855
5856 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5857
5858         * config.build (alpha*-dec-osf4*): Remove.
5859         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
5860         of obsolete configurations.
5861         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
5862         support.
5863         * config/alpha/t-osf4: Renamed to ...
5864         * config/alpha/t-osf5: ... this.
5865         * config/alpha/osf.h: Renamed to ...
5866         * config/alpha/osf5.h: ... this.
5867         Merged old osf5.h contents.
5868         Update comments.
5869         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
5870         (EXTRA_SPECS): Removed.
5871         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
5872         reflect removal of Tru64 UNIX V4.0/V5.0 support.
5873         Document that.
5874
5875 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5876
5877         * doc/contrib.texi (Contributors, Rainer Orth): Update.
5878
5879 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
5880
5881         PR/43702
5882         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
5883         __thiscall convention.
5884
5885 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5886
5887         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
5888         orig_base.
5889         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
5890
5891 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5892
5893         * function.c (assign_parms_initialize_all): Add unused attribute
5894         to fntype.
5895
5896 2010-04-12  Richard Guenther  <rguenther@suse.de>
5897
5898         * gsstruct.def (GSS_CALL): New.
5899         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
5900         * gimple.h: Include tree-ssa-alias.h.
5901         (struct gimple_statement_call): New.
5902         (union gimple_statement_struct_d): Add gimple_call member.
5903         (gimple_call_reset_alias_info): Declare.
5904         (gimple_call_use_set): New function.
5905         (gimple_call_clobber_set): Likewise.
5906         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
5907         * gimple.c (gimple_call_reset_alias_info): New function.
5908         (gimple_build_call_1): Call it.
5909         * lto-streamer-in.c (input_gimple_stmt): Likewise.
5910         * tree-inline.c (remap_gimple_stmt): Likewise.
5911         (expand_call_inline): Remove callused handling.
5912         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
5913         * tree-dfa.c (dump_variable): Likewise.
5914         * tree-parloops.c (parallelize_loops): Likewise.
5915         * tree-ssa.c (init_tree_ssa): Likewise.
5916         (delete_tree_ssa): Likewise.
5917         * tree-flow-inline.h (is_call_used): Remove.
5918         * tree-flow.h (struct gimple_df): Remove callused member.
5919         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
5920         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
5921         (ref_maybe_used_by_call_p_1): Simplify.
5922         (call_may_clobber_ref_p_1): Likewise.
5923         * tree-ssa-structalias.c (compute_points_to_sets): Set
5924         the call stmt used and clobbered sets.
5925         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
5926         (find_tail_calls): Verify the tail call.
5927
5928 2010-04-12  Richard Guenther  <rguenther@suse.de>
5929
5930         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
5931         single-iteration always-inline inlining.
5932         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
5933         (cgraph_decide_inlining): Do not handle always-inline specially.
5934         (try_inline): Remove always-inline cycle detection special case.
5935         Do not recurse on always-inlines.
5936         (cgraph_early_inlining): Do not iterate if not optimizing.
5937         (cgraph_gate_early_inlining): remove.
5938         (pass_early_inline): Run unconditionally.
5939         (gate_cgraph_decide_inlining): New function.
5940         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
5941         not inlining or optimizing.
5942         (cgraph_decide_inlining_of_small_functions): Also consider
5943         always-inline functions.
5944         (cgraph_default_inline_p): Return true for nodes which should
5945         disregard inline limits.
5946         (estimate_function_body_sizes): Assume zero size and time for
5947         nodes which are marked as disregarding inline limits.
5948         (cgraph_decide_recursive_inlining): Do not perform recursive
5949         inlining on always-inline nodes.
5950
5951 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
5952
5953         PR bootstrap/43699
5954         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
5955         for exprs satisfying handled_component_p.
5956
5957 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
5958
5959         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
5960         non-constant aggregate elements.
5961
5962         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
5963         is a real initialization.
5964
5965 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
5966
5967         PR c/36774
5968         * c-decl.c (start_function): Move forward check for nested function.
5969
5970 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5971
5972         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
5973         * config/sh/sh.c: Include reload.h.
5974         (sh_legitimize_reload_address): New.
5975         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
5976         sh_legitimize_reload_address.
5977
5978 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
5979
5980         * config/sh/sh.md (*movqi_pop): New insn pattern.
5981         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
5982
5983 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
5984
5985         * config/i386/i386.md (any_shiftrt): New code iterator.
5986         (shiftrt_insn): New code attribute.
5987         (shiftrt): Ditto.
5988         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
5989         using any_shiftrt code iterator.
5990         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
5991         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
5992         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
5993         pattern from corresponding peephole2 patterns.
5994         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
5995         using any_shiftrt code iterator.
5996         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
5997         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
5998         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
5999         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
6000         *{ashr,lshr}<mode>3_cmp_zext.
6001         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
6002
6003 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
6004
6005         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
6006         scratch register.
6007         (*lshr<mode>3_cconly): Ditto.
6008
6009 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
6010
6011         * config/i386/i386.md (lshr<mode>3): Macroize expander from
6012         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
6013         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6014         pattern from *lshr{di,ti}3_1 and corresponding splitters using
6015         DWI mode iterator.
6016         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
6017         from corresponding peephole2 patterns.
6018         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
6019         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
6020         and *lshrdi3_1_rex64 using SWI mode iterator.
6021         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
6022         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
6023         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
6024         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
6025         and *lshrdi3_cmp_rex64 using SWI mode iterator.
6026         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
6027         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
6028         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
6029         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
6030         SWI mode iterator.
6031
6032 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
6033
6034         * config/i386/i386.md (ashr<mode>3): Macroize expander from
6035         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
6036         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6037         pattern from *ashr{di,ti}3_1 and corresponding splitters using
6038         DWI mode iterator.
6039         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
6040         from corresponding peephole2 patterns.
6041         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
6042         (ashrsi3_cvt): Rename from ashrsi3_31.
6043         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
6044         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
6045         and x86_64_shift_adj_3 using SWI48 mode iterator.
6046         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
6047         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
6048         and *ashrdi3_1_rex64 using SWI mode iterator.
6049         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
6050         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
6051         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
6052         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
6053         and *ashrdi3_cmp_rex64 using SWI mode iterator.
6054         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
6055         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
6056         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
6057         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
6058         SWI mode iterator.
6059         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
6060         * config/i386/i386.c (ix86_split_ashr): Update for renamed
6061         x86_shift<mode>_adj_3 expanders.
6062
6063 2010-04-10  Wei Guozhi  <carrot@google.com>
6064
6065         PR target/42601
6066         * config/arm/arm.c (arm_pic_static_addr): New function.
6067         (legitimize_pic_address): Call arm_pic_static_addr when it detects
6068         a static symbol.
6069         (arm_output_addr_const_extra): Output expression for new pattern.
6070         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
6071
6072 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
6073
6074         * ira-costs.c (record_reg_classes): Ignore alternatives that are
6075         not enabled.
6076
6077         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
6078         * web.c: Include "insn-config.h" and "recog.h".
6079         (union_match_dups): New function.
6080         (web_main): Call it.
6081         (union_defs): Don't try to recognize match_dups.
6082
6083         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
6084         if doing so would replace the entire pattern.
6085
6086 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
6087
6088         PR target/43707
6089         PR target/43709
6090         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
6091         and splitter pattern.  Change splitter operand 1 predicate to
6092         nonmemory_operand.
6093
6094 2010-04-09  Martin Jambor  <mjambor@suse.cz>
6095
6096         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
6097         lattices are addresses of CONST_DECLs with the same initial value.
6098         (ipcp_print_all_lattices): Print values of CONST_DECLs.
6099         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
6100
6101 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
6102             Bernd Schmidt  <bernds@codesourcery.com>
6103
6104         * loop-invariant.c (replace_uses): New static function.
6105         (move_invariant_reg): Use it to ensure we can replace the uses.
6106
6107 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
6108
6109         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
6110         function template.
6111         (picochip_override_options): Enable section anchors only above -O1.
6112         (picochip_reorg): Fixed a couple of build warnings.
6113
6114 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6115
6116         * configure.ac (plugin -rdynamic test): Log result.
6117         * configure: Regenerate.
6118         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
6119         (RDYNAMIC_SPEC): Define.
6120         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
6121
6122 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6123
6124         * configure.ac: Determine Sun ld version numbers.
6125         (comdat_group): Restrict GNU ld version checks to gld.
6126         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
6127         (enable_comdat): Support --enable-comdat.
6128         * configure: Regenerate.
6129         * doc/install.texi (Configuration): Document --enable-comdat.
6130
6131 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6132
6133         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
6134         * config/sol2-gld.h: ... here.
6135         * config.gcc (sparc*-*-solaris2*): Reflect this.
6136         (i[34567]86-*-solaris2*): Use it.
6137
6138 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
6139
6140         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
6141         setup_clocks_p.
6142         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
6143
6144 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6145
6146         PR 42965
6147         * diagnostic.c (diagnostic_initialize): Initialize
6148         some_warnings_are_errors.
6149         (diagnostic_finish): New.
6150         (diagnostic_action_after_output): Call it before exiting.
6151         (diagnostic_report_diagnostic): Do not print message here. Set
6152         some_warnings_are_errors.
6153         * diagnostic.h (diagnostic_context): Delete
6154         issue_warnings_are_errors_message. Add some_warnings_are_errors.
6155         (diagnostic_finish): Declare.
6156         * toplev.c (toplev_main): Call it before exit.
6157
6158 2010-04-09  Jason Merrill  <jason@redhat.com>
6159
6160         PR c++/42623
6161         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
6162         for incomplete type.
6163
6164         PR c++/41788
6165         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
6166         based on a warning flag.
6167
6168 2010-04-09  Richard Guenther  <rguenther@suse.de>
6169
6170         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
6171
6172 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
6173
6174         PR bootstrap/43684
6175         * varasm.c (default_assemble_visibility): Wrap vars that are
6176         set, but unused, by targets without GAS.
6177         * config/rs6000/rs6000.c (paired_emit_vector_compare):
6178         Remove set, but unused, vars.
6179         (rs6000_legitimize_tls_address): Likewise.
6180         (altivec_expand_dst_builtin): Likewise.
6181         * config/darwin.c (machopic_classify_symbol): Likewise.
6182         (machopic_indirection_name): Likewise.
6183
6184 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
6185
6186         * config/i386/i386.md (DWI): New mode iterator.
6187         (S): New mode attribute.
6188         (shift_operand): Ditto.
6189         (shift_immediate_operand): Ditto.
6190         (ashl_input_operand): Ditto.
6191         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
6192         using SDWIM mode iterator.
6193         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6194         pattern from *ashl{di,ti}3_1 and corresponding splitters using
6195         DWI mode iterator.
6196         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
6197         from corresponding peephole2 patterns.
6198         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
6199         and x86_64_shift_adj_1 using SWI48 mode iterator.
6200         (x86_shift<mode>_adj_2): Ditto.
6201         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
6202         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
6203         using SWI48 mode iterator.
6204         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
6205         *ashldi3_cmp_rex64 using SWI mode iterator.
6206         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
6207         *ashldi3_cconly_rex64 using SWI mode iterator.
6208         * config/i386/i386.c (ix86_split_ashl): Update for renamed
6209         x86_shift<mode>_adj_{1,2}.
6210         (ix86_split_ashr): Ditto.
6211         (ix86_split_lshr): Ditto.
6212
6213 2010-04-09  Richard Guenther  <rguenther@suse.de>
6214
6215         * target.h (builtin_conversion): Pass in input and output types.
6216         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
6217         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
6218         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
6219         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
6220
6221         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
6222         Handle AVX modes.
6223         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
6224
6225 2010-04-09  Richard Guenther  <rguenther@suse.de>
6226
6227         PR target/43152
6228         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
6229
6230 2010-04-09  Richard Guenther  <rguenther@suse.de>
6231
6232         * tree-vectorizer.h (struct _stmt_vec_info): Document
6233         that vectype is the type of the LHS.
6234         (supportable_widening_operation, supportable_narrowing_operation):
6235         Get both input and output vector types as arguments.
6236         (vect_is_simple_use_1): Declare.
6237         (get_same_sized_vectype): Likewise.
6238         * tree-vect-loop.c (vect_determine_vectorization_factor):
6239         Set STMT_VINFO_VECTYPE to the vector type of the def.
6240         (vectorizable_reduction): Adjust.
6241         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
6242         Adjust.  Specify the output vector type.
6243         (vect_pattern_recog_1): Adjust.
6244         * tree-vect-stmts.c (get_same_sized_vectype): New function.
6245         (vectorizable_call): Adjust.
6246         (vectorizable_conversion): Likewise.
6247         (vectorizable_operation): Likewise.
6248         (vectorizable_type_demotion): Likewise.
6249         (vectorizable_type_promotion): Likewise.
6250         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
6251         the def.
6252         (vect_is_simple_use_1): New function.
6253         (supportable_widening_operation): Get both input and output
6254         vector types.
6255         (supportable_narrowing_operation): Likewise.
6256         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
6257
6258 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
6259
6260         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
6261         __thiscall and _thiscall as predefined macros.
6262         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
6263         thiscall attribute handling.
6264         (ix86_comp_type_attributes): Likewise.
6265         (ix86_function_regparm): Likewise.
6266         (ix86_return_pops_args): Likewise.
6267         (init_cumulative_args): Likewise.
6268         (find_drap_reg): Likewise.
6269         (ix86_static_chain): Likewise.
6270         (x86_this_parameter): Likewise.
6271         (x86_output_mi_thunk): Likewise.
6272         (ix86_attribute_table): Add description for thiscall attribute.
6273         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
6274         * doc/extend.texi: Add documentation for thiscall.
6275
6276 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6277
6278         PR c++/28584
6279         * c.opt (Wint-to-pointer-cast): Available in C++.
6280         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
6281
6282 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
6283
6284         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
6285         * calls.c (expand_call): Pass the function type to aggregate_value_p.
6286         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
6287         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
6288         function type instead.  Reorder and simplify checks.
6289
6290         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
6291
6292 2010-04-08  Jing Yu  <jingyu@google.com>
6293             Zdenek Dvorak  <ook@ucw.cz>
6294
6295         PR tree-optimization/42720
6296         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
6297         loop unswitch conditions here from ...
6298         (tree_unswitch_single_loop): ... here.
6299
6300 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
6301
6302         * tree-if-conv.c: Fix comments and simplify logic.
6303
6304 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
6305
6306         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
6307         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
6308         (main_tree_if_conversion): Update call to tree_if_conversion.
6309
6310 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6311
6312         PR 42485
6313         * doc/invoke.texi (-b,-V): Delete.
6314         * doc/tm.texi: Do not mention -b.
6315         * gcc.c (display_help): Delete -b and -V.
6316         (process_command): Delete -b and -V.
6317         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
6318
6319 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
6320             Wolfgang Gellerich  <gellerich@de.ibm.com>
6321
6322         Implement target hook for loop unrolling
6323         * target.h (loop_unroll_adjust): Add a new target hook function.
6324         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
6325         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
6326         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
6327         (s390_loop_unroll_adjust): Implement the new target hook for s390.
6328         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
6329         target hook.
6330         (decide_unroll_stupid): Likewise.
6331
6332 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6333
6334         PR target/43643
6335         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
6336
6337 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6338
6339         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
6340         (Specific, *-*-solaris2*): Likewise.
6341         Don't prefer Sun as over GNU as.
6342
6343 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
6344
6345         * config/s390/s390.c (override_options): Adjust the z10 defaults
6346         for max-unroll-times, max-completely-peeled-insns
6347         and max-completely-peel-times.
6348
6349 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6350
6351         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
6352         instructions for z10.
6353         (s390_expand_setmem): Likewise.
6354         (s390_expand_cmpmem): Likewise.
6355
6356 2010-04-08  Richard Guenther  <rguenther@suse.de>
6357
6358         PR tree-optimization/43679
6359         * tree-ssa-pre.c (eliminate): Only propagate copies.
6360
6361 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
6362
6363         PR bootstrap/43681
6364         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
6365         set but not used variable warning.
6366
6367 2010-04-08  Wei Guozhi  <carrot@google.com>
6368
6369         PR target/41653
6370         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
6371         (arm_size_rtx_costs): Call the new function when optimized for size.
6372
6373 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
6374
6375         PR debug/43670
6376         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
6377         op0 is not a MEM, just return NULL instead of assertion
6378         failure.
6379         (discover_nonconstant_array_refs): Don't walk debug stmts.
6380
6381 2010-04-08  Doug Kwan  <dougkwan@google.com>
6382
6383         * configure.ac: Recognize gold and do not use its version number
6384         to test ld features.
6385         * configure: Regenerate.
6386
6387 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
6388
6389         PR middle-end/40815
6390         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
6391         (negate_value): Move code to push elements to broken_up_substracts ...
6392         (eliminate_plus_minus_pair): ... here.  Push operands that have no
6393         negative pair to plus_negates.
6394         (repropagate_negates, init_reassoc, fini_reassoc): Update.
6395
6396 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6397
6398         * doc/install.texi (Configuration): Move description of
6399         --enable-lto, --with-libelf*, --enable-gold from Java section to
6400         general section.
6401
6402         * doc/generic.texi (Working with declarations)
6403         (Function Properties, C and C++ Trees): Fix typos.
6404         * doc/sourcebuild.texi (Top Level): Likewise.
6405
6406 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
6407
6408         PR c/18624
6409         * tree.h (DECL_READ_P): Define.
6410         (struct tree_decl_common): Add decl_read_flag.
6411         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
6412         a set but not used warning.
6413         (merge_decls): Merge DECL_READ_P flag.
6414         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
6415         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
6416         * c-common.c (handle_used_attribute, handle_unused_attribute):
6417         Likewise.
6418         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
6419         New prototypes.
6420         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
6421         New functions.
6422         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
6423         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
6424         c_parser_binary_expression, c_parser_cast_expression,
6425         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
6426         Call default_function_array_read_conversion instead of
6427         default_function_array_conversion where needed.
6428         (c_parser_unary_expression, c_parser_conditional_expression,
6429         c_parser_postfix_expression_after_primary, c_parser_initelt):
6430         Likewise.  Call mark_exp_read where needed.
6431         (c_parser_statement_after_labels, c_parser_asm_operands,
6432         c_parser_typeof_specifier, c_parser_sizeof_expression,
6433         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
6434         where needed.
6435         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
6436         New.
6437         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
6438         (warn_unused_but_set_parameter): Default to warn_unused
6439         && extra_warnings.
6440         * doc/invoke.texi: Document -Wunused-but-set-variable and
6441         -Wunused-but-set-parameter.
6442
6443         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
6444         used count variable.
6445         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
6446         when operandN variables aren't used in the body of the expander
6447         or splitter.
6448         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
6449         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
6450         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
6451         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
6452         FOR_EACH_IMM_USE_ON_STMT): Likewise.
6453         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
6454         * tree.c (PROCESS_ARG): Likewise.
6455
6456 2010-04-07  Simon Baldwin  <simonb@google.com>
6457
6458         * diagnostic.h (diagnostic_override_option_index): New macro to
6459         set a diagnostic's option_index.
6460         * c-tree.h (c_cpp_error): Add warning reason argument.
6461         * opts.c (_warning_as_error_callback): New.
6462         (register_warning_as_error_callback): Store callback for
6463         warnings enabled via enable_warning_as_error.
6464         (enable_warning_as_error): Call callback, minor code tidy.
6465         * opts.h (register_warning_as_error_callback): Declare.
6466         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
6467         response to -Werror=.
6468         (c_common_init_options): Register warning_as_error_callback in opts.c.
6469         * common.opt: Add -Wno-cpp option.
6470         * c-common.c (struct reason_option_codes_t): Map cpp warning
6471         reason codes to gcc option indexes.
6472         * (c_option_controlling_cpp_error): New function, lookup the gcc
6473         option index for a cpp warning reason code.
6474         * (c_cpp_error): Add warning reason argument, call
6475         c_option_controlling_cpp_error for diagnostic_override_option_index.
6476         * doc/invoke.texi: Document -Wno-cpp.
6477
6478 2010-04-07  Richard Guenther  <rguenther@suse.de>
6479
6480         * ipa-reference.c (mark_load): Use get_base_address.
6481         (mark_store): Likewise.
6482
6483         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
6484         inserting GIMPLE_NOPs into the IL.
6485         * tree-ssa-structalias.c (get_constraint_for_component_ref):
6486         Explicitly strip handled components and indirect references.
6487
6488         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
6489         folding address expressions.
6490         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
6491         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
6492         operand_equal_p to compare decls.
6493         (ptr_deref_may_alias_decl_p): Likewise.
6494         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
6495         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
6496         Handle reversed comparison ops.
6497         * tree-sra.c (asm_visit_addr): Use get_base_address.
6498         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
6499         * ipa-reference.c (mark_address): Use get_base_address.
6500
6501 2010-04-07  Richard Guenther  <rguenther@suse.de>
6502
6503         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
6504         Propagate constants everywhere.
6505
6506 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
6507
6508         PR debug/43516
6509         * tree.c (MAX_INT_CACHED_PREC): Define.
6510         (nonstandard_integer_type_cache): New array.
6511         (build_nonstandard_integer_type): Cache results for precision
6512         <= MAX_INT_CACHED_PREC.
6513
6514 2010-04-07  Richard Guenther  <rguenther@suse.de>
6515
6516         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
6517         -fargument-noalias-global, -fargument-noalias-anything): Remove.
6518         * common.opt: Likewise.
6519         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
6520         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
6521         (nonoverlapping_memrefs_p): Likewise.
6522         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6523         * opts.c (common_handle_option): Handle OPT_fargument_alias,
6524         OPT_fargument_noalias, OPT_fargument_noalias_anything and
6525         OPT_fargument_noalias_global for backward compatibility.
6526
6527 2010-04-07  Richard Guenther  <rguenther@suse.de>
6528
6529         PR tree-optimization/43270
6530         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
6531         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
6532         * tree-ssa-pre.c (phi_translate_1): Adjust.
6533         (fully_constant_expression): Split out vn_reference handling to ...
6534         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
6535         Fold reads from constant strings.
6536         (vn_reference_lookup): Handle fully constant references.
6537         (vn_reference_lookup_pieces): Likewise.
6538         * Makefile.in (expmed.o-warn): Add -Wno-error.
6539
6540 2010-04-07  Martin Jambor  <mjambor@suse.cz>
6541
6542         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
6543
6544 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
6545
6546         PR driver/41594
6547         * gcc.c: Add -static-libstdc++ to list of recognized options.
6548
6549 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6550
6551         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
6552
6553 2010-04-07  Richard Guenther  <rguenther@suse.de>
6554
6555         PR middle-end/42617
6556         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
6557         bases build simple mem attributes to retain points-to information.
6558
6559 2010-04-07  Richard Guenther  <rguenther@suse.de>
6560
6561         PR middle-end/42617
6562         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
6563         preserve points-to related information.
6564
6565 2010-04-07  Richard Guenther  <rguenther@suse.de>
6566
6567         PR middle-end/42617
6568         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
6569         discard plain indirect references.
6570         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
6571         * tree.c (tree_nop_conversion): Likewise.
6572
6573 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
6574
6575         PR debug/43628
6576         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
6577
6578 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
6579
6580         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
6581         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
6582
6583 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6584
6585         * tree-if-conv.c: Fix indentation and comments.
6586
6587 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6588
6589         * tree-if-conv.c: Sort static functions in topological order.
6590
6591 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6592
6593         * tree-if-conv.c: Fix indentation and comments.
6594
6595 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6596
6597         PR middle-end/43519
6598         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
6599         lang_hooks.types.type_for_size instead of
6600         build_nonstandard_integer_type.
6601         When converting an unsigned type to signed, double its precision.
6602         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
6603         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
6604         (graphite_create_new_loop_guard): When ub + 1 wraps around,
6605         use lb <= ub.
6606
6607 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6608
6609         PR middle-end/43519
6610         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
6611         POINTER_PLUS_EXPR for pointer types.
6612
6613 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6614
6615         PR middle-end/43519
6616         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
6617         * graphite-clast-to-gimple.c: Include langhooks.h.
6618         (max_signed_precision_type): New.
6619         (max_precision_type): Takes two types as arguments.
6620         (precision_for_value): New.
6621         (precision_for_interval): New.
6622         (gcc_type_for_interval): New.
6623         (gcc_type_for_value): New.
6624         (gcc_type_for_clast_term): New.
6625         (gcc_type_for_clast_red): New.
6626         (gcc_type_for_clast_bin): New.
6627         (gcc_type_for_clast_expr): Split up into several functions.
6628         (gcc_type_for_clast_eq): Rewritten.
6629         (compute_bounds_for_level): New.
6630         (compute_type_for_level_1): New.
6631         (compute_type_for_level): New.
6632         (gcc_type_for_cloog_iv): Removed.
6633         (gcc_type_for_iv_of_clast_loop): Rewritten.
6634         (graphite_create_new_loop): Compute the lower and upper bound types
6635         with gcc_type_for_clast_expr.
6636         (graphite_create_new_loop_guard): Same.
6637         (find_cloog_iv_in_expr): Removed.
6638         (compute_cloog_iv_types_1): Removed.
6639         (compute_cloog_iv_types): Removed.
6640         (gloog): Do not call compute_cloog_iv_types.
6641         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
6642         GBB_CLOOG_IV_TYPES.
6643         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
6644         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
6645         (GBB_CLOOG_IV_TYPES): Removed.
6646
6647 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6648
6649         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
6650         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
6651         (detect_commutative_reduction): Same.
6652
6653 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6654
6655         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
6656         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
6657         argument.
6658         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
6659         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
6660         (rewrite_commutative_reductions_out_of_ssa): Same.
6661         * passes.c (execute_function_todo): Call verify_ssa for every pass
6662         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
6663         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
6664         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
6665         with an extra argument.
6666         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
6667         verify_ssa only when the extra argument is true.
6668         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
6669         with an extra argument.
6670         (tree_transform_and_unroll_loop): Same.
6671
6672 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6673
6674         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
6675         for all the passes of the LNO having LOOP_CLOSED_SSA.
6676         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
6677         * tree-loop-distribution.c (pass_loop_distribution): Same.
6678         * tree-pass.h (TODO_verify_loops): Removed.
6679         * tree-ssa-loop.c (pass_tree_loop_init): Same.
6680         (pass_lim): Same.
6681         (pass_tree_unswitch): Same.
6682         (pass_predcom): Same.
6683         (pass_vectorize): Same.
6684         (pass_linear_transform): Same.
6685         (pass_graphite_transforms): Same.
6686         (pass_iv_canon): Same.
6687         (pass_complete_unroll): Same.
6688         (pass_complete_unrolli): Same.
6689         (pass_parallelize_loops): Same.
6690         (pass_loop_prefetch): Same.
6691         (pass_iv_optimize): Same.
6692
6693 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
6694
6695         PR middle-end/32824
6696         * passes.c (init_optimization_passes): Move pass_lim before
6697         pass_copy_prop and pass_dce_loop.
6698
6699 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
6700
6701         PR target/43667
6702         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
6703         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
6704         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
6705         MULTI_* defines for 4 argument vpermil2p* builtins.
6706
6707 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
6708
6709         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
6710         * config/i386/i386.c (x86_maybe_negate_const_int): New.
6711         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
6712         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
6713         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
6714         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
6715         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
6716         Use x86_maybe_negate_const_int to output insn mnemonic.
6717         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
6718         check from instruction predicate.  Update comments.
6719         * config/i386/sync.md (sync_add<mode>): Use
6720         x86_maybe_negate_const_int to output insn mnemonic.
6721
6722 2010-04-06  Jan Hubicka  <jh@suse.cz>
6723
6724         PR tree-optimization/42906
6725         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
6726         IGNORE_SELF argument.  Set visited_control_parents for fully
6727         processed BBs.
6728         (find_obviously_necessary_stmts): Update call of
6729         mark_control_dependent_edges_necessary.
6730         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
6731
6732 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
6733
6734         * config/i386/i386.md: Remove comment about 'e' and 'E'
6735         operand modifier.
6736
6737 2010-04-06  Richard Guenther  <rguenther@suse.de>
6738
6739         PR tree-optimization/43627
6740         * tree-vrp.c (extract_range_from_unary_expr): Widenings
6741         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
6742         not varying.
6743
6744 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
6745
6746         * BASE-VER: Change to 4.6.0.
6747
6748         PR target/43638
6749         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
6750         handling.
6751
6752 2010-04-06  Richard Guenther  <rguenther@suse.de>
6753
6754         PR middle-end/43661
6755         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
6756
6757 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6758
6759         * doc/invoke.texi (Optimize Options): Document that LTO
6760         won't remove object access purely due to incompatible
6761         declarations.
6762
6763 2010-04-04  Matthias Klose  <doko@ubuntu.com>
6764
6765         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
6766         Initialize variable.
6767
6768 2010-04-03  Richard Guenther  <rguenther@suse.de>
6769
6770         PR middle-end/42509
6771         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
6772         require a non-NULL MEM_OFFSET.
6773
6774 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
6775
6776         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
6777         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
6778         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
6779         config/alpha/predicates.md, config/arm/arm.md,
6780         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
6781         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
6782         config/darwin9.h, config/darwin.c, config/darwin.h,
6783         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
6784         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
6785         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
6786         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
6787         config/mips/mips.md, config/mn10300/mn10300.c,
6788         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
6789         config/rs6000/aix.h, config/rs6000/dfp.md,
6790         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
6791         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
6792         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
6793         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
6794         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
6795         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
6796         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
6797         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
6798         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
6799         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
6800         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
6801         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
6802         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
6803         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
6804         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
6805         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
6806         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
6807         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
6808         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
6809         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
6810         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
6811         opt-functions.awk, opth-gen.awk, params.def, passes.c,
6812         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
6813         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
6814         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
6815         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
6816         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
6817         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
6818         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
6819         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
6820         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
6821         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
6822         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
6823         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
6824         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
6825         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
6826
6827 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6828
6829         PR other/43620
6830         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
6831         * aclocal.m4: Regenerate.
6832
6833 2010-04-02  Richard Guenther  <rguenther@suse.de>
6834
6835         PR tree-optimization/43629
6836         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
6837         if we have seen a constant value.
6838
6839 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
6840
6841         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
6842
6843 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
6844
6845         PR target/43469
6846         * arm.c (legitimize_tls_address): Adjust call to
6847         gen_tls_load_dot_plus_four.
6848         (arm_note_pic_base): New function.
6849         (arm_cannot_copy_insn_p): Use it.
6850         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
6851         constraint.
6852
6853 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6854
6855         PR bootstrap/43531
6856
6857         Revert:
6858         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6859
6860         * Makefile.in ($(out_object_file)): Depend on
6861         gt-$(basename $(notdir $(out_file))).h.
6862
6863 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
6864
6865         * config.gcc (lm32-*-rtems*): Add t-lm32.
6866
6867 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
6868
6869         * config.gcc: Add lm32-*-rtems*.
6870         * config/lm32/rtems.h: New file.
6871
6872 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
6873
6874         PR target/42609
6875         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
6876
6877 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
6878
6879         * dwarf2out.c (output_compilation_unit_header): For
6880         -gdwarf-4 use version 4 instead of version 3.
6881         (output_line_info): For version 4 and above emit additional
6882         maximum ops per insn header field.
6883         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
6884
6885         * dwarf2out.c (is_c_family, is_java): Remove.
6886         (lower_bound_default): New function.
6887         (add_bound_info, gen_descr_array_type_die): Use it.
6888
6889 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
6890
6891         PR debug/43325
6892         * dwarf2out.c (gen_variable_die): Allow debug info for variable
6893         re-declaration when it happens in a function.
6894
6895 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
6896
6897         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
6898         (cgraph_remove_function_insertion_hook): Same.
6899         (cgraph_call_function_insertion_hooks): Same.
6900
6901 2010-04-01  Richard Guenther  <rguenther@suse.de>
6902
6903         PR middle-end/43614
6904         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
6905         and TREE_THIS_VOLATILE.
6906         (copy_ref_info): Likewise.
6907         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
6908         * tree.c (build6_stat): Ignore side-effects of all but arg5
6909         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
6910         TARGET_MEM_REF.
6911
6912 2010-04-01  Richard Guenther  <rguenther@suse.de>
6913
6914         PR tree-optimization/43607
6915         * ipa-type-escape.c (check_call): Do not access non-existing
6916         arguments.
6917
6918 2010-04-01  Richard Guenther  <rguenther@suse.de>
6919
6920         PR middle-end/43602
6921         Revert
6922         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
6923                     Jack Howarth <howarth@bromo.med.uc.edu>
6924
6925         * tree-profile.c (tree_init_ic_make_global_vars): Make static
6926         variables TLS.
6927
6928 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6929
6930         * doc/install.texi (Prerequisites): Document libelf usability on
6931         IRIX 5/6 and Solaris 2.
6932         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
6933         Update GNU as, GNU ld requirements.
6934         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
6935         Document Sun Studio compiler download.
6936         Update and simplify as, ld recommendations.
6937         (Specific, *-*-solaris2.7): Note obsoletion, removal.
6938
6939 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6940
6941         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
6942         with_tune_32 to pentium4.
6943
6944 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
6945
6946         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
6947
6948 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6949
6950         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
6951         obsoletion, removal.
6952         Update IDO URL.
6953         Document GNU as requirement.
6954         Update configure requirements.
6955         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
6956         Recomment IRIX 6.5.18+.
6957         Document IDF/IDL requirement.
6958         Document GNU as requirement.
6959         Document GNU ld bootstrap failure.
6960         Remove freeware.sgi.com reference.
6961
6962 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6963
6964         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
6965         UNIX V4.0, V5.0 obsoletion, removal.
6966         Remove --with-gc=simple reference.
6967         Update VM requirements during bootstrap.
6968         Remove -oldas bootstrap description.
6969         Update binutils reference.
6970         Remove comparison failure note.
6971
6972 2010-03-31  Richard Guenther  <rguenther@suse.de>
6973             Zdenek Dvorak  <ook@ucw.cz>
6974             Sebastian Pop  <sebastian.pop@amd.com>
6975
6976         PR middle-end/43464
6977         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
6978         with multiple arguments.
6979         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
6980
6981 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
6982
6983         * graphite-dependences.c (print_pddr): Call print_pdr with an
6984         extra argument.
6985         * graphite-poly.c (debug_pdr): Add an extra argument for the
6986         verbosity level.
6987         (print_pdr): Same.
6988         (print_pbb_domain): Same.
6989         (print_pbb): Same.
6990         (print_scop_context): Same.
6991         (print_scop): Same.
6992         (print_cloog): Same.
6993         (debug_pbb_domain): Same.
6994         (debug_pbb): Same.
6995         (print_pdrs): Same.
6996         (debug_pdrs): Same.
6997         (debug_scop_context): Same.
6998         (debug_scop): Same.
6999         (debug_cloog): Same.
7000         (print_scop_params): Same.
7001         (debug_scop_params): Same.
7002         (print_iteration_domain): Same.
7003         (print_iteration_domains): Same.
7004         (debug_iteration_domain): Same.
7005         (debug_iteration_domains): Same.
7006         (print_scattering_function): Same.
7007         (print_scattering_functions): Same.
7008         (debug_scattering_function): Same.
7009         (debug_scattering_functions): Same.
7010         * graphite-poly.h (debug_pdr): Update declaration.
7011         (print_pdr): Same.
7012         (print_pbb_domain): Same.
7013         (print_pbb): Same.
7014         (print_scop_context): Same.
7015         (print_scop): Same.
7016         (print_cloog): Same.
7017         (debug_pbb_domain): Same.
7018         (debug_pbb): Same.
7019         (print_pdrs): Same.
7020         (debug_pdrs): Same.
7021         (debug_scop_context): Same.
7022         (debug_scop): Same.
7023         (debug_cloog): Same.
7024         (print_scop_params): Same.
7025         (debug_scop_params): Same.
7026         (print_iteration_domain): Same.
7027         (print_iteration_domains): Same.
7028         (debug_iteration_domain): Same.
7029         (debug_iteration_domains): Same.
7030         (print_scattering_function): Same.
7031         (print_scattering_functions): Same.
7032         (debug_scattering_function): Same.
7033         (debug_scattering_functions): Same.
7034
7035 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7036
7037         * graphite-poly.c (print_scattering_function_1): New.
7038         (print_scattering_function): Call it.
7039         (print_scop_params): Remove spaces at the end of lines.
7040         (print_cloog): New.
7041         (debug_cloog): New.
7042         * graphite-poly.h (print_cloog): Declared.
7043         (debug_cloog): Declared.
7044
7045 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7046
7047         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
7048         in loop->header.
7049         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
7050         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
7051         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
7052         to switch between adding the IV bump in loop->latch or in loop->header.
7053
7054 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7055
7056         * graphite-poly.c (print_scattering_function): Pretty print following
7057         the scoplib format.
7058         (print_pdr): Same.
7059         (print_pbb_domain): Same.
7060         (dump_gbb_cases): Same.
7061         (dump_gbb_conditions): Same.
7062         (print_pdrs): Same.
7063         (print_pbb): Same.
7064         (print_scop_params): Same.
7065         (print_scop_context): Same.
7066         (print_scop): Same.
7067         (print_pbb_body): New.
7068         (lst_indent_to): New.
7069         (print_lst): Start new lines with a #.
7070         * graphite-poly.h (pbb_bb): New.
7071         (pbb_index): Use pbb_bb.
7072         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
7073         disjuncts.
7074         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
7075
7076 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
7077
7078         * dwarf2out.c (size_of_die): For -gdwarf-4 use
7079         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
7080         and 0 instead of 1 for dw_val_class_flag.
7081         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
7082         dw_val_class_range_list, dw_val_class_loc_list,
7083         dw_val_class_lineptr and dw_val_class_macptr, use
7084         DW_FORM_flag_present for dw_val_class_flag and
7085         DW_FORM_exprloc for dw_val_class_loc.
7086         (output_die): For -gdwarf-4 print dw_val_class_loc
7087         size as uleb128 instead of 1 or 2 bytes and don't print
7088         anything for dw_val_class_flag.
7089
7090         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
7091         instead of cselib_lookup following by tweaking locs->setting_insn.
7092
7093         PR bootstrap/43596
7094         * cselib.c (cselib_process_insn): Clear cselib_current_insn
7095         even before returning from label, setjmp call or volatile asm
7096         handling.
7097
7098 2010-03-31  Richard Guenther  <rguenther@suse.de>
7099
7100         PR middle-end/43600
7101         * cgraphunit.c (cgraph_output_in_order): Do not allocate
7102         temporary data on stack.
7103
7104 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7105
7106         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
7107         (PUSHSECTION_ASM_OP): Remove.
7108         (POPSECTION_ASM_OP): Remove.
7109         (PUSHSECTION_FORMAT): Remove.
7110         * config/sol2.h (PUSHSECTION_FORMAT): Define.
7111         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
7112         * config/sol2.c (solaris_output_init_fini): Use it.
7113
7114 2010-03-31  Jie Zhang  <jie@codesourcery.com>
7115
7116         PR 43574
7117         * opt-functions.awk (var_type_struct): Use signed char type
7118         for simple variables.
7119
7120 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7121
7122         * config/sol2.c: Include output.h.
7123         (solaris_assemble_visibility): New function.
7124         * config/t-sol2 (sol2.o): Add output.h dependency.
7125         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
7126         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
7127         Redefine.
7128
7129 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
7130
7131         PR target/43580
7132         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
7133         V2SImode or XFmode on PRE_DEC.
7134
7135         PR debug/43557
7136         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
7137         BLKmode.
7138
7139 2010-03-31  Jie Zhang  <jie@codesourcery.com>
7140
7141         PR 43562
7142         * reload.h (caller_save_initialized_p): Declare.
7143         * toplev.c (backend_init_target): Don't call
7144         init_caller_save but set caller_save_initialized_p to false.
7145         * caller-save.c (caller_save_initialized_p): Define.
7146         (init_caller_save): Check caller_save_initialized_p.
7147         * ira.c (ira): Call init_caller_save if flag_caller_saves.
7148
7149 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7150
7151         PR target/39048
7152         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
7153         and soft-fp/t-softfp to tmake_file.
7154         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
7155         (LIBGCC2_TF_CEXT): Define.
7156         (TF_SIZE): Define.
7157
7158 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
7159
7160         PR debug/42977
7161         * cselib.c (n_useless_values): Document handling of debug locs.
7162         (n_useless_debug_values, n_debug_values): New variables.
7163         (new_elt_loc_list): Don't add to debug values, keep count.
7164         (promote_debug_loc): New.
7165         (cselib_reset_table): Zero new variables.
7166         (entry_and_rtx_equal_p): Promote debug locs.
7167         (discard_useless_locs): Increment n_useless_debug_values for
7168         debug values.
7169         (remove_useless_values): Adjust n_useless_values and n_debug_values
7170         with n_useless_debug_values.
7171         (add_mem_for_addr): Promote debug locs.
7172         (cselib_lookup_mem): Likewise.
7173         (cselib_lookup_addr): Renamed to...
7174         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
7175         (cselib_log_lookup): ... this.  Turn into...
7176         (cselib_lookup_addr): ... new wrapper.
7177         (cselib_lookup_from_insn): New.
7178         (cselib_invalidate_regno): Increment n_useless_debug_values for
7179         debug values.
7180         (cselib_invalidate_mem): Likewise.
7181         (cselib_process_insn): Take n_deleted and n_debug_values into
7182         account to guard remove_useless_value call.
7183         (cselib_finish): Zero n_useless_debug_values.
7184         * cselib.h (cselib_lookup_from_insn): Declare.
7185         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
7186         (sched_analyze_2): Likewise.
7187
7188 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
7189
7190         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
7191         functions.
7192         (adjust_mems): Replace narrowing SUBREG of expression containing
7193         just PLUS, MINUS, MULT and ASHIFT of registers and constants
7194         with operations in the narrower mode.
7195
7196         PR debug/43593
7197         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
7198         regs_invalidated_by_call instead all call_used_reg_set registers.
7199
7200 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
7201
7202         PR middle-end/43430
7203         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
7204         pointer comparisons with types_compatible_p.
7205         * tree-vect-stmts.c (vectorizable_call): Same.
7206         (vectorizable_condition): Same.
7207
7208 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7209
7210         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
7211         stack check if the mask would be zero.
7212
7213 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
7214             Jack Howarth <howarth@bromo.med.uc.edu>
7215
7216         * tree-profile.c (tree_init_ic_make_global_vars): Make static
7217         variables TLS.
7218
7219 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
7220
7221         PR other/25232
7222         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
7223         and __unordtf2.
7224         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
7225         Include ___unordxf2 and ___unordtf2.
7226         * config/i386/libgcc-glibc.ver: Do not define inheritance from
7227         GCC_4.4.0 here.
7228
7229 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
7230
7231         * config/lm32/t-lm32: New file.
7232         * config.gcc: Use the above file when targetting lm32.
7233
7234 2010-03-28  Duncan Sands  <baldrick@free.fr>
7235
7236         * Makefile.in (PLUGIN_HEADERS): Add except.h.
7237
7238 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
7239
7240         PR middle-end/43431
7241         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
7242         Improve vectorization cost model diagnostic.
7243
7244 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
7245
7246         PR middle-end/43436
7247         * tree-vect-data-refs.c (vect_analyze_data_refs): When
7248         compute_data_dependences_for_loop returns false, early exit
7249         and output an extra diagnostic for the failed data reference
7250         analysis.
7251
7252 2010-03-29  Richard Guenther  <rguenther@suse.de>
7253
7254         PR tree-optimization/43560
7255         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
7256         (can_sm_ref_p): Treat stores to readonly locations as trapping.
7257
7258 2010-03-29  Jie Zhang  <jie@codesourcery.com>
7259
7260         PR 43564
7261         * toplev.c (process_options): Set optimization_default_node
7262         and optimization_current_node.
7263         * opts.c (decode_options): Don't set optimization_default_node
7264         and optimization_current_node.
7265
7266 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
7267
7268         * config/rtems.h: Abandon -qrtems_debug.
7269
7270 2010-03-28  Jan Hubicka  <jh@suse.cz>
7271
7272         PR tree-optimization/43505
7273         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
7274         map should not be copied.
7275
7276 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7277
7278         PR middle-end/41674
7279         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
7280         cdtors, set DECL_PRESERVE_P.
7281         * ipa.c (cgraph_externally_visible_p): Return true if declaration
7282         should be preseved.
7283
7284 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
7285
7286         PR tree-optimization/43528
7287         * stor-layout.c (place_field): Check that constant fits into
7288         unsigned HWI when skipping calculation of MS bitfield layout.
7289
7290 2010-03-27  Jan Hubicka  <jh@suse.cz>
7291
7292         PR middle-end/43391
7293         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
7294         notice_global_symbol work.
7295
7296 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
7297
7298         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
7299         instead of dwarf2out_decl.
7300         (struct var_loc_node): Remove section_label field.
7301         (dwarf2out_function_decl): New function.
7302         (dwarf2out_var_location): Don't set section_label field.
7303         (dwarf2out_begin_function): Don't empty decl_loc_table here.
7304
7305 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
7306
7307         PR tree-optimization/43544
7308         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
7309         First argument for builtin vectorized function hook is now a
7310         tree to be able to distinguish between machine specific and
7311         standard builtins.
7312         * targhooks.c (default_builtin_vectorized_function): Ditto.
7313         * targhooks.h (default_builtin_vectorized_function): Ditto.
7314         * target.h (struct gcc_target): Ditto.
7315         * tree-vect-stmts.c (vectorizable_function): Ditto.
7316         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
7317         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
7318         Ditto.
7319
7320 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
7321
7322         PR c/43381
7323         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
7324         nested binding iff it is a FUNCTION_DECL.
7325         (store_parm_decls_newstyle): Pass nested=true to bind for
7326         FUNCTION_DECLs amongst parameters.
7327
7328 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
7329
7330         * var-tracking.c (vt_expand_loc_callback): Don't run
7331         cselib_expand_value_rtx_cb in dummy mode if
7332         cselib_dummy_expand_value_rtx_cb returned false.
7333
7334         * var-tracking.c (emit_note_insn_var_location): For one part
7335         notes with offset 0, don't add EXPR_LIST around the location.
7336         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
7337         add_location_or_const_value_attribute): Adjust for that change.
7338
7339         PR debug/43540
7340         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
7341         into first operand and location into second.
7342         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
7343         dw_cfi_oprnd_loc for DW_CFA_expression.
7344         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
7345         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
7346         assume first argument is regnum and second argument is location.
7347
7348 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
7349
7350         PR target/42113
7351         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
7352         of scratch register to DImode.  Split to DImode comparison operator.
7353         Use SImode subreg of scratch register in the multiplication.
7354         (*cmp_sadd_sidi): Ditto.
7355         (*cmp_ssub_si): Ditto.
7356         (*cmp_ssub_sidi): Ditto.
7357
7358 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
7359
7360         PR target/43524
7361         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
7362         Remove invalid assert and wrong comment.
7363
7364 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
7365
7366         PR debug/43516
7367         * flags.h (final_insns_dump_p): New extern.
7368         * final.c (final_insns_dump_p): New variable.
7369         (rest_of_clean_state): Set it before -fdump-final-insns=
7370         dumping, clear afterwards.
7371         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
7372         MEM_ALIAS_SET on MEMs.
7373
7374 2010-03-26  David S. Miller  <davem@davemloft.net>
7375
7376         * configure.ac: Fix sparc GOTDATA_OP bug check.
7377         * configure: Rebuild.
7378
7379 2010-03-26  Alan Modra  <amodra@gmail.com>
7380
7381         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
7382
7383 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7384
7385         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
7386         TLS_SECTION_ASM_FLAG.
7387
7388 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
7389
7390         PR bootstrap/43511
7391         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
7392         Clear first_function_block_is_cold.
7393
7394         PR c/43385
7395         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
7396         argument if the argument is truth_value_p.
7397
7398 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
7399
7400         * config/rs6000/constraints.md: Update copyright year for my changes.
7401
7402         PR target/43484
7403         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
7404         used in reg+reg addressing, swap registers.
7405
7406 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
7407
7408         PR debug/43293
7409         * target.h (struct gcc_target): Add code_end hook.
7410         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
7411         if not yet defined.
7412         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
7413         * toplev.c (compile_file): Call targetm.asm_out.code_end
7414         hook before unwind info/debug info output.
7415         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
7416         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
7417         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7418         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
7419         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7420         * config/i386/i386.c (ix86_file_end): Renamed to...
7421         (ix86_code_end): ... this.  Make static.  Don't call
7422         file_end_indicate_exec_stack.  Emit unwind info using
7423         final_start_function/final_end_function.
7424         (darwin_x86_file_end): Remove.
7425         (TARGET_ASM_CODE_END): Define.
7426         * config/i386/i386.h (TARGET_ASM_FILE_END,
7427         NEED_INDICATE_EXEC_STACK): Don't define.
7428         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
7429         (TARGET_ASM_FILE_END): Define to darwin_file_end.
7430         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
7431         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
7432
7433         PR target/43498
7434         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
7435         at the beginning and final_end_function at the end.
7436         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
7437
7438 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7439
7440         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
7441         and Sun as TLS syntax.
7442         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
7443         * configure: Regenerate.
7444         * config.in: Regenerate.
7445         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
7446         (default_elf_asm_named_section): Use it.
7447         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
7448         (i386_output_dwarf_dtprel): Likewise.
7449         (output_addr_const_extra): Likewise.
7450         (output_pic_addr_const): Lowercase @GOTTPOFF.
7451         (output_addr_const_extra): Likewise.
7452         (output_pic_addr_const): Lowercase @GOTNTPOFF.
7453         (output_addr_const_extra): Likewise.
7454         (output_pic_addr_const): Lowercase @INDNTPOFF.
7455         (output_addr_const_extra): Likewise.
7456         (output_pic_addr_const): Lowercase @NTPOFF.
7457         (output_addr_const_extra): Likewise.
7458         (output_pic_addr_const): Lowercase @TPOFF.
7459         (output_addr_const_extra): Likewise.
7460         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
7461         (*tls_global_dynamic_64): Likewise.
7462         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
7463         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
7464
7465         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
7466         (ASM_OUTPUT_TLS_COMMON): Use it.
7467         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
7468
7469         PR target/38118
7470         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
7471         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
7472         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
7473         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
7474         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7475         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
7476
7477 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7478
7479         * config/i386/i386.c (override_options): Don't accept
7480         -mtls-dialect=sun any longer.
7481         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
7482         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
7483         (*tls_local_dynamic_base_32_sun): Likewise.
7484         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7485
7486 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
7487
7488         PR debug/43508
7489         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
7490         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
7491
7492         PR debug/43479
7493         * ira.c (adjust_cleared_regs): New function.
7494         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
7495
7496         PR debug/19192
7497         PR debug/43479
7498         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
7499         from gimple_block.
7500         * expr.c (expand_expr_real): Restore previous
7501         curr_insn_source_location and curr_insn_block after
7502         expand_expr_real_1 call.
7503         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
7504         instead of expand_expr_real_1.
7505
7506 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
7507
7508         PR rtl-optimization/43413
7509         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
7510         hard regs too.
7511
7512 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
7513
7514         PR target/43348
7515         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
7516         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
7517
7518 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
7519
7520         * config/i386/i386.c (ix86_target_string): Add -mfma.
7521         Fix a typo in comment.
7522
7523 2010-03-22  Mike Stump  <mikestump@comcast.net>
7524
7525         PR target/23071
7526         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
7527         Don't overly align based upon packed packed fields.
7528
7529 2010-03-22  Jason Merrill  <jason@redhat.com>
7530
7531         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
7532         Use () rather than [], and move before the element type.
7533
7534 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7535
7536         * doc/configfiles.texi (Configuration Files): Removed
7537         fixinc/Makefile*, intl/Makefile.*.
7538         * doc/makefile.texi: Fixed markup. Abstract from version
7539         control system used.
7540         (Makefile): Removed obsolete gcc/java/parse.y example.
7541         * doc/sourcebuild.texi: Likewise.
7542         (Top Level): Added config, gnattools, libdecnumber, libgcc,
7543         libgomp, libssp.  Removed fastjar.
7544         (Miscellaneous Docs): Clarify location.
7545         Added COPYING3, COPYING3.LIB.
7546         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
7547
7548 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7549
7550         PR target/38085
7551         * config/i386/i386.c (x86_function_profiler)
7552         [!NO_PROFILE_COUNTERS]: Fix typo.
7553         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
7554         instead of callq.
7555
7556 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
7557             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7558
7559         * doc/sourcebuild.texi (Test Directives): Split into six
7560         subsections, with most of the current text in new subsections
7561         Directives, Selectors, and Final Actions.
7562         (Directives): Split list of test directives into multiple
7563         subsubsections.
7564         (Selectors): Describe use and syntax of selectors.
7565         (Effective-Target Keywords): Describe all existing keywords.
7566         (Add Options): Describe features for dg-add-options.
7567         (Require Support): Describe variants of dg-require-support.
7568         (Final Actions): Describe commands to use in dg-final.
7569
7570 2010-03-22  Michael Matz  <matz@suse.de>
7571
7572         PR middle-end/43475
7573         * recog.c (validate_replace_rtx_group): Replace also in
7574         REG_EQUAL and REG_EQUIV notes.
7575
7576 2010-03-22  Richard Guenther  <rguenther@suse.de>
7577
7578         PR tree-optimization/43390
7579         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
7580         sure vector extracts are type correct.
7581
7582 2010-03-22  Richard Guenther  <rguenther@suse.de>
7583
7584         PR middle-end/40106
7585         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
7586         x * sqrt (x) even when optimizing for size if the target
7587         has native support for sqrt.
7588
7589 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
7590
7591         * varasm.c (make_decl_rtl_for_debug): Also clear
7592         flag_mudflap for the duration of make_decl_rtl call.
7593
7594         PR debug/43443
7595         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
7596         locs from preserved VALUEs.
7597
7598 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7599
7600         PR middle-end/42718
7601         * pa.md (movmemsi): Set align to one if zero.
7602         (movmemdi): Likewise.
7603
7604 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
7605
7606         PR target/42321
7607         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
7608         with their corresponding prologue pushes.
7609
7610 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
7611
7612         PR target/43156
7613         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
7614         at the begining or end.
7615         (spu_expand_epilogue): Likewise.
7616
7617 2010-03-20  Richard Guenther  <rguenther@suse.de>
7618
7619         PR rtl-optimization/43438
7620         * combine.c (make_extraction): Properly zero-/sign-extend an
7621         extraction of the low part of a CONST_INT.  Also handle
7622         CONST_DOUBLE.
7623
7624 2010-03-19  Mike Stump  <mikestump@comcast.net>
7625
7626         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
7627         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
7628         (override_options): Use SUBTARGET32_DEFAULT_CPU.
7629
7630 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
7631
7632         PR c/43211
7633         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
7634         an error.
7635
7636 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
7637
7638         PR rtl-optimization/42258
7639         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
7640         use that may match DEF.
7641
7642         PR target/40697
7643         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
7644         the cost of loading the constant rather than assuming
7645         COSTS_N_INSNS (1).
7646         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
7647         outer code is AND, do the same tests as the andsi3 expander and
7648         return COSTS_N_INSNS (1) if and is cheap.
7649
7650         * optabs.c (avoid_expensive_constant): Fix formatting.
7651
7652 2010-03-19  Michael Matz  <matz@suse.de>
7653
7654         PR c++/43116
7655         * attribs.c (decl_attributes): When rebuilding a function pointer
7656         type use the same qualifiers as the original pointer type.
7657
7658 2010-03-19  Martin Jambor  <mjambor@suse.cz>
7659
7660         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
7661         and is_gimple_ip_invariant_address.
7662
7663 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7664
7665         Revert
7666         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7667
7668         * config/arm/arm.c (arm_override_options): Turn off
7669         flag_dwarf2_cfi_asm for AAPCS variants.
7670
7671 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7672
7673         PR target/43399
7674         * config/arm/arm.c (emit_multi_reg_push): Update comments.
7675         Use PRE_MODIFY instead of PRE_DEC.
7676         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
7677         (vfp_emit_fstmd): Likewise.
7678
7679 2010-03-19  Michael Matz  <matz@suse.de>
7680
7681         PR target/43305
7682         * builtins.c (expand_builtin_interclass_mathfn,
7683         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
7684         if that fails.
7685
7686 2010-03-19  Richard Guenther  <rguenther@suse.de>
7687
7688         PR tree-optimization/43415
7689         * tree-ssa-pre.c (phi_translate): Split out worker to ...
7690         (phi_translate_1): ... this.
7691         (phi_translate): Move all caching here.  Cache all NARY
7692         and REFERENCE translations.
7693
7694 2010-03-19  David S. Miller  <davem@davemloft.net>
7695
7696         With help from Eric Botcazou.
7697         * config/sparc/sparc.c: Include dwarf2out.h.
7698         (emit_pic_helper): Delete.
7699         (pic_helper_symbol_name): Delete.
7700         (pic_helper_emitted_p): Delete.
7701         (pic_helper_needed): New.
7702         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
7703         (get_pc_thunk_name): New.
7704         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
7705         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
7706         Set pic_helper_needed to true.  Don't call emit_pic_helper.
7707         (sparc_expand_prologue): Update load_pic_register call.
7708         (sparc_output_mi_thunk): Likewise.
7709         (sparc_file_end): Emit a hidden comdat symbol for the PIC
7710         thunk if possible.  Output CFI information as needed.
7711
7712 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
7713             Jack Howarth <howarth@bromo.med.uc.edu>
7714
7715         PR target/36399
7716         * config/i386/i386.h: Fix ABI on darwin x86-32.
7717
7718 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
7719
7720         * tree.h: Declare make_decl_rtl_for_debug.
7721         * varasm.c (make_decl_rtl_for_debug): New.
7722         * dwarf2out.c (rtl_for_decl_location): Call it.
7723         * cfgexpand.c (expand_debug_expr): Call it.
7724
7725 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
7726
7727         PR bootstrap/43399
7728         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
7729         mem_mode.
7730
7731         PR bootstrap/43403
7732         * var-tracking.c (vt_init_cfa_base): Do nothing if
7733         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
7734
7735 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
7736
7737         PR debug/42873
7738         * var-tracking.c (canonicalize_vars_star): New.
7739         (dataflow_post_merge_adjust): Use it.
7740
7741 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
7742
7743         PR debug/43058
7744         * var-tracking.c (non_suitable_const): New function.
7745         (add_uses): For DEBUG_INSNs with constants, don't record any
7746         value, instead just the constant value itself.
7747         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
7748         is not VAR_LOC_UNKNOWN_P, set var to the constant.
7749         (emit_notes_in_bb): Likewise.
7750         (emit_note_insn_var_location): For onepart variables if
7751         cur_loc is a VOIDmode constant, use DECL_MODE.
7752
7753 2010-03-18  Martin Jambor  <mjambor@suse.cz>
7754
7755         PR middle-end/42450
7756         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
7757         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
7758         all non-clones.  Moved call redirection...
7759         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
7760         (cgraph_materialize_all_clones): Dispose of all
7761         combined_args_to_skip bitmaps.
7762         (verify_cgraph_node): Do not check for edges pointing to wrong
7763         nodes in inline clones.
7764         * tree-inline.c (copy_bb): Call
7765         cgraph_redirect_edge_call_stmt_to_callee.
7766         * ipa.c (cgraph_remove_unreachable_nodes): Call
7767         cgraph_node_remove_callees even when there are used clones.
7768
7769 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
7770
7771         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
7772
7773 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
7774
7775         PR target/43383
7776         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
7777         for 32bit.
7778
7779 2010-03-18  Michael Matz  <matz@suse.de>
7780
7781         PR middle-end/43419
7782         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
7783         into sqrt(x) if we need to preserve signed zeros.
7784
7785 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
7786             Eric Botcazou  <ebotcazou@adacore.com>
7787
7788         PR rtl-optimization/43360
7789         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
7790         note if we don't know its invariant status.
7791
7792 2010-03-18  Michael Matz  <matz@suse.de>
7793
7794         PR tree-optimization/43402
7795         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
7796         PHI chains of ssa names registered for update.
7797
7798 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
7799
7800         PR target/42427
7801         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
7802         non-offsettable and pre_modify update addressing.
7803         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
7804         and "2" alternatives "#".
7805         (*movdd_softfloat32): Make all alternatives "#";
7806         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
7807         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
7808         (*movdf_softfloat32): Make all alternatives "#";
7809         (movdi): Use the new DIFD mode iterator to create a common splitter
7810         for movdi, movdf and movdd patterns.
7811
7812 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
7813
7814         * common.opt (dumpdir): Remove redundant tab.
7815
7816 2010-03-17  Martin Jambor  <mjambor@suse.cz>
7817
7818         PR tree-optimization/43347
7819         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
7820         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
7821
7822 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
7823
7824         PR rtl-optimization/42216
7825         * regrename.c (create_new_chain): New function, broken out from...
7826         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
7827         appending a use to an empty chain.
7828         (build_def_use): Remove previous changes that convert OP_INOUT to
7829         OP_OUT operands; instead detect the case where an OP_INOUT operand
7830         uses a previously untracked register and create an empty chain for it.
7831
7832 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7833
7834         * doc/extend.texi (Function Attributes): Rewrite unfinished
7835         sentence in ms_abi documentation.
7836
7837 2010-03-17  Alan Modra  <amodra@gmail.com>
7838
7839         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
7840         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
7841         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
7842         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
7843
7844 2010-03-16  Richard Henderson  <rth@redhat.com>
7845
7846         PR middle-end/43365
7847         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
7848         (lower_try_finally): Save and restore eh_seq around the expansion
7849         of the try-finally.
7850
7851 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
7852
7853         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
7854         statements before splitting block.
7855
7856 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7857
7858         * doc/sourcebuild.texi (Testsuites): Fix markup.
7859         Use pathnames relative to gcc/testsuite.
7860         (Test Directives): Move description of how timeout is determined.
7861         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
7862         (C Tests): Correct gcc.misc-tests directory.
7863         Framework tests now live in gcc.test-framework.
7864
7865 2010-03-16  Richard Guenther  <rguenther@suse.de>
7866
7867         PR middle-end/43379
7868         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
7869         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
7870
7871 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
7872             Alexandre Oliva  <aoliva@redhat.com>
7873
7874         PR tree-optimization/42917
7875         * lambda-code.c (remove_iv): Skip debug statements.
7876         (lambda_loopnest_to_gcc_loopnest): Likewise.
7877         (not_interesting_stmt): Debug statements are not interesting.
7878
7879 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
7880
7881         PR debug/43051
7882         PR debug/43092
7883         * cselib.c (cselib_preserve_constants,
7884         cfa_base_preserved_val): New static variables.
7885         (preserve_only_constants): New function.
7886         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
7887         clear its REG_VALUES.  If cselib_preserve_constants, don't
7888         empty the whole hash table, but preserve there VALUEs with constants,
7889         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
7890         (cselib_preserve_cfa_base_value): New function.
7891         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
7892         (cselib_init): Change argument to int bitfield.  Set
7893         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
7894         is in it.
7895         (cselib_finish): Clear cselib_preserve_constants and
7896         cfa_base_preserved_val.
7897         * cselib.h (enum cselib_record_what): New enum.
7898         (cselib_init): Change argument to int.
7899         (cselib_preserve_cfa_base_value): New prototype.
7900         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
7901         * dse.c (dse_step1): Likewise.
7902         * cfgcleanup.c (thread_jump): Likewise.
7903         * sched-deps.c (sched_analyze): Likewise.
7904         * gcse.c (local_cprop_pass): Likewise.
7905         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
7906         If FN is non-NULL, call the callback always and whenever it returns
7907         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
7908         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
7909         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
7910         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
7911         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
7912         * var-tracking.c: Include recog.h.
7913         (bb_stack_adjust_offset): Remove.
7914         (vt_stack_adjustments): Don't call it, instead just gather the
7915         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
7916         (adjust_stack_reference): Remove.
7917         (compute_cfa_pointer): New function.
7918         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
7919         (struct adjust_mem_data): New type.
7920         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
7921         functions.
7922         (get_address_mode): New function.
7923         (replace_expr_with_values): Use it.
7924         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
7925         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
7926         (adjust_sets): Remove.
7927         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
7928         Use get_address_mode.
7929         (get_adjusted_src): Remove.
7930         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
7931         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
7932         (add_with_sets): Don't call adjust_sets.
7933         (fp_setter, vt_init_cfa_base): New functions.
7934         (vt_initialize): Change return type to bool.  Move most of pool etc.
7935         initialization to the beginning of the function from end.  Pass
7936         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
7937         If !frame_pointer_needed, call vt_stack_adjustment before mos
7938         vector is filled, call vt_init_cfa_base if argp/framep has been
7939         eliminated to sp.  If frame_pointer_needed and argp/framep has
7940         been eliminated to hard frame pointer, set
7941         hard_frame_pointer_adjustment and call vt_init_cfa_base after
7942         encountering fp setter in the prologue.  For MO_ADJUST, call
7943         log_op_type before pusing the op into mos vector, not afterwards.
7944         Call adjust_insn before cselib_process_insn/add_with_sets,
7945         call cancel_changes (0) afterwards.
7946         (variable_tracking_main_1): Adjust for vt_initialize calling
7947         vt_stack_adjustments and returning whether it succeeded or not.
7948
7949 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
7950
7951         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
7952         debug statements.
7953
7954 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
7955
7956         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
7957         has been set.
7958         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
7959         drap_reg has not been set.
7960
7961 2010-03-15  Michael Matz  <matz@suse.de>
7962
7963         PR middle-end/43300
7964         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
7965         use it to expand block copies.
7966         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
7967         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
7968         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
7969
7970 2010-03-15  Richard Guenther  <rguenther@suse.de>
7971
7972         PR tree-optimization/43367
7973         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
7974         elimination check.
7975
7976 2010-03-15  Richard Guenther  <rguenther@suse.de>
7977
7978         PR tree-optimization/43317
7979         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
7980
7981 2010-03-15  Martin Jambor  <mjambor@suse.cz>
7982
7983         PR tree-optimization/43141
7984         * tree-sra.c (create_abstract_origin): New function.
7985         (modify_function): Call create_abstract_origin.
7986
7987 2010-03-15  Chris Demetriou  <cgd@google.com>
7988
7989         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
7990         wasn't copied.
7991
7992 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7993
7994         PR middle-end/43354
7995         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
7996         call insert_out_of_ssa_copy for default definitions.
7997
7998 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7999
8000         * graphite-clast-to-gimple.c (my_long_long): Defined.
8001         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
8002         * graphite-sese-to-poly.c (my_long_long): Defined.
8003         (scop_ivs_can_be_represented): Use it.
8004
8005 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8006
8007         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
8008         graphite-max-bbs-per-function, and loop-block-tile-size.
8009         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
8010         with "maximum".
8011         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
8012
8013 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8014
8015         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
8016         forward declaration.
8017         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
8018         (add_upper_bounds_from_estimated_nit): New.
8019         (build_loop_iteration_domains): Use it.
8020
8021 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8022
8023         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
8024
8025 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8026
8027         PR middle-end/43306
8028         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
8029         should be an INTEGER_CST.  Also handle CASE_CONVERT.
8030
8031 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8032
8033         * graphite.c (graphite_initialize): To bound the number of bbs per
8034         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
8035         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
8036         * doc/invoke.texi: Document it.
8037
8038 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8039
8040         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
8041         * graphite-sese-to-poly.h (build_poly_scop): Same.
8042
8043 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8044
8045         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
8046         the number of parameters in the scop.  Use as an upper bound
8047         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
8048         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
8049         * doc/invoke.texi: Document it.
8050
8051 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
8052
8053         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
8054         * doc/c-tree.texi: Remove.
8055         * doc/generic.texi: Merge c-tree.texi here.
8056         * doc/gccint.texi (Trees): Remove menu entry.
8057         (c-tree.texi): Remove @include.
8058         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
8059         * doc/languages.texi (Reading RTL): Ditto.
8060
8061 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
8062
8063         PR target/42869
8064         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
8065
8066 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
8067
8068         PR middle-end/42431
8069         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
8070         code added to work around reload clobbering CONST insns.
8071
8072 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
8073
8074         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
8075         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
8076         (cselib_preserve_only_values): Remove retain argument, don't
8077         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
8078         * cselib.h (cselib_preserve_only_values): Remove retain argument.
8079         * var-tracking.c (micro_operation): Move insn field before union.
8080         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
8081         (struct variable_tracking_info_def): Remove n_mos field, change
8082         mos into a vector of micro_operations.
8083         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
8084         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
8085         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
8086         changing into a vector.
8087         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
8088         come before all other uops generated by add_stores.
8089         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
8090         argument removal.
8091         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
8092         a vector.  Run just one pass over the bbs instead of separate counting
8093         and computation phase.
8094         (vt_finalize): Free VTI (bb)->mos vector instead of array.
8095
8096         PR debug/43329
8097         * tree-inline.c (remap_decls): Put old_var rather than origin_var
8098         into *nonlocalized_list vector.
8099         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
8100         even if origin is non-NULL.
8101         (gen_variable_die): Likewise.
8102         (process_scope_var): Don't change origin.
8103         (gen_decl_die): Likewise.
8104         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
8105         before adding new edges instead of after it, fix moving over
8106         debug stmts.
8107
8108 2010-03-11  David S. Miller  <davem@davemloft.net>
8109
8110         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
8111         of four.
8112         * configure: Rebuild.
8113
8114 2010-03-11  Martin Jambor  <mjambor@suse.cz>
8115
8116         PR tree-optimization/43257
8117         * tree.c (assign_assembler_name_if_neeeded): New function.
8118         (free_lang_data_in_cgraph): Assembler name assignment moved to the
8119         above new function.
8120         * tree.h (assign_assembler_name_if_neeeded): Declare.
8121         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
8122         the function if needed.
8123
8124 2010-03-11  Chris Demetriou  <cgd@google.com>
8125
8126         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
8127         include/stdint-gcc.h, and include/stdint.h world-readable.
8128
8129 2010-03-11  Richard Guenther  <rguenther@suse.de>
8130
8131         PR tree-optimization/43255
8132         * tree-vrp.c (process_assert_insertions_for): Do not insert
8133         asserts for trivial conditions.
8134
8135 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8136
8137         PR tree-optimization/43280
8138         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
8139         generation.  Move calculation of size out of the if branch.
8140         (find_bswap): Modify compare number generation.
8141
8142 2010-03-11  Richard Guenther  <rguenther@suse.de>
8143
8144         PR lto/43200
8145         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
8146         (input_gimple_stmt): Fixup handled component types during
8147         operand read.  Also fix up decls in ADDR_EXPRs.
8148
8149 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
8150
8151         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
8152         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
8153
8154 2010-03-10  Jan Hubicka  <jh@suse.cz>
8155
8156         PR c/43288
8157         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
8158         * varasm.c (get_variable_section): Don't do that here...
8159         (make_decl_rtl): ... and here.
8160         (do_assemble_alias): Produce decl RTL.
8161         (assemble_alias): Likewise.
8162
8163 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
8164
8165         PR debug/43290
8166         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
8167         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
8168         of fde->vdrap_reg.
8169         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
8170         (based_loc_descr): Only express drap or vdrap regno based expressions
8171         using DW_OP_fbreg when not optimizing.
8172         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
8173         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
8174         REG_CFA_SET_VDRAP note.
8175
8176 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
8177
8178         PR tree-optimization/43236
8179         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
8180         error in calculation of base address in reverse iteration case.
8181         (generate_builtin): Take number of latch executions if the statement
8182         is in the latch.
8183
8184 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
8185
8186         PR middle-end/42859
8187         * tree-eh.c: Include pointer-set.h.
8188         (lower_eh_dispatch): Filter out duplicate case labels and
8189         remove the unneeded edge when the label is unused.  Return
8190         true when some edges are removed.
8191         (execute_lower_eh_dispatch): When any lowering resulted in
8192         removing an edge, also delete unreachable blocks.
8193
8194 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
8195
8196         PR bootstrap/43287
8197         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
8198         UNSPEC_MACHOPIC_OFFSET.
8199
8200 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
8201
8202         PR target/43294
8203         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
8204         (m68k_delegitimize_address): New function.
8205
8206 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
8207
8208         PR debug/43299
8209         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
8210
8211         PR debug/43299
8212         * var-tracking.c (adjust_sets): New function.
8213         (count_with_sets, add_with_sets): Use it.
8214         (get_adjusted_src): New inline function.
8215         (add_stores): Use it.
8216
8217         PR debug/43304
8218         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
8219         call cselib_dummy_expand_value_rtx_cb instead of
8220         cselib_expand_value_rtx_cb.
8221
8222         PR debug/43293
8223         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
8224         * config/i386/i386.c: Include debug.h and dwarf2out.h.
8225         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
8226         and .cfi_endproc around the pic thunks.
8227         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
8228         all queued unwind info register saves are saved before the call.
8229         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
8230         considered as sp-=4 for unwind info and the pop as sp+=4 which
8231         also clobbers dest, but doesn't actually restore it.
8232
8233         PR debug/43290
8234         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
8235         RTX_FRAME_RELATED_P.
8236
8237 2010-03-09  Jie Zhang  <jie@codesourcery.com>
8238
8239         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
8240         whitespaces in output template.
8241
8242 2010-03-09  Jie Zhang  <jie@codesourcery.com>
8243
8244         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
8245         out array boundary.
8246
8247 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
8248
8249         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
8250         builtins.exp in a separate job.
8251
8252 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8253
8254         * graphite-sese-to-poly.c (add_param_constraints): Use
8255         lower_bound_in_type and upper_bound_in_type.
8256
8257 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8258
8259         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
8260         instead of unsigned_type_node.
8261
8262 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8263             Reza Yazdani  <reza.yazdani@amd.com>
8264
8265         PR middle-end/43065
8266         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
8267         on pointer type parameters.
8268
8269 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
8270
8271         PR middle-end/42644
8272         PR middle-end/42130
8273         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
8274         handle conversions from pointer to integers.
8275         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
8276         induction variable, to be able to work with code generated by CLooG.
8277         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
8278         (build_poly_scop): Bail out if we cannot codegen a loop.
8279
8280 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
8281
8282         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
8283         code generation with gloog_error.
8284
8285 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8286
8287         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
8288         Call fold_convert on all the returned values.
8289         (expand_scalar_variables_expr): Pass to
8290         expand_scalar_variables_ssa_name the type of the resulting expression.
8291
8292 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8293
8294         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
8295         ppl_min_for_le_pointset.
8296         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
8297         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
8298
8299 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8300
8301         * graphite-dependences.c (map_into_dep_poly): Removed.
8302         (dependence_polyhedron_1): Use combine_context_id_scat.
8303
8304 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8305
8306         * graphite-poly.h (struct poly_scattering): Add layout documentation.
8307         (struct poly_bb): Same.
8308         (combine_context_id_scat): New.
8309
8310 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8311
8312         PR middle-end/42326
8313         * sese.c (name_defined_in_loop_p): Return false for default
8314         definitions.
8315
8316 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8317
8318         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
8319         and clean up the logic.
8320
8321 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8322
8323         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
8324         early return.
8325
8326 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
8327
8328         * var-tracking.c (remove_cselib_value_chains): Define only for
8329         ENABLE_CHECKING.
8330         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
8331         delete_slot_part, emit_notes_for_differences_1): Don't call
8332         remove_cselib_value_chains here.
8333         (set_slot_part, emit_notes_for_differences_2): Don't call
8334         add_cselib_value_chains here.
8335         (preserved_values): New vector.
8336         (preserve_value): New function.
8337         (add_uses, add_stores, vt_add_function_parameters): Use it
8338         instead of cselib_preserve_value.
8339         (changed_values_stack): New vector.
8340         (check_changed_vars_0): New function.
8341         (check_changed_vars_1, check_changed_vars_2): Use it.
8342         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
8343         changed_values_stack VALUEs.
8344         (vt_emit_notes): For all preserved_values call
8345         add_cselib_value_chains.  If ENABLE_CHECKING call
8346         remove_cselib_value_chains before verifying value_chains is empty.
8347         Initialize and free changed_values_stack.
8348         (vt_initialize): Initialize preserved_values.
8349         (vt_finalize): Free preserved_values.
8350
8351 2010-03-08  Richard Guenther  <rguenther@suse.de>
8352
8353         PR tree-optimization/43269
8354         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
8355         region detection.
8356
8357 2010-03-08  Martin Jambor  <mjambor@suse.cz>
8358
8359         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
8360         (ipa_is_param_called): Removed.
8361         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
8362         (ipa_print_node_params): Do not print the called flag.
8363         (ipa_write_node_info): Do not stream the called flag.
8364         (ipa_read_node_info): Likewise.
8365
8366 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
8367
8368         PR debug/43176
8369         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
8370         * cselib.c (struct expand_value_data): Add dummy field.
8371         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
8372         dummy to false.
8373         (cselib_dummy_expand_value_rtx_cb): New function.
8374         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
8375         any rtl.
8376         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
8377         * var-tracking.c: Include pointer-set.h.
8378         (variable): Change n_var_parts to char from int.  Add
8379         cur_loc_changed and in_changed_variables fields.
8380         (variable_canonicalize): Remove.
8381         (shared_var_p): New inline function.
8382         (unshare_variable): Maintain cur_loc_changed and
8383         in_changed_variables fields.  If var was in changed_variables,
8384         replace it there with new_var.  Just copy cur_loc instead of
8385         resetting it to something else.
8386         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
8387         (dataflow_set_union): Don't call variable_canonicalize.
8388         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
8389         of their DEBUG_EXPR_TREE_DECLs.
8390         (canonicalize_loc_order_check): Verify that cur_loc is NULL
8391         and in_changed_variables and cur_loc_changed is false.
8392         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
8393         and cur_loc_changed.  Don't update cur_loc here.
8394         (variable_merge_over_src): Don't call variable_canonicalize.
8395         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
8396         removing loc that is equal to cur_loc, clear cur_loc,
8397         set cur_loc_changed and ensure variable_was_changed is called.
8398         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
8399         compare pointers in cur_loc check, if it is equal to loc,
8400         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
8401         (variable_different_p): Remove compare_current_location argument,
8402         don't compare cur_loc.
8403         (dataflow_set_different_1): Adjust variable_different_p caller.
8404         (variable_was_changed): If dv had some var in changed_variables
8405         already, reset in_changed_variables flag for it and propagate
8406         cur_loc_changed over to the new variable.  On empty var
8407         always set cur_loc_changed.  Set in_changed_variables on whatever
8408         var is added to changed_variables.
8409         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
8410         Use shared_var_p.  When removing loc that is equal to cur_loc,
8411         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
8412         end, don't set it to something else, just call variable_was_changed.
8413         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
8414         loc being removed, clear cur_loc and set cur_loc_changed.
8415         Set cur_loc_changed if all locations have been removed.
8416         (struct expand_loc_callback_data): New type.
8417         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
8418         allocated.  Always create SUBREGs if simplify_subreg failed.
8419         Prefer to use cur_loc, when that fails and still in
8420         changed_variables (and seen first time) recompute it.  Set
8421         cur_loc_changed of variables which had to change cur_loc and
8422         compute elcd->cur_loc_changed if any of the subexpressions used
8423         had to change cur_loc.
8424         (vt_expand_loc): Adjust to pass arguments in
8425         expand_loc_callback_data structure.
8426         (vt_expand_loc_dummy): New function.
8427         (emitted_notes): New variable.
8428         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
8429         that weren't used for any other decl in current
8430         emit_notes_for_changes call call vt_expand_loc_dummy to update
8431         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
8432         first loc_chain location if NULL before.  Always use just
8433         cur_loc instead of first loc_chain location.  When cur_loc_changed
8434         is false, when not --enable-checking=rtl just don't emit any note.
8435         When rtl checking, compute the note and assert it is the same
8436         as previous note.  Clear cur_loc_changed and in_changed_variables
8437         at the end before removing from changed_variables.
8438         (check_changed_vars_3): New function.
8439         (emit_notes_for_changes): Traverse changed_vars to call
8440         check_changed_vars_3 on each changed var.
8441         (emit_notes_for_differences_1): Clear cur_loc_changed and
8442         in_changed_variables.  Recompute cur_loc of new_var.
8443         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
8444         (vt_emit_notes): Initialize and destroy emitted_notes.
8445
8446 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
8447
8448         PR rtl-optimization/42220
8449         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
8450         Use verify_reg_tracked to determine if we should use OP_OUT rather
8451         than OP_INOUT.
8452         (build_def_use): If we see an in-out operand for a register that we
8453         know nothing about, treat is an output if possible, fail the block if
8454         not.
8455
8456 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
8457
8458         PR debug/42897
8459         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
8460         permanently.
8461
8462 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
8463
8464         PR debug/42897
8465         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
8466         uses of relevant DEFs that are dead outside the loop too.
8467
8468 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
8469
8470         * var-tracking.c (dataflow_set_merge): Swap src and src2.
8471         Reverted:
8472         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
8473         PR debug/41371
8474         * var-tracking.c (values_to_unmark): New variable.
8475         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
8476         values_to_unmark vector.  Moved body to...
8477         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
8478         instead queue it into values_to_unmark vector.
8479         (vt_find_locations): Free values_to_unmark vector.
8480
8481 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
8482
8483         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
8484         (site.exp): Export them when plugins are enabled.
8485
8486 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
8487
8488         PR middle-end/42326
8489         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
8490         that contain scevs.
8491         (chrec_fold_multiply): Same.
8492
8493 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
8494
8495         PR c/43248
8496         * c-decl.c (build_compound_literal): Return early if init is
8497         an error_mark_node.
8498
8499 2010-03-04  Martin Jambor  <mjambor@suse.cz>
8500
8501         PR tree-optimization/43164
8502         PR tree-optimization/43191
8503         * tree-sra.c (type_consists_of_records_p): Reject records with
8504         zero-size bit-fields at the end.
8505
8506 2010-03-04  Mike Stump  <mikestump@comcast.net>
8507
8508         * Makefile.in (TAGS): Remove *.y.
8509
8510 2010-03-04  Richard Guenther  <rguenther@suse.de>
8511
8512         PR tree-optimization/40761
8513         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
8514         in reverse order.
8515         (my_rev_post_order_compute): New function.
8516         (init_pre): Call it.
8517
8518 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
8519
8520         PR middle-end/43209
8521         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
8522         decrease the cost of an IV candidate when the cost is infinite.
8523
8524 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8525
8526         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
8527         Use '3DNow!' for the extension of that name, ensure normal space
8528         after the string.
8529         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
8530
8531 2010-03-03  Jeff Law  <law@redhat.com>
8532
8533         * PR middle-end/32693
8534         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
8535         than gen_rtx_SUBREG.
8536         (extract_bit_field_1): Likewise.
8537
8538 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
8539
8540         * doc/sourcebuild.texi (Test directives): Document that arguments
8541         include-opts and exclude-opts are now optional for dg-skip-if,
8542         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
8543
8544 2010-03-03  Jason Merrill  <jason@redhat.com>
8545
8546         PR c++/12909
8547         * cgraph.h (varpool_node): Add extra_name field.
8548         * varpool.c (varpool_extra_name_alias): New.
8549         (varpool_assemble_decl): Emit extra name aliases.
8550         (varpool_mark_needed_node): Look past an extra name alias.
8551         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
8552         * lto-streamer-in.c (lto_input_tree): Read it.
8553         * lto-streamer-out.c (output_unreferenced_globals): Write it.
8554
8555 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
8556
8557         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
8558         (sparc*-*-solaris2*): ...this.
8559
8560 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
8561
8562         PR debug/43229
8563         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
8564         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
8565         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
8566         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
8567
8568         PR debug/43237
8569         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
8570         fallthrough to default handling, just with want_address 0 instead of 2.
8571         For single element lists, add_AT_loc directly, otherwise create an
8572         artificial variable DIE and stick location list to it.
8573
8574         PR debug/43177
8575         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
8576         (VAL_EXPR_HAS_REVERSE): Define.
8577         (reverse_op): New function.
8578         (add_stores): For reversible operations add an extra MO_VAL_USE.
8579
8580 2010-03-02  Jason Merrill  <jason@redhat.com>
8581
8582         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
8583
8584 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
8585
8586         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
8587         (sparc64-*-linux*): Likewise.
8588         (sparc64-*-solaris2*): Include assembler files before linker ones.
8589         (sparc-*-solaris2*): Simplify and reorder to match previous case.
8590         * config/sparc/gas.h: Delete.
8591         * config/sparc/sol2-64.h: Add copyright notice.
8592         * config/sparc/sol2-gas-bi.h: Likewise.
8593         * config/sparc/sol2-gld.h: Likewise.
8594         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
8595         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
8596         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
8597         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
8598         (sparc_elf_asm_named_section): Rename into...
8599         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
8600
8601 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
8602
8603         * config/alpha/alpha.c (override_options): Fix -mtune error message.
8604
8605 2010-03-02  Jeff Law  <law@redhat.com>
8606
8607         PR middle-end/42431
8608         * reload1.c (rtx_p, substitute_stack): Declare.
8609         (substitute): Record addresses of changed rtxs.
8610         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
8611         Restore the original rtx when complete.
8612         (reload): Free subsitute_stack when complete.
8613
8614 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
8615
8616         * doc/gccint.texi (menu): Add Testsuites as a chapter.
8617         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
8618         new chapter.
8619         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
8620         LTO Testing, gcov Testing, profopt Testing, compat Testing,
8621         Torture Tests): Change from subsection to section.
8622
8623 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
8624             Steven Bosscher  <steven@gcc.gnu.org>
8625
8626         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
8627         instead of bb.
8628
8629 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
8630
8631         PR middle-end/42640
8632         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
8633         the assignment from the new induction variable to the assignment
8634         of the value from the original loop PHI function.
8635
8636 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
8637             Daniel Jacobowitz  <dan@codesourcery.com>
8638
8639         * doc/sourcebuild.texi (Test directives): Clarify options to
8640         dg-skip-if.
8641
8642 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8643
8644         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
8645         Disable cfi directives unless GCC and gas agree on using read-only
8646         .eh_frame sections for 64-bit.
8647         * configure: Regenerate.
8648
8649 2010-03-01  Richard Guenther  <rguenther@suse.de>
8650
8651         PR tree-optimization/43220
8652         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
8653         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
8654
8655 2010-03-01  Richard Guenther  <rguenther@suse.de>
8656             Martin Jambor  <mjambor@suse.cz>
8657
8658         PR middle-end/41250
8659         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
8660         gimplified parameters.
8661
8662 2010-03-01  Christian Bruel  <christian.bruel@st.com>
8663
8664         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
8665
8666 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
8667
8668         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
8669
8670 2010-03-01  Richard Guenther  <rguenther@suse.de>
8671
8672         PR middle-end/43213
8673         * expr.c (expand_assignment): Use the alias-oracle to tell
8674         if the rhs aliases the result decl.
8675
8676 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8677
8678         PR pch/14940
8679         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
8680         to sol_gt_pch_get_address.
8681         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
8682         64-bit, SPARC and x86.
8683         (sol_gt_pch_get_address): New function.
8684
8685 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
8686
8687         * toplev.h (inform_n, error_n): Declare.
8688         * diagnostic.c (inform_n, error_n): New function.
8689
8690 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
8691
8692         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
8693         has no rtl yet when processing local_decls, queue it and recheck
8694         if deferred stack allocation hasn't assigned it rtl.
8695
8696 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
8697
8698         * config/sh/sh.c (unspec_bbr_uid): New.
8699         (gen_block_redirect): Use it instead of INSN_UID.
8700         (gen_far_branch): Likewise.
8701
8702 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
8703
8704         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
8705         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
8706
8707 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8708
8709         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
8710         (Warning Options): -Wno-conversion-null is valid for
8711         Objective-C++ as well.
8712         * doc/tm.texi (Named Address Spaces): Likewise.
8713         * doc/plugins.texi (Plugins): Replace TABs with spaces.
8714         * doc/tree-ssa.texi (Tree SSA): Likewise.
8715
8716 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8717
8718         PR bootstrap/43202
8719         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
8720         by default.  Don't set the default arch for
8721         i[34567]86-*-darwin*|x86_64-*-darwin*.
8722
8723 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8724
8725         PR bootstrap/43202
8726         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
8727         default.  Set the default 32bit/64bit archs with $with_arch
8728         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
8729
8730 2010-02-27  Richard Guenther  <rguenther@suse.de>
8731
8732         PR tree-optimization/43186
8733         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
8734         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
8735         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
8736         unroller iterations.
8737
8738 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8739
8740         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
8741         required and i[34567]86-*-* targets don't support 64bit ISA.
8742
8743 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
8744
8745         PR ada/43096
8746         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
8747         the same alias set.
8748
8749 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
8750
8751         * config.gcc: Set the default arch at least to Prescott for
8752         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
8753         if SSE math is enabled.
8754
8755 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8756
8757         * diagnostic.c (diagnostic_initialize): Update.
8758         (diagnostic_report_diagnostic): Test inhibit_notes_p for
8759         informative notes.
8760         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
8761         (diagnostic_inhibit_notes): New.
8762         * toplev.c (process_options): inhibit notes with -fcompare-debug.
8763
8764 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8765
8766         PR c/20631
8767         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
8768         * doc/standards.texi: Likewise.
8769         * doc/extend.texi: Likewise.
8770         * doc/trouble.texi: Likewise.
8771         * doc/cppopts.texi: Likewise.
8772         * doc/install.texi: Likewise.
8773         * c.opt (std=c90,std=gnu90): New options.
8774         * c-opts.c (c_common_handle_option): Handle them.
8775
8776 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8777
8778         PR c/24577
8779         * c-decl.c (undeclared_variable): Use an informative note.
8780
8781 2010-02-26  Richard Guenther  <rguenther@suse.de>
8782
8783         PR tree-optimization/43186
8784         * gimple.h (gimple_fold): Remove.
8785         * gimple.c (gimple_fold): Remove.  Inline into single user ...
8786         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
8787         Try harder for conditions.
8788
8789 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
8790
8791         PR debug/43190
8792         * function.c (used_types_insert): Don't skip through named pointer
8793         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
8794         and it is different from the main variant's type.
8795
8796 2010-02-26  Nick Clifton  <nickc@redhat.com>
8797
8798         * config/rx/rx.md (sminsi3): Remove bogus alternative.
8799
8800 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
8801
8802         * config.gcc: Support --with-fpmath=sse for x86.
8803
8804         * config/i386/ssemath.h: New.
8805
8806         * doc/install.texi (--with-fpmath=sse): Documented.
8807
8808 2010-02-26  Richard Guenther  <rguenther@suse.de>
8809
8810         PR tree-optimization/43188
8811         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
8812         vector types of over-aligned element type.
8813
8814 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
8815
8816         PR target/43175
8817         * config/i386/i386.c (expand_vec_perm_blend): Use correct
8818         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
8819
8820 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
8821
8822         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
8823
8824 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
8825
8826         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
8827         * var-tracking.c: Include diagnostic.h.
8828         (debug_dv): New function.
8829         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
8830
8831         PR debug/43160
8832         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
8833         (add_value_chain, add_value_chains, remove_value_chain,
8834         remove_value_chains): Handle DEBUG_EXPRs.
8835         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
8836
8837         PR debug/43161
8838         * regcprop.c (struct queued_debug_insn_change): New type.
8839         (struct value_data_entry): Add debug_insn_changes field.
8840         (struct value_data): Add n_debug_insn_changes field.
8841         (debug_insn_changes_pool): New variable.
8842         (free_debug_insn_changes, apply_debug_insn_changes,
8843         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
8844         (kill_value_one_regno): Call free_debug_insn_changes if needed.
8845         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
8846         fields.
8847         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
8848         changes for them.
8849         (copyprop_hardreg_forward_1): Don't call apply_change_group for
8850         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
8851         changes, call cprop_find_used_regs via note_stores.
8852         (copyprop_hardreg_forward): When copying vd from predecessor
8853         which has any queued DEBUG_INSN changes, make sure the pointers are
8854         cleared.  At the end call df_analyze and then if there are any
8855         DEBUG_INSN changes queued at the end of some basic block for still
8856         live registers, apply them.
8857         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
8858
8859 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
8860
8861         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
8862         (arm*-*-*): Ditto.
8863
8864 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
8865
8866         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
8867         targets.  Set the default with_cpu/with_arch from arch/cpu.
8868         Allow x86-64 and native for with_cpu/with_arch.
8869
8870 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
8871
8872         * ebitmap.c: Change calls to verify_popcount with calls to
8873         sbitmap_verify_popcount.
8874         (ebitmap_clear_bit): Fixed map->cacheindex test and
8875         map>cache update when bit clearing results in an empty
8876         element.
8877
8878 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
8879
8880         PR target/43154
8881         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
8882         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
8883         and support both V2DF and V2DI modes.
8884         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
8885         support both V2DF and V2DI modes.
8886         (general): Delete trailing whitespace from a few patterns.
8887
8888         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8889         V2DF/V2DI interleave high/low builtins.
8890
8891         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
8892         new VSX builtins.
8893
8894         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
8895         interleave high/low functions.
8896
8897 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
8898
8899         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
8900         #pragma extern_prefix.
8901
8902 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
8903
8904         PR debug/43166
8905         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
8906         BLKmode, assert op0 is a MEM and just adjust its mode.
8907
8908         PR debug/43165
8909         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
8910         if bitpos isn't multiple of mode's bitsize.
8911
8912 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8913
8914         * c.opt (-ftemplate-depth=): New.
8915         (-ftemplate-depth-): Deprecate.
8916         * optc-gen.awk: Handle -ftemplate-depth=.
8917         * opth-gen.awk: Likewise.
8918         * c-opts.c (c_common_handle_option): Likewise.
8919         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
8920
8921 2010-02-24  Jason Merrill  <jason@redhat.com>
8922
8923         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
8924
8925 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8926
8927         * cfg.c (alloc_aux_for_block): Remove inline.
8928         (alloc_aux_for_edge): Likewise.
8929
8930 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8931
8932         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
8933
8934 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8935
8936         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
8937         * config/i386/sol2-gas.h: New file.
8938         * config.gcc (i[34567]86-*-solaris2*): Use it.
8939
8940 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8941
8942         PR c/43128
8943         * c-typeck.c (ep_convert_and_check): New.
8944         (build_conditional_expr): Use it.
8945         (build_binary_op): Likewise.
8946
8947 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
8948
8949         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
8950
8951         PR debug/43150
8952         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
8953         bounds even for -O+.
8954         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
8955         expr needs to have DECL_NAME set.
8956
8957 2010-02-24  Nick Clifton  <nickc@redhat.com>
8958
8959         * config/mep/mep.c: Include gimple.h.
8960         (mep_function_uses_sp): Delete unused function.
8961         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
8962         parameters.  Use unsigned integers to count args.  Return a
8963         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
8964
8965 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
8966
8967         PR target/43107
8968         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
8969         greater or equal to nelt instead of 2 * nelt.
8970         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
8971         with nelt - 1.
8972
8973 2010-02-23  Jason Merrill  <jason@redhat.com>
8974
8975         PR debug/42800
8976         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
8977         in cfun->local_decls even if they have register types.
8978
8979         PR c++/42837
8980         * stor-layout.c (place_field): Don't warn about unnecessary
8981         DECL_PACKED if the type is packed.
8982
8983 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
8984
8985         PR target/43139
8986         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
8987         GOTOFF relocs, even when the base reg isn't pic pointer.
8988
8989 2010-02-23  Michael Matz  <matz@suse.de>
8990
8991         PR debug/43077
8992         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
8993         (expand_gimple_basic_block): Generate and use debug temps if there
8994         are debug uses left after the last real use of TERed ssa names.
8995         Unlink debug immediate uses when they are expanded.
8996
8997 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8998
8999         PR 43123
9000         * config/i386/i386.c (override_options): Reorganise to provide
9001         better error messages.
9002
9003 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9004
9005         PR middle-end/43083
9006         * graphite-scop-detection.c (create_single_exit_edge): Move
9007         the call to find_single_exit_edge to....
9008         (create_sese_edges): ...here.  Don't handle multiple edges
9009         exiting the function.
9010         (build_graphite_scops): Don't handle multiple edges
9011         exiting the function.
9012
9013 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9014
9015         PR middle-end/43097
9016         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
9017         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
9018
9019 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9020
9021         PR middle-end/43026
9022         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
9023
9024 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9025
9026         PR c++/43126
9027         * c-typeck.c (convert_arguments): Print declaration location.
9028         * c-common.c (validate_nargs): Rename as
9029         builtin_function_validate_nargs.
9030         (check_builtin_function_arguments): Update.
9031
9032 2010-02-22  Richard Guenther  <rguenther@suse.de>
9033
9034         PR lto/43045
9035         * tree-inline.c (declare_return_variable): Use the type of
9036         the call stmt lhs if available.
9037
9038 2010-02-22  Duncan Sands  <baldrick@free.fr>
9039
9040         * passes.c (register_pass): Always consider all pass lists when
9041         ref_pass_instance_number is zero.
9042
9043 2010-02-22  Richard Guenther  <rguenther@suse.de>
9044
9045         PR tree-optimization/42749
9046         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
9047         parameter.  Do arithmetic in the original type.
9048         (update_accumulator_with_ops): Likewise.
9049         (adjust_accumulator_values): Adjust.
9050
9051 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9052
9053         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
9054         (QI to BLKmode splitter): New splitter.
9055
9056 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
9057
9058         * config/i386/i386.c (initial_ix86_tune_features): Turn on
9059         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
9060
9061 2010-02-22  Richard Guenther  <rguenther@suse.de>
9062
9063         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
9064
9065 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
9066
9067         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
9068         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
9069         ($(T)crti.o, $(T)crtn.o): Remove rules.
9070
9071 2010-02-21  Tobias Burnus  <burnus@net-b.de>
9072
9073         PR fortran/35259
9074         * doc/invoke.texi (-fassociative-math): Document that this
9075         option is automatically enabled for Fortran.
9076
9077 2010-02-20  David S. Miller  <davem@davemloft.net>
9078
9079         * configure.ac: Test if linker and assembler properly support
9080         GOTDATA_OP relocations.
9081         * configure: Rebuild.
9082         * config.in: Likewise.
9083         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
9084         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
9085         (movsi_high_pic): Likewise.
9086         (movdi_lo_sum_pic): Likewise.
9087         (movdi_high_pic): Likewise.
9088         (movsi_pic_gotdata_op): New pattern.
9089         (movdi_pic_gotdata_op): Likewise.
9090         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
9091         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
9092
9093 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
9094
9095         PR target/43067
9096         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
9097         attribute to ssemul.
9098         (xop_mulv2div2di3_high): Ditto.
9099
9100 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9101
9102         PR c++/35669
9103         * c.opt (Wconversion-null): New option.
9104         * doc/invoke.texi (Wconversion-null): Document.
9105
9106 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9107
9108         * common.opt (Wlarger-than-): Add Undocumented.
9109
9110 2010-02-19  Mike Stump  <mikestump@comcast.net>
9111
9112         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
9113
9114 2010-02-19  Jason Merrill  <jason@redhat.com>
9115
9116         PR target/40332
9117         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
9118         * configure: Likewise.
9119
9120 2010-02-20  Alan Modra  <amodra@gmail.com>
9121
9122         PR middle-end/42344
9123         * cgraph.h (cgraph_make_decl_local): Declare.
9124         * cgraph.c (cgraph_make_decl_local): New function.
9125         (cgraph_make_node_local): Use it.
9126         * cgraphunit.c (cgraph_function_versioning): Likewise.
9127         * ipa.c (function_and_variable_visibility): Likewise.
9128
9129 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9130
9131         PR bootstrap/43121
9132         * except.c (sjlj_emit_function_enter): Don't call
9133         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
9134         directly.
9135         * rtl.h (add_reg_br_prob_note): Remove prototype.
9136
9137 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9138
9139         PR 41779
9140         * c-common.c (conversion_warning): Remove widening conversions
9141         before checking the conversion of integers to reals.
9142
9143 2010-02-19  Mike Stump  <mikestump@comcast.net>
9144
9145         PR middle-end/43125
9146         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
9147
9148         PR objc/43061
9149         * cgraphunit.c (process_function_and_variable_attributes): Check
9150         DECL_PRESERVE_P instead of looking up attribute "used".
9151         * ipa-pure-const.c (check_decl): Likewise.
9152         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
9153         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
9154         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
9155         instead of attribute "used".
9156         * config/sol2-c.c (solaris_pragma_init): Likewise.
9157         (solaris_pragma_fini): Likewise.
9158
9159 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9160
9161         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
9162         Use XCNEW instead of xcalloc.
9163         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
9164         XNEW instead of xmalloc.
9165         (get_fields): Use XNEWVEC instead of xmalloc.
9166
9167         PR debug/43084
9168         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
9169         populate vars array.
9170         (create_new_general_access): For debug stmts just reset value.
9171         (get_stmt_accesses): For accesses within debug stmts just record them
9172         using add_access_to_acc_sites instead of preventing the peeling or
9173         counting them as accesses.
9174
9175         PR middle-end/42233
9176         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
9177
9178 2010-02-19  Richard Guenther  <rguenther@suse.de>
9179
9180         PR tree-optimization/42916
9181         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
9182         instructions.
9183
9184 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
9185
9186         * configure.ac: Replace all uses of changequote in macro arguments
9187         with proper quoting.
9188
9189 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9190
9191         PR middle-end/42233
9192         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
9193
9194 2010-02-19  Richard Guenther  <rguenther@suse.de>
9195
9196         PR tree-optimization/42944
9197         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
9198         test for aliasing with errno.
9199
9200 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9201
9202         PR middle-end/42233
9203         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
9204         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
9205         * dojump.c: Include output.h.
9206         (inv): New inline function.
9207         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
9208         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
9209         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
9210         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
9211         argument, pass it down to other calls.
9212         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
9213         add REG_BR_PROB note to the conditional jump.
9214         * cfgexpand.c (add_reg_br_prob_note): Removed.
9215         (expand_gimple_cond): Don't call it, add the probability
9216         as last argument to jumpif_1/jumpifnot_1.
9217         * Makefile.in (dojump.o): Depend on output.h.
9218         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
9219         callers.
9220         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
9221         * stmt.c (do_jump_if_equal): Likewise.
9222         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
9223         * loop-unswitch.c (compare_and_jump_seq): Likewise.
9224         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
9225         Likewise.
9226         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
9227         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
9228         jumpifnot_1 callers.
9229         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
9230         callers.
9231         (store_expr): Adjust jumpifnot caller.
9232         (store_constructor): Adjust jumpif caller.
9233
9234         PR middle-end/42233
9235         * gimplify.c (gimple_boolify): For __builtin_expect call
9236         gimple_boolify also on its first argument.
9237
9238 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
9239
9240         * configure.ac (gnu-unique-object): Wrap regexps using [] in
9241         changequote block.
9242         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
9243         * configure: Regenerated.
9244
9245 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9246
9247         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
9248         lang_hooks.types_compatible_p instead of comptypes.
9249
9250 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
9251
9252         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
9253         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
9254         if __prefer_thumb__ is defined.
9255
9256 2010-02-18  Martin Jambor  <mjambor@suse.cz>
9257
9258         PR tree-optimization/43066
9259         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
9260         array with zero-sized element type.
9261
9262 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
9263
9264         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
9265         rtx, allocate struct var_loc_node here and return it to the
9266         caller, and only if it is actually needed.
9267         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
9268         move it earlier and return immediately if it returns NULL.
9269
9270 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
9271
9272         * config/sparc/gas.h: New file.  Restore
9273         TARGET_ASM_NAMED_SECTION to its ELF default.
9274         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
9275         check !HAVE_GNU_AS.
9276         * config/sparc/sparc.c (sparc_elf_asm_named_section):
9277         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
9278         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
9279         after sparc/sysv4.h.
9280
9281 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
9282
9283         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
9284
9285 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
9286
9287         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
9288         patterns from predicated pattern.
9289
9290 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
9291
9292         PR target/43103
9293         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
9294         for insn mnemonic suffix.
9295
9296 2010-02-17  Richard Guenther  <rguenther@suse.de>
9297
9298         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
9299         to loop PHI nodes.
9300
9301 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
9302
9303         PR debug/42918
9304         * caller-save.c (save_call_clobbered_regs): If BB ends with
9305         a DEBUG_INSN, move any notes in between last real insn and the last
9306         DEBUG_INSN after the last DEBUG_INSN.
9307
9308 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
9309
9310         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
9311         Fix return type.  Fix argument type.  Explain meaning of return value.
9312
9313 2010-02-16  Richard Guenther  <rguenther@suse.de>
9314
9315         PR tree-optimization/41043
9316         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
9317         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
9318         statements ...
9319         (vrp_visit_phi_node): ... but only for loop PHI nodes.
9320
9321 2010-02-16  Ira Rosen  <irar@il.ibm.com>
9322
9323         PR tree-optimization/43074
9324         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
9325         * tree-vect-loop.c (vect_analyze_loop_operations): Add
9326         vectorizable cycles in hybrid SLP check.
9327         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
9328
9329 2010-02-16  Richard Guenther  <rguenther@suse.de>
9330
9331         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
9332         (true_dependence): If memrefs_conflict_p computes must-alias
9333         trust it.  Move TBAA check after offset-based disambiguation.
9334         (canon_true_dependence): Likewise.
9335
9336 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
9337
9338         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
9339         * doc/invoke.texi: Document it.
9340         * var-tracking.c: Include toplev.h and params.h.
9341         (vt_find_locations): Return bool indicating success.  Compute
9342         hash sizes unconditionally.  Check new parameter, report.
9343         (variable_tracking_main_1): Check vt_find_locations results and
9344         retry.  Renamed from...
9345         (variable_tracking_main): ... this.  New wrapper to preserve
9346         flag_var_tracking_assignments.
9347         * Makefile.in (var-tracking.o): Adjust dependencies.
9348
9349 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
9350             Jakub Jelinek <jakub@redhat.com>
9351
9352         PR target/42854
9353         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
9354         if weak_import attribute is present.
9355         * config/darwin.c (machopic_select_section): Likewise.
9356
9357 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
9358
9359         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
9360         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
9361         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
9362         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
9363
9364         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
9365         types.
9366
9367         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
9368         Fix argument types.
9369
9370         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
9371         Rewrite text to refer to the names.
9372
9373 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
9374
9375         * config/i386/i386-builtin-types.def
9376         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
9377         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
9378         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
9379         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
9380         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
9381         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
9382         IX86_BUILTIN_VPERMIL2PS256.
9383         (MULTI_ARG_4_DF2_DI_I): Defined.
9384         (MULTI_ARG_4_DF2_DI_I1): Defined.
9385         (MULTI_ARG_4_SF2_SI_I): Defined.
9386         (MULTI_ARG_4_SF2_SI_I1): Defined.
9387         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
9388         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
9389         __builtin_ia32_vpermil2ps256.
9390         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9391         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9392         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
9393         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9394         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9395         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
9396         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
9397         CODE_FOR_xop_vpermil2v8sf3.
9398         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
9399         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
9400         * config/i386/xopintrin.h (_mm_permute2_pd): New.
9401         (_mm256_permute2_pd): New.
9402         (_mm_permute2_ps): New.
9403         (_mm256_permute2_ps): New.
9404
9405 2010-02-15  Nick Clifton  <nickc@redhat.com>
9406
9407         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
9408         boolean parameters.  Use emit_jump_insn when emitting a pop
9409         instruction containing a return insn.
9410         (push): Use 'true' rather than '1' as second parameter to F.
9411         (h8300_expand_prologue): Likewise.
9412         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
9413         (h8300_expand_epilogue): Likewise.
9414
9415 2010-02-15  Richard Guenther  <rguenther@suse.de>
9416
9417         PR middle-end/43068
9418         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
9419         if that is zero.
9420
9421 2010-02-15  Nick Clifton  <nickc@redhat.com>
9422
9423         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
9424         delta.
9425
9426 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
9427
9428         * intl.c (fake_ngettext): New function.
9429         * intl.h (fake_ngettext): Declare.
9430         (ngettext): Define macro.
9431         * collect2.c (notice_translated): New function.
9432         (main): Use notice_translated and ngettext.
9433         * collect2.h (notice_translated): Declare.
9434
9435 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
9436
9437         * reorg.c (delete_computation): Comment fixes.
9438         * caller-save.c (setup_save_areas): Idem.
9439         * sel-sched-dump.c (dump_lv_set): Idem.
9440         * rtl.def: Idem.
9441
9442 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9443
9444         * config/s390/s390.c (s390_sched_init): New function.
9445         (TARGET_SCHED_INIT): Target hook defined.
9446
9447 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
9448             Jack Howarth  <howarth@bromo.med.uc.edu>
9449             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
9450
9451         PR target/42982
9452         Partial revert of unintended change in fix for PR41605.
9453         * config/darwin.h: Fix typo.
9454         * config/darwin9.h: Same.
9455
9456 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
9457
9458         * c-pch.c (pch_init): Clear v.
9459
9460 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9461
9462         PR middle-end/42930
9463         * graphite-scop-detection.c (graphite_can_represent_scev): Call
9464         graphite_can_represent_init for MULT_EXPR.
9465
9466 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9467
9468         PR middle-end/42914
9469         PR middle-end/42530
9470         * graphite-sese-to-poly.c (remove_phi): New.
9471         (translate_scalar_reduction_to_array): Call remove_phi.
9472
9473 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9474
9475         PR middle-end/42771
9476         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
9477         * graphite-clast-to-gimple.h (gloog): Update declaration.
9478         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
9479         * graphite-poly.h (struct poly_bb): Add missing comments.
9480         (struct scop): Add poly_scop_p field.
9481         (POLY_SCOP_P): New.
9482         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
9483         * graphite.c (graphite_transform_loops): Build the polyhedral
9484         representation for each scop before code generation.
9485         * sese.c (rename_variables_in_operand): Removed.
9486         (rename_variables_in_expr): Return the renamed expression.
9487         (rename_sese_parameters): New.
9488         * sese.h (rename_sese_parameters): Declared.
9489
9490 2010-02-11  Richard Guenther  <rguenther@suse.de>
9491
9492         PR tree-optimization/42998
9493         * tree-ssa-pre.c (create_expression_by_pieces): Treat
9494         POINTER_PLUS_EXPR properly.
9495
9496 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9497             Changpeng Fang  <changpeng.fang@amd.com>
9498
9499         PR middle-end/40886
9500         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
9501         the cost of an IV candidate when the IV is used in a test against zero.
9502
9503         * gcc.dg/tree-ssa/ivopts-3.c: New.
9504
9505 2010-02-11  Richard Guenther  <rguenther@suse.de>
9506
9507         PR lto/41664
9508         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
9509         pointer-vs-decl case by swapping refs.  Handle some cases
9510         of pointer-vs-decl disambiguations more conservatively.
9511         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
9512         to false after expanding.
9513
9514 2010-02-11  Richard Guenther  <rguenther@suse.de>
9515
9516         PR driver/43021
9517         * gcc.c (process_command): Handle LTO file@offset case more
9518         appropriately.
9519
9520 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
9521
9522         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
9523         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
9524         of DEBUG_INSNs.
9525         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
9526
9527         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
9528         if MEM's mode size isn't DWARF2_ADDR_SIZE.
9529         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
9530         Optimize eq/ne comparisons when both arguments are known to be
9531         zero-extended.
9532         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
9533         Don't mask operands unnecessarily if they are known to be already
9534         zero-extended.
9535
9536 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
9537
9538         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
9539         instead of loop.
9540
9541 2010-02-10  Richard Guenther  <rguenther@suse.de>
9542
9543         PR tree-optimization/43017
9544         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
9545         for wrapping signed arithmetic.
9546
9547 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
9548
9549         PR debug/43010
9550         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
9551         if no debug info should be emitted for it.
9552
9553 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
9554
9555         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
9556         note when flag_exceptions is set.
9557
9558 2010-02-10  Duncan Sands  <baldrick@free.fr>
9559
9560         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
9561
9562 2010-02-10  Richard Guenther  <rguenther@suse.de>
9563
9564         PR c/43007
9565         * tree.c (get_unwidened): Handle constants.
9566         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
9567
9568 2010-02-10  Martin Jambor  <mjambor@suse.cz>
9569
9570         PR lto/42985
9571         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
9572         check for variable argument counts independently.
9573
9574 2010-02-10  Christian Bruel  <christian.bruel@st.com>
9575
9576         PR target/42841
9577         * config/sh/sh.c (find_barrier): Increase length for non delayed
9578         conditional branches.
9579
9580 2010-02-10  Christian Bruel  <christian.bruel@st.com>
9581
9582         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
9583
9584 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
9585
9586         * builtins.c (set_builtin_user_assembler_name): Also handle
9587         ffs if int is smaller than word.
9588
9589 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
9590
9591         PR middle-end/42973
9592         * ira-conflicts.c (get_dup): Remove.
9593         (process_reg_shuffles): Add new parameter.  Use it as an
9594         additional guard for copy generation.
9595         (add_insn_allocno_copies): Rewrite.
9596
9597 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
9598
9599         * common.opt (fsched2-use-traces): Preserved for backward
9600         compatibility.
9601         * doc/invoke.texi: Remove the documentation about option
9602         -fsched2-use-traces.
9603         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
9604         flag_sched2_use_traces.
9605         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
9606         the backward compatibility flag section.
9607
9608 2010-02-09  Richard Guenther  <rguenther@suse.de>
9609
9610         PR tree-optimization/43008
9611         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
9612         make HEAP variables initialized from global memory if they
9613         are not known builtin functions.
9614         (find_func_aliases): Adjust.
9615
9616 2010-02-09  Richard Guenther  <rguenther@suse.de>
9617
9618         PR tree-optimization/43000
9619         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
9620         arithmetic manually.
9621
9622 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
9623
9624         PR tree-optimization/42931
9625         * tree-loop-linear.c (try_interchange_loops): Don't call
9626         double_int_mul if estimated_loop_iterations failed.
9627
9628 2010-02-08  Martin Jambor  <mjambor@suse.cz>
9629
9630         PR middle-end/42898
9631         * tree-sra.c (build_accesses_from_assign): Do not mark in
9632         should_scalarize_away_bitmap if stmt has volatile ops.
9633         (sra_modify_assign): Do not process assigns piecemeal if if stmt
9634         has volatile ops.
9635
9636 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
9637
9638         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
9639
9640 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
9641
9642         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
9643         before the pattern.
9644
9645 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
9646
9647         PR middle-end/42946
9648         * df-core.c (df_finish_pass): Change type of saved_flags to int.
9649
9650 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
9651
9652         PR middle-end/42988
9653         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
9654         to unknown_dependence.
9655         (graphite_legal_transform_dr): Handle the unknown_dependence.
9656         (graphite_carried_dependence_level_k): Same.
9657
9658 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
9659
9660         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
9661
9662 2010-02-07  Richard Guenther  <rguenther@suse.de>
9663
9664         PR middle-end/42991
9665         * expr.c (get_inner_reference): Always initialize *pbitsize.
9666
9667 2010-02-07  Richard Guenther  <rguenther@suse.de>
9668
9669         PR middle-end/42956
9670         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
9671         new ARRAY_REFs on variable size element or minimal index arrays.
9672         Complete.
9673         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
9674         gimple_fold_indirect_ref.
9675
9676 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
9677
9678         PR target/42957
9679         * arm.c (arm_override_options): Just return if the user has specified
9680         an invalid fpu name.
9681
9682 2010-02-03  Jason Merrill  <jason@redhat.com>
9683
9684         PR c++/42870
9685         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
9686         i386_pe_maybe_record_exported_symbol.
9687
9688 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
9689
9690         PR target/42924
9691         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
9692         (pa_delegitimize_address): New function.
9693
9694 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
9695
9696         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
9697         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
9698
9699 2010-02-05  Richard Guenther  <rguenther@suse.de>
9700
9701         PR lto/42762
9702         * lto-streamer-in.c (get_resolution): Deal with references
9703         to undefined functions.
9704
9705 2010-02-05  Richard Guenther  <rguenther@suse.de>
9706
9707         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
9708         (fold_const_aggregate_ref): Likewise.
9709         (ccp_fold_stmt): Substitute loads.
9710         (maybe_fold_reference): Verify types before substituting.
9711         Unshare properly.
9712         (fold_gimple_assign): Unshare properly.
9713         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
9714
9715 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
9716
9717         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
9718         for rs6000_gen_cell_microcode.
9719
9720 2010-02-04  Richard Guenther  <rguenther@suse.de>
9721
9722         PR rtl-optimization/42952
9723         * dse.c (const_or_frame_p): Remove MEM handling.
9724
9725 2010-02-04  Nick Clifton  <nickc@redhat.com>
9726
9727         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
9728         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
9729         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
9730         (mn10300_asm_output_mi_thunk): New function.
9731         (mn10300_can_output_mu_thunk): New function.
9732         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
9733         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
9734         (FUNCTION_ARG): Delete incorrect comment.
9735
9736 2010-02-03  Jason Merrill  <jason@redhat.com>
9737
9738         PR c++/40138
9739         * fold-const.c (operand_equal_p): Handle erroneous types.
9740
9741 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
9742
9743         * config/h8300/h8300.md (can_delay): Fix attibute condition.
9744
9745 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
9746
9747         PR rtl-optimization/42941
9748         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
9749         of xmalloc.
9750
9751 2010-02-03  Jason Merrill  <jason@redhat.com>
9752
9753         PR c++/35652
9754         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
9755
9756 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
9757
9758         PR debug/42896
9759         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
9760         (cselib_reset_table): Renamed from...
9761         (cselib_reset_table_with_next_value): ... this.
9762         (cselib_get_next_uid): Renamed from...
9763         (cselib_get_next_unknown_value): ... this.
9764         * cselib.c (next_uid): Renamed from...
9765         (next_unknown_value): ... this.
9766         (cselib_clear_table): Adjust.
9767         (cselib_reset_table): Adjust.  Renamed from...
9768         (cselib_reset_table_with_next_value): ... this.
9769         (cselib_get_next_uid): Adjust.  Renamed from...
9770         (cselib_get_next_unknown_value): ... this.
9771         (get_value_hash): Use hash.
9772         (cselib_hash_rtx): Likewise.
9773         (new_cselib_val): Adjust.  Set and dump uid.
9774         (cselib_lookup_mem): Pass next_uid as hash.
9775         (cselib_subst_to_values): Likewise.
9776         (cselib_log_lookup): Dump uid.
9777         (cselib_lookup): Pass next_uid as hash.  Adjust.
9778         (cselib_process_insn): Adjust.
9779         (cselib_init): Initialize next_uid.
9780         (cselib_finish): Adjust.
9781         (dump_cselib_table): Likewise.
9782         * dse.c (canon_address): Dump value uid.
9783         * print-rtl.c (print_rtx): Print value uid.
9784         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
9785         (dvuid): New type.
9786         (dv_uid): New function, sort of renamed from...
9787         (dv_htab_hash): ... this, reimplemented in terms of it and...
9788         (dv_uid2hash): ... this.  New.
9789         (variable_htab_eq): Drop excess assertions.
9790         (tie_break_pointers): Removed.
9791         (canon_value_cmp): Compare uids.
9792         (variable_post_merge_New_vals): Print uids.
9793         (vt_add_function_parameters): Adjust.
9794         (vt_initialize): Reset table.  Adjust.
9795
9796 2010-02-03  Richard Guenther  <rguenther@suse.de>
9797
9798         PR tree-optimization/42944
9799         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
9800         (call_may_clobber_ref_p_1): Likewise.  Properly handle
9801         malloc and calloc clobbering errno.
9802
9803 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
9804
9805         * doc/invoke.texi: Fix name of sched1 dump.
9806
9807         * opts.c (decode_options): Set flag_tree_switch_conversion
9808         only conditionally on optimize >= 2.
9809
9810         * gcse.c: Assorted comment fixes in pass description.
9811
9812 2010-02-03  Anthony Green  <green@moxielogic.com>
9813
9814         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
9815         nop padding in order to maintain alignment of storage location of
9816         target function address.
9817         (moxie_trampoline_init): Store target function address at newly
9818         aligned location.
9819         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
9820         to 32.
9821         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
9822
9823 2010-02-03  Richard Guenther  <rguenther@suse.de>
9824
9825         PR middle-end/42927
9826         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
9827
9828 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9829
9830         * config.gcc: Reenable check for obsolete targets.
9831         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
9832         mips-sgi-irix6.[0-4]*.
9833
9834 2010-02-02  Nick Clifton  <nickc@redhat.com>
9835
9836         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
9837         constant size of 4 as being the same as 0.
9838         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
9839         can take values in the range 0..4.
9840
9841 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
9842
9843         PR java/41991
9844         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
9845         as _darwin10_Unwind_FindEnclosingFunction().
9846         * libgcc-libsystem.ver: New.
9847
9848 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
9849
9850         PR target/41399
9851         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
9852         implicitly set registers.
9853
9854 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
9855
9856         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
9857         (arm_override_options): Allow automatic selection of the thread
9858         pointer register if thumb2.
9859         (legitimize_pic_address): Improve code sequences for Thumb2.
9860         (arm_call_tls_get_addr): Likewise.
9861         (legitimize_tls_address): Likewise.
9862         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
9863         (pic_load_addr_32bit): ... this.  New named pattern.
9864         * thumb2.md (pic_load_addr_thumb2): Delete.
9865         (pic_load_dot_plus_four): Delete.
9866         (tls_load_dot_plus_four): New named pattern.
9867
9868 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9869
9870         PR libgomp/29986
9871         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
9872         Document fix for TLS bug.
9873
9874 2010-01-31  Richard Guenther  <rguenther@suse.de>
9875
9876         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
9877         conservatively correct.
9878
9879 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9880
9881         PR target/42850
9882         Revert:
9883         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9884
9885         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
9886
9887 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9888
9889         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
9890
9891 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
9892
9893         * config.gcc: Adjust order of makefile fragments for mingw targets.
9894
9895 2010-01-31  Richard Guenther  <rguenther@suse.de>
9896
9897         PR middle-end/42898
9898         * gimplify.c (gimplify_init_constructor): For volatile LHS
9899         initialize a temporary.
9900
9901 2010-01-31  Matthias Klose  <doko@ubuntu.com>
9902
9903         * configure.ac: Fix __stack_chk_fail check for cross builds configured
9904         --with-headers
9905         * configure: Regenerate.
9906
9907 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
9908
9909         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
9910         the same alias set and their sizes different constantness.
9911         (aliasing_component_refs_p): Revert 2009-10-24 change.
9912
9913 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9914
9915         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
9916         unused.
9917
9918 2010-01-29  Richard Guenther  <rguenther@suse.de>
9919
9920         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
9921         Assert we successfully updated the call.
9922
9923 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
9924
9925         PR rtl-optimization/42889
9926         * df.h (df_set_bb_dirty_nonlr): New prototype.
9927         * df-core.c (df_set_bb_dirty_nonlr): New function.
9928         * df-scan.c (df_insn_rescan): Call it instead of
9929         df_set_bb_dirty for DEBUG_INSNs.
9930
9931 2010-01-29  Richard Guenther  <rguenther@suse.de>
9932
9933         PR middle-end/37448
9934         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
9935         quadratic behavior in most cases.
9936
9937 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
9938
9939         PR target/42891
9940         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
9941         in the call to gen_x86_movsicc_0_m1.
9942
9943 2010-01-28  Richard Guenther  <rguenther@suse.de>
9944
9945         PR tree-optimization/42871
9946         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
9947
9948 2010-01-28  Richard Guenther  <rguenther@suse.de>
9949
9950         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
9951         into call arguments.
9952
9953 2010-01-28  Richard Guenther  <rguenther@suse.de>
9954
9955         PR middle-end/42883
9956         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
9957         the forwarder if the destination is an EH landing pad.
9958
9959 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
9960
9961         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
9962         block list passed to gimple_duplicate_sese_tail.
9963         (parallelize_loops): Avoid parallelization when the function
9964         has_nonlocal_label.
9965         Avoid parallelization when the preheader is IRREDUCIBLE.
9966         Try to optimize when estimated_loop_iterations_int is unresolved.
9967         Add the loop's location to the dump file.
9968         * tree-cfg.c (add_phi_args_after_redirect): Remove.
9969         (gimple_duplicate_sese_tail): Remove the check for the latch.
9970         Redirect nexits to the exit block.
9971         Remove handling of the incoming edges to the latch.
9972         Redirect the backedge from the copied latch to the exit bb.
9973
9974 2010-01-28  Michael Matz  <matz@suse.de>
9975
9976         PR target/42881
9977         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
9978         Wrap force_reg into a sequence, emit it before user.
9979
9980 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
9981
9982         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
9983         (arm_rev): New.
9984         (arm_legacy_rev): Likewise.
9985         (thumb_legacy_rev): Likewise.
9986
9987 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
9988
9989         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
9990         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
9991         on MEM's address failed, try avoid_constant_pool_reference and
9992         recurse if it returned something different.
9993         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
9994         address, try avoid_constant_pool_reference and recurse if it
9995         returned something different.
9996         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
9997         address and avoid_constant_pool_reference returned something
9998         different, don't set have_address.
9999
10000 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
10001
10002         PR debug/42861
10003         * var-tracking.c (val_store): Add modified argument, obey it.
10004         Adjust callers.
10005         (count_uses): Move down logging of main.
10006         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
10007         don't need resolution.
10008         (emit_notes_in_bb): Likewise.
10009
10010 2010-01-27  Richard Guenther  <rguenther@suse.de>
10011
10012         PR middle-end/42878
10013         * tree-inline.c (remap_decl): Delay remapping of SSA name
10014         default definitions until we need them.
10015
10016 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
10017
10018         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
10019         (rs6000_delegitimize_address): New function.
10020
10021         * config/s390/s390.c (s390_delegitimize_address): Call
10022         delegitimize_mem_from_attrs.
10023
10024         PR middle-end/42874
10025         * tree-inline.c (cannot_copy_type_1): Removed.
10026         (copy_forbidden): Don't forbid copying of functions containing
10027         records/unions with variable length fields.
10028
10029 2010-01-27  Christian Bruel  <christian.bruel@st.com>
10030
10031         Revert:
10032         PR target/42841
10033         * config/sh/sh.c (find_barrier): Increase length for non delayed
10034         conditional branches.
10035
10036 2010-01-27  Matthias Klose  <doko@ubuntu.com>
10037
10038         * configure.ac (gnu-unique-object): Fix ldd version check.
10039         * configure: Regenerate.
10040
10041 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10042
10043         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
10044         HAVE_GNU_AS value.
10045         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
10046         Test for HAVE_GNU_AS value.
10047
10048 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10049
10050         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
10051         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
10052         INT64_TYPE): Define.
10053         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
10054         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10055         INT_LEAST64_TYPE): Define.
10056         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
10057         UINT_LEAST64_TYPE): Define.
10058         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
10059         INT_FAST64_TYPE): Define.
10060         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10061         UINT_FAST64_TYPE): Define.
10062         (INTMAX_TYPE, UINTMAX_TYPE): Define.
10063         (INTPTR_TYPE, UINTPTR_TYPE): Define.
10064         (SIG_ATOMIC_TYPE): Define.
10065
10066 2010-01-26  Richard Guenther  <rguenther@suse.de>
10067
10068         * df-scan.c (df_scan_set_bb_info): Remove assert.
10069         (df_insn_rescan_debug_internal): Merge asserts.
10070         (df_install_ref): Likewise.
10071         (df_mark_reg): Use bitmap_set_range.
10072         (df_hard_reg_used_p): Remove assert.
10073         (df_hard_reg_used_count): Likewise.
10074
10075 2010-01-26  Richard Guenther  <rguenther@suse.de>
10076
10077         PR rtl-optimization/42685
10078         * web.c (web_main): Ignore DEBUG_INSNs.
10079
10080 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
10081
10082         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
10083
10084         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
10085         Fix types of fndecl and arglist parameters.
10086
10087 2010-01-26  Richard Guenther  <rguenther@suse.de>
10088
10089         PR middle-end/42806
10090         * tree-eh.c (unsplit_eh): Skip debug insns.
10091
10092 2010-01-26  Richard Guenther  <rguenther@suse.de>
10093
10094         PR tree-optimization/42250
10095         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
10096
10097 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
10098
10099         PR fortran/42866
10100         * omp-low.c (expand_omp_sections): Only use single_pred if
10101         l2_bb is single_pred_p.
10102
10103 2010-01-25  Christian Bruel  <christian.bruel@st.com>
10104
10105         PR target/42841
10106         * config/sh/sh.c (find_barrier): Increase length for non delayed
10107         conditional branches.
10108         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
10109
10110 2010-01-24  David S. Miller  <davem@davemloft.net>
10111
10112         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
10113         define if not using GAS.
10114         * config/sparc/sparc.c (sparc_elf_asm_named_section):
10115         Likewise.  Delete SECTION_MERGE code, which is only applicable
10116         when using GAS.
10117
10118 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
10119
10120         PR c++/42748
10121         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
10122         mangling of va_list in system headers.
10123
10124 2010-01-23  Toon Moene  <toon@moene.org>
10125
10126         * tree-predcom.c (combine_chains): Return NULL, not false.
10127
10128 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
10129
10130         * tree-loop-distribution.c (distribute_loop): Fix declaration and
10131         initialization of variable res to agree with return type.
10132
10133 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
10134
10135         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
10136         * tree-sra.c: Add include of expr.h.
10137
10138 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
10139
10140         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
10141         insert the debug stmt on the single non-EH edge from the stmt.
10142
10143 2010-01-22  Richard Henderson  <rth@redhat.com>
10144
10145         PR tree-opt/42833
10146         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
10147         the RHS until after generate_subtree_copies has insertted its
10148         code before the current statement.
10149
10150 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
10151
10152         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
10153
10154         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
10155
10156 2010-01-21  Martin Jambor  <mjambor@suse.cz>
10157
10158         PR tree-optimization/42585
10159         * tree-sra.c (struct access): New field grp_total_scalarization.
10160         (dump_access): Dump the new field.
10161         (should_scalarize_away_bitmap): New variable.
10162         (cannot_scalarize_away_bitmap): Likewise.
10163         (sra_initialize): Allocate new bitmaps.
10164         (sra_deinitialize): Free new bitmaps.
10165         (create_access_1): New function.
10166         (create_access): Parts moved to create_access_1.
10167         (type_consists_of_records_p): New function.
10168         (completely_scalarize_record): Likewise.
10169         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
10170         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
10171         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
10172         access.
10173         (analyze_all_variable_accesses): Completely scalarize small eligible
10174         records.
10175
10176 2010-01-21  Martin Jambor  <mjambor@suse.cz>
10177
10178         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
10179
10180 2010-01-21  Andrew Haley  <aph@redhat.com>
10181
10182         * gcc.c (process_command): Move lang_specific_driver before
10183         setting cc_libexec_prefix.
10184
10185 2010-01-21  Richard Guenther  <rguenther@suse.de>
10186
10187         PR middle-end/19988
10188         * fold-const.c (negate_expr_p): Pretend only negative
10189         real constants are easily negatable.
10190
10191 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
10192             Jason Merrill  <jason@redhat.com>
10193
10194         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
10195         (TYPE_TRANSPARENT_AGGR): this, for union and record.
10196         * calls.c (initialize argument_information): Handle it.
10197         * c-common.c (handle_transparent_union_attribute): Use new name.
10198         * c-decl.c (finish_struct): Ditto.
10199         * c-typeck.c (type_lists_compatible_p): Ditto.
10200         (convert_for_assignment): Use new name and also handle record.
10201         * function.c (aggregate_value_p): Handle it.
10202         (pass_by_reference): Ditto.
10203         (assign_parm_data_types): Ditto.
10204         * print-tree.c (print_node): Ditto.
10205         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
10206         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
10207         * tree.c (first_field): New fn.
10208
10209 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
10210
10211         PR target/42818
10212         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
10213         even when linking statically, for now.
10214
10215 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
10216
10217         PR debug/42715
10218         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
10219         without a cselib val.
10220         (count_uses): Accept MO_VAL_SET with no val on stores.
10221         (add_stores): Likewise.
10222
10223 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10224
10225         * var-tracking.c (check_value_val): Add a compile time assertion.
10226         (dv_is_decl_p): Simplify.
10227         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
10228         gcc_assert if ENABLE_CHECKING.
10229
10230 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
10231
10232         PR debug/42782
10233         * var-tracking.c: Include tree-flow.h.
10234         (mem_dies_at_call): New.
10235         (dataflow_set_preserve_mem_locs): Use it.
10236         (dataflow_set_remove_mem_locs): Likewise.
10237         (dump_var): Renamed from dump_variable.  Adjust all callers.
10238         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
10239         * Makefile.in (var-tracking.o): Adjust deps.
10240
10241 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
10242
10243         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
10244
10245 2010-01-20  Richard Guenther  <rguenther@suse.de>
10246
10247         PR tree-optimization/42717
10248         * tree-ssa-dce.c (get_live_post_dom): Remove.
10249         (forward_edge_to_pdom): Take an arbitrary edge to copy
10250         degenerate PHI args from.
10251         (remove_dead_stmt): Use the first post-dominator even if it
10252         does not contain live statements as redirection destination.
10253
10254 2010-01-20  Richard Guenther  <rguenther@suse.de>
10255
10256         * tree-inline.c (estimate_num_insns): Handle EH builtins.
10257
10258 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10259
10260         * sel-sched.c (create_speculation_check): Remove set but not used
10261         variable twin.
10262         (try_transformation_cache): Remove set but not used variable ds.
10263         (calculate_privileged_insns): Remove set but not used variables
10264         cur_insn and min_spec_insn.
10265         (find_best_expr): Remove set but not used variable avail_n.
10266         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
10267         variable e.
10268         * cgraphunit.c (assemble_thunk): Remove set but not used variable
10269         false_label.
10270         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
10271         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
10272         new_scop_exit_edge.
10273
10274 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
10275
10276         PR bootstrap/42786
10277         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
10278         cpu types.  Add support for *-sse3 cpu types.
10279         (x86_64-*-*): Ditto.
10280
10281 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10282
10283         PR middle-end/42803
10284         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
10285         argument, call initializer_constant_valid_p_1 instead of
10286         initializer_constant_valid_p, pass CACHE to it, return NULL
10287         immediately if first call returns NULL.
10288         (initializer_constant_valid_p_1): New function.
10289         (initializer_constant_valid_p): Use it.
10290
10291 2010-01-20  Thomas Quinot  <quinot@adacore.com>
10292
10293         * tree.def (PLACEHOLDER_EXPR): Fix comment.
10294
10295 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10296
10297         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
10298         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
10299         (loc_list_from_tree): Don't handle unsigned division.  Handle
10300         signed modulo using DW_OP_{over,over,div,mul,minus}.
10301         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
10302         modulo instead of signed.
10303
10304 2010-01-20  DJ Delorie  <dj@redhat.com>
10305
10306         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
10307         (Fpa): Pass it
10308         (h8300_emit_stack_adjustment): Propogate it.
10309         (push): Pass it.
10310         (h8300_expand_prologue): Likewise.
10311         (h8300_expand_epilogue): Likewise.
10312
10313 2010-01-19  Michael Matz  <matz@suse.de>
10314
10315         PR tree-optimization/41783
10316         * tree-data-ref.c (toplevel): Include flags.h.
10317         (dump_data_dependence_relation):  Also dump the inputs if the
10318         result will be unknown.
10319         (split_constant_offset_1): Look through some conversions.
10320         * tree-predcom.c (determine_roots_comp): Restart a new chain if
10321         the offset from last element is too large.
10322         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
10323         (reassociate_to_the_same_stmt): Handle vector registers.
10324         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
10325         (e.g. conversions).
10326         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
10327         wide_prolog_niters argument, emit widening instructions.
10328         (vect_do_peeling_for_alignment): Adjust caller, use widened
10329         variant of the iteration cound.
10330         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
10331
10332 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10333
10334         PR target/38697
10335         * config/arm/neon-testgen.m (emit_automatics): New parameter
10336         features. Adjust for Fixed_return_reg feature.
10337         (test_intrinsic): Call emit_automatics with new feature.
10338         * config/arm/neon.ml: Update copyright years.
10339         (features): New Fixed_return_reg feature.
10340         (ops): Update feature for Vget_low.
10341
10342 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
10343
10344         PR tree-optimization/42719
10345         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
10346         stmt uses.
10347
10348         PR debug/42728
10349         * fwprop.c (all_uses_available_at): Return false if def_set dest
10350         is a REG that is used in def_insn.
10351
10352 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
10353
10354         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
10355
10356         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
10357         Add argument names.
10358
10359         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
10360
10361         * target.h (struct gcc_target) <secondary_reload>: Change type
10362         of last argument to secondary_reload_info *.
10363
10364 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
10365
10366         PR target/42774
10367         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
10368         memory references with unaligned offsets.  Remove CQImode handling.
10369         (unaligned_memory_operand): Return 1 for memory references with
10370         unaligned offsets.  Remove CQImode handling.
10371
10372 2010-01-18  Richard Guenther  <rguenther@suse.de>
10373
10374         PR middle-end/39954
10375         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
10376         builtin calls.
10377
10378 2010-01-18  Richard Guenther  <rguenther@suse.de>
10379
10380         PR tree-optimization/42781
10381         * tree-ssa-structalias.c (find_what_var_points_to): Skip
10382         restrict processing only if the original variable was artificial.
10383
10384 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
10385
10386         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
10387         find number of popped argument bytes.
10388
10389         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
10390         Fix the text that describes the return value for invalid insns.
10391
10392         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
10393
10394         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
10395         Clarify what 'cost of the -dependence' is.  Fix quoting.
10396
10397         * toplev.c (default_get_pch_validity): Rename argument to "sz".
10398         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
10399
10400 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
10401
10402         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
10403         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
10404
10405 2010-01-17  Richard Guenther  <rguenther@suse.de>
10406
10407         PR middle-end/42248
10408         * function.c (split_complex_args): Take a VEC to modify.
10409         (assign_parms_augmented_arg_list): Build a VEC instead of
10410         a chain of PARM_DECLs.
10411         (assign_parms_unsplit_complex): Take a VEC of arguments.
10412         Do not fixup unmodified parms.
10413         (assign_parms): Deal with the VEC.
10414         (gimplify_parameters): Likewise.
10415
10416 2010-01-17  Richard Guenther  <rguenther@suse.de>
10417
10418         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
10419         node existence check.
10420         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
10421         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
10422         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
10423         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
10424         (gimple_execute_on_growing_pred): Likewise.
10425
10426 2010-01-17  Richard Guenther  <rguenther@suse.de>
10427
10428         PR tree-optimization/42773
10429         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
10430         (compute_antic_aux): Likewise.
10431         (compute_partial_antic_aux): Likewise.
10432
10433 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
10434
10435         PR debug/42767
10436         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
10437         and US_TRUNCATE.
10438
10439 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
10440
10441         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
10442         appearance.
10443
10444         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
10445         Fix markup for strict argument.
10446
10447         (TARGET_SCHED_REORDER2): Fix argument types.
10448
10449         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
10450         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
10451
10452         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
10453         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
10454
10455         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
10456         Add argument name.
10457
10458         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
10459         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
10460         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
10461         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
10462         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
10463
10464         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
10465
10466         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
10467
10468         (TARGET_ASM_RELOC_RW_MASK): Add return type.
10469         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
10470
10471         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
10472
10473         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
10474         Use prototype.
10475
10476         (TARGET_ASM_NAMED_SECTION): Fix argument list.
10477
10478         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
10479         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
10480
10481         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
10482
10483         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
10484
10485         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
10486         referring to it.  Fix language.
10487
10488         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
10489
10490         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
10491
10492         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
10493
10494         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
10495
10496         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
10497         '@var{stream}.  Remove stray 'and'.
10498
10499         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
10500
10501         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
10502
10503         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
10504
10505         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
10506         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
10507
10508         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
10509         Fix description of return value.
10510         Rename argument "sz" to "len."
10511
10512         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
10513         Clarify meaning of 'true' return value.
10514
10515         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
10516
10517         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
10518         rep_mode versus mode_rep.
10519
10520         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
10521
10522         (TARGET_BUILTIN_DECL): Fix name.
10523
10524         (TARGET_COMMUTATIVE_P): Fix type of first argument.
10525
10526         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
10527
10528         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
10529
10530         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
10531
10532         (TARGET_RELAXED_ORDERING): Use @deftypevr.
10533
10534         (TARGET_GET_DRAP_RTX): Note that this is a hook.
10535         Clarify language.
10536
10537         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
10538         Rename argument tm_fn to md_fn.
10539
10540         (TARGET_OPTION_PRINT): Fix argument list.
10541
10542 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
10543
10544         PR target/42664
10545         * config/i386/i386.c (ix86_fixup_binary_operands):
10546         Revert FMA4 fixup of operands.
10547
10548 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10549
10550         PR gcc/42525
10551         * Makefile.in (write_entries_to_file, install-plugin):
10552         Use \012 instead of \n with tr.
10553
10554 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
10555
10556         * configure.ac (HAVE_AS_REF): New C macro.
10557         * configure: Regenerate.
10558         * config.in: Likewise.
10559         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
10560         if HAVE_AS_REF.
10561         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
10562         if HAVE_AS_REF.
10563
10564 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
10565
10566         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
10567
10568         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
10569
10570         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
10571
10572         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
10573
10574         (TARGET_IN_SMALL_DATA_P): Fix argument type.
10575
10576         (TARGET_BINDS_LOCAL_P): Fix argument type.
10577
10578         (TARGET_ASM_FILE_END): Use prototype.
10579
10580         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
10581
10582         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
10583
10584         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
10585
10586         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
10587
10588         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
10589         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
10590
10591         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
10592         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
10593
10594         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
10595         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
10596         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
10597         (TARGET_ADDR_SPACE_CONVERT): Likewise.
10598
10599         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
10600
10601         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
10602
10603         (TARGET_INIT_BUILTINS): Use prototype.
10604
10605         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
10606         Put 'const char *' in braces.  Fix parameter types.
10607         (TARGET_INVALID_CONVERSION): Fix parameter types.
10608         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
10609         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
10610
10611         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
10612         Fix argument type.
10613
10614         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
10615
10616         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
10617
10618 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
10619
10620         * doc/tm.texi (TARGET_HELP): Fix return type.
10621
10622         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
10623         in braces.  Fix argument types.
10624
10625         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
10626
10627         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
10628
10629         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
10630
10631         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
10632         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
10633
10634         (TARGET_MANGLE_TYPE): Fix argument types.
10635
10636         (TARGET_IRA_COVER_CLASSES): Use prototype.
10637
10638         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
10639
10640         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
10641
10642         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
10643
10644         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
10645
10646         (TARGET_CALLEE_COPIES): Fix argument types.
10647
10648         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
10649
10650         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
10651
10652         (TARGET_FUNCTION_VALUE): Fix argument types.
10653
10654         (TARGET_RETURN_IN_MSB): Fix argument type.
10655
10656         (TARGET_RETURN_IN_MEMORY): Fix argument types.
10657
10658         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
10659
10660         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
10661
10662         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
10663         agree with return type.
10664
10665         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
10666
10667 2010-01-15  Jing Yu  <jingyu@google.com>
10668
10669         PR rtl-optimization/42691
10670         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
10671         a pseudo to a constant and are merged, and adjust comments.
10672
10673 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
10674
10675         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
10676
10677 2010-01-15  Richard Guenther  <rguenther@suse.de>
10678
10679         PR middle-end/42739
10680         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
10681         labels of computed or non-local gotos to the destination.
10682         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
10683         landing pad label is the first label.
10684
10685 2010-01-15  Richard Guenther  <rguenther@suse.de>
10686
10687         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
10688
10689 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
10690
10691         PR target/42747
10692         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
10693         to allow generation of the xssqrtdp instruction on power7.
10694         (sqrtdf2_fpr): Ditto.
10695
10696 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10697
10698         PR middle-end/42674
10699         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
10700         functions with noreturn attribute.
10701
10702         PR c++/42608
10703         * varasm.c (declare_weak): Add weak attribute to decl if it
10704         doesn't have one already.
10705         (assemble_external): Only add decls to weak_decls if they also
10706         have weak attribute.
10707
10708 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
10709
10710         * var-tracking.c (var_reg_delete): Don't delete the association
10711         between REGs and values or one-part variables if the register
10712         isn't clobbered.
10713
10714 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10715
10716         PR debug/42657
10717         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
10718         because its first operand is a non-localized variable.
10719
10720 2010-01-14  Martin Jambor  <mjambor@suse.cz>
10721
10722         PR tree-optimization/42706
10723         * tree-sra.c (encountered_recursive_call): New variable.
10724         (encountered_unchangable_recursive_call): Likewise.
10725         (sra_initialize): Initialize both new variables.
10726         (callsite_has_enough_arguments_p): New function.
10727         (scan_function): Call decl and flags check only for IPA-SRA, check
10728         whether there is a recursive call and whether it has enough arguments.
10729         (all_callers_have_enough_arguments_p): New function.
10730         (convert_callers): Look for recursive calls only when
10731         encountered_recursive_call is set.
10732         (ipa_early_sra): Bail out either if
10733         !all_callers_have_enough_arguments_p or
10734         encountered_unchangable_recursive_call.
10735
10736 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10737
10738         * sel-sched.c: Add 2010 to copyright years.
10739         * sel-sched-ir.c: Likewise.
10740         * sel-sched-ir.h: Likewise.
10741
10742 2010-01-14  Martin Jambor  <mjambor@suse.cz>
10743
10744         PR tree-optimization/42714
10745         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
10746         constructors specially.
10747
10748 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10749
10750         * config/i386/drivers-i386.c (detect_caches_intel):
10751         Add l2sizekb parameter and fill in.
10752         (host_detect_local_cpu): Add l2sizekb, fill in.
10753         Add Atom small cache heuristic.
10754
10755 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10756
10757         * config/i386/drivers-i386.c (detect_caches_cpuid4):
10758         Add level3 parameter and fill in.
10759         (detect_caches_intel): Handle level3 cache.
10760
10761 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10762
10763         * config/i386/drivers-i386.c (host_detect_local_cpu):
10764         Fix core duo detection.
10765
10766 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10767
10768         * config/i386/drivers-i386.c (host_detect_local_cpu):
10769         Fix Atom detection.
10770
10771 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10772
10773         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
10774         (rs6000_variable_issue_1): this.  Use...
10775         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
10776
10777 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10778
10779         * sel-sched-ir.c (sel_restore_other_notes): Rename to
10780         sel_restore_notes.  Update all callers.  Call reemit_notes
10781         for all insns.
10782
10783 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10784
10785         PR rtl-optimization/42246
10786         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
10787         loops.
10788
10789 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10790
10791         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
10792         all successors is the same as number of successors in current region.
10793
10794 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10795
10796         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
10797         to rename is not separable.  Otherwise check that its LHS is not NULL.
10798
10799 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10800
10801         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
10802
10803 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10804
10805         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
10806         available registers when failed to discover LHS register class.
10807         Fix indentation.  Update comment.
10808
10809 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10810             Alexander Monakov  <amonakov@ispras.ru>
10811
10812         PR rtl-optimization/42389
10813         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
10814         to can_issue_more.
10815         (advance_state_on_fence): Likewise.
10816         (sel_target_adjust_priority): Print debug output only when
10817         sched_verbose >= 4, not 2.
10818         (get_expr_cost): Do not issue all unique insns on the next cycle.
10819         (fill_insns): Initialize can_issue_more from the value saved
10820         with the fence.
10821         * sel-sched-ir.c (flist_add): New parameter issue_more.
10822         Init FENCE_ISSUE_MORE with it.
10823         (merge_fences): Likewise.
10824         (init_fences): Update call to flist_add.
10825         (add_to_fences, add_clean_fence_to_fences)
10826         (add_dirty_fence_to_fences): Likewise.
10827         (move_fence_to_fences): Update call to merge_fences.
10828         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
10829         sched groups.
10830         * sel-sched-ir.h (struct _fence): New field issue_more.
10831         (FENCE_ISSUE_MORE): New accessor macro.
10832
10833 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10834
10835         PR rtl-optimization/42388
10836         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
10837         that have no predecessors nor successors.  Do not call move_bb_info
10838         for empty blocks outside of current region.
10839
10840 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10841
10842         PR rtl-optimization/42294
10843         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
10844         * sel-sched.c (move_exprs_to_boundary): Transitively add all
10845         originators' originators.
10846
10847 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10848
10849         PR rtl-optimization/39453
10850         PR rtl-optimization/42246
10851         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
10852         for pipelining_p.
10853         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
10854
10855 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10856             Alexander Monakov  <amonakov@ispras.ru>
10857
10858         PR middle-end/42245
10859         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
10860         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
10861         argument.  Update all callers.
10862         (tidy_control_flow): ... and here.  Recompute topological order
10863         of basic blocks in region if necessary.
10864         (sel_redirect_edge_and_branch): Change return type.  Return true
10865         if topological order might have been invalidated.
10866         (purge_empty_blocks): Export and move from...
10867         * sel-sched.c (purge_empty_blocks): ... here.
10868         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
10869         (maybe_tidy_empty_bb): Delete prototype.
10870         (purge_empty_blocks): Declare.
10871
10872 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
10873
10874         PR rtl-optimization/42249
10875         * sel-sched.c (try_replace_dest_reg): When chosen register
10876         and original register is the same, do not bail out early, but
10877         still check all original insns for validity of replacing destination
10878         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
10879         in this case.
10880
10881 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10882
10883         PR c/42721
10884         Port from no-undefined-overflow branch:
10885         2009-03-09  Richard Guenther  <rguenther@suse.de>
10886
10887         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
10888
10889 2010-01-14  Richard Guenther  <rguenther@suse.de>
10890
10891         PR lto/42665
10892         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
10893
10894 2010-01-14  Ira Rosen  <irar@il.ibm.com>
10895
10896         PR tree-optimization/42709
10897         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
10898         as scalar type in creation of constant vector operand.
10899
10900 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10901
10902         PR testsuite/42414
10903         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
10904         (check-parallel-%): Match `testsuite' directory component only
10905         at the end.
10906
10907 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
10908
10909         PR translation/39521
10910         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
10911         strings with _().
10912
10913 2010-01-13  Richard Guenther  <rguenther@suse.de>
10914
10915         PR tree-optimization/42730
10916         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
10917         offset zero.
10918
10919 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
10920
10921         PR target/pr42542
10922         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
10923         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
10924         them signed.
10925
10926 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
10927
10928         * config/bfin/libgcc-bfin.ver: Regenerate based on current
10929         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
10930         ___umulsi3_highpart.
10931
10932         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
10933         rather than schedule_insns if the pass is enabled.
10934
10935 2010-01-13  Martin Jambor  <mjambor@suse.cz>
10936
10937         PR tree-optimization/42704
10938         * tree-sra.c (sra_modify_assign): Do not delete assignments to
10939         SSA_NAMEs.
10940
10941 2010-01-13  Martin Jambor  <mjambor@suse.cz>
10942
10943         PR tree-optimization/42703
10944         * tree-sra.c (analyze_access_subtree): Check that we can build a
10945         reference to the original data within the aggregate.
10946
10947 2010-01-13  Richard Guenther  <rguenther@suse.de>
10948
10949         PR tree-optimization/42705
10950         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
10951
10952 2010-01-13  Richard Guenther  <rguenther@suse.de>
10953
10954         PR middle-end/42716
10955         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
10956
10957 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
10958
10959         PR debug/41371
10960         * var-tracking.c (values_to_unmark): New variable.
10961         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
10962         values_to_unmark vector.  Moved body to...
10963         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
10964         instead queue it into values_to_unmark vector.
10965         (vt_find_locations): Free values_to_unmark vector.
10966
10967 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
10968
10969         * config/s390/s390.c (override_options): Set
10970         default of max-pending-list-length to 256
10971
10972 2010-01-13  Richard Guenther  <rguenther@suse.de>
10973
10974         PR lto/42678
10975         * tree-pass.h (PROP_gimple_lcx): New.
10976         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
10977         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
10978         before the final cleanup_eh.
10979         (dump_properties): Dump PROP_gimple_lcx.
10980         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
10981         (tree_lower_complex_O0): Remove.
10982         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
10983         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
10984         tree_lower_complex, schedule TODO_update_ssa.
10985         * lto-streamer-out.c (output_function): Stream the functions
10986         properties.
10987         * lto-streamer-in.c (input_function): Likewise.
10988         (lto_read_body): Do not override them here.
10989
10990 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
10991
10992         PR c/42708
10993         * c-typeck.c (build_c_cast): Fold value cast to union type before
10994         wrapping it in a CONSTRUCTOR.
10995
10996 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
10997
10998         PR rtl-optimization/42699
10999         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
11000         involved.
11001
11002 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11003
11004         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
11005         SUBTARGET_WARN_UNUSED_SPEC): Move ...
11006         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
11007         SUBTARGET_WARN_UNUSED_SPEC): ... here
11008         * config/mips/iris5.h (LIBGCC_SPEC): Define.
11009
11010 2010-01-12  Julian Brown  <julian@codesourcery.com>
11011
11012         * config/arm/neon-schedgen.ml (Utils): Don't try to
11013         open missing module.
11014         (find_with_result): New.
11015
11016 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
11017
11018         PR debug/42662
11019         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
11020         sharing when canonicalizing ({lt,ge}u (plus a b) b).
11021
11022         PR tree-optimization/42645
11023         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
11024         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
11025         decl_map, set processing_debug_stmt to -1 and return name without
11026         any remapping.
11027
11028 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
11029
11030         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
11031         binutils version, and reword target configuration description.
11032
11033 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
11034
11035         * config/avr/avr.h (LINKER_NAME): Remove.
11036
11037 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
11038
11039         PR target/42416
11040         * config/rs6000/rs6000.c (rs6000_override_options): On targets
11041         that support VSX, warn for -mno-altivec if vsx is not disabled,
11042         and disable vsx.
11043
11044 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
11045             Shujing Zhao  <pearly.zhao@oracle.com>
11046
11047         PR translation/42469
11048         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
11049         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
11050         character between option name and help text.
11051         * c.opt (imultilib): Likewise.
11052
11053 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
11054
11055         * lto-streamer-out.c (output_unreferenced_globals): Output static
11056         variables.
11057
11058 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
11059
11060         PR rtl-optimization/42621
11061         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
11062         optimizing for size.
11063         (duplicate_computed_gotos): Remove now-redundant check.
11064
11065 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
11066
11067         PR target/37454
11068         * configure.ac: Save and restore LDFLAGS and LIBS
11069         * configure: Regenerate.
11070
11071 2010-01-10  Richard Guenther  <rguenther@suse.de>
11072
11073         PR middle-end/42667
11074         * builtins.c (fold_builtin_strlen): Add type argument and
11075         convert the resulting length to it.
11076         (fold_builtin_1): Adjust.
11077
11078 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
11079
11080         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
11081         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
11082         1 insn.
11083         (num_insns_constant_wide): Adjust for that change.
11084
11085 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11086
11087         PR debug/42631
11088         * web.c (union_defs): Add used argument, to combine uses of
11089         uninitialized regs.
11090         (entry_register): Adjust type and tests of used argument.
11091         (web_main): Widen used for new use.  Pass it to union_defs.
11092         * df.h (union_defs): Adjust prototype.
11093
11094 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11095
11096         PR debug/42630
11097         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
11098         uses in new incoming argument.  Free body.
11099         (reset_debug_uses_in_loop): New.
11100         (analyze_insn_to_expand_var): Call the latter if the former found
11101         anything.  Fix whitespace.  Reject invalid dest overlaps before
11102         going through all insns in the loop.
11103
11104 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11105
11106         PR debug/42629
11107         * haifa-sched.c (dying_use_p): Debug insns don't count.
11108
11109 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11110
11111         PR middle-end/42363
11112         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
11113         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
11114         (verify_gimple_call): Reject LHS in noreturn calls.
11115
11116 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11117
11118         PR debug/42604
11119         PR debug/42395
11120         * tree-vect-loop-manip.c (adjust_info): New type.
11121         (adjust_vec): New pointer to vector.
11122         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
11123         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
11124         (slpeel_update_phis_for_duplicate_loop): Use them.
11125         (slpeel_update_phi_nodes_for_guard1): Likewise.
11126         (slpeel_update_phi_nodes_for_guard2): Likewise.
11127         (slpeel_tree_peel_loop_to_edge): Likewise.
11128         (vect_update_ivs_after_vectorizer): Likewise.
11129
11130 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11131
11132         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
11133         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
11134
11135 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11136
11137         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
11138         bogus uninitialized warning.
11139
11140 2010-01-09  Richard Guenther  <rguenther@suse.de>
11141
11142         PR middle-end/42512
11143         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
11144         the evolution is compatible with the initial condition.
11145
11146 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
11147
11148         * gcc.c (process_command): Update copyright notice dates.
11149         * gcov.c (print_version): Likewise.
11150         * gcov-dump.c (print_version): Likewise.
11151         * mips-tfile.c (main): Likewise.
11152         * mips-tdump.c (main): Likewise.
11153
11154 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
11155
11156         PR target/41885
11157         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
11158         (rotlhi3): Delete.
11159         (rotlhi3_8): Delete.
11160         (rotlsi3): Delete.
11161         (rotlsi3_8): Delete.
11162         (rotlsi3_16): Delete.
11163         (rotlsi3_24): Delete.
11164         (rotl<mode>3): New.
11165         (*rotw<mode>3): New.
11166         (*rotb<mode>3): New.
11167         * config/avr/avr.c (avr_rotate_bytes): New function.
11168         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
11169
11170 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
11171
11172         PR target/37454
11173         * configure.ac: Modify -rdynamic check.
11174         * configure: Regenerate.
11175
11176 2010-01-08  DJ Delorie  <dj@redhat.com>
11177
11178         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
11179         register popping order.
11180
11181 2010-01-08  Richard Guenther  <rguenther@suse.de>
11182
11183         PR lto/42528
11184         * c.opt (fsigned-char): Also let LTO handle this option.
11185         (funsigned-char): Likewise.
11186
11187 2010-01-07  Richard Guenther  <rguenther@suse.de>
11188
11189         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
11190         (gimple_op): Likewise.
11191         (gimple_op_ptr): Likewise.
11192         (gimple_assign_set_lhs): Remove gcc_assert.
11193         (gimple_assign_set_rhs1): Likewise.
11194         (gimple_assign_set_rhs2): Likewise.
11195         (gimple_call_set_lhs): Likewise.
11196         (gimple_call_set_fn): Likewise.
11197         (gimple_call_set_fndecl): Likewise.
11198         (gimple_call_fndecl): Likewise.
11199         (gimple_call_return_type): Likewise.
11200         (gimple_call_set_chain): Likewise.
11201         (gimple_call_num_args): Likewise.
11202         (gimple_call_set_arg): Likewise.
11203         (gimple_cond_set_code): Likewise.
11204         (gimple_cond_set_lhs): Likewise.
11205         (gimple_cond_set_rhs): Likewise.
11206         (gimple_cond_set_true_label): Likewise.
11207         (gimple_cond_set_false_label): Likewise.
11208         (gimple_label_set_label): Likewise.
11209         (gimple_goto_set_dest): Likewise.
11210         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
11211         (gimple_debug_bind_get_value): Likewise.
11212         (gimple_debug_bind_get_value_ptr): Likewise.
11213         (gimple_debug_bind_set_var): Likewise.
11214         (gimple_debug_bind_set_value): Likewise.
11215         (gimple_debug_bind_reset_value): Likewise.
11216         (gimple_debug_bind_has_value_p): Likewise.
11217         (gimple_return_retval_ptr): Remove gcc_assert.
11218         (gimple_return_retval): Likewise.
11219         (gimple_return_set_retval): Likewise.
11220         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
11221         (safe_referenced_var_iterator): Remove.
11222         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
11223         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
11224         (fill_referenced_var_vec): Remove.
11225         (first_readonly_imm_use): Remove redundant gcc_assert.
11226         (phi_arg_index_from_use): Combine gcc_asserts.
11227         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
11228         (first_imm_use_stmt): Remove redundant gcc_assert.
11229         * tree-cfg.c (verify_gimple_call): Verify function and chain
11230         operands.  Verify arguments.
11231         (verify_types_in_gimple_stmt): Verify condition code and labels.
11232
11233 2010-01-07  Richard Guenther  <rguenther@suse.de>
11234
11235         PR tree-optimization/42641
11236         * sese.c (rename_map_elt_info): Use the SSA name version, do
11237         not hash pointers.
11238
11239 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
11240
11241         PR tree-optimization/42625
11242         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
11243         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
11244
11245 2010-01-07  Duncan Sands  <baldrick@free.fr>
11246
11247         * Makefile.in (PLUGIN_HEADERS): Add version.h.
11248
11249 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
11250
11251         PR target/42511
11252         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
11253         note itself is not function_invariant_p.
11254
11255 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
11256
11257         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
11258         Do not add the DF_NOTE problem.
11259         * store-motion.c (execute_rtl_store_motion): Likewise.
11260
11261 2010-01-07  Martin Jambor  <mjambor@suse.cz>
11262
11263         PR tree-optimization/42157
11264         * tree-sra.c (compare_access_positions): Stabilize sort if both
11265         accesses have integer types, return zero immediately if they are the
11266         same.
11267
11268 2010-01-06  Richard Henderson  <rth@redhat.com>
11269
11270         PR middle-end/41883
11271         * haifa-sched.c (add_to_note_list): Merge into ...
11272         (concat_note_lists): ... here, and ...
11273         (unlink_other_notes, rm_other_notes): Merge into...
11274         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
11275         NOTE_INSN_EPILOGUE_BEG.
11276
11277 2010-01-06  Richard Guenther  <rguenther@suse.de>
11278
11279         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
11280         not inline regular functions into always-inline functions.
11281
11282 2010-01-06  Nick Clifton  <nickc@redhat.com>
11283
11284         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
11285         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
11286         used together.
11287         (OVERRIDE_OPTIONS): Delete.
11288         (OPTIMIZATION_OPTIONS): Define.
11289         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
11290         * config/rx/rx.c (rx_handle_option): Issue an error message if
11291         -mcpu=rx200 and -fpu are used together.
11292         (rx_set_optimization_options): New function.  Issue an error
11293         message if an optimization attribute attempts to reset the FPU/
11294         math optimization pairing.
11295         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
11296         * config/rx/rx.opt: Set the default to 32-bit doubles.
11297         * config/rx/t-rx: Add multilibs for -nofpu option.
11298         * doc/invoke.texi: Update documentation of RX options.
11299
11300 2010-01-06  Richard Guenther  <rguenther@suse.de>
11301
11302         * tree-ssa-pre.c (name_to_id): New global.
11303         (alloc_expression_id): Simplify SSA name handling.
11304         (lookup_expression_id): Likewise.
11305         (init_pre): Zero name_to_id.
11306         (fini_pre): Free it.
11307
11308 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
11309
11310         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
11311
11312 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
11313
11314         PR target/42542
11315         * config/i386/sse.md (smaxv2di3): New.
11316         (umaxv2di3): Likewise.
11317         (sminv2di3): Likewise.
11318         (uminv2di3): Likewise.
11319
11320 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
11321
11322         PR target/42564
11323         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
11324         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
11325         (legitimize_tls_address): Likewise.
11326         (sparc_tls_referenced_p): Likewise.
11327         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
11328         and adjust calls to legitimize_pic_address.
11329         (legitimate_constant_p) Use sparc_tls_referenced_p.
11330         (legitimate_pic_operand_p): Likewise.
11331         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
11332         (sparc_tls_symbol_ref_1): Delete.
11333         (sparc_tls_referenced_p): Make static, recognize specific patterns.
11334         (legitimize_tls_address): Make static, handle CONST patterns.
11335         (legitimize_pic_address): Make static, remove unused parameter and
11336         adjust recursive calls.
11337         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
11338         and adjust call to legitimize_pic_address.
11339         (sparc_output_mi_thunk): Likewise.
11340
11341 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
11342             H.J. Lu  <hongjiu.lu@intel.com>
11343
11344         PR target/42542
11345         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
11346         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
11347         operands to make them signed.
11348
11349         Revert:
11350         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11351
11352         PR target/42542
11353         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11354         GTU to GT for V4SI and V2DI.
11355
11356         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11357         (umin<mode>3): Removed.
11358         (uminv8hi3): New.
11359         (uminv4si3): Likewise.
11360
11361 2010-01-05  Martin Jambor  <mjambor@suse.cz>
11362
11363         PR tree-optimization/42462
11364         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
11365         current_function_decl to helper functions and macros.
11366
11367 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11368
11369         PR bootstrap/41771
11370         * flags.h: Don't include real.h.
11371         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
11372         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
11373         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
11374         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
11375         * dominance.c: Update copyright.
11376         * gimple.c (walk_gimple_op): Remove inline.
11377         * tree-ssa-reassoc.c: Include real.h.
11378         * Makefile.in (FLAGS_H): Remove $(REAL_H).
11379         (tree-ssa-reassoc.o): Depend on $(REAL_H).
11380
11381 2010-01-05  Nick Clifton  <nickc@redhat.com>
11382
11383         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
11384         register to push into the stack frame when the accumulator has to
11385         be saved during interrupts.
11386
11387 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
11388
11389         * doc/invoke.texi: Remove the documentation about option
11390         -Wunreachable-code.
11391         * common.opt (Wunreachable-code):  Preserved for backward
11392         compatibility.
11393         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
11394         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
11395         the backward compatibility flag section.
11396
11397 2010-01-05  Richard Guenther  <rguenther@suse.de>
11398
11399         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
11400
11401 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
11402
11403         PR other/42611
11404         * cfgexpand.c (expand_one_var): Diagnose too large variables.
11405
11406         PR tree-optimization/42508
11407         * tree-sra.c (convert_callers): Check for recursive call
11408         by comparing cgraph nodes instead of decls.
11409         (modify_function): Call ipa_modify_formal_parameters also
11410         on all same_body aliases.
11411
11412         * cgraphunit.c (cgraph_materialize_all_clones): Compare
11413         cgraph nodes when checking for same_body aliases.
11414
11415 2010-01-05  Richard Guenther  <rguenther@suse.de>
11416
11417         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
11418         allocation and lookup.
11419         (get_or_alloc_expr_for_constant): Likewise.
11420         (phi_translate): Sink allocation.
11421
11422 2010-01-04  Richard Guenther  <rguenther@suse.de>
11423
11424         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
11425         a new entry only if needed.
11426         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
11427         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
11428         hashtable lookup.
11429         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
11430         the result array.
11431         (phi_translate): Handle CONSTANTs early.
11432
11433 2010-01-04  Martin Jambor  <mjambor@suse.cz>
11434
11435         PR tree-optimization/42398
11436         * tree-sra.c (struct access): Removed flag grp_different_types.
11437         (dump_access): Do not dump the removed flag.
11438         (sort_and_splice_var_accesses): Do not set the removed flag.
11439         (sra_modify_expr): Check for type compatibility directly.
11440
11441 2010-01-04  Martin Jambor  <mjambor@suse.cz>
11442
11443         PR tree-optimization/42366
11444         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
11445         edges with variable number of parameters.
11446         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
11447         flag instead of asserting it.
11448         (ipa_read_node_info): Read uses_analysis_done flag.
11449
11450 2010-01-04  Richard Guenther  <rguenther@suse.de>
11451
11452         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
11453         iterative_hash_* as intended.
11454         (vn_reference_compute_hash): Likewise.  Simplify hashing
11455         SSA names.
11456         (vn_reference_lookup_2): Likewise.
11457         (vn_nary_op_compute_hash): Likewise.
11458         (vn_phi_compute_hash): Likewise.
11459         (expressions_equal_p): Remove strange code.
11460         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
11461         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
11462         (bitmap_insert_into_set_1): Take value-id as parameter.
11463         (add_to_value): Pass it.
11464         (bitmap_insert_into_set): Likewise.
11465         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
11466
11467 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
11468
11469         PR driver/42442
11470         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
11471         (do_self_spec): For switches with SWITCH_IGNORE set set also
11472         SWITCH_IGNORE_PERMANENTLY.
11473         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
11474         of SWITCH_IGNORE.
11475
11476 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
11477
11478         * lto-streamer-out.c (output_unreferenced_globals): Output the full
11479         tree of an unreferenced global var.
11480
11481 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11482
11483         PR target/42542
11484         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11485         GTU to GT for V4SI and V2DI.
11486
11487         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11488         (umin<mode>3): Removed.
11489         (uminv8hi3): New.
11490         (uminv4si3): Likewise.
11491
11492 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11493
11494         PR lto/42581
11495         * collect2.c (main): Turn on trace in collect2 if -v is passed
11496         to gcc with LTO.
11497
11498 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
11499
11500         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
11501         description of expression operand.
11502
11503 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
11504
11505         * configure.ac: Add install-html to target_list for Make-hooks.
11506         * configure: Regenerate.
11507         * fortran/Make-lang.in (F95_HTMLFILES): New.
11508         (fortran.html): Use it.
11509         (fortran.install-html): New.
11510         * Makefile.in (install-html): Add lang.install-html.
11511         * java/Make-lang.in (JAVA_HTMLFILES): New.
11512         (java.html): Use it.
11513         (java.install-html): New.
11514         * objc/Make-lang.in (objc.install-html): New.
11515         * objcp/Make-lang.in (obj-c++.install-html): New.
11516         * cp/Make-lang.in (c++.install-html): New.
11517         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
11518         * lto/Make-lang.in (lto.install-html): New.
11519
11520 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
11521
11522         PR lto/42520
11523         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
11524
11525 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
11526
11527         PR rtl-optimization/41862
11528         * store-motion.c (store_killed_in_insn, compute_store_table,
11529         remove_reachable_equiv_notes, replace_store_insn,
11530         build_store_vectors): Ignore all DEBUG_INSNs.
11531
11532 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
11533
11534         PR lto/41564
11535         * common.opt: Add dumpdir.
11536
11537         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
11538         isn't specified.
11539         (option_map): Add --dumpdir.
11540
11541         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
11542
11543         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
11544
11545         * opts.c (decode_options): Try dump_dir_name first if
11546         dump_base_name isn't an absolute path.
11547         (common_handle_option): Handle OPT_dumpdir.
11548
11549         * toplev.c (dump_dir_name): New.
11550         (print_switch_values): Also ignore -dumpdir.
11551
11552         * toplev.h (dump_dir_name): New.
11553
11554 2010-01-03  Richard Guenther  <rguenther@suse.de>
11555
11556         PR tree-optimization/42589
11557         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
11558         double-word expansion of bswap32.
11559
11560 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
11561
11562         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
11563         with BLOCK_FOR_INSN.
11564         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
11565         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
11566         noce_process_if_block): Likewise.
11567         * gcse.c (compute_local_properties, insert_expr_in_table,
11568         insert_set_in_table, canon_list_insert, find_avail_set,
11569         pre_insert_copy_insn): Likewise.
11570
11571         * basic-block.h (BLOCK_NUM): Move from here...
11572         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
11573
11574 2010-01-03  Richard Guenther  <rguenther@suse.de>
11575
11576         PR tree-optimization/42438
11577         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
11578         contains_may_not_return_call flag.
11579         (BB_MAY_NOTRETURN): New.
11580         (valid_in_sets): Trapping nary operations are not valid
11581         in blocks that may not return.
11582         (insert_into_preds_of_block): Remove check for trapping expressions.
11583         (compute_avail): Compute also BB_MAY_NOTRETURN.
11584
11585 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
11586
11587         * doc/invoke.texi: Add 2010 to copyright years.
11588
11589 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
11590
11591         * config/sparc/sparc.c: Fix formatting nits.
11592
11593 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
11594             Alexander Monakov  <amonakov@ispras.ru>
11595
11596         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
11597
11598 2010-01-02  Richard Guenther  <rguenther@suse.de>
11599
11600         PR middle-end/42577
11601         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
11602         (simplify_switch_using_ranges): Mark to be removed edges
11603         as non-executable.
11604
11605 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11606
11607         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
11608
11609         * collect2.c (scan_libraries): Add missing argument in call to
11610         scan_prog_file.
11611
11612 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
11613
11614         PR target/42448
11615         * config/alpha/predicates.md (aligned_memory_operand): Return false
11616         for CQImode.
11617         (unaligned_memory_operand): Return true for CQImode.
11618         * config/alpha/alpha.c (get_aligned_mem): Assert that location
11619         doesn not cross aligned SImode word boundary.
11620
11621 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
11622
11623         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
11624         Remove.
11625         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
11626         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
11627
11628 2010-01-02  Richard Guenther  <rguenther@suse.de>
11629
11630         PR lto/41597
11631         * toplev.c (compile_file): Emit LTO marker properly.  Change
11632         it to __gnu_lto_v1.
11633         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
11634
11635 2010-01-01  Richard Guenther  <rguenther@suse.de>
11636
11637         PR debug/42455
11638         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
11639
11640 2010-01-01  Richard Guenther  <rguenther@suse.de>
11641
11642         PR c/42570
11643         * c-decl.c (grokdeclarator): For zero-size arrays force
11644         structural equality checks as layout_type does.
11645
11646 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
11647
11648         * builtins.c: Update copyright to 2010.
11649
11650 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
11651
11652         PR lto/42531
11653         * lto-streamer-out.c (produce_asm): Revert the last change.
11654         (copy_function): Likewise.
11655
11656         * lto-streamer.c (lto_get_section_name): Skip any leading
11657         asterisk in name.
11658
11659 2010-01-01  Richard Guenther  <rguenther@suse.de>
11660
11661         PR middle-end/42559
11662         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
11663         for LABEL_DECLs.
11664
11665 \f
11666 Copyright (C) 2010 Free Software Foundation, Inc.
11667
11668 Copying and distribution of this file, with or without modification,
11669 are permitted in any medium without royalty provided the copyright
11670 notice and this notice are preserved.
11671
11672         PR bootstrap/44299
11673         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
11674         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
11675
11676 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
11677
11678         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
11679         toplev.h.
11680         * diagnostic.c: Don't include toplev.h.
11681         (progname): Define.  Moved from toplev.c.
11682         (seen_error): New function.
11683         * diagnostic.h: Include diagnostic-core.h.
11684         (diagnostic_t, emit_diagnostic): Don't declare here.
11685         * toplev.c (progname): Move to toplev.c.
11686         (emit_debug_global_declarations, compile_file, finalize,
11687         do_compile, toplev_main): Use seen_error.
11688         * toplev.h: Include diagnostic-core.h.
11689         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
11690         internal_error, warning, warning_at, error, error_n, error_at,
11691         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
11692         verbatim, fnotice, progname): Move to diagnostic-core.h.
11693         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
11694         (expand_builtin_expect): Use seen_error.
11695         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
11696         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
11697         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
11698         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
11699         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
11700         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
11701         errorcount for errors.
11702         * c-opts.c (c_common_finish): Use seen_error.
11703         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
11704         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
11705         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
11706         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
11707         (get_coverage_counts): Use seen_error.
11708         * dwarf2out.c (dwarf2out_finish): Use seen_error.
11709         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
11710         gimplify_body): Use seen_error.
11711         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
11712         * ipa-pure-const.c (gate_pure_const): Use seen_error.
11713         * ipa-reference.c (gate_reference): Use seen_error.
11714         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
11715         * lambda-code.c: Include diagnostic-core.h instead of
11716         diagnostic.h.
11717         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
11718         * lto-compress.c: Include diagnostic-core.h instead of
11719         diagnostic.h.
11720         * lto-section-in.c: Include diagnostic-core.h instead of
11721         diagnostic.h.
11722         * lto-streamer-out.c: Include diagnostic-core.h instead of
11723         diagnostic.h.
11724         * lto-streamer.c: Include diagnostic-core.h instead of
11725         diagnostic.h.
11726         (gate_lto_out): Use seen_error.
11727         * matrix-reorg.c: Include diagnostic-core.h instead of
11728         diagnostic.h.
11729         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
11730         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
11731         (gate_expand_omp, lower_omp_1): Use seen_error.
11732         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
11733         (rest_of_decl_compilation, rest_of_type_compilation,
11734         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
11735         * tree-cfg.c (label_to_block_fn): Use seen_error.
11736         * tree-inline.c (optimize_inline_calls): Use seen_error.
11737         * tree-mudflap.c (mudflap_finish_file): Use
11738         seen_error.
11739         * tree-optimize.c (gate_all_optimizations,
11740         gate_all_early_local_passes, gate_all_early_optimizations): Use
11741         seen_error.
11742         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
11743         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
11744         (varpool_remove_unreferenced_decls,
11745         varpool_assemble_pending_decls): Use seen_error.
11746         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
11747         (TOPLEV_H, DIAGNOSTIC_H): Update.
11748         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
11749         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
11750         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
11751         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
11752         coverage.o, lambda-code.o): Update dependencies.
11753
11754 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
11755
11756         PR c++/44188
11757         * c-common.c (is_typedef_decl): Move this definition ...
11758         * tree.c (is_typedef_decl): ... here.
11759         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
11760         * c-common.h (is_typedef_decl): Move this declaration ...
11761         * tree.h (is_typedef_decl): ... here.
11762         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
11763         * dwarf2out.c (is_naming_typedef_decl): New function.
11764         (gen_tagged_type_die): Split out of ...
11765         (gen_type_die_with_usage): ... this function. When an anonymous
11766         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
11767         is emitted for the typedef.
11768         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
11769         anonymous tagged types.
11770
11771 2010-05-27  Jason Merrill  <jason@redhat.com>
11772
11773         * print-tree.c (debug_vec_tree): New fn.
11774         (print_vec_tree): New fn.
11775         * tree.h: Declare them.
11776         * gdbinit.in (pvt): New command.
11777
11778         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
11779
11780         * gdbinit.in (pdd): New command.
11781
11782 2010-05-27  Jan Hubicka  <jh@suse.cz>
11783
11784         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
11785         (update_caller_keys): Return early if there are no callers;
11786         only update fibheap when decresing the key.
11787         (update_callee_keys): Avoid recursion.
11788         (decide_inlining_of_small_functions): When badness does not match;
11789         re-insert into fibheap.
11790
11791 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
11792
11793         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
11794         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
11795         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
11796         (ALL_HOST_OBJS): Now a union of the above two.
11797         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
11798         all files in ALL_HOST_FRONTEND_OBJS.
11799         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
11800
11801         * c-common.c: Pretend to be a backend file by undefining
11802         IN_GCC_FRONTEND (still need rtl.h here).
11803
11804 2010-05-27  Jan Hubicka  <jh@suse.cz>
11805
11806         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
11807         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
11808
11809 2010-05-27  Jan Hubicka  <jh@suse.cz>
11810
11811         * sched-ebb.c: Rename struct deps to struct deps_desc.
11812         * ddg.c: Likewise.
11813         * sel-sched-ir.c: Likewise.
11814         * sched-deps.c: Likewise.
11815         * sched-int.h: Likewise.
11816         * sched-rgn.c: Likewise.
11817
11818 2010-05-27  Jon Beniston <jon@beniston.com>
11819
11820         PR 43726
11821         * config/lm32/lm32.h: Remove definition of 
11822         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
11823
11824 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
11825
11826         PR lto/44230
11827         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
11828
11829 2010-05-27  Richard Guenther  <rguenther@suse.de>
11830
11831         PR tree-optimization/44284
11832         * tree-vect-stmts.c (vectorizable_assignment): Handle
11833         sign-changing conversions as simple copy.
11834
11835 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11836
11837         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
11838         Bionic C library.
11839         (__gthread_active_p): Check for pthread_create if compiling against
11840         Bionic C library.
11841
11842 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11843
11844         Support compilation for Android platform.  Reimplement -mandroid.
11845
11846         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
11847         (*android*): Set ANDROID_DEFAULT.
11848         (arm*-*-linux*): Include linux-android.h.
11849         (arm*-*-eabi*): Don't include previous -mandroid implementation.
11850         * config/arm/eabi.h: Remove, move Android-specific parts ...
11851         * config/linux-android.h: ... here.  New file.
11852         * config/arm/eabi.opt: Rename to ...
11853         * config/linux-android.opt: ... this.
11854         (mandroid): Allow -mno-android option.  Initialize based on
11855         ANDROID_DEFAULT.
11856         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
11857         Move logic to corresponding LINUX_TARGET_* macros.
11858         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
11859         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
11860         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
11861         Android definitions.
11862         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
11863         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
11864         Document.
11865
11866 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11867
11868         Add support for Bionic C library
11869
11870         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
11871         macro.
11872         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
11873         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
11874
11875         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
11876         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
11877         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
11878         to support multiple C libraries.  Handle Bionic.
11879         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
11880         (BIONIC_DYNAMIC_LINKER64): Define.
11881         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
11882         Update.
11883         (TARGET_HAS_SINCOS): Enable for Bionic.
11884
11885         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
11886         the last option specified on command line take effect.
11887         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
11888         (mbionic): New.
11889         (mglibc, muclibc): Update.
11890
11891         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
11892         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
11893         DEFAULT_LIBC.
11894
11895         * doc/invoke.texi (-mglibc, -muclibc): Update.
11896         (-mbionic): Document.
11897
11898 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11899
11900         * c-common.h (c_register_addr_space): Add prototype.
11901         (ADDR_SPACE_KEYWORD): Remove.
11902         * c-common.c (c_register_addr_space): New function.
11903         (c_addr_space_name): Reimplement.
11904         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
11905
11906         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
11907         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
11908
11909         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
11910         Remove TARGET_ADDR_SPACE_KEYWORDS.
11911
11912 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
11913
11914         * input.c: New file.
11915         * input.h (main_input_filename): Move declaration to toplev.h.
11916         * toplev.c (input_location, line_table): Move to input.c
11917         * toplev.h (main_input_filename): Move declaration from input.h.
11918         * tree.c (expand_location): Move to input.c.
11919         * Makefile.in (OBJS-common): Add input.o.
11920         (input.o): Add dependencies.
11921
11922 2010-05-27  Richard Guenther  <rguenther@suse.de>
11923
11924         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
11925         for non-existant files.
11926         (fork_execute): Mark args_name file as deleted.
11927
11928 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
11929
11930         PR bootstrp/44287
11931         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
11932         (narrow_signed_type): Likewise.
11933
11934 2010-05-26  Jan Hubicka  <jh@suse.cz>
11935
11936         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
11937         edge only when checking is enabled; check using former_clone_of;
11938         check inline clones too.
11939         (cgraph_materialize_clone): Record former_clone_of pointer.
11940         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
11941         combining redirections; dump args_to_skip bitmap
11942         (cgraph_materialize_all_clones): Do no redirection here.
11943         * ipa-inline.c (inline_transform): Do redirection here.
11944         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
11945         cheking only).
11946
11947 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
11948
11949         * config/avr/avr-c.c: Do not include regs.h.
11950         Include cpplib.h for cpp_define and tree.h for c-common.h.
11951         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
11952         * config/avr/t-avr: Fix dependencies for avr-c.o.
11953
11954 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
11955
11956         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
11957         string instead of SYMBOL_REF rtx.
11958         * rtl.h (set_stack_check_libfunc): Move prototype from here...
11959         * libfuncs.h: ...to here.  Adjust for explow.c change.
11960
11961 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
11962
11963         * pretty-print.c: Don't include ggc.h.
11964         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
11965         (identifier_to_locale): Use them for allocation.
11966         * pretty-print.h (identifier_to_locale_alloc,
11967         identifier_to_locale_free): Declare.
11968         * toplev.c (alloc_for_identifier_to_locale): New.
11969         (general_init): Set identifier_to_locale_alloc and
11970         identifier_to_locale_free.
11971         * Makefile.in (pretty-print.o): Update dependencies.
11972
11973 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
11974
11975         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
11976         pointer types if they have different alignment or mode.
11977
11978 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
11979
11980         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
11981         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
11982         * config/sparc/sparc-protos.h (function_value): Remove declaration.
11983         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
11984         sparc_function_value_regno_p): New functions.
11985         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11986         TARGET_FUNCTION_VALUE_REGNO_P): Define.
11987         (function_value): Rename to...
11988         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
11989         argument to 'outgoing'.
11990         (function_arg_record_value, function_arg_union_value,
11991         function_arg_vector_value): Update comment.
11992
11993 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
11994
11995         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
11996         (fde_needed_for_eh_p): New predicate.
11997         (output_call_frame_info): Use it throughout to decide whether FDEs
11998         are needed for EH purpose.
11999         (dwarf2out_begin_prologue): Reorder assignments.
12000
12001 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12002
12003         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
12004         special case loop->header.
12005         (is_predicated): New.
12006         (if_convertible_loop_p): Call it.
12007
12008 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12009
12010         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
12011         iterator in parameter.  Do not generate code during the analysis.
12012         (tree_if_convert_cond_stmt): Removed.
12013         (tree_if_convert_stmt): Removed.
12014         (predicate_bbs): New.
12015         (if_convertible_loop_p): Call predicate_bbs.
12016         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
12017         now contains all the analysis part.
12018
12019 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12020
12021         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
12022         statements in the analysis part.
12023         (tree_if_convert_stmt): Update comment.
12024         (remove_conditions_and_labels): New.
12025         (combine_blocks): Call remove_conditions_and_labels.
12026         (tree_if_conversion): Update comment.
12027
12028 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12029
12030         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
12031         than 2 predecessors or more than 2 successors.
12032
12033 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12034
12035         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
12036         of loops in which the data dependence analysis fails.
12037
12038 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12039
12040         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
12041         CDI_POST_DOMINATORS.
12042         (tree_if_conversion): Same.
12043
12044 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12045
12046         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
12047
12048 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12049
12050         * tree-if-conv.c: Update copyright years.  Fix comments.
12051         Fix indentation.
12052
12053 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
12054
12055         * builtin-types.def (BT_INT128): New primitive type.
12056         (BT_UINT128): Likewise.
12057         * c-common.c (c_common_r): Add __int128 keyword.
12058         (c_common_type_for_size): Handle __int128.
12059         (c_common_type_for_mode): Likewise.
12060         (c_common_signed_or_unsigned_type): Likewise.
12061         (c_common_nodes_and_builtins): Add builtin type
12062         if target supports 128-bit integer scalar.
12063         * c-common.h (enum rid): Add RID_INT128.
12064         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
12065         if target supports 128-bit integer scalar.
12066         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
12067         (finish_declspecs): Likewise.
12068         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
12069         (c_token_starts_declspecs): Likewise.
12070         (c_parser_declspecs): Likewise.
12071         (c_parser_attributes): Likewise.
12072         (c_parser_objc_selector): Likewise.
12073         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
12074         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
12075         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
12076         * tree.c (make_or_reuse_type): Likewise.
12077         (make_unsigned_type): Likewise.
12078         (build_common_tree_nodes_2): Likewise.
12079         * tree.h (enum integer_type_kind): Add itk_int128 and
12080         itk_unsigned_int128.
12081         (int128_integer_type_node): New define.
12082         (int128_unsigned_type_node): New define.
12083         * doc/extend.texi: Add documentation about __int128 type.
12084
12085 2010-05-26  Richard Guenther  <rguenther@suse.de>
12086
12087         * tree-ssa-sccvn.c (copy_nary): Adjust.
12088         (copy_phis): Rename to ...
12089         (copy_phi): ... this.  Adjust.
12090         (copy_references): Rename to ...
12091         (copy_reference): ... this.  Adjust.
12092         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
12093         result into the valid table.
12094
12095 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12096
12097         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
12098         insn-config.h, insn-codes.h, recog.h, and optabs.h.
12099
12100 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12101
12102         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
12103
12104 2010-05-26  Richard Guenther  <rguenther@suse.de>
12105
12106         * opts.c (common_handle_option): Handle OPT_Ofast.
12107
12108 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
12109
12110         * diagnostic.c: Don't include opts.h.
12111         (permissive_error_option): Define.
12112         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
12113         for classify_diagnostic.  Don't use memset for
12114         classify_diagnostic.  Initialize new and recently added fields.
12115         (diagnostic_classify_diagnostic): Use context->n_opts instead of
12116         N_OPTS.
12117         (diagnostic_report_diagnostic): Pass context parameter to
12118         diagnostic_report_warnings_p.  Use option_enabled and option_name
12119         hooks from context.
12120         (emit_diagnostic): Use permissive_error_option.
12121         (permerror): Likewise.
12122         * diagnostic.h: Don't include options.h.
12123         (struct diagnostic_context): Add n_opts, opt_permissive,
12124         inhibit_warnings, warn_system_headers, option_enabled and
12125         option_name fields.  Change classify_diagnostic to a pointer.
12126         * opts-diagnostic.h: New file.
12127         * opts.c: Include opts-diagnostic.h.
12128         (common_handle_option): Set global_dc fields for -Wfatal-errors,
12129         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
12130         (option_name): New function.
12131         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
12132         (c_common_handle_option): Set global_dc->permissive for
12133         -fpermissive.
12134         * c-common.c (c_cpp_error): Save and restore
12135         global_dc->warn_system_headers, not variable warn_system_headers.
12136         * toplev.c: Include opts-diagnostic.h.
12137         (general_init): Update call to diagnostic_initialize.  Set
12138         global_dc->show_column, global_dc->option_enabled and
12139         global_dc->option_name.
12140         (process_options): Don't set global_dc fields here.
12141         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
12142         (diagnostic.o, opts.o, toplev.o): Update dependencies.
12143
12144 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
12145
12146         * config/picochip/picochip.md (movsi): Split a movsi from a
12147         const after reload.
12148
12149 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12150
12151         * ggc-zone.c: Update copyright year.
12152         (poison_region): Mark memory for Valgrind as undefined before
12153         memset () call and inaccessible afterwards.
12154         (ggc_pch_total_size): Change type of i to int.
12155
12156 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12157
12158         * ggc-common.c (ggc_free_overhead): Allow empty slot.
12159
12160 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12161
12162         * ggc-common.c: Update copyright year.
12163         (ggc_rlimit_bound): Remove prototype.  Compile only if
12164         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
12165         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
12166         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
12167         (ggc_min_heapsize_heuristic): Likewise.
12168
12169 2010-05-26  Richard Guenther  <rguenther@suse.de>
12170
12171         PR rtl-optimization/44164
12172         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
12173         no-common access-path disambiguation.
12174         (indirect_ref_may_alias_decl_p): Adjust.
12175         (indirect_refs_may_alias_p): Likewise.
12176         (refs_may_alias_p_1): Likewise.
12177
12178 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12179
12180         * c-typeck.c: Do not include expr.h.
12181
12182 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12183
12184         * rtl.h (decl_default_tls_model): Move prototype from here...
12185         * output.h: ...to here.
12186         * c-decl.c: Do not include rtl.h.
12187         * c-pragma.c: Likewise.
12188         * c-parser.c: Likewise.
12189         * c-gimplify.c: Likewise.  And also not hard-reg-set.
12190         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
12191         FIXME note for it.  Add a FIXME note for expr.h.
12192         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
12193         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
12194         defined.
12195
12196 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
12197
12198         PR target/44199
12199         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
12200         or total_size is larger than red zone size for non-V4 ABI, emit a
12201         stack_tie resp. frame_tie insn before stack pointer restore.
12202         * config/rs6000/rs6000.md (frame_tie): New insn.
12203
12204 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
12205
12206         * function.h (struct function): Add can_throw_non_call_exceptions bit.
12207         * lto-streamer-in.c (input_function): Stream it in.
12208         * lto-streamer-out.c (output_function): Stream it out.
12209         * function.c (allocate_struct_function): Set it.
12210         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
12211         for flag_non_call_exceptions.
12212         * cfgbuild.c (control_flow_insn_p): Likewise.
12213         (make_edges): Likewise.
12214         * cfgexpand.c (expand_stack_alignment): Likewise.
12215         * combine.c (distribute_notes): Likewise.
12216         * cse.c (cse_extended_basic_block): Likewise.
12217         * except.c (insn_could_throw_p): Likewise.
12218         * gcse.c (simple_mem): Likewise.
12219         * ipa-pure-const.c (check_call): Likewise.
12220         (check_stmt ): Likewise.
12221         * lower-subreg.c (lower-subreg.c): Likewise.
12222         * optabs.c (emit_libcall_block): Likewise.
12223         (prepare_cmp_insn): Likewise.
12224         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
12225         * postreload.c (rest_of_handle_postreload): Likewise.
12226         * reload1.c (reload_as_needed): Likewise.
12227         (emit_input_reload_insns): Likewise.
12228         (emit_output_reload_insns): Likewise.
12229         (fixup_abnormal_edges): Likewise.
12230         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
12231         * store-motion.c (find_moveable_store): Likewise.
12232         * tree-eh.c (stmt_could_throw_p): Likewise.
12233         (tree_could_throw_p): Likewise.
12234         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
12235         * config/arm/arm.c (arm_expand_prologue): Likewise.
12236         (thumb1_expand_prologue): Likewise.
12237         * config/rx/rx.md (cbranchsf4): Likewise.
12238         (cmpsf): Likewise.
12239         * config/s390/s390.c (s390_emit_prologue): Likewise.
12240         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
12241         (inline_forbidden_into_p): New predicate.
12242         (expand_call_inline): Use it to forbid inlining.
12243         (tree_can_inline_p): Likewise.
12244
12245 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
12246
12247         * config/i386/i386-c.c: Do not include rtl.h.
12248         * config/i386/t-i386: Update dependencies.
12249
12250 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
12251
12252         * attribs.c: Do not include rtl.h.
12253         * Makefile.in: Update dependencies.
12254
12255 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
12256
12257         * double-int.h (double_int_and): New.
12258         * combine.c (try_combine): Clean up, use double_int_* and
12259         immed_double_int_const functions.
12260
12261 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12262
12263         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
12264         stderr to /dev/null instead of grep -q.
12265         * configure: Regenerate.
12266
12267 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
12268
12269         * Makefile.in (EXCEPT_H): Fix typo.
12270
12271 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
12272
12273         * ira-build.c (update_conflict_hard_reg_costs): New.
12274         (ira_build): Call update_conflict_hard_reg_costs.
12275
12276 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
12277
12278         PR debug/41371
12279         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
12280         ENABLE_CHECKING.
12281         (intersect_loc_chains): Walk the s2var's loc_chain together
12282         with s1node chain as long as the locations are equal, don't
12283         call find_loc_in_1pdv in that case.
12284
12285         PR debug/42801
12286         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
12287         (copy_bind_expr): ... instead of here.
12288         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
12289         if the block hasn't been remapped.
12290         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
12291         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
12292
12293 2010-05-25  Richard Guenther  <rguenther@suse.de>
12294
12295         PR middle-end/44069
12296         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
12297         out-of-bounds array accesses.
12298
12299 2010-05-25  Richard Guenther  <rguenther@suse.de>
12300
12301         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
12302         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
12303         (run_gcc): Re-organize to make cleanup easier.
12304
12305 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12306
12307         * config/s390/s390.c (optimization_options): Fix and move the
12308         flag_prefetch_loop_arrays override ...
12309         (override_options): ... here.
12310
12311 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
12312
12313         * diagnostic.c: Don't include plugin.h.
12314         (diagnostic_report_diagnostic): Don't handle plugins specially
12315         here.  Pass context to internal_error callback.
12316         * diagnostic.h (struct diagnostic_context): Add context parameter
12317         to internal_error callback.
12318         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
12319         * plugin.h (struct diagnostic_context): Declare.
12320         (warn_if_plugins, plugins_internal_error_function): Declare.
12321         * toplev.c (general_init): Set global_dc->internal_error.
12322         * Makefile.in (diagnostic.o): Update dependencies.
12323
12324 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
12325
12326         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
12327         * config/rs6000/t-darwin64: New.
12328         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
12329         build crt2.
12330
12331 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
12332
12333         PR 44203
12334         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
12335         match the original (and intended) behaviour before r159557.  This
12336         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
12337         in two ways.
12338
12339 2010-05-25  Richard Guenther  <rguenther@suse.de>
12340
12341         * doc/invoke.texi: Document -Ofast.
12342         * target.h (struct gcc_target): Add handle_ofast.
12343         * target-def.h (TARGET_HANDLE_OFAST): Add.
12344         (TARGET_INITIALIZER): Adjust.
12345         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
12346         * common.opt (Ofast): Add.
12347
12348 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
12349
12350         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
12351         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
12352
12353 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
12354
12355         PR target/43610
12356         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
12357         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
12358         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
12359         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
12360
12361 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
12362
12363         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
12364         DW_OP_minus with negated offset instead of DW_OP_plus.
12365         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
12366
12367 2010-05-25  Wei Guozhi  <carrot@google.com>
12368
12369         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
12370         tst instruction and a new alternative.
12371         * config/arm/constraints.md (Pu): New constraint.
12372
12373 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
12374
12375         * function.c (assign_stack_local_1): Initialize variable
12376         to avoid warning when bootstrapping at -O3.
12377
12378 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
12379
12380         * configure.ac (all_lang_makefiles): Remove everything related to it.
12381         * configure: Regenerate.
12382         * Makefile.in: Fix reference to ada Make-lang.in.
12383         Remove support for LANG_MAKEFILES.
12384
12385 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
12386             Sandra Loosemore  <sandra@codesourcery.com>
12387
12388         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
12389         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
12390         description.  Add arm_neon_fp16_ok.
12391         (Add Options): Add arm_neon and arm_neon_fp16.
12392
12393 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
12394
12395         * diagnostic.c: Don't include flags.h.
12396         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
12397         context parameters.  Check flags in the context passed as a parameter.
12398         (diagnostic_build_prefix): Add context parameter.  Check
12399         show_column flag in context.
12400         (diagnostic_action_after_output): Check fatal_errors flag in context.
12401         (diagnostic_report_current_module): Check show_column flag in context.
12402         (default_diagnostic_starter): Update call to
12403         diagnostic_build_prefix.
12404         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
12405         (emit_diagnostic): Pass context to permissive_error_kind.
12406         (permerror): Pass context to permissive_error_kind.
12407         * diagnostic.h (struct diagnostic_context): Add show_column,
12408         pedantic_errors, permissive and fatal_errors fields.
12409         (diagnostic_build_prefix): Update prototype.
12410         * langhooks.c
12411         * toplev.c (process_options): Set flags in global_dc from
12412         flag_show_column, flag_pedantic_errors, flag_permissive,
12413         flag_fatal_errors.
12414         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
12415         to diagnostic_build_prefix.
12416         * Makefile.in (diagnostic.o): Update dependencies.
12417
12418 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
12419
12420         * config/i386/ia32intrin.h (__crc32q): Define only if
12421         __SSE4_2__ is defined.
12422
12423 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
12424
12425         PR target/44132
12426         PR middle-end/43602
12427         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
12428         DECL_VISIBILITY_SPECIFIED.
12429         (emutls_decl): Set DECL_PRESERVE_P and copy
12430         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
12431         (emutls_finalize_control_var): New callback.
12432         (emutls_finish): Finalize emutls control variables.
12433         * toplev.c (compile_file): Move the call to emutls_finish ()
12434         before varpool_assemble_pending_decls ().
12435
12436 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
12437
12438         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
12439         added to the preprocessor condition.
12440
12441 2010-05-24  Paul Brook  <paul@codesourcery.com>
12442
12443         * gengtype-lex.l: Add HARD_REG_SET.
12444         * expr.c (expand_expr_real_1): Record writes to hard registers.
12445         * function.c (rtl_data): Add asm_clobbers.
12446         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
12447         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
12448         Use crtl->asm_clobbers.
12449
12450 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12451
12452         * doc/makefile.texi (Makefile): Mention stages 'profile'
12453         and 'feedback' for profiledbootstrap.
12454
12455 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
12456
12457         PR target/44245
12458         * config/i386/i386.c (def_builtin): Properly check
12459         OPTION_MASK_ISA_64BIT.
12460
12461 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
12462
12463         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
12464         typedefs with different but compatible types.  Allow duplicate
12465         typedefs with the same type except for pedantic non-C1X, but give
12466         warning for variably modified types.
12467         * c-typeck.c (tagged_types_tu_compatible_p,
12468         function_types_compatible_p, type_lists_compatible_p,
12469         comptypes_internal): Add parameter different_types_p; set
12470         *different_types_p for different but compatible types.  All
12471         callers changed.
12472         (comptypes_check_different_types): New.
12473         * c-tree.h (comptypes_check_different_types): Declare.
12474
12475 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
12476
12477         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
12478         * jump.c: Include basic-block.h.
12479         * profile.c: Likewise.
12480         * tree-profile.c: Likewise.
12481         * coverage.c: Likewise.
12482         * basic-block.h (optimize_function_for_size_p): Move to function.h.
12483         (optimize_function_for_speed_p): Likewise.
12484         * function.h (optimize_function_for_size_p,
12485         optimize_function_for_speed_p): Moved here from basic-block.h.
12486         * Makefile.in: Update dependencies.
12487
12488 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12489
12490         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
12491         before calling make; allow override through $MAKE.
12492         * doc/invoke.texi (Optimize Options): Document override.
12493
12494 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
12495
12496         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
12497         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12498         (rs6000_mode_dependent_address_ptr): Make static.
12499         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12500         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
12501         Remove.
12502
12503 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
12504
12505         PR target/43869
12506         * config/i386/i386.c: Make sure that the correct regparm is passed.
12507
12508 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
12509
12510         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
12511         * sbitmap.c: ...to here to internalize sbitmap element access.
12512         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
12513         Explain why basic-block.h is included.
12514         * function.h: Include tm.h for CUMULATIVE_ARGS.
12515         * Makefile.in: Update dependencies.
12516
12517 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
12518
12519         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
12520         New core types.
12521         * sbitmap.h (struct sbitmap_def): Do not typedef here.
12522         * sbitmap.c: Include sbitmap.h.
12523         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
12524         hard-reg-set.h.  Split everything related to regsets out from here...
12525         * regset.h: ...to here.  New file.
12526         * df.h: Include regset.h and sbitmap.h.
12527         * tree-flow.h: Likewise.
12528         * cfgloop.h: Likewise.
12529         * except.h: Do not include sbitmap.h.  Include hashtab.h.
12530         * cgraph.h: Include vec.h and function.h.
12531         * reload.h (struct insn_chain): Change types of live_throughout
12532         and dead_or_set from regset_head to bitmap_head.
12533         (compute_use_by_pseudos): Be defined also if regset.h is not included.
12534         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
12535         spilled_regs from regset_head to bitmap_head to avoid dependency
12536         in regset.h.
12537         * sel-sched-ir.h: Include regset.h.
12538         * reload.c: Include df.h before reload.h.
12539         * caller-save.c: Likewise.
12540         * reload1.c: Likewise.
12541         * ira.c: Likewise.
12542         (mark_elimination): Update type of r to bitmap, consistent with
12543         DF_LR_IN.
12544         * dominance.c: Include bitmap.h.
12545         * modulo-sched.c: Include df.h.
12546         * cfganal.c: Include bitmap.h and sbitmap.h.
12547         * cfgbuild.c: Include sbitmap.h.
12548         * lcm.c: Include sbitmap.h.
12549         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
12550         * domwalk.c: Include sbitmap.h, exclude ggc.h.
12551         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
12552         * cselib.c: Include bitmap.h.
12553         * tree-optimize.c: Include regset.h.
12554         * stmt.c: Include bitmap.h.
12555         * Makefile.in: Update dependencies.
12556
12557 2010-05-22  Jan Hubicka  <jh@suse.cz>
12558
12559         * cgraph.h (struct varpool_node): Add same_comdat_group.
12560         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
12561         pointer.
12562         (output_varpool): Update call of lto_output_varpool_node.
12563         (input_varpool): Read same_comdat_group pointer.
12564         (input_varpool_1): Fixup same_comdat_group pointer.
12565         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
12566         group is needed, all are.
12567         * varpool.c (varpool_remove_node): Remove node from same comdat group
12568         linklist too.
12569         (varpool_analyze_pending_decls): Walk same comdat groups.
12570
12571 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
12572
12573         * rtl.h (union rtunion_def): Remove rt_bit member.
12574         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
12575         * print-rtl (print_rtx): Do not print the member.
12576         * gengtype.c (adjust_field_rtx_def): Do not handle it.
12577         * gengenrtl.c (type_from_format): Likewise.
12578         (accessor_from_format): Likewise.
12579
12580 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
12581
12582         * dbgcnt.c: Include toplev.h instead of errors.h.
12583         * ira-emit.c: Don't include errors.h.
12584         * ira.c: Include toplev.h instead of errors.h.
12585         * lto-compress.c: Include toplev.h instead of errors.h.
12586         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
12587         ira.o, dbgcnt.o): Update dependencies.
12588
12589 2010-05-22  Richard Guenther  <rguenther@suse.de>
12590
12591         * gimple.c (gimple_types_compatible_p): Check type qualifications
12592         before merging pointer to complete and pointer to incomplete type.
12593         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
12594         we use our own resolution algorithm.  The gold linker plugin
12595         doesn't do the job we want it to do here.
12596
12597 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
12598
12599         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12600         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12601         (sparc_mode_dependent_address_p): New function.
12602
12603 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
12604
12605         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
12606
12607         * timevar.c: Do not include any core headers.
12608         (timevar_print): De-i18n-ize.
12609         (print_time): Likewise.
12610         * timevar.h (timevar_push, timevar_pop): Make inline functions.
12611
12612 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
12613
12614         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
12615         langhooks-def.h.
12616         (diagnostic_initialize): Initialize x_data not last_function.
12617         (diagnostic_report_current_function): Move to tree-diagnostic.c.
12618         (default_diagnostic_starter): Call
12619         diagnostic_report_current_module not
12620         diagnostic_report_current_function.
12621         (diagnostic_report_diagnostic): Initialize x_data not
12622         abstract_origin.
12623         (verbatim): Likewise.
12624         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
12625         x_data.
12626         (struct diagnostic_context): Change last_function to x_data.
12627         (diagnostic_auxiliary_data): Replace with
12628         diagnostic_context_auxiliary_data and
12629         diagnostic_info_auxiliary_data.
12630         (diagnostic_last_function_changed, diagnostic_set_last_function,
12631         diagnostic_report_current_function): Move to tree-diagnostic.h.
12632         (print_declaration, dump_generic_node, print_generic_stmt,
12633         print_generic_stmt_indented, print_generic_expr,
12634         print_generic_decl, debug_c_tree, dump_omp_clauses,
12635         print_call_name, debug_generic_expr, debug_generic_stmt,
12636         debug_tree_chain, default_tree_printer): Move to
12637         tree-pretty-print.h.
12638         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
12639         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
12640         gimple-pretty-print.h.
12641         * pretty-print.c: Don't include tree.h
12642         (pp_base_format): Don't handle %K here.
12643         (pp_base_tree_identifier): Move to tree-pretty-print.c.
12644         * pretty-print.h (text_info): Change abstract_origin to x_data.
12645         (pp_tree_identifier, pp_unsupported_tree,
12646         pp_base_tree_identifier): Move to tree-pretty-print.h.
12647         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
12648         tree-pretty-print.h: New files.
12649         * tree-pretty-print.c: Include tree-pretty-print.h.
12650         (percent_K_format): New.  Moved from pretty-print.c.
12651         (pp_base_tree_identifier): Move from pretty-print.c.
12652         * c-objc-common.c: Include tree-pretty-print.h.
12653         (c_tree_printer): Handle %K here.
12654         * langhooks.c: Include tree-diagnostic.h.
12655         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
12656         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
12657         (default_tree_printer): Handle %K using percent_K_format.
12658         (general_init): Use default_tree_diagnostic_starter.
12659         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
12660         (free_lang_data): Use default_tree_diagnostic_starter.
12661         * c-pretty-print.c: Include tree-pretty-print.h.
12662         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12663         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12664         * dwarf2out.c: Include tree-pretty-print.h.
12665         * except.c: Include tree-pretty-print.h.
12666         * gimple-pretty-print.c: Include tree-pretty-print.h and
12667         gimple-pretty-print.h.
12668         * gimplify.c: Include tree-pretty-print.h.
12669         * graphite-poly.c: Include tree-pretty-print.h and
12670         gimple-pretty-print.h.
12671         * ipa-cp.c: Include tree-pretty-print.h.
12672         * ipa-inline.c: Include gimple-pretty-print.h.
12673         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12674         * ipa-pure-const.c: Include gimple-pretty-print.h.
12675         * ipa-struct-reorg.c: Include tree-pretty-print.h and
12676         gimple-pretty-print.h.
12677         * ipa-type-escape.c: Include tree-pretty-print.h.
12678         * print-rtl.c: Include tree-pretty-print.h.
12679         * print-tree.c: Include gimple-pretty-print.h.
12680         * sese.c: Include tree-pretty-print.h.
12681         * tree-affine.c: Include tree-pretty-print.h.
12682         * tree-browser.c: Include tree-pretty-print.h.
12683         * tree-call-cdce.c: Include gimple-pretty-print.h.
12684         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12685         * tree-chrec.c: Include tree-pretty-print.h.
12686         * tree-data-ref.c: Include tree-pretty-print.h and
12687         gimple-pretty-print.h.
12688         * tree-dfa.c: Include tree-pretty-print.h.
12689         * tree-if-conv.c: Include tree-pretty-print.h and
12690         gimple-pretty-print.h.
12691         * tree-inline.c: Include tree-pretty-print.h.
12692         * tree-into-ssa.c: Include tree-pretty-print.h and
12693         gimple-pretty-print.h.
12694         * tree-nrv.c: Include tree-pretty-print.h.
12695         * tree-object-size.c: Include tree-pretty-print.h and
12696         gimple-pretty-print.h.
12697         * tree-outof-ssa.c: Include tree-pretty-print.h and
12698         gimple-pretty-print.h.
12699         * tree-parloops.c: Include tree-pretty-print.h and
12700         gimple-pretty-print.h.
12701         * tree-predcom.c: Include tree-pretty-print.h and
12702         gimple-pretty-print.h.
12703         * tree-scalar-evolution.c: Include tree-pretty-print.h and
12704         gimple-pretty-print.h.
12705         * tree-sra.c: Include tree-pretty-print.h.
12706         * tree-ssa-address.c: Include tree-pretty-print.h.
12707         * tree-ssa-alias.c: Include tree-pretty-print.h.
12708         * tree-ssa-ccp.c: Include tree-pretty-print.h and
12709         gimple-pretty-print.h.
12710         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
12711         * tree-ssa-copy.c: Include tree-pretty-print.h and
12712         gimple-pretty-print.h.
12713         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
12714         * tree-ssa-dce.c: Include tree-pretty-print.h and
12715         gimple-pretty-print.h.
12716         * tree-ssa-dom.c: Include tree-pretty-print.h and
12717         gimple-pretty-print.h.
12718         * tree-ssa-dse.c: Include gimple-pretty-print.h.
12719         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
12720         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
12721         * tree-ssa-live.c: Include tree-pretty-print.h and
12722         gimple-pretty-print.h.
12723         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
12724         gimple-pretty-print.h.
12725         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
12726         gimple-pretty-print.h.
12727         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
12728         gimple-pretty-print.h.
12729         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
12730         gimple-pretty-print.h.
12731         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
12732         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
12733         * tree-ssa-operands.c: Include tree-pretty-print.h and
12734         gimple-pretty-print.h.
12735         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
12736         gimple-pretty-print.h.
12737         * tree-ssa-pre.c: Include tree-pretty-print.h and
12738         gimple-pretty-print.h.
12739         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
12740         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
12741         gimple-pretty-print.h.
12742         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
12743         gimple-pretty-print.h.
12744         * tree-ssa-sink.c: Include gimple-pretty-print.h.
12745         * tree-ssa-ter.c: Include tree-pretty-print.h and
12746         gimple-pretty-print.h.
12747         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
12748         * tree-ssa.c: Include tree-pretty-print.h and
12749         gimple-pretty-print.h.
12750         * tree-stdarg.c: Include gimple-pretty-print.h.
12751         * tree-switch-conversion.c: Include gimple-pretty-print.h.
12752         * tree-tailcall.c: Include tree-pretty-print.h and
12753         gimple-pretty-print.h.
12754         * tree-vect-data-refs.c: Include tree-pretty-print.h and
12755         gimple-pretty-print.h.
12756         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
12757         gimple-pretty-print.h.
12758         * tree-vect-loop.c: Include tree-pretty-print.h and
12759         gimple-pretty-print.h.
12760         * tree-vect-patterns.c: Include gimple-pretty-print.h.
12761         * tree-vect-slp.c: Include tree-pretty-print.h and
12762         gimple-pretty-print.h.
12763         * tree-vect-stmts.c: Include tree-pretty-print.h and
12764         gimple-pretty-print.h.
12765         * tree-vectorizer.c: Include tree-pretty-print.h.
12766         * tree-vrp.c: Include tree-pretty-print.h and
12767         gimple-pretty-print.h.
12768         * value-prof.c: Include tree-pretty-print.h and
12769         gimple-pretty-print.h.
12770         * var-tracking.c: Include tree-pretty-print.h.
12771         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
12772         (tree-diagnostic.o): New dependencies.
12773         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
12774         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
12775         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
12776         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
12777         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
12778         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
12779         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
12780         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
12781         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
12782         tree-ssa-address.o, tree-ssa-loop-niter.o,
12783         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
12784         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
12785         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
12786         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
12787         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
12788         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
12789         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
12790         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
12791         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
12792         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
12793         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
12794         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
12795         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
12796         tree-switch-conversion.o, var-tracking.o, value-prof.o,
12797         cfgexpand.o, pretty-print.o): Update dependencies.
12798
12799 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
12800
12801         * tree-ssa-structalias.c: Remove tm_p.h from include.
12802
12803 2010-05-21  Jeff Law  <law@redhat.com>
12804
12805         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
12806
12807 2010-05-21  Jason Merrill  <jason@redhat.com>
12808
12809         * tree-eh.c (cleanup_is_dead_in): New.
12810         (lower_try_finally): Don't generate a dead cleanup region.
12811         (lower_cleanup): Likewise.
12812
12813 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
12814
12815         PR debug/44223
12816         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
12817         unchain each use from the cyclic next_regno_use chain first.
12818
12819 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
12820
12821         * real: Do not include gmp.h, mpfr.h, and mpc.h.
12822         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
12823         (real_value_negate, real_value_abs): New prototypes.
12824         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
12825         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
12826         new include file for interface between MPFR and REAL_VALUE_TYPE.
12827         * real.c: Include realmpfr.h.
12828         (real_arithmetic2): Remove legacy function.
12829         (real_value_negate): New.
12830         (real_value_abs): New.
12831         (mfpr_from_real, real_from_mpfr): Move from here...
12832         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
12833         * builtins.c: Include realmpfr.h.
12834         * fold-const.c: Include realmpfr.h.
12835         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
12836         (fold_negate_const): Likewise.
12837         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
12838         * toplev.c: Include realmpfr.h.
12839         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
12840         and real_value_negate.
12841         * fixed-value.c (check_real_for_fixed_mode): Likewise.
12842         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
12843         (vfp3_const_double_index): Likewise.
12844         (arm_print_operand): Likewise.
12845         * Makefile.in: Update dependencies.
12846
12847 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12848
12849         * config/s390/s390.c (override_options): Increase the default
12850         of max-completely-peel-times.
12851
12852 2010-05-21  Julian Brown  <julian@codesourcery.com>
12853             Mark Mitchell  <mark@codesourcery.com>
12854
12855         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
12856         sibling calls for Thumb-1.
12857         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
12858         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
12859         Thumb-2.
12860         (*call_insn, *call_value_insn): Don't use for Thumb-2.
12861         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
12862         for Thumb-2.
12863         (return): New expander.
12864         (*arm_return): New name for ARM return insn.
12865         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
12866
12867 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
12868
12869         * config.gcc (sparc64-*-rtems*): New target.
12870
12871 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
12872
12873         * tree.c (build_function_decl_skip_args): Fix grammar.
12874         (build_function_type_list_1): Fix typos, adjust formatting.
12875
12876 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
12877
12878         * tree.h: Include real.h and fixed-value.h as basic datatypes.
12879         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
12880         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
12881         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
12882         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
12883         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
12884         tree-pretty-print.c, tree-loop-distribution.c,
12885         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
12886         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
12887         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
12888         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
12889         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
12890         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
12891         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
12892         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
12893         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
12894         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
12895         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
12896         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
12897         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
12898         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
12899         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
12900         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
12901         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
12902         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
12903         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
12904         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
12905         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
12906         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
12907         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
12908         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
12909         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
12910         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
12911         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
12912         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
12913         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
12914         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
12915         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
12916         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
12917         config/score/score7.c, config/score/score.c, config/arm/arm.c,
12918         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
12919         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
12920         config/bfin/bfin.c: Clean up redundant includes.
12921         * Makefile.in: Update accordingly.
12922
12923 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
12924
12925         PR middle-end/44204
12926         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
12927         statement has no arguments.
12928
12929 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
12930
12931         PR/44139
12932         * varasm.c (emutls_decl): Merge attributes to new decl.
12933
12934 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
12935
12936         PR middle-end/44101
12937         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
12938         around the uniquized constructor if its type requires a conversion.
12939
12940 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
12941
12942         PR debug/44205
12943         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
12944         at -O0 goto_locus of any of the incoming edges differs from
12945         goto_locus of outgoing edge, or gimple_location of any of the
12946         labels differs.
12947
12948 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
12949
12950         * ira.c (ira_non_ordered_class_hard_regs): Define.
12951         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
12952         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
12953         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
12954         cost of unaligned hard regs when allocating multi-reg pseudos.
12955
12956 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
12957
12958         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
12959         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
12960         for TARGET_NO_FLOAT.
12961         * config/mips/mips.c (mips_file_start): Expand conditional expression
12962         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
12963         (mips_override_options): Move -mno-float override -msoft-float and
12964         -mhard-float.
12965         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
12966         Condition(TARGET_SUPPORTS_NO_FLOAT).
12967         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
12968         __mips_no_float here.
12969         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
12970         (TARGET_SUPPORTS_NO_FLOAT): Define.
12971         * config/mips/sdemtk.opt: Delete.
12972
12973 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
12974
12975         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
12976
12977 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
12978
12979         PR target/43733
12980         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
12981         * configure: Regenerate.
12982         * config.in: Regenerate.
12983         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
12984         instead of sahf only for 64bit targets.
12985
12986 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
12987
12988         PR debug/44178
12989         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
12990         setup_ref_regs for DEBUG_INSNs.
12991
12992 2010-05-20  Jan Hubicka  <jh@suse.cz>
12993
12994         PR middle-end/44197
12995         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
12996
12997 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
12998
12999         PR bootstrap/43870
13000         * df-scan.c (df_ref_compare): Stabilize sort.
13001
13002 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
13003
13004         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
13005         argument.  Don't use DW_OP_piece if offset is non-zero,
13006         put offset into second DW_OP_bit_piece argument.
13007         (dw_sra_loc_expr): Adjust callers.  For memory expressions
13008         compute offset.
13009
13010 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
13011
13012         PR target/44202
13013         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
13014         settings for 16-bit-constant "addo" alternative.
13015
13016 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
13017
13018         * config/mips/mips-dsp.md (add<DSPV:mode>3,
13019         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
13020
13021         PR target/43764
13022         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
13023         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
13024         Use it.
13025
13026 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
13027
13028         * diagnostic.c (FLOAT, FFS): Don't undefine.
13029         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
13030         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
13031         include ordering.
13032
13033 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
13034
13035         * combine.c (propagate_for_debug): Call make_compound_operation
13036         on the source value.
13037         (try_combine): When implementing a split chosen by find_split_point,
13038         either copy i2src or set it to null.  Assert that i2src is not null
13039         before substituting into CALL_INSN_FUNCTION_USAGE.
13040
13041 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
13042
13043         * double-int.h (double_int_ior): New function.
13044         * tree.h (build_int_cst_wide_type): Remove.
13045         * tree.c (build_int_cst_wide_type): Remove.
13046         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
13047         of build_int_cst_wide_type.
13048         * stor-layout.c (set_sizetype): (Ditto.).
13049         * dojump.c (do_jump): Use build_int_cstu instead of
13050         build_int_cst_wide_type.
13051
13052 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
13053
13054         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
13055         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
13056         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
13057         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
13058         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
13059         propagate the 'data' argument to copy_tree_r.
13060         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
13061         Propagate 'data' argument to walk_tree.
13062         (copy_if_shared): New function.
13063         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
13064         (unmark_visited): New function.
13065         (unshare_body): Call copy_if_shared instead of doing it manually.
13066         (unvisit_body): Call unmark_visited instead of doing it manually.
13067
13068 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
13069
13070         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
13071         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
13072         * hooks.c: Likewise.
13073         * target-def.h (TARGET_FOLD_BUILTIN): Define to
13074         hook_tree_tree_int_treep_bool_null.
13075         * target.h (struct gcc_target): Update signature of fold_builtin
13076         field.
13077         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
13078         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
13079         instead of the call expression.
13080         (fold_builtin_call_array): Pass n and argarray directly.
13081         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
13082         consing a list.
13083         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
13084         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
13085         `i' and use it in place of `arity'.
13086         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
13087         Dereference `args' directly.
13088         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
13089
13090 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13091
13092         * doc/sourcebuild.texi (Effective-Target Keywords): Document
13093         3dnow, sse3, sse2.
13094         (Directives): Document optional dg-require-effective-target
13095         selector.
13096
13097 2010-05-19  Richard Guenther  <rguenther@suse.de>
13098
13099         PR lto/44196
13100         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
13101
13102 2010-05-19  Richard Guenther  <rguenther@suse.de>
13103
13104         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
13105         * common.opt (fwhopr=): New.
13106         * opts.c (common_handle_option): Handle OPT_fwhopr.
13107         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
13108         * collect2.c (main): Match -fwhopr*.
13109         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
13110         Execute ltrans stage in parallel when jobs is bigger than 1.
13111
13112 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13113
13114         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
13115         pentiumpro on Solaris 8/x86 with Sun as.
13116         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
13117         hidden alias bug.
13118         (gcc_cv_as_ix86_quad): Check for .quad directive.
13119         * configure: Regenerate.
13120         * config.in: Regenerate.
13121         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
13122
13123 2010-05-19  Martin Jambor  <mjambor@suse.cz>
13124
13125         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
13126         also for indirect edges.  Actual printing moved...
13127         (ipa_print_node_jump_functions_for_edge): ...here.
13128         (ipa_compute_jump_functions): Renamed to
13129         ipa_compute_jump_functions_for_edge and made static.
13130         (ipa_compute_jump_functions): New function.
13131         (make_edge_direct_to_target): Check if the number of arguments on
13132         the newly direct edge is the same as the number of parametrs of
13133         the callee.
13134         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
13135         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
13136         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
13137         analysis functions unconditionally, call the new
13138         ipa_analyze_params_uses on the node instead of every edge.
13139
13140 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
13141
13142         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
13143         to tree.
13144         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
13145         also checks for a constant int vs.  non-constant but
13146         loop-invariant steps.
13147         (find_or_create_group): Change the sort algorithm to only consider
13148         steps that are constant ints.
13149         (idx_analyze_ref): Adopt code to handle a tree instead of a
13150         HOST_WIDE_INT for step.
13151         (gather_memory_references_ref): Handle tree instead of int and be
13152         prepared to see a NULL_TREE.
13153         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
13154         prefetches if the step cannot be calculated at compile time.
13155         (issue_prefetch_ref): Issue prefetches for non-constant but
13156         loop-invariant steps.
13157
13158 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
13159
13160         Revert:
13161         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
13162
13163         * tree.h (build_call_list): Remove.
13164         * tree.c (build_call_list): Remove.
13165
13166 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
13167
13168         * tree.h (build_call_list): Remove.
13169         * tree.c (build_call_list): Remove.
13170
13171 2010-05-18  Jan Hubicka  <jh@suse.cz>
13172
13173         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
13174
13175 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
13176
13177         PR rtl-optimization/43332
13178         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
13179
13180 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
13181
13182         * tree.h (build_int_cstu): Implement as static inline.
13183         * tree.c (build_int_cstu): Remove function.
13184         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
13185         sign extended.
13186
13187 2010-05-18  Richard Guenther  <rguenther@suse.de>
13188
13189         PR lto/44143
13190         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
13191         (debug): Initialize from -save-temps.
13192         (collect_execute): Print command-line when verbose.
13193         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
13194         for ltrans invocation.  Produce -dumpbase flag again.
13195         (process_args): Remove.
13196         (main): Simplify.
13197         * collect2.c (maybe_run_lto_and_relink): Only pass object
13198         files to lto-wrapper.
13199         * gcc.c (LINK_COMMAND_SPEC): Likewise.
13200
13201 2010-05-18  Jan Hubicka  <jh@suse.cz>
13202
13203         * opts.c (decode_options): Do not disable whopr at ipa_cp.
13204         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
13205
13206 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
13207
13208         PR lto/44184
13209         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
13210         in a GIMPLE_ASM.
13211         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
13212         in a GIMPLE_ASM.
13213
13214 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
13215
13216         PR debug/41371
13217         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
13218         rtx_equal_p inline.
13219
13220 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
13221
13222         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
13223         lto-macho as lto_binary_reader.
13224
13225         * darwin.c (darwin_asm_named_section): Do not add assembler comment
13226         after .section directive; just print it before the directive instead.
13227
13228 2010-05-17  Jan Hubicka  <jh@suse.cz>
13229
13230         * cgraph.c (cgraph_create_virtual_clone): Only check
13231         versionable_function_p when not in wpa and checking is enabled.
13232         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
13233         there are no more functions to materialize.
13234
13235 2010-05-17  Jan Hubicka  <jh@suse.cz>
13236
13237         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
13238         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
13239         New functions.
13240         (output_cgraph): Call output_cgraph_opt_summary.
13241         (input_cgrpah): Call input_cgraph_opt_summary.
13242         (output_cgraph_opt_summary_p, output_node_opt_summary,
13243         input_node_opt_summary, input_cgraph_opt_section): New functions.
13244         * lto-section-in.c (lto_section_name): Add cgraphopt.
13245         * tree-inline.c (tree_function_versioning): Handle parm_num.
13246         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
13247         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
13248
13249 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
13250
13251         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
13252         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
13253         the insn to prefetch ratio heuristic to loops with known trip count.
13254
13255 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
13256
13257         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
13258         (schedule_prefetches): Do not generate a prefetch if the unroll factor
13259         is far from what is required by the prefetch.
13260
13261 2010-05-17  Jan Hubicka  <jh@suse.cz>
13262
13263         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
13264         (ipcp_estimate_growth): Likewise.
13265         (ipcp_const_param_count): Likewise.
13266         (ipcp_insert_stage): Likewise.
13267         * ipa-prop.c (visit_load_for_mod_analysis): New function.
13268         (visit_store_addr_for_mod_analysis): Set used flag.
13269         (ipa_detect_param_modifications): Set used flag for SSE params;
13270         update use of walk_stmt_load_store_addr_ops.
13271         (ipa_print_node_params): Print used flag.
13272         (ipa_write_node_info): Stream used flag.
13273         (ipa_read_node_info): Likewise.
13274         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
13275         (ipa_is_param_used): New function.
13276         (lto_ipa_fixup_call_notes): Remove unused declaration.
13277
13278 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13279
13280         PR target/44074
13281         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
13282         * configure: Regenerate.
13283         * config.in: Regenerate.
13284         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
13285         !HAVE_AS_IX86_REP_LOCK_PREFIX.
13286         Don't emit whitespace.
13287         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
13288         (*rep_movsi): Likewise.
13289         (*rep_movsi_rex64): Likewise.
13290         (*rep_movqi): Likewise.
13291         (*rep_movqi_rex64): Likewise.
13292         (*rep_stosdi_rex64): Likewise.
13293         (*rep_stossi): Likewise.
13294         (*rep_stossi_rex64): Likewise.
13295         (*rep_stosqi): Likewise.
13296         (*rep_stosqi_rex64): Likewise.
13297         (*cmpstrnqi_nz_1): Use {%;} after repz.
13298         (*cmpstrnqi_nz_rex_1): Likewise.
13299         (*cmpstrnqi_1): Likewise.
13300         (*cmpstrnqi_rex_1): Likewise.
13301         (*strlenqi_1): Use {%;} after repnz.
13302         (*strlenqi_rex_1): Likewise.
13303         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
13304         (*sync_compare_and_swap<mode>): Likewise.
13305         (sync_double_compare_and_swap<mode>): Likewise.
13306         (*sync_double_compare_and_swapdi_pic): Likewise.
13307         (sync_old_add<mode>): Likewise.
13308         (sync_add<mode>): Likewise.
13309         (sync_sub<mode>): Likewise.
13310         (sync_<code><mode>): Likewise.
13311
13312 2010-05-17  Martin Jambor  <mjambor@suse.cz>
13313
13314         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
13315         otr_token and polymorphic.
13316         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
13317         (cgraph_clone_edge): Copy the above fields.
13318         * tree.c (get_binfo_at_offset): New function.
13319         * tree.h (get_binfo_at_offset): Declare.
13320         * ipa-prop.h (enum jump_func_type): Added known_type jump function
13321         type, reordered items, updated comments.
13322         (union jump_func_value): Added base_type field, reordered fields.
13323         (enum ipa_lattice_type): Moved down in the file.
13324         (struct ipa_param_descriptor): New field polymorphic.
13325         (ipa_is_param_polymorphic): New function.
13326         * ipa-prop.c: Include gimple.h and gimple-fold.h.
13327         (ipa_print_node_jump_functions): Print known type jump functions.
13328         (compute_complex_pass_through): Renamed to...
13329         (compute_complex_assign_jump_func): this.
13330         (compute_complex_ancestor_jump_func): New function.
13331         (compute_known_type_jump_func): Likewise.
13332         (compute_scalar_jump_functions): Create known type and complex ancestor
13333         jump functions.
13334         (ipa_note_param_call): New parameter polymorphic, set the corresponding
13335         flag in the call note accordingly.
13336         (ipa_analyze_call_uses): Renamed to...
13337         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
13338         variable var only in the block where it is used.
13339         (ipa_analyze_virtual_call_uses): New function.
13340         (ipa_analyze_call_uses): Likewise.
13341         (combine_known_type_and_ancestor_jfs): Likewise.
13342         (update_jump_functions_after_inlining): Implemented handling of a
13343         number of new jump function types combination.
13344         (print_edge_addition_message): Removed.
13345         (make_edge_direct_to_target): New function.
13346         (try_make_edge_direct_simple_call): Likewise.
13347         (try_make_edge_direct_virtual_call): Likewise.
13348         (update_call_notes_after_inlining): Renamed to...
13349         (update_indirect_edges_after_inlining): this.  Moved edge creation for
13350         indirect calls to try_make_edge_direct_simple_call, also calls
13351         try_make_edge_direct_virtual_call for virtual calls.
13352         (ipa_print_node_params): Changed the header message.
13353         (ipa_write_jump_function): Stream also known type jump functions.
13354         (ipa_read_jump_function): Likewise.
13355         (ipa_write_indirect_edge_info): Stream new fields in
13356         cgraph_indirect_call_info.
13357         (ipa_read_indirect_edge_info): Likewise.
13358         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
13359         GIMPLE_FOLD_H.
13360
13361 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13362
13363         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
13364
13365 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
13366
13367         * tree.h (CALL_EXPR_ARGS): Delete.
13368         (call_expr_arglist): Delete.
13369         * tree.c (call_expr_arglist): Delete.
13370         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
13371         targetm.fold_builtin.
13372         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
13373         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
13374         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
13375         arglist parameter.  Use CALL_EXPR_ARG.
13376         (picochip_expand_builtin_3op): Likewise.
13377         (picochip_expand_builtin_2opvoid): Likewise.
13378         (picochip_expand_array_get): Likewise.
13379         (picochip_expand_array_put): Likewise.
13380         (picochip_expand_array_testport): Likewise.
13381         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
13382         rather than arglist.
13383         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
13384         CALL_EXPR_ARGS.
13385         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
13386         than TREE_VALUE and TREE_CHAIN.
13387         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
13388         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
13389         the arglist.
13390
13391 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
13392
13393         PR bootstrap/42347
13394         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
13395         to have no fallthru edge.
13396
13397         PR middle-end/44102
13398         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
13399         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
13400         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
13401         add BARRIER after previous bb if needed.
13402
13403 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
13404
13405         * tree.c (build_function_type_list_1): Remove bogus assert condition.
13406
13407 2010-05-17  Alan Modra  <amodra@gmail.com>
13408
13409         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
13410         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
13411         with copy_reg rtx param.
13412         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
13413         Correct cases where code for ABI_V4 did not initialise the reg
13414         used to access frame.  Also leave frame_reg_rtx as sp for large
13415         frames that save no regs.
13416
13417 2010-05-17  Martin Jambor  <mjambor@suse.cz>
13418
13419         PR middle-end/44133
13420         * tree-sra.c (create_access_replacement): New parameter rename, mark
13421         the replaement for renaming only when it is true.
13422         (get_access_replacement): Pass true in the rename parameter of
13423         create_access_replacement.
13424         (get_unrenamed_access_replacement): New function.
13425         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
13426         replacement declaration from it.
13427
13428 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
13429
13430         * function.c (try_fit_stack_local, add_frame_space): New static
13431         functions.
13432         (assign_stack_local_1): Use them.  Look for opportunities to use
13433         space previously wasted on alignment.
13434         * function.h (struct frame_space): New.
13435         (struct rtl_data): Add FRAME_SPACE_LIST member.
13436         * reload1.c (something_was_spilled): New static variable.
13437         (alter_reg): Set it.
13438         (reload): Test it in addition to testing if the frame size changed.
13439
13440 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
13441
13442         * config/s390/s390.c: Define sane prefetch settings and activate
13443         flag_prefetch_loop_arrays on -O3.
13444         * config/s390/s390.h: Declare that read can use write prefetch.
13445
13446 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
13447
13448         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
13449         build.
13450
13451 2010-05-16  Jan Hubicka  <jh@suse.cz>
13452
13453         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
13454         function body; do not check stdarg field of struct function.
13455
13456 2010-05-16  Jan Hubicka  <jh@suse.cz>
13457
13458         * cgraph.c (dump_cgraph_node): Dump versionable flag.
13459         * cgraph.h (cgraph_local_info): Add versionable flag.
13460         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
13461         (ipcp_versionable_function_p): Use it.
13462         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
13463         versionable flag.
13464
13465 2010-05-16  Jan Hubicka  <jh@suse.cz>
13466
13467         * cgraph.c (cgraph_clone_node): Take decl argument and insert
13468         clone into hash when it is different from orig.
13469         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
13470         * cgraph.h (cgraph_clone_node): Update prototype.
13471         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
13472         (lto_cgraph_encoder_delete): Delete body map.
13473         (lto_cgraph_encoder_size): Move to header.
13474         (lto_cgraph_encoder_encode_body_p,
13475         lto_set_cgraph_encoder_encode_body): New.
13476         (lto_output_node): Do not take written_decls argument; output clone_of
13477         pointer.
13478         (add_node_to): Add include_body_argument; call
13479         lto_set_cgraph_encoder_encode_body on master of the clone.
13480         (add_references): Update use of add_node_to.
13481         (compute_ltrans_boundary): Likewise.
13482         (output_cgraph): Do not create written_decls bitmap.
13483         (input_node): Take nodes argument; stream in clone_of correctly.
13484         (input_cgraph_1): Update use of input_node.
13485         * lto-streamer-out.c (lto_output): Use encoder info to decide
13486         what bodies to output.
13487         * ipa-inline.c (cgraph_clone_inlined_nodes,
13488         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
13489         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
13490         (lto_cgraph_encoder_size): Define here.
13491         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
13492         Declare.
13493
13494 2010-05-16  Richard Guenther  <rguenther@suse.de>
13495
13496         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
13497         -fipa-type-escape.
13498         * ipa-type-escape.c (gate_type_escape_vars): Run when
13499         -fipa-struct-reorg runs.
13500         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
13501         * common.opt (fipa-type-escape): Remove.
13502
13503 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
13504
13505         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
13506         (decode_options): Likewise.
13507         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
13508
13509 2010-05-16  Jan Hubicka  <jh@suse.cz>
13510
13511         * ipa.c (function_and_variable_visibility): Also bring local all
13512         aliases.
13513
13514 2010-05-16  Richard Guenther  <rguenther@suse.de>
13515
13516         * alias.c (nonoverlapping_memrefs_p): Remove use of
13517         IPA type-escape information.
13518
13519 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
13520
13521         * c-common.c (c_common_reswords): Add _Static_assert for C.
13522         * c-parser.c (c_token_starts_declaration,
13523         c_parser_next_token_starts_declaration,
13524         c_parser_static_assert_declaration_no_semi,
13525         c_parser_static_assert_declaration): New.
13526         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
13527         Handle static assertions if static_assert_ok.
13528         (c_parser_external_declaration, c_parser_declaration_or_fndef,
13529         c_parser_compound_statement_nostart, c_parser_label,
13530         c_parser_for_statement, c_parser_objc_methodprotolist,
13531         c_parser_omp_for_loop): All callers of
13532         c_parser_declaration_or_fndef changed.
13533         (c_parser_struct_declaration): Handle static assertions.
13534         (c_parser_compound_statement_nostart): Use
13535         c_parser_next_token_starts_declaration and
13536         c_token_starts_declaration to detect start of declarations.
13537         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
13538         Likewise.
13539
13540 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
13541
13542         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
13543         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
13544         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
13545         TARGET_FUNCTION_VALUE_REGNO_P): Define.
13546         (mmix_function_outgoing_value): Rename to...
13547         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
13548         (mmix_function_value_regno_p): Make static.
13549         (mmix_libcall_value): New function.
13550         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
13551         mmix_function_value_regno_p): Remove declaration.
13552
13553 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
13554
13555         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
13556         BUILT_IN_ALLOCA if stack checking is enabled.
13557
13558 2010-05-16  Richard Guenther  <rguenther@suse.de>
13559
13560         * var-tracking.c (vars_copy_1): Inline ...
13561         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
13562         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
13563         (variable_merge_over_cur): Adjust.  Merge asserts.
13564         (variable_merge_over_src): Likewise.
13565         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
13566         (variable_post_merge_new_vals): Merge asserts.
13567         (variable_post_merge_perm_vals): Likewise.
13568         (find_mem_expr_in_1pdv): Likewise.
13569         (dataflow_set_different_value): Remove.
13570         (onepart_variable_different_p): Merge asserts.
13571         (variable_different_p): Likewise.
13572         (dataflow_set_different_1): Inline ...
13573         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
13574         (emit_notes_for_differences_1): Merge asserts.
13575
13576 2010-05-16  Richard Guenther  <rguenther@suse.de>
13577
13578         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
13579         * optabs.c (libfunc_decl_hash): Likewise.
13580         * varasm.c (emutls_decl): Likewise.
13581
13582 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
13583
13584         * c-decl.c: Don't include gimple.h.
13585         (merge_decls): Do not copy gimple_body.
13586
13587 2010-05-15  Jason Merrill  <jason@redhat.com>
13588
13589         * c.opt: Add -fnothrow-opt.
13590
13591 2010-05-15  Jan Hubicka  <jh@suse.cz>
13592
13593         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
13594         analyzed.
13595         * passes.c (ipa_write_summaries): Write all analyzed nodes.
13596
13597 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
13598
13599         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
13600         * Makefile.in: Add it.
13601         Fix all other Makefile dependencies for changes below.
13602         * tree.h: Include it instead of defining VEC primitives here.
13603         * gimple.h: Likewise.
13604         * rtl.h: Likewise.
13605         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
13606         * except.h: Include vecir.h, break dependence on tree.h.
13607
13608         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
13609         Move from here...
13610         * tree-iterator.c: ...to here.
13611         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
13612
13613         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
13614         tm_p.h.
13615         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
13616         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
13617         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
13618         tree-mudflap.h, and target.h.
13619         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
13620         predict.h, tree-inline.h, gimple.h, and langhooks.h.
13621         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
13622         Add FIXME for why gimple.h is still included (should be unnecessary
13623         since GCC 4.5 gimplification unit-at-a-time).
13624         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
13625         * c-pragma.c: Add FIXME for why function.h needs to be included just
13626         for cfun, at front-end level.
13627         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
13628         Do not include ggc.h, but include vecprim.h for VEC(char).
13629         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
13630         Explain why target.h is included.
13631         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
13632         Explain why gimple.h is included.
13633         * c-ppoutput.c: Do not include tm.h.
13634         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
13635         * c-parses.c: Explain why rtl.h is included, and that this (and only
13636         this) is also why tm.h must be included.
13637         Do not include except.h.
13638         * c-lang.c: Do not include ggc.h.
13639
13640 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
13641
13642         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
13643
13644 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
13645
13646         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
13647         unions by default if those structs and unions have no tags.  Do
13648         not condition anonymous struct and unions handling on flag_iso.
13649         Allow anonymous structs and unions for C1X.
13650         (finish_struct): Do not diagnose lack of named fields when
13651         anonymous structs and unions present for C1X.  Accept flexible
13652         array members in structure with anonymous structs or unions but no
13653         directly named fields.
13654         * doc/extend.texi (Unnamed Fields): Update.
13655
13656 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
13657
13658         * gimple.h (compare_field_offset): Rename into...
13659         (gimple_compare_field_offset): ...this.
13660         * gimple.c (compare_field_offset): Rename into...
13661         (gimple_compare_field_offset): ...this.  Compare the full access if
13662         the offset is self-referential.
13663         (gimple_types_compatible_p): Adjust for above renaming.
13664         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
13665         DECL_NONADDRESSABLE_P flag of fields before merging them.
13666
13667 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
13668
13669         * tree.h (ctor_to_list): Delete.
13670         * tree.c (ctor_to_list): Delete.
13671
13672 2010-05-15  Jan Hubicka  <jh@suse.cz>
13673
13674         * ipa-reference.c: Include toplev.h
13675         (is_proper_for_analysis): Only add to all_module_statics
13676         if it is allocated.
13677         (write_node_summary_p, stream_out_bitmap,
13678         ipa_reference_write_optimization_summary,
13679         ipa_reference_read_optimization_summary): New.
13680         (struct ipa_opt_pass_d pass_ipa_reference): Add
13681         optimization summary streaming.
13682         * lto-cgraph.c (referenced_from_this_partition_p,
13683         reachable_from_this_partition_p): New functions.
13684         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
13685         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
13686         * opts.c (decode_options): Enable ipa_reference.
13687         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
13688         * lto-streamer.h (referenced_from_this_partition_p,
13689         reachable_from_this_partition_p): Declare.
13690
13691 2010-05-15  Richard Guenther  <rguenther@suse.de>
13692
13693         PR tree-optimization/44038
13694         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
13695         taking the address of a V_C_E of a constant.
13696
13697 2010-05-14  Jan Hubicka  <jh@suse.cz>
13698
13699         * tree.h (memory_identifier_string): Remove.
13700         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
13701         (ipa_reference_global_vars_info_d): Remove statics_not_read and
13702         statics_not_written.
13703         (ipa_reference_optimization_summary_d): New structure.
13704         (ipa_reference_optimization_summary_t): New type and vector.
13705         (ipa_reference_vars_info_d): Embedd structures instead of using
13706         pointers.
13707         (reference_vars_to_consider): Remove out of GGC space.
13708         (module_statics_escape): Remove.
13709         (global_info_obstack): Rename to ...
13710         (optimization_summary_obstack): ... this one.
13711         (initialization_status_t): Remove.
13712         (memory_identifier_string): Remove.
13713         (get_reference_vars_info): Fix indenting.
13714         (set_reference_vars_info): Likewise.
13715         (get_reference_optimization_summary): New.
13716         (set_reference_optimization_summary): New.
13717         (get_global_reference_vars_info): Remove.
13718         (ipa_reference_get_read_global): Remove.
13719         (ipa_reference_get_written_global): Remove.
13720         (ipa_reference_get_not_read_global): Update.
13721         (ipa_reference_get_not_written_global): Update.
13722         (is_proper_for_analysis): Outlaw addressable.
13723         (propagate_bits): Update for new datastructures.
13724         (analyze_variable): Remove.
13725         (init_function_info): Update for new datastructures.
13726         (clean_function_local_data): Remove.
13727         (clean_function): Remove.
13728         (copy_global_bitmap): Use optimizations_summary_obstack.
13729         (duplicate_node_data): Duplicate optimization summary only.
13730         (remove_node_data): Remove optimization summary only.
13731         (generate_summary): Do not analyze variables; do not compute
13732         module_statics_escape; do not prune solutions by it.
13733         (read_write_all_from_decl): Fix typos in comments.
13734         (propagate): Doscover readonly and nonaddressable first;
13735         update for new datastructures; share global bitmaps.
13736         * ipa-reference.h (ipa_reference_get_read_global,
13737         ipa_reference_get_written_global): Remove.
13738         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
13739         * Makefile.in: Remove ipa-refereference from GT files.
13740
13741 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
13742
13743         PR debug/44112
13744         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
13745         for all SYMBOL_REF_DECLs.
13746
13747 2010-05-14  Jan Hubicka  <jh@suse.cz>
13748
13749         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
13750         (varpool_all_refs_explicit_p): New inline function.
13751         * ipa-reference.c: Update comment.
13752         (module_statics_written): Remove.
13753         (get_static_decl): Remove.
13754         (ipa_init): Do not initialize module_statics_written.
13755         (analyze_function): Likewise.
13756         (generate_summary): Likewise; do not compute module_statics_readonly
13757         and do not update variable flags.
13758         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
13759         * ipa.c: Inlucde flags.h
13760         (cgraph_local_node_p): New.
13761         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
13762         promote functions to local.
13763         (ipa_discover_readonly_nonaddressable_vars): New function.
13764         (function_and_variable_visibility): Use cgraph_local_node_p.
13765         * varpool.c (varpool_finalize_decl): Set force_output for
13766         DECL_PRESERVE_P vars.
13767
13768 2010-05-14  Jan Hubicka  <jh@suse.cz>
13769
13770         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
13771
13772 2010-05-14  Richard Guenther  <rguenther@suse.de>
13773
13774         PR tree-optimization/44119
13775         * tree-ssa-pre.c (eliminate): Properly mark replacement of
13776         a PHI node necessary.
13777
13778 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
13779
13780         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
13781
13782 2010-05-14  Jason Merrill  <jason@redhat.com>
13783
13784         PR c++/44127
13785         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
13786         (gimple_call_set_nothrow): New.
13787         * gimple.c (gimple_build_call_from_tree): Call it.
13788         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
13789
13790         PR c++/44127
13791         * gimplify.c (gimplify_seq_add_stmt): No longer static.
13792         * gimple.h: Declare it.
13793         * gimple.c (gimple_build_eh_filter): No ops.
13794
13795 2010-05-14  Jan Hubicka  <jh@suse.cz>
13796
13797         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
13798         nodes already in queue.
13799         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
13800         re-enqueueing node.
13801
13802 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
13803
13804         PR debug/44136
13805         * cfgexpand.c (expand_debug_expr): If non-memory op0
13806         has BLKmode, return NULL.
13807
13808 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
13809
13810         * config.gcc: Add support for --with-cpu option for bdver1.
13811         * config/i386/i386.h (TARGET_BDVER1): New macro.
13812         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
13813         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
13814         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
13815         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
13816         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
13817         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
13818         (processor_type): Add PROCESSOR_BDVER1.
13819         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
13820         processor_type in config/i386/i386.h.
13821         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
13822         movaps <reg, reg> instead of movapd <reg, reg> when replacing
13823         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
13824         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
13825         to emit packed xor instead of packed double/packed integer
13826         xor for SSE and AVX when moving a zero value.
13827         * config/i386/sse.md: Add check for
13828         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
13829         movapd/movdqa for SSE and AVX.
13830         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
13831         single logical operations i.e and, or and xor instead of packed double
13832         logical operations for SSE and AVX.
13833         * config/i386/i386-c.c (ix86_target_macros_internal):
13834         Add PROCESSOR_BDVER1.
13835         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
13836         (has_fma4, has_xop): New.
13837         * config/i386/i386.c (bdver1_cost): New variable.
13838         (m_BDVER1): New macro.
13839         (m_AMD_MULTIPLE): Add m_BDVER1.
13840         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
13841         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
13842         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
13843         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
13844         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
13845         x86_tune_sse_partial_reg_dependency,
13846         x86_tune_sse_unaligned_load_optimal,
13847         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
13848         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
13849         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
13850         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
13851         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
13852         Enable/disable for bdver1.
13853         (processor_target_table): Add bdver1_cost.
13854         (cpu_names): Add bdver1.
13855         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
13856          processor_alias_table.
13857         (ix86_expand_vector_move_misalign): Change.
13858         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
13859         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
13860         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
13861         of movupd/movdqu for SSE and AVX.
13862         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
13863         (ix86_tune_adjust_cost): Add code for bdver1.
13864         (standard_sse_constant_opcode): Add check for
13865         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
13866         of packed double xor for SSE and AVX.
13867
13868 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
13869
13870         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
13871         result to unsigned.
13872
13873 2010-05-14  Tristan Gingold  <gingold@adacore.com>
13874
13875         * toplev.c (default_debug_hooks): Remove this variable.
13876         (process_options): Remove assignments to default_debug_hooks.
13877
13878 2010-05-14  Martin Jambor  <mjambor@suse.cz>
13879
13880         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
13881         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
13882         * langhooks.h (struct lang_hooks_for_decls): Removed field
13883         fold_obj_type_ref.
13884         * tree.c (free_lang_data): Remove assignment to
13885         lang_hooks.fold_obj_type_ref.
13886         * tree.def (OBJ_TYPE_REF): Update comment.
13887
13888 2010-05-14  Richard Guenther  <rguenther@suse.de>
13889
13890         PR tree-optimization/44124
13891         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
13892
13893 2010-05-14  Alan Modra  <amodra@gmail.com>
13894
13895         PR target/44075
13896         * config/rs6000/rs6000.c (struct machine_function): Reorder
13897         fields for better packing.  Add lr_save_state.
13898         (rs6000_ra_ever_killed): Return lr_save_state if set.
13899         (rs6000_emit_eh_reg_restore): Set lr_save_state.
13900
13901 2010-05-13  Jan Hubicka  <jh@suse.cz>
13902
13903         * varpool.c (decide_is_variable_needed): Drop code checking
13904         TREE_SYMBOL_REFERENCED.
13905
13906 2010-05-13  Jan Hubicka  <jh@suse.cz>
13907
13908         * final.c (output_addr_const): Do not call mark_decl_referenced.
13909         * cgraphunit.c (process_function_and_variable_attributes): Use
13910         mark_needed_node dirrectly.
13911         (assemble_thunk): Do not call mark_decl_referenced.
13912
13913 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
13914
13915         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
13916
13917 2010-05-13  Jeff Law  <law@redhat.com>
13918
13919         * ira-conflicts.c (print_allocno_conflicts): New function broken out
13920         from...
13921         (print_conflicts): Call print_allocno_conflicts.
13922
13923 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
13924
13925         PR debug/44104
13926         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
13927         if it is NULL.
13928
13929 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
13930
13931         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
13932         t-mingw-w64 or t-mingw-w32 for multilib configuration.
13933         * config/i386/t-mingw-w32: New.
13934         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
13935
13936 2010-05-13  Martin Jambor  <mjambor@suse.cz>
13937
13938         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
13939         gimple-fold.c).
13940         * gimple-fold.c (get_base_binfo_for_type): New function.
13941         (gimple_get_relevant_ref_binfo): Likewise.
13942         (gimple_fold_obj_type_ref_known_binfo): Likewise.
13943         (gimple_fold_obj_type_ref): Likewise.
13944         (fold_gimple_call): Simplify condition for folding virtual calls
13945         and call gimple_fold_obj_type_ref.
13946         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
13947         (gimple_fold_obj_type_ref_known_binfo): Likewise.
13948
13949 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
13950
13951         * config/rs6000/rs6000-protos.h
13952         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
13953         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
13954         (rs6000_debug_mode_dependent_address)
13955         (rs6000_mode_dependent_address_ptr): Likewise.
13956
13957 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
13958
13959         PR debug/43983
13960         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
13961         by SRA.
13962         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
13963         * tree-sra.c (create_access_replacement): Call unshare_expr before
13964         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
13965         * dwarf2out.c: Include tree-flow.h.
13966         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
13967         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
13968         Handle DW_OP_bit_piece.
13969         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
13970         construct_piece_list, adjust_piece_list): New functions.
13971         (add_var_loc_to_decl): Handle SRA optimized variables.
13972         Adjust for var_loc_note to loc field renaming.
13973         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
13974         in VAR_LOCATION note.
13975         (new_loc_descr_op_bit_piece): New function.
13976         (dw_sra_loc_expr): New function.
13977         (dw_loc_list): Use it.  Don't handle the last range after the
13978         loop, handle it inside of the loop.  Adjust for var_loc_note
13979         to loc field renaming.
13980         (add_location_or_const_value_attribute): Only special case
13981         single entry loc lists if loc is NOTE_P.  Adjust for
13982         var_loc_note to loc field renaming.
13983         (dwarf2out_var_location): Don't set newloc->var_loc_note
13984         and newloc->next here.
13985
13986 2010-05-12  Jan Hubicka  <jh@suse.cz>
13987
13988         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
13989         flag.
13990         * cgraph.h (cgraph_only_called_directly_p,
13991         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
13992         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
13993         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
13994         (assemble
13995         * ipa.c (cgraph_remove_unreachable_nodes): Use
13996         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
13997         flags.
13998         * tree-inline.c (copy_bb): Check address_taken flag.
13999         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
14000         externally_visible flag.
14001
14002 2010-05-12  Jason Merrill  <jason@redhat.com>
14003
14004         PR bootstrap/44048
14005         PR target/44099
14006         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
14007         * sdbout.c (plain_type_1): Likewise.
14008         * dwarf2out.c (is_base_type): Likewise.
14009         (gen_type_die_with_usage): Likewise.  Generate
14010         DW_TAG_unspecified_type for any LANG_TYPE.
14011
14012 2010-05-12  Jan Hubicka  <jh@suse.cz>
14013
14014         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
14015         indrect edges too.
14016         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
14017         (cgraph_clone_edge): Update.
14018         (cgraph_node_remove_callees): Remove indirect calls too.
14019         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
14020         (cgraph_create_indirect_edge): Update prototype.
14021         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
14022         is_proper_for_analysis.
14023         (add_new_function, visited_nodes, function_insertion_hook_holder,
14024         get_local_reference_vars_info, mark_address_taken, mark_address,
14025         mark_load, mark_store, check_asm_memory_clobber, check_call,
14026         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
14027         (ipa_init): Do not initialize visited_nodes;
14028         function_insertion_hook_holder.
14029         (analyze_variable): Rewrite.
14030         (analyze_function): Rewrite.
14031         (copy_local_bitmap): Remove.
14032         (duplicate_node_dat): Do not duplicate local info.
14033         (generate_summary): Simplify to only walk cgraph.
14034         (write_node_summary_p, ipa_reference_write_summary,
14035         ipa_reference_read_summary): Remove.
14036         (propagate): Do not remove function insertion;
14037         generate summary.
14038         (pass_ipa_reference): NULLify summary handling fields.
14039         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
14040         (input_edge): Input ecf_flags.
14041         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
14042         (update_indirect_edges_after_inlining): Ignore edges with unknown
14043         param.
14044
14045 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
14046
14047         * implicit-zee.c: New file.
14048         * tree-pass.h (pass_implicit_zee): Declare.
14049         * passes.c (init_optimization_passes): Add zee pass.
14050         * common.opt (fzee): New flag.
14051         * timevar.def (TV_ZEE): Define.
14052         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
14053         and beyond.
14054         * Makefile.in (implicit-zee.o): Add new build file.
14055
14056 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
14057             Nathan Froyd  <froydnj@codesourcery.com>
14058
14059         * c-common.c (sync_resolve_params): Remove write-only variable.
14060
14061 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
14062
14063         * target.h (struct gcc_target): Add mode_dependent_address_p field.
14064         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
14065         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
14066         * targhooks.c (default_mode_dependent_address_p): New function.
14067         * targhooks.h (default_mode_dependent_address_p): Declare function.
14068         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
14069         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
14070         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
14071         target hook. Change return type to bool.
14072         * recog.h (mode_dependent_address_p): Change return type to bool.
14073
14074 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
14075             Nathan Froyd  <froydnj@codesourcery.com>
14076
14077         * tree-mudflap.c (build_function_type_0, build_function_type_1,
14078         build_function_type_2, build_function_type_3): Remove.
14079         (mudflap_init): Use build_function_type_list.
14080
14081 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
14082             Nathan Froyd  <froydnj@codesourcery.com>
14083
14084         * coverage.c (build_fn_info_value): Call build_constructor instead of
14085         build_constructor_from_list.
14086         (build_ctr_info_value): Likewise.
14087         (build_gcov_info): Likewise.
14088
14089 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
14090
14091         * tree.c (build_constructor): Compute TREE_CONSTANT for the
14092         resultant constructor.
14093         (build_constructor_single): Don't set TREE_CONSTANT.
14094         (build_constructor_from_list): Don't compute TREE_CONSTANT.
14095
14096 2010-05-12  Jan Hubicka  <jh@suse.cz>
14097
14098         * cgraph.h (struct varpool_node): Add aux.
14099         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
14100         * varpool.c (varpool_remove_node): Do not remove initializer.
14101         (varpool_reset_queue): Export.
14102         (varpool_finalize_decl): Volatile vars are forced to be output.
14103         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
14104         replaced decl.
14105         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
14106         process_references, varpool_can_remove_if_no_refs): New functions.
14107         (cgraph_remove_unreachable_nodes): Handle variables too.
14108
14109 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
14110
14111         PR target/44088
14112         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
14113
14114 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
14115
14116         PR middle-end/44085
14117         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
14118         change value of ORT_TASK.
14119         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
14120         (omp_notice_threadprivate_variable): New function.
14121         (omp_notice_variable): Call it for threadprivate variables.
14122         If enclosing ctx is a task, print enclosing task rather than
14123         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
14124         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
14125         if task has untied clause.
14126
14127         PR debug/42278
14128         * dwarf2out.c (base_type_die): Don't add name attribute here.
14129         (modified_type_die): Instead of sizetype use
14130         its underlying original type.  If a DW_TAG_base_type doesn't
14131         have name added, add __unknown__.
14132         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
14133         always call force_type_die instead.
14134
14135 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
14136
14137         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
14138         for __stack_chk_guard.
14139
14140 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
14141
14142         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
14143         don't call start_source_file debug hook here...
14144         (finish_options): ... but here, after outputting predefined and
14145         command line defines and undefs.
14146
14147         PR middle-end/44071
14148         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
14149         no fallthru edge.
14150         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
14151         optimizing away empty bb with no successors, move over its
14152         footer chain to fallthru predecessor.
14153         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
14154         (rtl_split_edge): For asm goto call patch_jump_insn even if
14155         splitting fallthru edge.
14156
14157         PR c++/44059
14158         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
14159         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
14160         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
14161         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
14162         on DW.ref.* decls.
14163
14164         PR c++/44062
14165         * c-parser.c (c_parser_expression): Mark LHS of a comma
14166         expression as read if it is a decl, handled component or
14167         COMPOUND_EXPR with that on the RHS.
14168         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
14169         if it is a decl or handled component.
14170
14171 2010-05-11  Jan Hubicka  <jh@suse.cz>
14172
14173         * lto-symtab.c (lto_symtab_free): New function.
14174         * lto-streamer.h (lto_symtab_free): Declare.
14175
14176 2010-05-11  Jan Hubicka  <jh@suse.cz>
14177
14178         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
14179         that if function is needed it is reachable.
14180         (lto_output_node): See if it the function is reachable or referenced.
14181         (output_cgraph): Update call of lto_output_node.
14182         * lto-streamer.h (reachable_from_other_partition_p): Declare.
14183
14184 2010-05-11  Jan Hubicka  <jh@suse.cz>
14185
14186         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
14187         Mark as used.
14188
14189 2010-05-11  Jan Hubicka  <jh@suse.cz>
14190
14191         PR tree-optimize/44063
14192         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
14193         queue.
14194         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
14195         limits.
14196         (estimate_function_body_sizes): Compute sizes even when disregarding.
14197
14198 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
14199
14200         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
14201
14202 2010-05-11  Jan Hubicka  <jh@suse.cz>
14203
14204         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
14205         into every boundary.
14206
14207 2010-05-11  Jan Hubicka  <jh@suse.cz>
14208
14209         * matrix-reorg.c (matrix_reorg): Rebuild edges.
14210
14211 2010-05-11  Jan Hubicka  <jh@suse.cz>
14212
14213         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
14214         lto_streamer_cache_delete): Put nodes into heap.
14215         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
14216         heap.
14217
14218 2010-05-11  Jan Hubicka  <jh@suse.cz>
14219
14220         * cgraphbuild.c (cgraph_rebuild_references): New.
14221         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
14222         out extern inlines.
14223         * cgraph.h (cgraph_rebuild_references): Declare.
14224         * tree-inline.c (tree_function_versioning): Use it.
14225         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
14226
14227 2010-05-11  Jan Hubicka  <jh@suse.cz>
14228
14229         * cgraph.c: Include ipa-utils.h
14230         (cgraph_create_virtual_clone): Update references.
14231         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
14232
14233 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
14234
14235         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
14236         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
14237         cache size.
14238
14239 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
14240
14241         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
14242
14243 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
14244
14245         * gcc.c (execute): For -### don't quote arguments that
14246         contain just alphanumerics and _/-. characters.
14247         * doc/invoke.texi: Document that change for -###.
14248
14249         PR debug/44023
14250         * df-problems.c (struct dead_debug): Add to_rescan field.
14251         (dead_debug_init): Clear to_rescan field.
14252         (dead_debug_finish): Rescan all debug insns in to_rescan
14253         bitmap and free the bitmap.
14254         (dead_debug_insert_before): Instead of rescanning debug insns
14255         immediately queue their rescanning until dead_debug_finish.
14256         (df_note_bb_compute): After dead_debug_add do continue instead
14257         of break.
14258
14259 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
14260
14261         PR debug/44028
14262         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
14263         clear also INSN_REG_USE_LIST.
14264
14265 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14266
14267         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
14268
14269 2010-05-10  Jan Hubicka  <jh@suse.cz>
14270
14271         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
14272         commited change.
14273
14274 2010-05-10  Jan Hubicka  <jh@suse.cz>
14275
14276         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
14277         Allocate encoders.
14278         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
14279         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
14280         (lto_streamer_cache_create): Init alloc pool.
14281         (lto_streamer_cache_delete): Free alloc pool.
14282         * lto-streamer.h: Include alloc pool.
14283         (lto_streamer_cache_d): Use alloc pool.
14284         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
14285
14286 2010-05-10  Jan Hubicka  <jh@suse.cz>
14287
14288         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
14289         * cgraphbuild.c: Include except.h
14290         (record_type_list, record_eh_tables): New function.
14291         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
14292
14293 2010-05-10  Jan Hubicka  <jh@suse.cz>
14294
14295         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
14296         __frame_dummy_init_array_entry, force_to_data): Attribute as used
14297         rather than unused.
14298
14299 2010-05-10  Michael Matz  <matz@suse.de>
14300
14301         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
14302         (can_reassociate_p): Use FLOAT_TYPE_P.
14303         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
14304         (vect_force_simple_reduction): ... this.
14305         * tree-parloops.c (gather_scalar_reductions): Use
14306         vect_force_simple_reduction.
14307         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
14308         vect_is_simple_reduction, add modify argument, if true rewrite
14309         "a-b" into "a+(-b)".
14310         (vect_is_simple_reduction, vect_force_simple_reduction): New
14311         functions.
14312         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
14313
14314 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
14315             Vladimir Makarov  <vmakarov@redhat.com>
14316
14317         PR rtl-optimization/44012
14318         * ira-build.c (remove_unnecessary_allocnos): Nullify
14319         regno_allocno_map of the removed allocno.
14320
14321 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14322
14323         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
14324         to /dev/null.
14325         * configure: Regenerate.
14326
14327 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14328
14329         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
14330         unused.
14331         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
14332         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
14333         support in Sun ld.
14334         * configure: Regenerate.
14335
14336 2010-05-10  Richard Guenther  <rguenther@suse.de>
14337
14338         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
14339         marked if the entry identifier is marked.
14340
14341 2010-05-10  Richard Guenther  <rguenther@suse.de>
14342
14343         * c-common.c (struct c_common_attributes): Add fnspec attribute.
14344         (handle_fnspec_attribute): New function.
14345         * gimple.h (gimple_call_return_flags): Declare.
14346         (gimple_call_arg_flags): Likewise.
14347         * gimple.c (gimple_call_arg_flags): New function.
14348         (gimple_call_return_flags): Likewise.
14349         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
14350         New argument flags.
14351         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
14352         return value flags.
14353         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
14354         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
14355         main work to ...
14356         (make_heapvar_for): ... this new function.
14357         (handle_rhs_call): Handle fnspec attribute argument specifiers.
14358         (handle_lhs_call): Likewise.
14359         (find_func_aliases): Adjust.
14360
14361 2010-05-10  Richard Guenther  <rguenther@suse.de>
14362
14363         PR tree-optimization/44050
14364         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
14365
14366 2010-05-10  Wei Guozhi  <carrot@google.com>
14367
14368         PR target/42879
14369         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
14370
14371 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
14372
14373         PR c/10676
14374         * c-typeck.c (lookup_field): Take a type directly.  Update
14375         recursive calls.
14376         (build_component_ref): Update call to lookup_field.
14377         (set_init_label): Use lookup_field to find initialized field.
14378         Handle returned list of fields like a sequence of designators.
14379
14380 2010-05-09  Richard Guenther  <rguenther@suse.de>
14381
14382         PR middle-end/44024
14383         * fold-const.c (tree_single_nonzero_warnv_p): Properly
14384         handle &FUNCTION_DECL.
14385
14386 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
14387
14388         PR c/4784
14389         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
14390         structures and unions recursively.
14391         (detect_field_duplicates): Move duplicate detection with a hash to
14392         detect_field_duplicates_hash.  Always use a hash if anonymous
14393         structures or unions are present.
14394         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
14395         give errors.
14396
14397 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
14398
14399         PR target/44046
14400         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
14401         detect Atom, Core 2 and Core i7.
14402
14403 2010-05-09  Richard Guenther  <rguenther@suse.de>
14404
14405         * gcc.c (store_arg): Handle temporary file deletion for
14406         joined arguments.
14407
14408 2010-05-09  Richard Guenther  <rguenther@suse.de>
14409
14410         PR middle-end/44043
14411         * ipa-inline.c (estimate_function_body_sizes): Return after
14412         disregarding inline limits.
14413
14414 2010-05-09  Richard Guenther  <rguenther@suse.de>
14415
14416         * gcc.c (store_arg): Revert last change.
14417
14418 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
14419
14420         PR middle-end/28685
14421         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
14422         (optimize_ops_list): Call it.
14423
14424 2010-05-08  Richard Guenther  <rguenther@suse.de>
14425
14426         PR tree-optimization/44030
14427         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
14428         NECESSARY flag if we propagate from a inserted expression.
14429
14430 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
14431
14432         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
14433         domain types as equal if they are both PLACEHOLDER_EXPRs.
14434
14435 2010-05-08  Richard Guenther  <rguenther@suse.de>
14436
14437         * lto-wrapper.c (run_gcc): Remove linker output from
14438         command line for LTRANS invocation.
14439
14440 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
14441
14442         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
14443         lto-macho as lto_binary_reader.
14444         * target.h (struct gcc_target): New hooks lto_start and lto_end.
14445         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
14446         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
14447         in lto_start and lto_end calls.
14448         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
14449         magic numbers.
14450         (scan_prog_file): Update is_elf_or_coff call.
14451         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
14452
14453         * collect2.c (main): Fix enum comparison.
14454
14455         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
14456         Add prototypes.
14457         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
14458         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
14459         and TARGET_ASM_LTO_END.
14460         * darwin.c: Include obstack.h and lto-streamer.h.
14461         (lto_section_names_offset, lto_section_names_obstack,
14462         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
14463         global variables.
14464         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
14465         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
14466         to a temporary file.
14467         (darwin_asm_lto_end): New function.  Restore asm_out_file.
14468         (darwin_asm_named_section): For LTO sections, replace the name with
14469         the offset of the section name in a string table, and build this
14470         table.
14471         (darwin_file_start): Initialize global vars for LTO support.
14472         (darwin_file_end): If output to asm_out_file was redirected, append it
14473         to the proper asm_out_file here.  Add the section names section.
14474
14475 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
14476
14477         * c-pragma.c (pending_weak_d, pending_weak): New.
14478         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
14479         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
14480         handle_pragma_weak): Update the uses of pending_weaks.
14481
14482 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14483
14484         PR documentation/44016
14485         * doc/standards.texi (Standards): Link to unversioned
14486         cxx0x_status.html page.
14487
14488 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
14489
14490         PR target/43708
14491         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
14492         in addition to TREE_USED, to avoid "set but unused" warnings.
14493
14494 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
14495
14496         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
14497         (is_loop_prefetching_profitable): Do not insert prefetches
14498         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
14499         times the prefetch ahead distance.
14500
14501 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
14502
14503         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
14504         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
14505         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
14506         the unroll_factor.
14507
14508 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
14509
14510         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
14511         a diagnostic info when the insn-to-mem ratio is too small.
14512
14513 2010-05-07  Richard Guenther <rguenther@suse.de>
14514
14515         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
14516         the linker plugin.
14517         (store_arg): Queue temp_filename for deletion instead of
14518         the whole argument.
14519
14520 2010-05-07  Richard Guenther  <rguenther@suse.de>
14521
14522         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
14523         (run_gcc): Handle LTRANS phase invocation.
14524         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
14525
14526 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
14527
14528         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
14529         this is also meaningful on PARM_DECLs and RESULT_DECLs.
14530
14531 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14532
14533         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
14534
14535 2010-05-07  Richard Guenther  <rguenther@suse.de>
14536
14537         PR tree-optimization/44020
14538         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
14539         code when PRE is not yet initialized.
14540
14541 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14542
14543         * config/mips/dbxmdebug.h: Remove.
14544         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
14545
14546 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
14547
14548         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
14549         with null pointer and also warn about ordered comparison of zero with
14550         pointer if -Wextra.
14551
14552 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14553
14554         * graphite-blocking.c
14555         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
14556         * graphite-clast-to-gimple.c
14557         (clast_to_gcc_expression): Same.
14558         (precision_for_value): Same.
14559         (precision_for_interval): Same.
14560         (gcc_type_for_interval): Same.
14561         (graphite_create_new_guard): Same.
14562         (compute_bounds_for_level): Same.
14563         (graphite_create_new_loop_guard): Same.
14564         * graphite-interchange.c
14565         (build_linearized_memory_access): Same.
14566         (pdr_stride_in_loop): Same.
14567         (memory_strides_in_loop_1): Same.
14568         (memory_strides_in_loop): Same.
14569         (extend_scattering): Same.
14570         (psct_scattering_dim_for_loop_depth): Same.
14571         (pbb_number_of_iterations): Same.
14572         * graphite-poly.h
14573         (debug_iteration_domains): Same.
14574         * graphite-ppl.c
14575         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14576         (ppl_set_inhomogeneous_gmp): Same.
14577         (ppl_strip_loop): Same.
14578         (ppl_lexico_compare_linear_expressions): Same.
14579         (ppl_read_polyhedron_matrix): Same.
14580         (ppl_max_for_le_pointset): Same.
14581         * graphite-ppl.h
14582         (ppl_read_polyhedron_matrix): Same.
14583         (tree_int_to_gmp): Same.
14584         (gmp_cst_to_tree): Same.
14585         (ppl_set_inhomogeneous): Same.
14586         (ppl_set_inhomogeneous_tree): Same.
14587         (ppl_set_coef): Same.
14588         (ppl_set_coef_tree): Same.
14589         * graphite-sese-to-poly.c
14590         (build_pbb_scattering_polyhedrons): Same.
14591         (build_scop_scattering): Same.
14592         (scan_tree_for_params_right_scev): Same.
14593         (scan_tree_for_params): Same.
14594         (find_params_in_bb): Same.
14595         (find_scop_parameters): Same.
14596         (add_upper_bounds_from_estimated_nit): Same.
14597         (build_loop_iteration_domains): Same.
14598         (add_condition_to_domain): Same.
14599         (pdr_add_memory_accesses): Same.
14600
14601 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14602
14603         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
14604         CLooG's value_* macros to their respective mpz_* counterparts.
14605         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
14606         (graphite_create_new_loop_guard): Same.
14607         * graphite-interchange.c (build_linearized_memory_access): Same.
14608         (pdr_stride_in_loop): Same.
14609         (memory_strides_in_loop_1): Same.
14610         (1st_interchange_profitable_p): Same.
14611         * graphite-poly.c (extend_scattering): Same.
14612         (psct_scattering_dim_for_loop_depth): Same.
14613         (pbb_number_of_iterations): Same.
14614         (pbb_number_of_iterations_at_time): Same.
14615         * graphite-poly.h (new_1st_loop): Same.
14616         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
14617         (oppose_constraint): Same.
14618         (insert_constraint_into_matrix): Same.
14619         (ppl_set_inhomogeneous_gmp): Same.
14620         (ppl_set_coef_gmp): Same.
14621         (ppl_strip_loop): Same.
14622         (ppl_lexico_compare_linear_expressions): Same.
14623         (ppl_max_for_le_pointset): Same.
14624         (ppl_min_for_le_pointset): Same.
14625         (ppl_build_realtion): Same.
14626         * graphite-ppl.h (gmp_cst_to_tree): Same.
14627         (ppl_set_inhomogeneous): Same.
14628         (ppl_set_inhomogeneous_tree): Same.
14629         (ppl_set_coef): Same.
14630         (ppl_set_coef_tree): Same.
14631         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
14632         (build_scop_scattering): Same.
14633         (add_value_to_dim): Same.
14634         (scan_tree_for_params_right_scev): Same.
14635         (scan_tree_for_params_int): Same.
14636         (scan_tree_for_params): Same.
14637         (find_params_in_bb): Same.
14638         (find_scop_parameters): Same.
14639         (add_upper_bounds_from_estimated_nit): Same.
14640         (build_loop_iteration_domains): Same.
14641         (create_linear_expr_from_tree): Same.
14642         (add_condition_to_domain): Same.
14643         (pdr_add_memory_accesses): Same.
14644
14645 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
14646             Jason Merrill  <jason@redhat.com>
14647
14648         * c-common.c (c_common_reswords): Add nullptr.
14649         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
14650         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
14651         (gen_type_die_with_usage): Likewise.
14652         * dbxout.c (dbxout_type): Likewise.
14653         * sdbout.c (plain_type_1): Likewise.
14654
14655 2010-05-06  Jason Merrill  <jason@redhat.com>
14656
14657         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
14658         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
14659         ret appropriately.
14660         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
14661
14662         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
14663         stripping WITH_SIZE_EXPR.
14664         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
14665         change.
14666
14667 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14668
14669         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
14670         list of obsolete configurations.
14671         Disabled check for obsolete configurations.
14672         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
14673         Removed support for previous versions.
14674         * config/mips/iris.h: Removed.
14675         * config/mips/iris5.h: Removed.
14676         * config/mips/iris6.h: Merged old iris.h contents.
14677         (TARGET_IRIX): Removed.
14678         (DRIVER_SELF_SPECS): Removed mabi=32.
14679         (IDENT_ASM_OP): Removed undef.
14680         (STARTFILE_SPEC): Removed mabi=32.
14681         (ENDFILE_SPEC): Likewise.
14682         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
14683         (MACHINE_TYPE): Update for IRIX 6.5.
14684         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
14685         TARGET_IRIX by TARGET_IRIX6.
14686         (mips_file_start): Likewise.
14687         (mips_output_external): Remove IRIX 5/6 O32 support.
14688         (mips_output_function_prologue): Likewise.
14689         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
14690         TARGET_IRIX6.
14691         (TARGET_CPU_CPP_BUILTINS): Likewise.
14692         (TARGET_IRIX): Removed.
14693         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
14694         (MULTILIB_DIRNAMES): Removed 32.
14695         (MULTILIB_OSDIRNAMES): Removed ../lib.
14696         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
14697         (Specific, mips-sgi-irix5): Document removal.
14698         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
14699         Remove references to older IRIX 6 releases and the O32 ABI.
14700
14701 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
14702
14703         PR bootstrap/43994
14704         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
14705         instead of DF_REF_REAL_REG.
14706
14707 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
14708
14709         PR target/43888
14710         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
14711         handling to still return true for x64 targets.
14712
14713 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
14714
14715         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
14716
14717 2010-05-06  Jan Hubicka  <jh@suse.cz>
14718
14719         PR tree-optimization/43791
14720         * ipa-inline.c (update_caller_keys): Remove bogus
14721         disregard_inline_limits check.
14722
14723 2010-05-06  Michael Matz  <matz@suse.de>
14724
14725         PR tree-optimization/43984
14726         * tree-ssa-pre.c (inserted_phi_names): Remove.
14727         (inserted_exprs): Change to bitmap.
14728         (create_expression_by_pieces): Set bits, don't append to vector.
14729         (insert_into_preds_of_block): Don't handle inserted_phi_names.
14730         (eliminate): Don't look at inserted_phi_names, remove deleted
14731         insns from inserted_exprs.
14732         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
14733         (init_pre, fini_pre): Allocate and free bitmaps.
14734         (execute_pre): Insert insns on edges before elimination.
14735
14736 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
14737
14738         * tree.c (initializer_zerop): Handle STRING_CST.
14739
14740 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14741
14742         PR 40989
14743         * doc/invoke.texi (Wimplicit): Document as C only.
14744         * opts.c (common_handle_option): Add argument kind.
14745         (handle_option): Rename as read_cmdline_option. Factor out code to...
14746         (handle_option): ... here. New.
14747         (handle_options): Rename as read_cmdline_options.
14748         (decode_options): Update call.
14749         (set_option): Use option index instead of option pointer. Classify
14750         diagnostics correctly.
14751         (enable_warning_as_error): Call handle_option.
14752         * opts.h (set_option): Update declaration.
14753         (handle_option): Declare.
14754         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
14755         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
14756         * c-opts.c (set_Wimplicit): Delete.
14757         (c_family_lang_mask): New static constant.
14758         (c_common_handle_option): Add argument kind. Use handle_option
14759         instead of set_Wimplicit.
14760         (c_common_post_options): warn_implicit and warn_implicit_int
14761         are disabled by default.
14762         * c-common.c (warn_implicit): Do not define here.
14763         * c-common.h (warn_implicit): Do not declare here.
14764         (c_common_handle_option): Update declaration.
14765         * lto-opts.c (lto_reissue_options): Update call to set_option.
14766
14767 2010-05-06  Richard Guenther  <rguenther@suse.de>
14768
14769         PR tree-optimization/43571
14770         * domwalk.c (walk_dominator_tree): Walk the dominator
14771         sons in more optimal order.
14772
14773 2010-05-06  Richard Guenther  <rguenther@suse.de>
14774
14775         PR tree-optimization/43934
14776         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
14777         (stmt_cost): Likewise.
14778         (extract_true_false_args_from_phi): New helper.
14779         (determine_max_movement): For PHI nodes verify we can hoist them
14780         and compute their cost.
14781         (determine_invariantness_stmt): Handle PHI nodes.
14782         (move_computations_stmt): Likewise.  Hoist PHI nodes in
14783         if-converted form using COND_EXPRs.
14784         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
14785         (tree_ssa_lim): Likewise.
14786         * tree-flow.h (tree_ssa_lim): Adjust prototype.
14787         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
14788
14789 2010-05-06  Richard Guenther  <rguenther@suse.de>
14790
14791         PR tree-optimization/43987
14792         * tree-ssa-structalias.c (could_have_pointers): For possibly
14793         address-taken variables force pointers to be recorded.
14794         (create_variable_info_for_1): Likewise.
14795         (push_fields_onto_fieldstack): Pass in wheter all fields
14796         must have pointers.
14797         (find_func_aliases): Query types instead of vars whether
14798         they contain pointers where appropriate.
14799
14800 2010-05-06  Jan Hubicka  <jh@suse.cz>
14801
14802         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
14803         (record_reference, mark_address, mark_load, mark_store): Record
14804         references.
14805         (record_references_in_initializer): Update call of record_references.
14806         (rebuild_cgraph_edges): Remove all references before rebuiding.
14807         * cgraph.c (cgraph_create_node): Clear ref list.
14808         (cgraph_remove_node): Remove references.
14809         (dump_cgraph_node): Dump references.
14810         (cgraph_clone_node): Clone references.
14811         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
14812         (struct cgraph_node, varpool_node): Add ref_lst.
14813         * ipa-ref.c: New file.
14814         * ipa-ref.h: New file.
14815         * ipa-ref-inline.h: New file.
14816         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
14817         (referenced_from_other_partition_p): New function.
14818         (lto_output_varpool_node): Take set arugment; call
14819         referenced_from_other_partition.
14820         (lto_output_ref): New.
14821         (add_references): New.
14822         (output_refs): New.
14823         (output_cgraph): Compute boundary based on references; output refs.
14824         (output_varpool): Accept cgraph_node_set argument.
14825         (input_ref): New.
14826         (input_refs): New.
14827         (input_cgraph): Call input_refs.
14828         * lto-section-in.c (lto_section_name): Add refs.
14829         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
14830         (ipa-ref.o): New file.
14831         * varpool.c (varpool_node): Clear ipa ref list.
14832         (varpool_remove_node): Remove references.
14833         (dump_varpool_node): Dump references.
14834         (varpool_assemble_decl): Only compile finalized ones.
14835         (varpool_extra_name_alias): Initialize ref list.
14836         * lto-streamer.c (lto-get_section_name): Add .refs section.
14837         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
14838         (referenced_from_other_partition_p): Declared.
14839
14840 2010-05-06  Ira Rosen  <irar@il.ibm.com>
14841
14842         PR tree-optimization/43901
14843         * tree-vect-stmts.c (vectorizable_call): Assert that vector
14844         type is not NULL if it's transformation phase, and return
14845         FALSE if it's analysis.
14846         (vectorizable_conversion, vectorizable_operation,
14847         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
14848
14849 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
14850
14851         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
14852         Delete.
14853         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
14854         New define.
14855         * config/mips/mips-protos.h
14856         (mips_small_register_classes_for_mode_p): Delete prototype.
14857
14858 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
14859
14860         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
14861         * config/arm/arm.c (multiple_operation_profitable_p,
14862         compute_offset_order): New static functions.
14863         (load_multiple_sequence, store_multiple_sequence): Use them.
14864         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
14865         memory offsets, not register numbers.
14866         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
14867
14868 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
14869
14870         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
14871         (get_pending_sizes, put_pending_size, put_pending_sizes):
14872         Update the uses of pending_sizes.
14873         * c-decl.c (store_parm_decls): Likewise.
14874         * c-tree.h (struct c_arg_info): Likewise.
14875         * tree.h: Update the prototype for get_pending_sizes and
14876         put_pending_sizes.
14877
14878 2010-05-05  Jason Merrill  <jason@redhat.com>
14879
14880         PR debug/43370
14881         * c-common.c (handle_aligned_attribute): Respect
14882         ATTR_FLAG_TYPE_IN_PLACE.
14883
14884         PR testsuite/43758
14885         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
14886         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
14887         (TARGET_INITIALIZER): Use it.
14888         * c-common.c (attribute_takes_identifier_p): Call it.
14889         * c-common.h: Update prototype.
14890         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
14891         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
14892
14893 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
14894
14895         PR debug/43950
14896         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
14897         DW_ID_down_case for Fortran compilation units.
14898
14899 2010-05-05  Jan Hubicka  <jh@suse.cz>
14900
14901         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
14902         handle aliases.
14903
14904 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
14905
14906         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
14907         a variable-sized RESULT_DECL.
14908
14909 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
14910
14911         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
14912
14913 2010-05-05  Jason Merrill  <jason@redhat.com>
14914
14915         PR c++/43787
14916         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
14917         returns GS_OK.
14918         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
14919
14920 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
14921             Jakub Jelinek  <jakub@redhat.com>
14922
14923         PR debug/43478
14924         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
14925         (dead_debug_init, dead_debug_finish): New functions.
14926         (dead_debug_add, dead_debug_insert_before): Likewise.
14927         (df_note_bb_compute): Initialize a dead_debug object, add dead
14928         debug uses to it, insert debug bind insns before death insns,
14929         reset debug insns that refer to pending uses at the end.
14930         * rtl.h (make_debug_expr_from_rtl): New prototype.
14931         * varasm.c (make_debug_expr_from_rtl): New function.
14932
14933 2010-05-05  Jan Hubicka  <jh@suse.cz>
14934
14935         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
14936         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
14937         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
14938         lto_varpool_encoder_deref, lto_varpool_encoder_size,
14939         lto_varpool_encoder_encode_initializer_p,
14940         lto_set_varpool_encoder_encode_initializer): New functions.
14941         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
14942         call output_varpool.
14943         (input_varpool_node): Do not always set analyzed.
14944         (input_cgraph_1): Return vector of cgraph nodes.
14945         (input_varpool_1): Return vector of varpools.
14946         (input_cgraph): Free the vectors.
14947         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
14948         output only initializers needed.
14949         (lto_output): Only call output_cgraph.
14950         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
14951         * lto-section-out.c (lto_new_out_decl_state): Initialize
14952         state->varpool_node_encoder.
14953         * lto-streamer.h (lto_varpool_encoder_d): New.
14954         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
14955         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
14956         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
14957         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
14958         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
14959         Declare.
14960         (output_varpool, input_varpool): Remove declarations.
14961
14962 2010-05-05  Jan Hubicka  <jh@suse.cz>
14963
14964         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
14965         with body can prevail.
14966
14967 2010-05-05  Jan Hubicka  <jh@suse.cz>
14968
14969         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
14970         size.
14971
14972 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
14973
14974         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
14975
14976         * gengtype.h (erro_at_line): Constify pos argument.
14977
14978         * gengtype.c: Include hashtab.h.
14979         (enum gc_used): Document GC_MAYBE_POINTED_TO.
14980         (error_at_line): Constify pos argument.
14981         (do_typedef): Initialize p->opt field.
14982         (get_file_gtfilename): Fix comment typo.
14983         (struct walk_type_data): Constify line field.
14984         (get_output_file_for_structure): New function.
14985         (write_local_func_for_structure): Constify orig_s argument.
14986         Use get_output_file_for_structure.
14987         (write_func_for_structure): Use get_output_file_for_structure.
14988         (INDENT): New define.
14989         (dump_pair, dump_type, dump_type_list, dump_typekind)
14990         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
14991         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
14992         functions.
14993         (seen_types): New variable.
14994         (main): New variable do_dump.  Process "-d" command line option.
14995         Call dump_everything if dump requested.
14996
14997 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
14998
14999         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
15000         in a temporary instead of invoking the macro multiple times.
15001         (track_expr_p): Likewise.
15002
15003 2010-05-04  Neil Vachharajani <nvachhar@google.com>
15004
15005         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
15006         per new semantics.
15007         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
15008         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
15009         conditions for printing notes.
15010         * common.opt (-Wcoverage-mismatch): Allow negative, default to
15011         true, update documentation.
15012         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
15013
15014 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
15015
15016         PR c/43981
15017         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
15018         on dimen.
15019
15020 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
15021
15022         PR target/43799
15023         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
15024         (*sse_prologue_save_insn1): Likewise.
15025         (SSE prologue save splitter): Likewise.
15026
15027 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
15028
15029         * tree.c (free_lang_data_in_one_sizepos): New inline function.
15030         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
15031         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
15032         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
15033         all decls.  Call it on DECL_FIELD_OFFSET of fields.
15034         (find_decls_types_r): Follow DECL_VALUE_EXPR.
15035         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
15036
15037 2010-05-04  Martin Jambor  <mjambor@suse.cz>
15038
15039         * tree-sra.c (build_access_from_expr_1): The first parameter type
15040         changed to simple tree.
15041         (build_access_from_expr): Likewise, gsi parameter was eliminated.
15042         (scan_assign_result): Renamed to assignment_mod_result, enum elements
15043         renamed as well.
15044         (build_accesses_from_assign): Removed all parameters except for a
15045         simple gimple statement.  Now returns a simple bool.
15046         (scan_function): All non-analysis parts moved to separate functions
15047         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
15048         parameters and updated both callers.
15049         (sra_modify_expr): Removed parameter data.
15050         (sra_modify_function_body): New function.
15051         (perform_intra_sra): Call sra_modify_function_body to modify the
15052         function body.
15053         (replace_removed_params_ssa_names): Parameter data changed into
15054         adjustments vector.
15055         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
15056         changed the parameter dont_convert to convert with the opposite
15057         meaning.
15058         (sra_ipa_modify_assign): Parameter data changed into adjustments
15059         vector, return value changed to bool.
15060         (ipa_sra_modify_function_body): New function.
15061         (sra_ipa_reset_debug_stmts): Updated a comment.
15062         (modify_function): Use ipa_sra_modify_function_body to modify function
15063         body.
15064
15065 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
15066
15067         PR middle-end/43671
15068         * alias.c (true_dependence): Handle the same VALUE in x and mem.
15069         (canon_true_dependence): Likewise.
15070         (write_dependence_p): Likewise.
15071
15072 2010-05-04  Jan Hubicka  <jh@suse.cz>
15073
15074         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
15075         * cgraphbuild.c: Include ipa-utils.h
15076         (record_reference_ctx): New struct.
15077         (record_reference): Simplify to work on initializers; not statements.
15078         (mark_address, mark_load, mark_store): New.
15079         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
15080         walk PHI nodes too.
15081         (record_references_in_initializer): Update use of record_reference.
15082         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
15083         walk PHI nodes too.
15084
15085 2010-05-04  Jan Hubicka  <jh@suse.cz>
15086
15087         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
15088         node will be removed anyway.
15089         (lto_varpool_replace_node): Allow also unanalyzed nodes;
15090         relink aliases of node into prevailing node.
15091         * varpool.c (varpool_remove_node): Remove aliases properly;
15092         when removing node, remove all its aliases too; remove DECL_INITIAL
15093         of removed node; ggc_free the varpool node.
15094
15095 2010-05-04  Richard Guenther  <rguenther@suse.de>
15096
15097         PR tree-optimization/43879
15098         * tree-ssa-structalias.c (alias_get_name): Use
15099         DECL_ASSEMBLER_NAME if available.
15100         (create_function_info_for): Return the varinfo node.
15101         (ipa_pta_execute): Associate same-body aliases and extra names
15102         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
15103
15104 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
15105
15106         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
15107
15108 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
15109
15110         PR bootstrap/43964
15111         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
15112         only if HONOR_REG_ALLOC_ORDER is not defined.
15113
15114 2010-05-04  Richard Guenther  <rguenther@suse.de>
15115
15116         PR tree-optimization/43949
15117         * tree-vrp.c (extract_range_from_binary_expr): Only handle
15118         TRUNC_MOD_EXPR.
15119
15120 2010-04-26  Jason Merrill  <jason@redhat.com>
15121
15122         * c.opt (-fstrict-enums): New.
15123         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
15124
15125 2010-05-03  David Ung <davidu@mips.com>
15126             James E. Wilson  <wilson@codesourcery.com>
15127
15128         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
15129         emit the trap instruction before the divide for TUNE_74K.
15130
15131 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
15132
15133         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
15134         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
15135         based on the above, for new target hook.
15136
15137         * hooks.c (hook_bool_mode_true): New generic hook.
15138         * hooks.h (hook_bool_mode_true): Add prototype.
15139
15140         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
15141         target hook.
15142         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
15143         target hook, set to hook_bool_mode_false.
15144         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
15145         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
15146         with targetm.small_register_classes_for_mode_p.
15147         (find_reusable_reload): Likewise.
15148         (combine_reloads): Likewise.
15149         * reload1.c (reload_as_needed): Likewise.
15150         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
15151         * ifcvt.c (noce_process_if_block, check_cond_move_block,
15152         dead_or_predicable): Likewise.
15153         * regmove.c (optimize_reg_copy_1): Likewise.
15154         * calls.c (prepare_call_address): Likewise.
15155         (precompute_register_parameters): Likewise.
15156
15157         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
15158         hook definition.
15159         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
15160         implementation of the hook that considers all register classes
15161         small except for SH64.
15162         (sh_override_options): Use the new hook.
15163         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
15164         Add prototype.
15165
15166         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
15167         hook definition.
15168         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
15169         implementation of the hook that considers all register classes
15170         small for THUMB1.
15171         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
15172         Add prototype.
15173
15174         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
15175         hook definition.
15176         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
15177         implementation of the hook that considers all register classes
15178         small for MIPS16.
15179         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
15180         Add prototype.
15181
15182         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
15183         hook definition.
15184         * config/m32c/m32c.h: Likewise.
15185         * config/pdp11/pdp11.h: Likewise.
15186         * config/avr/avr.h: Likewise.
15187         * config/xtensa/xtensa.h: Likewise.
15188         * config/m68hc11/m68hc11.h: Likewise.
15189         * config/mn10300/mn10300.h: Likewise.
15190         * config/mcore/mcore.h: Likewise.
15191         * config/h8300/h8300.h: Likewise.
15192         * config/bfin/bfin.h: Likewise.
15193
15194         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
15195         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
15196
15197 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
15198
15199         * double-int.h (tree_to_double_int): Remove macro.
15200         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
15201         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
15202         (tree_to_double_int): New function.
15203         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
15204         Move ...
15205         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
15206
15207 2010-05-03  Richard Guenther  <rguenther@suse.de>
15208
15209         PR tree-optimization/43971
15210         * tree-ssa-structalias.c (get_constraint_for_1): Fix
15211         constraints in the !flag_delete_null_pointer_checks case.
15212
15213 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
15214
15215         PR debug/43972
15216         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
15217         result mode matches original rtl mode.
15218
15219 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
15220
15221         PR target/43888
15222         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
15223
15224 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15225
15226         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
15227         when processing flag options.
15228
15229 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15230
15231         * gcov-iov.c (main): Change format string placeholder
15232         from %#08x to 0x%08x.
15233         * genchecksum.c (dosum): Change format string placeholder
15234         from %#02x to 0x%02x.
15235
15236 2010-05-02  Richard Guenther  <rguenther@suse.de>
15237
15238         PR tree-optimization/43879
15239         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
15240
15241 2010-05-02  Bruno Haible  <bruno@clisp.org>
15242
15243         * doc/extend.texi (Function Attributes): Fix a typo.
15244
15245 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15246
15247         Revert:
15248         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
15249         placeholder from 0x%x to %#x.
15250         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
15251         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
15252         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
15253         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
15254         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
15255         * config/i386/i386.c (ix86_target_string): Ditto.
15256         * config/i386/i386.c (output_pic_addr_const): Ditto.
15257         (print_operand): Ditto.
15258
15259 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15260
15261         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
15262         placeholder from 0x%x to %#x.
15263         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
15264         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
15265         (ASM_OUTPUT_DEBUG_DATA): Ditto.
15266         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
15267         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
15268         * optc-gen.awk: Ditto.
15269         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
15270         (HOST_WIDE_INT_PRINT_HEX): Ditto.
15271         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
15272         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
15273
15274 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
15275
15276         * target.h (struct calls): Add function_value_regno_p field.
15277         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
15278         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
15279         * targhooks.c (default_function_value_regno_p): New function.
15280         * targhooks.h (default_function_value_regno_p): Declare function.
15281         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
15282         * builtins.c. (apply_result_size): (Ditto.).
15283         * combine.c. (likely_spilled_retval_p): (Ditto.).
15284         * mode-switching.c. Include 'target.h'.
15285         (create_pre_exit): Use function_value_regno_p hook.
15286         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
15287         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
15288         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
15289
15290         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
15291         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
15292         (ix86_function_value_regno_p): Declare as static, change argument
15293         type to const unsigned int.
15294         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
15295
15296 2010-05-01  Richard Guenther  <rguenther@suse.de>
15297
15298         PR tree-optimization/43949
15299         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
15300         types.
15301         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
15302
15303 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
15304
15305         * rtl.h (CONST_DOUBLE_P): Define.
15306         (rtx_to_double_int): Declare.
15307         * emit-rtl.c (rtx_to_double_int): New function.
15308         * dwarf2out.c (insert_double): New function.
15309         (loc_descriptor, add_const_value_attribute): Clean up, use
15310         rtx_to_double_int and insert_double functions.
15311
15312 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
15313
15314         * doc/extend.texi (Inline): Add missing return keyword to examples.
15315         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
15316         "command-line".
15317
15318 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
15319
15320         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
15321         the variable part of the offset as well.  Use highest_pow2_factor for
15322         all alignment checks.
15323
15324 2010-04-30  Richard Guenther  <rguenther@suse.de>
15325
15326         PR tree-optimization/43879
15327         * tree-ssa-structalias.c (type_could_have_pointers): Functions
15328         can have pointers.
15329
15330 2010-04-30  Jan Hubicka  <jh@suse.cz>
15331
15332         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
15333         varpool.
15334         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
15335
15336 2010-04-30  Jan Hubicka  <jh@suse.cz>
15337
15338         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
15339         New.
15340         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
15341         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
15342         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
15343         cgraph_node_set_needs_ltrans_p): Remove.
15344
15345 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
15346
15347         * sdbout.c: Include vec.h, do not include varray.h.
15348         (deferred_global_decls, sdbout_global_decl,
15349         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
15350         * toplev.c: Do not include varray.h.
15351         (dump_memory_report): Do not dump VARRAY statistics.
15352         * gengtype.c (open_base_file): Ignore varray.h.
15353         * Makefile.in: Update for abovementioned changes.
15354         Remove all traces of varray.c and varray.h.
15355         * varray.c: Remove file.
15356         * varray.h: Remove file.
15357
15358 2010-04-30  Jan Hubicka  <jh@suse.cz>
15359
15360         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
15361         references.
15362
15363 2010-04-30  Jan Hubicka  <jh@suse.cz>
15364
15365         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
15366         needed.
15367
15368 2010-04-30  Richard Guenther  <rguenther@suse.de>
15369
15370         * tree-ssa-structalias.c (get_constraint_for_1): Generate
15371         constraints for CONSTRUCTOR.
15372
15373 2010-04-30  Richard Guenther  <rguenther@suse.de>
15374
15375         PR lto/43946
15376         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
15377         first after all lowering passes.
15378
15379 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
15380
15381         * toplev.c: Include varray.h for statistics dumping.
15382         * tree.h: Do not declare varray_head_tag.
15383         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
15384         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
15385         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
15386         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
15387         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
15388         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
15389         c-common.c, c-common.h, reg-stack.c, basic-block.h,
15390         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
15391         include varray.h.
15392         * Makefile.in: Update for abovementioned changes.
15393
15394 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
15395
15396         PR debug/43942
15397         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
15398
15399 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
15400
15401         * config/picochip/picochip.c (picochip_legitimize_address): Define.
15402         Use this function to do machine-specific conversion.
15403         (picochip_legitimize_reload_address): Likewise.
15404         (picochip_legitimate_address_p): Check valid base register only if
15405         strict.
15406         (picochip_check_conditional_copy): Check for modw only if opnd is
15407         register.
15408         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
15409         to call the function in c.
15410         * config/picochip/picochip-protos.h
15411         (picochip_legitimize_reload_address): Define.
15412         * config/picochip/picochip.md (supported_compare1): Define.
15413
15414 2010-04-30  Jan Hubicka  <jh@suse.cz>
15415
15416         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
15417         (cgraph_global_info): Remove inlined.
15418         (LTO_cgraph_tag_names): Remove.
15419         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
15420         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
15421         simplify cgraph tags and document.
15422         (lto_output_node): Use only LTO_cgraph_unavail_node and
15423         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
15424         for_functions_valid, global info, process and output flags.
15425         (input_overwrite_node): Initialize estimated stack size and
15426         estimated growth.  Do not read flags we no longer store.
15427         (input_node): Likewise do not read info no longer stored.
15428         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
15429         flag.
15430
15431 2010-04-30  Richard Guenther  <rguenther@suse.de>
15432
15433         PR tree-optimization/43879
15434         * tree-ssa-structalias.c (get_constraint_for_1): Properly
15435         handle non-zero initializers.
15436
15437 2010-04-30  Richard Guenther  <rguenther@suse.de>
15438
15439         * builtins.c (fold_builtin_1): Delete free (0).
15440
15441 2010-04-29  Jan Hubicka  <jh@suse.cz>
15442
15443         * gengtype.c (open_base_files): Add lto-streamer.h
15444         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
15445         (pass_ipa_cp): GGC collect.
15446         * toplev. (compile_file): Do not output symbols.
15447         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
15448         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
15449         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
15450         * lto-section-in.c: Include ggc.h
15451         (lto_new_in_decl_state): Alloc in GGC.
15452         (lto_delete_in_decl_state): Likewise.
15453         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
15454         Collect.
15455
15456 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
15457
15458         PR target/42895
15459         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
15460         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
15461         (HONOR_REG_ALLOC_ORDER): Describe new macro.
15462         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
15463         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
15464         account only if HONOR_REG_ALLOC_ORDER is not defined.
15465         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
15466         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
15467
15468 2010-04-29  Jon Grant  <04@jguk.org>
15469
15470         * collect2.c (vflag): Change type from int to bool.
15471         (debug): Likewise.
15472         (helpflag): New global bool.
15473         (main): Set vflag and debug with boolean, not integer truth values.
15474         Accept new "--help" option and output usage text if found.
15475         * collect2.h (vflag): Update prototype.
15476         (debug): Likewise.
15477
15478 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
15479
15480         PR bootstrap/43936
15481         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
15482
15483 2010-04-29  Richard Guenther  <rguenther@suse.de>
15484
15485         PR bootstrap/43935
15486         * plugin.h (invoke_plugin_callbacks): Annotate arguments
15487         with ATTRIBUTE_UNUSED.
15488
15489 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
15490
15491         PR target/43921
15492         * config/i386/i386.c (get_some_local_dynamic_name): Replace
15493         INSN_P with NONDEBUG_INSN_P.
15494         (distance_non_agu_define): Likewise.
15495         (distance_agu_use): Likewise.
15496
15497 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
15498
15499         From Dominique d'Humieres <dominiq@lps.ens.fr>
15500         PR bootstrap/43858
15501         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
15502         test_set.
15503
15504 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
15505
15506         * plugin.h (invoke_plugin_callbacks): New inline function.
15507         * plugin.c (flag_plugin_added): New global flag.
15508         (add_new_plugin): Initialize above flag.
15509         (invoke_plugin_callbacks): Rename to ...
15510         (invoke_plugin_callbacks_full): ... this.
15511
15512 2010-04-28  Jan Hubicka  <jh@suse.cz>
15513
15514         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
15515         (lto_varpool_replace_node): New.
15516         (lto_symtab_resolve_symbols): Resolve varpool nodes.
15517         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
15518         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
15519         * cgraph.h (varpool_node_ptr): New type.
15520         (varpool_node_ptr): New vector.
15521         (varpool_node_set_def): New structure.
15522         (varpool_node_set): New type.
15523         (varpool_node_set): New vector.
15524         (varpool_node_set_element_def): New structure.
15525         (varpool_node_set_element, const_varpool_node_set_element): New types.
15526         (varpool_node_set_iterator): New type.
15527         (varpool_node): Add prev pointers, add used_from_other_partition,
15528         in_other_partition.
15529         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
15530         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
15531         varpool_get_node, varpool_remove_node): Declare.
15532         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
15533         varpool_node_set_size): New inlines.
15534         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
15535         * tree-pass.h (varpool_node_set_def): Forward declare.
15536         (ipa_opt_pass_d): Summary writting takes vnode sets too.
15537         (ipa_write_optimization_summaries): Update prototype.
15538         * ipa-cp.c (ipcp_write_summary): Update.
15539         * ipa-reference.c (ipa_reference_write_summary): Update.
15540         * lto-cgraph.c (lto_output_varpool_node): New static function.
15541         (output_varpool): New function.
15542         (input_varpool_node): New static function.
15543         (input_varpool_1): New function.
15544         (input_cgraph): Input varpool.
15545         * ipa-pure-const.c (pure_const_write_summary): Update.
15546         * lto-streamer-out.c (lto_output): Update, output varpool too.
15547         (write_global_stream): Kill WPA hack.
15548         (produce_asm_for_decls): Update.
15549         (output_alias_pair_p): Handle variables.
15550         (output_unreferenced_globals): Output only needed partition of varpool.
15551         * ipa-inline.c (inline_write_summary): Update.
15552         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
15553         cgraph.
15554         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
15555         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
15556         varpool_node_set_new, varpool_node_set_add,
15557         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
15558         debug_varpool_node_set): New functions.
15559         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
15560         (execute_one_pass): Process new decls too.
15561         (ipa_write_summaries_2): Pass around vsets.
15562         (ipa_write_summaries_1): Likewise.
15563         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
15564         to add.
15565         (ipa_write_optimization_summaries_1): Pass around vsets.
15566         (ipa_write_optimization_summaries): Likewise.
15567         * varpool.c (varpool_get_node): New.
15568         (varpool_node): Update doubly linked lists.
15569         (varpool_remove_node): New.
15570         (dump_varpool_node): More dumping.
15571         (varpool_enqueue_needed_node): Update doubly linked lists.
15572         (decide_is_variable_needed): Kill ltrans hack.
15573         (varpool_finalize_decl): Kill lto hack.
15574         (varpool_assemble_decl): Skip decls in other partitions.
15575         (varpool_assemble_pending_decls): Update doubly linkes lists.
15576         (varpool_empty_needed_queue): Likewise.
15577         (varpool_extra_name_alias): Likewise.
15578         * lto-streamer.c (lto_get_section_name): Add vars section.
15579         * lto-streamer.h (lto_section_type): Update.
15580         (output_varpool, input_varpool): Declare.
15581
15582 2010-04-28  Mike Stump  <mikestump@comcast.net>
15583
15584         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
15585
15586 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
15587
15588         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
15589         record or union type with RECORD_OR_UNION_TYPE_P predicate.
15590         (lto_input_ts_type_tree_pointers): Likewise.
15591         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
15592         (lto_output_ts_type_tree_pointers): Likewise.
15593
15594 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
15595
15596         Uniquization of constants at the Tree level
15597         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
15598         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
15599         bit to the end.
15600         (tree_output_constant_def): Declare.
15601         * gimplify.c (gimplify_init_constructor): When using block copy, first
15602         uniquize the constant constructor on the RHS.
15603         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
15604         DECL_IN_CONSTANT_POOL flag.
15605         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
15606         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
15607         constant pool.
15608         (assemble_variable): Deal with symbols belonging to the tree constant
15609         pool.
15610         (get_constant_section): Add ALIGN parameter and simplify.
15611         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
15612         (assemble_constant_contents): Use the expression of the VAR_DECL.
15613         (output_constant_def_contents): Use the alignment of the VAR_DECL.
15614         (tree_output_constant_def): New global function.
15615         (mark_constant): Use the expression of the VAR_DECL.
15616         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
15617         its expression.
15618         (output_object_block): Likewise and assemble the expression.
15619
15620 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
15621
15622         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
15623         hash_tree, eq_tree): New tree hash table.
15624         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
15625         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
15626         lto_orig_address_remove): Reimplement.
15627
15628 2010-04-28  Xinliang David Li  <davidxl@google.com>
15629
15630         PR c/42643
15631         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
15632         (compute_uninit_opnds_pos): New function.
15633         (is_non_loop_exit_postdominating): New function.
15634         (compute_control_dep_chain): New function.
15635         (find_pdom): New function.
15636         (convert_control_dep_chain_into_preds): New function.
15637         (find_predicates): New function.
15638         (find_control_equiv_block): New function.
15639         (collect_phi_def_edges): New function.
15640         (find_def_preds): New function.
15641         (find_dom): New function.
15642         (dump_predicates): New function.
15643         (get_cmp_code): New function.
15644         (is_value_included_in): New function.
15645         (find_matching_predicate_in_rest_chains): New function.
15646         (use_pred_not_overlap_with_undef_path_pred): New function.
15647         (is_use_properly_guarded): New function.
15648         (normalize_cond_1): New function.
15649         (is_and_or_or): New function.
15650         (normalize_cond): New function.
15651         (is_gcond_subset_of): New function.
15652         (is_subset_of_any): New function.
15653         (is_or_set_subset_of): New function.
15654         (is_and_set_subset_of): New function.
15655         (is_norm_cond_subset_of): New function.
15656         (is_pred_expr_subset_of): New function.
15657         (is_pred_chain_subset_of): New function.
15658         (is_included_in): New function.
15659         (is_superset_of): New function.
15660         (find_uninit_use): New function.
15661         (warn_uninitialized_phi): New function.
15662         (compute_possibly_undefined_names): New function.
15663         (ssa_undefined_value_p): New function.
15664         (execute_late_warn_uninitialized): New function.
15665         * tree-ssa.c (ssa_undefined_value_p): Removed.
15666         (warn_uninit): Changed to extern.
15667         (warn_uninitialized_phi): Removed.
15668         (warn_uninitialized_vars): Changed to extern.
15669         (execute_late_warn_uninitialized): Removed
15670         * tree-flow.h: Add new prototypes.
15671         * timevar.def: Add new time variable.
15672         * Makefile.in: Add new build file.
15673
15674 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
15675
15676         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
15677         type if available.
15678
15679 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15680
15681         PR target/22224
15682         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
15683
15684 2010-04-28  Martin Jambor  <mjambor@suse.cz>
15685
15686         * cgraph.h (struct cgraph_node): New field indirect_calls.
15687         (struct cgraph_indirect_call_info): New type.
15688         (struct cgraph_edge): Removed field indirect_call. New fields
15689         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
15690         (cgraph_create_indirect_edge): Declare.
15691         (cgraph_make_edge_direct): Likewise.
15692         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
15693         * ipa-prop.h (struct ipa_param_call_note): Removed.
15694         (struct ipa_node_params): Removed field param_calls.
15695         (ipa_create_all_structures_for_iinln): Declare.
15696         * cgraph.c: Described indirect edges and uids in initial comment.
15697         (cgraph_add_edge_to_call_site_hash): New function.
15698         (cgraph_edge): Search also among the indirect edges, use
15699         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
15700         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
15701         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
15702         site hash.
15703         (initialize_inline_failed): Assign a reason to indirect edges.
15704         (cgraph_create_edge_1): New function.
15705         (cgraph_create_edge): Moved some functionality to
15706         cgraph_create_edge_1.
15707         (cgraph_create_indirect_edge): New function.
15708         (cgraph_edge_remove_callee): Add an assert checking for
15709         non-indirectness.
15710         (cgraph_edge_remove_caller): Special-case indirect edges.
15711         (cgraph_remove_edge): Likewise.
15712         (cgraph_set_edge_callee): New function.
15713         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
15714         (cgraph_make_edge_direct): New function.
15715         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
15716         the declaration of the call statement matches.
15717         (cgraph_node_remove_callees): Special-case indirect edges.
15718         (cgraph_clone_edge): Likewise.
15719         (cgraph_clone_node): Clone also the indirect edges.
15720         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
15721         indirect_call, dump count of indirect_calls edges.
15722         * ipa-prop.c (iinlining_processed_edges): New variable.
15723         (ipa_note_param_call): Create indirect edges instead of
15724         creating notes.  New parameter node.
15725         (ipa_analyze_call_uses): New parameter node, pass it on to
15726         ipa_note_param_call.
15727         (ipa_analyze_stmt_uses): Likewise.
15728         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
15729         (print_edge_addition_message): Work on edges rather than on notes.
15730         (update_call_notes_after_inlining): Likewise, renamed to
15731         update_indirect_edges_after_inlining.
15732         (ipa_create_all_structures_for_iinln): New function.
15733         (ipa_free_node_params_substructures): Do not free notes.
15734         (ipa_edge_duplication_hook): Propagate bits within
15735         iinlining_processed_edges bitmap.
15736         (ipa_node_duplication_hook): Do not duplicate notes.
15737         (free_all_ipa_structures_after_ipa_cp): Renamed to
15738         ipa_free_all_structures_after_ipa_cp.
15739         (free_all_ipa_structures_after_iinln): Renamed to
15740         ipa_free_all_structures_after_iinln.
15741         (ipa_write_param_call_note): Removed.
15742         (ipa_read_param_call_note): Removed.
15743         (ipa_write_indirect_edge_info): New function.
15744         (ipa_read_indirect_edge_info): Likewise.
15745         (ipa_write_node_info): Do not stream notes, do stream information
15746         in indirect edges.
15747         (ipa_read_node_info): Likewise.
15748         (lto_ipa_fixup_call_notes): Removed.
15749         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
15750         * ipa-inline.c (pass_ipa_inline): Likewise.
15751         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
15752         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
15753         * tree-inline.c (copy_bb): Removed an unnecessary double check for
15754         is_gimple_call.
15755         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
15756         edges.
15757         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
15758         (output_cgraph): Stream also indirect edges.
15759         (lto_output_edge): Added capability to stream indirect edges.
15760         (input_edge): Likewise.
15761         (input_cgraph_1): Likewise.
15762         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
15763         of indirect edges.
15764
15765 2010-04-28  Richard Guenther  <rguenther@suse.de>
15766
15767         PR tree-optimization/43879
15768         PR tree-optimization/43909
15769         * tree-ssa-structalias.c (struct variable_info): Add
15770         only_restrict_pointers flag.
15771         (new_var_info): Initialize it.  Increment stats.total_vars here.
15772         (create_function_info_for): Do not increment stats.total_vars here.
15773         (get_function_part_constraint): Fix build with C++.
15774         (insert_into_field_list): Remove.
15775         (push_fields_onto_fieldstack): Properly merge fields.
15776         (create_variable_info_for): Split and simplify.
15777         (create_variable_info_for_1): New piece.
15778         (intra_create_variable_infos): Properly make restrict constraints
15779         from parameters.
15780
15781 2010-04-28  Richard Guenther  <rguenther@suse.de>
15782
15783         PR c++/43880
15784         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
15785
15786 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15787             Jan Hubicka <hubicka@ucw.cz>
15788
15789         * doc/invoke.texi (-Wsuggest-attribute=const,
15790         -Wsuggest-attribute=pure): Document.
15791         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
15792         (function_always_visible_to_compiler_p,
15793         suggest_attribute, warn_function_pure, warn_function_const):
15794         New functions.
15795         (check_call): Improve debug info.
15796         (analyze_function): Do not check availability.
15797         (add_new_function): Check availability.
15798         (propagate): Output warnings.
15799         (skip_function_for_local_pure_const): New function.
15800         (local_pure_const): Use it; output warnings.
15801         * common.opt (Wsuggest-attribute=const,
15802         Wsuggest-attribute=pure): New.
15803
15804 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
15805
15806         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
15807         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
15808         or DW_CFA_def_cfa_offset{,_sf}.
15809
15810 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
15811
15812         * tree.h: Fix truncated long macros.
15813
15814 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
15815
15816         * collect2.c (TARGET_64BIT): Redefine to target's default.
15817         * tlink.c: Likewise.
15818         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
15819         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
15820         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
15821         for underscoring __USER_LABEL_PREFIX__.
15822         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
15823         (SUB_LINK_ENTRY32): New.
15824         (SUB_LINK_ENTRY64): New.
15825         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
15826         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
15827         (SUB_LINK_ENTRY64): New.
15828         (SUB_LINK_ENTRY): New.
15829         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
15830         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
15831         x64 target is choosen.
15832         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
15833         * configure: Regenerated.
15834         * configure.ac (leading-mingw64-underscores): Option added.
15835
15836 2010-04-27  Jan Hubicka  <jh@suse.cz>
15837
15838         * doc/invoke.texi (-fipa-profile): Document.
15839         * opts.c (decode_options): Enable ipa-profile at -O1.
15840         * timevar.def (TV_IPA_PROFILE): Define.
15841         * common.opt (fipa-profile): Add.
15842         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
15843         flag for clones.
15844         (cgraph_propagate_frequency): Handle only local ones.
15845         * tree-pass.h (pass_ipa_profile): Declare.
15846         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
15847         (pass_ipa_profile): Use TV_IPA_PROFILE.
15848         * ipa.c (ipa_profile): New function.
15849         (gate_ipa_profile): Likewise.
15850         (pass_ipa_profile): New global variable.
15851         * passes.c (pass_ipa_profile): New.
15852
15853 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
15854
15855         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
15856
15857 2010-04-27  Martin Jambor  <mjambor@suse.cz>
15858
15859         PR middle-end/43812
15860         * ipa.c (dissolve_same_comdat_group_list): New function.
15861         (function_and_variable_visibility): Call
15862         dissolve_same_comdat_group_list when comdat group contains external or
15863         newly local nodes.
15864         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
15865         lists are circular and that they contain only DECL_ONE_ONLY nodes.
15866
15867 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
15868
15869         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
15870         (const_hash_1) <VECTOR_CST>: New case.
15871         (compare_constant) <VECTOR_CST>: Likewise.
15872         <ADDR_EXPR>: Deal with LABEL_REFs.
15873         (copy_constant) <VECTOR_CST>: New case.
15874
15875 2010-04-27  Jan Hubicka  <jh@suse.cz>
15876
15877         * cgraph.c (cgraph_propagate_frequency): New function.
15878         * cgraph.h (cgraph_propagate_frequency): Declare.
15879         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
15880         cgraph_propagate_frequency.
15881
15882 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
15883
15884         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
15885
15886 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
15887
15888         PR target/40657
15889         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
15890         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
15891         here to determine which regs to push and how much stack to reserve.
15892
15893 2010-04-27  Jie Zhang  <jie@codesourcery.com>
15894
15895         * doc/gimple.texi (gimple_statement_with_ops): Remove
15896         addresses_taken field.
15897         (gimple_statement_with_memory_ops): Likewise.
15898
15899 2010-04-27  Jan Hubicka  <jh@suse.cz>
15900
15901         * tree-inline.c (eni_inlining_weights): Remove.
15902         (estimate_num_insns): Special case more builtins.
15903
15904 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
15905
15906         PR c/32207
15907         * c-typeck.c (build_binary_op): Move forward check for comparison
15908         pointer with null pointer constant and adjust the diagnostic message.
15909
15910 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
15911
15912         PR lto/42776
15913         * configure.ac (gcc_cv_as_section_has_align): Set if installed
15914         binutils supports extended .section directive needed by LTO, or
15915         warn if older binutils found.
15916         (LTO_BINARY_READER): New AC_SUBST'd variable.
15917         (LTO_USE_LIBELF): Likewise.
15918         * gcc/config.gcc (lto_binary_reader): New target-specific configure
15919         variable.
15920         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
15921         (LTO_USE_LIBELF): Likewise.
15922         * configure: Regenerate.
15923
15924         * collect2.c (is_elf): Rename from this ...
15925         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
15926          object files in addition to ELF-formatted ones.
15927         (scan_prog_file): Caller updated.  Also allow for LTO info marker
15928         symbol to be prefixed or not by an extra underscore.
15929
15930         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
15931         * config/i386/winnt.c: Also #include lto-streamer.h
15932         (i386_pe_asm_named_section): Specify 1-byte section alignment for
15933         LTO named sections.
15934         (i386_pe_asm_output_aligned_decl_common): Add comment.
15935         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
15936
15937 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
15938
15939         PR target/43889
15940         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
15941         Add missing earlyclobber for second alternative.
15942
15943 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
15944
15945         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
15946         bits for artificial defs at the top of the block.
15947         * fwprop.c (single_def_use_enter_block): Don't call it.
15948
15949 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
15950
15951         PR 43715
15952         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
15953         instead of "$gcc_cv_objdump -T".
15954         Use "-undefined dynamic_lookup" on darwin.
15955         * gcc/configure: Regenerate.
15956
15957 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
15958
15959         PR c/43893
15960         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
15961
15962 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
15963
15964         * c-parser.c (struct c_token): Move location field up.
15965         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
15966         (struct c_declspecs): Convert typespec_word, storage_class, and
15967         default_int_p into bitfields.
15968         (struct c_declarator): Move loc field up.
15969
15970 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
15971
15972         * cfgloop.h (struct loop): Move can_be_parallel field up.
15973         * ipa-prop.h (struct ip_node_params): Move bitfields up.
15974         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
15975         down.
15976         (struct iv_cand): Convert pos field into a bitfield.
15977         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
15978         field up.
15979         (struct _stmt_vec_info): Shuffle fields for better packing.
15980
15981 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
15982
15983         * varasm.c (IN_NAMED_SECTION): Remove guard.
15984         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
15985         (IN_NAMED_SECTION_P): ...this.
15986         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
15987         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
15988
15989 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
15990
15991         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
15992         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
15993         of shadowing it.  Fix comments.
15994
15995 2010-04-26  Jan Hubicka  <jh@suse.cz>
15996
15997         * cgraph.c (cgraph_create_node): Set node frequency to normal.
15998         (cgraph_clone_node): Copy function frequency.
15999         * cgraph.h (node_frequency): New enum
16000         (struct cgraph_node): Add.
16001         * final.c (rest_of_clean_state): Update.
16002         * lto-cgraph.c (lto_output_node): Output node frequency.
16003         (input_overwrite_node): Input node frequency.
16004         * tre-ssa-loop-ivopts (computation_cost): Update.
16005         * lto-streamer-out.c (output_function): Do not output function
16006         frequency.
16007         * predict.c (maybe_hot_frequency_p): Update and handle functions
16008         executed once.
16009         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
16010         attribute lookup.
16011         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
16012         (compute_function_frequency): Set noreturn functions to be executed
16013         once.
16014         (choose_function_section): Update.
16015         * lto-streamer-in.c (input_function): Do not input function frequency.
16016         * function.c (allocate_struct_function): Do not initialize function
16017         frequency.
16018         * function.h (function_frequency): Remove.
16019         (struct function): Remove function frequency.
16020         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
16021         (try_update): Update.
16022         * tree-inline.c (initialize_cfun): Do not update function frequency.
16023         * passes.c (pass_init_dump_file): Update.
16024         * i386.c (ix86_compute_frame_layout): Update.
16025         (ix86_pad_returns): Update.
16026
16027 2010-04-26  Jie Zhang  <jie@codesourcery.com>
16028
16029         PR tree-optimization/43833
16030         * tree-vrp.c (range_int_cst_p): New.
16031         (range_int_cst_singleton_p): New.
16032         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
16033         when both operands are constants.  Use range_int_cst_p in
16034         BIT_IOR_EXPR case.
16035
16036 2010-04-26  Jan Hubicka  <jh@suse.cz>
16037
16038         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
16039
16040 2010-04-26  Richard Guenther  <rguenther@suse.de>
16041
16042         PR lto/43080
16043         * gimple.c (gimple_decl_printable_name): Deal gracefully
16044         with a NULL DECL_NAME.
16045
16046 2010-04-26  Richard Guenther  <rguenther@suse.de>
16047
16048         PR lto/42425
16049         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
16050         if emitting debug information and it is either a function
16051         or a namespace decl.
16052
16053 2010-04-26  Ira Rosen  <irar@il.ibm.com>
16054
16055         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
16056         determine if the statement is vectorizable, and a macro to access it.
16057         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
16058         Skip statements that can't be vectorized. If the analysis fails,
16059         mark the statement as unvectorizable if vectorizing basic block.
16060         (vect_compute_data_refs_alignment): Likewise.
16061         (vect_verify_datarefs_alignment): Skip statements marked as
16062         unvectorizable. Add print.
16063         (vect_analyze_group_access): Skip statements that can't be
16064         vectorized. If the analysis fails, mark the statement as
16065         unvectorizable if vectorizing basic block.
16066         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
16067         * tree-vect-stmts.c (vectorizable_store): Fix the number of
16068         generated stmts for SLP.
16069         (new_stmt_vec_info): Initialize the new field.
16070         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
16071         statements marked as unvectorizable.
16072
16073 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
16074
16075         * c-common.c (flag_isoc1x): New.
16076         (flag_isoc99): Update comment.
16077         * c-common.h (flag_isoc1x): New.
16078         (flag_isoc99): Update comment.
16079         * c-cppbuiltin.c (builtin_define_float_constants): Also define
16080         __<type>_DECIMAL_DIG__.
16081         * c-opts.c (set_std_c1x): New.
16082         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
16083         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
16084         * c.opt (-std=c1x, -std=gnu1x): New options.
16085         * doc/cpp.texi: Mention -std=c1x.
16086         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
16087         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
16088         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
16089         * doc/standards.texi: Mention C1X.
16090         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
16091         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
16092         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
16093         Define for C1X.
16094
16095 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
16096
16097         * config/i386/gmon-sol2.c (_mcleanup): Change format string
16098         placeholder from 0x%x to %#x.
16099         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
16100         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
16101         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
16102         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
16103         * config/i386/i386.c (ix86_target_string): Ditto.
16104         (output_pic_addr_const): Ditto.
16105         (print_operand): Ditto.
16106
16107 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
16108
16109         * combine.c (find_split_point): Add third argument.  Use it
16110         to find nested multiply-accumulate instructions.  Adjust calls.
16111         (try_combine): Adjust call to find_split_point.
16112
16113 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
16114
16115         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
16116
16117 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
16118
16119         PR tree-optimization/41442
16120         * fold-const.c (merge_truthop_with_opposite_arm): New function.
16121         (fold_binary_loc): Call it.
16122
16123 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16124
16125         * toplev.c (general_init): Set default for fdiagnostics-show-option.
16126         * opts.c (common_handle_option): Allow disabling it.
16127         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
16128
16129 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
16130
16131         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
16132         between modes if both types are integral.
16133
16134 2010-04-23  Richard Guenther  <rguenther@suse.de>
16135
16136         PR tree-optimization/43572
16137         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
16138
16139 2010-04-23  Richard Guenther  <rguenther@suse.de>
16140
16141         PR lto/43455
16142         * tree-inline.c (tree_can_inline_p): Also check compatibility
16143         of return types.
16144
16145 2010-04-23  Martin Jambor  <mjambor@suse.cz>
16146
16147         PR tree-optimization/43846
16148         * tree-sra.c (struct access): New flag grp_assignment_read.
16149         (build_accesses_from_assign): Set grp_assignment_read.
16150         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
16151         (enum mark_read_status): New type.
16152         (analyze_access_subtree): Propagate grp_assignment_read, create
16153         accesses also if both direct_read and root->grp_assignment_read.
16154
16155 2010-04-23  Martin Jambor  <mjambor@suse.cz>
16156
16157         PR middle-end/43835
16158         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
16159         function does not have type attributes.
16160
16161 2010-04-23  Richard Guenther  <rguenther@suse.de>
16162
16163         PR lto/42653
16164         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
16165         of FUNCTION_DECLs.
16166
16167 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16168
16169         * sese.h (create_if_region_on_edge): Remove.
16170
16171         * sese.c (create_if_region_on_edge): Make static.
16172
16173         * tree-inline.c: Do not include ggc.h.
16174
16175         * expr.c: Do not include ggc.h.
16176
16177         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
16178         dependencies.
16179
16180 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
16181
16182         PR target/43744
16183         * config/sh/sh.c (find_barrier): Don't emit a constant pool
16184         in the middle of insns for casesi_worker_2.
16185
16186 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
16187
16188         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
16189
16190 2010-04-22  Ira Rosen  <irar@il.ibm.com>
16191
16192         PR tree-optimization/43842
16193         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
16194         loop unrolling in update of exit phis. Fix comment.
16195         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
16196         least two reduction statements in the loop before starting SLP
16197         analysis.
16198
16199 2010-04-22  Nick Clifton  <nickc@redhat.com>
16200
16201         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
16202
16203 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
16204
16205         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
16206         to simplify a + ~a.
16207
16208 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16209
16210         * tree-parloops.c (loop_parallel_p): New argument
16211         parloop_obstack.  Pass it down.
16212         (parallelize_loops): New variable parloop_obstack.  Initialize it,
16213         pass it down, free it.
16214
16215         * tree-loop-linear.c (linear_transform_loops): Pass down
16216         lambda_obstack.
16217
16218         * tree-data-ref.h (lambda_compute_access_matrices): New argument
16219         of type struct obstack *.
16220
16221         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
16222         scratch_obstack.  Initialize it, pass down, free it.
16223
16224         * lambda.h (lambda_loop_new): Remove.
16225         (lambda_matrix_new, lambda_matrix_inverse)
16226         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
16227         argument of type struct obstack *.
16228
16229         * lambda-trans.c (lambda_trans_matrix_new): New argument
16230         lambda_obstack.  Pass it down, use obstack allocation for ret.
16231         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
16232         it down.
16233
16234         * lambda-mat.c (lambda_matrix_get_column)
16235         (lambda_matrix_project_to_null): Remove.
16236         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
16237         allocation for mat.
16238         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
16239         lambda_obstack.
16240
16241         * lambda-code.c (lambda_loop_new): New function.
16242         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
16243         (lambda_compute_auxillary_space, lambda_compute_target_space)
16244         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
16245         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
16246         (build_access_matrix): New argument lambda_obstack.  Use obstack
16247         allocation for am.
16248         (lambda_compute_step_signs, lambda_compute_access_matrices): New
16249         argument lambda_obstack.  Pass it down.
16250
16251 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
16252
16253         * optabs.h (expand_widening_mult): Declare.
16254
16255 2010-04-22  Richard Guenther  <rguenther@suse.de>
16256
16257         PR tree-optimization/43845
16258         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
16259         lookup the CALL_EXPR function and arguments.
16260
16261 2010-04-22  Nick Clifton  <nickc@redhat.com>
16262
16263         * config/stormy16/stormy16.c
16264         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
16265         * config/stormy16/stormy16.h: Tidy up formatting.
16266         (DONT_USE_BUILTIN_SETJMP): Remove definition.
16267         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
16268         (ineqbranchsi): Delete pattern.
16269         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
16270         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
16271         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
16272         stormy16-lib2-ucmpsi2.c.
16273
16274 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
16275
16276         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
16277         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
16278         extra set merge_set_noclobber, and use it to relax the final test
16279         slightly.
16280         * df.h (df_simulate_find_noclobber_defs): Declare.
16281         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
16282         conditional defs.
16283         (df_simulate_find_noclobber_defs): New function.
16284
16285 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
16286
16287         * config/i386/i386.md: Use {} around multi-line preparation statements.
16288
16289 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16290
16291         * c-tree.h (push_init_level, pop_init_level, set_init_index)
16292         (process_init_element): New argument of type struct obstack *.
16293
16294         * c-typeck.c (push_init_level, pop_init_level, set_designator)
16295         (set_init_index, set_init_label, set_nonincremental_init)
16296         (set_nonincremental_init_from_string, find_init_member)
16297         (output_init_element, output_pending_init_elements)
16298         (process_init_element): New argument braced_init_obstack.  Pass it
16299         down.
16300         (push_range_stack, add_pending_init): New argument
16301         braced_init_obstack.  Use obstack allocation.
16302
16303         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
16304         braced_init_obstack.  Pass it down.
16305         (c_parser_braced_init): New variables ret, braced_init_obstack.
16306         Initialize obstack, pass it down and finally free it.
16307
16308 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
16309
16310         PR middle-end/29274
16311         * tree-pass.h (pass_optimize_widening_mul): Declare.
16312         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
16313         gate_optimize_widening_mul): New static functions.
16314         (pass_optimize_widening_mul): New.
16315         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
16316         <case MULT_EXPR>: Remove support for widening multiplies.
16317         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
16318         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
16319         simplify_gen_unary rather than directly building extensions.
16320         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
16321         WIDEN_MULT_EXPR.
16322         * expmed.c (expand_widening_mult): New function.
16323         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
16324
16325 2010-04-21  Jan Hubicka  <jh@suse.cz>
16326
16327         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
16328         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
16329         * lto-wpa-fixup.c: Remove.
16330         * Makefile.in (lto-wpa-fixup.o): Remove.
16331         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
16332         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
16333         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
16334
16335 2010-04-21  Jan Hubicka  <jh@suse.cz>
16336
16337         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
16338         add write_optimization_summary, read_optimization_summary.
16339         (ipa_write_summaries_of_cgraph_node_set): Remove.
16340         (ipa_write_optimization_summaries): Declare.
16341         (ipa_read_optimization_summaries): Declare.
16342         * ipa-cp.c (pass_ipa_cp): Update.
16343         * ipa-reference.c (pass_ipa_reference): Update.
16344         * ipa-pure-const.c (pass_ipa_pure_const): Update.
16345         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
16346         Update.
16347         * ipa-inline.c (pass_ipa_inline): Update.
16348         * ipa.c (pass_ipa_whole_program): Update.
16349         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
16350         * passes.c (ipa_write_summaries_1): Do not test wpa.
16351         (ipa_write_optimization_summaries_1): New.
16352         (ipa_write_optimization_summaries): New.
16353         (ipa_read_summaries): Do not test ltrans.
16354         (ipa_read_optimization_summaries_1): New.
16355         (ipa_read_optimization_summaries): New.
16356
16357 2010-04-21  Jan Hubicka  <jh@suse.cz>
16358
16359         * lto-cgraph.c (lto_output_node): Do not output comdat groups
16360         for boundary nodes.
16361         (output_cgraph): Do not arrange comdat groups for boundary nodes.
16362
16363 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
16364
16365         PR debug/40040
16366         * dwarf2out.c (add_name_and_src_coords_attributes): Add
16367         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
16368
16369 2010-04-21  Jan Hubicka  <jh@suse.cz>
16370
16371         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
16372
16373 2010-04-21  Jan Hubicka  <jh@suse.cz>
16374
16375         * varpool.c (decide_is_variable_needed): Variable is always needed
16376         during ltrans.
16377
16378 2010-04-21  Jan Hubicka  <jh@suse.cz>
16379
16380         * opts.c (decode_options): Enable pure-const pass for whopr.
16381
16382 2010-04-21  Jan Hubicka  <jh@suse.cz>
16383
16384         * cgraph.c (dump_cgraph_node): Dump also assembler name.
16385         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
16386         at WPA dumping.
16387         (cgraph_decide_inlining): Do not expect callee to be removed in all
16388         cases.
16389
16390 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
16391
16392         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
16393
16394 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
16395
16396         * config/i386/i386.md (x86_shrd): Add athlon_decode and
16397         amdfam10_decode attributes.
16398
16399 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
16400
16401         PR middle-end/43570
16402         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
16403         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
16404         (lower_copyprivate_clauses): Use private var in outer
16405         context instead of original var.  Make sure the types
16406         are correct for VLAs.
16407
16408 2010-04-21  Richard Guenther  <rguenther@suse.de>
16409
16410         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
16411         to non-pointer objects.
16412
16413 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
16414
16415         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
16416         last chain entry if it starts with the still current label.
16417         (add_location_or_const_value_attribute): Check that
16418         loc_list->first->next is NULL instead of comparing ->first with ->last.
16419         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
16420         to add_var_loc_to_decl.
16421
16422         * dwarf2out.c (output_call_frame_info): For dw_cie_version
16423         >= 4 add also address size and segment size fields into CIE header.
16424
16425         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
16426         long as address size is the same as sizeof (void *) and
16427         segment size is 0.
16428         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
16429         address size or segment size is unexpected, return DW_EH_PE_omit.
16430         (classify_object_over_fdes): If get_cie_encoding returned
16431         DW_EH_PE_omit, return -1.
16432         (init_object): If classify_object_over_fdes returned -1,
16433         pretend there were no FDEs at all.
16434
16435 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
16436
16437         * config/i386/i386.md (bswap<mode>2): Macroize expander from
16438         bswap{si,di}2 using SWI48 mode iterator.
16439         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
16440         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
16441         set modrm attribute of bswap insn to 0 and remove length attribute.
16442         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
16443         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
16444         set mode attribute to <MODE> and remove length attribute.
16445
16446 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
16447
16448         PR rtl-optimization/43520
16449         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
16450         zero available registers.
16451
16452 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16453
16454         * builtins.c (fold_builtin_cproj): Fold more cases.
16455
16456 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16457
16458         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
16459         (fold_builtin_1): Fold builtin cproj.
16460         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
16461         Use ATTR_CONST_NOTHROW_LIST.
16462
16463 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
16464
16465         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
16466         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
16467         ffsi2_no_cmove for !TARGET_CMOVE.
16468         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
16469         (ffssi2): Remove expander.
16470         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
16471         mode iterator.
16472         (ctz<mode>2): Ditto from ctz{si,di}2.
16473         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
16474         mode iterator.
16475         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
16476         mode iterator.
16477
16478 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
16479
16480         * dwarf2out.c (AT_linkage_name): Define.
16481         (clone_as_declaration): Handle DW_AT_linkage_name.
16482         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
16483         of DW_AT_MIPS_linkage_name.
16484         (move_linkage_attr): Likewise.
16485         (dwarf2out_finish): Likewise.
16486
16487 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
16488
16489         PR middle-end/41952
16490         * fold-const.c (fold_comparison): New folding rule.
16491
16492 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
16493
16494         * double-int.h (double_int_setbit): Declare.
16495         * double-int.c (double_int_setbit): New function.
16496         * rtl.h (immed_double_int_const): Declare.
16497         * emit-rtl.c (immed_double_int_const): New function.
16498         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
16499         and immed_double_int_const functions.
16500         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
16501         expand_copysign_bit):  (Ditto.).
16502         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
16503         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
16504         * dojump.c (prefer_and_bit_test): (Ditto.).
16505         * expr.c (convert_modes, reduce_to_bit_field_precision,
16506         const_vector_from_tree): (Ditto.).
16507         * expmed.c (mask_rtx, lshift_value): (Ditto.).
16508
16509 2010-04-20  Jan Hubicka  <jh@suse.cz>
16510
16511         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
16512         (dump_cgraph_node): Dump new flags.
16513         * cgraph.h (struct cgraph_node): Add flags
16514         reachable_from_other_partition and in_other_partition.
16515         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
16516         other partition can not be removed.
16517         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
16518         the other partition must be output; silence sanity checking on
16519         leaking functions bodies from other paritition.
16520         * lto-cgraph.c (reachable_from_other_partition_p): New function.
16521         (lto_output_node): Output new flags; do not sanity check that inline
16522         clones are output; drop lto_forced_extern_inline_p code; do not mock
16523         visibility flags at partition boundaries.
16524         (add_node_to): New function.
16525         (output_cgraph): Use it to sort functions so masters appear before
16526         clones.
16527         (input_overwrite_node): Input new flags.
16528         * passes.c (ipa_write_summaries): Do not call
16529         lto_new_extern_inline_states.
16530         * lto-section-out.c (forced_extern_inline,
16531         lto_new_extern_inline_states lto_delete_extern_inline_states,
16532         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
16533         * lto-streamer.h (lto_new_extern_inline_states,
16534         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
16535         lto_forced_extern_inline_p): Kill.
16536
16537 2010-04-20  Richard Guenther  <rguenther@suse.de>
16538
16539         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
16540         from vars that can have pointers.
16541         (process_constraint): Dump useless constraints.
16542
16543 2010-04-20  Richard Guenther  <rguenther@suse.de>
16544
16545         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
16546         (dump_sa_points_to_info): Remove asserts.
16547         (init_base_vars): nothing_id isn't an escape point nor does it
16548         have pointers.
16549
16550 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
16551
16552         * tree.h (TYPE_REF_IS_RVALUE): Define.
16553         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
16554         should_move_die_to_comdat, prune_unused_types_walk): Handle
16555         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
16556         (modified_type_die, gen_reference_type_die): Emit
16557         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
16558         if TYPE_REF_IS_RVALUE and -gdwarf-4.
16559
16560 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16561
16562         PR target/43635
16563         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
16564         calls for -fpic -m31 if they have been sibcall optimized.
16565
16566 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
16567
16568         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
16569         ar.lc fixed and call-used.
16570
16571         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
16572
16573 2010-04-19  Jan Hubicka  <jh@suse.cz>
16574
16575         * opts.c (decode_options): Disable whpr incompatible passes.
16576         * lto/lto.c (lto_1_to_1_map): Skip clones.
16577         (read_cgraph_and_symbols): Do not mark everything as needed.
16578         (do_whole_program_analysis): Do map only after optimizing;
16579         set proper cgraph_state; use passmanager.
16580
16581 2010-04-19  DJ Delorie  <dj@redhat.com>
16582
16583         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
16584         POINTER_PLUS_EXPR and fix them.
16585
16586 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
16587
16588         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
16589         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
16590         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
16591         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
16592         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
16593         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
16594         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
16595         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
16596         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
16597         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
16598         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
16599
16600 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
16601
16602         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
16603         (check_cond_move_block): Likewise.
16604         (cond_move_process_if_block): Likewise.
16605         (noce_find_if_block): Improve formatting.
16606         (find_if_header): Pass 0 to memset and tweak conditions.
16607         (cond_exec_find_if_block): Fix long lines and tweak conditions.
16608
16609 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
16610
16611         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
16612         for -gdwarf-4.
16613
16614         PR middle-end/43337
16615         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
16616         with non-local decl doesn't need chain.
16617
16618 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
16619
16620         * ira-color.c (allocno_reload_assign): Avoid accumulating
16621         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
16622
16623 2010-04-19  Martin Jambor  <mjambor@suse.cz>
16624
16625         * gimple.h (create_tmp_reg): Declare.
16626         * gimplify.c (create_tmp_reg): New function.
16627         (gimplify_return_expr): Use create_tmp_reg.
16628         (gimplify_omp_atomic): Likewise.
16629         (gimple_regimplify_operands): Likewise.
16630         * tree-dfa.c (make_rename_temp): Likewise.
16631         * tree-predcom.c (predcom_tmp_var): Likewise.
16632         (reassociate_to_the_same_stmt): Likewise.
16633         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
16634         (get_replaced_param_substitute): Likewise.
16635         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
16636         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
16637         * tree-ssa-pre.c (get_representative_for): Likewise.
16638         (create_expression_by_pieces): Likewise.
16639         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
16640         (create_tailcall_accumulator): Likewise.
16641
16642 2010-04-19  Martin Jambor  <mjambor@suse.cz>
16643
16644         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
16645         new_stmt.
16646         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
16647
16648 2010-04-19  Richard Guenther  <rguenther@suse.de>
16649
16650         PR tree-optimization/43796
16651         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
16652         from SCEV in the lattice.
16653         (vrp_visit_phi_node): Dump change.
16654
16655 2010-04-19  Richard Guenther  <rguenther@suse.de>
16656
16657         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
16658         * configure: Re-generated.
16659
16660 2010-04-19  Richard Guenther  <rguenther@suse.de>
16661
16662         PR tree-optimization/43783
16663         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
16664         constant ARRAY_REF operands two and three if possible.
16665
16666 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
16667
16668         PR target/43766
16669         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
16670
16671 2010-04-19  Jie Zhang  <jie@codesourcery.com>
16672
16673         PR target/43662
16674         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
16675
16676 2010-04-19  Ira Rosen  <irar@il.ibm.com>
16677
16678         PR tree-optimization/37027
16679         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
16680         and macro to access it.
16681         (vectorizable_reduction): Add argument.
16682         (vect_get_slp_defs): Likewise.
16683         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
16684         statements for possible use in SLP.
16685         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
16686         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
16687         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
16688         add new argument.
16689         (vectorizable_reduction): Likewise.
16690         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
16691         vect_get_slp_defs.
16692         (vectorizable_type_demotion, vectorizable_type_promotion,
16693         vectorizable_store): Likewise.
16694         (vect_analyze_stmt): Update call to vectorizable_reduction.
16695         (vect_transform_stmt): Likewise.
16696         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
16697         (vect_build_slp_tree): Fix indentation. Check that there are no loads
16698         from different interleaving chains in same node.
16699         (vect_slp_rearrange_stmts): New function.
16700         (vect_supported_load_permutation_p): Allow load permutations for
16701         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
16702         inside SLP nodes if necessary.
16703         (vect_analyze_slp_instance): Handle reductions.
16704         (vect_analyze_slp): Try to build SLP instances originating from groups
16705         of reductions.
16706         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
16707         (vect_get_constant_vectors): Create initial vectors for reductions
16708         according to reduction code. Add new argument.
16709         (vect_get_slp_defs): Add new argument, pass it to
16710         vect_get_constant_vectors.
16711         (vect_schedule_slp_instance): Remove SLP tree root statements.
16712
16713 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
16714
16715         * tree.h (ENUM_IS_SCOPED): Define.
16716         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
16717         for ENUM_IS_SCOPED enums.
16718
16719 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
16720
16721         * fold-const.c (fold_comparison): Use ssizetype.
16722         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
16723         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
16724         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
16725         * tree-object-size.c (compute_object_sizes): Use size_type_node.
16726
16727         * tree.h (initialize_sizetypes): Remove parameter.
16728         (build_common_tree_nodes): Remove second parameter.
16729         * stor-layout.c (initialize_sizetypes): Remove parameter.
16730         Always create an unsigned type.
16731         (set_sizetype): Assert that the passed type is unsigned and simplify.
16732         * tree.c (build_common_tree_nodes): Remove second parameter.
16733         Adjust call to initialize_sizetypes.
16734         * c-decl.c (c_init_decl_processing): Remove second argument in call to
16735         build_common_tree_nodes.
16736
16737 2010-04-18  Matthias Klose  <doko@ubuntu.com>
16738
16739         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
16740
16741 2010-04-18  Ira Rosen  <irar@il.ibm.com>
16742
16743         PR tree-optimization/43771
16744         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
16745         load permutation doesn't have gaps.
16746
16747 2010-04-18  Jan Hubicka  <jh@suse.cz>
16748
16749         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
16750         (sse_prologue_save_insn expander): Use new pattern.
16751         (sse_prologue_save_insn1): New pattern and splitter.
16752         (sse_prologue_save_insn): Update to deal also with 64bit aligned
16753         blocks.
16754         * i386.c (setup_incoming_varargs_64): Do not compute jump
16755         destination here.
16756         (ix86_gimplify_va_arg): Update alignment needed.
16757         (ix86_local_alignment): Do not align all local arrays to 128bit.
16758
16759 2010-04-17  Jan Hubicka  <jh@suse.cz>
16760
16761         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
16762
16763 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
16764
16765         * arm.md (negdi2): Remove redundant code to force values into a
16766         register.
16767
16768 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
16769
16770         * arm/bpabi.S: Add EABI alignment attributes to objects.
16771         * arm/bpabi-v6m.S: Likewise.
16772         * arm/crti.asm: Likewise.
16773         * arm/crtn.asm: Likewise.
16774         * arm/lib1funcs.asm: Likewise.
16775         * arm/libunwind.S: Likewise.
16776
16777 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
16778
16779         * arm-protos.h (tune_params): New structure.
16780         * arm.c (current_tune): New variable.
16781         (arm_constant_limit): Delete.
16782         (struct processors): Add pointer to the tune parameters.
16783         (arm_slowmul_tune): New tuning option.
16784         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
16785         (all_cores): Adjust to pick up the tuning model.
16786         (arm_constant_limit): New function.
16787         (arm_override_options): Select the appropriate tuning model.  Delete
16788         initialization of arm_const_limit.
16789         (arm_split_constant): Use the new constant-limit model.
16790         (arm_rtx_costs): Pick up the current tuning model.
16791         * arm.md (is_strongarm, is_xscale): Delete.
16792         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
16793         for Xscale variant architectures.
16794         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
16795
16796 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16797
16798         * config/arm/arm.c (arm_gen_constant): Remove unused variable
16799         can_shift.
16800         (arm_rtx_costs_1): Remove unused variable extra_cost.
16801         (arm_unwind_emit_set): Use variable offset.
16802         (thumb1_output_casesi): Remove unused variable flags.
16803
16804 2010-04-16  Jeff Law  <law@redhat.com>
16805
16806         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
16807         needing assignment rather than doing a two-phase assignment.  Remove
16808         unused variable 'm'.
16809
16810 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
16811
16812         PR bootstrap/43767
16813         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
16814
16815 2010-04-16  Doug Kwan  <dougkwan@google.com>
16816
16817         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
16818         (next_operand_entry_id): New static variable.
16819         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
16820         (add_to_ops_vec): Assigned unique ID to operand entry.
16821         (struct oecount_s): New field ID.
16822         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
16823         (undistribute_ops_list): Assign unique IDs to oecounts.
16824         (init_reassoc): reset next_operand_entry_id.
16825
16826 2010-04-16  Doug Kwan  <dougkwan@google.com>
16827
16828         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
16829         missing left parenthesis.
16830
16831 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
16832
16833         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
16834         *btdi_rex64 using SWI48 mode iterator.
16835         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
16836         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
16837         *jcc_btdi_mask_rex64.
16838
16839 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
16840
16841         * double-int.h (tree_to_double_int): Convert to macro.
16842         * double-int.c (tree_to_double_int): Remove.
16843
16844 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
16845
16846         PR debug/43762
16847         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
16848         with want_address 2 and in case a single element list might be
16849         possible, call it again with want_address 0.
16850
16851 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
16852
16853         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
16854         case 'W' print operands for HI mode.
16855         * config/h8300/h8300.h (Y0, Y2) : New constraints.
16856         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
16857         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
16858         * config/h8300/predicate.md (bit_register_indirect_operand): New.
16859
16860         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
16861
16862         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
16863         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
16864         #xx:3 and #xx:4 mode.
16865
16866         * config/h8300/h8300.md (inverted load with HImode dest): Add
16867         support for H8300SX.
16868
16869         * config/h8300/predicate.md (bit_operand): Allow immediate values that
16870         satisfy 'U' constraint.
16871
16872 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16873
16874         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
16875         * configure: Regenerate.
16876         * config.in: Regenerate.
16877         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
16878         works.
16879
16880 2010-04-16  Richard Guenther  <rguenther@suse.de>
16881
16882         * tree.h (struct tree_decl_minimal): Move pt_uid ...
16883         (struct tree_decl_common): ... here.
16884         (DECL_PT_UID): Adjust.
16885         (SET_DECL_PT_UID): Likewise.
16886         (DECL_PT_UID_SET_P): Likewise.
16887
16888 2010-04-16  Richard Guenther  <rguenther@suse.de>
16889
16890         PR tree-optimization/43572
16891         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
16892         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
16893         * tree-flow.h (is_call_clobbered): Remove.
16894         * tree-flow-inline.h (is_call_clobbered): Likewise.
16895         * tree-dfa.c (dump_variable): Do not dump call clobber state.
16896         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
16897         (execute_return_slot_opt): Adjust.
16898         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
16899         check for call clobbered vars here.
16900         (find_tail_calls): Move tailcall verification to the
16901         proper place.
16902
16903 2010-04-16  Diego Novillo  <dnovillo@google.com>
16904
16905         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
16906
16907 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
16908
16909         PR target/40603
16910         * config/arm/arm.md (cbranchqi4): New pattern.
16911         * config/arm/predicates.md (const0_operand,
16912         cbranchqi4_comparison_operator): New predicates.
16913
16914 2010-04-16  Richard Guenther  <rguenther@suse.de>
16915
16916         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
16917         (dump_gimple_stmt): Likewise.
16918
16919 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
16920
16921         * recog.h (struct recog_data): New field is_operator.
16922         (struct insn_operand_data): New field is_operator.
16923         * recog.c (extract_insn): Set recog_data.is_operator.
16924         * genoutput.c (output_operand_data): Emit code to set the
16925         is_operator field.
16926         * reload.c (find_reloads): Use it rather than testing for an
16927         empty constraint string.
16928
16929         PR target/41514
16930         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
16931         If the previous insn is a cbranchsi4_insn with the same arguments,
16932         omit the compare instruction.
16933
16934         * config/arm/arm.md (addsi3_cbranch): If destination is a high
16935         register, inputs must be low registers and we need a low register
16936         scratch.  Handle alternative 2 like alternative 3.
16937
16938 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
16939
16940         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
16941         don't call get_addr on both.  If one expression is a VALUE and
16942         the other a REG, check VALUE's locs if the REG isn't among them.
16943
16944 2010-04-16  Christian Bruel  <christian.bruel@st.com>
16945
16946         * config/sh/sh.h (sh_frame_pointer_required): New function.
16947         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
16948         (flag_omit_frame_pointer) Set.
16949         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
16950         (rounded_frame_size): Adjust size with outgoing_args_size.
16951         (sh_set_return_address): Must return from stack pointer.
16952         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
16953         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
16954         (ACCUMULATE_OUTGOING_ARGS): Define.
16955         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
16956         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
16957
16958 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
16959
16960         PR target/43471
16961         * config/sh/sh.c (sh_legitimize_reload_address): Use
16962         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
16963         Remove a unneeded check for offset_base.
16964
16965 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
16966
16967         * configure: Regenerated.
16968
16969 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16970
16971         * config/s390/s390.c (s390_call_save_register_used): Switch back
16972         to HARD_REGNO_NREGS.
16973
16974 2010-04-15  Richard Guenther  <rguenther@suse.de>
16975
16976         * alias.c (alias_set_subset_of): Handle alias-set zero
16977         child properly.
16978
16979 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
16980             Julian Brown  <julian@codesourcery.com>
16981
16982         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
16983         alternatives according to use of high and low regs.
16984         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
16985         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
16986         optimizing for size on Thumb-2.
16987
16988 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
16989
16990         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
16991
16992 2010-04-15  Richard Guenther  <rguenther@suse.de>
16993
16994         * tree-ssa-structalias.c (struct variable_info): Add
16995         is_fn_info flag.
16996         (new_var_info): Initialize it.
16997         (dump_constraints): Support printing last added constraints.
16998         (debug_constraints): Adjust.
16999         (dump_constraint_graph): Likewise.
17000         (make_heapvar_for): Check for NULL cfun.
17001         (get_function_part_constraint): New function.
17002         (get_fi_for_callee): Likewise.
17003         (find_func_aliases): Properly implement IPA PTA constraints.
17004         (process_ipa_clobber): New function.
17005         (find_func_clobbers): Likewise.
17006         (insert_into_field_list_sorted): Remove.
17007         (create_function_info_for): Properly allocate vars for IPA mode.
17008         Do not use insert_into_field_list_sorted.
17009         (create_variable_info_for): Properly generate constraints for
17010         global vars in IPA mode.
17011         (dump_solution_for_var): Always dump the solution.
17012         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
17013         (find_what_var_points_to): Adjust.
17014         (pt_solution_set): Change.
17015         (pt_solution_ior_into): New function.
17016         (pt_solution_empty_p): Export.
17017         (pt_solution_includes_global): Adjust.
17018         (pt_solution_includes_1): Likewise.
17019         (pt_solutions_intersect_1): Likewise.
17020         (dump_sa_points_to_info): Check some invariants.
17021         (solve_constraints): Move constraint dumping ...
17022         (compute_points_to_sets): ... here.
17023         (ipa_pta_execute): ... and here.
17024         (compute_may_aliases): Do not re-compute points-to info
17025         locally if IPA info is available.
17026         (ipa_escaped_pt): New global var.
17027         (ipa_pta_execute): Properly implement IPA PTA.
17028         * tree-into-ssa.c (dump_decl_set): Support dumping
17029         decls not in referenced-vars.
17030         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
17031         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
17032         (dump_points_to_solution): Likewise.
17033         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
17034         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
17035         (remap_gimple_stmt): Reset call clobber/use information if necessary.
17036         (copy_decl_to_var): Copy DECL_PT_UID.
17037         (copy_result_decl_to_var): Likewise.
17038         * tree.c (make_node_stat): Initialize DECL_PT_UID.
17039         (copy_node_stat): Copy it.
17040         * tree.h (DECL_PT_UID): New macro.
17041         (SET_DECL_PT_UID): Likewise.
17042         (DECL_PT_UID_SET_P): Likewise.
17043         (struct tree_decl_minimal): Add pt_uid member.
17044         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
17045         (pt_solution_empty_p): Declare.
17046         (pt_solution_set): Adjust.
17047         (ipa_escaped_pt): Declare.
17048         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
17049         * gimple-pretty-print.c (pp_points_to_solution): New function.
17050         (dump_gimple_call): Dump call clobber/use information.
17051         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
17052         * tree-pass.h (TDF_ALIAS): New dump option.
17053         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
17054         * doc/invoke.texi (-fipa-pta): Update documentation.
17055
17056 2010-04-15  Richard Guenther  <rguenther@suse.de>
17057
17058         * Makefile.in (OBJS-common): Add gimple-fold.o.
17059         (gimple-fold.o): New rule.
17060         * tree.h (maybe_fold_offset_to_reference,
17061         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
17062         prototypes ...
17063         * gimple.h: ... here.
17064         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
17065         may_propagate_address_into_dereference): Move prototypes ...
17066         * gimple.h: ... here.
17067         * tree-ssa-ccp.c (get_symbol_constant_value,
17068         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
17069         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
17070         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
17071         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
17072         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
17073         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
17074         gimplify_and_update_call_from_tree): Move ...
17075         * gimple-fold.c: ... here.  New file.
17076         (ccp_fold_builtin): Rename to ...
17077         (gimple_fold_builtin): ... this.
17078         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
17079
17080 2010-04-15  Richard Guenther  <rguenther@suse.de>
17081
17082         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
17083         fit_double_type, force_fit_type_double, add_double_with_sign,
17084         neg_double, mul_double_with_sign, lshift_double, rshift_double,
17085         lrotate_double, rrotate_double, div_and_round_double): Move ...
17086         * double-int.c: ... here.
17087         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
17088         add_double, neg_double, mul_double_with_sign, mul_double,
17089         lshift_double, rshift_double, lrotate_double, rrotate_double,
17090         div_and_round_double): Move prototypes ...
17091         * double-int.h: ... here.
17092
17093 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
17094
17095         PR target/43742
17096         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
17097         matching constraints to ensure inputs match the output.
17098
17099 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
17100
17101         PR target/43742
17102         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
17103         in an input-only operand.
17104
17105 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
17106
17107         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
17108         (double_int_not, double_int_lshift, double_int_rshift): Declare.
17109         (double_int_negative_p): Convert to static inline function.
17110         * double-int.c (double_int_lshift, double_int_lshift): New functions.
17111         (double_int_negative_p): Remove.
17112         * tree.h (lshift_double, rshift_double):
17113         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
17114         * fold-const.c (fold_convert_const_int_from_real,
17115         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
17116         (lshift_double): Change type of arith argument to bool.
17117         (rshift_double): Change type of arith argument to bool. Correct
17118         comment.
17119         * expmed.c (mask_rtx, lshift_value): (Ditto.).
17120
17121 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
17122
17123         PR target/21803
17124         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
17125         at the start and end of the then/else blocks, and omit them from the
17126         conversion.
17127         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
17128         argument; all callers changed.  Pass zero to old_insns_match_p instead.
17129         (flow_find_head_matching_sequence): New function.
17130         (old_insns_match_p): Check REG_EH_REGION notes for calls.
17131         * basic-block.h (flow_find_cross_jump,
17132         flow_find_head_matching_sequence): Declare functions.
17133
17134 2010-04-14  Jason Merrill  <jason@redhat.com>
17135
17136         PR c++/36625
17137         * c-common.c (attribute_takes_identifier_p): New fn.
17138         * c-common.h: Declare it.
17139
17140 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17141
17142         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
17143         splitter condition.
17144         (*udivmod<mode>4): Ditto.
17145
17146 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17147
17148         * config/i386/i386.md (maxmin_int): Rename code attribute from
17149         maxminiprefix and update all users.
17150         (maxmin_float): Ditto from maxminfprefix.
17151         (logic): Ditto from logicprefix.
17152         (absneg_mnemonic): Ditto from absnegprefix.
17153         * config/i386/mmx.md: Update all users of maxminiprefix,
17154         maxminfprefix and logicprefix for rename.
17155         * config/i386/sse.md: Ditto.
17156         * config/i386/sync.md (sync_<code><mode>): Update for
17157         logicprefix rename.
17158
17159 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17160
17161         PR 42966
17162         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
17163         warnings converted to errors.
17164
17165 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17166
17167         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
17168         used insn_type variable.
17169         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
17170         to avoid set-but-not-used warning.
17171
17172 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17173
17174         * df-core.c (df_ref_debug): Change format string placeholder
17175         from 0x%x to %#x.
17176         * dwarf2asm.c (dw2_asm_output_data_raw,
17177         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
17178         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
17179         * dwarf2out.c (output_cfi, output_cfi_directive,
17180         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
17181         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
17182         Ditto.
17183         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
17184         * print-rtl.c (print_rtx): Ditto.
17185
17186 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
17187
17188         PR middle-end/42694
17189         * builtins.c (expand_builtin_pow_root): New function to expand pow
17190         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
17191         series of sqrt and cbrt calls under -ffast-math.
17192         (expand_builtin_pow): Call it.
17193
17194 2010-04-14  Michael Matz  <matz@suse.de>
17195
17196         PR tree-optimization/42963
17197         * tree-cfg.c (touched_switch_bbs): New static variable.
17198         (group_case_labels_stmt): New function broken out from ...
17199         (group_case_labels): ... here, use the above.
17200         (start_recording_case_labels): Allocate touched_switch_bbs.
17201         (end_recording_case_labels): Deallocate it, call
17202         group_case_labels_stmt.
17203         (gimple_redirect_edge_and_branch): Remember index of affected BB.
17204
17205 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17206
17207         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
17208         from insn template.
17209
17210 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17211
17212         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
17213
17214 2010-04-13  Jan Hubicka  <jh@suse.cz>
17215
17216         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
17217         of optimized out static functions.
17218         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
17219         cost computation.  Also sanity check for overflows.
17220         (update_caller_keys): Update cgraph_edge_badness call; properly
17221         update fibheap and sanity check that it is up to date.
17222         (add_new_edges_to_heap): Update cgraph_edge_badness.
17223         (cgraph_decide_inlining_of_small_function): Likewise;
17224         add sanity checking that badness in heap is up to date;
17225         improve dumping of reason; Update badness of calls to the
17226         offline copy of function currently inlined; dump badness
17227         of functions not inlined because of unit growth limits.
17228
17229 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
17230
17231         PR middle-end/32628
17232         * c-common.c (pointer_int_sum): Disregard overflow that occured only
17233         because of sign-extension change when converting to sizetype here...
17234         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
17235
17236         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
17237         the folding to constants.  Remove redundant final conversion.
17238         (fold_binary) <associate>: Do not associate if the re-association of
17239         constants alone overflows.
17240         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
17241         to the end of the list.
17242         (multiple_of_p) <COND_EXPR>: New case.
17243
17244 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17245
17246         * opt-functions.awk (opt_sanitized_name): New.
17247         (opt_enum): New.
17248         * optc-gen.awk: Use it
17249         * opth-gen.awk: Use it.
17250
17251 2010-04-13  Martin Jambor  <mjambor@suse.cz>
17252
17253         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
17254         (sra_modify_assign): Delete stmts loading dead data even if racc has no
17255         children.  Call replace_uses_with_default_def_ssa_name to handle
17256         SSA_NAES on lhs.
17257
17258 2010-04-13  Michael Matz  <matz@suse.de>
17259
17260         PR middle-end/43730
17261         * builtins.c (expand_builtin_interclass_mathfn): Also create
17262         a register if the predicate doesn't match.
17263
17264 2010-04-13  Diego Novillo  <dnovillo@google.com>
17265
17266         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
17267         * c-pch.c: Include timevar.h.
17268         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
17269         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
17270         * ggc-common.c: Include timevar.h.
17271         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
17272         * timevar.def (TV_PCH_SAVE): Define.
17273         (TV_PCH_CPP_SAVE): Define.
17274         (TV_PCH_PTR_REALLOC): Define.
17275         (TV_PCH_PTR_SORT): Define.
17276         (TV_PCH_RESTORE): Define.
17277         (TV_PCH_CPP_RESTORE): Define.
17278
17279 2010-04-13  Michael Matz  <matz@suse.de>
17280
17281         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
17282         into MINUS_EXPRs.
17283         (can_reassociate_p): New function.
17284         (break_up_subtract_bb, reassociate_bb): Use it.
17285
17286 2010-04-13  Richard Guenther  <rguenther@suse.de>
17287
17288         PR bootstrap/43737
17289         * builtins.c (c_readstr): Fix assert.
17290
17291 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
17292
17293         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
17294         when generating cltd insn.
17295
17296         (*ashl<mode>3_1): Remove special handling for register operand 2.
17297         (*ashlsi3_1_zext): Ditto.
17298         (*ashlhi3_1): Ditto.
17299         (*ashlhi3_1_lea): Ditto.
17300         (*ashlqi3_1): Ditto.
17301         (*ashlqi3_1_lea): Ditto.
17302         (*<shiftrt_insn><mode>3_1): Ditto.
17303         (*<shiftrt_insn>si3_1_zext): Ditto.
17304         (*<shiftrt_insn>qi3_1_slp): Ditto.
17305         (*<rotate_insn><mode>3_1): Ditto.
17306         (*<rotate_insn>si3_1_zext): Ditto.
17307         (*<rotate_insn>qi3_1_slp): Ditto.
17308
17309 2010-04-13  Richard Guenther  <rguenther@suse.de>
17310
17311         * tree-ssa-structalias.c (callused_id): Remove.
17312         (call_stmt_vars): New.
17313         (get_call_vi): Likewise.
17314         (lookup_call_use_vi): Likewise.
17315         (lookup_call_clobber_vi): Likewise.
17316         (get_call_use_vi): Likewise.
17317         (get_call_clobber_vi): Likewise.
17318         (make_transitive_closure_constraints): Likewise.
17319         (handle_const_call): Adjust to do per-call call-used handling.
17320         (handle_pure_call): Likewise.
17321         (find_what_var_points_to): Remove general callused handling.
17322         (init_base_vars): Likewise.
17323         (init_alias_vars): Initialize call_stmt_vars.
17324         (compute_points_to_sets): Process call-used and call-clobbered
17325         vars for call statements.
17326         (delete_points_to_sets): Free call_stmt_vars.
17327
17328 2010-04-13  Richard Guenther  <rguenther@suse.de>
17329
17330         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
17331         Only add RW dependence for dependence distance zero.
17332         Adjust maximal vectorization factor according to dependences.
17333         Move alignment handling ...
17334         (vect_find_same_alignment_drs): ... here.  New function.
17335         (vect_analyze_data_ref_dependences): Adjust.
17336         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
17337         (vect_analyze_data_refs): Adjust minimal vectorization factor
17338         according to data references.
17339         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
17340         dependences before determining the vectorization factor.
17341         Analyze alignment after determining the vectorization factor.
17342         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
17343         dependences before alignment.
17344         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
17345         Adjust prototype.
17346         (vect_analyze_data_refs): Likewise.
17347         (MAX_VECTORIZATION_FACTOR): New define.
17348
17349 2010-04-13  Duncan Sands  <baldrick@free.fr>
17350
17351         * except.h (lang_eh_type_covers): Remove.
17352         * except.c (lang_eh_type_covers): Likewise.
17353
17354 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17355             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17356
17357         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
17358         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
17359         UNITS_PER_LONG where it is ABI relevant.
17360         (s390_return_addr_rtx): Likewise.
17361         (s390_back_chain_rtx): Likewise.
17362         (s390_frame_area): Likewise.
17363         (s390_frame_info): Likewise.
17364         (s390_initial_elimination_offset): Likewise.
17365         (save_gprs): Likewise.
17366         (s390_emit_prologue): Likewise.
17367         (s390_emit_epilogue): Likewise.
17368         (s390_function_arg_advance): Likewise.
17369         (s390_function_arg): Likewise.
17370         (s390_va_start): Likewise.
17371         (s390_gimplify_va_arg): Likewise.
17372         (s390_function_profiler): Likewise.
17373         (s390_optimize_prologue): Likewise.
17374         (s390_rtx_costs): Likewise.
17375         (s390_secondary_reload): Likewise.
17376         (s390_promote_function_mode): Likewise.
17377         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
17378         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
17379         registers available.
17380         (s390_unwind_word_mode): New function.
17381         (s390_function_value): Split 64 bit values into register pair if
17382         used as return value.
17383         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
17384         function call parameters.  Handle parallels.
17385         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
17386         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
17387         (DWARF_CIE_DATA_ALIGNMENT): New macro.
17388         (s390_expand_setmem): Remove unused variable src_addr.
17389         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
17390         deal with 64 bit registers.
17391         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
17392         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
17393         (UNITS_PER_LONG): New macro.
17394         * libjava/include/s390-signal.h: Define extended ucontext
17395         structure containing the upper halfs of the 64 bit registers.
17396
17397 2010-04-13  Simon Baldwin  <simonb@google.com>
17398
17399         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
17400
17401 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
17402
17403         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
17404         rvalue on the RHS if the LHS is of a non-renamable type.
17405         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
17406
17407 2010-04-13  Matthias Klose  <doko@ubuntu.com>
17408
17409         * gcc.c (cc1_options): Handle -iplugindir before processing
17410         the cc1 spec. Only add -iplugindir once.
17411         (cpp_unique_options): Add -iplugindir option if -fplugin* options
17412         found.
17413         * common.opt (iplugindir): Remove `Separate' property, initialize.
17414         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
17415         option.
17416         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
17417         (distclean): Remove plugin dir.
17418         * doc/invoke.texi: Document -iplugindir.
17419
17420 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
17421
17422         * doc/plugins.texi (Loading Plugins): Document short
17423         -fplugin=foo option.
17424         (Plugin API): Mention default_plugin_dir_name function.
17425
17426         * gcc.c (find_file_spec_function): Add new declaration.
17427         (static_spec_func): Use it for "find-file".
17428         (find_file_spec_function): Add new function.
17429         (cc1_options): Add -iplugindir option if -fplugin* options found.
17430
17431         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
17432
17433         * plugin.c (add_new_plugin): Updated comment, and handle short
17434         plugin name.
17435         (default_plugin_dir_name): Added new function.
17436
17437         * common.opt (iplugindir): New option to set the plugin directory.
17438
17439 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
17440
17441         * config/i386/i386.md (any_rotate): New code iterator.
17442         (rotate_insn): New code attribute.
17443         (rotate): Ditto.
17444         (SWIM124): New mode iterator.
17445         (<rotate_insn>ti3): New expander.
17446         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
17447         any_rotate code iterator.
17448         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
17449         using any_rotate code iterator and SWIM124 mode iterator.
17450         (ix86_rotlti3): New insn_and_split pattern.
17451         (ix86_rotrti3): Ditto.
17452         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
17453         ix86_rotl{di,ti}3 patterns.
17454         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
17455         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
17456         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
17457         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
17458         code iterator and SWI mode iterator.
17459         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
17460         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
17461         code iterator.
17462         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
17463         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
17464         (bswap rotatert splitter): Add splitter.
17465         (bswap splitter): Macroize splitter using any_rotate code iterator.
17466         Add insn predicate to split only for TARGET_USE_XCHGB or when
17467         optimizing function for size.
17468
17469 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
17470
17471         * config/pa/pa.c (emit_move_sequence): Remove use of
17472         deleted variable flag_argument_noalias.
17473
17474 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17475
17476         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
17477         configurations.
17478         Add to unsupported targets list.
17479         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
17480         sparc*-sun-solaris2.[567]* from target lists.
17481         * configure: Regenerate.
17482         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
17483         removal.
17484         Remove Solaris 7 patch references.
17485         (Specific, sparc-sun-solaris2.7): Removed.
17486         (sparc-sun-solaris2*): Update Solaris 7 example.
17487         (sparc64-*-solaris2*): Likewise.
17488
17489 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17490
17491         * config.build (alpha*-dec-osf4*): Remove.
17492         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
17493         of obsolete configurations.
17494         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
17495         support.
17496         * config/alpha/t-osf4: Renamed to ...
17497         * config/alpha/t-osf5: ... this.
17498         * config/alpha/osf.h: Renamed to ...
17499         * config/alpha/osf5.h: ... this.
17500         Merged old osf5.h contents.
17501         Update comments.
17502         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
17503         (EXTRA_SPECS): Removed.
17504         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
17505         reflect removal of Tru64 UNIX V4.0/V5.0 support.
17506         Document that.
17507
17508 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17509
17510         * doc/contrib.texi (Contributors, Rainer Orth): Update.
17511
17512 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
17513
17514         PR/43702
17515         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
17516         __thiscall convention.
17517
17518 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
17519
17520         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
17521         orig_base.
17522         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
17523
17524 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
17525
17526         * function.c (assign_parms_initialize_all): Add unused attribute
17527         to fntype.
17528
17529 2010-04-12  Richard Guenther  <rguenther@suse.de>
17530
17531         * gsstruct.def (GSS_CALL): New.
17532         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
17533         * gimple.h: Include tree-ssa-alias.h.
17534         (struct gimple_statement_call): New.
17535         (union gimple_statement_struct_d): Add gimple_call member.
17536         (gimple_call_reset_alias_info): Declare.
17537         (gimple_call_use_set): New function.
17538         (gimple_call_clobber_set): Likewise.
17539         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
17540         * gimple.c (gimple_call_reset_alias_info): New function.
17541         (gimple_build_call_1): Call it.
17542         * lto-streamer-in.c (input_gimple_stmt): Likewise.
17543         * tree-inline.c (remap_gimple_stmt): Likewise.
17544         (expand_call_inline): Remove callused handling.
17545         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
17546         * tree-dfa.c (dump_variable): Likewise.
17547         * tree-parloops.c (parallelize_loops): Likewise.
17548         * tree-ssa.c (init_tree_ssa): Likewise.
17549         (delete_tree_ssa): Likewise.
17550         * tree-flow-inline.h (is_call_used): Remove.
17551         * tree-flow.h (struct gimple_df): Remove callused member.
17552         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
17553         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
17554         (ref_maybe_used_by_call_p_1): Simplify.
17555         (call_may_clobber_ref_p_1): Likewise.
17556         * tree-ssa-structalias.c (compute_points_to_sets): Set
17557         the call stmt used and clobbered sets.
17558         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
17559         (find_tail_calls): Verify the tail call.
17560
17561 2010-04-12  Richard Guenther  <rguenther@suse.de>
17562
17563         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
17564         single-iteration always-inline inlining.
17565         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
17566         (cgraph_decide_inlining): Do not handle always-inline specially.
17567         (try_inline): Remove always-inline cycle detection special case.
17568         Do not recurse on always-inlines.
17569         (cgraph_early_inlining): Do not iterate if not optimizing.
17570         (cgraph_gate_early_inlining): remove.
17571         (pass_early_inline): Run unconditionally.
17572         (gate_cgraph_decide_inlining): New function.
17573         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
17574         not inlining or optimizing.
17575         (cgraph_decide_inlining_of_small_functions): Also consider
17576         always-inline functions.
17577         (cgraph_default_inline_p): Return true for nodes which should
17578         disregard inline limits.
17579         (estimate_function_body_sizes): Assume zero size and time for
17580         nodes which are marked as disregarding inline limits.
17581         (cgraph_decide_recursive_inlining): Do not perform recursive
17582         inlining on always-inline nodes.
17583
17584 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
17585
17586         PR bootstrap/43699
17587         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
17588         for exprs satisfying handled_component_p.
17589
17590 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
17591
17592         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
17593         non-constant aggregate elements.
17594
17595         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
17596         is a real initialization.
17597
17598 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
17599
17600         PR c/36774
17601         * c-decl.c (start_function): Move forward check for nested function.
17602
17603 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
17604
17605         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
17606         * config/sh/sh.c: Include reload.h.
17607         (sh_legitimize_reload_address): New.
17608         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
17609         sh_legitimize_reload_address.
17610
17611 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
17612
17613         * config/sh/sh.md (*movqi_pop): New insn pattern.
17614         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
17615
17616 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
17617
17618         * config/i386/i386.md (any_shiftrt): New code iterator.
17619         (shiftrt_insn): New code attribute.
17620         (shiftrt): Ditto.
17621         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
17622         using any_shiftrt code iterator.
17623         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
17624         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
17625         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
17626         pattern from corresponding peephole2 patterns.
17627         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
17628         using any_shiftrt code iterator.
17629         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
17630         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
17631         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
17632         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
17633         *{ashr,lshr}<mode>3_cmp_zext.
17634         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
17635
17636 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
17637
17638         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
17639         scratch register.
17640         (*lshr<mode>3_cconly): Ditto.
17641
17642 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
17643
17644         * config/i386/i386.md (lshr<mode>3): Macroize expander from
17645         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
17646         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
17647         pattern from *lshr{di,ti}3_1 and corresponding splitters using
17648         DWI mode iterator.
17649         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
17650         from corresponding peephole2 patterns.
17651         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
17652         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
17653         and *lshrdi3_1_rex64 using SWI mode iterator.
17654         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
17655         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
17656         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
17657         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
17658         and *lshrdi3_cmp_rex64 using SWI mode iterator.
17659         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
17660         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
17661         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
17662         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
17663         SWI mode iterator.
17664
17665 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
17666
17667         * config/i386/i386.md (ashr<mode>3): Macroize expander from
17668         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
17669         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
17670         pattern from *ashr{di,ti}3_1 and corresponding splitters using
17671         DWI mode iterator.
17672         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
17673         from corresponding peephole2 patterns.
17674         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
17675         (ashrsi3_cvt): Rename from ashrsi3_31.
17676         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
17677         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
17678         and x86_64_shift_adj_3 using SWI48 mode iterator.
17679         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
17680         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
17681         and *ashrdi3_1_rex64 using SWI mode iterator.
17682         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
17683         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
17684         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
17685         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
17686         and *ashrdi3_cmp_rex64 using SWI mode iterator.
17687         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
17688         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
17689         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
17690         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
17691         SWI mode iterator.
17692         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
17693         * config/i386/i386.c (ix86_split_ashr): Update for renamed
17694         x86_shift<mode>_adj_3 expanders.
17695
17696 2010-04-10  Wei Guozhi  <carrot@google.com>
17697
17698         PR target/42601
17699         * config/arm/arm.c (arm_pic_static_addr): New function.
17700         (legitimize_pic_address): Call arm_pic_static_addr when it detects
17701         a static symbol.
17702         (arm_output_addr_const_extra): Output expression for new pattern.
17703         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
17704
17705 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
17706
17707         * ira-costs.c (record_reg_classes): Ignore alternatives that are
17708         not enabled.
17709
17710         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
17711         * web.c: Include "insn-config.h" and "recog.h".
17712         (union_match_dups): New function.
17713         (web_main): Call it.
17714         (union_defs): Don't try to recognize match_dups.
17715
17716         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
17717         if doing so would replace the entire pattern.
17718
17719 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
17720
17721         PR target/43707
17722         PR target/43709
17723         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
17724         and splitter pattern.  Change splitter operand 1 predicate to
17725         nonmemory_operand.
17726
17727 2010-04-09  Martin Jambor  <mjambor@suse.cz>
17728
17729         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
17730         lattices are addresses of CONST_DECLs with the same initial value.
17731         (ipcp_print_all_lattices): Print values of CONST_DECLs.
17732         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
17733
17734 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
17735             Bernd Schmidt  <bernds@codesourcery.com>
17736
17737         * loop-invariant.c (replace_uses): New static function.
17738         (move_invariant_reg): Use it to ensure we can replace the uses.
17739
17740 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
17741
17742         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
17743         function template.
17744         (picochip_override_options): Enable section anchors only above -O1.
17745         (picochip_reorg): Fixed a couple of build warnings.
17746
17747 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17748
17749         * configure.ac (plugin -rdynamic test): Log result.
17750         * configure: Regenerate.
17751         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
17752         (RDYNAMIC_SPEC): Define.
17753         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
17754
17755 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17756
17757         * configure.ac: Determine Sun ld version numbers.
17758         (comdat_group): Restrict GNU ld version checks to gld.
17759         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
17760         (enable_comdat): Support --enable-comdat.
17761         * configure: Regenerate.
17762         * doc/install.texi (Configuration): Document --enable-comdat.
17763
17764 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17765
17766         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
17767         * config/sol2-gld.h: ... here.
17768         * config.gcc (sparc*-*-solaris2*): Reflect this.
17769         (i[34567]86-*-solaris2*): Use it.
17770
17771 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
17772
17773         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
17774         setup_clocks_p.
17775         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
17776
17777 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17778
17779         PR 42965
17780         * diagnostic.c (diagnostic_initialize): Initialize
17781         some_warnings_are_errors.
17782         (diagnostic_finish): New.
17783         (diagnostic_action_after_output): Call it before exiting.
17784         (diagnostic_report_diagnostic): Do not print message here. Set
17785         some_warnings_are_errors.
17786         * diagnostic.h (diagnostic_context): Delete
17787         issue_warnings_are_errors_message. Add some_warnings_are_errors.
17788         (diagnostic_finish): Declare.
17789         * toplev.c (toplev_main): Call it before exit.
17790
17791 2010-04-09  Jason Merrill  <jason@redhat.com>
17792
17793         PR c++/42623
17794         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
17795         for incomplete type.
17796
17797         PR c++/41788
17798         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
17799         based on a warning flag.
17800
17801 2010-04-09  Richard Guenther  <rguenther@suse.de>
17802
17803         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
17804
17805 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
17806
17807         PR bootstrap/43684
17808         * varasm.c (default_assemble_visibility): Wrap vars that are
17809         set, but unused, by targets without GAS.
17810         * config/rs6000/rs6000.c (paired_emit_vector_compare):
17811         Remove set, but unused, vars.
17812         (rs6000_legitimize_tls_address): Likewise.
17813         (altivec_expand_dst_builtin): Likewise.
17814         * config/darwin.c (machopic_classify_symbol): Likewise.
17815         (machopic_indirection_name): Likewise.
17816
17817 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
17818
17819         * config/i386/i386.md (DWI): New mode iterator.
17820         (S): New mode attribute.
17821         (shift_operand): Ditto.
17822         (shift_immediate_operand): Ditto.
17823         (ashl_input_operand): Ditto.
17824         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
17825         using SDWIM mode iterator.
17826         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
17827         pattern from *ashl{di,ti}3_1 and corresponding splitters using
17828         DWI mode iterator.
17829         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
17830         from corresponding peephole2 patterns.
17831         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
17832         and x86_64_shift_adj_1 using SWI48 mode iterator.
17833         (x86_shift<mode>_adj_2): Ditto.
17834         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
17835         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
17836         using SWI48 mode iterator.
17837         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
17838         *ashldi3_cmp_rex64 using SWI mode iterator.
17839         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
17840         *ashldi3_cconly_rex64 using SWI mode iterator.
17841         * config/i386/i386.c (ix86_split_ashl): Update for renamed
17842         x86_shift<mode>_adj_{1,2}.
17843         (ix86_split_ashr): Ditto.
17844         (ix86_split_lshr): Ditto.
17845
17846 2010-04-09  Richard Guenther  <rguenther@suse.de>
17847
17848         * target.h (builtin_conversion): Pass in input and output types.
17849         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
17850         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
17851         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
17852         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
17853
17854         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
17855         Handle AVX modes.
17856         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
17857
17858 2010-04-09  Richard Guenther  <rguenther@suse.de>
17859
17860         PR target/43152
17861         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
17862
17863 2010-04-09  Richard Guenther  <rguenther@suse.de>
17864
17865         * tree-vectorizer.h (struct _stmt_vec_info): Document
17866         that vectype is the type of the LHS.
17867         (supportable_widening_operation, supportable_narrowing_operation):
17868         Get both input and output vector types as arguments.
17869         (vect_is_simple_use_1): Declare.
17870         (get_same_sized_vectype): Likewise.
17871         * tree-vect-loop.c (vect_determine_vectorization_factor):
17872         Set STMT_VINFO_VECTYPE to the vector type of the def.
17873         (vectorizable_reduction): Adjust.
17874         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
17875         Adjust.  Specify the output vector type.
17876         (vect_pattern_recog_1): Adjust.
17877         * tree-vect-stmts.c (get_same_sized_vectype): New function.
17878         (vectorizable_call): Adjust.
17879         (vectorizable_conversion): Likewise.
17880         (vectorizable_operation): Likewise.
17881         (vectorizable_type_demotion): Likewise.
17882         (vectorizable_type_promotion): Likewise.
17883         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
17884         the def.
17885         (vect_is_simple_use_1): New function.
17886         (supportable_widening_operation): Get both input and output
17887         vector types.
17888         (supportable_narrowing_operation): Likewise.
17889         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
17890
17891 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
17892
17893         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
17894         __thiscall and _thiscall as predefined macros.
17895         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
17896         thiscall attribute handling.
17897         (ix86_comp_type_attributes): Likewise.
17898         (ix86_function_regparm): Likewise.
17899         (ix86_return_pops_args): Likewise.
17900         (init_cumulative_args): Likewise.
17901         (find_drap_reg): Likewise.
17902         (ix86_static_chain): Likewise.
17903         (x86_this_parameter): Likewise.
17904         (x86_output_mi_thunk): Likewise.
17905         (ix86_attribute_table): Add description for thiscall attribute.
17906         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
17907         * doc/extend.texi: Add documentation for thiscall.
17908
17909 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17910
17911         PR c++/28584
17912         * c.opt (Wint-to-pointer-cast): Available in C++.
17913         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
17914
17915 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
17916
17917         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
17918         * calls.c (expand_call): Pass the function type to aggregate_value_p.
17919         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
17920         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
17921         function type instead.  Reorder and simplify checks.
17922
17923         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
17924
17925 2010-04-08  Jing Yu  <jingyu@google.com>
17926             Zdenek Dvorak  <ook@ucw.cz>
17927
17928         PR tree-optimization/42720
17929         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
17930         loop unswitch conditions here from ...
17931         (tree_unswitch_single_loop): ... here.
17932
17933 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
17934
17935         * tree-if-conv.c: Fix comments and simplify logic.
17936
17937 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
17938
17939         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
17940         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
17941         (main_tree_if_conversion): Update call to tree_if_conversion.
17942
17943 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17944
17945         PR 42485
17946         * doc/invoke.texi (-b,-V): Delete.
17947         * doc/tm.texi: Do not mention -b.
17948         * gcc.c (display_help): Delete -b and -V.
17949         (process_command): Delete -b and -V.
17950         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
17951
17952 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
17953             Wolfgang Gellerich  <gellerich@de.ibm.com>
17954
17955         Implement target hook for loop unrolling
17956         * target.h (loop_unroll_adjust): Add a new target hook function.
17957         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
17958         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
17959         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
17960         (s390_loop_unroll_adjust): Implement the new target hook for s390.
17961         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
17962         target hook.
17963         (decide_unroll_stupid): Likewise.
17964
17965 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17966
17967         PR target/43643
17968         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
17969
17970 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17971
17972         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
17973         (Specific, *-*-solaris2*): Likewise.
17974         Don't prefer Sun as over GNU as.
17975
17976 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
17977
17978         * config/s390/s390.c (override_options): Adjust the z10 defaults
17979         for max-unroll-times, max-completely-peeled-insns
17980         and max-completely-peel-times.
17981
17982 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17983
17984         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
17985         instructions for z10.
17986         (s390_expand_setmem): Likewise.
17987         (s390_expand_cmpmem): Likewise.
17988
17989 2010-04-08  Richard Guenther  <rguenther@suse.de>
17990
17991         PR tree-optimization/43679
17992         * tree-ssa-pre.c (eliminate): Only propagate copies.
17993
17994 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
17995
17996         PR bootstrap/43681
17997         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
17998         set but not used variable warning.
17999
18000 2010-04-08  Wei Guozhi  <carrot@google.com>
18001
18002         PR target/41653
18003         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
18004         (arm_size_rtx_costs): Call the new function when optimized for size.
18005
18006 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
18007
18008         PR debug/43670
18009         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
18010         op0 is not a MEM, just return NULL instead of assertion
18011         failure.
18012         (discover_nonconstant_array_refs): Don't walk debug stmts.
18013
18014 2010-04-08  Doug Kwan  <dougkwan@google.com>
18015
18016         * configure.ac: Recognize gold and do not use its version number
18017         to test ld features.
18018         * configure: Regenerate.
18019
18020 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
18021
18022         PR middle-end/40815
18023         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
18024         (negate_value): Move code to push elements to broken_up_substracts ...
18025         (eliminate_plus_minus_pair): ... here.  Push operands that have no
18026         negative pair to plus_negates.
18027         (repropagate_negates, init_reassoc, fini_reassoc): Update.
18028
18029 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18030
18031         * doc/install.texi (Configuration): Move description of
18032         --enable-lto, --with-libelf*, --enable-gold from Java section to
18033         general section.
18034
18035         * doc/generic.texi (Working with declarations)
18036         (Function Properties, C and C++ Trees): Fix typos.
18037         * doc/sourcebuild.texi (Top Level): Likewise.
18038
18039 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
18040
18041         PR c/18624
18042         * tree.h (DECL_READ_P): Define.
18043         (struct tree_decl_common): Add decl_read_flag.
18044         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
18045         a set but not used warning.
18046         (merge_decls): Merge DECL_READ_P flag.
18047         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
18048         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
18049         * c-common.c (handle_used_attribute, handle_unused_attribute):
18050         Likewise.
18051         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
18052         New prototypes.
18053         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
18054         New functions.
18055         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
18056         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
18057         c_parser_binary_expression, c_parser_cast_expression,
18058         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
18059         Call default_function_array_read_conversion instead of
18060         default_function_array_conversion where needed.
18061         (c_parser_unary_expression, c_parser_conditional_expression,
18062         c_parser_postfix_expression_after_primary, c_parser_initelt):
18063         Likewise.  Call mark_exp_read where needed.
18064         (c_parser_statement_after_labels, c_parser_asm_operands,
18065         c_parser_typeof_specifier, c_parser_sizeof_expression,
18066         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
18067         where needed.
18068         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
18069         New.
18070         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
18071         (warn_unused_but_set_parameter): Default to warn_unused
18072         && extra_warnings.
18073         * doc/invoke.texi: Document -Wunused-but-set-variable and
18074         -Wunused-but-set-parameter.
18075
18076         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
18077         used count variable.
18078         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
18079         when operandN variables aren't used in the body of the expander
18080         or splitter.
18081         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
18082         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
18083         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
18084         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
18085         FOR_EACH_IMM_USE_ON_STMT): Likewise.
18086         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
18087         * tree.c (PROCESS_ARG): Likewise.
18088
18089 2010-04-07  Simon Baldwin  <simonb@google.com>
18090
18091         * diagnostic.h (diagnostic_override_option_index): New macro to
18092         set a diagnostic's option_index.
18093         * c-tree.h (c_cpp_error): Add warning reason argument.
18094         * opts.c (_warning_as_error_callback): New.
18095         (register_warning_as_error_callback): Store callback for
18096         warnings enabled via enable_warning_as_error.
18097         (enable_warning_as_error): Call callback, minor code tidy.
18098         * opts.h (register_warning_as_error_callback): Declare.
18099         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
18100         response to -Werror=.
18101         (c_common_init_options): Register warning_as_error_callback in opts.c.
18102         * common.opt: Add -Wno-cpp option.
18103         * c-common.c (struct reason_option_codes_t): Map cpp warning
18104         reason codes to gcc option indexes.
18105         * (c_option_controlling_cpp_error): New function, lookup the gcc
18106         option index for a cpp warning reason code.
18107         * (c_cpp_error): Add warning reason argument, call
18108         c_option_controlling_cpp_error for diagnostic_override_option_index.
18109         * doc/invoke.texi: Document -Wno-cpp.
18110
18111 2010-04-07  Richard Guenther  <rguenther@suse.de>
18112
18113         * ipa-reference.c (mark_load): Use get_base_address.
18114         (mark_store): Likewise.
18115
18116         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
18117         inserting GIMPLE_NOPs into the IL.
18118         * tree-ssa-structalias.c (get_constraint_for_component_ref):
18119         Explicitly strip handled components and indirect references.
18120
18121         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
18122         folding address expressions.
18123         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
18124         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
18125         operand_equal_p to compare decls.
18126         (ptr_deref_may_alias_decl_p): Likewise.
18127         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
18128         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
18129         Handle reversed comparison ops.
18130         * tree-sra.c (asm_visit_addr): Use get_base_address.
18131         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
18132         * ipa-reference.c (mark_address): Use get_base_address.
18133
18134 2010-04-07  Richard Guenther  <rguenther@suse.de>
18135
18136         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
18137         Propagate constants everywhere.
18138
18139 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
18140
18141         PR debug/43516
18142         * tree.c (MAX_INT_CACHED_PREC): Define.
18143         (nonstandard_integer_type_cache): New array.
18144         (build_nonstandard_integer_type): Cache results for precision
18145         <= MAX_INT_CACHED_PREC.
18146
18147 2010-04-07  Richard Guenther  <rguenther@suse.de>
18148
18149         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
18150         -fargument-noalias-global, -fargument-noalias-anything): Remove.
18151         * common.opt: Likewise.
18152         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
18153         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
18154         (nonoverlapping_memrefs_p): Likewise.
18155         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
18156         * opts.c (common_handle_option): Handle OPT_fargument_alias,
18157         OPT_fargument_noalias, OPT_fargument_noalias_anything and
18158         OPT_fargument_noalias_global for backward compatibility.
18159
18160 2010-04-07  Richard Guenther  <rguenther@suse.de>
18161
18162         PR tree-optimization/43270
18163         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
18164         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
18165         * tree-ssa-pre.c (phi_translate_1): Adjust.
18166         (fully_constant_expression): Split out vn_reference handling to ...
18167         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
18168         Fold reads from constant strings.
18169         (vn_reference_lookup): Handle fully constant references.
18170         (vn_reference_lookup_pieces): Likewise.
18171         * Makefile.in (expmed.o-warn): Add -Wno-error.
18172
18173 2010-04-07  Martin Jambor  <mjambor@suse.cz>
18174
18175         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
18176
18177 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
18178
18179         PR driver/41594
18180         * gcc.c: Add -static-libstdc++ to list of recognized options.
18181
18182 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18183
18184         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
18185
18186 2010-04-07  Richard Guenther  <rguenther@suse.de>
18187
18188         PR middle-end/42617
18189         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
18190         bases build simple mem attributes to retain points-to information.
18191
18192 2010-04-07  Richard Guenther  <rguenther@suse.de>
18193
18194         PR middle-end/42617
18195         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
18196         preserve points-to related information.
18197
18198 2010-04-07  Richard Guenther  <rguenther@suse.de>
18199
18200         PR middle-end/42617
18201         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
18202         discard plain indirect references.
18203         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
18204         * tree.c (tree_nop_conversion): Likewise.
18205
18206 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
18207
18208         PR debug/43628
18209         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
18210
18211 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
18212
18213         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
18214         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
18215
18216 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
18217
18218         * tree-if-conv.c: Fix indentation and comments.
18219
18220 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
18221
18222         * tree-if-conv.c: Sort static functions in topological order.
18223
18224 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
18225
18226         * tree-if-conv.c: Fix indentation and comments.
18227
18228 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18229
18230         PR middle-end/43519
18231         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
18232         lang_hooks.types.type_for_size instead of
18233         build_nonstandard_integer_type.
18234         When converting an unsigned type to signed, double its precision.
18235         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
18236         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
18237         (graphite_create_new_loop_guard): When ub + 1 wraps around,
18238         use lb <= ub.
18239
18240 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18241
18242         PR middle-end/43519
18243         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
18244         POINTER_PLUS_EXPR for pointer types.
18245
18246 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18247
18248         PR middle-end/43519
18249         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
18250         * graphite-clast-to-gimple.c: Include langhooks.h.
18251         (max_signed_precision_type): New.
18252         (max_precision_type): Takes two types as arguments.
18253         (precision_for_value): New.
18254         (precision_for_interval): New.
18255         (gcc_type_for_interval): New.
18256         (gcc_type_for_value): New.
18257         (gcc_type_for_clast_term): New.
18258         (gcc_type_for_clast_red): New.
18259         (gcc_type_for_clast_bin): New.
18260         (gcc_type_for_clast_expr): Split up into several functions.
18261         (gcc_type_for_clast_eq): Rewritten.
18262         (compute_bounds_for_level): New.
18263         (compute_type_for_level_1): New.
18264         (compute_type_for_level): New.
18265         (gcc_type_for_cloog_iv): Removed.
18266         (gcc_type_for_iv_of_clast_loop): Rewritten.
18267         (graphite_create_new_loop): Compute the lower and upper bound types
18268         with gcc_type_for_clast_expr.
18269         (graphite_create_new_loop_guard): Same.
18270         (find_cloog_iv_in_expr): Removed.
18271         (compute_cloog_iv_types_1): Removed.
18272         (compute_cloog_iv_types): Removed.
18273         (gloog): Do not call compute_cloog_iv_types.
18274         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
18275         GBB_CLOOG_IV_TYPES.
18276         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
18277         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
18278         (GBB_CLOOG_IV_TYPES): Removed.
18279
18280 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18281
18282         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
18283         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
18284         (detect_commutative_reduction): Same.
18285
18286 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18287
18288         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
18289         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
18290         argument.
18291         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
18292         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
18293         (rewrite_commutative_reductions_out_of_ssa): Same.
18294         * passes.c (execute_function_todo): Call verify_ssa for every pass
18295         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
18296         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
18297         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
18298         with an extra argument.
18299         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
18300         verify_ssa only when the extra argument is true.
18301         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
18302         with an extra argument.
18303         (tree_transform_and_unroll_loop): Same.
18304
18305 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18306
18307         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
18308         for all the passes of the LNO having LOOP_CLOSED_SSA.
18309         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
18310         * tree-loop-distribution.c (pass_loop_distribution): Same.
18311         * tree-pass.h (TODO_verify_loops): Removed.
18312         * tree-ssa-loop.c (pass_tree_loop_init): Same.
18313         (pass_lim): Same.
18314         (pass_tree_unswitch): Same.
18315         (pass_predcom): Same.
18316         (pass_vectorize): Same.
18317         (pass_linear_transform): Same.
18318         (pass_graphite_transforms): Same.
18319         (pass_iv_canon): Same.
18320         (pass_complete_unroll): Same.
18321         (pass_complete_unrolli): Same.
18322         (pass_parallelize_loops): Same.
18323         (pass_loop_prefetch): Same.
18324         (pass_iv_optimize): Same.
18325
18326 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
18327
18328         PR middle-end/32824
18329         * passes.c (init_optimization_passes): Move pass_lim before
18330         pass_copy_prop and pass_dce_loop.
18331
18332 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
18333
18334         PR target/43667
18335         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
18336         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
18337         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
18338         MULTI_* defines for 4 argument vpermil2p* builtins.
18339
18340 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
18341
18342         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
18343         * config/i386/i386.c (x86_maybe_negate_const_int): New.
18344         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
18345         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
18346         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
18347         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
18348         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
18349         Use x86_maybe_negate_const_int to output insn mnemonic.
18350         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
18351         check from instruction predicate.  Update comments.
18352         * config/i386/sync.md (sync_add<mode>): Use
18353         x86_maybe_negate_const_int to output insn mnemonic.
18354
18355 2010-04-06  Jan Hubicka  <jh@suse.cz>
18356
18357         PR tree-optimization/42906
18358         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
18359         IGNORE_SELF argument.  Set visited_control_parents for fully
18360         processed BBs.
18361         (find_obviously_necessary_stmts): Update call of
18362         mark_control_dependent_edges_necessary.
18363         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
18364
18365 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
18366
18367         * config/i386/i386.md: Remove comment about 'e' and 'E'
18368         operand modifier.
18369
18370 2010-04-06  Richard Guenther  <rguenther@suse.de>
18371
18372         PR tree-optimization/43627
18373         * tree-vrp.c (extract_range_from_unary_expr): Widenings
18374         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
18375         not varying.
18376
18377 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
18378
18379         * BASE-VER: Change to 4.6.0.
18380
18381         PR target/43638
18382         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
18383         handling.
18384
18385 2010-04-06  Richard Guenther  <rguenther@suse.de>
18386
18387         PR middle-end/43661
18388         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
18389
18390 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18391
18392         * doc/invoke.texi (Optimize Options): Document that LTO
18393         won't remove object access purely due to incompatible
18394         declarations.
18395
18396 2010-04-04  Matthias Klose  <doko@ubuntu.com>
18397
18398         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
18399         Initialize variable.
18400
18401 2010-04-03  Richard Guenther  <rguenther@suse.de>
18402
18403         PR middle-end/42509
18404         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
18405         require a non-NULL MEM_OFFSET.
18406
18407 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
18408
18409         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
18410         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
18411         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
18412         config/alpha/predicates.md, config/arm/arm.md,
18413         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
18414         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
18415         config/darwin9.h, config/darwin.c, config/darwin.h,
18416         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
18417         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
18418         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
18419         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
18420         config/mips/mips.md, config/mn10300/mn10300.c,
18421         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
18422         config/rs6000/aix.h, config/rs6000/dfp.md,
18423         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
18424         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
18425         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
18426         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
18427         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
18428         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
18429         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
18430         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
18431         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
18432         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
18433         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
18434         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
18435         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
18436         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
18437         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
18438         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
18439         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
18440         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
18441         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
18442         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
18443         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
18444         opt-functions.awk, opth-gen.awk, params.def, passes.c,
18445         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
18446         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
18447         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
18448         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
18449         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
18450         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
18451         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
18452         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
18453         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
18454         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
18455         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
18456         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
18457         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
18458         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
18459
18460 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18461
18462         PR other/43620
18463         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
18464         * aclocal.m4: Regenerate.
18465
18466 2010-04-02  Richard Guenther  <rguenther@suse.de>
18467
18468         PR tree-optimization/43629
18469         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
18470         if we have seen a constant value.
18471
18472 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
18473
18474         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
18475
18476 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
18477
18478         PR target/43469
18479         * arm.c (legitimize_tls_address): Adjust call to
18480         gen_tls_load_dot_plus_four.
18481         (arm_note_pic_base): New function.
18482         (arm_cannot_copy_insn_p): Use it.
18483         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
18484         constraint.
18485
18486 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18487
18488         PR bootstrap/43531
18489
18490         Revert:
18491         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18492
18493         * Makefile.in ($(out_object_file)): Depend on
18494         gt-$(basename $(notdir $(out_file))).h.
18495
18496 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
18497
18498         * config.gcc (lm32-*-rtems*): Add t-lm32.
18499
18500 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
18501
18502         * config.gcc: Add lm32-*-rtems*.
18503         * config/lm32/rtems.h: New file.
18504
18505 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
18506
18507         PR target/42609
18508         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
18509
18510 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
18511
18512         * dwarf2out.c (output_compilation_unit_header): For
18513         -gdwarf-4 use version 4 instead of version 3.
18514         (output_line_info): For version 4 and above emit additional
18515         maximum ops per insn header field.
18516         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
18517
18518         * dwarf2out.c (is_c_family, is_java): Remove.
18519         (lower_bound_default): New function.
18520         (add_bound_info, gen_descr_array_type_die): Use it.
18521
18522 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
18523
18524         PR debug/43325
18525         * dwarf2out.c (gen_variable_die): Allow debug info for variable
18526         re-declaration when it happens in a function.
18527
18528 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
18529
18530         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
18531         (cgraph_remove_function_insertion_hook): Same.
18532         (cgraph_call_function_insertion_hooks): Same.
18533
18534 2010-04-01  Richard Guenther  <rguenther@suse.de>
18535
18536         PR middle-end/43614
18537         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
18538         and TREE_THIS_VOLATILE.
18539         (copy_ref_info): Likewise.
18540         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
18541         * tree.c (build6_stat): Ignore side-effects of all but arg5
18542         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
18543         TARGET_MEM_REF.
18544
18545 2010-04-01  Richard Guenther  <rguenther@suse.de>
18546
18547         PR tree-optimization/43607
18548         * ipa-type-escape.c (check_call): Do not access non-existing
18549         arguments.
18550
18551 2010-04-01  Richard Guenther  <rguenther@suse.de>
18552
18553         PR middle-end/43602
18554         Revert
18555         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
18556                     Jack Howarth <howarth@bromo.med.uc.edu>
18557
18558         * tree-profile.c (tree_init_ic_make_global_vars): Make static
18559         variables TLS.
18560
18561 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18562
18563         * doc/install.texi (Prerequisites): Document libelf usability on
18564         IRIX 5/6 and Solaris 2.
18565         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
18566         Update GNU as, GNU ld requirements.
18567         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
18568         Document Sun Studio compiler download.
18569         Update and simplify as, ld recommendations.
18570         (Specific, *-*-solaris2.7): Note obsoletion, removal.
18571
18572 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18573
18574         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
18575         with_tune_32 to pentium4.
18576
18577 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
18578
18579         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
18580
18581 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18582
18583         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
18584         obsoletion, removal.
18585         Update IDO URL.
18586         Document GNU as requirement.
18587         Update configure requirements.
18588         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
18589         Recomment IRIX 6.5.18+.
18590         Document IDF/IDL requirement.
18591         Document GNU as requirement.
18592         Document GNU ld bootstrap failure.
18593         Remove freeware.sgi.com reference.
18594
18595 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18596
18597         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
18598         UNIX V4.0, V5.0 obsoletion, removal.
18599         Remove --with-gc=simple reference.
18600         Update VM requirements during bootstrap.
18601         Remove -oldas bootstrap description.
18602         Update binutils reference.
18603         Remove comparison failure note.
18604
18605 2010-03-31  Richard Guenther  <rguenther@suse.de>
18606             Zdenek Dvorak  <ook@ucw.cz>
18607             Sebastian Pop  <sebastian.pop@amd.com>
18608
18609         PR middle-end/43464
18610         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
18611         with multiple arguments.
18612         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
18613
18614 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18615
18616         * graphite-dependences.c (print_pddr): Call print_pdr with an
18617         extra argument.
18618         * graphite-poly.c (debug_pdr): Add an extra argument for the
18619         verbosity level.
18620         (print_pdr): Same.
18621         (print_pbb_domain): Same.
18622         (print_pbb): Same.
18623         (print_scop_context): Same.
18624         (print_scop): Same.
18625         (print_cloog): Same.
18626         (debug_pbb_domain): Same.
18627         (debug_pbb): Same.
18628         (print_pdrs): Same.
18629         (debug_pdrs): Same.
18630         (debug_scop_context): Same.
18631         (debug_scop): Same.
18632         (debug_cloog): Same.
18633         (print_scop_params): Same.
18634         (debug_scop_params): Same.
18635         (print_iteration_domain): Same.
18636         (print_iteration_domains): Same.
18637         (debug_iteration_domain): Same.
18638         (debug_iteration_domains): Same.
18639         (print_scattering_function): Same.
18640         (print_scattering_functions): Same.
18641         (debug_scattering_function): Same.
18642         (debug_scattering_functions): Same.
18643         * graphite-poly.h (debug_pdr): Update declaration.
18644         (print_pdr): Same.
18645         (print_pbb_domain): Same.
18646         (print_pbb): Same.
18647         (print_scop_context): Same.
18648         (print_scop): Same.
18649         (print_cloog): Same.
18650         (debug_pbb_domain): Same.
18651         (debug_pbb): Same.
18652         (print_pdrs): Same.
18653         (debug_pdrs): Same.
18654         (debug_scop_context): Same.
18655         (debug_scop): Same.
18656         (debug_cloog): Same.
18657         (print_scop_params): Same.
18658         (debug_scop_params): Same.
18659         (print_iteration_domain): Same.
18660         (print_iteration_domains): Same.
18661         (debug_iteration_domain): Same.
18662         (debug_iteration_domains): Same.
18663         (print_scattering_function): Same.
18664         (print_scattering_functions): Same.
18665         (debug_scattering_function): Same.
18666         (debug_scattering_functions): Same.
18667
18668 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18669
18670         * graphite-poly.c (print_scattering_function_1): New.
18671         (print_scattering_function): Call it.
18672         (print_scop_params): Remove spaces at the end of lines.
18673         (print_cloog): New.
18674         (debug_cloog): New.
18675         * graphite-poly.h (print_cloog): Declared.
18676         (debug_cloog): Declared.
18677
18678 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18679
18680         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
18681         in loop->header.
18682         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
18683         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
18684         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
18685         to switch between adding the IV bump in loop->latch or in loop->header.
18686
18687 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18688
18689         * graphite-poly.c (print_scattering_function): Pretty print following
18690         the scoplib format.
18691         (print_pdr): Same.
18692         (print_pbb_domain): Same.
18693         (dump_gbb_cases): Same.
18694         (dump_gbb_conditions): Same.
18695         (print_pdrs): Same.
18696         (print_pbb): Same.
18697         (print_scop_params): Same.
18698         (print_scop_context): Same.
18699         (print_scop): Same.
18700         (print_pbb_body): New.
18701         (lst_indent_to): New.
18702         (print_lst): Start new lines with a #.
18703         * graphite-poly.h (pbb_bb): New.
18704         (pbb_index): Use pbb_bb.
18705         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
18706         disjuncts.
18707         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
18708
18709 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
18710
18711         * dwarf2out.c (size_of_die): For -gdwarf-4 use
18712         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
18713         and 0 instead of 1 for dw_val_class_flag.
18714         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
18715         dw_val_class_range_list, dw_val_class_loc_list,
18716         dw_val_class_lineptr and dw_val_class_macptr, use
18717         DW_FORM_flag_present for dw_val_class_flag and
18718         DW_FORM_exprloc for dw_val_class_loc.
18719         (output_die): For -gdwarf-4 print dw_val_class_loc
18720         size as uleb128 instead of 1 or 2 bytes and don't print
18721         anything for dw_val_class_flag.
18722
18723         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
18724         instead of cselib_lookup following by tweaking locs->setting_insn.
18725
18726         PR bootstrap/43596
18727         * cselib.c (cselib_process_insn): Clear cselib_current_insn
18728         even before returning from label, setjmp call or volatile asm
18729         handling.
18730
18731 2010-03-31  Richard Guenther  <rguenther@suse.de>
18732
18733         PR middle-end/43600
18734         * cgraphunit.c (cgraph_output_in_order): Do not allocate
18735         temporary data on stack.
18736
18737 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18738
18739         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
18740         (PUSHSECTION_ASM_OP): Remove.
18741         (POPSECTION_ASM_OP): Remove.
18742         (PUSHSECTION_FORMAT): Remove.
18743         * config/sol2.h (PUSHSECTION_FORMAT): Define.
18744         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
18745         * config/sol2.c (solaris_output_init_fini): Use it.
18746
18747 2010-03-31  Jie Zhang  <jie@codesourcery.com>
18748
18749         PR 43574
18750         * opt-functions.awk (var_type_struct): Use signed char type
18751         for simple variables.
18752
18753 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18754
18755         * config/sol2.c: Include output.h.
18756         (solaris_assemble_visibility): New function.
18757         * config/t-sol2 (sol2.o): Add output.h dependency.
18758         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
18759         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
18760         Redefine.
18761
18762 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
18763
18764         PR target/43580
18765         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
18766         V2SImode or XFmode on PRE_DEC.
18767
18768         PR debug/43557
18769         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
18770         BLKmode.
18771
18772 2010-03-31  Jie Zhang  <jie@codesourcery.com>
18773
18774         PR 43562
18775         * reload.h (caller_save_initialized_p): Declare.
18776         * toplev.c (backend_init_target): Don't call
18777         init_caller_save but set caller_save_initialized_p to false.
18778         * caller-save.c (caller_save_initialized_p): Define.
18779         (init_caller_save): Check caller_save_initialized_p.
18780         * ira.c (ira): Call init_caller_save if flag_caller_saves.
18781
18782 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18783
18784         PR target/39048
18785         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
18786         and soft-fp/t-softfp to tmake_file.
18787         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
18788         (LIBGCC2_TF_CEXT): Define.
18789         (TF_SIZE): Define.
18790
18791 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
18792
18793         PR debug/42977
18794         * cselib.c (n_useless_values): Document handling of debug locs.
18795         (n_useless_debug_values, n_debug_values): New variables.
18796         (new_elt_loc_list): Don't add to debug values, keep count.
18797         (promote_debug_loc): New.
18798         (cselib_reset_table): Zero new variables.
18799         (entry_and_rtx_equal_p): Promote debug locs.
18800         (discard_useless_locs): Increment n_useless_debug_values for
18801         debug values.
18802         (remove_useless_values): Adjust n_useless_values and n_debug_values
18803         with n_useless_debug_values.
18804         (add_mem_for_addr): Promote debug locs.
18805         (cselib_lookup_mem): Likewise.
18806         (cselib_lookup_addr): Renamed to...
18807         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
18808         (cselib_log_lookup): ... this.  Turn into...
18809         (cselib_lookup_addr): ... new wrapper.
18810         (cselib_lookup_from_insn): New.
18811         (cselib_invalidate_regno): Increment n_useless_debug_values for
18812         debug values.
18813         (cselib_invalidate_mem): Likewise.
18814         (cselib_process_insn): Take n_deleted and n_debug_values into
18815         account to guard remove_useless_value call.
18816         (cselib_finish): Zero n_useless_debug_values.
18817         * cselib.h (cselib_lookup_from_insn): Declare.
18818         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
18819         (sched_analyze_2): Likewise.
18820
18821 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
18822
18823         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
18824         functions.
18825         (adjust_mems): Replace narrowing SUBREG of expression containing
18826         just PLUS, MINUS, MULT and ASHIFT of registers and constants
18827         with operations in the narrower mode.
18828
18829         PR debug/43593
18830         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
18831         regs_invalidated_by_call instead all call_used_reg_set registers.
18832
18833 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
18834
18835         PR middle-end/43430
18836         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
18837         pointer comparisons with types_compatible_p.
18838         * tree-vect-stmts.c (vectorizable_call): Same.
18839         (vectorizable_condition): Same.
18840
18841 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18842
18843         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
18844         stack check if the mask would be zero.
18845
18846 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
18847             Jack Howarth <howarth@bromo.med.uc.edu>
18848
18849         * tree-profile.c (tree_init_ic_make_global_vars): Make static
18850         variables TLS.
18851
18852 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
18853
18854         PR other/25232
18855         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
18856         and __unordtf2.
18857         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
18858         Include ___unordxf2 and ___unordtf2.
18859         * config/i386/libgcc-glibc.ver: Do not define inheritance from
18860         GCC_4.4.0 here.
18861
18862 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
18863
18864         * config/lm32/t-lm32: New file.
18865         * config.gcc: Use the above file when targetting lm32.
18866
18867 2010-03-28  Duncan Sands  <baldrick@free.fr>
18868
18869         * Makefile.in (PLUGIN_HEADERS): Add except.h.
18870
18871 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
18872
18873         PR middle-end/43431
18874         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
18875         Improve vectorization cost model diagnostic.
18876
18877 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
18878
18879         PR middle-end/43436
18880         * tree-vect-data-refs.c (vect_analyze_data_refs): When
18881         compute_data_dependences_for_loop returns false, early exit
18882         and output an extra diagnostic for the failed data reference
18883         analysis.
18884
18885 2010-03-29  Richard Guenther  <rguenther@suse.de>
18886
18887         PR tree-optimization/43560
18888         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
18889         (can_sm_ref_p): Treat stores to readonly locations as trapping.
18890
18891 2010-03-29  Jie Zhang  <jie@codesourcery.com>
18892
18893         PR 43564
18894         * toplev.c (process_options): Set optimization_default_node
18895         and optimization_current_node.
18896         * opts.c (decode_options): Don't set optimization_default_node
18897         and optimization_current_node.
18898
18899 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
18900
18901         * config/rtems.h: Abandon -qrtems_debug.
18902
18903 2010-03-28  Jan Hubicka  <jh@suse.cz>
18904
18905         PR tree-optimization/43505
18906         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
18907         map should not be copied.
18908
18909 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18910
18911         PR middle-end/41674
18912         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
18913         cdtors, set DECL_PRESERVE_P.
18914         * ipa.c (cgraph_externally_visible_p): Return true if declaration
18915         should be preseved.
18916
18917 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
18918
18919         PR tree-optimization/43528
18920         * stor-layout.c (place_field): Check that constant fits into
18921         unsigned HWI when skipping calculation of MS bitfield layout.
18922
18923 2010-03-27  Jan Hubicka  <jh@suse.cz>
18924
18925         PR middle-end/43391
18926         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
18927         notice_global_symbol work.
18928
18929 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
18930
18931         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
18932         instead of dwarf2out_decl.
18933         (struct var_loc_node): Remove section_label field.
18934         (dwarf2out_function_decl): New function.
18935         (dwarf2out_var_location): Don't set section_label field.
18936         (dwarf2out_begin_function): Don't empty decl_loc_table here.
18937
18938 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
18939
18940         PR tree-optimization/43544
18941         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
18942         First argument for builtin vectorized function hook is now a
18943         tree to be able to distinguish between machine specific and
18944         standard builtins.
18945         * targhooks.c (default_builtin_vectorized_function): Ditto.
18946         * targhooks.h (default_builtin_vectorized_function): Ditto.
18947         * target.h (struct gcc_target): Ditto.
18948         * tree-vect-stmts.c (vectorizable_function): Ditto.
18949         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
18950         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
18951         Ditto.
18952
18953 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
18954
18955         PR c/43381
18956         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
18957         nested binding iff it is a FUNCTION_DECL.
18958         (store_parm_decls_newstyle): Pass nested=true to bind for
18959         FUNCTION_DECLs amongst parameters.
18960
18961 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
18962
18963         * var-tracking.c (vt_expand_loc_callback): Don't run
18964         cselib_expand_value_rtx_cb in dummy mode if
18965         cselib_dummy_expand_value_rtx_cb returned false.
18966
18967         * var-tracking.c (emit_note_insn_var_location): For one part
18968         notes with offset 0, don't add EXPR_LIST around the location.
18969         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
18970         add_location_or_const_value_attribute): Adjust for that change.
18971
18972         PR debug/43540
18973         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
18974         into first operand and location into second.
18975         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
18976         dw_cfi_oprnd_loc for DW_CFA_expression.
18977         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
18978         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
18979         assume first argument is regnum and second argument is location.
18980
18981 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
18982
18983         PR target/42113
18984         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
18985         of scratch register to DImode.  Split to DImode comparison operator.
18986         Use SImode subreg of scratch register in the multiplication.
18987         (*cmp_sadd_sidi): Ditto.
18988         (*cmp_ssub_si): Ditto.
18989         (*cmp_ssub_sidi): Ditto.
18990
18991 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
18992
18993         PR target/43524
18994         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
18995         Remove invalid assert and wrong comment.
18996
18997 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
18998
18999         PR debug/43516
19000         * flags.h (final_insns_dump_p): New extern.
19001         * final.c (final_insns_dump_p): New variable.
19002         (rest_of_clean_state): Set it before -fdump-final-insns=
19003         dumping, clear afterwards.
19004         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
19005         MEM_ALIAS_SET on MEMs.
19006
19007 2010-03-26  David S. Miller  <davem@davemloft.net>
19008
19009         * configure.ac: Fix sparc GOTDATA_OP bug check.
19010         * configure: Rebuild.
19011
19012 2010-03-26  Alan Modra  <amodra@gmail.com>
19013
19014         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
19015
19016 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19017
19018         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
19019         TLS_SECTION_ASM_FLAG.
19020
19021 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
19022
19023         PR bootstrap/43511
19024         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
19025         Clear first_function_block_is_cold.
19026
19027         PR c/43385
19028         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
19029         argument if the argument is truth_value_p.
19030
19031 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
19032
19033         * config/rs6000/constraints.md: Update copyright year for my changes.
19034
19035         PR target/43484
19036         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
19037         used in reg+reg addressing, swap registers.
19038
19039 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
19040
19041         PR debug/43293
19042         * target.h (struct gcc_target): Add code_end hook.
19043         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
19044         if not yet defined.
19045         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
19046         * toplev.c (compile_file): Call targetm.asm_out.code_end
19047         hook before unwind info/debug info output.
19048         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
19049         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
19050         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
19051         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
19052         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
19053         * config/i386/i386.c (ix86_file_end): Renamed to...
19054         (ix86_code_end): ... this.  Make static.  Don't call
19055         file_end_indicate_exec_stack.  Emit unwind info using
19056         final_start_function/final_end_function.
19057         (darwin_x86_file_end): Remove.
19058         (TARGET_ASM_CODE_END): Define.
19059         * config/i386/i386.h (TARGET_ASM_FILE_END,
19060         NEED_INDICATE_EXEC_STACK): Don't define.
19061         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
19062         (TARGET_ASM_FILE_END): Define to darwin_file_end.
19063         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
19064         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
19065
19066         PR target/43498
19067         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
19068         at the beginning and final_end_function at the end.
19069         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
19070
19071 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19072
19073         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
19074         and Sun as TLS syntax.
19075         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
19076         * configure: Regenerate.
19077         * config.in: Regenerate.
19078         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
19079         (default_elf_asm_named_section): Use it.
19080         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
19081         (i386_output_dwarf_dtprel): Likewise.
19082         (output_addr_const_extra): Likewise.
19083         (output_pic_addr_const): Lowercase @GOTTPOFF.
19084         (output_addr_const_extra): Likewise.
19085         (output_pic_addr_const): Lowercase @GOTNTPOFF.
19086         (output_addr_const_extra): Likewise.
19087         (output_pic_addr_const): Lowercase @INDNTPOFF.
19088         (output_addr_const_extra): Likewise.
19089         (output_pic_addr_const): Lowercase @NTPOFF.
19090         (output_addr_const_extra): Likewise.
19091         (output_pic_addr_const): Lowercase @TPOFF.
19092         (output_addr_const_extra): Likewise.
19093         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
19094         (*tls_global_dynamic_64): Likewise.
19095         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
19096         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
19097
19098         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
19099         (ASM_OUTPUT_TLS_COMMON): Use it.
19100         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
19101
19102         PR target/38118
19103         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
19104         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
19105         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
19106         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
19107         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
19108         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
19109
19110 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19111
19112         * config/i386/i386.c (override_options): Don't accept
19113         -mtls-dialect=sun any longer.
19114         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
19115         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
19116         (*tls_local_dynamic_base_32_sun): Likewise.
19117         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
19118
19119 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
19120
19121         PR debug/43508
19122         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
19123         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
19124
19125         PR debug/43479
19126         * ira.c (adjust_cleared_regs): New function.
19127         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
19128
19129         PR debug/19192
19130         PR debug/43479
19131         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
19132         from gimple_block.
19133         * expr.c (expand_expr_real): Restore previous
19134         curr_insn_source_location and curr_insn_block after
19135         expand_expr_real_1 call.
19136         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
19137         instead of expand_expr_real_1.
19138
19139 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
19140
19141         PR rtl-optimization/43413
19142         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
19143         hard regs too.
19144
19145 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
19146
19147         PR target/43348
19148         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
19149         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
19150
19151 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
19152
19153         * config/i386/i386.c (ix86_target_string): Add -mfma.
19154         Fix a typo in comment.
19155
19156 2010-03-22  Mike Stump  <mikestump@comcast.net>
19157
19158         PR target/23071
19159         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
19160         Don't overly align based upon packed packed fields.
19161
19162 2010-03-22  Jason Merrill  <jason@redhat.com>
19163
19164         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
19165         Use () rather than [], and move before the element type.
19166
19167 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19168
19169         * doc/configfiles.texi (Configuration Files): Removed
19170         fixinc/Makefile*, intl/Makefile.*.
19171         * doc/makefile.texi: Fixed markup. Abstract from version
19172         control system used.
19173         (Makefile): Removed obsolete gcc/java/parse.y example.
19174         * doc/sourcebuild.texi: Likewise.
19175         (Top Level): Added config, gnattools, libdecnumber, libgcc,
19176         libgomp, libssp.  Removed fastjar.
19177         (Miscellaneous Docs): Clarify location.
19178         Added COPYING3, COPYING3.LIB.
19179         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
19180
19181 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19182
19183         PR target/38085
19184         * config/i386/i386.c (x86_function_profiler)
19185         [!NO_PROFILE_COUNTERS]: Fix typo.
19186         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
19187         instead of callq.
19188
19189 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
19190             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19191
19192         * doc/sourcebuild.texi (Test Directives): Split into six
19193         subsections, with most of the current text in new subsections
19194         Directives, Selectors, and Final Actions.
19195         (Directives): Split list of test directives into multiple
19196         subsubsections.
19197         (Selectors): Describe use and syntax of selectors.
19198         (Effective-Target Keywords): Describe all existing keywords.
19199         (Add Options): Describe features for dg-add-options.
19200         (Require Support): Describe variants of dg-require-support.
19201         (Final Actions): Describe commands to use in dg-final.
19202
19203 2010-03-22  Michael Matz  <matz@suse.de>
19204
19205         PR middle-end/43475
19206         * recog.c (validate_replace_rtx_group): Replace also in
19207         REG_EQUAL and REG_EQUIV notes.
19208
19209 2010-03-22  Richard Guenther  <rguenther@suse.de>
19210
19211         PR tree-optimization/43390
19212         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
19213         sure vector extracts are type correct.
19214
19215 2010-03-22  Richard Guenther  <rguenther@suse.de>
19216
19217         PR middle-end/40106
19218         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
19219         x * sqrt (x) even when optimizing for size if the target
19220         has native support for sqrt.
19221
19222 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
19223
19224         * varasm.c (make_decl_rtl_for_debug): Also clear
19225         flag_mudflap for the duration of make_decl_rtl call.
19226
19227         PR debug/43443
19228         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
19229         locs from preserved VALUEs.
19230
19231 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19232
19233         PR middle-end/42718
19234         * pa.md (movmemsi): Set align to one if zero.
19235         (movmemdi): Likewise.
19236
19237 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
19238
19239         PR target/42321
19240         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
19241         with their corresponding prologue pushes.
19242
19243 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
19244
19245         PR target/43156
19246         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
19247         at the begining or end.
19248         (spu_expand_epilogue): Likewise.
19249
19250 2010-03-20  Richard Guenther  <rguenther@suse.de>
19251
19252         PR rtl-optimization/43438
19253         * combine.c (make_extraction): Properly zero-/sign-extend an
19254         extraction of the low part of a CONST_INT.  Also handle
19255         CONST_DOUBLE.
19256
19257 2010-03-19  Mike Stump  <mikestump@comcast.net>
19258
19259         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
19260         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
19261         (override_options): Use SUBTARGET32_DEFAULT_CPU.
19262
19263 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
19264
19265         PR c/43211
19266         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
19267         an error.
19268
19269 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
19270
19271         PR rtl-optimization/42258
19272         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
19273         use that may match DEF.
19274
19275         PR target/40697
19276         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
19277         the cost of loading the constant rather than assuming
19278         COSTS_N_INSNS (1).
19279         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
19280         outer code is AND, do the same tests as the andsi3 expander and
19281         return COSTS_N_INSNS (1) if and is cheap.
19282
19283         * optabs.c (avoid_expensive_constant): Fix formatting.
19284
19285 2010-03-19  Michael Matz  <matz@suse.de>
19286
19287         PR c++/43116
19288         * attribs.c (decl_attributes): When rebuilding a function pointer
19289         type use the same qualifiers as the original pointer type.
19290
19291 2010-03-19  Martin Jambor  <mjambor@suse.cz>
19292
19293         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
19294         and is_gimple_ip_invariant_address.
19295
19296 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19297
19298         Revert
19299         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19300
19301         * config/arm/arm.c (arm_override_options): Turn off
19302         flag_dwarf2_cfi_asm for AAPCS variants.
19303
19304 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19305
19306         PR target/43399
19307         * config/arm/arm.c (emit_multi_reg_push): Update comments.
19308         Use PRE_MODIFY instead of PRE_DEC.
19309         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
19310         (vfp_emit_fstmd): Likewise.
19311
19312 2010-03-19  Michael Matz  <matz@suse.de>
19313
19314         PR target/43305
19315         * builtins.c (expand_builtin_interclass_mathfn,
19316         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
19317         if that fails.
19318
19319 2010-03-19  Richard Guenther  <rguenther@suse.de>
19320
19321         PR tree-optimization/43415
19322         * tree-ssa-pre.c (phi_translate): Split out worker to ...
19323         (phi_translate_1): ... this.
19324         (phi_translate): Move all caching here.  Cache all NARY
19325         and REFERENCE translations.
19326
19327 2010-03-19  David S. Miller  <davem@davemloft.net>
19328
19329         With help from Eric Botcazou.
19330         * config/sparc/sparc.c: Include dwarf2out.h.
19331         (emit_pic_helper): Delete.
19332         (pic_helper_symbol_name): Delete.
19333         (pic_helper_emitted_p): Delete.
19334         (pic_helper_needed): New.
19335         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
19336         (get_pc_thunk_name): New.
19337         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
19338         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
19339         Set pic_helper_needed to true.  Don't call emit_pic_helper.
19340         (sparc_expand_prologue): Update load_pic_register call.
19341         (sparc_output_mi_thunk): Likewise.
19342         (sparc_file_end): Emit a hidden comdat symbol for the PIC
19343         thunk if possible.  Output CFI information as needed.
19344
19345 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
19346             Jack Howarth <howarth@bromo.med.uc.edu>
19347
19348         PR target/36399
19349         * config/i386/i386.h: Fix ABI on darwin x86-32.
19350
19351 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
19352
19353         * tree.h: Declare make_decl_rtl_for_debug.
19354         * varasm.c (make_decl_rtl_for_debug): New.
19355         * dwarf2out.c (rtl_for_decl_location): Call it.
19356         * cfgexpand.c (expand_debug_expr): Call it.
19357
19358 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
19359
19360         PR bootstrap/43399
19361         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
19362         mem_mode.
19363
19364         PR bootstrap/43403
19365         * var-tracking.c (vt_init_cfa_base): Do nothing if
19366         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
19367
19368 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
19369
19370         PR debug/42873
19371         * var-tracking.c (canonicalize_vars_star): New.
19372         (dataflow_post_merge_adjust): Use it.
19373
19374 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
19375
19376         PR debug/43058
19377         * var-tracking.c (non_suitable_const): New function.
19378         (add_uses): For DEBUG_INSNs with constants, don't record any
19379         value, instead just the constant value itself.
19380         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
19381         is not VAR_LOC_UNKNOWN_P, set var to the constant.
19382         (emit_notes_in_bb): Likewise.
19383         (emit_note_insn_var_location): For onepart variables if
19384         cur_loc is a VOIDmode constant, use DECL_MODE.
19385
19386 2010-03-18  Martin Jambor  <mjambor@suse.cz>
19387
19388         PR middle-end/42450
19389         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
19390         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
19391         all non-clones.  Moved call redirection...
19392         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
19393         (cgraph_materialize_all_clones): Dispose of all
19394         combined_args_to_skip bitmaps.
19395         (verify_cgraph_node): Do not check for edges pointing to wrong
19396         nodes in inline clones.
19397         * tree-inline.c (copy_bb): Call
19398         cgraph_redirect_edge_call_stmt_to_callee.
19399         * ipa.c (cgraph_remove_unreachable_nodes): Call
19400         cgraph_node_remove_callees even when there are used clones.
19401
19402 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
19403
19404         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
19405
19406 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
19407
19408         PR target/43383
19409         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
19410         for 32bit.
19411
19412 2010-03-18  Michael Matz  <matz@suse.de>
19413
19414         PR middle-end/43419
19415         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
19416         into sqrt(x) if we need to preserve signed zeros.
19417
19418 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
19419             Eric Botcazou  <ebotcazou@adacore.com>
19420
19421         PR rtl-optimization/43360
19422         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
19423         note if we don't know its invariant status.
19424
19425 2010-03-18  Michael Matz  <matz@suse.de>
19426
19427         PR tree-optimization/43402
19428         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
19429         PHI chains of ssa names registered for update.
19430
19431 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
19432
19433         PR target/42427
19434         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
19435         non-offsettable and pre_modify update addressing.
19436         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
19437         and "2" alternatives "#".
19438         (*movdd_softfloat32): Make all alternatives "#";
19439         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
19440         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
19441         (*movdf_softfloat32): Make all alternatives "#";
19442         (movdi): Use the new DIFD mode iterator to create a common splitter
19443         for movdi, movdf and movdd patterns.
19444
19445 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
19446
19447         * common.opt (dumpdir): Remove redundant tab.
19448
19449 2010-03-17  Martin Jambor  <mjambor@suse.cz>
19450
19451         PR tree-optimization/43347
19452         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
19453         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
19454
19455 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
19456
19457         PR rtl-optimization/42216
19458         * regrename.c (create_new_chain): New function, broken out from...
19459         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
19460         appending a use to an empty chain.
19461         (build_def_use): Remove previous changes that convert OP_INOUT to
19462         OP_OUT operands; instead detect the case where an OP_INOUT operand
19463         uses a previously untracked register and create an empty chain for it.
19464
19465 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19466
19467         * doc/extend.texi (Function Attributes): Rewrite unfinished
19468         sentence in ms_abi documentation.
19469
19470 2010-03-17  Alan Modra  <amodra@gmail.com>
19471
19472         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
19473         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
19474         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
19475         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
19476
19477 2010-03-16  Richard Henderson  <rth@redhat.com>
19478
19479         PR middle-end/43365
19480         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
19481         (lower_try_finally): Save and restore eh_seq around the expansion
19482         of the try-finally.
19483
19484 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
19485
19486         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
19487         statements before splitting block.
19488
19489 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19490
19491         * doc/sourcebuild.texi (Testsuites): Fix markup.
19492         Use pathnames relative to gcc/testsuite.
19493         (Test Directives): Move description of how timeout is determined.
19494         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
19495         (C Tests): Correct gcc.misc-tests directory.
19496         Framework tests now live in gcc.test-framework.
19497
19498 2010-03-16  Richard Guenther  <rguenther@suse.de>
19499
19500         PR middle-end/43379
19501         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
19502         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
19503
19504 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
19505             Alexandre Oliva  <aoliva@redhat.com>
19506
19507         PR tree-optimization/42917
19508         * lambda-code.c (remove_iv): Skip debug statements.
19509         (lambda_loopnest_to_gcc_loopnest): Likewise.
19510         (not_interesting_stmt): Debug statements are not interesting.
19511
19512 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
19513
19514         PR debug/43051
19515         PR debug/43092
19516         * cselib.c (cselib_preserve_constants,
19517         cfa_base_preserved_val): New static variables.
19518         (preserve_only_constants): New function.
19519         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
19520         clear its REG_VALUES.  If cselib_preserve_constants, don't
19521         empty the whole hash table, but preserve there VALUEs with constants,
19522         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
19523         (cselib_preserve_cfa_base_value): New function.
19524         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
19525         (cselib_init): Change argument to int bitfield.  Set
19526         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
19527         is in it.
19528         (cselib_finish): Clear cselib_preserve_constants and
19529         cfa_base_preserved_val.
19530         * cselib.h (enum cselib_record_what): New enum.
19531         (cselib_init): Change argument to int.
19532         (cselib_preserve_cfa_base_value): New prototype.
19533         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
19534         * dse.c (dse_step1): Likewise.
19535         * cfgcleanup.c (thread_jump): Likewise.
19536         * sched-deps.c (sched_analyze): Likewise.
19537         * gcse.c (local_cprop_pass): Likewise.
19538         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
19539         If FN is non-NULL, call the callback always and whenever it returns
19540         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
19541         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
19542         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
19543         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
19544         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
19545         * var-tracking.c: Include recog.h.
19546         (bb_stack_adjust_offset): Remove.
19547         (vt_stack_adjustments): Don't call it, instead just gather the
19548         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
19549         (adjust_stack_reference): Remove.
19550         (compute_cfa_pointer): New function.
19551         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
19552         (struct adjust_mem_data): New type.
19553         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
19554         functions.
19555         (get_address_mode): New function.
19556         (replace_expr_with_values): Use it.
19557         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
19558         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
19559         (adjust_sets): Remove.
19560         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
19561         Use get_address_mode.
19562         (get_adjusted_src): Remove.
19563         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
19564         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
19565         (add_with_sets): Don't call adjust_sets.
19566         (fp_setter, vt_init_cfa_base): New functions.
19567         (vt_initialize): Change return type to bool.  Move most of pool etc.
19568         initialization to the beginning of the function from end.  Pass
19569         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
19570         If !frame_pointer_needed, call vt_stack_adjustment before mos
19571         vector is filled, call vt_init_cfa_base if argp/framep has been
19572         eliminated to sp.  If frame_pointer_needed and argp/framep has
19573         been eliminated to hard frame pointer, set
19574         hard_frame_pointer_adjustment and call vt_init_cfa_base after
19575         encountering fp setter in the prologue.  For MO_ADJUST, call
19576         log_op_type before pusing the op into mos vector, not afterwards.
19577         Call adjust_insn before cselib_process_insn/add_with_sets,
19578         call cancel_changes (0) afterwards.
19579         (variable_tracking_main_1): Adjust for vt_initialize calling
19580         vt_stack_adjustments and returning whether it succeeded or not.
19581
19582 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
19583
19584         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
19585         debug statements.
19586
19587 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
19588
19589         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
19590         has been set.
19591         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
19592         drap_reg has not been set.
19593
19594 2010-03-15  Michael Matz  <matz@suse.de>
19595
19596         PR middle-end/43300
19597         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
19598         use it to expand block copies.
19599         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
19600         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
19601         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
19602
19603 2010-03-15  Richard Guenther  <rguenther@suse.de>
19604
19605         PR tree-optimization/43367
19606         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
19607         elimination check.
19608
19609 2010-03-15  Richard Guenther  <rguenther@suse.de>
19610
19611         PR tree-optimization/43317
19612         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
19613
19614 2010-03-15  Martin Jambor  <mjambor@suse.cz>
19615
19616         PR tree-optimization/43141
19617         * tree-sra.c (create_abstract_origin): New function.
19618         (modify_function): Call create_abstract_origin.
19619
19620 2010-03-15  Chris Demetriou  <cgd@google.com>
19621
19622         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
19623         wasn't copied.
19624
19625 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19626
19627         PR middle-end/43354
19628         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
19629         call insert_out_of_ssa_copy for default definitions.
19630
19631 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19632
19633         * graphite-clast-to-gimple.c (my_long_long): Defined.
19634         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
19635         * graphite-sese-to-poly.c (my_long_long): Defined.
19636         (scop_ivs_can_be_represented): Use it.
19637
19638 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19639
19640         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
19641         graphite-max-bbs-per-function, and loop-block-tile-size.
19642         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
19643         with "maximum".
19644         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
19645
19646 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19647
19648         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
19649         forward declaration.
19650         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
19651         (add_upper_bounds_from_estimated_nit): New.
19652         (build_loop_iteration_domains): Use it.
19653
19654 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19655
19656         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
19657
19658 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19659
19660         PR middle-end/43306
19661         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
19662         should be an INTEGER_CST.  Also handle CASE_CONVERT.
19663
19664 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19665
19666         * graphite.c (graphite_initialize): To bound the number of bbs per
19667         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
19668         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
19669         * doc/invoke.texi: Document it.
19670
19671 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19672
19673         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
19674         * graphite-sese-to-poly.h (build_poly_scop): Same.
19675
19676 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19677
19678         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
19679         the number of parameters in the scop.  Use as an upper bound
19680         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
19681         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
19682         * doc/invoke.texi: Document it.
19683
19684 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
19685
19686         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
19687         * doc/c-tree.texi: Remove.
19688         * doc/generic.texi: Merge c-tree.texi here.
19689         * doc/gccint.texi (Trees): Remove menu entry.
19690         (c-tree.texi): Remove @include.
19691         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
19692         * doc/languages.texi (Reading RTL): Ditto.
19693
19694 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
19695
19696         PR target/42869
19697         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
19698
19699 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
19700
19701         PR middle-end/42431
19702         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
19703         code added to work around reload clobbering CONST insns.
19704
19705 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
19706
19707         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
19708         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
19709         (cselib_preserve_only_values): Remove retain argument, don't
19710         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
19711         * cselib.h (cselib_preserve_only_values): Remove retain argument.
19712         * var-tracking.c (micro_operation): Move insn field before union.
19713         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
19714         (struct variable_tracking_info_def): Remove n_mos field, change
19715         mos into a vector of micro_operations.
19716         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
19717         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
19718         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
19719         changing into a vector.
19720         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
19721         come before all other uops generated by add_stores.
19722         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
19723         argument removal.
19724         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
19725         a vector.  Run just one pass over the bbs instead of separate counting
19726         and computation phase.
19727         (vt_finalize): Free VTI (bb)->mos vector instead of array.
19728
19729         PR debug/43329
19730         * tree-inline.c (remap_decls): Put old_var rather than origin_var
19731         into *nonlocalized_list vector.
19732         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
19733         even if origin is non-NULL.
19734         (gen_variable_die): Likewise.
19735         (process_scope_var): Don't change origin.
19736         (gen_decl_die): Likewise.
19737         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
19738         before adding new edges instead of after it, fix moving over
19739         debug stmts.
19740
19741 2010-03-11  David S. Miller  <davem@davemloft.net>
19742
19743         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
19744         of four.
19745         * configure: Rebuild.
19746
19747 2010-03-11  Martin Jambor  <mjambor@suse.cz>
19748
19749         PR tree-optimization/43257
19750         * tree.c (assign_assembler_name_if_neeeded): New function.
19751         (free_lang_data_in_cgraph): Assembler name assignment moved to the
19752         above new function.
19753         * tree.h (assign_assembler_name_if_neeeded): Declare.
19754         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
19755         the function if needed.
19756
19757 2010-03-11  Chris Demetriou  <cgd@google.com>
19758
19759         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
19760         include/stdint-gcc.h, and include/stdint.h world-readable.
19761
19762 2010-03-11  Richard Guenther  <rguenther@suse.de>
19763
19764         PR tree-optimization/43255
19765         * tree-vrp.c (process_assert_insertions_for): Do not insert
19766         asserts for trivial conditions.
19767
19768 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19769
19770         PR tree-optimization/43280
19771         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
19772         generation.  Move calculation of size out of the if branch.
19773         (find_bswap): Modify compare number generation.
19774
19775 2010-03-11  Richard Guenther  <rguenther@suse.de>
19776
19777         PR lto/43200
19778         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
19779         (input_gimple_stmt): Fixup handled component types during
19780         operand read.  Also fix up decls in ADDR_EXPRs.
19781
19782 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
19783
19784         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
19785         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
19786
19787 2010-03-10  Jan Hubicka  <jh@suse.cz>
19788
19789         PR c/43288
19790         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
19791         * varasm.c (get_variable_section): Don't do that here...
19792         (make_decl_rtl): ... and here.
19793         (do_assemble_alias): Produce decl RTL.
19794         (assemble_alias): Likewise.
19795
19796 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
19797
19798         PR debug/43290
19799         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
19800         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
19801         of fde->vdrap_reg.
19802         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
19803         (based_loc_descr): Only express drap or vdrap regno based expressions
19804         using DW_OP_fbreg when not optimizing.
19805         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
19806         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
19807         REG_CFA_SET_VDRAP note.
19808
19809 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
19810
19811         PR tree-optimization/43236
19812         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
19813         error in calculation of base address in reverse iteration case.
19814         (generate_builtin): Take number of latch executions if the statement
19815         is in the latch.
19816
19817 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
19818
19819         PR middle-end/42859
19820         * tree-eh.c: Include pointer-set.h.
19821         (lower_eh_dispatch): Filter out duplicate case labels and
19822         remove the unneeded edge when the label is unused.  Return
19823         true when some edges are removed.
19824         (execute_lower_eh_dispatch): When any lowering resulted in
19825         removing an edge, also delete unreachable blocks.
19826
19827 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
19828
19829         PR bootstrap/43287
19830         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
19831         UNSPEC_MACHOPIC_OFFSET.
19832
19833 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
19834
19835         PR target/43294
19836         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
19837         (m68k_delegitimize_address): New function.
19838
19839 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
19840
19841         PR debug/43299
19842         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
19843
19844         PR debug/43299
19845         * var-tracking.c (adjust_sets): New function.
19846         (count_with_sets, add_with_sets): Use it.
19847         (get_adjusted_src): New inline function.
19848         (add_stores): Use it.
19849
19850         PR debug/43304
19851         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
19852         call cselib_dummy_expand_value_rtx_cb instead of
19853         cselib_expand_value_rtx_cb.
19854
19855         PR debug/43293
19856         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
19857         * config/i386/i386.c: Include debug.h and dwarf2out.h.
19858         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
19859         and .cfi_endproc around the pic thunks.
19860         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
19861         all queued unwind info register saves are saved before the call.
19862         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
19863         considered as sp-=4 for unwind info and the pop as sp+=4 which
19864         also clobbers dest, but doesn't actually restore it.
19865
19866         PR debug/43290
19867         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
19868         RTX_FRAME_RELATED_P.
19869
19870 2010-03-09  Jie Zhang  <jie@codesourcery.com>
19871
19872         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
19873         whitespaces in output template.
19874
19875 2010-03-09  Jie Zhang  <jie@codesourcery.com>
19876
19877         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
19878         out array boundary.
19879
19880 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
19881
19882         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
19883         builtins.exp in a separate job.
19884
19885 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19886
19887         * graphite-sese-to-poly.c (add_param_constraints): Use
19888         lower_bound_in_type and upper_bound_in_type.
19889
19890 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19891
19892         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
19893         instead of unsigned_type_node.
19894
19895 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19896             Reza Yazdani  <reza.yazdani@amd.com>
19897
19898         PR middle-end/43065
19899         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
19900         on pointer type parameters.
19901
19902 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
19903
19904         PR middle-end/42644
19905         PR middle-end/42130
19906         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
19907         handle conversions from pointer to integers.
19908         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
19909         induction variable, to be able to work with code generated by CLooG.
19910         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
19911         (build_poly_scop): Bail out if we cannot codegen a loop.
19912
19913 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
19914
19915         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
19916         code generation with gloog_error.
19917
19918 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19919
19920         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
19921         Call fold_convert on all the returned values.
19922         (expand_scalar_variables_expr): Pass to
19923         expand_scalar_variables_ssa_name the type of the resulting expression.
19924
19925 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19926
19927         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
19928         ppl_min_for_le_pointset.
19929         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
19930         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
19931
19932 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19933
19934         * graphite-dependences.c (map_into_dep_poly): Removed.
19935         (dependence_polyhedron_1): Use combine_context_id_scat.
19936
19937 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19938
19939         * graphite-poly.h (struct poly_scattering): Add layout documentation.
19940         (struct poly_bb): Same.
19941         (combine_context_id_scat): New.
19942
19943 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19944
19945         PR middle-end/42326
19946         * sese.c (name_defined_in_loop_p): Return false for default
19947         definitions.
19948
19949 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19950
19951         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
19952         and clean up the logic.
19953
19954 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19955
19956         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
19957         early return.
19958
19959 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
19960
19961         * var-tracking.c (remove_cselib_value_chains): Define only for
19962         ENABLE_CHECKING.
19963         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
19964         delete_slot_part, emit_notes_for_differences_1): Don't call
19965         remove_cselib_value_chains here.
19966         (set_slot_part, emit_notes_for_differences_2): Don't call
19967         add_cselib_value_chains here.
19968         (preserved_values): New vector.
19969         (preserve_value): New function.
19970         (add_uses, add_stores, vt_add_function_parameters): Use it
19971         instead of cselib_preserve_value.
19972         (changed_values_stack): New vector.
19973         (check_changed_vars_0): New function.
19974         (check_changed_vars_1, check_changed_vars_2): Use it.
19975         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
19976         changed_values_stack VALUEs.
19977         (vt_emit_notes): For all preserved_values call
19978         add_cselib_value_chains.  If ENABLE_CHECKING call
19979         remove_cselib_value_chains before verifying value_chains is empty.
19980         Initialize and free changed_values_stack.
19981         (vt_initialize): Initialize preserved_values.
19982         (vt_finalize): Free preserved_values.
19983
19984 2010-03-08  Richard Guenther  <rguenther@suse.de>
19985
19986         PR tree-optimization/43269
19987         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
19988         region detection.
19989
19990 2010-03-08  Martin Jambor  <mjambor@suse.cz>
19991
19992         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
19993         (ipa_is_param_called): Removed.
19994         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
19995         (ipa_print_node_params): Do not print the called flag.
19996         (ipa_write_node_info): Do not stream the called flag.
19997         (ipa_read_node_info): Likewise.
19998
19999 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
20000
20001         PR debug/43176
20002         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
20003         * cselib.c (struct expand_value_data): Add dummy field.
20004         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
20005         dummy to false.
20006         (cselib_dummy_expand_value_rtx_cb): New function.
20007         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
20008         any rtl.
20009         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
20010         * var-tracking.c: Include pointer-set.h.
20011         (variable): Change n_var_parts to char from int.  Add
20012         cur_loc_changed and in_changed_variables fields.
20013         (variable_canonicalize): Remove.
20014         (shared_var_p): New inline function.
20015         (unshare_variable): Maintain cur_loc_changed and
20016         in_changed_variables fields.  If var was in changed_variables,
20017         replace it there with new_var.  Just copy cur_loc instead of
20018         resetting it to something else.
20019         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
20020         (dataflow_set_union): Don't call variable_canonicalize.
20021         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
20022         of their DEBUG_EXPR_TREE_DECLs.
20023         (canonicalize_loc_order_check): Verify that cur_loc is NULL
20024         and in_changed_variables and cur_loc_changed is false.
20025         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
20026         and cur_loc_changed.  Don't update cur_loc here.
20027         (variable_merge_over_src): Don't call variable_canonicalize.
20028         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
20029         removing loc that is equal to cur_loc, clear cur_loc,
20030         set cur_loc_changed and ensure variable_was_changed is called.
20031         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
20032         compare pointers in cur_loc check, if it is equal to loc,
20033         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
20034         (variable_different_p): Remove compare_current_location argument,
20035         don't compare cur_loc.
20036         (dataflow_set_different_1): Adjust variable_different_p caller.
20037         (variable_was_changed): If dv had some var in changed_variables
20038         already, reset in_changed_variables flag for it and propagate
20039         cur_loc_changed over to the new variable.  On empty var
20040         always set cur_loc_changed.  Set in_changed_variables on whatever
20041         var is added to changed_variables.
20042         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
20043         Use shared_var_p.  When removing loc that is equal to cur_loc,
20044         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
20045         end, don't set it to something else, just call variable_was_changed.
20046         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
20047         loc being removed, clear cur_loc and set cur_loc_changed.
20048         Set cur_loc_changed if all locations have been removed.
20049         (struct expand_loc_callback_data): New type.
20050         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
20051         allocated.  Always create SUBREGs if simplify_subreg failed.
20052         Prefer to use cur_loc, when that fails and still in
20053         changed_variables (and seen first time) recompute it.  Set
20054         cur_loc_changed of variables which had to change cur_loc and
20055         compute elcd->cur_loc_changed if any of the subexpressions used
20056         had to change cur_loc.
20057         (vt_expand_loc): Adjust to pass arguments in
20058         expand_loc_callback_data structure.
20059         (vt_expand_loc_dummy): New function.
20060         (emitted_notes): New variable.
20061         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
20062         that weren't used for any other decl in current
20063         emit_notes_for_changes call call vt_expand_loc_dummy to update
20064         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
20065         first loc_chain location if NULL before.  Always use just
20066         cur_loc instead of first loc_chain location.  When cur_loc_changed
20067         is false, when not --enable-checking=rtl just don't emit any note.
20068         When rtl checking, compute the note and assert it is the same
20069         as previous note.  Clear cur_loc_changed and in_changed_variables
20070         at the end before removing from changed_variables.
20071         (check_changed_vars_3): New function.
20072         (emit_notes_for_changes): Traverse changed_vars to call
20073         check_changed_vars_3 on each changed var.
20074         (emit_notes_for_differences_1): Clear cur_loc_changed and
20075         in_changed_variables.  Recompute cur_loc of new_var.
20076         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
20077         (vt_emit_notes): Initialize and destroy emitted_notes.
20078
20079 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
20080
20081         PR rtl-optimization/42220
20082         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
20083         Use verify_reg_tracked to determine if we should use OP_OUT rather
20084         than OP_INOUT.
20085         (build_def_use): If we see an in-out operand for a register that we
20086         know nothing about, treat is an output if possible, fail the block if
20087         not.
20088
20089 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
20090
20091         PR debug/42897
20092         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
20093         permanently.
20094
20095 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
20096
20097         PR debug/42897
20098         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
20099         uses of relevant DEFs that are dead outside the loop too.
20100
20101 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
20102
20103         * var-tracking.c (dataflow_set_merge): Swap src and src2.
20104         Reverted:
20105         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
20106         PR debug/41371
20107         * var-tracking.c (values_to_unmark): New variable.
20108         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
20109         values_to_unmark vector.  Moved body to...
20110         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
20111         instead queue it into values_to_unmark vector.
20112         (vt_find_locations): Free values_to_unmark vector.
20113
20114 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
20115
20116         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
20117         (site.exp): Export them when plugins are enabled.
20118
20119 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
20120
20121         PR middle-end/42326
20122         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
20123         that contain scevs.
20124         (chrec_fold_multiply): Same.
20125
20126 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
20127
20128         PR c/43248
20129         * c-decl.c (build_compound_literal): Return early if init is
20130         an error_mark_node.
20131
20132 2010-03-04  Martin Jambor  <mjambor@suse.cz>
20133
20134         PR tree-optimization/43164
20135         PR tree-optimization/43191
20136         * tree-sra.c (type_consists_of_records_p): Reject records with
20137         zero-size bit-fields at the end.
20138
20139 2010-03-04  Mike Stump  <mikestump@comcast.net>
20140
20141         * Makefile.in (TAGS): Remove *.y.
20142
20143 2010-03-04  Richard Guenther  <rguenther@suse.de>
20144
20145         PR tree-optimization/40761
20146         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
20147         in reverse order.
20148         (my_rev_post_order_compute): New function.
20149         (init_pre): Call it.
20150
20151 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
20152
20153         PR middle-end/43209
20154         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
20155         decrease the cost of an IV candidate when the cost is infinite.
20156
20157 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20158
20159         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
20160         Use '3DNow!' for the extension of that name, ensure normal space
20161         after the string.
20162         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
20163
20164 2010-03-03  Jeff Law  <law@redhat.com>
20165
20166         * PR middle-end/32693
20167         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
20168         than gen_rtx_SUBREG.
20169         (extract_bit_field_1): Likewise.
20170
20171 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
20172
20173         * doc/sourcebuild.texi (Test directives): Document that arguments
20174         include-opts and exclude-opts are now optional for dg-skip-if,
20175         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
20176
20177 2010-03-03  Jason Merrill  <jason@redhat.com>
20178
20179         PR c++/12909
20180         * cgraph.h (varpool_node): Add extra_name field.
20181         * varpool.c (varpool_extra_name_alias): New.
20182         (varpool_assemble_decl): Emit extra name aliases.
20183         (varpool_mark_needed_node): Look past an extra name alias.
20184         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
20185         * lto-streamer-in.c (lto_input_tree): Read it.
20186         * lto-streamer-out.c (output_unreferenced_globals): Write it.
20187
20188 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
20189
20190         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
20191         (sparc*-*-solaris2*): ...this.
20192
20193 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
20194
20195         PR debug/43229
20196         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
20197         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
20198         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
20199         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
20200
20201         PR debug/43237
20202         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
20203         fallthrough to default handling, just with want_address 0 instead of 2.
20204         For single element lists, add_AT_loc directly, otherwise create an
20205         artificial variable DIE and stick location list to it.
20206
20207         PR debug/43177
20208         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
20209         (VAL_EXPR_HAS_REVERSE): Define.
20210         (reverse_op): New function.
20211         (add_stores): For reversible operations add an extra MO_VAL_USE.
20212
20213 2010-03-02  Jason Merrill  <jason@redhat.com>
20214
20215         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
20216
20217 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
20218
20219         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
20220         (sparc64-*-linux*): Likewise.
20221         (sparc64-*-solaris2*): Include assembler files before linker ones.
20222         (sparc-*-solaris2*): Simplify and reorder to match previous case.
20223         * config/sparc/gas.h: Delete.
20224         * config/sparc/sol2-64.h: Add copyright notice.
20225         * config/sparc/sol2-gas-bi.h: Likewise.
20226         * config/sparc/sol2-gld.h: Likewise.
20227         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
20228         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
20229         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
20230         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
20231         (sparc_elf_asm_named_section): Rename into...
20232         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
20233
20234 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
20235
20236         * config/alpha/alpha.c (override_options): Fix -mtune error message.
20237
20238 2010-03-02  Jeff Law  <law@redhat.com>
20239
20240         PR middle-end/42431
20241         * reload1.c (rtx_p, substitute_stack): Declare.
20242         (substitute): Record addresses of changed rtxs.
20243         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
20244         Restore the original rtx when complete.
20245         (reload): Free subsitute_stack when complete.
20246
20247 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
20248
20249         * doc/gccint.texi (menu): Add Testsuites as a chapter.
20250         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
20251         new chapter.
20252         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
20253         LTO Testing, gcov Testing, profopt Testing, compat Testing,
20254         Torture Tests): Change from subsection to section.
20255
20256 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
20257             Steven Bosscher  <steven@gcc.gnu.org>
20258
20259         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
20260         instead of bb.
20261
20262 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
20263
20264         PR middle-end/42640
20265         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
20266         the assignment from the new induction variable to the assignment
20267         of the value from the original loop PHI function.
20268
20269 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
20270             Daniel Jacobowitz  <dan@codesourcery.com>
20271
20272         * doc/sourcebuild.texi (Test directives): Clarify options to
20273         dg-skip-if.
20274
20275 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20276
20277         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
20278         Disable cfi directives unless GCC and gas agree on using read-only
20279         .eh_frame sections for 64-bit.
20280         * configure: Regenerate.
20281
20282 2010-03-01  Richard Guenther  <rguenther@suse.de>
20283
20284         PR tree-optimization/43220
20285         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
20286         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
20287
20288 2010-03-01  Richard Guenther  <rguenther@suse.de>
20289             Martin Jambor  <mjambor@suse.cz>
20290
20291         PR middle-end/41250
20292         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
20293         gimplified parameters.
20294
20295 2010-03-01  Christian Bruel  <christian.bruel@st.com>
20296
20297         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
20298
20299 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
20300
20301         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
20302
20303 2010-03-01  Richard Guenther  <rguenther@suse.de>
20304
20305         PR middle-end/43213
20306         * expr.c (expand_assignment): Use the alias-oracle to tell
20307         if the rhs aliases the result decl.
20308
20309 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20310
20311         PR pch/14940
20312         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
20313         to sol_gt_pch_get_address.
20314         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
20315         64-bit, SPARC and x86.
20316         (sol_gt_pch_get_address): New function.
20317
20318 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
20319
20320         * toplev.h (inform_n, error_n): Declare.
20321         * diagnostic.c (inform_n, error_n): New function.
20322
20323 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
20324
20325         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
20326         has no rtl yet when processing local_decls, queue it and recheck
20327         if deferred stack allocation hasn't assigned it rtl.
20328
20329 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
20330
20331         * config/sh/sh.c (unspec_bbr_uid): New.
20332         (gen_block_redirect): Use it instead of INSN_UID.
20333         (gen_far_branch): Likewise.
20334
20335 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
20336
20337         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
20338         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
20339
20340 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20341
20342         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
20343         (Warning Options): -Wno-conversion-null is valid for
20344         Objective-C++ as well.
20345         * doc/tm.texi (Named Address Spaces): Likewise.
20346         * doc/plugins.texi (Plugins): Replace TABs with spaces.
20347         * doc/tree-ssa.texi (Tree SSA): Likewise.
20348
20349 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
20350
20351         PR bootstrap/43202
20352         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
20353         by default.  Don't set the default arch for
20354         i[34567]86-*-darwin*|x86_64-*-darwin*.
20355
20356 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
20357
20358         PR bootstrap/43202
20359         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
20360         default.  Set the default 32bit/64bit archs with $with_arch
20361         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
20362
20363 2010-02-27  Richard Guenther  <rguenther@suse.de>
20364
20365         PR tree-optimization/43186
20366         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
20367         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
20368         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
20369         unroller iterations.
20370
20371 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
20372
20373         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
20374         required and i[34567]86-*-* targets don't support 64bit ISA.
20375
20376 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
20377
20378         PR ada/43096
20379         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
20380         the same alias set.
20381
20382 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
20383
20384         * config.gcc: Set the default arch at least to Prescott for
20385         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
20386         if SSE math is enabled.
20387
20388 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20389
20390         * diagnostic.c (diagnostic_initialize): Update.
20391         (diagnostic_report_diagnostic): Test inhibit_notes_p for
20392         informative notes.
20393         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
20394         (diagnostic_inhibit_notes): New.
20395         * toplev.c (process_options): inhibit notes with -fcompare-debug.
20396
20397 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20398
20399         PR c/20631
20400         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
20401         * doc/standards.texi: Likewise.
20402         * doc/extend.texi: Likewise.
20403         * doc/trouble.texi: Likewise.
20404         * doc/cppopts.texi: Likewise.
20405         * doc/install.texi: Likewise.
20406         * c.opt (std=c90,std=gnu90): New options.
20407         * c-opts.c (c_common_handle_option): Handle them.
20408
20409 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20410
20411         PR c/24577
20412         * c-decl.c (undeclared_variable): Use an informative note.
20413
20414 2010-02-26  Richard Guenther  <rguenther@suse.de>
20415
20416         PR tree-optimization/43186
20417         * gimple.h (gimple_fold): Remove.
20418         * gimple.c (gimple_fold): Remove.  Inline into single user ...
20419         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
20420         Try harder for conditions.
20421
20422 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
20423
20424         PR debug/43190
20425         * function.c (used_types_insert): Don't skip through named pointer
20426         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
20427         and it is different from the main variant's type.
20428
20429 2010-02-26  Nick Clifton  <nickc@redhat.com>
20430
20431         * config/rx/rx.md (sminsi3): Remove bogus alternative.
20432
20433 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
20434
20435         * config.gcc: Support --with-fpmath=sse for x86.
20436
20437         * config/i386/ssemath.h: New.
20438
20439         * doc/install.texi (--with-fpmath=sse): Documented.
20440
20441 2010-02-26  Richard Guenther  <rguenther@suse.de>
20442
20443         PR tree-optimization/43188
20444         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
20445         vector types of over-aligned element type.
20446
20447 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
20448
20449         PR target/43175
20450         * config/i386/i386.c (expand_vec_perm_blend): Use correct
20451         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
20452
20453 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
20454
20455         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
20456
20457 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
20458
20459         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
20460         * var-tracking.c: Include diagnostic.h.
20461         (debug_dv): New function.
20462         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
20463
20464         PR debug/43160
20465         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
20466         (add_value_chain, add_value_chains, remove_value_chain,
20467         remove_value_chains): Handle DEBUG_EXPRs.
20468         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
20469
20470         PR debug/43161
20471         * regcprop.c (struct queued_debug_insn_change): New type.
20472         (struct value_data_entry): Add debug_insn_changes field.
20473         (struct value_data): Add n_debug_insn_changes field.
20474         (debug_insn_changes_pool): New variable.
20475         (free_debug_insn_changes, apply_debug_insn_changes,
20476         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
20477         (kill_value_one_regno): Call free_debug_insn_changes if needed.
20478         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
20479         fields.
20480         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
20481         changes for them.
20482         (copyprop_hardreg_forward_1): Don't call apply_change_group for
20483         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
20484         changes, call cprop_find_used_regs via note_stores.
20485         (copyprop_hardreg_forward): When copying vd from predecessor
20486         which has any queued DEBUG_INSN changes, make sure the pointers are
20487         cleared.  At the end call df_analyze and then if there are any
20488         DEBUG_INSN changes queued at the end of some basic block for still
20489         live registers, apply them.
20490         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
20491
20492 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
20493
20494         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
20495         (arm*-*-*): Ditto.
20496
20497 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
20498
20499         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
20500         targets.  Set the default with_cpu/with_arch from arch/cpu.
20501         Allow x86-64 and native for with_cpu/with_arch.
20502
20503 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
20504
20505         * ebitmap.c: Change calls to verify_popcount with calls to
20506         sbitmap_verify_popcount.
20507         (ebitmap_clear_bit): Fixed map->cacheindex test and
20508         map>cache update when bit clearing results in an empty
20509         element.
20510
20511 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
20512
20513         PR target/43154
20514         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
20515         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
20516         and support both V2DF and V2DI modes.
20517         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
20518         support both V2DF and V2DI modes.
20519         (general): Delete trailing whitespace from a few patterns.
20520
20521         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20522         V2DF/V2DI interleave high/low builtins.
20523
20524         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
20525         new VSX builtins.
20526
20527         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
20528         interleave high/low functions.
20529
20530 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
20531
20532         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
20533         #pragma extern_prefix.
20534
20535 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
20536
20537         PR debug/43166
20538         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
20539         BLKmode, assert op0 is a MEM and just adjust its mode.
20540
20541         PR debug/43165
20542         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
20543         if bitpos isn't multiple of mode's bitsize.
20544
20545 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20546
20547         * c.opt (-ftemplate-depth=): New.
20548         (-ftemplate-depth-): Deprecate.
20549         * optc-gen.awk: Handle -ftemplate-depth=.
20550         * opth-gen.awk: Likewise.
20551         * c-opts.c (c_common_handle_option): Likewise.
20552         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
20553
20554 2010-02-24  Jason Merrill  <jason@redhat.com>
20555
20556         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
20557
20558 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20559
20560         * cfg.c (alloc_aux_for_block): Remove inline.
20561         (alloc_aux_for_edge): Likewise.
20562
20563 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20564
20565         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
20566
20567 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20568
20569         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
20570         * config/i386/sol2-gas.h: New file.
20571         * config.gcc (i[34567]86-*-solaris2*): Use it.
20572
20573 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20574
20575         PR c/43128
20576         * c-typeck.c (ep_convert_and_check): New.
20577         (build_conditional_expr): Use it.
20578         (build_binary_op): Likewise.
20579
20580 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
20581
20582         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
20583
20584         PR debug/43150
20585         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
20586         bounds even for -O+.
20587         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
20588         expr needs to have DECL_NAME set.
20589
20590 2010-02-24  Nick Clifton  <nickc@redhat.com>
20591
20592         * config/mep/mep.c: Include gimple.h.
20593         (mep_function_uses_sp): Delete unused function.
20594         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
20595         parameters.  Use unsigned integers to count args.  Return a
20596         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
20597
20598 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
20599
20600         PR target/43107
20601         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
20602         greater or equal to nelt instead of 2 * nelt.
20603         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
20604         with nelt - 1.
20605
20606 2010-02-23  Jason Merrill  <jason@redhat.com>
20607
20608         PR debug/42800
20609         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
20610         in cfun->local_decls even if they have register types.
20611
20612         PR c++/42837
20613         * stor-layout.c (place_field): Don't warn about unnecessary
20614         DECL_PACKED if the type is packed.
20615
20616 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
20617
20618         PR target/43139
20619         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
20620         GOTOFF relocs, even when the base reg isn't pic pointer.
20621
20622 2010-02-23  Michael Matz  <matz@suse.de>
20623
20624         PR debug/43077
20625         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
20626         (expand_gimple_basic_block): Generate and use debug temps if there
20627         are debug uses left after the last real use of TERed ssa names.
20628         Unlink debug immediate uses when they are expanded.
20629
20630 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20631
20632         PR 43123
20633         * config/i386/i386.c (override_options): Reorganise to provide
20634         better error messages.
20635
20636 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
20637
20638         PR middle-end/43083
20639         * graphite-scop-detection.c (create_single_exit_edge): Move
20640         the call to find_single_exit_edge to....
20641         (create_sese_edges): ...here.  Don't handle multiple edges
20642         exiting the function.
20643         (build_graphite_scops): Don't handle multiple edges
20644         exiting the function.
20645
20646 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
20647
20648         PR middle-end/43097
20649         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
20650         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
20651
20652 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
20653
20654         PR middle-end/43026
20655         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
20656
20657 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20658
20659         PR c++/43126
20660         * c-typeck.c (convert_arguments): Print declaration location.
20661         * c-common.c (validate_nargs): Rename as
20662         builtin_function_validate_nargs.
20663         (check_builtin_function_arguments): Update.
20664
20665 2010-02-22  Richard Guenther  <rguenther@suse.de>
20666
20667         PR lto/43045
20668         * tree-inline.c (declare_return_variable): Use the type of
20669         the call stmt lhs if available.
20670
20671 2010-02-22  Duncan Sands  <baldrick@free.fr>
20672
20673         * passes.c (register_pass): Always consider all pass lists when
20674         ref_pass_instance_number is zero.
20675
20676 2010-02-22  Richard Guenther  <rguenther@suse.de>
20677
20678         PR tree-optimization/42749
20679         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
20680         parameter.  Do arithmetic in the original type.
20681         (update_accumulator_with_ops): Likewise.
20682         (adjust_accumulator_values): Adjust.
20683
20684 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20685
20686         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
20687         (QI to BLKmode splitter): New splitter.
20688
20689 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
20690
20691         * config/i386/i386.c (initial_ix86_tune_features): Turn on
20692         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
20693
20694 2010-02-22  Richard Guenther  <rguenther@suse.de>
20695
20696         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
20697
20698 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
20699
20700         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
20701         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
20702         ($(T)crti.o, $(T)crtn.o): Remove rules.
20703
20704 2010-02-21  Tobias Burnus  <burnus@net-b.de>
20705
20706         PR fortran/35259
20707         * doc/invoke.texi (-fassociative-math): Document that this
20708         option is automatically enabled for Fortran.
20709
20710 2010-02-20  David S. Miller  <davem@davemloft.net>
20711
20712         * configure.ac: Test if linker and assembler properly support
20713         GOTDATA_OP relocations.
20714         * configure: Rebuild.
20715         * config.in: Likewise.
20716         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
20717         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
20718         (movsi_high_pic): Likewise.
20719         (movdi_lo_sum_pic): Likewise.
20720         (movdi_high_pic): Likewise.
20721         (movsi_pic_gotdata_op): New pattern.
20722         (movdi_pic_gotdata_op): Likewise.
20723         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
20724         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
20725
20726 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
20727
20728         PR target/43067
20729         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
20730         attribute to ssemul.
20731         (xop_mulv2div2di3_high): Ditto.
20732
20733 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20734
20735         PR c++/35669
20736         * c.opt (Wconversion-null): New option.
20737         * doc/invoke.texi (Wconversion-null): Document.
20738
20739 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20740
20741         * common.opt (Wlarger-than-): Add Undocumented.
20742
20743 2010-02-19  Mike Stump  <mikestump@comcast.net>
20744
20745         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
20746
20747 2010-02-19  Jason Merrill  <jason@redhat.com>
20748
20749         PR target/40332
20750         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
20751         * configure: Likewise.
20752
20753 2010-02-20  Alan Modra  <amodra@gmail.com>
20754
20755         PR middle-end/42344
20756         * cgraph.h (cgraph_make_decl_local): Declare.
20757         * cgraph.c (cgraph_make_decl_local): New function.
20758         (cgraph_make_node_local): Use it.
20759         * cgraphunit.c (cgraph_function_versioning): Likewise.
20760         * ipa.c (function_and_variable_visibility): Likewise.
20761
20762 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20763
20764         PR bootstrap/43121
20765         * except.c (sjlj_emit_function_enter): Don't call
20766         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
20767         directly.
20768         * rtl.h (add_reg_br_prob_note): Remove prototype.
20769
20770 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20771
20772         PR 41779
20773         * c-common.c (conversion_warning): Remove widening conversions
20774         before checking the conversion of integers to reals.
20775
20776 2010-02-19  Mike Stump  <mikestump@comcast.net>
20777
20778         PR middle-end/43125
20779         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
20780
20781         PR objc/43061
20782         * cgraphunit.c (process_function_and_variable_attributes): Check
20783         DECL_PRESERVE_P instead of looking up attribute "used".
20784         * ipa-pure-const.c (check_decl): Likewise.
20785         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
20786         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
20787         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
20788         instead of attribute "used".
20789         * config/sol2-c.c (solaris_pragma_init): Likewise.
20790         (solaris_pragma_fini): Likewise.
20791
20792 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20793
20794         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
20795         Use XCNEW instead of xcalloc.
20796         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
20797         XNEW instead of xmalloc.
20798         (get_fields): Use XNEWVEC instead of xmalloc.
20799
20800         PR debug/43084
20801         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
20802         populate vars array.
20803         (create_new_general_access): For debug stmts just reset value.
20804         (get_stmt_accesses): For accesses within debug stmts just record them
20805         using add_access_to_acc_sites instead of preventing the peeling or
20806         counting them as accesses.
20807
20808         PR middle-end/42233
20809         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
20810
20811 2010-02-19  Richard Guenther  <rguenther@suse.de>
20812
20813         PR tree-optimization/42916
20814         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
20815         instructions.
20816
20817 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
20818
20819         * configure.ac: Replace all uses of changequote in macro arguments
20820         with proper quoting.
20821
20822 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20823
20824         PR middle-end/42233
20825         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
20826
20827 2010-02-19  Richard Guenther  <rguenther@suse.de>
20828
20829         PR tree-optimization/42944
20830         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
20831         test for aliasing with errno.
20832
20833 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20834
20835         PR middle-end/42233
20836         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
20837         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
20838         * dojump.c: Include output.h.
20839         (inv): New inline function.
20840         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
20841         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
20842         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
20843         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
20844         argument, pass it down to other calls.
20845         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
20846         add REG_BR_PROB note to the conditional jump.
20847         * cfgexpand.c (add_reg_br_prob_note): Removed.
20848         (expand_gimple_cond): Don't call it, add the probability
20849         as last argument to jumpif_1/jumpifnot_1.
20850         * Makefile.in (dojump.o): Depend on output.h.
20851         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
20852         callers.
20853         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
20854         * stmt.c (do_jump_if_equal): Likewise.
20855         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
20856         * loop-unswitch.c (compare_and_jump_seq): Likewise.
20857         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
20858         Likewise.
20859         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
20860         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
20861         jumpifnot_1 callers.
20862         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
20863         callers.
20864         (store_expr): Adjust jumpifnot caller.
20865         (store_constructor): Adjust jumpif caller.
20866
20867         PR middle-end/42233
20868         * gimplify.c (gimple_boolify): For __builtin_expect call
20869         gimple_boolify also on its first argument.
20870
20871 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
20872
20873         * configure.ac (gnu-unique-object): Wrap regexps using [] in
20874         changequote block.
20875         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
20876         * configure: Regenerated.
20877
20878 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20879
20880         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
20881         lang_hooks.types_compatible_p instead of comptypes.
20882
20883 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
20884
20885         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
20886         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
20887         if __prefer_thumb__ is defined.
20888
20889 2010-02-18  Martin Jambor  <mjambor@suse.cz>
20890
20891         PR tree-optimization/43066
20892         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
20893         array with zero-sized element type.
20894
20895 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
20896
20897         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
20898         rtx, allocate struct var_loc_node here and return it to the
20899         caller, and only if it is actually needed.
20900         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
20901         move it earlier and return immediately if it returns NULL.
20902
20903 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
20904
20905         * config/sparc/gas.h: New file.  Restore
20906         TARGET_ASM_NAMED_SECTION to its ELF default.
20907         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
20908         check !HAVE_GNU_AS.
20909         * config/sparc/sparc.c (sparc_elf_asm_named_section):
20910         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
20911         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
20912         after sparc/sysv4.h.
20913
20914 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
20915
20916         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
20917
20918 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
20919
20920         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
20921         patterns from predicated pattern.
20922
20923 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
20924
20925         PR target/43103
20926         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
20927         for insn mnemonic suffix.
20928
20929 2010-02-17  Richard Guenther  <rguenther@suse.de>
20930
20931         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
20932         to loop PHI nodes.
20933
20934 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
20935
20936         PR debug/42918
20937         * caller-save.c (save_call_clobbered_regs): If BB ends with
20938         a DEBUG_INSN, move any notes in between last real insn and the last
20939         DEBUG_INSN after the last DEBUG_INSN.
20940
20941 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
20942
20943         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
20944         Fix return type.  Fix argument type.  Explain meaning of return value.
20945
20946 2010-02-16  Richard Guenther  <rguenther@suse.de>
20947
20948         PR tree-optimization/41043
20949         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
20950         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
20951         statements ...
20952         (vrp_visit_phi_node): ... but only for loop PHI nodes.
20953
20954 2010-02-16  Ira Rosen  <irar@il.ibm.com>
20955
20956         PR tree-optimization/43074
20957         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
20958         * tree-vect-loop.c (vect_analyze_loop_operations): Add
20959         vectorizable cycles in hybrid SLP check.
20960         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
20961
20962 2010-02-16  Richard Guenther  <rguenther@suse.de>
20963
20964         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
20965         (true_dependence): If memrefs_conflict_p computes must-alias
20966         trust it.  Move TBAA check after offset-based disambiguation.
20967         (canon_true_dependence): Likewise.
20968
20969 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
20970
20971         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
20972         * doc/invoke.texi: Document it.
20973         * var-tracking.c: Include toplev.h and params.h.
20974         (vt_find_locations): Return bool indicating success.  Compute
20975         hash sizes unconditionally.  Check new parameter, report.
20976         (variable_tracking_main_1): Check vt_find_locations results and
20977         retry.  Renamed from...
20978         (variable_tracking_main): ... this.  New wrapper to preserve
20979         flag_var_tracking_assignments.
20980         * Makefile.in (var-tracking.o): Adjust dependencies.
20981
20982 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
20983             Jakub Jelinek <jakub@redhat.com>
20984
20985         PR target/42854
20986         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
20987         if weak_import attribute is present.
20988         * config/darwin.c (machopic_select_section): Likewise.
20989
20990 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
20991
20992         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
20993         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
20994         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
20995         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
20996
20997         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
20998         types.
20999
21000         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
21001         Fix argument types.
21002
21003         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
21004         Rewrite text to refer to the names.
21005
21006 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
21007
21008         * config/i386/i386-builtin-types.def
21009         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
21010         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
21011         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
21012         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
21013         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
21014         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
21015         IX86_BUILTIN_VPERMIL2PS256.
21016         (MULTI_ARG_4_DF2_DI_I): Defined.
21017         (MULTI_ARG_4_DF2_DI_I1): Defined.
21018         (MULTI_ARG_4_SF2_SI_I): Defined.
21019         (MULTI_ARG_4_SF2_SI_I1): Defined.
21020         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
21021         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
21022         __builtin_ia32_vpermil2ps256.
21023         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
21024         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
21025         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
21026         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
21027         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
21028         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
21029         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
21030         CODE_FOR_xop_vpermil2v8sf3.
21031         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
21032         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
21033         * config/i386/xopintrin.h (_mm_permute2_pd): New.
21034         (_mm256_permute2_pd): New.
21035         (_mm_permute2_ps): New.
21036         (_mm256_permute2_ps): New.
21037
21038 2010-02-15  Nick Clifton  <nickc@redhat.com>
21039
21040         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
21041         boolean parameters.  Use emit_jump_insn when emitting a pop
21042         instruction containing a return insn.
21043         (push): Use 'true' rather than '1' as second parameter to F.
21044         (h8300_expand_prologue): Likewise.
21045         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
21046         (h8300_expand_epilogue): Likewise.
21047
21048 2010-02-15  Richard Guenther  <rguenther@suse.de>
21049
21050         PR middle-end/43068
21051         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
21052         if that is zero.
21053
21054 2010-02-15  Nick Clifton  <nickc@redhat.com>
21055
21056         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
21057         delta.
21058
21059 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
21060
21061         * intl.c (fake_ngettext): New function.
21062         * intl.h (fake_ngettext): Declare.
21063         (ngettext): Define macro.
21064         * collect2.c (notice_translated): New function.
21065         (main): Use notice_translated and ngettext.
21066         * collect2.h (notice_translated): Declare.
21067
21068 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
21069
21070         * reorg.c (delete_computation): Comment fixes.
21071         * caller-save.c (setup_save_areas): Idem.
21072         * sel-sched-dump.c (dump_lv_set): Idem.
21073         * rtl.def: Idem.
21074
21075 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21076
21077         * config/s390/s390.c (s390_sched_init): New function.
21078         (TARGET_SCHED_INIT): Target hook defined.
21079
21080 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
21081             Jack Howarth  <howarth@bromo.med.uc.edu>
21082             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
21083
21084         PR target/42982
21085         Partial revert of unintended change in fix for PR41605.
21086         * config/darwin.h: Fix typo.
21087         * config/darwin9.h: Same.
21088
21089 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
21090
21091         * c-pch.c (pch_init): Clear v.
21092
21093 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21094
21095         PR middle-end/42930
21096         * graphite-scop-detection.c (graphite_can_represent_scev): Call
21097         graphite_can_represent_init for MULT_EXPR.
21098
21099 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21100
21101         PR middle-end/42914
21102         PR middle-end/42530
21103         * graphite-sese-to-poly.c (remove_phi): New.
21104         (translate_scalar_reduction_to_array): Call remove_phi.
21105
21106 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21107
21108         PR middle-end/42771
21109         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
21110         * graphite-clast-to-gimple.h (gloog): Update declaration.
21111         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
21112         * graphite-poly.h (struct poly_bb): Add missing comments.
21113         (struct scop): Add poly_scop_p field.
21114         (POLY_SCOP_P): New.
21115         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
21116         * graphite.c (graphite_transform_loops): Build the polyhedral
21117         representation for each scop before code generation.
21118         * sese.c (rename_variables_in_operand): Removed.
21119         (rename_variables_in_expr): Return the renamed expression.
21120         (rename_sese_parameters): New.
21121         * sese.h (rename_sese_parameters): Declared.
21122
21123 2010-02-11  Richard Guenther  <rguenther@suse.de>
21124
21125         PR tree-optimization/42998
21126         * tree-ssa-pre.c (create_expression_by_pieces): Treat
21127         POINTER_PLUS_EXPR properly.
21128
21129 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21130             Changpeng Fang  <changpeng.fang@amd.com>
21131
21132         PR middle-end/40886
21133         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
21134         the cost of an IV candidate when the IV is used in a test against zero.
21135
21136         * gcc.dg/tree-ssa/ivopts-3.c: New.
21137
21138 2010-02-11  Richard Guenther  <rguenther@suse.de>
21139
21140         PR lto/41664
21141         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
21142         pointer-vs-decl case by swapping refs.  Handle some cases
21143         of pointer-vs-decl disambiguations more conservatively.
21144         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
21145         to false after expanding.
21146
21147 2010-02-11  Richard Guenther  <rguenther@suse.de>
21148
21149         PR driver/43021
21150         * gcc.c (process_command): Handle LTO file@offset case more
21151         appropriately.
21152
21153 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
21154
21155         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
21156         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
21157         of DEBUG_INSNs.
21158         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
21159
21160         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
21161         if MEM's mode size isn't DWARF2_ADDR_SIZE.
21162         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
21163         Optimize eq/ne comparisons when both arguments are known to be
21164         zero-extended.
21165         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
21166         Don't mask operands unnecessarily if they are known to be already
21167         zero-extended.
21168
21169 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
21170
21171         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
21172         instead of loop.
21173
21174 2010-02-10  Richard Guenther  <rguenther@suse.de>
21175
21176         PR tree-optimization/43017
21177         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
21178         for wrapping signed arithmetic.
21179
21180 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
21181
21182         PR debug/43010
21183         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
21184         if no debug info should be emitted for it.
21185
21186 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
21187
21188         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
21189         note when flag_exceptions is set.
21190
21191 2010-02-10  Duncan Sands  <baldrick@free.fr>
21192
21193         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
21194
21195 2010-02-10  Richard Guenther  <rguenther@suse.de>
21196
21197         PR c/43007
21198         * tree.c (get_unwidened): Handle constants.
21199         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
21200
21201 2010-02-10  Martin Jambor  <mjambor@suse.cz>
21202
21203         PR lto/42985
21204         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
21205         check for variable argument counts independently.
21206
21207 2010-02-10  Christian Bruel  <christian.bruel@st.com>
21208
21209         PR target/42841
21210         * config/sh/sh.c (find_barrier): Increase length for non delayed
21211         conditional branches.
21212
21213 2010-02-10  Christian Bruel  <christian.bruel@st.com>
21214
21215         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
21216
21217 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
21218
21219         * builtins.c (set_builtin_user_assembler_name): Also handle
21220         ffs if int is smaller than word.
21221
21222 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
21223
21224         PR middle-end/42973
21225         * ira-conflicts.c (get_dup): Remove.
21226         (process_reg_shuffles): Add new parameter.  Use it as an
21227         additional guard for copy generation.
21228         (add_insn_allocno_copies): Rewrite.
21229
21230 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
21231
21232         * common.opt (fsched2-use-traces): Preserved for backward
21233         compatibility.
21234         * doc/invoke.texi: Remove the documentation about option
21235         -fsched2-use-traces.
21236         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
21237         flag_sched2_use_traces.
21238         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
21239         the backward compatibility flag section.
21240
21241 2010-02-09  Richard Guenther  <rguenther@suse.de>
21242
21243         PR tree-optimization/43008
21244         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
21245         make HEAP variables initialized from global memory if they
21246         are not known builtin functions.
21247         (find_func_aliases): Adjust.
21248
21249 2010-02-09  Richard Guenther  <rguenther@suse.de>
21250
21251         PR tree-optimization/43000
21252         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
21253         arithmetic manually.
21254
21255 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
21256
21257         PR tree-optimization/42931
21258         * tree-loop-linear.c (try_interchange_loops): Don't call
21259         double_int_mul if estimated_loop_iterations failed.
21260
21261 2010-02-08  Martin Jambor  <mjambor@suse.cz>
21262
21263         PR middle-end/42898
21264         * tree-sra.c (build_accesses_from_assign): Do not mark in
21265         should_scalarize_away_bitmap if stmt has volatile ops.
21266         (sra_modify_assign): Do not process assigns piecemeal if if stmt
21267         has volatile ops.
21268
21269 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
21270
21271         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
21272
21273 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
21274
21275         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
21276         before the pattern.
21277
21278 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
21279
21280         PR middle-end/42946
21281         * df-core.c (df_finish_pass): Change type of saved_flags to int.
21282
21283 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
21284
21285         PR middle-end/42988
21286         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
21287         to unknown_dependence.
21288         (graphite_legal_transform_dr): Handle the unknown_dependence.
21289         (graphite_carried_dependence_level_k): Same.
21290
21291 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
21292
21293         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
21294
21295 2010-02-07  Richard Guenther  <rguenther@suse.de>
21296
21297         PR middle-end/42991
21298         * expr.c (get_inner_reference): Always initialize *pbitsize.
21299
21300 2010-02-07  Richard Guenther  <rguenther@suse.de>
21301
21302         PR middle-end/42956
21303         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
21304         new ARRAY_REFs on variable size element or minimal index arrays.
21305         Complete.
21306         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
21307         gimple_fold_indirect_ref.
21308
21309 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
21310
21311         PR target/42957
21312         * arm.c (arm_override_options): Just return if the user has specified
21313         an invalid fpu name.
21314
21315 2010-02-03  Jason Merrill  <jason@redhat.com>
21316
21317         PR c++/42870
21318         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
21319         i386_pe_maybe_record_exported_symbol.
21320
21321 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
21322
21323         PR target/42924
21324         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
21325         (pa_delegitimize_address): New function.
21326
21327 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
21328
21329         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
21330         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
21331
21332 2010-02-05  Richard Guenther  <rguenther@suse.de>
21333
21334         PR lto/42762
21335         * lto-streamer-in.c (get_resolution): Deal with references
21336         to undefined functions.
21337
21338 2010-02-05  Richard Guenther  <rguenther@suse.de>
21339
21340         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
21341         (fold_const_aggregate_ref): Likewise.
21342         (ccp_fold_stmt): Substitute loads.
21343         (maybe_fold_reference): Verify types before substituting.
21344         Unshare properly.
21345         (fold_gimple_assign): Unshare properly.
21346         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
21347
21348 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
21349
21350         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
21351         for rs6000_gen_cell_microcode.
21352
21353 2010-02-04  Richard Guenther  <rguenther@suse.de>
21354
21355         PR rtl-optimization/42952
21356         * dse.c (const_or_frame_p): Remove MEM handling.
21357
21358 2010-02-04  Nick Clifton  <nickc@redhat.com>
21359
21360         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
21361         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
21362         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
21363         (mn10300_asm_output_mi_thunk): New function.
21364         (mn10300_can_output_mu_thunk): New function.
21365         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
21366         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
21367         (FUNCTION_ARG): Delete incorrect comment.
21368
21369 2010-02-03  Jason Merrill  <jason@redhat.com>
21370
21371         PR c++/40138
21372         * fold-const.c (operand_equal_p): Handle erroneous types.
21373
21374 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
21375
21376         * config/h8300/h8300.md (can_delay): Fix attibute condition.
21377
21378 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
21379
21380         PR rtl-optimization/42941
21381         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
21382         of xmalloc.
21383
21384 2010-02-03  Jason Merrill  <jason@redhat.com>
21385
21386         PR c++/35652
21387         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
21388
21389 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
21390
21391         PR debug/42896
21392         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
21393         (cselib_reset_table): Renamed from...
21394         (cselib_reset_table_with_next_value): ... this.
21395         (cselib_get_next_uid): Renamed from...
21396         (cselib_get_next_unknown_value): ... this.
21397         * cselib.c (next_uid): Renamed from...
21398         (next_unknown_value): ... this.
21399         (cselib_clear_table): Adjust.
21400         (cselib_reset_table): Adjust.  Renamed from...
21401         (cselib_reset_table_with_next_value): ... this.
21402         (cselib_get_next_uid): Adjust.  Renamed from...
21403         (cselib_get_next_unknown_value): ... this.
21404         (get_value_hash): Use hash.
21405         (cselib_hash_rtx): Likewise.
21406         (new_cselib_val): Adjust.  Set and dump uid.
21407         (cselib_lookup_mem): Pass next_uid as hash.
21408         (cselib_subst_to_values): Likewise.
21409         (cselib_log_lookup): Dump uid.
21410         (cselib_lookup): Pass next_uid as hash.  Adjust.
21411         (cselib_process_insn): Adjust.
21412         (cselib_init): Initialize next_uid.
21413         (cselib_finish): Adjust.
21414         (dump_cselib_table): Likewise.
21415         * dse.c (canon_address): Dump value uid.
21416         * print-rtl.c (print_rtx): Print value uid.
21417         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
21418         (dvuid): New type.
21419         (dv_uid): New function, sort of renamed from...
21420         (dv_htab_hash): ... this, reimplemented in terms of it and...
21421         (dv_uid2hash): ... this.  New.
21422         (variable_htab_eq): Drop excess assertions.
21423         (tie_break_pointers): Removed.
21424         (canon_value_cmp): Compare uids.
21425         (variable_post_merge_New_vals): Print uids.
21426         (vt_add_function_parameters): Adjust.
21427         (vt_initialize): Reset table.  Adjust.
21428
21429 2010-02-03  Richard Guenther  <rguenther@suse.de>
21430
21431         PR tree-optimization/42944
21432         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
21433         (call_may_clobber_ref_p_1): Likewise.  Properly handle
21434         malloc and calloc clobbering errno.
21435
21436 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
21437
21438         * doc/invoke.texi: Fix name of sched1 dump.
21439
21440         * opts.c (decode_options): Set flag_tree_switch_conversion
21441         only conditionally on optimize >= 2.
21442
21443         * gcse.c: Assorted comment fixes in pass description.
21444
21445 2010-02-03  Anthony Green  <green@moxielogic.com>
21446
21447         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
21448         nop padding in order to maintain alignment of storage location of
21449         target function address.
21450         (moxie_trampoline_init): Store target function address at newly
21451         aligned location.
21452         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
21453         to 32.
21454         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
21455
21456 2010-02-03  Richard Guenther  <rguenther@suse.de>
21457
21458         PR middle-end/42927
21459         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
21460
21461 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21462
21463         * config.gcc: Reenable check for obsolete targets.
21464         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
21465         mips-sgi-irix6.[0-4]*.
21466
21467 2010-02-02  Nick Clifton  <nickc@redhat.com>
21468
21469         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
21470         constant size of 4 as being the same as 0.
21471         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
21472         can take values in the range 0..4.
21473
21474 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
21475
21476         PR java/41991
21477         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
21478         as _darwin10_Unwind_FindEnclosingFunction().
21479         * libgcc-libsystem.ver: New.
21480
21481 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
21482
21483         PR target/41399
21484         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
21485         implicitly set registers.
21486
21487 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
21488
21489         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
21490         (arm_override_options): Allow automatic selection of the thread
21491         pointer register if thumb2.
21492         (legitimize_pic_address): Improve code sequences for Thumb2.
21493         (arm_call_tls_get_addr): Likewise.
21494         (legitimize_tls_address): Likewise.
21495         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
21496         (pic_load_addr_32bit): ... this.  New named pattern.
21497         * thumb2.md (pic_load_addr_thumb2): Delete.
21498         (pic_load_dot_plus_four): Delete.
21499         (tls_load_dot_plus_four): New named pattern.
21500
21501 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21502
21503         PR libgomp/29986
21504         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
21505         Document fix for TLS bug.
21506
21507 2010-01-31  Richard Guenther  <rguenther@suse.de>
21508
21509         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
21510         conservatively correct.
21511
21512 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21513
21514         PR target/42850
21515         Revert:
21516         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21517
21518         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
21519
21520 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21521
21522         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
21523
21524 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
21525
21526         * config.gcc: Adjust order of makefile fragments for mingw targets.
21527
21528 2010-01-31  Richard Guenther  <rguenther@suse.de>
21529
21530         PR middle-end/42898
21531         * gimplify.c (gimplify_init_constructor): For volatile LHS
21532         initialize a temporary.
21533
21534 2010-01-31  Matthias Klose  <doko@ubuntu.com>
21535
21536         * configure.ac: Fix __stack_chk_fail check for cross builds configured
21537         --with-headers
21538         * configure: Regenerate.
21539
21540 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
21541
21542         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
21543         the same alias set and their sizes different constantness.
21544         (aliasing_component_refs_p): Revert 2009-10-24 change.
21545
21546 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21547
21548         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
21549         unused.
21550
21551 2010-01-29  Richard Guenther  <rguenther@suse.de>
21552
21553         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
21554         Assert we successfully updated the call.
21555
21556 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
21557
21558         PR rtl-optimization/42889
21559         * df.h (df_set_bb_dirty_nonlr): New prototype.
21560         * df-core.c (df_set_bb_dirty_nonlr): New function.
21561         * df-scan.c (df_insn_rescan): Call it instead of
21562         df_set_bb_dirty for DEBUG_INSNs.
21563
21564 2010-01-29  Richard Guenther  <rguenther@suse.de>
21565
21566         PR middle-end/37448
21567         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
21568         quadratic behavior in most cases.
21569
21570 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
21571
21572         PR target/42891
21573         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
21574         in the call to gen_x86_movsicc_0_m1.
21575
21576 2010-01-28  Richard Guenther  <rguenther@suse.de>
21577
21578         PR tree-optimization/42871
21579         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
21580
21581 2010-01-28  Richard Guenther  <rguenther@suse.de>
21582
21583         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
21584         into call arguments.
21585
21586 2010-01-28  Richard Guenther  <rguenther@suse.de>
21587
21588         PR middle-end/42883
21589         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
21590         the forwarder if the destination is an EH landing pad.
21591
21592 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
21593
21594         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
21595         block list passed to gimple_duplicate_sese_tail.
21596         (parallelize_loops): Avoid parallelization when the function
21597         has_nonlocal_label.
21598         Avoid parallelization when the preheader is IRREDUCIBLE.
21599         Try to optimize when estimated_loop_iterations_int is unresolved.
21600         Add the loop's location to the dump file.
21601         * tree-cfg.c (add_phi_args_after_redirect): Remove.
21602         (gimple_duplicate_sese_tail): Remove the check for the latch.
21603         Redirect nexits to the exit block.
21604         Remove handling of the incoming edges to the latch.
21605         Redirect the backedge from the copied latch to the exit bb.
21606
21607 2010-01-28  Michael Matz  <matz@suse.de>
21608
21609         PR target/42881
21610         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
21611         Wrap force_reg into a sequence, emit it before user.
21612
21613 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
21614
21615         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
21616         (arm_rev): New.
21617         (arm_legacy_rev): Likewise.
21618         (thumb_legacy_rev): Likewise.
21619
21620 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
21621
21622         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
21623         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
21624         on MEM's address failed, try avoid_constant_pool_reference and
21625         recurse if it returned something different.
21626         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
21627         address, try avoid_constant_pool_reference and recurse if it
21628         returned something different.
21629         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
21630         address and avoid_constant_pool_reference returned something
21631         different, don't set have_address.
21632
21633 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
21634
21635         PR debug/42861
21636         * var-tracking.c (val_store): Add modified argument, obey it.
21637         Adjust callers.
21638         (count_uses): Move down logging of main.
21639         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
21640         don't need resolution.
21641         (emit_notes_in_bb): Likewise.
21642
21643 2010-01-27  Richard Guenther  <rguenther@suse.de>
21644
21645         PR middle-end/42878
21646         * tree-inline.c (remap_decl): Delay remapping of SSA name
21647         default definitions until we need them.
21648
21649 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
21650
21651         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
21652         (rs6000_delegitimize_address): New function.
21653
21654         * config/s390/s390.c (s390_delegitimize_address): Call
21655         delegitimize_mem_from_attrs.
21656
21657         PR middle-end/42874
21658         * tree-inline.c (cannot_copy_type_1): Removed.
21659         (copy_forbidden): Don't forbid copying of functions containing
21660         records/unions with variable length fields.
21661
21662 2010-01-27  Christian Bruel  <christian.bruel@st.com>
21663
21664         Revert:
21665         PR target/42841
21666         * config/sh/sh.c (find_barrier): Increase length for non delayed
21667         conditional branches.
21668
21669 2010-01-27  Matthias Klose  <doko@ubuntu.com>
21670
21671         * configure.ac (gnu-unique-object): Fix ldd version check.
21672         * configure: Regenerate.
21673
21674 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21675
21676         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
21677         HAVE_GNU_AS value.
21678         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
21679         Test for HAVE_GNU_AS value.
21680
21681 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21682
21683         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
21684         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
21685         INT64_TYPE): Define.
21686         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
21687         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
21688         INT_LEAST64_TYPE): Define.
21689         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
21690         UINT_LEAST64_TYPE): Define.
21691         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
21692         INT_FAST64_TYPE): Define.
21693         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
21694         UINT_FAST64_TYPE): Define.
21695         (INTMAX_TYPE, UINTMAX_TYPE): Define.
21696         (INTPTR_TYPE, UINTPTR_TYPE): Define.
21697         (SIG_ATOMIC_TYPE): Define.
21698
21699 2010-01-26  Richard Guenther  <rguenther@suse.de>
21700
21701         * df-scan.c (df_scan_set_bb_info): Remove assert.
21702         (df_insn_rescan_debug_internal): Merge asserts.
21703         (df_install_ref): Likewise.
21704         (df_mark_reg): Use bitmap_set_range.
21705         (df_hard_reg_used_p): Remove assert.
21706         (df_hard_reg_used_count): Likewise.
21707
21708 2010-01-26  Richard Guenther  <rguenther@suse.de>
21709
21710         PR rtl-optimization/42685
21711         * web.c (web_main): Ignore DEBUG_INSNs.
21712
21713 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
21714
21715         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
21716
21717         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
21718         Fix types of fndecl and arglist parameters.
21719
21720 2010-01-26  Richard Guenther  <rguenther@suse.de>
21721
21722         PR middle-end/42806
21723         * tree-eh.c (unsplit_eh): Skip debug insns.
21724
21725 2010-01-26  Richard Guenther  <rguenther@suse.de>
21726
21727         PR tree-optimization/42250
21728         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
21729
21730 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
21731
21732         PR fortran/42866
21733         * omp-low.c (expand_omp_sections): Only use single_pred if
21734         l2_bb is single_pred_p.
21735
21736 2010-01-25  Christian Bruel  <christian.bruel@st.com>
21737
21738         PR target/42841
21739         * config/sh/sh.c (find_barrier): Increase length for non delayed
21740         conditional branches.
21741         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
21742
21743 2010-01-24  David S. Miller  <davem@davemloft.net>
21744
21745         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
21746         define if not using GAS.
21747         * config/sparc/sparc.c (sparc_elf_asm_named_section):
21748         Likewise.  Delete SECTION_MERGE code, which is only applicable
21749         when using GAS.
21750
21751 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
21752
21753         PR c++/42748
21754         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
21755         mangling of va_list in system headers.
21756
21757 2010-01-23  Toon Moene  <toon@moene.org>
21758
21759         * tree-predcom.c (combine_chains): Return NULL, not false.
21760
21761 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
21762
21763         * tree-loop-distribution.c (distribute_loop): Fix declaration and
21764         initialization of variable res to agree with return type.
21765
21766 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
21767
21768         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
21769         * tree-sra.c: Add include of expr.h.
21770
21771 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
21772
21773         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
21774         insert the debug stmt on the single non-EH edge from the stmt.
21775
21776 2010-01-22  Richard Henderson  <rth@redhat.com>
21777
21778         PR tree-opt/42833
21779         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
21780         the RHS until after generate_subtree_copies has insertted its
21781         code before the current statement.
21782
21783 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
21784
21785         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
21786
21787         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
21788
21789 2010-01-21  Martin Jambor  <mjambor@suse.cz>
21790
21791         PR tree-optimization/42585
21792         * tree-sra.c (struct access): New field grp_total_scalarization.
21793         (dump_access): Dump the new field.
21794         (should_scalarize_away_bitmap): New variable.
21795         (cannot_scalarize_away_bitmap): Likewise.
21796         (sra_initialize): Allocate new bitmaps.
21797         (sra_deinitialize): Free new bitmaps.
21798         (create_access_1): New function.
21799         (create_access): Parts moved to create_access_1.
21800         (type_consists_of_records_p): New function.
21801         (completely_scalarize_record): Likewise.
21802         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
21803         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
21804         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
21805         access.
21806         (analyze_all_variable_accesses): Completely scalarize small eligible
21807         records.
21808
21809 2010-01-21  Martin Jambor  <mjambor@suse.cz>
21810
21811         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
21812
21813 2010-01-21  Andrew Haley  <aph@redhat.com>
21814
21815         * gcc.c (process_command): Move lang_specific_driver before
21816         setting cc_libexec_prefix.
21817
21818 2010-01-21  Richard Guenther  <rguenther@suse.de>
21819
21820         PR middle-end/19988
21821         * fold-const.c (negate_expr_p): Pretend only negative
21822         real constants are easily negatable.
21823
21824 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
21825             Jason Merrill  <jason@redhat.com>
21826
21827         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
21828         (TYPE_TRANSPARENT_AGGR): this, for union and record.
21829         * calls.c (initialize argument_information): Handle it.
21830         * c-common.c (handle_transparent_union_attribute): Use new name.
21831         * c-decl.c (finish_struct): Ditto.
21832         * c-typeck.c (type_lists_compatible_p): Ditto.
21833         (convert_for_assignment): Use new name and also handle record.
21834         * function.c (aggregate_value_p): Handle it.
21835         (pass_by_reference): Ditto.
21836         (assign_parm_data_types): Ditto.
21837         * print-tree.c (print_node): Ditto.
21838         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
21839         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
21840         * tree.c (first_field): New fn.
21841
21842 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
21843
21844         PR target/42818
21845         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
21846         even when linking statically, for now.
21847
21848 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
21849
21850         PR debug/42715
21851         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
21852         without a cselib val.
21853         (count_uses): Accept MO_VAL_SET with no val on stores.
21854         (add_stores): Likewise.
21855
21856 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
21857
21858         * var-tracking.c (check_value_val): Add a compile time assertion.
21859         (dv_is_decl_p): Simplify.
21860         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
21861         gcc_assert if ENABLE_CHECKING.
21862
21863 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
21864
21865         PR debug/42782
21866         * var-tracking.c: Include tree-flow.h.
21867         (mem_dies_at_call): New.
21868         (dataflow_set_preserve_mem_locs): Use it.
21869         (dataflow_set_remove_mem_locs): Likewise.
21870         (dump_var): Renamed from dump_variable.  Adjust all callers.
21871         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
21872         * Makefile.in (var-tracking.o): Adjust deps.
21873
21874 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
21875
21876         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
21877
21878 2010-01-20  Richard Guenther  <rguenther@suse.de>
21879
21880         PR tree-optimization/42717
21881         * tree-ssa-dce.c (get_live_post_dom): Remove.
21882         (forward_edge_to_pdom): Take an arbitrary edge to copy
21883         degenerate PHI args from.
21884         (remove_dead_stmt): Use the first post-dominator even if it
21885         does not contain live statements as redirection destination.
21886
21887 2010-01-20  Richard Guenther  <rguenther@suse.de>
21888
21889         * tree-inline.c (estimate_num_insns): Handle EH builtins.
21890
21891 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
21892
21893         * sel-sched.c (create_speculation_check): Remove set but not used
21894         variable twin.
21895         (try_transformation_cache): Remove set but not used variable ds.
21896         (calculate_privileged_insns): Remove set but not used variables
21897         cur_insn and min_spec_insn.
21898         (find_best_expr): Remove set but not used variable avail_n.
21899         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
21900         variable e.
21901         * cgraphunit.c (assemble_thunk): Remove set but not used variable
21902         false_label.
21903         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
21904         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
21905         new_scop_exit_edge.
21906
21907 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
21908
21909         PR bootstrap/42786
21910         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
21911         cpu types.  Add support for *-sse3 cpu types.
21912         (x86_64-*-*): Ditto.
21913
21914 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
21915
21916         PR middle-end/42803
21917         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
21918         argument, call initializer_constant_valid_p_1 instead of
21919         initializer_constant_valid_p, pass CACHE to it, return NULL
21920         immediately if first call returns NULL.
21921         (initializer_constant_valid_p_1): New function.
21922         (initializer_constant_valid_p): Use it.
21923
21924 2010-01-20  Thomas Quinot  <quinot@adacore.com>
21925
21926         * tree.def (PLACEHOLDER_EXPR): Fix comment.
21927
21928 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
21929
21930         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
21931         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
21932         (loc_list_from_tree): Don't handle unsigned division.  Handle
21933         signed modulo using DW_OP_{over,over,div,mul,minus}.
21934         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
21935         modulo instead of signed.
21936
21937 2010-01-20  DJ Delorie  <dj@redhat.com>
21938
21939         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
21940         (Fpa): Pass it
21941         (h8300_emit_stack_adjustment): Propogate it.
21942         (push): Pass it.
21943         (h8300_expand_prologue): Likewise.
21944         (h8300_expand_epilogue): Likewise.
21945
21946 2010-01-19  Michael Matz  <matz@suse.de>
21947
21948         PR tree-optimization/41783
21949         * tree-data-ref.c (toplevel): Include flags.h.
21950         (dump_data_dependence_relation):  Also dump the inputs if the
21951         result will be unknown.
21952         (split_constant_offset_1): Look through some conversions.
21953         * tree-predcom.c (determine_roots_comp): Restart a new chain if
21954         the offset from last element is too large.
21955         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
21956         (reassociate_to_the_same_stmt): Handle vector registers.
21957         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
21958         (e.g. conversions).
21959         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
21960         wide_prolog_niters argument, emit widening instructions.
21961         (vect_do_peeling_for_alignment): Adjust caller, use widened
21962         variant of the iteration cound.
21963         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
21964
21965 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21966
21967         PR target/38697
21968         * config/arm/neon-testgen.m (emit_automatics): New parameter
21969         features. Adjust for Fixed_return_reg feature.
21970         (test_intrinsic): Call emit_automatics with new feature.
21971         * config/arm/neon.ml: Update copyright years.
21972         (features): New Fixed_return_reg feature.
21973         (ops): Update feature for Vget_low.
21974
21975 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
21976
21977         PR tree-optimization/42719
21978         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
21979         stmt uses.
21980
21981         PR debug/42728
21982         * fwprop.c (all_uses_available_at): Return false if def_set dest
21983         is a REG that is used in def_insn.
21984
21985 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
21986
21987         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
21988
21989         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
21990         Add argument names.
21991
21992         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
21993
21994         * target.h (struct gcc_target) <secondary_reload>: Change type
21995         of last argument to secondary_reload_info *.
21996
21997 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
21998
21999         PR target/42774
22000         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
22001         memory references with unaligned offsets.  Remove CQImode handling.
22002         (unaligned_memory_operand): Return 1 for memory references with
22003         unaligned offsets.  Remove CQImode handling.
22004
22005 2010-01-18  Richard Guenther  <rguenther@suse.de>
22006
22007         PR middle-end/39954
22008         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
22009         builtin calls.
22010
22011 2010-01-18  Richard Guenther  <rguenther@suse.de>
22012
22013         PR tree-optimization/42781
22014         * tree-ssa-structalias.c (find_what_var_points_to): Skip
22015         restrict processing only if the original variable was artificial.
22016
22017 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
22018
22019         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
22020         find number of popped argument bytes.
22021
22022         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
22023         Fix the text that describes the return value for invalid insns.
22024
22025         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
22026
22027         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
22028         Clarify what 'cost of the -dependence' is.  Fix quoting.
22029
22030         * toplev.c (default_get_pch_validity): Rename argument to "sz".
22031         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
22032
22033 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
22034
22035         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
22036         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
22037
22038 2010-01-17  Richard Guenther  <rguenther@suse.de>
22039
22040         PR middle-end/42248
22041         * function.c (split_complex_args): Take a VEC to modify.
22042         (assign_parms_augmented_arg_list): Build a VEC instead of
22043         a chain of PARM_DECLs.
22044         (assign_parms_unsplit_complex): Take a VEC of arguments.
22045         Do not fixup unmodified parms.
22046         (assign_parms): Deal with the VEC.
22047         (gimplify_parameters): Likewise.
22048
22049 2010-01-17  Richard Guenther  <rguenther@suse.de>
22050
22051         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
22052         node existence check.
22053         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
22054         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
22055         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
22056         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
22057         (gimple_execute_on_growing_pred): Likewise.
22058
22059 2010-01-17  Richard Guenther  <rguenther@suse.de>
22060
22061         PR tree-optimization/42773
22062         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
22063         (compute_antic_aux): Likewise.
22064         (compute_partial_antic_aux): Likewise.
22065
22066 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
22067
22068         PR debug/42767
22069         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
22070         and US_TRUNCATE.
22071
22072 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
22073
22074         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
22075         appearance.
22076
22077         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
22078         Fix markup for strict argument.
22079
22080         (TARGET_SCHED_REORDER2): Fix argument types.
22081
22082         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
22083         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
22084
22085         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
22086         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
22087
22088         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
22089         Add argument name.
22090
22091         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
22092         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
22093         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
22094         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
22095         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
22096
22097         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
22098
22099         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
22100
22101         (TARGET_ASM_RELOC_RW_MASK): Add return type.
22102         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
22103
22104         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
22105
22106         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
22107         Use prototype.
22108
22109         (TARGET_ASM_NAMED_SECTION): Fix argument list.
22110
22111         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
22112         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
22113
22114         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
22115
22116         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
22117
22118         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
22119         referring to it.  Fix language.
22120
22121         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
22122
22123         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
22124
22125         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
22126
22127         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
22128
22129         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
22130         '@var{stream}.  Remove stray 'and'.
22131
22132         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
22133
22134         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
22135
22136         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
22137
22138         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
22139         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
22140
22141         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
22142         Fix description of return value.
22143         Rename argument "sz" to "len."
22144
22145         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
22146         Clarify meaning of 'true' return value.
22147
22148         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
22149
22150         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
22151         rep_mode versus mode_rep.
22152
22153         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
22154
22155         (TARGET_BUILTIN_DECL): Fix name.
22156
22157         (TARGET_COMMUTATIVE_P): Fix type of first argument.
22158
22159         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
22160
22161         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
22162
22163         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
22164
22165         (TARGET_RELAXED_ORDERING): Use @deftypevr.
22166
22167         (TARGET_GET_DRAP_RTX): Note that this is a hook.
22168         Clarify language.
22169
22170         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
22171         Rename argument tm_fn to md_fn.
22172
22173         (TARGET_OPTION_PRINT): Fix argument list.
22174
22175 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
22176
22177         PR target/42664
22178         * config/i386/i386.c (ix86_fixup_binary_operands):
22179         Revert FMA4 fixup of operands.
22180
22181 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22182
22183         PR gcc/42525
22184         * Makefile.in (write_entries_to_file, install-plugin):
22185         Use \012 instead of \n with tr.
22186
22187 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
22188
22189         * configure.ac (HAVE_AS_REF): New C macro.
22190         * configure: Regenerate.
22191         * config.in: Likewise.
22192         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
22193         if HAVE_AS_REF.
22194         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
22195         if HAVE_AS_REF.
22196
22197 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
22198
22199         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
22200
22201         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
22202
22203         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
22204
22205         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
22206
22207         (TARGET_IN_SMALL_DATA_P): Fix argument type.
22208
22209         (TARGET_BINDS_LOCAL_P): Fix argument type.
22210
22211         (TARGET_ASM_FILE_END): Use prototype.
22212
22213         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
22214
22215         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
22216
22217         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
22218
22219         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
22220
22221         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
22222         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
22223
22224         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
22225         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
22226
22227         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
22228         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
22229         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
22230         (TARGET_ADDR_SPACE_CONVERT): Likewise.
22231
22232         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
22233
22234         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
22235
22236         (TARGET_INIT_BUILTINS): Use prototype.
22237
22238         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
22239         Put 'const char *' in braces.  Fix parameter types.
22240         (TARGET_INVALID_CONVERSION): Fix parameter types.
22241         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
22242         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
22243
22244         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
22245         Fix argument type.
22246
22247         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
22248
22249         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
22250
22251 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
22252
22253         * doc/tm.texi (TARGET_HELP): Fix return type.
22254
22255         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
22256         in braces.  Fix argument types.
22257
22258         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
22259
22260         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
22261
22262         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
22263
22264         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
22265         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
22266
22267         (TARGET_MANGLE_TYPE): Fix argument types.
22268
22269         (TARGET_IRA_COVER_CLASSES): Use prototype.
22270
22271         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
22272
22273         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
22274
22275         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
22276
22277         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
22278
22279         (TARGET_CALLEE_COPIES): Fix argument types.
22280
22281         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
22282
22283         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
22284
22285         (TARGET_FUNCTION_VALUE): Fix argument types.
22286
22287         (TARGET_RETURN_IN_MSB): Fix argument type.
22288
22289         (TARGET_RETURN_IN_MEMORY): Fix argument types.
22290
22291         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
22292
22293         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
22294
22295         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
22296         agree with return type.
22297
22298         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
22299
22300 2010-01-15  Jing Yu  <jingyu@google.com>
22301
22302         PR rtl-optimization/42691
22303         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
22304         a pseudo to a constant and are merged, and adjust comments.
22305
22306 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
22307
22308         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
22309
22310 2010-01-15  Richard Guenther  <rguenther@suse.de>
22311
22312         PR middle-end/42739
22313         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
22314         labels of computed or non-local gotos to the destination.
22315         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
22316         landing pad label is the first label.
22317
22318 2010-01-15  Richard Guenther  <rguenther@suse.de>
22319
22320         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
22321
22322 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
22323
22324         PR target/42747
22325         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
22326         to allow generation of the xssqrtdp instruction on power7.
22327         (sqrtdf2_fpr): Ditto.
22328
22329 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
22330
22331         PR middle-end/42674
22332         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
22333         functions with noreturn attribute.
22334
22335         PR c++/42608
22336         * varasm.c (declare_weak): Add weak attribute to decl if it
22337         doesn't have one already.
22338         (assemble_external): Only add decls to weak_decls if they also
22339         have weak attribute.
22340
22341 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
22342
22343         * var-tracking.c (var_reg_delete): Don't delete the association
22344         between REGs and values or one-part variables if the register
22345         isn't clobbered.
22346
22347 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
22348
22349         PR debug/42657
22350         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
22351         because its first operand is a non-localized variable.
22352
22353 2010-01-14  Martin Jambor  <mjambor@suse.cz>
22354
22355         PR tree-optimization/42706
22356         * tree-sra.c (encountered_recursive_call): New variable.
22357         (encountered_unchangable_recursive_call): Likewise.
22358         (sra_initialize): Initialize both new variables.
22359         (callsite_has_enough_arguments_p): New function.
22360         (scan_function): Call decl and flags check only for IPA-SRA, check
22361         whether there is a recursive call and whether it has enough arguments.
22362         (all_callers_have_enough_arguments_p): New function.
22363         (convert_callers): Look for recursive calls only when
22364         encountered_recursive_call is set.
22365         (ipa_early_sra): Bail out either if
22366         !all_callers_have_enough_arguments_p or
22367         encountered_unchangable_recursive_call.
22368
22369 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22370
22371         * sel-sched.c: Add 2010 to copyright years.
22372         * sel-sched-ir.c: Likewise.
22373         * sel-sched-ir.h: Likewise.
22374
22375 2010-01-14  Martin Jambor  <mjambor@suse.cz>
22376
22377         PR tree-optimization/42714
22378         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
22379         constructors specially.
22380
22381 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22382
22383         * config/i386/drivers-i386.c (detect_caches_intel):
22384         Add l2sizekb parameter and fill in.
22385         (host_detect_local_cpu): Add l2sizekb, fill in.
22386         Add Atom small cache heuristic.
22387
22388 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22389
22390         * config/i386/drivers-i386.c (detect_caches_cpuid4):
22391         Add level3 parameter and fill in.
22392         (detect_caches_intel): Handle level3 cache.
22393
22394 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22395
22396         * config/i386/drivers-i386.c (host_detect_local_cpu):
22397         Fix core duo detection.
22398
22399 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22400
22401         * config/i386/drivers-i386.c (host_detect_local_cpu):
22402         Fix Atom detection.
22403
22404 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22405
22406         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
22407         (rs6000_variable_issue_1): this.  Use...
22408         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
22409
22410 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22411
22412         * sel-sched-ir.c (sel_restore_other_notes): Rename to
22413         sel_restore_notes.  Update all callers.  Call reemit_notes
22414         for all insns.
22415
22416 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22417
22418         PR rtl-optimization/42246
22419         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
22420         loops.
22421
22422 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22423
22424         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
22425         all successors is the same as number of successors in current region.
22426
22427 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22428
22429         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
22430         to rename is not separable.  Otherwise check that its LHS is not NULL.
22431
22432 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22433
22434         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
22435
22436 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22437
22438         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
22439         available registers when failed to discover LHS register class.
22440         Fix indentation.  Update comment.
22441
22442 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22443             Alexander Monakov  <amonakov@ispras.ru>
22444
22445         PR rtl-optimization/42389
22446         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
22447         to can_issue_more.
22448         (advance_state_on_fence): Likewise.
22449         (sel_target_adjust_priority): Print debug output only when
22450         sched_verbose >= 4, not 2.
22451         (get_expr_cost): Do not issue all unique insns on the next cycle.
22452         (fill_insns): Initialize can_issue_more from the value saved
22453         with the fence.
22454         * sel-sched-ir.c (flist_add): New parameter issue_more.
22455         Init FENCE_ISSUE_MORE with it.
22456         (merge_fences): Likewise.
22457         (init_fences): Update call to flist_add.
22458         (add_to_fences, add_clean_fence_to_fences)
22459         (add_dirty_fence_to_fences): Likewise.
22460         (move_fence_to_fences): Update call to merge_fences.
22461         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
22462         sched groups.
22463         * sel-sched-ir.h (struct _fence): New field issue_more.
22464         (FENCE_ISSUE_MORE): New accessor macro.
22465
22466 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22467
22468         PR rtl-optimization/42388
22469         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
22470         that have no predecessors nor successors.  Do not call move_bb_info
22471         for empty blocks outside of current region.
22472
22473 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22474
22475         PR rtl-optimization/42294
22476         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
22477         * sel-sched.c (move_exprs_to_boundary): Transitively add all
22478         originators' originators.
22479
22480 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22481
22482         PR rtl-optimization/39453
22483         PR rtl-optimization/42246
22484         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
22485         for pipelining_p.
22486         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
22487
22488 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22489             Alexander Monakov  <amonakov@ispras.ru>
22490
22491         PR middle-end/42245
22492         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
22493         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
22494         argument.  Update all callers.
22495         (tidy_control_flow): ... and here.  Recompute topological order
22496         of basic blocks in region if necessary.
22497         (sel_redirect_edge_and_branch): Change return type.  Return true
22498         if topological order might have been invalidated.
22499         (purge_empty_blocks): Export and move from...
22500         * sel-sched.c (purge_empty_blocks): ... here.
22501         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
22502         (maybe_tidy_empty_bb): Delete prototype.
22503         (purge_empty_blocks): Declare.
22504
22505 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
22506
22507         PR rtl-optimization/42249
22508         * sel-sched.c (try_replace_dest_reg): When chosen register
22509         and original register is the same, do not bail out early, but
22510         still check all original insns for validity of replacing destination
22511         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
22512         in this case.
22513
22514 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
22515
22516         PR c/42721
22517         Port from no-undefined-overflow branch:
22518         2009-03-09  Richard Guenther  <rguenther@suse.de>
22519
22520         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
22521
22522 2010-01-14  Richard Guenther  <rguenther@suse.de>
22523
22524         PR lto/42665
22525         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
22526
22527 2010-01-14  Ira Rosen  <irar@il.ibm.com>
22528
22529         PR tree-optimization/42709
22530         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
22531         as scalar type in creation of constant vector operand.
22532
22533 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22534
22535         PR testsuite/42414
22536         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
22537         (check-parallel-%): Match `testsuite' directory component only
22538         at the end.
22539
22540 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
22541
22542         PR translation/39521
22543         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
22544         strings with _().
22545
22546 2010-01-13  Richard Guenther  <rguenther@suse.de>
22547
22548         PR tree-optimization/42730
22549         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
22550         offset zero.
22551
22552 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
22553
22554         PR target/pr42542
22555         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
22556         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
22557         them signed.
22558
22559 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
22560
22561         * config/bfin/libgcc-bfin.ver: Regenerate based on current
22562         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
22563         ___umulsi3_highpart.
22564
22565         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
22566         rather than schedule_insns if the pass is enabled.
22567
22568 2010-01-13  Martin Jambor  <mjambor@suse.cz>
22569
22570         PR tree-optimization/42704
22571         * tree-sra.c (sra_modify_assign): Do not delete assignments to
22572         SSA_NAMEs.
22573
22574 2010-01-13  Martin Jambor  <mjambor@suse.cz>
22575
22576         PR tree-optimization/42703
22577         * tree-sra.c (analyze_access_subtree): Check that we can build a
22578         reference to the original data within the aggregate.
22579
22580 2010-01-13  Richard Guenther  <rguenther@suse.de>
22581
22582         PR tree-optimization/42705
22583         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
22584
22585 2010-01-13  Richard Guenther  <rguenther@suse.de>
22586
22587         PR middle-end/42716
22588         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
22589
22590 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
22591
22592         PR debug/41371
22593         * var-tracking.c (values_to_unmark): New variable.
22594         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
22595         values_to_unmark vector.  Moved body to...
22596         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
22597         instead queue it into values_to_unmark vector.
22598         (vt_find_locations): Free values_to_unmark vector.
22599
22600 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
22601
22602         * config/s390/s390.c (override_options): Set
22603         default of max-pending-list-length to 256
22604
22605 2010-01-13  Richard Guenther  <rguenther@suse.de>
22606
22607         PR lto/42678
22608         * tree-pass.h (PROP_gimple_lcx): New.
22609         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
22610         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
22611         before the final cleanup_eh.
22612         (dump_properties): Dump PROP_gimple_lcx.
22613         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
22614         (tree_lower_complex_O0): Remove.
22615         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
22616         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
22617         tree_lower_complex, schedule TODO_update_ssa.
22618         * lto-streamer-out.c (output_function): Stream the functions
22619         properties.
22620         * lto-streamer-in.c (input_function): Likewise.
22621         (lto_read_body): Do not override them here.
22622
22623 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
22624
22625         PR c/42708
22626         * c-typeck.c (build_c_cast): Fold value cast to union type before
22627         wrapping it in a CONSTRUCTOR.
22628
22629 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
22630
22631         PR rtl-optimization/42699
22632         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
22633         involved.
22634
22635 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22636
22637         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
22638         SUBTARGET_WARN_UNUSED_SPEC): Move ...
22639         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
22640         SUBTARGET_WARN_UNUSED_SPEC): ... here
22641         * config/mips/iris5.h (LIBGCC_SPEC): Define.
22642
22643 2010-01-12  Julian Brown  <julian@codesourcery.com>
22644
22645         * config/arm/neon-schedgen.ml (Utils): Don't try to
22646         open missing module.
22647         (find_with_result): New.
22648
22649 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
22650
22651         PR debug/42662
22652         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
22653         sharing when canonicalizing ({lt,ge}u (plus a b) b).
22654
22655         PR tree-optimization/42645
22656         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
22657         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
22658         decl_map, set processing_debug_stmt to -1 and return name without
22659         any remapping.
22660
22661 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
22662
22663         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
22664         binutils version, and reword target configuration description.
22665
22666 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
22667
22668         * config/avr/avr.h (LINKER_NAME): Remove.
22669
22670 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
22671
22672         PR target/42416
22673         * config/rs6000/rs6000.c (rs6000_override_options): On targets
22674         that support VSX, warn for -mno-altivec if vsx is not disabled,
22675         and disable vsx.
22676
22677 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
22678             Shujing Zhao  <pearly.zhao@oracle.com>
22679
22680         PR translation/42469
22681         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
22682         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
22683         character between option name and help text.
22684         * c.opt (imultilib): Likewise.
22685
22686 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
22687
22688         * lto-streamer-out.c (output_unreferenced_globals): Output static
22689         variables.
22690
22691 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
22692
22693         PR rtl-optimization/42621
22694         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
22695         optimizing for size.
22696         (duplicate_computed_gotos): Remove now-redundant check.
22697
22698 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
22699
22700         PR target/37454
22701         * configure.ac: Save and restore LDFLAGS and LIBS
22702         * configure: Regenerate.
22703
22704 2010-01-10  Richard Guenther  <rguenther@suse.de>
22705
22706         PR middle-end/42667
22707         * builtins.c (fold_builtin_strlen): Add type argument and
22708         convert the resulting length to it.
22709         (fold_builtin_1): Adjust.
22710
22711 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
22712
22713         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
22714         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
22715         1 insn.
22716         (num_insns_constant_wide): Adjust for that change.
22717
22718 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22719
22720         PR debug/42631
22721         * web.c (union_defs): Add used argument, to combine uses of
22722         uninitialized regs.
22723         (entry_register): Adjust type and tests of used argument.
22724         (web_main): Widen used for new use.  Pass it to union_defs.
22725         * df.h (union_defs): Adjust prototype.
22726
22727 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22728
22729         PR debug/42630
22730         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
22731         uses in new incoming argument.  Free body.
22732         (reset_debug_uses_in_loop): New.
22733         (analyze_insn_to_expand_var): Call the latter if the former found
22734         anything.  Fix whitespace.  Reject invalid dest overlaps before
22735         going through all insns in the loop.
22736
22737 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22738
22739         PR debug/42629
22740         * haifa-sched.c (dying_use_p): Debug insns don't count.
22741
22742 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22743
22744         PR middle-end/42363
22745         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
22746         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
22747         (verify_gimple_call): Reject LHS in noreturn calls.
22748
22749 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22750
22751         PR debug/42604
22752         PR debug/42395
22753         * tree-vect-loop-manip.c (adjust_info): New type.
22754         (adjust_vec): New pointer to vector.
22755         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
22756         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
22757         (slpeel_update_phis_for_duplicate_loop): Use them.
22758         (slpeel_update_phi_nodes_for_guard1): Likewise.
22759         (slpeel_update_phi_nodes_for_guard2): Likewise.
22760         (slpeel_tree_peel_loop_to_edge): Likewise.
22761         (vect_update_ivs_after_vectorizer): Likewise.
22762
22763 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22764
22765         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
22766         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
22767
22768 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22769
22770         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
22771         bogus uninitialized warning.
22772
22773 2010-01-09  Richard Guenther  <rguenther@suse.de>
22774
22775         PR middle-end/42512
22776         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
22777         the evolution is compatible with the initial condition.
22778
22779 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
22780
22781         * gcc.c (process_command): Update copyright notice dates.
22782         * gcov.c (print_version): Likewise.
22783         * gcov-dump.c (print_version): Likewise.
22784         * mips-tfile.c (main): Likewise.
22785         * mips-tdump.c (main): Likewise.
22786
22787 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
22788
22789         PR target/41885
22790         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
22791         (rotlhi3): Delete.
22792         (rotlhi3_8): Delete.
22793         (rotlsi3): Delete.
22794         (rotlsi3_8): Delete.
22795         (rotlsi3_16): Delete.
22796         (rotlsi3_24): Delete.
22797         (rotl<mode>3): New.
22798         (*rotw<mode>3): New.
22799         (*rotb<mode>3): New.
22800         * config/avr/avr.c (avr_rotate_bytes): New function.
22801         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
22802
22803 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
22804
22805         PR target/37454
22806         * configure.ac: Modify -rdynamic check.
22807         * configure: Regenerate.
22808
22809 2010-01-08  DJ Delorie  <dj@redhat.com>
22810
22811         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
22812         register popping order.
22813
22814 2010-01-08  Richard Guenther  <rguenther@suse.de>
22815
22816         PR lto/42528
22817         * c.opt (fsigned-char): Also let LTO handle this option.
22818         (funsigned-char): Likewise.
22819
22820 2010-01-07  Richard Guenther  <rguenther@suse.de>
22821
22822         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
22823         (gimple_op): Likewise.
22824         (gimple_op_ptr): Likewise.
22825         (gimple_assign_set_lhs): Remove gcc_assert.
22826         (gimple_assign_set_rhs1): Likewise.
22827         (gimple_assign_set_rhs2): Likewise.
22828         (gimple_call_set_lhs): Likewise.
22829         (gimple_call_set_fn): Likewise.
22830         (gimple_call_set_fndecl): Likewise.
22831         (gimple_call_fndecl): Likewise.
22832         (gimple_call_return_type): Likewise.
22833         (gimple_call_set_chain): Likewise.
22834         (gimple_call_num_args): Likewise.
22835         (gimple_call_set_arg): Likewise.
22836         (gimple_cond_set_code): Likewise.
22837         (gimple_cond_set_lhs): Likewise.
22838         (gimple_cond_set_rhs): Likewise.
22839         (gimple_cond_set_true_label): Likewise.
22840         (gimple_cond_set_false_label): Likewise.
22841         (gimple_label_set_label): Likewise.
22842         (gimple_goto_set_dest): Likewise.
22843         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
22844         (gimple_debug_bind_get_value): Likewise.
22845         (gimple_debug_bind_get_value_ptr): Likewise.
22846         (gimple_debug_bind_set_var): Likewise.
22847         (gimple_debug_bind_set_value): Likewise.
22848         (gimple_debug_bind_reset_value): Likewise.
22849         (gimple_debug_bind_has_value_p): Likewise.
22850         (gimple_return_retval_ptr): Remove gcc_assert.
22851         (gimple_return_retval): Likewise.
22852         (gimple_return_set_retval): Likewise.
22853         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
22854         (safe_referenced_var_iterator): Remove.
22855         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
22856         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
22857         (fill_referenced_var_vec): Remove.
22858         (first_readonly_imm_use): Remove redundant gcc_assert.
22859         (phi_arg_index_from_use): Combine gcc_asserts.
22860         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
22861         (first_imm_use_stmt): Remove redundant gcc_assert.
22862         * tree-cfg.c (verify_gimple_call): Verify function and chain
22863         operands.  Verify arguments.
22864         (verify_types_in_gimple_stmt): Verify condition code and labels.
22865
22866 2010-01-07  Richard Guenther  <rguenther@suse.de>
22867
22868         PR tree-optimization/42641
22869         * sese.c (rename_map_elt_info): Use the SSA name version, do
22870         not hash pointers.
22871
22872 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
22873
22874         PR tree-optimization/42625
22875         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
22876         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
22877
22878 2010-01-07  Duncan Sands  <baldrick@free.fr>
22879
22880         * Makefile.in (PLUGIN_HEADERS): Add version.h.
22881
22882 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
22883
22884         PR target/42511
22885         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
22886         note itself is not function_invariant_p.
22887
22888 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
22889
22890         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
22891         Do not add the DF_NOTE problem.
22892         * store-motion.c (execute_rtl_store_motion): Likewise.
22893
22894 2010-01-07  Martin Jambor  <mjambor@suse.cz>
22895
22896         PR tree-optimization/42157
22897         * tree-sra.c (compare_access_positions): Stabilize sort if both
22898         accesses have integer types, return zero immediately if they are the
22899         same.
22900
22901 2010-01-06  Richard Henderson  <rth@redhat.com>
22902
22903         PR middle-end/41883
22904         * haifa-sched.c (add_to_note_list): Merge into ...
22905         (concat_note_lists): ... here, and ...
22906         (unlink_other_notes, rm_other_notes): Merge into...
22907         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
22908         NOTE_INSN_EPILOGUE_BEG.
22909
22910 2010-01-06  Richard Guenther  <rguenther@suse.de>
22911
22912         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
22913         not inline regular functions into always-inline functions.
22914
22915 2010-01-06  Nick Clifton  <nickc@redhat.com>
22916
22917         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
22918         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
22919         used together.
22920         (OVERRIDE_OPTIONS): Delete.
22921         (OPTIMIZATION_OPTIONS): Define.
22922         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
22923         * config/rx/rx.c (rx_handle_option): Issue an error message if
22924         -mcpu=rx200 and -fpu are used together.
22925         (rx_set_optimization_options): New function.  Issue an error
22926         message if an optimization attribute attempts to reset the FPU/
22927         math optimization pairing.
22928         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
22929         * config/rx/rx.opt: Set the default to 32-bit doubles.
22930         * config/rx/t-rx: Add multilibs for -nofpu option.
22931         * doc/invoke.texi: Update documentation of RX options.
22932
22933 2010-01-06  Richard Guenther  <rguenther@suse.de>
22934
22935         * tree-ssa-pre.c (name_to_id): New global.
22936         (alloc_expression_id): Simplify SSA name handling.
22937         (lookup_expression_id): Likewise.
22938         (init_pre): Zero name_to_id.
22939         (fini_pre): Free it.
22940
22941 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
22942
22943         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
22944
22945 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
22946
22947         PR target/42542
22948         * config/i386/sse.md (smaxv2di3): New.
22949         (umaxv2di3): Likewise.
22950         (sminv2di3): Likewise.
22951         (uminv2di3): Likewise.
22952
22953 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
22954
22955         PR target/42564
22956         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
22957         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
22958         (legitimize_tls_address): Likewise.
22959         (sparc_tls_referenced_p): Likewise.
22960         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
22961         and adjust calls to legitimize_pic_address.
22962         (legitimate_constant_p) Use sparc_tls_referenced_p.
22963         (legitimate_pic_operand_p): Likewise.
22964         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
22965         (sparc_tls_symbol_ref_1): Delete.
22966         (sparc_tls_referenced_p): Make static, recognize specific patterns.
22967         (legitimize_tls_address): Make static, handle CONST patterns.
22968         (legitimize_pic_address): Make static, remove unused parameter and
22969         adjust recursive calls.
22970         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
22971         and adjust call to legitimize_pic_address.
22972         (sparc_output_mi_thunk): Likewise.
22973
22974 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
22975             H.J. Lu  <hongjiu.lu@intel.com>
22976
22977         PR target/42542
22978         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
22979         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
22980         operands to make them signed.
22981
22982         Revert:
22983         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
22984
22985         PR target/42542
22986         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
22987         GTU to GT for V4SI and V2DI.
22988
22989         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
22990         (umin<mode>3): Removed.
22991         (uminv8hi3): New.
22992         (uminv4si3): Likewise.
22993
22994 2010-01-05  Martin Jambor  <mjambor@suse.cz>
22995
22996         PR tree-optimization/42462
22997         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
22998         current_function_decl to helper functions and macros.
22999
23000 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23001
23002         PR bootstrap/41771
23003         * flags.h: Don't include real.h.
23004         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
23005         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
23006         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
23007         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
23008         * dominance.c: Update copyright.
23009         * gimple.c (walk_gimple_op): Remove inline.
23010         * tree-ssa-reassoc.c: Include real.h.
23011         * Makefile.in (FLAGS_H): Remove $(REAL_H).
23012         (tree-ssa-reassoc.o): Depend on $(REAL_H).
23013
23014 2010-01-05  Nick Clifton  <nickc@redhat.com>
23015
23016         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
23017         register to push into the stack frame when the accumulator has to
23018         be saved during interrupts.
23019
23020 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
23021
23022         * doc/invoke.texi: Remove the documentation about option
23023         -Wunreachable-code.
23024         * common.opt (Wunreachable-code):  Preserved for backward
23025         compatibility.
23026         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
23027         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
23028         the backward compatibility flag section.
23029
23030 2010-01-05  Richard Guenther  <rguenther@suse.de>
23031
23032         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
23033
23034 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
23035
23036         PR other/42611
23037         * cfgexpand.c (expand_one_var): Diagnose too large variables.
23038
23039         PR tree-optimization/42508
23040         * tree-sra.c (convert_callers): Check for recursive call
23041         by comparing cgraph nodes instead of decls.
23042         (modify_function): Call ipa_modify_formal_parameters also
23043         on all same_body aliases.
23044
23045         * cgraphunit.c (cgraph_materialize_all_clones): Compare
23046         cgraph nodes when checking for same_body aliases.
23047
23048 2010-01-05  Richard Guenther  <rguenther@suse.de>
23049
23050         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
23051         allocation and lookup.
23052         (get_or_alloc_expr_for_constant): Likewise.
23053         (phi_translate): Sink allocation.
23054
23055 2010-01-04  Richard Guenther  <rguenther@suse.de>
23056
23057         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
23058         a new entry only if needed.
23059         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
23060         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
23061         hashtable lookup.
23062         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
23063         the result array.
23064         (phi_translate): Handle CONSTANTs early.
23065
23066 2010-01-04  Martin Jambor  <mjambor@suse.cz>
23067
23068         PR tree-optimization/42398
23069         * tree-sra.c (struct access): Removed flag grp_different_types.
23070         (dump_access): Do not dump the removed flag.
23071         (sort_and_splice_var_accesses): Do not set the removed flag.
23072         (sra_modify_expr): Check for type compatibility directly.
23073
23074 2010-01-04  Martin Jambor  <mjambor@suse.cz>
23075
23076         PR tree-optimization/42366
23077         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
23078         edges with variable number of parameters.
23079         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
23080         flag instead of asserting it.
23081         (ipa_read_node_info): Read uses_analysis_done flag.
23082
23083 2010-01-04  Richard Guenther  <rguenther@suse.de>
23084
23085         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
23086         iterative_hash_* as intended.
23087         (vn_reference_compute_hash): Likewise.  Simplify hashing
23088         SSA names.
23089         (vn_reference_lookup_2): Likewise.
23090         (vn_nary_op_compute_hash): Likewise.
23091         (vn_phi_compute_hash): Likewise.
23092         (expressions_equal_p): Remove strange code.
23093         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
23094         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
23095         (bitmap_insert_into_set_1): Take value-id as parameter.
23096         (add_to_value): Pass it.
23097         (bitmap_insert_into_set): Likewise.
23098         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
23099
23100 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
23101
23102         PR driver/42442
23103         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
23104         (do_self_spec): For switches with SWITCH_IGNORE set set also
23105         SWITCH_IGNORE_PERMANENTLY.
23106         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
23107         of SWITCH_IGNORE.
23108
23109 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
23110
23111         * lto-streamer-out.c (output_unreferenced_globals): Output the full
23112         tree of an unreferenced global var.
23113
23114 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
23115
23116         PR target/42542
23117         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
23118         GTU to GT for V4SI and V2DI.
23119
23120         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
23121         (umin<mode>3): Removed.
23122         (uminv8hi3): New.
23123         (uminv4si3): Likewise.
23124
23125 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
23126
23127         PR lto/42581
23128         * collect2.c (main): Turn on trace in collect2 if -v is passed
23129         to gcc with LTO.
23130
23131 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
23132
23133         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
23134         description of expression operand.
23135
23136 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
23137
23138         * configure.ac: Add install-html to target_list for Make-hooks.
23139         * configure: Regenerate.
23140         * fortran/Make-lang.in (F95_HTMLFILES): New.
23141         (fortran.html): Use it.
23142         (fortran.install-html): New.
23143         * Makefile.in (install-html): Add lang.install-html.
23144         * java/Make-lang.in (JAVA_HTMLFILES): New.
23145         (java.html): Use it.
23146         (java.install-html): New.
23147         * objc/Make-lang.in (objc.install-html): New.
23148         * objcp/Make-lang.in (obj-c++.install-html): New.
23149         * cp/Make-lang.in (c++.install-html): New.
23150         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
23151         * lto/Make-lang.in (lto.install-html): New.
23152
23153 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
23154
23155         PR lto/42520
23156         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
23157
23158 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
23159
23160         PR rtl-optimization/41862
23161         * store-motion.c (store_killed_in_insn, compute_store_table,
23162         remove_reachable_equiv_notes, replace_store_insn,
23163         build_store_vectors): Ignore all DEBUG_INSNs.
23164
23165 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
23166
23167         PR lto/41564
23168         * common.opt: Add dumpdir.
23169
23170         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
23171         isn't specified.
23172         (option_map): Add --dumpdir.
23173
23174         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
23175
23176         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
23177
23178         * opts.c (decode_options): Try dump_dir_name first if
23179         dump_base_name isn't an absolute path.
23180         (common_handle_option): Handle OPT_dumpdir.
23181
23182         * toplev.c (dump_dir_name): New.
23183         (print_switch_values): Also ignore -dumpdir.
23184
23185         * toplev.h (dump_dir_name): New.
23186
23187 2010-01-03  Richard Guenther  <rguenther@suse.de>
23188
23189         PR tree-optimization/42589
23190         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
23191         double-word expansion of bswap32.
23192
23193 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
23194
23195         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
23196         with BLOCK_FOR_INSN.
23197         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
23198         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
23199         noce_process_if_block): Likewise.
23200         * gcse.c (compute_local_properties, insert_expr_in_table,
23201         insert_set_in_table, canon_list_insert, find_avail_set,
23202         pre_insert_copy_insn): Likewise.
23203
23204         * basic-block.h (BLOCK_NUM): Move from here...
23205         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
23206
23207 2010-01-03  Richard Guenther  <rguenther@suse.de>
23208
23209         PR tree-optimization/42438
23210         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
23211         contains_may_not_return_call flag.
23212         (BB_MAY_NOTRETURN): New.
23213         (valid_in_sets): Trapping nary operations are not valid
23214         in blocks that may not return.
23215         (insert_into_preds_of_block): Remove check for trapping expressions.
23216         (compute_avail): Compute also BB_MAY_NOTRETURN.
23217
23218 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
23219
23220         * doc/invoke.texi: Add 2010 to copyright years.
23221
23222 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
23223
23224         * config/sparc/sparc.c: Fix formatting nits.
23225
23226 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
23227             Alexander Monakov  <amonakov@ispras.ru>
23228
23229         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
23230
23231 2010-01-02  Richard Guenther  <rguenther@suse.de>
23232
23233         PR middle-end/42577
23234         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
23235         (simplify_switch_using_ranges): Mark to be removed edges
23236         as non-executable.
23237
23238 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23239
23240         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
23241
23242         * collect2.c (scan_libraries): Add missing argument in call to
23243         scan_prog_file.
23244
23245 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
23246
23247         PR target/42448
23248         * config/alpha/predicates.md (aligned_memory_operand): Return false
23249         for CQImode.
23250         (unaligned_memory_operand): Return true for CQImode.
23251         * config/alpha/alpha.c (get_aligned_mem): Assert that location
23252         doesn not cross aligned SImode word boundary.
23253
23254 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
23255
23256         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
23257         Remove.
23258         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
23259         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
23260
23261 2010-01-02  Richard Guenther  <rguenther@suse.de>
23262
23263         PR lto/41597
23264         * toplev.c (compile_file): Emit LTO marker properly.  Change
23265         it to __gnu_lto_v1.
23266         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
23267
23268 2010-01-01  Richard Guenther  <rguenther@suse.de>
23269
23270         PR debug/42455
23271         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
23272
23273 2010-01-01  Richard Guenther  <rguenther@suse.de>
23274
23275         PR c/42570
23276         * c-decl.c (grokdeclarator): For zero-size arrays force
23277         structural equality checks as layout_type does.
23278
23279 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
23280
23281         * builtins.c: Update copyright to 2010.
23282
23283 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
23284
23285         PR lto/42531
23286         * lto-streamer-out.c (produce_asm): Revert the last change.
23287         (copy_function): Likewise.
23288
23289         * lto-streamer.c (lto_get_section_name): Skip any leading
23290         asterisk in name.
23291
23292 2010-01-01  Richard Guenther  <rguenther@suse.de>
23293
23294         PR middle-end/42559
23295         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
23296         for LABEL_DECLs.
23297
23298 \f
23299 Copyright (C) 2010 Free Software Foundation, Inc.
23300
23301 Copying and distribution of this file, with or without modification,
23302 are permitted in any medium without royalty provided the copyright
23303 notice and this notice are preserved.