OSDN Git Service

Revert "Fix PR c++/44188"
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
2
3         revert fix for PR c++/44188
4         * c-common.c (is_typedef_decl): Revert the moving of  this
5         definition ...
6         * tree.c (is_typedef_decl): ... here.
7         (typdef_variant_p): Revert the moving of this  definition
8         here from gcc/cp/tree.c.
9         * c-common.h (is_typedef_decl): Revert the moving of this
10         declaration ...
11         * tree.h (is_typedef_decl): ... here.
12         (typedef_variant_p): Revert the moving of this  declaration here
13         from gcc/cp/cp-tree.h
14         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
15         (gen_tagged_type_die): Revert the splitting out of ...
16         (gen_type_die_with_usage): ... this function. Revert the anonymous
17         tagged type handling.
18         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
19         typedefs naming anonymous tagged types.
20
21
22 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
23
24         * config/rs6000/rs6000-modes.def (PSImode): Delete.
25
26 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
27
28         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
29         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
30         throughout.
31         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
32         "xer" to "ca".
33         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
34         XER_REGS to CA_REGS throughout.
35         * config/rs6000/rs6000.h: Same.
36         (ADDITIONAL_REGISTER_NAMES): Add "xer".
37         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
38         that mode_iterator "P" is the size for arithmetic carries as well.
39         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
40
41 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
42
43         PR bootstrap/44255
44         * combine.c (struct rtx_subst_pair): Define unconditionally.
45         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
46         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
47         Call make_compound_operation on pair->to.
48         (propagate_for_debug): Don't call make_compound_operation here.
49         Always use simplify_replace_fn_rtx.
50
51 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
52
53         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
54         * config/xtensa/xtensa.c (override_options): Check
55           TARGET_FORCE_NO_PIC and set flag_pic.
56         * config/xtensa/xtensa.opt: Document -mforce-no-pic
57
58 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
59
60         PR bootstrap/44299
61         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
62         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
63
64 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
65
66         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
67         toplev.h.
68         * diagnostic.c: Don't include toplev.h.
69         (progname): Define.  Moved from toplev.c.
70         (seen_error): New function.
71         * diagnostic.h: Include diagnostic-core.h.
72         (diagnostic_t, emit_diagnostic): Don't declare here.
73         * toplev.c (progname): Move to toplev.c.
74         (emit_debug_global_declarations, compile_file, finalize,
75         do_compile, toplev_main): Use seen_error.
76         * toplev.h: Include diagnostic-core.h.
77         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
78         internal_error, warning, warning_at, error, error_n, error_at,
79         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
80         verbatim, fnotice, progname): Move to diagnostic-core.h.
81         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
82         (expand_builtin_expect): Use seen_error.
83         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
84         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
85         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
86         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
87         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
88         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
89         errorcount for errors.
90         * c-opts.c (c_common_finish): Use seen_error.
91         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
92         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
93         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
94         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
95         (get_coverage_counts): Use seen_error.
96         * dwarf2out.c (dwarf2out_finish): Use seen_error.
97         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
98         gimplify_body): Use seen_error.
99         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
100         * ipa-pure-const.c (gate_pure_const): Use seen_error.
101         * ipa-reference.c (gate_reference): Use seen_error.
102         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
103         * lambda-code.c: Include diagnostic-core.h instead of
104         diagnostic.h.
105         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
106         * lto-compress.c: Include diagnostic-core.h instead of
107         diagnostic.h.
108         * lto-section-in.c: Include diagnostic-core.h instead of
109         diagnostic.h.
110         * lto-streamer-out.c: Include diagnostic-core.h instead of
111         diagnostic.h.
112         * lto-streamer.c: Include diagnostic-core.h instead of
113         diagnostic.h.
114         (gate_lto_out): Use seen_error.
115         * matrix-reorg.c: Include diagnostic-core.h instead of
116         diagnostic.h.
117         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
118         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
119         (gate_expand_omp, lower_omp_1): Use seen_error.
120         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
121         (rest_of_decl_compilation, rest_of_type_compilation,
122         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
123         * tree-cfg.c (label_to_block_fn): Use seen_error.
124         * tree-inline.c (optimize_inline_calls): Use seen_error.
125         * tree-mudflap.c (mudflap_finish_file): Use
126         seen_error.
127         * tree-optimize.c (gate_all_optimizations,
128         gate_all_early_local_passes, gate_all_early_optimizations): Use
129         seen_error.
130         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
131         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
132         (varpool_remove_unreferenced_decls,
133         varpool_assemble_pending_decls): Use seen_error.
134         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
135         (TOPLEV_H, DIAGNOSTIC_H): Update.
136         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
137         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
138         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
139         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
140         coverage.o, lambda-code.o): Update dependencies.
141
142 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
143
144         PR c++/44188
145         * c-common.c (is_typedef_decl): Move this definition ...
146         * tree.c (is_typedef_decl): ... here.
147         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
148         * c-common.h (is_typedef_decl): Move this declaration ...
149         * tree.h (is_typedef_decl): ... here.
150         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
151         * dwarf2out.c (is_naming_typedef_decl): New function.
152         (gen_tagged_type_die): Split out of ...
153         (gen_type_die_with_usage): ... this function. When an anonymous
154         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
155         is emitted for the typedef.
156         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
157         anonymous tagged types.
158
159 2010-05-27  Jason Merrill  <jason@redhat.com>
160
161         * print-tree.c (debug_vec_tree): New fn.
162         (print_vec_tree): New fn.
163         * tree.h: Declare them.
164         * gdbinit.in (pvt): New command.
165
166         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
167
168         * gdbinit.in (pdd): New command.
169
170 2010-05-27  Jan Hubicka  <jh@suse.cz>
171
172         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
173         (update_caller_keys): Return early if there are no callers;
174         only update fibheap when decresing the key.
175         (update_callee_keys): Avoid recursion.
176         (decide_inlining_of_small_functions): When badness does not match;
177         re-insert into fibheap.
178
179 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
180
181         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
182         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
183         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
184         (ALL_HOST_OBJS): Now a union of the above two.
185         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
186         all files in ALL_HOST_FRONTEND_OBJS.
187         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
188
189         * c-common.c: Pretend to be a backend file by undefining
190         IN_GCC_FRONTEND (still need rtl.h here).
191
192 2010-05-27  Jan Hubicka  <jh@suse.cz>
193
194         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
195         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
196
197 2010-05-27  Jan Hubicka  <jh@suse.cz>
198
199         * sched-ebb.c: Rename struct deps to struct deps_desc.
200         * ddg.c: Likewise.
201         * sel-sched-ir.c: Likewise.
202         * sched-deps.c: Likewise.
203         * sched-int.h: Likewise.
204         * sched-rgn.c: Likewise.
205
206 2010-05-27  Jon Beniston <jon@beniston.com>
207
208         PR 43726
209         * config/lm32/lm32.h: Remove definition of 
210         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
211
212 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
213
214         PR lto/44230
215         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
216
217 2010-05-27  Richard Guenther  <rguenther@suse.de>
218
219         PR tree-optimization/44284
220         * tree-vect-stmts.c (vectorizable_assignment): Handle
221         sign-changing conversions as simple copy.
222
223 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
224
225         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
226         Bionic C library.
227         (__gthread_active_p): Check for pthread_create if compiling against
228         Bionic C library.
229
230 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
231
232         Support compilation for Android platform.  Reimplement -mandroid.
233
234         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
235         (*android*): Set ANDROID_DEFAULT.
236         (arm*-*-linux*): Include linux-android.h.
237         (arm*-*-eabi*): Don't include previous -mandroid implementation.
238         * config/arm/eabi.h: Remove, move Android-specific parts ...
239         * config/linux-android.h: ... here.  New file.
240         * config/arm/eabi.opt: Rename to ...
241         * config/linux-android.opt: ... this.
242         (mandroid): Allow -mno-android option.  Initialize based on
243         ANDROID_DEFAULT.
244         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
245         Move logic to corresponding LINUX_TARGET_* macros.
246         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
247         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
248         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
249         Android definitions.
250         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
251         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
252         Document.
253
254 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
255
256         Add support for Bionic C library
257
258         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
259         macro.
260         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
261         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
262
263         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
264         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
265         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
266         to support multiple C libraries.  Handle Bionic.
267         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
268         (BIONIC_DYNAMIC_LINKER64): Define.
269         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
270         Update.
271         (TARGET_HAS_SINCOS): Enable for Bionic.
272
273         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
274         the last option specified on command line take effect.
275         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
276         (mbionic): New.
277         (mglibc, muclibc): Update.
278
279         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
280         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
281         DEFAULT_LIBC.
282
283         * doc/invoke.texi (-mglibc, -muclibc): Update.
284         (-mbionic): Document.
285
286 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
287
288         * c-common.h (c_register_addr_space): Add prototype.
289         (ADDR_SPACE_KEYWORD): Remove.
290         * c-common.c (c_register_addr_space): New function.
291         (c_addr_space_name): Reimplement.
292         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
293
294         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
295         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
296
297         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
298         Remove TARGET_ADDR_SPACE_KEYWORDS.
299
300 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
301
302         * input.c: New file.
303         * input.h (main_input_filename): Move declaration to toplev.h.
304         * toplev.c (input_location, line_table): Move to input.c
305         * toplev.h (main_input_filename): Move declaration from input.h.
306         * tree.c (expand_location): Move to input.c.
307         * Makefile.in (OBJS-common): Add input.o.
308         (input.o): Add dependencies.
309
310 2010-05-27  Richard Guenther  <rguenther@suse.de>
311
312         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
313         for non-existant files.
314         (fork_execute): Mark args_name file as deleted.
315
316 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
317
318         PR bootstrp/44287
319         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
320         (narrow_signed_type): Likewise.
321
322 2010-05-26  Jan Hubicka  <jh@suse.cz>
323
324         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
325         edge only when checking is enabled; check using former_clone_of;
326         check inline clones too.
327         (cgraph_materialize_clone): Record former_clone_of pointer.
328         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
329         combining redirections; dump args_to_skip bitmap
330         (cgraph_materialize_all_clones): Do no redirection here.
331         * ipa-inline.c (inline_transform): Do redirection here.
332         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
333         cheking only).
334
335 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
336
337         * config/avr/avr-c.c: Do not include regs.h.
338         Include cpplib.h for cpp_define and tree.h for c-common.h.
339         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
340         * config/avr/t-avr: Fix dependencies for avr-c.o.
341
342 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
343
344         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
345         string instead of SYMBOL_REF rtx.
346         * rtl.h (set_stack_check_libfunc): Move prototype from here...
347         * libfuncs.h: ...to here.  Adjust for explow.c change.
348
349 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
350
351         * pretty-print.c: Don't include ggc.h.
352         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
353         (identifier_to_locale): Use them for allocation.
354         * pretty-print.h (identifier_to_locale_alloc,
355         identifier_to_locale_free): Declare.
356         * toplev.c (alloc_for_identifier_to_locale): New.
357         (general_init): Set identifier_to_locale_alloc and
358         identifier_to_locale_free.
359         * Makefile.in (pretty-print.o): Update dependencies.
360
361 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
362
363         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
364         pointer types if they have different alignment or mode.
365
366 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
367
368         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
369         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
370         * config/sparc/sparc-protos.h (function_value): Remove declaration.
371         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
372         sparc_function_value_regno_p): New functions.
373         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
374         TARGET_FUNCTION_VALUE_REGNO_P): Define.
375         (function_value): Rename to...
376         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
377         argument to 'outgoing'.
378         (function_arg_record_value, function_arg_union_value,
379         function_arg_vector_value): Update comment.
380
381 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
382
383         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
384         (fde_needed_for_eh_p): New predicate.
385         (output_call_frame_info): Use it throughout to decide whether FDEs
386         are needed for EH purpose.
387         (dwarf2out_begin_prologue): Reorder assignments.
388
389 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
390
391         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
392         special case loop->header.
393         (is_predicated): New.
394         (if_convertible_loop_p): Call it.
395
396 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
397
398         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
399         iterator in parameter.  Do not generate code during the analysis.
400         (tree_if_convert_cond_stmt): Removed.
401         (tree_if_convert_stmt): Removed.
402         (predicate_bbs): New.
403         (if_convertible_loop_p): Call predicate_bbs.
404         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
405         now contains all the analysis part.
406
407 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
408
409         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
410         statements in the analysis part.
411         (tree_if_convert_stmt): Update comment.
412         (remove_conditions_and_labels): New.
413         (combine_blocks): Call remove_conditions_and_labels.
414         (tree_if_conversion): Update comment.
415
416 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
417
418         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
419         than 2 predecessors or more than 2 successors.
420
421 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
422
423         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
424         of loops in which the data dependence analysis fails.
425
426 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
427
428         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
429         CDI_POST_DOMINATORS.
430         (tree_if_conversion): Same.
431
432 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
433
434         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
435
436 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
437
438         * tree-if-conv.c: Update copyright years.  Fix comments.
439         Fix indentation.
440
441 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
442
443         * builtin-types.def (BT_INT128): New primitive type.
444         (BT_UINT128): Likewise.
445         * c-common.c (c_common_r): Add __int128 keyword.
446         (c_common_type_for_size): Handle __int128.
447         (c_common_type_for_mode): Likewise.
448         (c_common_signed_or_unsigned_type): Likewise.
449         (c_common_nodes_and_builtins): Add builtin type
450         if target supports 128-bit integer scalar.
451         * c-common.h (enum rid): Add RID_INT128.
452         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
453         if target supports 128-bit integer scalar.
454         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
455         (finish_declspecs): Likewise.
456         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
457         (c_token_starts_declspecs): Likewise.
458         (c_parser_declspecs): Likewise.
459         (c_parser_attributes): Likewise.
460         (c_parser_objc_selector): Likewise.
461         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
462         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
463         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
464         * tree.c (make_or_reuse_type): Likewise.
465         (make_unsigned_type): Likewise.
466         (build_common_tree_nodes_2): Likewise.
467         * tree.h (enum integer_type_kind): Add itk_int128 and
468         itk_unsigned_int128.
469         (int128_integer_type_node): New define.
470         (int128_unsigned_type_node): New define.
471         * doc/extend.texi: Add documentation about __int128 type.
472
473 2010-05-26  Richard Guenther  <rguenther@suse.de>
474
475         * tree-ssa-sccvn.c (copy_nary): Adjust.
476         (copy_phis): Rename to ...
477         (copy_phi): ... this.  Adjust.
478         (copy_references): Rename to ...
479         (copy_reference): ... this.  Adjust.
480         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
481         result into the valid table.
482
483 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
484
485         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
486         insn-config.h, insn-codes.h, recog.h, and optabs.h.
487
488 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
489
490         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
491
492 2010-05-26  Richard Guenther  <rguenther@suse.de>
493
494         * opts.c (common_handle_option): Handle OPT_Ofast.
495
496 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
497
498         * diagnostic.c: Don't include opts.h.
499         (permissive_error_option): Define.
500         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
501         for classify_diagnostic.  Don't use memset for
502         classify_diagnostic.  Initialize new and recently added fields.
503         (diagnostic_classify_diagnostic): Use context->n_opts instead of
504         N_OPTS.
505         (diagnostic_report_diagnostic): Pass context parameter to
506         diagnostic_report_warnings_p.  Use option_enabled and option_name
507         hooks from context.
508         (emit_diagnostic): Use permissive_error_option.
509         (permerror): Likewise.
510         * diagnostic.h: Don't include options.h.
511         (struct diagnostic_context): Add n_opts, opt_permissive,
512         inhibit_warnings, warn_system_headers, option_enabled and
513         option_name fields.  Change classify_diagnostic to a pointer.
514         * opts-diagnostic.h: New file.
515         * opts.c: Include opts-diagnostic.h.
516         (common_handle_option): Set global_dc fields for -Wfatal-errors,
517         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
518         (option_name): New function.
519         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
520         (c_common_handle_option): Set global_dc->permissive for
521         -fpermissive.
522         * c-common.c (c_cpp_error): Save and restore
523         global_dc->warn_system_headers, not variable warn_system_headers.
524         * toplev.c: Include opts-diagnostic.h.
525         (general_init): Update call to diagnostic_initialize.  Set
526         global_dc->show_column, global_dc->option_enabled and
527         global_dc->option_name.
528         (process_options): Don't set global_dc fields here.
529         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
530         (diagnostic.o, opts.o, toplev.o): Update dependencies.
531
532 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
533
534         * config/picochip/picochip.md (movsi): Split a movsi from a
535         const after reload.
536
537 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
538
539         * ggc-zone.c: Update copyright year.
540         (poison_region): Mark memory for Valgrind as undefined before
541         memset () call and inaccessible afterwards.
542         (ggc_pch_total_size): Change type of i to int.
543
544 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
545
546         * ggc-common.c (ggc_free_overhead): Allow empty slot.
547
548 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
549
550         * ggc-common.c: Update copyright year.
551         (ggc_rlimit_bound): Remove prototype.  Compile only if
552         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
553         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
554         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
555         (ggc_min_heapsize_heuristic): Likewise.
556
557 2010-05-26  Richard Guenther  <rguenther@suse.de>
558
559         PR rtl-optimization/44164
560         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
561         no-common access-path disambiguation.
562         (indirect_ref_may_alias_decl_p): Adjust.
563         (indirect_refs_may_alias_p): Likewise.
564         (refs_may_alias_p_1): Likewise.
565
566 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
567
568         * c-typeck.c: Do not include expr.h.
569
570 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
571
572         * rtl.h (decl_default_tls_model): Move prototype from here...
573         * output.h: ...to here.
574         * c-decl.c: Do not include rtl.h.
575         * c-pragma.c: Likewise.
576         * c-parser.c: Likewise.
577         * c-gimplify.c: Likewise.  And also not hard-reg-set.
578         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
579         FIXME note for it.  Add a FIXME note for expr.h.
580         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
581         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
582         defined.
583
584 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
585
586         PR target/44199
587         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
588         or total_size is larger than red zone size for non-V4 ABI, emit a
589         stack_tie resp. frame_tie insn before stack pointer restore.
590         * config/rs6000/rs6000.md (frame_tie): New insn.
591
592 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
593
594         * function.h (struct function): Add can_throw_non_call_exceptions bit.
595         * lto-streamer-in.c (input_function): Stream it in.
596         * lto-streamer-out.c (output_function): Stream it out.
597         * function.c (allocate_struct_function): Set it.
598         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
599         for flag_non_call_exceptions.
600         * cfgbuild.c (control_flow_insn_p): Likewise.
601         (make_edges): Likewise.
602         * cfgexpand.c (expand_stack_alignment): Likewise.
603         * combine.c (distribute_notes): Likewise.
604         * cse.c (cse_extended_basic_block): Likewise.
605         * except.c (insn_could_throw_p): Likewise.
606         * gcse.c (simple_mem): Likewise.
607         * ipa-pure-const.c (check_call): Likewise.
608         (check_stmt ): Likewise.
609         * lower-subreg.c (lower-subreg.c): Likewise.
610         * optabs.c (emit_libcall_block): Likewise.
611         (prepare_cmp_insn): Likewise.
612         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
613         * postreload.c (rest_of_handle_postreload): Likewise.
614         * reload1.c (reload_as_needed): Likewise.
615         (emit_input_reload_insns): Likewise.
616         (emit_output_reload_insns): Likewise.
617         (fixup_abnormal_edges): Likewise.
618         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
619         * store-motion.c (find_moveable_store): Likewise.
620         * tree-eh.c (stmt_could_throw_p): Likewise.
621         (tree_could_throw_p): Likewise.
622         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
623         * config/arm/arm.c (arm_expand_prologue): Likewise.
624         (thumb1_expand_prologue): Likewise.
625         * config/rx/rx.md (cbranchsf4): Likewise.
626         (cmpsf): Likewise.
627         * config/s390/s390.c (s390_emit_prologue): Likewise.
628         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
629         (inline_forbidden_into_p): New predicate.
630         (expand_call_inline): Use it to forbid inlining.
631         (tree_can_inline_p): Likewise.
632
633 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
634
635         * config/i386/i386-c.c: Do not include rtl.h.
636         * config/i386/t-i386: Update dependencies.
637
638 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
639
640         * attribs.c: Do not include rtl.h.
641         * Makefile.in: Update dependencies.
642
643 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
644
645         * double-int.h (double_int_and): New.
646         * combine.c (try_combine): Clean up, use double_int_* and
647         immed_double_int_const functions.
648
649 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
650
651         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
652         stderr to /dev/null instead of grep -q.
653         * configure: Regenerate.
654
655 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
656
657         * Makefile.in (EXCEPT_H): Fix typo.
658
659 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
660
661         * ira-build.c (update_conflict_hard_reg_costs): New.
662         (ira_build): Call update_conflict_hard_reg_costs.
663
664 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
665
666         PR debug/41371
667         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
668         ENABLE_CHECKING.
669         (intersect_loc_chains): Walk the s2var's loc_chain together
670         with s1node chain as long as the locations are equal, don't
671         call find_loc_in_1pdv in that case.
672
673         PR debug/42801
674         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
675         (copy_bind_expr): ... instead of here.
676         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
677         if the block hasn't been remapped.
678         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
679         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
680
681 2010-05-25  Richard Guenther  <rguenther@suse.de>
682
683         PR middle-end/44069
684         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
685         out-of-bounds array accesses.
686
687 2010-05-25  Richard Guenther  <rguenther@suse.de>
688
689         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
690         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
691         (run_gcc): Re-organize to make cleanup easier.
692
693 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
694
695         * config/s390/s390.c (optimization_options): Fix and move the
696         flag_prefetch_loop_arrays override ...
697         (override_options): ... here.
698
699 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
700
701         * diagnostic.c: Don't include plugin.h.
702         (diagnostic_report_diagnostic): Don't handle plugins specially
703         here.  Pass context to internal_error callback.
704         * diagnostic.h (struct diagnostic_context): Add context parameter
705         to internal_error callback.
706         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
707         * plugin.h (struct diagnostic_context): Declare.
708         (warn_if_plugins, plugins_internal_error_function): Declare.
709         * toplev.c (general_init): Set global_dc->internal_error.
710         * Makefile.in (diagnostic.o): Update dependencies.
711
712 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
713
714         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
715         * config/rs6000/t-darwin64: New.
716         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
717         build crt2.
718
719 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
720
721         PR 44203
722         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
723         match the original (and intended) behaviour before r159557.  This
724         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
725         in two ways.
726
727 2010-05-25  Richard Guenther  <rguenther@suse.de>
728
729         * doc/invoke.texi: Document -Ofast.
730         * target.h (struct gcc_target): Add handle_ofast.
731         * target-def.h (TARGET_HANDLE_OFAST): Add.
732         (TARGET_INITIALIZER): Adjust.
733         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
734         * common.opt (Ofast): Add.
735
736 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
737
738         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
739         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
740
741 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
742
743         PR target/43610
744         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
745         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
746         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
747         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
748
749 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
750
751         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
752         DW_OP_minus with negated offset instead of DW_OP_plus.
753         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
754
755 2010-05-25  Wei Guozhi  <carrot@google.com>
756
757         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
758         tst instruction and a new alternative.
759         * config/arm/constraints.md (Pu): New constraint.
760
761 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
762
763         * function.c (assign_stack_local_1): Initialize variable
764         to avoid warning when bootstrapping at -O3.
765
766 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
767
768         * configure.ac (all_lang_makefiles): Remove everything related to it.
769         * configure: Regenerate.
770         * Makefile.in: Fix reference to ada Make-lang.in.
771         Remove support for LANG_MAKEFILES.
772
773 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
774             Sandra Loosemore  <sandra@codesourcery.com>
775
776         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
777         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
778         description.  Add arm_neon_fp16_ok.
779         (Add Options): Add arm_neon and arm_neon_fp16.
780
781 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
782
783         * diagnostic.c: Don't include flags.h.
784         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
785         context parameters.  Check flags in the context passed as a parameter.
786         (diagnostic_build_prefix): Add context parameter.  Check
787         show_column flag in context.
788         (diagnostic_action_after_output): Check fatal_errors flag in context.
789         (diagnostic_report_current_module): Check show_column flag in context.
790         (default_diagnostic_starter): Update call to
791         diagnostic_build_prefix.
792         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
793         (emit_diagnostic): Pass context to permissive_error_kind.
794         (permerror): Pass context to permissive_error_kind.
795         * diagnostic.h (struct diagnostic_context): Add show_column,
796         pedantic_errors, permissive and fatal_errors fields.
797         (diagnostic_build_prefix): Update prototype.
798         * langhooks.c
799         * toplev.c (process_options): Set flags in global_dc from
800         flag_show_column, flag_pedantic_errors, flag_permissive,
801         flag_fatal_errors.
802         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
803         to diagnostic_build_prefix.
804         * Makefile.in (diagnostic.o): Update dependencies.
805
806 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
807
808         * config/i386/ia32intrin.h (__crc32q): Define only if
809         __SSE4_2__ is defined.
810
811 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
812
813         PR target/44132
814         PR middle-end/43602
815         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
816         DECL_VISIBILITY_SPECIFIED.
817         (emutls_decl): Set DECL_PRESERVE_P and copy
818         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
819         (emutls_finalize_control_var): New callback.
820         (emutls_finish): Finalize emutls control variables.
821         * toplev.c (compile_file): Move the call to emutls_finish ()
822         before varpool_assemble_pending_decls ().
823
824 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
825
826         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
827         added to the preprocessor condition.
828
829 2010-05-24  Paul Brook  <paul@codesourcery.com>
830
831         * gengtype-lex.l: Add HARD_REG_SET.
832         * expr.c (expand_expr_real_1): Record writes to hard registers.
833         * function.c (rtl_data): Add asm_clobbers.
834         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
835         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
836         Use crtl->asm_clobbers.
837
838 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
839
840         * doc/makefile.texi (Makefile): Mention stages 'profile'
841         and 'feedback' for profiledbootstrap.
842
843 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
844
845         PR target/44245
846         * config/i386/i386.c (def_builtin): Properly check
847         OPTION_MASK_ISA_64BIT.
848
849 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
850
851         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
852         typedefs with different but compatible types.  Allow duplicate
853         typedefs with the same type except for pedantic non-C1X, but give
854         warning for variably modified types.
855         * c-typeck.c (tagged_types_tu_compatible_p,
856         function_types_compatible_p, type_lists_compatible_p,
857         comptypes_internal): Add parameter different_types_p; set
858         *different_types_p for different but compatible types.  All
859         callers changed.
860         (comptypes_check_different_types): New.
861         * c-tree.h (comptypes_check_different_types): Declare.
862
863 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
864
865         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
866         * jump.c: Include basic-block.h.
867         * profile.c: Likewise.
868         * tree-profile.c: Likewise.
869         * coverage.c: Likewise.
870         * basic-block.h (optimize_function_for_size_p): Move to function.h.
871         (optimize_function_for_speed_p): Likewise.
872         * function.h (optimize_function_for_size_p,
873         optimize_function_for_speed_p): Moved here from basic-block.h.
874         * Makefile.in: Update dependencies.
875
876 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
877
878         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
879         before calling make; allow override through $MAKE.
880         * doc/invoke.texi (Optimize Options): Document override.
881
882 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
883
884         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
885         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
886         (rs6000_mode_dependent_address_ptr): Make static.
887         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
888         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
889         Remove.
890
891 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
892
893         PR target/43869
894         * config/i386/i386.c: Make sure that the correct regparm is passed.
895
896 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
897
898         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
899         * sbitmap.c: ...to here to internalize sbitmap element access.
900         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
901         Explain why basic-block.h is included.
902         * function.h: Include tm.h for CUMULATIVE_ARGS.
903         * Makefile.in: Update dependencies.
904
905 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
906
907         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
908         New core types.
909         * sbitmap.h (struct sbitmap_def): Do not typedef here.
910         * sbitmap.c: Include sbitmap.h.
911         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
912         hard-reg-set.h.  Split everything related to regsets out from here...
913         * regset.h: ...to here.  New file.
914         * df.h: Include regset.h and sbitmap.h.
915         * tree-flow.h: Likewise.
916         * cfgloop.h: Likewise.
917         * except.h: Do not include sbitmap.h.  Include hashtab.h.
918         * cgraph.h: Include vec.h and function.h.
919         * reload.h (struct insn_chain): Change types of live_throughout
920         and dead_or_set from regset_head to bitmap_head.
921         (compute_use_by_pseudos): Be defined also if regset.h is not included.
922         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
923         spilled_regs from regset_head to bitmap_head to avoid dependency
924         in regset.h.
925         * sel-sched-ir.h: Include regset.h.
926         * reload.c: Include df.h before reload.h.
927         * caller-save.c: Likewise.
928         * reload1.c: Likewise.
929         * ira.c: Likewise.
930         (mark_elimination): Update type of r to bitmap, consistent with
931         DF_LR_IN.
932         * dominance.c: Include bitmap.h.
933         * modulo-sched.c: Include df.h.
934         * cfganal.c: Include bitmap.h and sbitmap.h.
935         * cfgbuild.c: Include sbitmap.h.
936         * lcm.c: Include sbitmap.h.
937         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
938         * domwalk.c: Include sbitmap.h, exclude ggc.h.
939         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
940         * cselib.c: Include bitmap.h.
941         * tree-optimize.c: Include regset.h.
942         * stmt.c: Include bitmap.h.
943         * Makefile.in: Update dependencies.
944
945 2010-05-22  Jan Hubicka  <jh@suse.cz>
946
947         * cgraph.h (struct varpool_node): Add same_comdat_group.
948         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
949         pointer.
950         (output_varpool): Update call of lto_output_varpool_node.
951         (input_varpool): Read same_comdat_group pointer.
952         (input_varpool_1): Fixup same_comdat_group pointer.
953         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
954         group is needed, all are.
955         * varpool.c (varpool_remove_node): Remove node from same comdat group
956         linklist too.
957         (varpool_analyze_pending_decls): Walk same comdat groups.
958
959 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
960
961         * rtl.h (union rtunion_def): Remove rt_bit member.
962         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
963         * print-rtl (print_rtx): Do not print the member.
964         * gengtype.c (adjust_field_rtx_def): Do not handle it.
965         * gengenrtl.c (type_from_format): Likewise.
966         (accessor_from_format): Likewise.
967
968 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
969
970         * dbgcnt.c: Include toplev.h instead of errors.h.
971         * ira-emit.c: Don't include errors.h.
972         * ira.c: Include toplev.h instead of errors.h.
973         * lto-compress.c: Include toplev.h instead of errors.h.
974         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
975         ira.o, dbgcnt.o): Update dependencies.
976
977 2010-05-22  Richard Guenther  <rguenther@suse.de>
978
979         * gimple.c (gimple_types_compatible_p): Check type qualifications
980         before merging pointer to complete and pointer to incomplete type.
981         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
982         we use our own resolution algorithm.  The gold linker plugin
983         doesn't do the job we want it to do here.
984
985 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
986
987         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
988         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
989         (sparc_mode_dependent_address_p): New function.
990
991 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
992
993         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
994
995         * timevar.c: Do not include any core headers.
996         (timevar_print): De-i18n-ize.
997         (print_time): Likewise.
998         * timevar.h (timevar_push, timevar_pop): Make inline functions.
999
1000 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
1001
1002         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
1003         langhooks-def.h.
1004         (diagnostic_initialize): Initialize x_data not last_function.
1005         (diagnostic_report_current_function): Move to tree-diagnostic.c.
1006         (default_diagnostic_starter): Call
1007         diagnostic_report_current_module not
1008         diagnostic_report_current_function.
1009         (diagnostic_report_diagnostic): Initialize x_data not
1010         abstract_origin.
1011         (verbatim): Likewise.
1012         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
1013         x_data.
1014         (struct diagnostic_context): Change last_function to x_data.
1015         (diagnostic_auxiliary_data): Replace with
1016         diagnostic_context_auxiliary_data and
1017         diagnostic_info_auxiliary_data.
1018         (diagnostic_last_function_changed, diagnostic_set_last_function,
1019         diagnostic_report_current_function): Move to tree-diagnostic.h.
1020         (print_declaration, dump_generic_node, print_generic_stmt,
1021         print_generic_stmt_indented, print_generic_expr,
1022         print_generic_decl, debug_c_tree, dump_omp_clauses,
1023         print_call_name, debug_generic_expr, debug_generic_stmt,
1024         debug_tree_chain, default_tree_printer): Move to
1025         tree-pretty-print.h.
1026         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
1027         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
1028         gimple-pretty-print.h.
1029         * pretty-print.c: Don't include tree.h
1030         (pp_base_format): Don't handle %K here.
1031         (pp_base_tree_identifier): Move to tree-pretty-print.c.
1032         * pretty-print.h (text_info): Change abstract_origin to x_data.
1033         (pp_tree_identifier, pp_unsupported_tree,
1034         pp_base_tree_identifier): Move to tree-pretty-print.h.
1035         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
1036         tree-pretty-print.h: New files.
1037         * tree-pretty-print.c: Include tree-pretty-print.h.
1038         (percent_K_format): New.  Moved from pretty-print.c.
1039         (pp_base_tree_identifier): Move from pretty-print.c.
1040         * c-objc-common.c: Include tree-pretty-print.h.
1041         (c_tree_printer): Handle %K here.
1042         * langhooks.c: Include tree-diagnostic.h.
1043         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
1044         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
1045         (default_tree_printer): Handle %K using percent_K_format.
1046         (general_init): Use default_tree_diagnostic_starter.
1047         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
1048         (free_lang_data): Use default_tree_diagnostic_starter.
1049         * c-pretty-print.c: Include tree-pretty-print.h.
1050         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1051         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1052         * dwarf2out.c: Include tree-pretty-print.h.
1053         * except.c: Include tree-pretty-print.h.
1054         * gimple-pretty-print.c: Include tree-pretty-print.h and
1055         gimple-pretty-print.h.
1056         * gimplify.c: Include tree-pretty-print.h.
1057         * graphite-poly.c: Include tree-pretty-print.h and
1058         gimple-pretty-print.h.
1059         * ipa-cp.c: Include tree-pretty-print.h.
1060         * ipa-inline.c: Include gimple-pretty-print.h.
1061         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1062         * ipa-pure-const.c: Include gimple-pretty-print.h.
1063         * ipa-struct-reorg.c: Include tree-pretty-print.h and
1064         gimple-pretty-print.h.
1065         * ipa-type-escape.c: Include tree-pretty-print.h.
1066         * print-rtl.c: Include tree-pretty-print.h.
1067         * print-tree.c: Include gimple-pretty-print.h.
1068         * sese.c: Include tree-pretty-print.h.
1069         * tree-affine.c: Include tree-pretty-print.h.
1070         * tree-browser.c: Include tree-pretty-print.h.
1071         * tree-call-cdce.c: Include gimple-pretty-print.h.
1072         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1073         * tree-chrec.c: Include tree-pretty-print.h.
1074         * tree-data-ref.c: Include tree-pretty-print.h and
1075         gimple-pretty-print.h.
1076         * tree-dfa.c: Include tree-pretty-print.h.
1077         * tree-if-conv.c: Include tree-pretty-print.h and
1078         gimple-pretty-print.h.
1079         * tree-inline.c: Include tree-pretty-print.h.
1080         * tree-into-ssa.c: Include tree-pretty-print.h and
1081         gimple-pretty-print.h.
1082         * tree-nrv.c: Include tree-pretty-print.h.
1083         * tree-object-size.c: Include tree-pretty-print.h and
1084         gimple-pretty-print.h.
1085         * tree-outof-ssa.c: Include tree-pretty-print.h and
1086         gimple-pretty-print.h.
1087         * tree-parloops.c: Include tree-pretty-print.h and
1088         gimple-pretty-print.h.
1089         * tree-predcom.c: Include tree-pretty-print.h and
1090         gimple-pretty-print.h.
1091         * tree-scalar-evolution.c: Include tree-pretty-print.h and
1092         gimple-pretty-print.h.
1093         * tree-sra.c: Include tree-pretty-print.h.
1094         * tree-ssa-address.c: Include tree-pretty-print.h.
1095         * tree-ssa-alias.c: Include tree-pretty-print.h.
1096         * tree-ssa-ccp.c: Include tree-pretty-print.h and
1097         gimple-pretty-print.h.
1098         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
1099         * tree-ssa-copy.c: Include tree-pretty-print.h and
1100         gimple-pretty-print.h.
1101         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
1102         * tree-ssa-dce.c: Include tree-pretty-print.h and
1103         gimple-pretty-print.h.
1104         * tree-ssa-dom.c: Include tree-pretty-print.h and
1105         gimple-pretty-print.h.
1106         * tree-ssa-dse.c: Include gimple-pretty-print.h.
1107         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
1108         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
1109         * tree-ssa-live.c: Include tree-pretty-print.h and
1110         gimple-pretty-print.h.
1111         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
1112         gimple-pretty-print.h.
1113         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
1114         gimple-pretty-print.h.
1115         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
1116         gimple-pretty-print.h.
1117         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
1118         gimple-pretty-print.h.
1119         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
1120         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
1121         * tree-ssa-operands.c: Include tree-pretty-print.h and
1122         gimple-pretty-print.h.
1123         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
1124         gimple-pretty-print.h.
1125         * tree-ssa-pre.c: Include tree-pretty-print.h and
1126         gimple-pretty-print.h.
1127         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
1128         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
1129         gimple-pretty-print.h.
1130         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
1131         gimple-pretty-print.h.
1132         * tree-ssa-sink.c: Include gimple-pretty-print.h.
1133         * tree-ssa-ter.c: Include tree-pretty-print.h and
1134         gimple-pretty-print.h.
1135         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
1136         * tree-ssa.c: Include tree-pretty-print.h and
1137         gimple-pretty-print.h.
1138         * tree-stdarg.c: Include gimple-pretty-print.h.
1139         * tree-switch-conversion.c: Include gimple-pretty-print.h.
1140         * tree-tailcall.c: Include tree-pretty-print.h and
1141         gimple-pretty-print.h.
1142         * tree-vect-data-refs.c: Include tree-pretty-print.h and
1143         gimple-pretty-print.h.
1144         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
1145         gimple-pretty-print.h.
1146         * tree-vect-loop.c: Include tree-pretty-print.h and
1147         gimple-pretty-print.h.
1148         * tree-vect-patterns.c: Include gimple-pretty-print.h.
1149         * tree-vect-slp.c: Include tree-pretty-print.h and
1150         gimple-pretty-print.h.
1151         * tree-vect-stmts.c: Include tree-pretty-print.h and
1152         gimple-pretty-print.h.
1153         * tree-vectorizer.c: Include tree-pretty-print.h.
1154         * tree-vrp.c: Include tree-pretty-print.h and
1155         gimple-pretty-print.h.
1156         * value-prof.c: Include tree-pretty-print.h and
1157         gimple-pretty-print.h.
1158         * var-tracking.c: Include tree-pretty-print.h.
1159         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
1160         (tree-diagnostic.o): New dependencies.
1161         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
1162         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
1163         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
1164         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
1165         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
1166         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
1167         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
1168         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
1169         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
1170         tree-ssa-address.o, tree-ssa-loop-niter.o,
1171         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
1172         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
1173         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
1174         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
1175         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
1176         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
1177         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
1178         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
1179         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
1180         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
1181         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
1182         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
1183         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
1184         tree-switch-conversion.o, var-tracking.o, value-prof.o,
1185         cfgexpand.o, pretty-print.o): Update dependencies.
1186
1187 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
1188
1189         * tree-ssa-structalias.c: Remove tm_p.h from include.
1190
1191 2010-05-21  Jeff Law  <law@redhat.com>
1192
1193         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
1194
1195 2010-05-21  Jason Merrill  <jason@redhat.com>
1196
1197         * tree-eh.c (cleanup_is_dead_in): New.
1198         (lower_try_finally): Don't generate a dead cleanup region.
1199         (lower_cleanup): Likewise.
1200
1201 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1202
1203         PR debug/44223
1204         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
1205         unchain each use from the cyclic next_regno_use chain first.
1206
1207 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1208
1209         * real: Do not include gmp.h, mpfr.h, and mpc.h.
1210         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
1211         (real_value_negate, real_value_abs): New prototypes.
1212         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
1213         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
1214         new include file for interface between MPFR and REAL_VALUE_TYPE.
1215         * real.c: Include realmpfr.h.
1216         (real_arithmetic2): Remove legacy function.
1217         (real_value_negate): New.
1218         (real_value_abs): New.
1219         (mfpr_from_real, real_from_mpfr): Move from here...
1220         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
1221         * builtins.c: Include realmpfr.h.
1222         * fold-const.c: Include realmpfr.h.
1223         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
1224         (fold_negate_const): Likewise.
1225         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
1226         * toplev.c: Include realmpfr.h.
1227         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
1228         and real_value_negate.
1229         * fixed-value.c (check_real_for_fixed_mode): Likewise.
1230         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
1231         (vfp3_const_double_index): Likewise.
1232         (arm_print_operand): Likewise.
1233         * Makefile.in: Update dependencies.
1234
1235 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1236
1237         * config/s390/s390.c (override_options): Increase the default
1238         of max-completely-peel-times.
1239
1240 2010-05-21  Julian Brown  <julian@codesourcery.com>
1241             Mark Mitchell  <mark@codesourcery.com>
1242
1243         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
1244         sibling calls for Thumb-1.
1245         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
1246         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
1247         Thumb-2.
1248         (*call_insn, *call_value_insn): Don't use for Thumb-2.
1249         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
1250         for Thumb-2.
1251         (return): New expander.
1252         (*arm_return): New name for ARM return insn.
1253         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
1254
1255 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
1256
1257         * config.gcc (sparc64-*-rtems*): New target.
1258
1259 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1260
1261         * tree.c (build_function_decl_skip_args): Fix grammar.
1262         (build_function_type_list_1): Fix typos, adjust formatting.
1263
1264 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1265
1266         * tree.h: Include real.h and fixed-value.h as basic datatypes.
1267         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
1268         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
1269         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
1270         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
1271         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
1272         tree-pretty-print.c, tree-loop-distribution.c,
1273         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
1274         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
1275         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
1276         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
1277         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
1278         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
1279         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
1280         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
1281         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
1282         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
1283         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
1284         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
1285         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
1286         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
1287         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
1288         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
1289         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
1290         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
1291         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
1292         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
1293         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
1294         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
1295         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
1296         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
1297         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
1298         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
1299         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
1300         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
1301         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
1302         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
1303         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
1304         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
1305         config/score/score7.c, config/score/score.c, config/arm/arm.c,
1306         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
1307         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
1308         config/bfin/bfin.c: Clean up redundant includes.
1309         * Makefile.in: Update accordingly.
1310
1311 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1312
1313         PR middle-end/44204
1314         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
1315         statement has no arguments.
1316
1317 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
1318
1319         PR/44139
1320         * varasm.c (emutls_decl): Merge attributes to new decl.
1321
1322 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1323
1324         PR middle-end/44101
1325         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
1326         around the uniquized constructor if its type requires a conversion.
1327
1328 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1329
1330         PR debug/44205
1331         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
1332         at -O0 goto_locus of any of the incoming edges differs from
1333         goto_locus of outgoing edge, or gimple_location of any of the
1334         labels differs.
1335
1336 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
1337
1338         * ira.c (ira_non_ordered_class_hard_regs): Define.
1339         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
1340         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
1341         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
1342         cost of unaligned hard regs when allocating multi-reg pseudos.
1343
1344 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
1345
1346         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
1347         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
1348         for TARGET_NO_FLOAT.
1349         * config/mips/mips.c (mips_file_start): Expand conditional expression
1350         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
1351         (mips_override_options): Move -mno-float override -msoft-float and
1352         -mhard-float.
1353         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
1354         Condition(TARGET_SUPPORTS_NO_FLOAT).
1355         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
1356         __mips_no_float here.
1357         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
1358         (TARGET_SUPPORTS_NO_FLOAT): Define.
1359         * config/mips/sdemtk.opt: Delete.
1360
1361 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
1362
1363         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
1364
1365 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
1366
1367         PR target/43733
1368         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
1369         * configure: Regenerate.
1370         * config.in: Regenerate.
1371         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
1372         instead of sahf only for 64bit targets.
1373
1374 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1375
1376         PR debug/44178
1377         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
1378         setup_ref_regs for DEBUG_INSNs.
1379
1380 2010-05-20  Jan Hubicka  <jh@suse.cz>
1381
1382         PR middle-end/44197
1383         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
1384
1385 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
1386
1387         PR bootstrap/43870
1388         * df-scan.c (df_ref_compare): Stabilize sort.
1389
1390 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1391
1392         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
1393         argument.  Don't use DW_OP_piece if offset is non-zero,
1394         put offset into second DW_OP_bit_piece argument.
1395         (dw_sra_loc_expr): Adjust callers.  For memory expressions
1396         compute offset.
1397
1398 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
1399
1400         PR target/44202
1401         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
1402         settings for 16-bit-constant "addo" alternative.
1403
1404 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
1405
1406         * config/mips/mips-dsp.md (add<DSPV:mode>3,
1407         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
1408
1409         PR target/43764
1410         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
1411         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
1412         Use it.
1413
1414 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
1415
1416         * diagnostic.c (FLOAT, FFS): Don't undefine.
1417         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
1418         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
1419         include ordering.
1420
1421 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
1422
1423         * combine.c (propagate_for_debug): Call make_compound_operation
1424         on the source value.
1425         (try_combine): When implementing a split chosen by find_split_point,
1426         either copy i2src or set it to null.  Assert that i2src is not null
1427         before substituting into CALL_INSN_FUNCTION_USAGE.
1428
1429 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
1430
1431         * double-int.h (double_int_ior): New function.
1432         * tree.h (build_int_cst_wide_type): Remove.
1433         * tree.c (build_int_cst_wide_type): Remove.
1434         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
1435         of build_int_cst_wide_type.
1436         * stor-layout.c (set_sizetype): (Ditto.).
1437         * dojump.c (do_jump): Use build_int_cstu instead of
1438         build_int_cst_wide_type.
1439
1440 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1441
1442         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
1443         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
1444         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
1445         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
1446         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
1447         propagate the 'data' argument to copy_tree_r.
1448         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
1449         Propagate 'data' argument to walk_tree.
1450         (copy_if_shared): New function.
1451         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
1452         (unmark_visited): New function.
1453         (unshare_body): Call copy_if_shared instead of doing it manually.
1454         (unvisit_body): Call unmark_visited instead of doing it manually.
1455
1456 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
1457
1458         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
1459         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
1460         * hooks.c: Likewise.
1461         * target-def.h (TARGET_FOLD_BUILTIN): Define to
1462         hook_tree_tree_int_treep_bool_null.
1463         * target.h (struct gcc_target): Update signature of fold_builtin
1464         field.
1465         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
1466         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
1467         instead of the call expression.
1468         (fold_builtin_call_array): Pass n and argarray directly.
1469         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
1470         consing a list.
1471         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
1472         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
1473         `i' and use it in place of `arity'.
1474         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
1475         Dereference `args' directly.
1476         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
1477
1478 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1479
1480         * doc/sourcebuild.texi (Effective-Target Keywords): Document
1481         3dnow, sse3, sse2.
1482         (Directives): Document optional dg-require-effective-target
1483         selector.
1484
1485 2010-05-19  Richard Guenther  <rguenther@suse.de>
1486
1487         PR lto/44196
1488         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
1489
1490 2010-05-19  Richard Guenther  <rguenther@suse.de>
1491
1492         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
1493         * common.opt (fwhopr=): New.
1494         * opts.c (common_handle_option): Handle OPT_fwhopr.
1495         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
1496         * collect2.c (main): Match -fwhopr*.
1497         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
1498         Execute ltrans stage in parallel when jobs is bigger than 1.
1499
1500 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1501
1502         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
1503         pentiumpro on Solaris 8/x86 with Sun as.
1504         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
1505         hidden alias bug.
1506         (gcc_cv_as_ix86_quad): Check for .quad directive.
1507         * configure: Regenerate.
1508         * config.in: Regenerate.
1509         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
1510
1511 2010-05-19  Martin Jambor  <mjambor@suse.cz>
1512
1513         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
1514         also for indirect edges.  Actual printing moved...
1515         (ipa_print_node_jump_functions_for_edge): ...here.
1516         (ipa_compute_jump_functions): Renamed to
1517         ipa_compute_jump_functions_for_edge and made static.
1518         (ipa_compute_jump_functions): New function.
1519         (make_edge_direct_to_target): Check if the number of arguments on
1520         the newly direct edge is the same as the number of parametrs of
1521         the callee.
1522         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
1523         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
1524         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
1525         analysis functions unconditionally, call the new
1526         ipa_analyze_params_uses on the node instead of every edge.
1527
1528 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
1529
1530         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
1531         to tree.
1532         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
1533         also checks for a constant int vs.  non-constant but
1534         loop-invariant steps.
1535         (find_or_create_group): Change the sort algorithm to only consider
1536         steps that are constant ints.
1537         (idx_analyze_ref): Adopt code to handle a tree instead of a
1538         HOST_WIDE_INT for step.
1539         (gather_memory_references_ref): Handle tree instead of int and be
1540         prepared to see a NULL_TREE.
1541         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
1542         prefetches if the step cannot be calculated at compile time.
1543         (issue_prefetch_ref): Issue prefetches for non-constant but
1544         loop-invariant steps.
1545
1546 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1547
1548         Revert:
1549         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1550
1551         * tree.h (build_call_list): Remove.
1552         * tree.c (build_call_list): Remove.
1553
1554 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1555
1556         * tree.h (build_call_list): Remove.
1557         * tree.c (build_call_list): Remove.
1558
1559 2010-05-18  Jan Hubicka  <jh@suse.cz>
1560
1561         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
1562
1563 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
1564
1565         PR rtl-optimization/43332
1566         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
1567
1568 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
1569
1570         * tree.h (build_int_cstu): Implement as static inline.
1571         * tree.c (build_int_cstu): Remove function.
1572         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
1573         sign extended.
1574
1575 2010-05-18  Richard Guenther  <rguenther@suse.de>
1576
1577         PR lto/44143
1578         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
1579         (debug): Initialize from -save-temps.
1580         (collect_execute): Print command-line when verbose.
1581         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
1582         for ltrans invocation.  Produce -dumpbase flag again.
1583         (process_args): Remove.
1584         (main): Simplify.
1585         * collect2.c (maybe_run_lto_and_relink): Only pass object
1586         files to lto-wrapper.
1587         * gcc.c (LINK_COMMAND_SPEC): Likewise.
1588
1589 2010-05-18  Jan Hubicka  <jh@suse.cz>
1590
1591         * opts.c (decode_options): Do not disable whopr at ipa_cp.
1592         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
1593
1594 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
1595
1596         PR lto/44184
1597         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
1598         in a GIMPLE_ASM.
1599         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
1600         in a GIMPLE_ASM.
1601
1602 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
1603
1604         PR debug/41371
1605         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
1606         rtx_equal_p inline.
1607
1608 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
1609
1610         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
1611         lto-macho as lto_binary_reader.
1612
1613         * darwin.c (darwin_asm_named_section): Do not add assembler comment
1614         after .section directive; just print it before the directive instead.
1615
1616 2010-05-17  Jan Hubicka  <jh@suse.cz>
1617
1618         * cgraph.c (cgraph_create_virtual_clone): Only check
1619         versionable_function_p when not in wpa and checking is enabled.
1620         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
1621         there are no more functions to materialize.
1622
1623 2010-05-17  Jan Hubicka  <jh@suse.cz>
1624
1625         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
1626         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
1627         New functions.
1628         (output_cgraph): Call output_cgraph_opt_summary.
1629         (input_cgrpah): Call input_cgraph_opt_summary.
1630         (output_cgraph_opt_summary_p, output_node_opt_summary,
1631         input_node_opt_summary, input_cgraph_opt_section): New functions.
1632         * lto-section-in.c (lto_section_name): Add cgraphopt.
1633         * tree-inline.c (tree_function_versioning): Handle parm_num.
1634         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
1635         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
1636
1637 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
1638
1639         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
1640         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
1641         the insn to prefetch ratio heuristic to loops with known trip count.
1642
1643 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
1644
1645         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
1646         (schedule_prefetches): Do not generate a prefetch if the unroll factor
1647         is far from what is required by the prefetch.
1648
1649 2010-05-17  Jan Hubicka  <jh@suse.cz>
1650
1651         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
1652         (ipcp_estimate_growth): Likewise.
1653         (ipcp_const_param_count): Likewise.
1654         (ipcp_insert_stage): Likewise.
1655         * ipa-prop.c (visit_load_for_mod_analysis): New function.
1656         (visit_store_addr_for_mod_analysis): Set used flag.
1657         (ipa_detect_param_modifications): Set used flag for SSE params;
1658         update use of walk_stmt_load_store_addr_ops.
1659         (ipa_print_node_params): Print used flag.
1660         (ipa_write_node_info): Stream used flag.
1661         (ipa_read_node_info): Likewise.
1662         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
1663         (ipa_is_param_used): New function.
1664         (lto_ipa_fixup_call_notes): Remove unused declaration.
1665
1666 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1667
1668         PR target/44074
1669         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
1670         * configure: Regenerate.
1671         * config.in: Regenerate.
1672         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
1673         !HAVE_AS_IX86_REP_LOCK_PREFIX.
1674         Don't emit whitespace.
1675         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
1676         (*rep_movsi): Likewise.
1677         (*rep_movsi_rex64): Likewise.
1678         (*rep_movqi): Likewise.
1679         (*rep_movqi_rex64): Likewise.
1680         (*rep_stosdi_rex64): Likewise.
1681         (*rep_stossi): Likewise.
1682         (*rep_stossi_rex64): Likewise.
1683         (*rep_stosqi): Likewise.
1684         (*rep_stosqi_rex64): Likewise.
1685         (*cmpstrnqi_nz_1): Use {%;} after repz.
1686         (*cmpstrnqi_nz_rex_1): Likewise.
1687         (*cmpstrnqi_1): Likewise.
1688         (*cmpstrnqi_rex_1): Likewise.
1689         (*strlenqi_1): Use {%;} after repnz.
1690         (*strlenqi_rex_1): Likewise.
1691         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
1692         (*sync_compare_and_swap<mode>): Likewise.
1693         (sync_double_compare_and_swap<mode>): Likewise.
1694         (*sync_double_compare_and_swapdi_pic): Likewise.
1695         (sync_old_add<mode>): Likewise.
1696         (sync_add<mode>): Likewise.
1697         (sync_sub<mode>): Likewise.
1698         (sync_<code><mode>): Likewise.
1699
1700 2010-05-17  Martin Jambor  <mjambor@suse.cz>
1701
1702         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
1703         otr_token and polymorphic.
1704         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
1705         (cgraph_clone_edge): Copy the above fields.
1706         * tree.c (get_binfo_at_offset): New function.
1707         * tree.h (get_binfo_at_offset): Declare.
1708         * ipa-prop.h (enum jump_func_type): Added known_type jump function
1709         type, reordered items, updated comments.
1710         (union jump_func_value): Added base_type field, reordered fields.
1711         (enum ipa_lattice_type): Moved down in the file.
1712         (struct ipa_param_descriptor): New field polymorphic.
1713         (ipa_is_param_polymorphic): New function.
1714         * ipa-prop.c: Include gimple.h and gimple-fold.h.
1715         (ipa_print_node_jump_functions): Print known type jump functions.
1716         (compute_complex_pass_through): Renamed to...
1717         (compute_complex_assign_jump_func): this.
1718         (compute_complex_ancestor_jump_func): New function.
1719         (compute_known_type_jump_func): Likewise.
1720         (compute_scalar_jump_functions): Create known type and complex ancestor
1721         jump functions.
1722         (ipa_note_param_call): New parameter polymorphic, set the corresponding
1723         flag in the call note accordingly.
1724         (ipa_analyze_call_uses): Renamed to...
1725         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
1726         variable var only in the block where it is used.
1727         (ipa_analyze_virtual_call_uses): New function.
1728         (ipa_analyze_call_uses): Likewise.
1729         (combine_known_type_and_ancestor_jfs): Likewise.
1730         (update_jump_functions_after_inlining): Implemented handling of a
1731         number of new jump function types combination.
1732         (print_edge_addition_message): Removed.
1733         (make_edge_direct_to_target): New function.
1734         (try_make_edge_direct_simple_call): Likewise.
1735         (try_make_edge_direct_virtual_call): Likewise.
1736         (update_call_notes_after_inlining): Renamed to...
1737         (update_indirect_edges_after_inlining): this.  Moved edge creation for
1738         indirect calls to try_make_edge_direct_simple_call, also calls
1739         try_make_edge_direct_virtual_call for virtual calls.
1740         (ipa_print_node_params): Changed the header message.
1741         (ipa_write_jump_function): Stream also known type jump functions.
1742         (ipa_read_jump_function): Likewise.
1743         (ipa_write_indirect_edge_info): Stream new fields in
1744         cgraph_indirect_call_info.
1745         (ipa_read_indirect_edge_info): Likewise.
1746         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
1747         GIMPLE_FOLD_H.
1748
1749 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1750
1751         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
1752
1753 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1754
1755         * tree.h (CALL_EXPR_ARGS): Delete.
1756         (call_expr_arglist): Delete.
1757         * tree.c (call_expr_arglist): Delete.
1758         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
1759         targetm.fold_builtin.
1760         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
1761         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
1762         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
1763         arglist parameter.  Use CALL_EXPR_ARG.
1764         (picochip_expand_builtin_3op): Likewise.
1765         (picochip_expand_builtin_2opvoid): Likewise.
1766         (picochip_expand_array_get): Likewise.
1767         (picochip_expand_array_put): Likewise.
1768         (picochip_expand_array_testport): Likewise.
1769         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
1770         rather than arglist.
1771         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
1772         CALL_EXPR_ARGS.
1773         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
1774         than TREE_VALUE and TREE_CHAIN.
1775         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
1776         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
1777         the arglist.
1778
1779 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
1780
1781         PR bootstrap/42347
1782         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
1783         to have no fallthru edge.
1784
1785         PR middle-end/44102
1786         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
1787         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
1788         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
1789         add BARRIER after previous bb if needed.
1790
1791 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1792
1793         * tree.c (build_function_type_list_1): Remove bogus assert condition.
1794
1795 2010-05-17  Alan Modra  <amodra@gmail.com>
1796
1797         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
1798         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
1799         with copy_reg rtx param.
1800         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
1801         Correct cases where code for ABI_V4 did not initialise the reg
1802         used to access frame.  Also leave frame_reg_rtx as sp for large
1803         frames that save no regs.
1804
1805 2010-05-17  Martin Jambor  <mjambor@suse.cz>
1806
1807         PR middle-end/44133
1808         * tree-sra.c (create_access_replacement): New parameter rename, mark
1809         the replaement for renaming only when it is true.
1810         (get_access_replacement): Pass true in the rename parameter of
1811         create_access_replacement.
1812         (get_unrenamed_access_replacement): New function.
1813         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
1814         replacement declaration from it.
1815
1816 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
1817
1818         * function.c (try_fit_stack_local, add_frame_space): New static
1819         functions.
1820         (assign_stack_local_1): Use them.  Look for opportunities to use
1821         space previously wasted on alignment.
1822         * function.h (struct frame_space): New.
1823         (struct rtl_data): Add FRAME_SPACE_LIST member.
1824         * reload1.c (something_was_spilled): New static variable.
1825         (alter_reg): Set it.
1826         (reload): Test it in addition to testing if the frame size changed.
1827
1828 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
1829
1830         * config/s390/s390.c: Define sane prefetch settings and activate
1831         flag_prefetch_loop_arrays on -O3.
1832         * config/s390/s390.h: Declare that read can use write prefetch.
1833
1834 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
1835
1836         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
1837         build.
1838
1839 2010-05-16  Jan Hubicka  <jh@suse.cz>
1840
1841         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
1842         function body; do not check stdarg field of struct function.
1843
1844 2010-05-16  Jan Hubicka  <jh@suse.cz>
1845
1846         * cgraph.c (dump_cgraph_node): Dump versionable flag.
1847         * cgraph.h (cgraph_local_info): Add versionable flag.
1848         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
1849         (ipcp_versionable_function_p): Use it.
1850         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
1851         versionable flag.
1852
1853 2010-05-16  Jan Hubicka  <jh@suse.cz>
1854
1855         * cgraph.c (cgraph_clone_node): Take decl argument and insert
1856         clone into hash when it is different from orig.
1857         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
1858         * cgraph.h (cgraph_clone_node): Update prototype.
1859         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
1860         (lto_cgraph_encoder_delete): Delete body map.
1861         (lto_cgraph_encoder_size): Move to header.
1862         (lto_cgraph_encoder_encode_body_p,
1863         lto_set_cgraph_encoder_encode_body): New.
1864         (lto_output_node): Do not take written_decls argument; output clone_of
1865         pointer.
1866         (add_node_to): Add include_body_argument; call
1867         lto_set_cgraph_encoder_encode_body on master of the clone.
1868         (add_references): Update use of add_node_to.
1869         (compute_ltrans_boundary): Likewise.
1870         (output_cgraph): Do not create written_decls bitmap.
1871         (input_node): Take nodes argument; stream in clone_of correctly.
1872         (input_cgraph_1): Update use of input_node.
1873         * lto-streamer-out.c (lto_output): Use encoder info to decide
1874         what bodies to output.
1875         * ipa-inline.c (cgraph_clone_inlined_nodes,
1876         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
1877         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
1878         (lto_cgraph_encoder_size): Define here.
1879         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
1880         Declare.
1881
1882 2010-05-16  Richard Guenther  <rguenther@suse.de>
1883
1884         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
1885         -fipa-type-escape.
1886         * ipa-type-escape.c (gate_type_escape_vars): Run when
1887         -fipa-struct-reorg runs.
1888         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
1889         * common.opt (fipa-type-escape): Remove.
1890
1891 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
1892
1893         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
1894         (decode_options): Likewise.
1895         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
1896
1897 2010-05-16  Jan Hubicka  <jh@suse.cz>
1898
1899         * ipa.c (function_and_variable_visibility): Also bring local all
1900         aliases.
1901
1902 2010-05-16  Richard Guenther  <rguenther@suse.de>
1903
1904         * alias.c (nonoverlapping_memrefs_p): Remove use of
1905         IPA type-escape information.
1906
1907 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
1908
1909         * c-common.c (c_common_reswords): Add _Static_assert for C.
1910         * c-parser.c (c_token_starts_declaration,
1911         c_parser_next_token_starts_declaration,
1912         c_parser_static_assert_declaration_no_semi,
1913         c_parser_static_assert_declaration): New.
1914         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
1915         Handle static assertions if static_assert_ok.
1916         (c_parser_external_declaration, c_parser_declaration_or_fndef,
1917         c_parser_compound_statement_nostart, c_parser_label,
1918         c_parser_for_statement, c_parser_objc_methodprotolist,
1919         c_parser_omp_for_loop): All callers of
1920         c_parser_declaration_or_fndef changed.
1921         (c_parser_struct_declaration): Handle static assertions.
1922         (c_parser_compound_statement_nostart): Use
1923         c_parser_next_token_starts_declaration and
1924         c_token_starts_declaration to detect start of declarations.
1925         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
1926         Likewise.
1927
1928 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
1929
1930         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
1931         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
1932         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1933         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1934         (mmix_function_outgoing_value): Rename to...
1935         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
1936         (mmix_function_value_regno_p): Make static.
1937         (mmix_libcall_value): New function.
1938         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
1939         mmix_function_value_regno_p): Remove declaration.
1940
1941 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
1942
1943         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
1944         BUILT_IN_ALLOCA if stack checking is enabled.
1945
1946 2010-05-16  Richard Guenther  <rguenther@suse.de>
1947
1948         * var-tracking.c (vars_copy_1): Inline ...
1949         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
1950         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
1951         (variable_merge_over_cur): Adjust.  Merge asserts.
1952         (variable_merge_over_src): Likewise.
1953         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
1954         (variable_post_merge_new_vals): Merge asserts.
1955         (variable_post_merge_perm_vals): Likewise.
1956         (find_mem_expr_in_1pdv): Likewise.
1957         (dataflow_set_different_value): Remove.
1958         (onepart_variable_different_p): Merge asserts.
1959         (variable_different_p): Likewise.
1960         (dataflow_set_different_1): Inline ...
1961         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
1962         (emit_notes_for_differences_1): Merge asserts.
1963
1964 2010-05-16  Richard Guenther  <rguenther@suse.de>
1965
1966         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
1967         * optabs.c (libfunc_decl_hash): Likewise.
1968         * varasm.c (emutls_decl): Likewise.
1969
1970 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
1971
1972         * c-decl.c: Don't include gimple.h.
1973         (merge_decls): Do not copy gimple_body.
1974
1975 2010-05-15  Jason Merrill  <jason@redhat.com>
1976
1977         * c.opt: Add -fnothrow-opt.
1978
1979 2010-05-15  Jan Hubicka  <jh@suse.cz>
1980
1981         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
1982         analyzed.
1983         * passes.c (ipa_write_summaries): Write all analyzed nodes.
1984
1985 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
1986
1987         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
1988         * Makefile.in: Add it.
1989         Fix all other Makefile dependencies for changes below.
1990         * tree.h: Include it instead of defining VEC primitives here.
1991         * gimple.h: Likewise.
1992         * rtl.h: Likewise.
1993         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
1994         * except.h: Include vecir.h, break dependence on tree.h.
1995
1996         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
1997         Move from here...
1998         * tree-iterator.c: ...to here.
1999         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
2000
2001         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
2002         tm_p.h.
2003         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
2004         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
2005         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
2006         tree-mudflap.h, and target.h.
2007         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
2008         predict.h, tree-inline.h, gimple.h, and langhooks.h.
2009         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
2010         Add FIXME for why gimple.h is still included (should be unnecessary
2011         since GCC 4.5 gimplification unit-at-a-time).
2012         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
2013         * c-pragma.c: Add FIXME for why function.h needs to be included just
2014         for cfun, at front-end level.
2015         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
2016         Do not include ggc.h, but include vecprim.h for VEC(char).
2017         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
2018         Explain why target.h is included.
2019         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
2020         Explain why gimple.h is included.
2021         * c-ppoutput.c: Do not include tm.h.
2022         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
2023         * c-parses.c: Explain why rtl.h is included, and that this (and only
2024         this) is also why tm.h must be included.
2025         Do not include except.h.
2026         * c-lang.c: Do not include ggc.h.
2027
2028 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
2029
2030         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
2031
2032 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
2033
2034         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
2035         unions by default if those structs and unions have no tags.  Do
2036         not condition anonymous struct and unions handling on flag_iso.
2037         Allow anonymous structs and unions for C1X.
2038         (finish_struct): Do not diagnose lack of named fields when
2039         anonymous structs and unions present for C1X.  Accept flexible
2040         array members in structure with anonymous structs or unions but no
2041         directly named fields.
2042         * doc/extend.texi (Unnamed Fields): Update.
2043
2044 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
2045
2046         * gimple.h (compare_field_offset): Rename into...
2047         (gimple_compare_field_offset): ...this.
2048         * gimple.c (compare_field_offset): Rename into...
2049         (gimple_compare_field_offset): ...this.  Compare the full access if
2050         the offset is self-referential.
2051         (gimple_types_compatible_p): Adjust for above renaming.
2052         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
2053         DECL_NONADDRESSABLE_P flag of fields before merging them.
2054
2055 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
2056
2057         * tree.h (ctor_to_list): Delete.
2058         * tree.c (ctor_to_list): Delete.
2059
2060 2010-05-15  Jan Hubicka  <jh@suse.cz>
2061
2062         * ipa-reference.c: Include toplev.h
2063         (is_proper_for_analysis): Only add to all_module_statics
2064         if it is allocated.
2065         (write_node_summary_p, stream_out_bitmap,
2066         ipa_reference_write_optimization_summary,
2067         ipa_reference_read_optimization_summary): New.
2068         (struct ipa_opt_pass_d pass_ipa_reference): Add
2069         optimization summary streaming.
2070         * lto-cgraph.c (referenced_from_this_partition_p,
2071         reachable_from_this_partition_p): New functions.
2072         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2073         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
2074         * opts.c (decode_options): Enable ipa_reference.
2075         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
2076         * lto-streamer.h (referenced_from_this_partition_p,
2077         reachable_from_this_partition_p): Declare.
2078
2079 2010-05-15  Richard Guenther  <rguenther@suse.de>
2080
2081         PR tree-optimization/44038
2082         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
2083         taking the address of a V_C_E of a constant.
2084
2085 2010-05-14  Jan Hubicka  <jh@suse.cz>
2086
2087         * tree.h (memory_identifier_string): Remove.
2088         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
2089         (ipa_reference_global_vars_info_d): Remove statics_not_read and
2090         statics_not_written.
2091         (ipa_reference_optimization_summary_d): New structure.
2092         (ipa_reference_optimization_summary_t): New type and vector.
2093         (ipa_reference_vars_info_d): Embedd structures instead of using
2094         pointers.
2095         (reference_vars_to_consider): Remove out of GGC space.
2096         (module_statics_escape): Remove.
2097         (global_info_obstack): Rename to ...
2098         (optimization_summary_obstack): ... this one.
2099         (initialization_status_t): Remove.
2100         (memory_identifier_string): Remove.
2101         (get_reference_vars_info): Fix indenting.
2102         (set_reference_vars_info): Likewise.
2103         (get_reference_optimization_summary): New.
2104         (set_reference_optimization_summary): New.
2105         (get_global_reference_vars_info): Remove.
2106         (ipa_reference_get_read_global): Remove.
2107         (ipa_reference_get_written_global): Remove.
2108         (ipa_reference_get_not_read_global): Update.
2109         (ipa_reference_get_not_written_global): Update.
2110         (is_proper_for_analysis): Outlaw addressable.
2111         (propagate_bits): Update for new datastructures.
2112         (analyze_variable): Remove.
2113         (init_function_info): Update for new datastructures.
2114         (clean_function_local_data): Remove.
2115         (clean_function): Remove.
2116         (copy_global_bitmap): Use optimizations_summary_obstack.
2117         (duplicate_node_data): Duplicate optimization summary only.
2118         (remove_node_data): Remove optimization summary only.
2119         (generate_summary): Do not analyze variables; do not compute
2120         module_statics_escape; do not prune solutions by it.
2121         (read_write_all_from_decl): Fix typos in comments.
2122         (propagate): Doscover readonly and nonaddressable first;
2123         update for new datastructures; share global bitmaps.
2124         * ipa-reference.h (ipa_reference_get_read_global,
2125         ipa_reference_get_written_global): Remove.
2126         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
2127         * Makefile.in: Remove ipa-refereference from GT files.
2128
2129 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2130
2131         PR debug/44112
2132         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
2133         for all SYMBOL_REF_DECLs.
2134
2135 2010-05-14  Jan Hubicka  <jh@suse.cz>
2136
2137         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
2138         (varpool_all_refs_explicit_p): New inline function.
2139         * ipa-reference.c: Update comment.
2140         (module_statics_written): Remove.
2141         (get_static_decl): Remove.
2142         (ipa_init): Do not initialize module_statics_written.
2143         (analyze_function): Likewise.
2144         (generate_summary): Likewise; do not compute module_statics_readonly
2145         and do not update variable flags.
2146         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
2147         * ipa.c: Inlucde flags.h
2148         (cgraph_local_node_p): New.
2149         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
2150         promote functions to local.
2151         (ipa_discover_readonly_nonaddressable_vars): New function.
2152         (function_and_variable_visibility): Use cgraph_local_node_p.
2153         * varpool.c (varpool_finalize_decl): Set force_output for
2154         DECL_PRESERVE_P vars.
2155
2156 2010-05-14  Jan Hubicka  <jh@suse.cz>
2157
2158         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
2159
2160 2010-05-14  Richard Guenther  <rguenther@suse.de>
2161
2162         PR tree-optimization/44119
2163         * tree-ssa-pre.c (eliminate): Properly mark replacement of
2164         a PHI node necessary.
2165
2166 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
2167
2168         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
2169
2170 2010-05-14  Jason Merrill  <jason@redhat.com>
2171
2172         PR c++/44127
2173         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
2174         (gimple_call_set_nothrow): New.
2175         * gimple.c (gimple_build_call_from_tree): Call it.
2176         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
2177
2178         PR c++/44127
2179         * gimplify.c (gimplify_seq_add_stmt): No longer static.
2180         * gimple.h: Declare it.
2181         * gimple.c (gimple_build_eh_filter): No ops.
2182
2183 2010-05-14  Jan Hubicka  <jh@suse.cz>
2184
2185         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
2186         nodes already in queue.
2187         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
2188         re-enqueueing node.
2189
2190 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2191
2192         PR debug/44136
2193         * cfgexpand.c (expand_debug_expr): If non-memory op0
2194         has BLKmode, return NULL.
2195
2196 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
2197
2198         * config.gcc: Add support for --with-cpu option for bdver1.
2199         * config/i386/i386.h (TARGET_BDVER1): New macro.
2200         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
2201         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2202         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
2203         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2204         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
2205         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
2206         (processor_type): Add PROCESSOR_BDVER1.
2207         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
2208         processor_type in config/i386/i386.h.
2209         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
2210         movaps <reg, reg> instead of movapd <reg, reg> when replacing
2211         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
2212         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
2213         to emit packed xor instead of packed double/packed integer
2214         xor for SSE and AVX when moving a zero value.
2215         * config/i386/sse.md: Add check for
2216         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
2217         movapd/movdqa for SSE and AVX.
2218         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
2219         single logical operations i.e and, or and xor instead of packed double
2220         logical operations for SSE and AVX.
2221         * config/i386/i386-c.c (ix86_target_macros_internal):
2222         Add PROCESSOR_BDVER1.
2223         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
2224         (has_fma4, has_xop): New.
2225         * config/i386/i386.c (bdver1_cost): New variable.
2226         (m_BDVER1): New macro.
2227         (m_AMD_MULTIPLE): Add m_BDVER1.
2228         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
2229         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
2230         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
2231         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
2232         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
2233         x86_tune_sse_partial_reg_dependency,
2234         x86_tune_sse_unaligned_load_optimal,
2235         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
2236         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
2237         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
2238         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
2239         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
2240         Enable/disable for bdver1.
2241         (processor_target_table): Add bdver1_cost.
2242         (cpu_names): Add bdver1.
2243         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
2244          processor_alias_table.
2245         (ix86_expand_vector_move_misalign): Change.
2246         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
2247         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
2248         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
2249         of movupd/movdqu for SSE and AVX.
2250         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
2251         (ix86_tune_adjust_cost): Add code for bdver1.
2252         (standard_sse_constant_opcode): Add check for
2253         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
2254         of packed double xor for SSE and AVX.
2255
2256 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
2257
2258         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
2259         result to unsigned.
2260
2261 2010-05-14  Tristan Gingold  <gingold@adacore.com>
2262
2263         * toplev.c (default_debug_hooks): Remove this variable.
2264         (process_options): Remove assignments to default_debug_hooks.
2265
2266 2010-05-14  Martin Jambor  <mjambor@suse.cz>
2267
2268         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
2269         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
2270         * langhooks.h (struct lang_hooks_for_decls): Removed field
2271         fold_obj_type_ref.
2272         * tree.c (free_lang_data): Remove assignment to
2273         lang_hooks.fold_obj_type_ref.
2274         * tree.def (OBJ_TYPE_REF): Update comment.
2275
2276 2010-05-14  Richard Guenther  <rguenther@suse.de>
2277
2278         PR tree-optimization/44124
2279         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
2280
2281 2010-05-14  Alan Modra  <amodra@gmail.com>
2282
2283         PR target/44075
2284         * config/rs6000/rs6000.c (struct machine_function): Reorder
2285         fields for better packing.  Add lr_save_state.
2286         (rs6000_ra_ever_killed): Return lr_save_state if set.
2287         (rs6000_emit_eh_reg_restore): Set lr_save_state.
2288
2289 2010-05-13  Jan Hubicka  <jh@suse.cz>
2290
2291         * varpool.c (decide_is_variable_needed): Drop code checking
2292         TREE_SYMBOL_REFERENCED.
2293
2294 2010-05-13  Jan Hubicka  <jh@suse.cz>
2295
2296         * final.c (output_addr_const): Do not call mark_decl_referenced.
2297         * cgraphunit.c (process_function_and_variable_attributes): Use
2298         mark_needed_node dirrectly.
2299         (assemble_thunk): Do not call mark_decl_referenced.
2300
2301 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
2302
2303         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
2304
2305 2010-05-13  Jeff Law  <law@redhat.com>
2306
2307         * ira-conflicts.c (print_allocno_conflicts): New function broken out
2308         from...
2309         (print_conflicts): Call print_allocno_conflicts.
2310
2311 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2312
2313         PR debug/44104
2314         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
2315         if it is NULL.
2316
2317 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
2318
2319         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
2320         t-mingw-w64 or t-mingw-w32 for multilib configuration.
2321         * config/i386/t-mingw-w32: New.
2322         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
2323
2324 2010-05-13  Martin Jambor  <mjambor@suse.cz>
2325
2326         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
2327         gimple-fold.c).
2328         * gimple-fold.c (get_base_binfo_for_type): New function.
2329         (gimple_get_relevant_ref_binfo): Likewise.
2330         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2331         (gimple_fold_obj_type_ref): Likewise.
2332         (fold_gimple_call): Simplify condition for folding virtual calls
2333         and call gimple_fold_obj_type_ref.
2334         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
2335         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2336
2337 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
2338
2339         * config/rs6000/rs6000-protos.h
2340         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
2341         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
2342         (rs6000_debug_mode_dependent_address)
2343         (rs6000_mode_dependent_address_ptr): Likewise.
2344
2345 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2346
2347         PR debug/43983
2348         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
2349         by SRA.
2350         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
2351         * tree-sra.c (create_access_replacement): Call unshare_expr before
2352         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
2353         * dwarf2out.c: Include tree-flow.h.
2354         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
2355         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
2356         Handle DW_OP_bit_piece.
2357         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
2358         construct_piece_list, adjust_piece_list): New functions.
2359         (add_var_loc_to_decl): Handle SRA optimized variables.
2360         Adjust for var_loc_note to loc field renaming.
2361         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
2362         in VAR_LOCATION note.
2363         (new_loc_descr_op_bit_piece): New function.
2364         (dw_sra_loc_expr): New function.
2365         (dw_loc_list): Use it.  Don't handle the last range after the
2366         loop, handle it inside of the loop.  Adjust for var_loc_note
2367         to loc field renaming.
2368         (add_location_or_const_value_attribute): Only special case
2369         single entry loc lists if loc is NOTE_P.  Adjust for
2370         var_loc_note to loc field renaming.
2371         (dwarf2out_var_location): Don't set newloc->var_loc_note
2372         and newloc->next here.
2373
2374 2010-05-12  Jan Hubicka  <jh@suse.cz>
2375
2376         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
2377         flag.
2378         * cgraph.h (cgraph_only_called_directly_p,
2379         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
2380         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
2381         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
2382         (assemble
2383         * ipa.c (cgraph_remove_unreachable_nodes): Use
2384         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
2385         flags.
2386         * tree-inline.c (copy_bb): Check address_taken flag.
2387         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
2388         externally_visible flag.
2389
2390 2010-05-12  Jason Merrill  <jason@redhat.com>
2391
2392         PR bootstrap/44048
2393         PR target/44099
2394         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
2395         * sdbout.c (plain_type_1): Likewise.
2396         * dwarf2out.c (is_base_type): Likewise.
2397         (gen_type_die_with_usage): Likewise.  Generate
2398         DW_TAG_unspecified_type for any LANG_TYPE.
2399
2400 2010-05-12  Jan Hubicka  <jh@suse.cz>
2401
2402         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
2403         indrect edges too.
2404         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
2405         (cgraph_clone_edge): Update.
2406         (cgraph_node_remove_callees): Remove indirect calls too.
2407         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
2408         (cgraph_create_indirect_edge): Update prototype.
2409         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
2410         is_proper_for_analysis.
2411         (add_new_function, visited_nodes, function_insertion_hook_holder,
2412         get_local_reference_vars_info, mark_address_taken, mark_address,
2413         mark_load, mark_store, check_asm_memory_clobber, check_call,
2414         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
2415         (ipa_init): Do not initialize visited_nodes;
2416         function_insertion_hook_holder.
2417         (analyze_variable): Rewrite.
2418         (analyze_function): Rewrite.
2419         (copy_local_bitmap): Remove.
2420         (duplicate_node_dat): Do not duplicate local info.
2421         (generate_summary): Simplify to only walk cgraph.
2422         (write_node_summary_p, ipa_reference_write_summary,
2423         ipa_reference_read_summary): Remove.
2424         (propagate): Do not remove function insertion;
2425         generate summary.
2426         (pass_ipa_reference): NULLify summary handling fields.
2427         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
2428         (input_edge): Input ecf_flags.
2429         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
2430         (update_indirect_edges_after_inlining): Ignore edges with unknown
2431         param.
2432
2433 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
2434
2435         * implicit-zee.c: New file.
2436         * tree-pass.h (pass_implicit_zee): Declare.
2437         * passes.c (init_optimization_passes): Add zee pass.
2438         * common.opt (fzee): New flag.
2439         * timevar.def (TV_ZEE): Define.
2440         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
2441         and beyond.
2442         * Makefile.in (implicit-zee.o): Add new build file.
2443
2444 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2445             Nathan Froyd  <froydnj@codesourcery.com>
2446
2447         * c-common.c (sync_resolve_params): Remove write-only variable.
2448
2449 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
2450
2451         * target.h (struct gcc_target): Add mode_dependent_address_p field.
2452         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2453         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
2454         * targhooks.c (default_mode_dependent_address_p): New function.
2455         * targhooks.h (default_mode_dependent_address_p): Declare function.
2456         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2457         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
2458         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
2459         target hook. Change return type to bool.
2460         * recog.h (mode_dependent_address_p): Change return type to bool.
2461
2462 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2463             Nathan Froyd  <froydnj@codesourcery.com>
2464
2465         * tree-mudflap.c (build_function_type_0, build_function_type_1,
2466         build_function_type_2, build_function_type_3): Remove.
2467         (mudflap_init): Use build_function_type_list.
2468
2469 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2470             Nathan Froyd  <froydnj@codesourcery.com>
2471
2472         * coverage.c (build_fn_info_value): Call build_constructor instead of
2473         build_constructor_from_list.
2474         (build_ctr_info_value): Likewise.
2475         (build_gcov_info): Likewise.
2476
2477 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
2478
2479         * tree.c (build_constructor): Compute TREE_CONSTANT for the
2480         resultant constructor.
2481         (build_constructor_single): Don't set TREE_CONSTANT.
2482         (build_constructor_from_list): Don't compute TREE_CONSTANT.
2483
2484 2010-05-12  Jan Hubicka  <jh@suse.cz>
2485
2486         * cgraph.h (struct varpool_node): Add aux.
2487         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
2488         * varpool.c (varpool_remove_node): Do not remove initializer.
2489         (varpool_reset_queue): Export.
2490         (varpool_finalize_decl): Volatile vars are forced to be output.
2491         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
2492         replaced decl.
2493         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
2494         process_references, varpool_can_remove_if_no_refs): New functions.
2495         (cgraph_remove_unreachable_nodes): Handle variables too.
2496
2497 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2498
2499         PR target/44088
2500         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
2501
2502 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
2503
2504         PR middle-end/44085
2505         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
2506         change value of ORT_TASK.
2507         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
2508         (omp_notice_threadprivate_variable): New function.
2509         (omp_notice_variable): Call it for threadprivate variables.
2510         If enclosing ctx is a task, print enclosing task rather than
2511         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
2512         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
2513         if task has untied clause.
2514
2515         PR debug/42278
2516         * dwarf2out.c (base_type_die): Don't add name attribute here.
2517         (modified_type_die): Instead of sizetype use
2518         its underlying original type.  If a DW_TAG_base_type doesn't
2519         have name added, add __unknown__.
2520         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
2521         always call force_type_die instead.
2522
2523 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
2524
2525         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
2526         for __stack_chk_guard.
2527
2528 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2529
2530         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
2531         don't call start_source_file debug hook here...
2532         (finish_options): ... but here, after outputting predefined and
2533         command line defines and undefs.
2534
2535         PR middle-end/44071
2536         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
2537         no fallthru edge.
2538         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
2539         optimizing away empty bb with no successors, move over its
2540         footer chain to fallthru predecessor.
2541         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
2542         (rtl_split_edge): For asm goto call patch_jump_insn even if
2543         splitting fallthru edge.
2544
2545         PR c++/44059
2546         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
2547         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
2548         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
2549         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
2550         on DW.ref.* decls.
2551
2552         PR c++/44062
2553         * c-parser.c (c_parser_expression): Mark LHS of a comma
2554         expression as read if it is a decl, handled component or
2555         COMPOUND_EXPR with that on the RHS.
2556         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
2557         if it is a decl or handled component.
2558
2559 2010-05-11  Jan Hubicka  <jh@suse.cz>
2560
2561         * lto-symtab.c (lto_symtab_free): New function.
2562         * lto-streamer.h (lto_symtab_free): Declare.
2563
2564 2010-05-11  Jan Hubicka  <jh@suse.cz>
2565
2566         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
2567         that if function is needed it is reachable.
2568         (lto_output_node): See if it the function is reachable or referenced.
2569         (output_cgraph): Update call of lto_output_node.
2570         * lto-streamer.h (reachable_from_other_partition_p): Declare.
2571
2572 2010-05-11  Jan Hubicka  <jh@suse.cz>
2573
2574         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
2575         Mark as used.
2576
2577 2010-05-11  Jan Hubicka  <jh@suse.cz>
2578
2579         PR tree-optimize/44063
2580         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
2581         queue.
2582         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
2583         limits.
2584         (estimate_function_body_sizes): Compute sizes even when disregarding.
2585
2586 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
2587
2588         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
2589
2590 2010-05-11  Jan Hubicka  <jh@suse.cz>
2591
2592         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
2593         into every boundary.
2594
2595 2010-05-11  Jan Hubicka  <jh@suse.cz>
2596
2597         * matrix-reorg.c (matrix_reorg): Rebuild edges.
2598
2599 2010-05-11  Jan Hubicka  <jh@suse.cz>
2600
2601         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
2602         lto_streamer_cache_delete): Put nodes into heap.
2603         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
2604         heap.
2605
2606 2010-05-11  Jan Hubicka  <jh@suse.cz>
2607
2608         * cgraphbuild.c (cgraph_rebuild_references): New.
2609         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
2610         out extern inlines.
2611         * cgraph.h (cgraph_rebuild_references): Declare.
2612         * tree-inline.c (tree_function_versioning): Use it.
2613         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
2614
2615 2010-05-11  Jan Hubicka  <jh@suse.cz>
2616
2617         * cgraph.c: Include ipa-utils.h
2618         (cgraph_create_virtual_clone): Update references.
2619         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
2620
2621 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2622
2623         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
2624         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
2625         cache size.
2626
2627 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2628
2629         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
2630
2631 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2632
2633         * gcc.c (execute): For -### don't quote arguments that
2634         contain just alphanumerics and _/-. characters.
2635         * doc/invoke.texi: Document that change for -###.
2636
2637         PR debug/44023
2638         * df-problems.c (struct dead_debug): Add to_rescan field.
2639         (dead_debug_init): Clear to_rescan field.
2640         (dead_debug_finish): Rescan all debug insns in to_rescan
2641         bitmap and free the bitmap.
2642         (dead_debug_insert_before): Instead of rescanning debug insns
2643         immediately queue their rescanning until dead_debug_finish.
2644         (df_note_bb_compute): After dead_debug_add do continue instead
2645         of break.
2646
2647 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
2648
2649         PR debug/44028
2650         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
2651         clear also INSN_REG_USE_LIST.
2652
2653 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2654
2655         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
2656
2657 2010-05-10  Jan Hubicka  <jh@suse.cz>
2658
2659         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
2660         commited change.
2661
2662 2010-05-10  Jan Hubicka  <jh@suse.cz>
2663
2664         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
2665         Allocate encoders.
2666         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
2667         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
2668         (lto_streamer_cache_create): Init alloc pool.
2669         (lto_streamer_cache_delete): Free alloc pool.
2670         * lto-streamer.h: Include alloc pool.
2671         (lto_streamer_cache_d): Use alloc pool.
2672         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
2673
2674 2010-05-10  Jan Hubicka  <jh@suse.cz>
2675
2676         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
2677         * cgraphbuild.c: Include except.h
2678         (record_type_list, record_eh_tables): New function.
2679         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
2680
2681 2010-05-10  Jan Hubicka  <jh@suse.cz>
2682
2683         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
2684         __frame_dummy_init_array_entry, force_to_data): Attribute as used
2685         rather than unused.
2686
2687 2010-05-10  Michael Matz  <matz@suse.de>
2688
2689         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
2690         (can_reassociate_p): Use FLOAT_TYPE_P.
2691         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
2692         (vect_force_simple_reduction): ... this.
2693         * tree-parloops.c (gather_scalar_reductions): Use
2694         vect_force_simple_reduction.
2695         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
2696         vect_is_simple_reduction, add modify argument, if true rewrite
2697         "a-b" into "a+(-b)".
2698         (vect_is_simple_reduction, vect_force_simple_reduction): New
2699         functions.
2700         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
2701
2702 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
2703             Vladimir Makarov  <vmakarov@redhat.com>
2704
2705         PR rtl-optimization/44012
2706         * ira-build.c (remove_unnecessary_allocnos): Nullify
2707         regno_allocno_map of the removed allocno.
2708
2709 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2710
2711         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
2712         to /dev/null.
2713         * configure: Regenerate.
2714
2715 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2716
2717         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
2718         unused.
2719         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
2720         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
2721         support in Sun ld.
2722         * configure: Regenerate.
2723
2724 2010-05-10  Richard Guenther  <rguenther@suse.de>
2725
2726         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
2727         marked if the entry identifier is marked.
2728
2729 2010-05-10  Richard Guenther  <rguenther@suse.de>
2730
2731         * c-common.c (struct c_common_attributes): Add fnspec attribute.
2732         (handle_fnspec_attribute): New function.
2733         * gimple.h (gimple_call_return_flags): Declare.
2734         (gimple_call_arg_flags): Likewise.
2735         * gimple.c (gimple_call_arg_flags): New function.
2736         (gimple_call_return_flags): Likewise.
2737         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
2738         New argument flags.
2739         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
2740         return value flags.
2741         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
2742         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
2743         main work to ...
2744         (make_heapvar_for): ... this new function.
2745         (handle_rhs_call): Handle fnspec attribute argument specifiers.
2746         (handle_lhs_call): Likewise.
2747         (find_func_aliases): Adjust.
2748
2749 2010-05-10  Richard Guenther  <rguenther@suse.de>
2750
2751         PR tree-optimization/44050
2752         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
2753
2754 2010-05-10  Wei Guozhi  <carrot@google.com>
2755
2756         PR target/42879
2757         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
2758
2759 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
2760
2761         PR c/10676
2762         * c-typeck.c (lookup_field): Take a type directly.  Update
2763         recursive calls.
2764         (build_component_ref): Update call to lookup_field.
2765         (set_init_label): Use lookup_field to find initialized field.
2766         Handle returned list of fields like a sequence of designators.
2767
2768 2010-05-09  Richard Guenther  <rguenther@suse.de>
2769
2770         PR middle-end/44024
2771         * fold-const.c (tree_single_nonzero_warnv_p): Properly
2772         handle &FUNCTION_DECL.
2773
2774 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
2775
2776         PR c/4784
2777         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
2778         structures and unions recursively.
2779         (detect_field_duplicates): Move duplicate detection with a hash to
2780         detect_field_duplicates_hash.  Always use a hash if anonymous
2781         structures or unions are present.
2782         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
2783         give errors.
2784
2785 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2786
2787         PR target/44046
2788         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
2789         detect Atom, Core 2 and Core i7.
2790
2791 2010-05-09  Richard Guenther  <rguenther@suse.de>
2792
2793         * gcc.c (store_arg): Handle temporary file deletion for
2794         joined arguments.
2795
2796 2010-05-09  Richard Guenther  <rguenther@suse.de>
2797
2798         PR middle-end/44043
2799         * ipa-inline.c (estimate_function_body_sizes): Return after
2800         disregarding inline limits.
2801
2802 2010-05-09  Richard Guenther  <rguenther@suse.de>
2803
2804         * gcc.c (store_arg): Revert last change.
2805
2806 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
2807
2808         PR middle-end/28685
2809         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
2810         (optimize_ops_list): Call it.
2811
2812 2010-05-08  Richard Guenther  <rguenther@suse.de>
2813
2814         PR tree-optimization/44030
2815         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
2816         NECESSARY flag if we propagate from a inserted expression.
2817
2818 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2819
2820         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
2821         domain types as equal if they are both PLACEHOLDER_EXPRs.
2822
2823 2010-05-08  Richard Guenther  <rguenther@suse.de>
2824
2825         * lto-wrapper.c (run_gcc): Remove linker output from
2826         command line for LTRANS invocation.
2827
2828 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
2829
2830         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2831         lto-macho as lto_binary_reader.
2832         * target.h (struct gcc_target): New hooks lto_start and lto_end.
2833         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
2834         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
2835         in lto_start and lto_end calls.
2836         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
2837         magic numbers.
2838         (scan_prog_file): Update is_elf_or_coff call.
2839         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
2840
2841         * collect2.c (main): Fix enum comparison.
2842
2843         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
2844         Add prototypes.
2845         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
2846         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
2847         and TARGET_ASM_LTO_END.
2848         * darwin.c: Include obstack.h and lto-streamer.h.
2849         (lto_section_names_offset, lto_section_names_obstack,
2850         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
2851         global variables.
2852         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
2853         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
2854         to a temporary file.
2855         (darwin_asm_lto_end): New function.  Restore asm_out_file.
2856         (darwin_asm_named_section): For LTO sections, replace the name with
2857         the offset of the section name in a string table, and build this
2858         table.
2859         (darwin_file_start): Initialize global vars for LTO support.
2860         (darwin_file_end): If output to asm_out_file was redirected, append it
2861         to the proper asm_out_file here.  Add the section names section.
2862
2863 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
2864
2865         * c-pragma.c (pending_weak_d, pending_weak): New.
2866         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
2867         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
2868         handle_pragma_weak): Update the uses of pending_weaks.
2869
2870 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2871
2872         PR documentation/44016
2873         * doc/standards.texi (Standards): Link to unversioned
2874         cxx0x_status.html page.
2875
2876 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
2877
2878         PR target/43708
2879         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
2880         in addition to TREE_USED, to avoid "set but unused" warnings.
2881
2882 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2883
2884         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
2885         (is_loop_prefetching_profitable): Do not insert prefetches
2886         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
2887         times the prefetch ahead distance.
2888
2889 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2890
2891         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
2892         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
2893         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
2894         the unroll_factor.
2895
2896 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2897
2898         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
2899         a diagnostic info when the insn-to-mem ratio is too small.
2900
2901 2010-05-07  Richard Guenther <rguenther@suse.de>
2902
2903         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
2904         the linker plugin.
2905         (store_arg): Queue temp_filename for deletion instead of
2906         the whole argument.
2907
2908 2010-05-07  Richard Guenther  <rguenther@suse.de>
2909
2910         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
2911         (run_gcc): Handle LTRANS phase invocation.
2912         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
2913
2914 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
2915
2916         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
2917         this is also meaningful on PARM_DECLs and RESULT_DECLs.
2918
2919 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2920
2921         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
2922
2923 2010-05-07  Richard Guenther  <rguenther@suse.de>
2924
2925         PR tree-optimization/44020
2926         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
2927         code when PRE is not yet initialized.
2928
2929 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2930
2931         * config/mips/dbxmdebug.h: Remove.
2932         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
2933
2934 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
2935
2936         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
2937         with null pointer and also warn about ordered comparison of zero with
2938         pointer if -Wextra.
2939
2940 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2941
2942         * graphite-blocking.c
2943         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
2944         * graphite-clast-to-gimple.c
2945         (clast_to_gcc_expression): Same.
2946         (precision_for_value): Same.
2947         (precision_for_interval): Same.
2948         (gcc_type_for_interval): Same.
2949         (graphite_create_new_guard): Same.
2950         (compute_bounds_for_level): Same.
2951         (graphite_create_new_loop_guard): Same.
2952         * graphite-interchange.c
2953         (build_linearized_memory_access): Same.
2954         (pdr_stride_in_loop): Same.
2955         (memory_strides_in_loop_1): Same.
2956         (memory_strides_in_loop): Same.
2957         (extend_scattering): Same.
2958         (psct_scattering_dim_for_loop_depth): Same.
2959         (pbb_number_of_iterations): Same.
2960         * graphite-poly.h
2961         (debug_iteration_domains): Same.
2962         * graphite-ppl.c
2963         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
2964         (ppl_set_inhomogeneous_gmp): Same.
2965         (ppl_strip_loop): Same.
2966         (ppl_lexico_compare_linear_expressions): Same.
2967         (ppl_read_polyhedron_matrix): Same.
2968         (ppl_max_for_le_pointset): Same.
2969         * graphite-ppl.h
2970         (ppl_read_polyhedron_matrix): Same.
2971         (tree_int_to_gmp): Same.
2972         (gmp_cst_to_tree): Same.
2973         (ppl_set_inhomogeneous): Same.
2974         (ppl_set_inhomogeneous_tree): Same.
2975         (ppl_set_coef): Same.
2976         (ppl_set_coef_tree): Same.
2977         * graphite-sese-to-poly.c
2978         (build_pbb_scattering_polyhedrons): Same.
2979         (build_scop_scattering): Same.
2980         (scan_tree_for_params_right_scev): Same.
2981         (scan_tree_for_params): Same.
2982         (find_params_in_bb): Same.
2983         (find_scop_parameters): Same.
2984         (add_upper_bounds_from_estimated_nit): Same.
2985         (build_loop_iteration_domains): Same.
2986         (add_condition_to_domain): Same.
2987         (pdr_add_memory_accesses): Same.
2988
2989 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2990
2991         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
2992         CLooG's value_* macros to their respective mpz_* counterparts.
2993         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
2994         (graphite_create_new_loop_guard): Same.
2995         * graphite-interchange.c (build_linearized_memory_access): Same.
2996         (pdr_stride_in_loop): Same.
2997         (memory_strides_in_loop_1): Same.
2998         (1st_interchange_profitable_p): Same.
2999         * graphite-poly.c (extend_scattering): Same.
3000         (psct_scattering_dim_for_loop_depth): Same.
3001         (pbb_number_of_iterations): Same.
3002         (pbb_number_of_iterations_at_time): Same.
3003         * graphite-poly.h (new_1st_loop): Same.
3004         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
3005         (oppose_constraint): Same.
3006         (insert_constraint_into_matrix): Same.
3007         (ppl_set_inhomogeneous_gmp): Same.
3008         (ppl_set_coef_gmp): Same.
3009         (ppl_strip_loop): Same.
3010         (ppl_lexico_compare_linear_expressions): Same.
3011         (ppl_max_for_le_pointset): Same.
3012         (ppl_min_for_le_pointset): Same.
3013         (ppl_build_realtion): Same.
3014         * graphite-ppl.h (gmp_cst_to_tree): Same.
3015         (ppl_set_inhomogeneous): Same.
3016         (ppl_set_inhomogeneous_tree): Same.
3017         (ppl_set_coef): Same.
3018         (ppl_set_coef_tree): Same.
3019         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
3020         (build_scop_scattering): Same.
3021         (add_value_to_dim): Same.
3022         (scan_tree_for_params_right_scev): Same.
3023         (scan_tree_for_params_int): Same.
3024         (scan_tree_for_params): Same.
3025         (find_params_in_bb): Same.
3026         (find_scop_parameters): Same.
3027         (add_upper_bounds_from_estimated_nit): Same.
3028         (build_loop_iteration_domains): Same.
3029         (create_linear_expr_from_tree): Same.
3030         (add_condition_to_domain): Same.
3031         (pdr_add_memory_accesses): Same.
3032
3033 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
3034             Jason Merrill  <jason@redhat.com>
3035
3036         * c-common.c (c_common_reswords): Add nullptr.
3037         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
3038         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
3039         (gen_type_die_with_usage): Likewise.
3040         * dbxout.c (dbxout_type): Likewise.
3041         * sdbout.c (plain_type_1): Likewise.
3042
3043 2010-05-06  Jason Merrill  <jason@redhat.com>
3044
3045         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
3046         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
3047         ret appropriately.
3048         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
3049
3050         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
3051         stripping WITH_SIZE_EXPR.
3052         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
3053         change.
3054
3055 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3056
3057         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
3058         list of obsolete configurations.
3059         Disabled check for obsolete configurations.
3060         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
3061         Removed support for previous versions.
3062         * config/mips/iris.h: Removed.
3063         * config/mips/iris5.h: Removed.
3064         * config/mips/iris6.h: Merged old iris.h contents.
3065         (TARGET_IRIX): Removed.
3066         (DRIVER_SELF_SPECS): Removed mabi=32.
3067         (IDENT_ASM_OP): Removed undef.
3068         (STARTFILE_SPEC): Removed mabi=32.
3069         (ENDFILE_SPEC): Likewise.
3070         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
3071         (MACHINE_TYPE): Update for IRIX 6.5.
3072         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
3073         TARGET_IRIX by TARGET_IRIX6.
3074         (mips_file_start): Likewise.
3075         (mips_output_external): Remove IRIX 5/6 O32 support.
3076         (mips_output_function_prologue): Likewise.
3077         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
3078         TARGET_IRIX6.
3079         (TARGET_CPU_CPP_BUILTINS): Likewise.
3080         (TARGET_IRIX): Removed.
3081         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
3082         (MULTILIB_DIRNAMES): Removed 32.
3083         (MULTILIB_OSDIRNAMES): Removed ../lib.
3084         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
3085         (Specific, mips-sgi-irix5): Document removal.
3086         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
3087         Remove references to older IRIX 6 releases and the O32 ABI.
3088
3089 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
3090
3091         PR bootstrap/43994
3092         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
3093         instead of DF_REF_REAL_REG.
3094
3095 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
3096
3097         PR target/43888
3098         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
3099         handling to still return true for x64 targets.
3100
3101 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3102
3103         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
3104
3105 2010-05-06  Jan Hubicka  <jh@suse.cz>
3106
3107         PR tree-optimization/43791
3108         * ipa-inline.c (update_caller_keys): Remove bogus
3109         disregard_inline_limits check.
3110
3111 2010-05-06  Michael Matz  <matz@suse.de>
3112
3113         PR tree-optimization/43984
3114         * tree-ssa-pre.c (inserted_phi_names): Remove.
3115         (inserted_exprs): Change to bitmap.
3116         (create_expression_by_pieces): Set bits, don't append to vector.
3117         (insert_into_preds_of_block): Don't handle inserted_phi_names.
3118         (eliminate): Don't look at inserted_phi_names, remove deleted
3119         insns from inserted_exprs.
3120         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
3121         (init_pre, fini_pre): Allocate and free bitmaps.
3122         (execute_pre): Insert insns on edges before elimination.
3123
3124 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3125
3126         * tree.c (initializer_zerop): Handle STRING_CST.
3127
3128 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3129
3130         PR 40989
3131         * doc/invoke.texi (Wimplicit): Document as C only.
3132         * opts.c (common_handle_option): Add argument kind.
3133         (handle_option): Rename as read_cmdline_option. Factor out code to...
3134         (handle_option): ... here. New.
3135         (handle_options): Rename as read_cmdline_options.
3136         (decode_options): Update call.
3137         (set_option): Use option index instead of option pointer. Classify
3138         diagnostics correctly.
3139         (enable_warning_as_error): Call handle_option.
3140         * opts.h (set_option): Update declaration.
3141         (handle_option): Declare.
3142         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
3143         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
3144         * c-opts.c (set_Wimplicit): Delete.
3145         (c_family_lang_mask): New static constant.
3146         (c_common_handle_option): Add argument kind. Use handle_option
3147         instead of set_Wimplicit.
3148         (c_common_post_options): warn_implicit and warn_implicit_int
3149         are disabled by default.
3150         * c-common.c (warn_implicit): Do not define here.
3151         * c-common.h (warn_implicit): Do not declare here.
3152         (c_common_handle_option): Update declaration.
3153         * lto-opts.c (lto_reissue_options): Update call to set_option.
3154
3155 2010-05-06  Richard Guenther  <rguenther@suse.de>
3156
3157         PR tree-optimization/43571
3158         * domwalk.c (walk_dominator_tree): Walk the dominator
3159         sons in more optimal order.
3160
3161 2010-05-06  Richard Guenther  <rguenther@suse.de>
3162
3163         PR tree-optimization/43934
3164         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
3165         (stmt_cost): Likewise.
3166         (extract_true_false_args_from_phi): New helper.
3167         (determine_max_movement): For PHI nodes verify we can hoist them
3168         and compute their cost.
3169         (determine_invariantness_stmt): Handle PHI nodes.
3170         (move_computations_stmt): Likewise.  Hoist PHI nodes in
3171         if-converted form using COND_EXPRs.
3172         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
3173         (tree_ssa_lim): Likewise.
3174         * tree-flow.h (tree_ssa_lim): Adjust prototype.
3175         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
3176
3177 2010-05-06  Richard Guenther  <rguenther@suse.de>
3178
3179         PR tree-optimization/43987
3180         * tree-ssa-structalias.c (could_have_pointers): For possibly
3181         address-taken variables force pointers to be recorded.
3182         (create_variable_info_for_1): Likewise.
3183         (push_fields_onto_fieldstack): Pass in wheter all fields
3184         must have pointers.
3185         (find_func_aliases): Query types instead of vars whether
3186         they contain pointers where appropriate.
3187
3188 2010-05-06  Jan Hubicka  <jh@suse.cz>
3189
3190         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
3191         (record_reference, mark_address, mark_load, mark_store): Record
3192         references.
3193         (record_references_in_initializer): Update call of record_references.
3194         (rebuild_cgraph_edges): Remove all references before rebuiding.
3195         * cgraph.c (cgraph_create_node): Clear ref list.
3196         (cgraph_remove_node): Remove references.
3197         (dump_cgraph_node): Dump references.
3198         (cgraph_clone_node): Clone references.
3199         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
3200         (struct cgraph_node, varpool_node): Add ref_lst.
3201         * ipa-ref.c: New file.
3202         * ipa-ref.h: New file.
3203         * ipa-ref-inline.h: New file.
3204         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
3205         (referenced_from_other_partition_p): New function.
3206         (lto_output_varpool_node): Take set arugment; call
3207         referenced_from_other_partition.
3208         (lto_output_ref): New.
3209         (add_references): New.
3210         (output_refs): New.
3211         (output_cgraph): Compute boundary based on references; output refs.
3212         (output_varpool): Accept cgraph_node_set argument.
3213         (input_ref): New.
3214         (input_refs): New.
3215         (input_cgraph): Call input_refs.
3216         * lto-section-in.c (lto_section_name): Add refs.
3217         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
3218         (ipa-ref.o): New file.
3219         * varpool.c (varpool_node): Clear ipa ref list.
3220         (varpool_remove_node): Remove references.
3221         (dump_varpool_node): Dump references.
3222         (varpool_assemble_decl): Only compile finalized ones.
3223         (varpool_extra_name_alias): Initialize ref list.
3224         * lto-streamer.c (lto-get_section_name): Add .refs section.
3225         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
3226         (referenced_from_other_partition_p): Declared.
3227
3228 2010-05-06  Ira Rosen  <irar@il.ibm.com>
3229
3230         PR tree-optimization/43901
3231         * tree-vect-stmts.c (vectorizable_call): Assert that vector
3232         type is not NULL if it's transformation phase, and return
3233         FALSE if it's analysis.
3234         (vectorizable_conversion, vectorizable_operation,
3235         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
3236
3237 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
3238
3239         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3240         Delete.
3241         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3242         New define.
3243         * config/mips/mips-protos.h
3244         (mips_small_register_classes_for_mode_p): Delete prototype.
3245
3246 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
3247
3248         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
3249         * config/arm/arm.c (multiple_operation_profitable_p,
3250         compute_offset_order): New static functions.
3251         (load_multiple_sequence, store_multiple_sequence): Use them.
3252         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
3253         memory offsets, not register numbers.
3254         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
3255
3256 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
3257
3258         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
3259         (get_pending_sizes, put_pending_size, put_pending_sizes):
3260         Update the uses of pending_sizes.
3261         * c-decl.c (store_parm_decls): Likewise.
3262         * c-tree.h (struct c_arg_info): Likewise.
3263         * tree.h: Update the prototype for get_pending_sizes and
3264         put_pending_sizes.
3265
3266 2010-05-05  Jason Merrill  <jason@redhat.com>
3267
3268         PR debug/43370
3269         * c-common.c (handle_aligned_attribute): Respect
3270         ATTR_FLAG_TYPE_IN_PLACE.
3271
3272         PR testsuite/43758
3273         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
3274         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3275         (TARGET_INITIALIZER): Use it.
3276         * c-common.c (attribute_takes_identifier_p): Call it.
3277         * c-common.h: Update prototype.
3278         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
3279         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3280
3281 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
3282
3283         PR debug/43950
3284         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
3285         DW_ID_down_case for Fortran compilation units.
3286
3287 2010-05-05  Jan Hubicka  <jh@suse.cz>
3288
3289         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
3290         handle aliases.
3291
3292 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
3293
3294         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
3295         a variable-sized RESULT_DECL.
3296
3297 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
3298
3299         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
3300
3301 2010-05-05  Jason Merrill  <jason@redhat.com>
3302
3303         PR c++/43787
3304         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
3305         returns GS_OK.
3306         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
3307
3308 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
3309             Jakub Jelinek  <jakub@redhat.com>
3310
3311         PR debug/43478
3312         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
3313         (dead_debug_init, dead_debug_finish): New functions.
3314         (dead_debug_add, dead_debug_insert_before): Likewise.
3315         (df_note_bb_compute): Initialize a dead_debug object, add dead
3316         debug uses to it, insert debug bind insns before death insns,
3317         reset debug insns that refer to pending uses at the end.
3318         * rtl.h (make_debug_expr_from_rtl): New prototype.
3319         * varasm.c (make_debug_expr_from_rtl): New function.
3320
3321 2010-05-05  Jan Hubicka  <jh@suse.cz>
3322
3323         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
3324         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
3325         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
3326         lto_varpool_encoder_deref, lto_varpool_encoder_size,
3327         lto_varpool_encoder_encode_initializer_p,
3328         lto_set_varpool_encoder_encode_initializer): New functions.
3329         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
3330         call output_varpool.
3331         (input_varpool_node): Do not always set analyzed.
3332         (input_cgraph_1): Return vector of cgraph nodes.
3333         (input_varpool_1): Return vector of varpools.
3334         (input_cgraph): Free the vectors.
3335         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
3336         output only initializers needed.
3337         (lto_output): Only call output_cgraph.
3338         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
3339         * lto-section-out.c (lto_new_out_decl_state): Initialize
3340         state->varpool_node_encoder.
3341         * lto-streamer.h (lto_varpool_encoder_d): New.
3342         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
3343         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
3344         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
3345         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
3346         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
3347         Declare.
3348         (output_varpool, input_varpool): Remove declarations.
3349
3350 2010-05-05  Jan Hubicka  <jh@suse.cz>
3351
3352         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
3353         with body can prevail.
3354
3355 2010-05-05  Jan Hubicka  <jh@suse.cz>
3356
3357         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
3358         size.
3359
3360 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3361
3362         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
3363
3364         * gengtype.h (erro_at_line): Constify pos argument.
3365
3366         * gengtype.c: Include hashtab.h.
3367         (enum gc_used): Document GC_MAYBE_POINTED_TO.
3368         (error_at_line): Constify pos argument.
3369         (do_typedef): Initialize p->opt field.
3370         (get_file_gtfilename): Fix comment typo.
3371         (struct walk_type_data): Constify line field.
3372         (get_output_file_for_structure): New function.
3373         (write_local_func_for_structure): Constify orig_s argument.
3374         Use get_output_file_for_structure.
3375         (write_func_for_structure): Use get_output_file_for_structure.
3376         (INDENT): New define.
3377         (dump_pair, dump_type, dump_type_list, dump_typekind)
3378         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
3379         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
3380         functions.
3381         (seen_types): New variable.
3382         (main): New variable do_dump.  Process "-d" command line option.
3383         Call dump_everything if dump requested.
3384
3385 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
3386
3387         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
3388         in a temporary instead of invoking the macro multiple times.
3389         (track_expr_p): Likewise.
3390
3391 2010-05-04  Neil Vachharajani <nvachhar@google.com>
3392
3393         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
3394         per new semantics.
3395         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
3396         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
3397         conditions for printing notes.
3398         * common.opt (-Wcoverage-mismatch): Allow negative, default to
3399         true, update documentation.
3400         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
3401
3402 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
3403
3404         PR c/43981
3405         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
3406         on dimen.
3407