OSDN Git Service

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