final.c (rest_of_clean_state): Use %m in errors instead of strerror (errno).
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
2
3         * final.c (rest_of_clean_state): Use %m in errors instead of
4         strerror (errno).
5         * gengtype.c (read_input_list, close_output_files): Use xstrerror
6         instead of strerror.
7         * toplev.c (process_options): Use %m in errors instead of strerror
8         (errno).
9         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
10         (errno).
11
12 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
13
14         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
15         (ix86_canonical_va_list_type): Make static.  Add declaration.
16         (ix86_enum_va_list): Make static.  Reindent.
17         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
18         (ix86_canonical_va_list_type): Ditto.
19         (ix86_enum_va_list): Ditto.
20
21 2010-05-28  Richard Guenther  <rguenther@suse.de>
22
23         * lto-wrapper.c (run_gcc): With -save-temps generate a
24         user-visible ltrans filename.  Fixup ltrans unit numbering.
25
26 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
27
28         * c-common.c (c_common_nodes_and_builtins): Replace use
29         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
30         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
31         to ix86_enum_va_list.
32         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
33         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
34         (TARGET_ENUM_VA_LIST_P): Add hook description.
35         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
36         * target.h (gcc_target): Add enum_va_list hook.
37
38         PR bootstrap/44299
39         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
40         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
41         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
42
43 2010-05-28  Alan Modra  <amodra@gmail.com>
44
45         PR target/44266
46         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
47         emit_library_call machinery to set up __tls_get_addr calls.
48
49 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
50
51         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
52
53 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
54
55         revert fix for PR c++/44188
56         * c-common.c (is_typedef_decl): Revert the moving of  this
57         definition ...
58         * tree.c (is_typedef_decl): ... here.
59         (typdef_variant_p): Revert the moving of this  definition
60         here from gcc/cp/tree.c.
61         * c-common.h (is_typedef_decl): Revert the moving of this
62         declaration ...
63         * tree.h (is_typedef_decl): ... here.
64         (typedef_variant_p): Revert the moving of this  declaration here
65         from gcc/cp/cp-tree.h
66         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
67         (gen_tagged_type_die): Revert the splitting out of ...
68         (gen_type_die_with_usage): ... this function. Revert the anonymous
69         tagged type handling.
70         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
71         typedefs naming anonymous tagged types.
72
73
74 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
75
76         * config/rs6000/rs6000-modes.def (PSImode): Delete.
77
78 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
79
80         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
81         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
82         throughout.
83         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
84         "xer" to "ca".
85         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
86         XER_REGS to CA_REGS throughout.
87         * config/rs6000/rs6000.h: Same.
88         (ADDITIONAL_REGISTER_NAMES): Add "xer".
89         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
90         that mode_iterator "P" is the size for arithmetic carries as well.
91         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
92
93 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
94
95         PR bootstrap/44255
96         * combine.c (struct rtx_subst_pair): Define unconditionally.
97         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
98         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
99         Call make_compound_operation on pair->to.
100         (propagate_for_debug): Don't call make_compound_operation here.
101         Always use simplify_replace_fn_rtx.
102
103 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
104
105         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
106         * config/xtensa/xtensa.c (override_options): Check
107           TARGET_FORCE_NO_PIC and set flag_pic.
108         * config/xtensa/xtensa.opt: Document -mforce-no-pic
109
110 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
111
112         PR bootstrap/44299
113         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
114         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
115
116 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
117
118         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
119         toplev.h.
120         * diagnostic.c: Don't include toplev.h.
121         (progname): Define.  Moved from toplev.c.
122         (seen_error): New function.
123         * diagnostic.h: Include diagnostic-core.h.
124         (diagnostic_t, emit_diagnostic): Don't declare here.
125         * toplev.c (progname): Move to toplev.c.
126         (emit_debug_global_declarations, compile_file, finalize,
127         do_compile, toplev_main): Use seen_error.
128         * toplev.h: Include diagnostic-core.h.
129         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
130         internal_error, warning, warning_at, error, error_n, error_at,
131         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
132         verbatim, fnotice, progname): Move to diagnostic-core.h.
133         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
134         (expand_builtin_expect): Use seen_error.
135         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
136         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
137         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
138         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
139         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
140         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
141         errorcount for errors.
142         * c-opts.c (c_common_finish): Use seen_error.
143         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
144         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
145         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
146         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
147         (get_coverage_counts): Use seen_error.
148         * dwarf2out.c (dwarf2out_finish): Use seen_error.
149         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
150         gimplify_body): Use seen_error.
151         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
152         * ipa-pure-const.c (gate_pure_const): Use seen_error.
153         * ipa-reference.c (gate_reference): Use seen_error.
154         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
155         * lambda-code.c: Include diagnostic-core.h instead of
156         diagnostic.h.
157         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
158         * lto-compress.c: Include diagnostic-core.h instead of
159         diagnostic.h.
160         * lto-section-in.c: Include diagnostic-core.h instead of
161         diagnostic.h.
162         * lto-streamer-out.c: Include diagnostic-core.h instead of
163         diagnostic.h.
164         * lto-streamer.c: Include diagnostic-core.h instead of
165         diagnostic.h.
166         (gate_lto_out): Use seen_error.
167         * matrix-reorg.c: Include diagnostic-core.h instead of
168         diagnostic.h.
169         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
170         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
171         (gate_expand_omp, lower_omp_1): Use seen_error.
172         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
173         (rest_of_decl_compilation, rest_of_type_compilation,
174         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
175         * tree-cfg.c (label_to_block_fn): Use seen_error.
176         * tree-inline.c (optimize_inline_calls): Use seen_error.
177         * tree-mudflap.c (mudflap_finish_file): Use
178         seen_error.
179         * tree-optimize.c (gate_all_optimizations,
180         gate_all_early_local_passes, gate_all_early_optimizations): Use
181         seen_error.
182         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
183         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
184         (varpool_remove_unreferenced_decls,
185         varpool_assemble_pending_decls): Use seen_error.
186         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
187         (TOPLEV_H, DIAGNOSTIC_H): Update.
188         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
189         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
190         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
191         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
192         coverage.o, lambda-code.o): Update dependencies.
193
194 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
195
196         PR c++/44188
197         * c-common.c (is_typedef_decl): Move this definition ...
198         * tree.c (is_typedef_decl): ... here.
199         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
200         * c-common.h (is_typedef_decl): Move this declaration ...
201         * tree.h (is_typedef_decl): ... here.
202         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
203         * dwarf2out.c (is_naming_typedef_decl): New function.
204         (gen_tagged_type_die): Split out of ...
205         (gen_type_die_with_usage): ... this function. When an anonymous
206         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
207         is emitted for the typedef.
208         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
209         anonymous tagged types.
210
211 2010-05-27  Jason Merrill  <jason@redhat.com>
212
213         * print-tree.c (debug_vec_tree): New fn.
214         (print_vec_tree): New fn.
215         * tree.h: Declare them.
216         * gdbinit.in (pvt): New command.
217
218         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
219
220         * gdbinit.in (pdd): New command.
221
222 2010-05-27  Jan Hubicka  <jh@suse.cz>
223
224         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
225         (update_caller_keys): Return early if there are no callers;
226         only update fibheap when decresing the key.
227         (update_callee_keys): Avoid recursion.
228         (decide_inlining_of_small_functions): When badness does not match;
229         re-insert into fibheap.
230
231 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
232
233         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
234         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
235         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
236         (ALL_HOST_OBJS): Now a union of the above two.
237         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
238         all files in ALL_HOST_FRONTEND_OBJS.
239         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
240
241         * c-common.c: Pretend to be a backend file by undefining
242         IN_GCC_FRONTEND (still need rtl.h here).
243
244 2010-05-27  Jan Hubicka  <jh@suse.cz>
245
246         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
247         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
248
249 2010-05-27  Jan Hubicka  <jh@suse.cz>
250
251         * sched-ebb.c: Rename struct deps to struct deps_desc.
252         * ddg.c: Likewise.
253         * sel-sched-ir.c: Likewise.
254         * sched-deps.c: Likewise.
255         * sched-int.h: Likewise.
256         * sched-rgn.c: Likewise.
257
258 2010-05-27  Jon Beniston <jon@beniston.com>
259
260         PR 43726
261         * config/lm32/lm32.h: Remove definition of 
262         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
263
264 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
265
266         PR lto/44230
267         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
268
269 2010-05-27  Richard Guenther  <rguenther@suse.de>
270
271         PR tree-optimization/44284
272         * tree-vect-stmts.c (vectorizable_assignment): Handle
273         sign-changing conversions as simple copy.
274
275 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
276
277         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
278         Bionic C library.
279         (__gthread_active_p): Check for pthread_create if compiling against
280         Bionic C library.
281
282 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
283
284         Support compilation for Android platform.  Reimplement -mandroid.
285
286         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
287         (*android*): Set ANDROID_DEFAULT.
288         (arm*-*-linux*): Include linux-android.h.
289         (arm*-*-eabi*): Don't include previous -mandroid implementation.
290         * config/arm/eabi.h: Remove, move Android-specific parts ...
291         * config/linux-android.h: ... here.  New file.
292         * config/arm/eabi.opt: Rename to ...
293         * config/linux-android.opt: ... this.
294         (mandroid): Allow -mno-android option.  Initialize based on
295         ANDROID_DEFAULT.
296         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
297         Move logic to corresponding LINUX_TARGET_* macros.
298         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
299         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
300         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
301         Android definitions.
302         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
303         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
304         Document.
305
306 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
307
308         Add support for Bionic C library
309
310         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
311         macro.
312         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
313         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
314
315         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
316         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
317         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
318         to support multiple C libraries.  Handle Bionic.
319         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
320         (BIONIC_DYNAMIC_LINKER64): Define.
321         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
322         Update.
323         (TARGET_HAS_SINCOS): Enable for Bionic.
324
325         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
326         the last option specified on command line take effect.
327         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
328         (mbionic): New.
329         (mglibc, muclibc): Update.
330
331         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
332         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
333         DEFAULT_LIBC.
334
335         * doc/invoke.texi (-mglibc, -muclibc): Update.
336         (-mbionic): Document.
337
338 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
339
340         * c-common.h (c_register_addr_space): Add prototype.
341         (ADDR_SPACE_KEYWORD): Remove.
342         * c-common.c (c_register_addr_space): New function.
343         (c_addr_space_name): Reimplement.
344         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
345
346         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
347         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
348
349         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
350         Remove TARGET_ADDR_SPACE_KEYWORDS.
351
352 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
353
354         * input.c: New file.
355         * input.h (main_input_filename): Move declaration to toplev.h.
356         * toplev.c (input_location, line_table): Move to input.c
357         * toplev.h (main_input_filename): Move declaration from input.h.
358         * tree.c (expand_location): Move to input.c.
359         * Makefile.in (OBJS-common): Add input.o.
360         (input.o): Add dependencies.
361
362 2010-05-27  Richard Guenther  <rguenther@suse.de>
363
364         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
365         for non-existant files.
366         (fork_execute): Mark args_name file as deleted.
367
368 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
369
370         PR bootstrp/44287
371         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
372         (narrow_signed_type): Likewise.
373
374 2010-05-26  Jan Hubicka  <jh@suse.cz>
375
376         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
377         edge only when checking is enabled; check using former_clone_of;
378         check inline clones too.
379         (cgraph_materialize_clone): Record former_clone_of pointer.
380         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
381         combining redirections; dump args_to_skip bitmap
382         (cgraph_materialize_all_clones): Do no redirection here.
383         * ipa-inline.c (inline_transform): Do redirection here.
384         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
385         cheking only).
386
387 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
388
389         * config/avr/avr-c.c: Do not include regs.h.
390         Include cpplib.h for cpp_define and tree.h for c-common.h.
391         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
392         * config/avr/t-avr: Fix dependencies for avr-c.o.
393
394 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
395
396         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
397         string instead of SYMBOL_REF rtx.
398         * rtl.h (set_stack_check_libfunc): Move prototype from here...
399         * libfuncs.h: ...to here.  Adjust for explow.c change.
400
401 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
402
403         * pretty-print.c: Don't include ggc.h.
404         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
405         (identifier_to_locale): Use them for allocation.
406         * pretty-print.h (identifier_to_locale_alloc,
407         identifier_to_locale_free): Declare.
408         * toplev.c (alloc_for_identifier_to_locale): New.
409         (general_init): Set identifier_to_locale_alloc and
410         identifier_to_locale_free.
411         * Makefile.in (pretty-print.o): Update dependencies.
412
413 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
414
415         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
416         pointer types if they have different alignment or mode.
417
418 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
419
420         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
421         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
422         * config/sparc/sparc-protos.h (function_value): Remove declaration.
423         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
424         sparc_function_value_regno_p): New functions.
425         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
426         TARGET_FUNCTION_VALUE_REGNO_P): Define.
427         (function_value): Rename to...
428         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
429         argument to 'outgoing'.
430         (function_arg_record_value, function_arg_union_value,
431         function_arg_vector_value): Update comment.
432
433 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
434
435         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
436         (fde_needed_for_eh_p): New predicate.
437         (output_call_frame_info): Use it throughout to decide whether FDEs
438         are needed for EH purpose.
439         (dwarf2out_begin_prologue): Reorder assignments.
440
441 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
442
443         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
444         special case loop->header.
445         (is_predicated): New.
446         (if_convertible_loop_p): Call it.
447
448 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
449
450         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
451         iterator in parameter.  Do not generate code during the analysis.
452         (tree_if_convert_cond_stmt): Removed.
453         (tree_if_convert_stmt): Removed.
454         (predicate_bbs): New.
455         (if_convertible_loop_p): Call predicate_bbs.
456         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
457         now contains all the analysis part.
458
459 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
460
461         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
462         statements in the analysis part.
463         (tree_if_convert_stmt): Update comment.
464         (remove_conditions_and_labels): New.
465         (combine_blocks): Call remove_conditions_and_labels.
466         (tree_if_conversion): Update comment.
467
468 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
469
470         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
471         than 2 predecessors or more than 2 successors.
472
473 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
474
475         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
476         of loops in which the data dependence analysis fails.
477
478 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
479
480         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
481         CDI_POST_DOMINATORS.
482         (tree_if_conversion): Same.
483
484 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
485
486         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
487
488 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
489
490         * tree-if-conv.c: Update copyright years.  Fix comments.
491         Fix indentation.
492
493 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
494
495         * builtin-types.def (BT_INT128): New primitive type.
496         (BT_UINT128): Likewise.
497         * c-common.c (c_common_r): Add __int128 keyword.
498         (c_common_type_for_size): Handle __int128.
499         (c_common_type_for_mode): Likewise.
500         (c_common_signed_or_unsigned_type): Likewise.
501         (c_common_nodes_and_builtins): Add builtin type
502         if target supports 128-bit integer scalar.
503         * c-common.h (enum rid): Add RID_INT128.
504         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
505         if target supports 128-bit integer scalar.
506         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
507         (finish_declspecs): Likewise.
508         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
509         (c_token_starts_declspecs): Likewise.
510         (c_parser_declspecs): Likewise.
511         (c_parser_attributes): Likewise.
512         (c_parser_objc_selector): Likewise.
513         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
514         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
515         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
516         * tree.c (make_or_reuse_type): Likewise.
517         (make_unsigned_type): Likewise.
518         (build_common_tree_nodes_2): Likewise.
519         * tree.h (enum integer_type_kind): Add itk_int128 and
520         itk_unsigned_int128.
521         (int128_integer_type_node): New define.
522         (int128_unsigned_type_node): New define.
523         * doc/extend.texi: Add documentation about __int128 type.
524
525 2010-05-26  Richard Guenther  <rguenther@suse.de>
526
527         * tree-ssa-sccvn.c (copy_nary): Adjust.
528         (copy_phis): Rename to ...
529         (copy_phi): ... this.  Adjust.
530         (copy_references): Rename to ...
531         (copy_reference): ... this.  Adjust.
532         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
533         result into the valid table.
534
535 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
536
537         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
538         insn-config.h, insn-codes.h, recog.h, and optabs.h.
539
540 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
541
542         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
543
544 2010-05-26  Richard Guenther  <rguenther@suse.de>
545
546         * opts.c (common_handle_option): Handle OPT_Ofast.
547
548 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
549
550         * diagnostic.c: Don't include opts.h.
551         (permissive_error_option): Define.
552         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
553         for classify_diagnostic.  Don't use memset for
554         classify_diagnostic.  Initialize new and recently added fields.
555         (diagnostic_classify_diagnostic): Use context->n_opts instead of
556         N_OPTS.
557         (diagnostic_report_diagnostic): Pass context parameter to
558         diagnostic_report_warnings_p.  Use option_enabled and option_name
559         hooks from context.
560         (emit_diagnostic): Use permissive_error_option.
561         (permerror): Likewise.
562         * diagnostic.h: Don't include options.h.
563         (struct diagnostic_context): Add n_opts, opt_permissive,
564         inhibit_warnings, warn_system_headers, option_enabled and
565         option_name fields.  Change classify_diagnostic to a pointer.
566         * opts-diagnostic.h: New file.
567         * opts.c: Include opts-diagnostic.h.
568         (common_handle_option): Set global_dc fields for -Wfatal-errors,
569         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
570         (option_name): New function.
571         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
572         (c_common_handle_option): Set global_dc->permissive for
573         -fpermissive.
574         * c-common.c (c_cpp_error): Save and restore
575         global_dc->warn_system_headers, not variable warn_system_headers.
576         * toplev.c: Include opts-diagnostic.h.
577         (general_init): Update call to diagnostic_initialize.  Set
578         global_dc->show_column, global_dc->option_enabled and
579         global_dc->option_name.
580         (process_options): Don't set global_dc fields here.
581         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
582         (diagnostic.o, opts.o, toplev.o): Update dependencies.
583
584 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
585
586         * config/picochip/picochip.md (movsi): Split a movsi from a
587         const after reload.
588
589 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
590
591         * ggc-zone.c: Update copyright year.
592         (poison_region): Mark memory for Valgrind as undefined before
593         memset () call and inaccessible afterwards.
594         (ggc_pch_total_size): Change type of i to int.
595
596 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
597
598         * ggc-common.c (ggc_free_overhead): Allow empty slot.
599
600 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
601
602         * ggc-common.c: Update copyright year.
603         (ggc_rlimit_bound): Remove prototype.  Compile only if
604         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
605         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
606         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
607         (ggc_min_heapsize_heuristic): Likewise.
608
609 2010-05-26  Richard Guenther  <rguenther@suse.de>
610
611         PR rtl-optimization/44164
612         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
613         no-common access-path disambiguation.
614         (indirect_ref_may_alias_decl_p): Adjust.
615         (indirect_refs_may_alias_p): Likewise.
616         (refs_may_alias_p_1): Likewise.
617
618 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
619
620         * c-typeck.c: Do not include expr.h.
621
622 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
623
624         * rtl.h (decl_default_tls_model): Move prototype from here...
625         * output.h: ...to here.
626         * c-decl.c: Do not include rtl.h.
627         * c-pragma.c: Likewise.
628         * c-parser.c: Likewise.
629         * c-gimplify.c: Likewise.  And also not hard-reg-set.
630         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
631         FIXME note for it.  Add a FIXME note for expr.h.
632         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
633         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
634         defined.
635
636 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
637
638         PR target/44199
639         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
640         or total_size is larger than red zone size for non-V4 ABI, emit a
641         stack_tie resp. frame_tie insn before stack pointer restore.
642         * config/rs6000/rs6000.md (frame_tie): New insn.
643
644 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
645
646         * function.h (struct function): Add can_throw_non_call_exceptions bit.
647         * lto-streamer-in.c (input_function): Stream it in.
648         * lto-streamer-out.c (output_function): Stream it out.
649         * function.c (allocate_struct_function): Set it.
650         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
651         for flag_non_call_exceptions.
652         * cfgbuild.c (control_flow_insn_p): Likewise.
653         (make_edges): Likewise.
654         * cfgexpand.c (expand_stack_alignment): Likewise.
655         * combine.c (distribute_notes): Likewise.
656         * cse.c (cse_extended_basic_block): Likewise.
657         * except.c (insn_could_throw_p): Likewise.
658         * gcse.c (simple_mem): Likewise.
659         * ipa-pure-const.c (check_call): Likewise.
660         (check_stmt ): Likewise.
661         * lower-subreg.c (lower-subreg.c): Likewise.
662         * optabs.c (emit_libcall_block): Likewise.
663         (prepare_cmp_insn): Likewise.
664         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
665         * postreload.c (rest_of_handle_postreload): Likewise.
666         * reload1.c (reload_as_needed): Likewise.
667         (emit_input_reload_insns): Likewise.
668         (emit_output_reload_insns): Likewise.
669         (fixup_abnormal_edges): Likewise.
670         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
671         * store-motion.c (find_moveable_store): Likewise.
672         * tree-eh.c (stmt_could_throw_p): Likewise.
673         (tree_could_throw_p): Likewise.
674         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
675         * config/arm/arm.c (arm_expand_prologue): Likewise.
676         (thumb1_expand_prologue): Likewise.
677         * config/rx/rx.md (cbranchsf4): Likewise.
678         (cmpsf): Likewise.
679         * config/s390/s390.c (s390_emit_prologue): Likewise.
680         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
681         (inline_forbidden_into_p): New predicate.
682         (expand_call_inline): Use it to forbid inlining.
683         (tree_can_inline_p): Likewise.
684
685 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
686
687         * config/i386/i386-c.c: Do not include rtl.h.
688         * config/i386/t-i386: Update dependencies.
689
690 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
691
692         * attribs.c: Do not include rtl.h.
693         * Makefile.in: Update dependencies.
694
695 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
696
697         * double-int.h (double_int_and): New.
698         * combine.c (try_combine): Clean up, use double_int_* and
699         immed_double_int_const functions.
700
701 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
702
703         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
704         stderr to /dev/null instead of grep -q.
705         * configure: Regenerate.
706
707 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
708
709         * Makefile.in (EXCEPT_H): Fix typo.
710
711 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
712
713         * ira-build.c (update_conflict_hard_reg_costs): New.
714         (ira_build): Call update_conflict_hard_reg_costs.
715
716 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
717
718         PR debug/41371
719         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
720         ENABLE_CHECKING.
721         (intersect_loc_chains): Walk the s2var's loc_chain together
722         with s1node chain as long as the locations are equal, don't
723         call find_loc_in_1pdv in that case.
724
725         PR debug/42801
726         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
727         (copy_bind_expr): ... instead of here.
728         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
729         if the block hasn't been remapped.
730         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
731         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
732
733 2010-05-25  Richard Guenther  <rguenther@suse.de>
734
735         PR middle-end/44069
736         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
737         out-of-bounds array accesses.
738
739 2010-05-25  Richard Guenther  <rguenther@suse.de>
740
741         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
742         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
743         (run_gcc): Re-organize to make cleanup easier.
744
745 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
746
747         * config/s390/s390.c (optimization_options): Fix and move the
748         flag_prefetch_loop_arrays override ...
749         (override_options): ... here.
750
751 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
752
753         * diagnostic.c: Don't include plugin.h.
754         (diagnostic_report_diagnostic): Don't handle plugins specially
755         here.  Pass context to internal_error callback.
756         * diagnostic.h (struct diagnostic_context): Add context parameter
757         to internal_error callback.
758         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
759         * plugin.h (struct diagnostic_context): Declare.
760         (warn_if_plugins, plugins_internal_error_function): Declare.
761         * toplev.c (general_init): Set global_dc->internal_error.
762         * Makefile.in (diagnostic.o): Update dependencies.
763
764 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
765
766         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
767         * config/rs6000/t-darwin64: New.
768         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
769         build crt2.
770
771 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
772
773         PR 44203
774         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
775         match the original (and intended) behaviour before r159557.  This
776         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
777         in two ways.
778
779 2010-05-25  Richard Guenther  <rguenther@suse.de>
780
781         * doc/invoke.texi: Document -Ofast.
782         * target.h (struct gcc_target): Add handle_ofast.
783         * target-def.h (TARGET_HANDLE_OFAST): Add.
784         (TARGET_INITIALIZER): Adjust.
785         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
786         * common.opt (Ofast): Add.
787
788 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
789
790         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
791         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
792
793 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
794
795         PR target/43610
796         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
797         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
798         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
799         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
800
801 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
802
803         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
804         DW_OP_minus with negated offset instead of DW_OP_plus.
805         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
806
807 2010-05-25  Wei Guozhi  <carrot@google.com>
808
809         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
810         tst instruction and a new alternative.
811         * config/arm/constraints.md (Pu): New constraint.
812
813 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
814
815         * function.c (assign_stack_local_1): Initialize variable
816         to avoid warning when bootstrapping at -O3.
817
818 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
819
820         * configure.ac (all_lang_makefiles): Remove everything related to it.
821         * configure: Regenerate.
822         * Makefile.in: Fix reference to ada Make-lang.in.
823         Remove support for LANG_MAKEFILES.
824
825 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
826             Sandra Loosemore  <sandra@codesourcery.com>
827
828         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
829         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
830         description.  Add arm_neon_fp16_ok.
831         (Add Options): Add arm_neon and arm_neon_fp16.
832
833 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
834
835         * diagnostic.c: Don't include flags.h.
836         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
837         context parameters.  Check flags in the context passed as a parameter.
838         (diagnostic_build_prefix): Add context parameter.  Check
839         show_column flag in context.
840         (diagnostic_action_after_output): Check fatal_errors flag in context.
841         (diagnostic_report_current_module): Check show_column flag in context.
842         (default_diagnostic_starter): Update call to
843         diagnostic_build_prefix.
844         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
845         (emit_diagnostic): Pass context to permissive_error_kind.
846         (permerror): Pass context to permissive_error_kind.
847         * diagnostic.h (struct diagnostic_context): Add show_column,
848         pedantic_errors, permissive and fatal_errors fields.
849         (diagnostic_build_prefix): Update prototype.
850         * langhooks.c
851         * toplev.c (process_options): Set flags in global_dc from
852         flag_show_column, flag_pedantic_errors, flag_permissive,
853         flag_fatal_errors.
854         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
855         to diagnostic_build_prefix.
856         * Makefile.in (diagnostic.o): Update dependencies.
857
858 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
859
860         * config/i386/ia32intrin.h (__crc32q): Define only if
861         __SSE4_2__ is defined.
862
863 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
864
865         PR target/44132
866         PR middle-end/43602
867         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
868         DECL_VISIBILITY_SPECIFIED.
869         (emutls_decl): Set DECL_PRESERVE_P and copy
870         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
871         (emutls_finalize_control_var): New callback.
872         (emutls_finish): Finalize emutls control variables.
873         * toplev.c (compile_file): Move the call to emutls_finish ()
874         before varpool_assemble_pending_decls ().
875
876 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
877
878         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
879         added to the preprocessor condition.
880
881 2010-05-24  Paul Brook  <paul@codesourcery.com>
882
883         * gengtype-lex.l: Add HARD_REG_SET.
884         * expr.c (expand_expr_real_1): Record writes to hard registers.
885         * function.c (rtl_data): Add asm_clobbers.
886         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
887         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
888         Use crtl->asm_clobbers.
889
890 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
891
892         * doc/makefile.texi (Makefile): Mention stages 'profile'
893         and 'feedback' for profiledbootstrap.
894
895 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
896
897         PR target/44245
898         * config/i386/i386.c (def_builtin): Properly check
899         OPTION_MASK_ISA_64BIT.
900
901 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
902
903         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
904         typedefs with different but compatible types.  Allow duplicate
905         typedefs with the same type except for pedantic non-C1X, but give
906         warning for variably modified types.
907         * c-typeck.c (tagged_types_tu_compatible_p,
908         function_types_compatible_p, type_lists_compatible_p,
909         comptypes_internal): Add parameter different_types_p; set
910         *different_types_p for different but compatible types.  All
911         callers changed.
912         (comptypes_check_different_types): New.
913         * c-tree.h (comptypes_check_different_types): Declare.
914
915 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
916
917         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
918         * jump.c: Include basic-block.h.
919         * profile.c: Likewise.
920         * tree-profile.c: Likewise.
921         * coverage.c: Likewise.
922         * basic-block.h (optimize_function_for_size_p): Move to function.h.
923         (optimize_function_for_speed_p): Likewise.
924         * function.h (optimize_function_for_size_p,
925         optimize_function_for_speed_p): Moved here from basic-block.h.
926         * Makefile.in: Update dependencies.
927
928 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
929
930         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
931         before calling make; allow override through $MAKE.
932         * doc/invoke.texi (Optimize Options): Document override.
933
934 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
935
936         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
937         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
938         (rs6000_mode_dependent_address_ptr): Make static.
939         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
940         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
941         Remove.
942
943 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
944
945         PR target/43869
946         * config/i386/i386.c: Make sure that the correct regparm is passed.
947
948 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
949
950         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
951         * sbitmap.c: ...to here to internalize sbitmap element access.
952         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
953         Explain why basic-block.h is included.
954         * function.h: Include tm.h for CUMULATIVE_ARGS.
955         * Makefile.in: Update dependencies.
956
957 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
958
959         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
960         New core types.
961         * sbitmap.h (struct sbitmap_def): Do not typedef here.
962         * sbitmap.c: Include sbitmap.h.
963         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
964         hard-reg-set.h.  Split everything related to regsets out from here...
965         * regset.h: ...to here.  New file.
966         * df.h: Include regset.h and sbitmap.h.
967         * tree-flow.h: Likewise.
968         * cfgloop.h: Likewise.
969         * except.h: Do not include sbitmap.h.  Include hashtab.h.
970         * cgraph.h: Include vec.h and function.h.
971         * reload.h (struct insn_chain): Change types of live_throughout
972         and dead_or_set from regset_head to bitmap_head.
973         (compute_use_by_pseudos): Be defined also if regset.h is not included.
974         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
975         spilled_regs from regset_head to bitmap_head to avoid dependency
976         in regset.h.
977         * sel-sched-ir.h: Include regset.h.
978         * reload.c: Include df.h before reload.h.
979         * caller-save.c: Likewise.
980         * reload1.c: Likewise.
981         * ira.c: Likewise.
982         (mark_elimination): Update type of r to bitmap, consistent with
983         DF_LR_IN.
984         * dominance.c: Include bitmap.h.
985         * modulo-sched.c: Include df.h.
986         * cfganal.c: Include bitmap.h and sbitmap.h.
987         * cfgbuild.c: Include sbitmap.h.
988         * lcm.c: Include sbitmap.h.
989         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
990         * domwalk.c: Include sbitmap.h, exclude ggc.h.
991         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
992         * cselib.c: Include bitmap.h.
993         * tree-optimize.c: Include regset.h.
994         * stmt.c: Include bitmap.h.
995         * Makefile.in: Update dependencies.
996
997 2010-05-22  Jan Hubicka  <jh@suse.cz>
998
999         * cgraph.h (struct varpool_node): Add same_comdat_group.
1000         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
1001         pointer.
1002         (output_varpool): Update call of lto_output_varpool_node.
1003         (input_varpool): Read same_comdat_group pointer.
1004         (input_varpool_1): Fixup same_comdat_group pointer.
1005         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
1006         group is needed, all are.
1007         * varpool.c (varpool_remove_node): Remove node from same comdat group
1008         linklist too.
1009         (varpool_analyze_pending_decls): Walk same comdat groups.
1010
1011 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
1012
1013         * rtl.h (union rtunion_def): Remove rt_bit member.
1014         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
1015         * print-rtl (print_rtx): Do not print the member.
1016         * gengtype.c (adjust_field_rtx_def): Do not handle it.
1017         * gengenrtl.c (type_from_format): Likewise.
1018         (accessor_from_format): Likewise.
1019
1020 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
1021
1022         * dbgcnt.c: Include toplev.h instead of errors.h.
1023         * ira-emit.c: Don't include errors.h.
1024         * ira.c: Include toplev.h instead of errors.h.
1025         * lto-compress.c: Include toplev.h instead of errors.h.
1026         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
1027         ira.o, dbgcnt.o): Update dependencies.
1028
1029 2010-05-22  Richard Guenther  <rguenther@suse.de>
1030
1031         * gimple.c (gimple_types_compatible_p): Check type qualifications
1032         before merging pointer to complete and pointer to incomplete type.
1033         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
1034         we use our own resolution algorithm.  The gold linker plugin
1035         doesn't do the job we want it to do here.
1036
1037 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
1038
1039         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
1040         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1041         (sparc_mode_dependent_address_p): New function.
1042
1043 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1044
1045         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
1046
1047         * timevar.c: Do not include any core headers.
1048         (timevar_print): De-i18n-ize.
1049         (print_time): Likewise.
1050         * timevar.h (timevar_push, timevar_pop): Make inline functions.
1051
1052 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
1053
1054         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
1055         langhooks-def.h.
1056         (diagnostic_initialize): Initialize x_data not last_function.
1057         (diagnostic_report_current_function): Move to tree-diagnostic.c.
1058         (default_diagnostic_starter): Call
1059         diagnostic_report_current_module not
1060         diagnostic_report_current_function.
1061         (diagnostic_report_diagnostic): Initialize x_data not
1062         abstract_origin.
1063         (verbatim): Likewise.
1064         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
1065         x_data.
1066         (struct diagnostic_context): Change last_function to x_data.
1067         (diagnostic_auxiliary_data): Replace with
1068         diagnostic_context_auxiliary_data and
1069         diagnostic_info_auxiliary_data.
1070         (diagnostic_last_function_changed, diagnostic_set_last_function,
1071         diagnostic_report_current_function): Move to tree-diagnostic.h.
1072         (print_declaration, dump_generic_node, print_generic_stmt,
1073         print_generic_stmt_indented, print_generic_expr,
1074         print_generic_decl, debug_c_tree, dump_omp_clauses,
1075         print_call_name, debug_generic_expr, debug_generic_stmt,
1076         debug_tree_chain, default_tree_printer): Move to
1077         tree-pretty-print.h.
1078         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
1079         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
1080         gimple-pretty-print.h.
1081         * pretty-print.c: Don't include tree.h
1082         (pp_base_format): Don't handle %K here.
1083         (pp_base_tree_identifier): Move to tree-pretty-print.c.
1084         * pretty-print.h (text_info): Change abstract_origin to x_data.
1085         (pp_tree_identifier, pp_unsupported_tree,
1086         pp_base_tree_identifier): Move to tree-pretty-print.h.
1087         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
1088         tree-pretty-print.h: New files.
1089         * tree-pretty-print.c: Include tree-pretty-print.h.
1090         (percent_K_format): New.  Moved from pretty-print.c.
1091         (pp_base_tree_identifier): Move from pretty-print.c.
1092         * c-objc-common.c: Include tree-pretty-print.h.
1093         (c_tree_printer): Handle %K here.
1094         * langhooks.c: Include tree-diagnostic.h.
1095         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
1096         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
1097         (default_tree_printer): Handle %K using percent_K_format.
1098         (general_init): Use default_tree_diagnostic_starter.
1099         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
1100         (free_lang_data): Use default_tree_diagnostic_starter.
1101         * c-pretty-print.c: Include tree-pretty-print.h.
1102         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1103         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1104         * dwarf2out.c: Include tree-pretty-print.h.
1105         * except.c: Include tree-pretty-print.h.
1106         * gimple-pretty-print.c: Include tree-pretty-print.h and
1107         gimple-pretty-print.h.
1108         * gimplify.c: Include tree-pretty-print.h.
1109         * graphite-poly.c: Include tree-pretty-print.h and
1110         gimple-pretty-print.h.
1111         * ipa-cp.c: Include tree-pretty-print.h.
1112         * ipa-inline.c: Include gimple-pretty-print.h.
1113         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1114         * ipa-pure-const.c: Include gimple-pretty-print.h.
1115         * ipa-struct-reorg.c: Include tree-pretty-print.h and
1116         gimple-pretty-print.h.
1117         * ipa-type-escape.c: Include tree-pretty-print.h.
1118         * print-rtl.c: Include tree-pretty-print.h.
1119         * print-tree.c: Include gimple-pretty-print.h.
1120         * sese.c: Include tree-pretty-print.h.
1121         * tree-affine.c: Include tree-pretty-print.h.
1122         * tree-browser.c: Include tree-pretty-print.h.
1123         * tree-call-cdce.c: Include gimple-pretty-print.h.
1124         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1125         * tree-chrec.c: Include tree-pretty-print.h.
1126         * tree-data-ref.c: Include tree-pretty-print.h and
1127         gimple-pretty-print.h.
1128         * tree-dfa.c: Include tree-pretty-print.h.
1129         * tree-if-conv.c: Include tree-pretty-print.h and
1130         gimple-pretty-print.h.
1131         * tree-inline.c: Include tree-pretty-print.h.
1132         * tree-into-ssa.c: Include tree-pretty-print.h and
1133         gimple-pretty-print.h.
1134         * tree-nrv.c: Include tree-pretty-print.h.
1135         * tree-object-size.c: Include tree-pretty-print.h and
1136         gimple-pretty-print.h.
1137         * tree-outof-ssa.c: Include tree-pretty-print.h and
1138         gimple-pretty-print.h.
1139         * tree-parloops.c: Include tree-pretty-print.h and
1140         gimple-pretty-print.h.
1141         * tree-predcom.c: Include tree-pretty-print.h and
1142         gimple-pretty-print.h.
1143         * tree-scalar-evolution.c: Include tree-pretty-print.h and
1144         gimple-pretty-print.h.
1145         * tree-sra.c: Include tree-pretty-print.h.
1146         * tree-ssa-address.c: Include tree-pretty-print.h.
1147         * tree-ssa-alias.c: Include tree-pretty-print.h.
1148         * tree-ssa-ccp.c: Include tree-pretty-print.h and
1149         gimple-pretty-print.h.
1150         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
1151         * tree-ssa-copy.c: Include tree-pretty-print.h and
1152         gimple-pretty-print.h.
1153         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
1154         * tree-ssa-dce.c: Include tree-pretty-print.h and
1155         gimple-pretty-print.h.
1156         * tree-ssa-dom.c: Include tree-pretty-print.h and
1157         gimple-pretty-print.h.
1158         * tree-ssa-dse.c: Include gimple-pretty-print.h.
1159         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
1160         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
1161         * tree-ssa-live.c: Include tree-pretty-print.h and
1162         gimple-pretty-print.h.
1163         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
1164         gimple-pretty-print.h.
1165         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
1166         gimple-pretty-print.h.
1167         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
1168         gimple-pretty-print.h.
1169         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
1170         gimple-pretty-print.h.
1171         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
1172         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
1173         * tree-ssa-operands.c: Include tree-pretty-print.h and
1174         gimple-pretty-print.h.
1175         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
1176         gimple-pretty-print.h.
1177         * tree-ssa-pre.c: Include tree-pretty-print.h and
1178         gimple-pretty-print.h.
1179         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
1180         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
1181         gimple-pretty-print.h.
1182         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
1183         gimple-pretty-print.h.
1184         * tree-ssa-sink.c: Include gimple-pretty-print.h.
1185         * tree-ssa-ter.c: Include tree-pretty-print.h and
1186         gimple-pretty-print.h.
1187         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
1188         * tree-ssa.c: Include tree-pretty-print.h and
1189         gimple-pretty-print.h.
1190         * tree-stdarg.c: Include gimple-pretty-print.h.
1191         * tree-switch-conversion.c: Include gimple-pretty-print.h.
1192         * tree-tailcall.c: Include tree-pretty-print.h and
1193         gimple-pretty-print.h.
1194         * tree-vect-data-refs.c: Include tree-pretty-print.h and
1195         gimple-pretty-print.h.
1196         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
1197         gimple-pretty-print.h.
1198         * tree-vect-loop.c: Include tree-pretty-print.h and
1199         gimple-pretty-print.h.
1200         * tree-vect-patterns.c: Include gimple-pretty-print.h.
1201         * tree-vect-slp.c: Include tree-pretty-print.h and
1202         gimple-pretty-print.h.
1203         * tree-vect-stmts.c: Include tree-pretty-print.h and
1204         gimple-pretty-print.h.
1205         * tree-vectorizer.c: Include tree-pretty-print.h.
1206         * tree-vrp.c: Include tree-pretty-print.h and
1207         gimple-pretty-print.h.
1208         * value-prof.c: Include tree-pretty-print.h and
1209         gimple-pretty-print.h.
1210         * var-tracking.c: Include tree-pretty-print.h.
1211         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
1212         (tree-diagnostic.o): New dependencies.
1213         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
1214         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
1215         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
1216         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
1217         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
1218         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
1219         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
1220         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
1221         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
1222         tree-ssa-address.o, tree-ssa-loop-niter.o,
1223         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
1224         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
1225         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
1226         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
1227         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
1228         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
1229         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
1230         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
1231         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
1232         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
1233         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
1234         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
1235         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
1236         tree-switch-conversion.o, var-tracking.o, value-prof.o,
1237         cfgexpand.o, pretty-print.o): Update dependencies.
1238
1239 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
1240
1241         * tree-ssa-structalias.c: Remove tm_p.h from include.
1242
1243 2010-05-21  Jeff Law  <law@redhat.com>
1244
1245         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
1246
1247 2010-05-21  Jason Merrill  <jason@redhat.com>
1248
1249         * tree-eh.c (cleanup_is_dead_in): New.
1250         (lower_try_finally): Don't generate a dead cleanup region.
1251         (lower_cleanup): Likewise.
1252
1253 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1254
1255         PR debug/44223
1256         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
1257         unchain each use from the cyclic next_regno_use chain first.
1258
1259 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1260
1261         * real: Do not include gmp.h, mpfr.h, and mpc.h.
1262         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
1263         (real_value_negate, real_value_abs): New prototypes.
1264         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
1265         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
1266         new include file for interface between MPFR and REAL_VALUE_TYPE.
1267         * real.c: Include realmpfr.h.
1268         (real_arithmetic2): Remove legacy function.
1269         (real_value_negate): New.
1270         (real_value_abs): New.
1271         (mfpr_from_real, real_from_mpfr): Move from here...
1272         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
1273         * builtins.c: Include realmpfr.h.
1274         * fold-const.c: Include realmpfr.h.
1275         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
1276         (fold_negate_const): Likewise.
1277         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
1278         * toplev.c: Include realmpfr.h.
1279         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
1280         and real_value_negate.
1281         * fixed-value.c (check_real_for_fixed_mode): Likewise.
1282         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
1283         (vfp3_const_double_index): Likewise.
1284         (arm_print_operand): Likewise.
1285         * Makefile.in: Update dependencies.
1286
1287 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1288
1289         * config/s390/s390.c (override_options): Increase the default
1290         of max-completely-peel-times.
1291
1292 2010-05-21  Julian Brown  <julian@codesourcery.com>
1293             Mark Mitchell  <mark@codesourcery.com>
1294
1295         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
1296         sibling calls for Thumb-1.
1297         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
1298         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
1299         Thumb-2.
1300         (*call_insn, *call_value_insn): Don't use for Thumb-2.
1301         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
1302         for Thumb-2.
1303         (return): New expander.
1304         (*arm_return): New name for ARM return insn.
1305         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
1306
1307 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
1308
1309         * config.gcc (sparc64-*-rtems*): New target.
1310
1311 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1312
1313         * tree.c (build_function_decl_skip_args): Fix grammar.
1314         (build_function_type_list_1): Fix typos, adjust formatting.
1315
1316 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1317
1318         * tree.h: Include real.h and fixed-value.h as basic datatypes.
1319         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
1320         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
1321         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
1322         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
1323         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
1324         tree-pretty-print.c, tree-loop-distribution.c,
1325         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
1326         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
1327         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
1328         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
1329         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
1330         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
1331         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
1332         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
1333         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
1334         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
1335         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
1336         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
1337         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
1338         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
1339         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
1340         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
1341         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
1342         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
1343         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
1344         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
1345         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
1346         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
1347         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
1348         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
1349         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
1350         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
1351         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
1352         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
1353         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
1354         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
1355         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
1356         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
1357         config/score/score7.c, config/score/score.c, config/arm/arm.c,
1358         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
1359         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
1360         config/bfin/bfin.c: Clean up redundant includes.
1361         * Makefile.in: Update accordingly.
1362
1363 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1364
1365         PR middle-end/44204
1366         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
1367         statement has no arguments.
1368
1369 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
1370
1371         PR/44139
1372         * varasm.c (emutls_decl): Merge attributes to new decl.
1373
1374 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1375
1376         PR middle-end/44101
1377         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
1378         around the uniquized constructor if its type requires a conversion.
1379
1380 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1381
1382         PR debug/44205
1383         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
1384         at -O0 goto_locus of any of the incoming edges differs from
1385         goto_locus of outgoing edge, or gimple_location of any of the
1386         labels differs.
1387
1388 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
1389
1390         * ira.c (ira_non_ordered_class_hard_regs): Define.
1391         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
1392         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
1393         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
1394         cost of unaligned hard regs when allocating multi-reg pseudos.
1395
1396 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
1397
1398         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
1399         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
1400         for TARGET_NO_FLOAT.
1401         * config/mips/mips.c (mips_file_start): Expand conditional expression
1402         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
1403         (mips_override_options): Move -mno-float override -msoft-float and
1404         -mhard-float.
1405         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
1406         Condition(TARGET_SUPPORTS_NO_FLOAT).
1407         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
1408         __mips_no_float here.
1409         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
1410         (TARGET_SUPPORTS_NO_FLOAT): Define.
1411         * config/mips/sdemtk.opt: Delete.
1412
1413 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
1414
1415         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
1416
1417 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
1418
1419         PR target/43733
1420         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
1421         * configure: Regenerate.
1422         * config.in: Regenerate.
1423         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
1424         instead of sahf only for 64bit targets.
1425
1426 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1427
1428         PR debug/44178
1429         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
1430         setup_ref_regs for DEBUG_INSNs.
1431
1432 2010-05-20  Jan Hubicka  <jh@suse.cz>
1433
1434         PR middle-end/44197
1435         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
1436
1437 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
1438
1439         PR bootstrap/43870
1440         * df-scan.c (df_ref_compare): Stabilize sort.
1441
1442 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1443
1444         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
1445         argument.  Don't use DW_OP_piece if offset is non-zero,
1446         put offset into second DW_OP_bit_piece argument.
1447         (dw_sra_loc_expr): Adjust callers.  For memory expressions
1448         compute offset.
1449
1450 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
1451
1452         PR target/44202
1453         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
1454         settings for 16-bit-constant "addo" alternative.
1455
1456 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
1457
1458         * config/mips/mips-dsp.md (add<DSPV:mode>3,
1459         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
1460
1461         PR target/43764
1462         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
1463         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
1464         Use it.
1465
1466 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
1467
1468         * diagnostic.c (FLOAT, FFS): Don't undefine.
1469         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
1470         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
1471         include ordering.
1472
1473 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
1474
1475         * combine.c (propagate_for_debug): Call make_compound_operation
1476         on the source value.
1477         (try_combine): When implementing a split chosen by find_split_point,
1478         either copy i2src or set it to null.  Assert that i2src is not null
1479         before substituting into CALL_INSN_FUNCTION_USAGE.
1480
1481 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
1482
1483         * double-int.h (double_int_ior): New function.
1484         * tree.h (build_int_cst_wide_type): Remove.
1485         * tree.c (build_int_cst_wide_type): Remove.
1486         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
1487         of build_int_cst_wide_type.
1488         * stor-layout.c (set_sizetype): (Ditto.).
1489         * dojump.c (do_jump): Use build_int_cstu instead of
1490         build_int_cst_wide_type.
1491
1492 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1493
1494         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
1495         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
1496         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
1497         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
1498         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
1499         propagate the 'data' argument to copy_tree_r.
1500         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
1501         Propagate 'data' argument to walk_tree.
1502         (copy_if_shared): New function.
1503         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
1504         (unmark_visited): New function.
1505         (unshare_body): Call copy_if_shared instead of doing it manually.
1506         (unvisit_body): Call unmark_visited instead of doing it manually.
1507
1508 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
1509
1510         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
1511         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
1512         * hooks.c: Likewise.
1513         * target-def.h (TARGET_FOLD_BUILTIN): Define to
1514         hook_tree_tree_int_treep_bool_null.
1515         * target.h (struct gcc_target): Update signature of fold_builtin
1516         field.
1517         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
1518         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
1519         instead of the call expression.
1520         (fold_builtin_call_array): Pass n and argarray directly.
1521         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
1522         consing a list.
1523         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
1524         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
1525         `i' and use it in place of `arity'.
1526         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
1527         Dereference `args' directly.
1528         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
1529
1530 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1531
1532         * doc/sourcebuild.texi (Effective-Target Keywords): Document
1533         3dnow, sse3, sse2.
1534         (Directives): Document optional dg-require-effective-target
1535         selector.
1536
1537 2010-05-19  Richard Guenther  <rguenther@suse.de>
1538
1539         PR lto/44196
1540         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
1541
1542 2010-05-19  Richard Guenther  <rguenther@suse.de>
1543
1544         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
1545         * common.opt (fwhopr=): New.
1546         * opts.c (common_handle_option): Handle OPT_fwhopr.
1547         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
1548         * collect2.c (main): Match -fwhopr*.
1549         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
1550         Execute ltrans stage in parallel when jobs is bigger than 1.
1551
1552 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1553
1554         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
1555         pentiumpro on Solaris 8/x86 with Sun as.
1556         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
1557         hidden alias bug.
1558         (gcc_cv_as_ix86_quad): Check for .quad directive.
1559         * configure: Regenerate.
1560         * config.in: Regenerate.
1561         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
1562
1563 2010-05-19  Martin Jambor  <mjambor@suse.cz>
1564
1565         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
1566         also for indirect edges.  Actual printing moved...
1567         (ipa_print_node_jump_functions_for_edge): ...here.
1568         (ipa_compute_jump_functions): Renamed to
1569         ipa_compute_jump_functions_for_edge and made static.
1570         (ipa_compute_jump_functions): New function.
1571         (make_edge_direct_to_target): Check if the number of arguments on
1572         the newly direct edge is the same as the number of parametrs of
1573         the callee.
1574         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
1575         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
1576         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
1577         analysis functions unconditionally, call the new
1578         ipa_analyze_params_uses on the node instead of every edge.
1579
1580 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
1581
1582         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
1583         to tree.
1584         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
1585         also checks for a constant int vs.  non-constant but
1586         loop-invariant steps.
1587         (find_or_create_group): Change the sort algorithm to only consider
1588         steps that are constant ints.
1589         (idx_analyze_ref): Adopt code to handle a tree instead of a
1590         HOST_WIDE_INT for step.
1591         (gather_memory_references_ref): Handle tree instead of int and be
1592         prepared to see a NULL_TREE.
1593         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
1594         prefetches if the step cannot be calculated at compile time.
1595         (issue_prefetch_ref): Issue prefetches for non-constant but
1596         loop-invariant steps.
1597
1598 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1599
1600         Revert:
1601         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1602
1603         * tree.h (build_call_list): Remove.
1604         * tree.c (build_call_list): Remove.
1605
1606 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1607
1608         * tree.h (build_call_list): Remove.
1609         * tree.c (build_call_list): Remove.
1610
1611 2010-05-18  Jan Hubicka  <jh@suse.cz>
1612
1613         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
1614
1615 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
1616
1617         PR rtl-optimization/43332
1618         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
1619
1620 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
1621
1622         * tree.h (build_int_cstu): Implement as static inline.
1623         * tree.c (build_int_cstu): Remove function.
1624         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
1625         sign extended.
1626
1627 2010-05-18  Richard Guenther  <rguenther@suse.de>
1628
1629         PR lto/44143
1630         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
1631         (debug): Initialize from -save-temps.
1632         (collect_execute): Print command-line when verbose.
1633         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
1634         for ltrans invocation.  Produce -dumpbase flag again.
1635         (process_args): Remove.
1636         (main): Simplify.
1637         * collect2.c (maybe_run_lto_and_relink): Only pass object
1638         files to lto-wrapper.
1639         * gcc.c (LINK_COMMAND_SPEC): Likewise.
1640
1641 2010-05-18  Jan Hubicka  <jh@suse.cz>
1642
1643         * opts.c (decode_options): Do not disable whopr at ipa_cp.
1644         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
1645
1646 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
1647
1648         PR lto/44184
1649         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
1650         in a GIMPLE_ASM.
1651         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
1652         in a GIMPLE_ASM.
1653
1654 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
1655
1656         PR debug/41371
1657         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
1658         rtx_equal_p inline.
1659
1660 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
1661
1662         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
1663         lto-macho as lto_binary_reader.
1664
1665         * darwin.c (darwin_asm_named_section): Do not add assembler comment
1666         after .section directive; just print it before the directive instead.
1667
1668 2010-05-17  Jan Hubicka  <jh@suse.cz>
1669
1670         * cgraph.c (cgraph_create_virtual_clone): Only check
1671         versionable_function_p when not in wpa and checking is enabled.
1672         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
1673         there are no more functions to materialize.
1674
1675 2010-05-17  Jan Hubicka  <jh@suse.cz>
1676
1677         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
1678         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
1679         New functions.
1680         (output_cgraph): Call output_cgraph_opt_summary.
1681         (input_cgrpah): Call input_cgraph_opt_summary.
1682         (output_cgraph_opt_summary_p, output_node_opt_summary,
1683         input_node_opt_summary, input_cgraph_opt_section): New functions.
1684         * lto-section-in.c (lto_section_name): Add cgraphopt.
1685         * tree-inline.c (tree_function_versioning): Handle parm_num.
1686         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
1687         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
1688
1689 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
1690
1691         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
1692         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
1693         the insn to prefetch ratio heuristic to loops with known trip count.
1694
1695 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
1696
1697         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
1698         (schedule_prefetches): Do not generate a prefetch if the unroll factor
1699         is far from what is required by the prefetch.
1700
1701 2010-05-17  Jan Hubicka  <jh@suse.cz>
1702
1703         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
1704         (ipcp_estimate_growth): Likewise.
1705         (ipcp_const_param_count): Likewise.
1706         (ipcp_insert_stage): Likewise.
1707         * ipa-prop.c (visit_load_for_mod_analysis): New function.
1708         (visit_store_addr_for_mod_analysis): Set used flag.
1709         (ipa_detect_param_modifications): Set used flag for SSE params;
1710         update use of walk_stmt_load_store_addr_ops.
1711         (ipa_print_node_params): Print used flag.
1712         (ipa_write_node_info): Stream used flag.
1713         (ipa_read_node_info): Likewise.
1714         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
1715         (ipa_is_param_used): New function.
1716         (lto_ipa_fixup_call_notes): Remove unused declaration.
1717
1718 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1719
1720         PR target/44074
1721         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
1722         * configure: Regenerate.
1723         * config.in: Regenerate.
1724         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
1725         !HAVE_AS_IX86_REP_LOCK_PREFIX.
1726         Don't emit whitespace.
1727         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
1728         (*rep_movsi): Likewise.
1729         (*rep_movsi_rex64): Likewise.
1730         (*rep_movqi): Likewise.
1731         (*rep_movqi_rex64): Likewise.
1732         (*rep_stosdi_rex64): Likewise.
1733         (*rep_stossi): Likewise.
1734         (*rep_stossi_rex64): Likewise.
1735         (*rep_stosqi): Likewise.
1736         (*rep_stosqi_rex64): Likewise.
1737         (*cmpstrnqi_nz_1): Use {%;} after repz.
1738         (*cmpstrnqi_nz_rex_1): Likewise.
1739         (*cmpstrnqi_1): Likewise.
1740         (*cmpstrnqi_rex_1): Likewise.
1741         (*strlenqi_1): Use {%;} after repnz.
1742         (*strlenqi_rex_1): Likewise.
1743         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
1744         (*sync_compare_and_swap<mode>): Likewise.
1745         (sync_double_compare_and_swap<mode>): Likewise.
1746         (*sync_double_compare_and_swapdi_pic): Likewise.
1747         (sync_old_add<mode>): Likewise.
1748         (sync_add<mode>): Likewise.
1749         (sync_sub<mode>): Likewise.
1750         (sync_<code><mode>): Likewise.
1751
1752 2010-05-17  Martin Jambor  <mjambor@suse.cz>
1753
1754         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
1755         otr_token and polymorphic.
1756         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
1757         (cgraph_clone_edge): Copy the above fields.
1758         * tree.c (get_binfo_at_offset): New function.
1759         * tree.h (get_binfo_at_offset): Declare.
1760         * ipa-prop.h (enum jump_func_type): Added known_type jump function
1761         type, reordered items, updated comments.
1762         (union jump_func_value): Added base_type field, reordered fields.
1763         (enum ipa_lattice_type): Moved down in the file.
1764         (struct ipa_param_descriptor): New field polymorphic.
1765         (ipa_is_param_polymorphic): New function.
1766         * ipa-prop.c: Include gimple.h and gimple-fold.h.
1767         (ipa_print_node_jump_functions): Print known type jump functions.
1768         (compute_complex_pass_through): Renamed to...
1769         (compute_complex_assign_jump_func): this.
1770         (compute_complex_ancestor_jump_func): New function.
1771         (compute_known_type_jump_func): Likewise.
1772         (compute_scalar_jump_functions): Create known type and complex ancestor
1773         jump functions.
1774         (ipa_note_param_call): New parameter polymorphic, set the corresponding
1775         flag in the call note accordingly.
1776         (ipa_analyze_call_uses): Renamed to...
1777         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
1778         variable var only in the block where it is used.
1779         (ipa_analyze_virtual_call_uses): New function.
1780         (ipa_analyze_call_uses): Likewise.
1781         (combine_known_type_and_ancestor_jfs): Likewise.
1782         (update_jump_functions_after_inlining): Implemented handling of a
1783         number of new jump function types combination.
1784         (print_edge_addition_message): Removed.
1785         (make_edge_direct_to_target): New function.
1786         (try_make_edge_direct_simple_call): Likewise.
1787         (try_make_edge_direct_virtual_call): Likewise.
1788         (update_call_notes_after_inlining): Renamed to...
1789         (update_indirect_edges_after_inlining): this.  Moved edge creation for
1790         indirect calls to try_make_edge_direct_simple_call, also calls
1791         try_make_edge_direct_virtual_call for virtual calls.
1792         (ipa_print_node_params): Changed the header message.
1793         (ipa_write_jump_function): Stream also known type jump functions.
1794         (ipa_read_jump_function): Likewise.
1795         (ipa_write_indirect_edge_info): Stream new fields in
1796         cgraph_indirect_call_info.
1797         (ipa_read_indirect_edge_info): Likewise.
1798         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
1799         GIMPLE_FOLD_H.
1800
1801 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1802
1803         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
1804
1805 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1806
1807         * tree.h (CALL_EXPR_ARGS): Delete.
1808         (call_expr_arglist): Delete.
1809         * tree.c (call_expr_arglist): Delete.
1810         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
1811         targetm.fold_builtin.
1812         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
1813         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
1814         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
1815         arglist parameter.  Use CALL_EXPR_ARG.
1816         (picochip_expand_builtin_3op): Likewise.
1817         (picochip_expand_builtin_2opvoid): Likewise.
1818         (picochip_expand_array_get): Likewise.
1819         (picochip_expand_array_put): Likewise.
1820         (picochip_expand_array_testport): Likewise.
1821         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
1822         rather than arglist.
1823         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
1824         CALL_EXPR_ARGS.
1825         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
1826         than TREE_VALUE and TREE_CHAIN.
1827         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
1828         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
1829         the arglist.
1830
1831 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
1832
1833         PR bootstrap/42347
1834         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
1835         to have no fallthru edge.
1836
1837         PR middle-end/44102
1838         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
1839         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
1840         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
1841         add BARRIER after previous bb if needed.
1842
1843 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1844
1845         * tree.c (build_function_type_list_1): Remove bogus assert condition.
1846
1847 2010-05-17  Alan Modra  <amodra@gmail.com>
1848
1849         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
1850         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
1851         with copy_reg rtx param.
1852         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
1853         Correct cases where code for ABI_V4 did not initialise the reg
1854         used to access frame.  Also leave frame_reg_rtx as sp for large
1855         frames that save no regs.
1856
1857 2010-05-17  Martin Jambor  <mjambor@suse.cz>
1858
1859         PR middle-end/44133
1860         * tree-sra.c (create_access_replacement): New parameter rename, mark
1861         the replaement for renaming only when it is true.
1862         (get_access_replacement): Pass true in the rename parameter of
1863         create_access_replacement.
1864         (get_unrenamed_access_replacement): New function.
1865         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
1866         replacement declaration from it.
1867
1868 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
1869
1870         * function.c (try_fit_stack_local, add_frame_space): New static
1871         functions.
1872         (assign_stack_local_1): Use them.  Look for opportunities to use
1873         space previously wasted on alignment.
1874         * function.h (struct frame_space): New.
1875         (struct rtl_data): Add FRAME_SPACE_LIST member.
1876         * reload1.c (something_was_spilled): New static variable.
1877         (alter_reg): Set it.
1878         (reload): Test it in addition to testing if the frame size changed.
1879
1880 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
1881
1882         * config/s390/s390.c: Define sane prefetch settings and activate
1883         flag_prefetch_loop_arrays on -O3.
1884         * config/s390/s390.h: Declare that read can use write prefetch.
1885
1886 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
1887
1888         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
1889         build.
1890
1891 2010-05-16  Jan Hubicka  <jh@suse.cz>
1892
1893         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
1894         function body; do not check stdarg field of struct function.
1895
1896 2010-05-16  Jan Hubicka  <jh@suse.cz>
1897
1898         * cgraph.c (dump_cgraph_node): Dump versionable flag.
1899         * cgraph.h (cgraph_local_info): Add versionable flag.
1900         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
1901         (ipcp_versionable_function_p): Use it.
1902         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
1903         versionable flag.
1904
1905 2010-05-16  Jan Hubicka  <jh@suse.cz>
1906
1907         * cgraph.c (cgraph_clone_node): Take decl argument and insert
1908         clone into hash when it is different from orig.
1909         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
1910         * cgraph.h (cgraph_clone_node): Update prototype.
1911         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
1912         (lto_cgraph_encoder_delete): Delete body map.
1913         (lto_cgraph_encoder_size): Move to header.
1914         (lto_cgraph_encoder_encode_body_p,
1915         lto_set_cgraph_encoder_encode_body): New.
1916         (lto_output_node): Do not take written_decls argument; output clone_of
1917         pointer.
1918         (add_node_to): Add include_body_argument; call
1919         lto_set_cgraph_encoder_encode_body on master of the clone.
1920         (add_references): Update use of add_node_to.
1921         (compute_ltrans_boundary): Likewise.
1922         (output_cgraph): Do not create written_decls bitmap.
1923         (input_node): Take nodes argument; stream in clone_of correctly.
1924         (input_cgraph_1): Update use of input_node.
1925         * lto-streamer-out.c (lto_output): Use encoder info to decide
1926         what bodies to output.
1927         * ipa-inline.c (cgraph_clone_inlined_nodes,
1928         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
1929         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
1930         (lto_cgraph_encoder_size): Define here.
1931         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
1932         Declare.
1933
1934 2010-05-16  Richard Guenther  <rguenther@suse.de>
1935
1936         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
1937         -fipa-type-escape.
1938         * ipa-type-escape.c (gate_type_escape_vars): Run when
1939         -fipa-struct-reorg runs.
1940         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
1941         * common.opt (fipa-type-escape): Remove.
1942
1943 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
1944
1945         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
1946         (decode_options): Likewise.
1947         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
1948
1949 2010-05-16  Jan Hubicka  <jh@suse.cz>
1950
1951         * ipa.c (function_and_variable_visibility): Also bring local all
1952         aliases.
1953
1954 2010-05-16  Richard Guenther  <rguenther@suse.de>
1955
1956         * alias.c (nonoverlapping_memrefs_p): Remove use of
1957         IPA type-escape information.
1958
1959 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
1960
1961         * c-common.c (c_common_reswords): Add _Static_assert for C.
1962         * c-parser.c (c_token_starts_declaration,
1963         c_parser_next_token_starts_declaration,
1964         c_parser_static_assert_declaration_no_semi,
1965         c_parser_static_assert_declaration): New.
1966         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
1967         Handle static assertions if static_assert_ok.
1968         (c_parser_external_declaration, c_parser_declaration_or_fndef,
1969         c_parser_compound_statement_nostart, c_parser_label,
1970         c_parser_for_statement, c_parser_objc_methodprotolist,
1971         c_parser_omp_for_loop): All callers of
1972         c_parser_declaration_or_fndef changed.
1973         (c_parser_struct_declaration): Handle static assertions.
1974         (c_parser_compound_statement_nostart): Use
1975         c_parser_next_token_starts_declaration and
1976         c_token_starts_declaration to detect start of declarations.
1977         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
1978         Likewise.
1979
1980 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
1981
1982         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
1983         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
1984         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1985         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1986         (mmix_function_outgoing_value): Rename to...
1987         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
1988         (mmix_function_value_regno_p): Make static.
1989         (mmix_libcall_value): New function.
1990         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
1991         mmix_function_value_regno_p): Remove declaration.
1992
1993 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
1994
1995         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
1996         BUILT_IN_ALLOCA if stack checking is enabled.
1997
1998 2010-05-16  Richard Guenther  <rguenther@suse.de>
1999
2000         * var-tracking.c (vars_copy_1): Inline ...
2001         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
2002         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
2003         (variable_merge_over_cur): Adjust.  Merge asserts.
2004         (variable_merge_over_src): Likewise.
2005         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
2006         (variable_post_merge_new_vals): Merge asserts.
2007         (variable_post_merge_perm_vals): Likewise.
2008         (find_mem_expr_in_1pdv): Likewise.
2009         (dataflow_set_different_value): Remove.
2010         (onepart_variable_different_p): Merge asserts.
2011         (variable_different_p): Likewise.
2012         (dataflow_set_different_1): Inline ...
2013         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
2014         (emit_notes_for_differences_1): Merge asserts.
2015
2016 2010-05-16  Richard Guenther  <rguenther@suse.de>
2017
2018         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
2019         * optabs.c (libfunc_decl_hash): Likewise.
2020         * varasm.c (emutls_decl): Likewise.
2021
2022 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
2023
2024         * c-decl.c: Don't include gimple.h.
2025         (merge_decls): Do not copy gimple_body.
2026
2027 2010-05-15  Jason Merrill  <jason@redhat.com>
2028
2029         * c.opt: Add -fnothrow-opt.
2030
2031 2010-05-15  Jan Hubicka  <jh@suse.cz>
2032
2033         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
2034         analyzed.
2035         * passes.c (ipa_write_summaries): Write all analyzed nodes.
2036
2037 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
2038
2039         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
2040         * Makefile.in: Add it.
2041         Fix all other Makefile dependencies for changes below.
2042         * tree.h: Include it instead of defining VEC primitives here.
2043         * gimple.h: Likewise.
2044         * rtl.h: Likewise.
2045         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
2046         * except.h: Include vecir.h, break dependence on tree.h.
2047
2048         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
2049         Move from here...
2050         * tree-iterator.c: ...to here.
2051         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
2052
2053         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
2054         tm_p.h.
2055         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
2056         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
2057         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
2058         tree-mudflap.h, and target.h.
2059         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
2060         predict.h, tree-inline.h, gimple.h, and langhooks.h.
2061         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
2062         Add FIXME for why gimple.h is still included (should be unnecessary
2063         since GCC 4.5 gimplification unit-at-a-time).
2064         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
2065         * c-pragma.c: Add FIXME for why function.h needs to be included just
2066         for cfun, at front-end level.
2067         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
2068         Do not include ggc.h, but include vecprim.h for VEC(char).
2069         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
2070         Explain why target.h is included.
2071         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
2072         Explain why gimple.h is included.
2073         * c-ppoutput.c: Do not include tm.h.
2074         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
2075         * c-parses.c: Explain why rtl.h is included, and that this (and only
2076         this) is also why tm.h must be included.
2077         Do not include except.h.
2078         * c-lang.c: Do not include ggc.h.
2079
2080 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
2081
2082         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
2083
2084 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
2085
2086         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
2087         unions by default if those structs and unions have no tags.  Do
2088         not condition anonymous struct and unions handling on flag_iso.
2089         Allow anonymous structs and unions for C1X.
2090         (finish_struct): Do not diagnose lack of named fields when
2091         anonymous structs and unions present for C1X.  Accept flexible
2092         array members in structure with anonymous structs or unions but no
2093         directly named fields.
2094         * doc/extend.texi (Unnamed Fields): Update.
2095
2096 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
2097
2098         * gimple.h (compare_field_offset): Rename into...
2099         (gimple_compare_field_offset): ...this.
2100         * gimple.c (compare_field_offset): Rename into...
2101         (gimple_compare_field_offset): ...this.  Compare the full access if
2102         the offset is self-referential.
2103         (gimple_types_compatible_p): Adjust for above renaming.
2104         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
2105         DECL_NONADDRESSABLE_P flag of fields before merging them.
2106
2107 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
2108
2109         * tree.h (ctor_to_list): Delete.
2110         * tree.c (ctor_to_list): Delete.
2111
2112 2010-05-15  Jan Hubicka  <jh@suse.cz>
2113
2114         * ipa-reference.c: Include toplev.h
2115         (is_proper_for_analysis): Only add to all_module_statics
2116         if it is allocated.
2117         (write_node_summary_p, stream_out_bitmap,
2118         ipa_reference_write_optimization_summary,
2119         ipa_reference_read_optimization_summary): New.
2120         (struct ipa_opt_pass_d pass_ipa_reference): Add
2121         optimization summary streaming.
2122         * lto-cgraph.c (referenced_from_this_partition_p,
2123         reachable_from_this_partition_p): New functions.
2124         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2125         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
2126         * opts.c (decode_options): Enable ipa_reference.
2127         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
2128         * lto-streamer.h (referenced_from_this_partition_p,
2129         reachable_from_this_partition_p): Declare.
2130
2131 2010-05-15  Richard Guenther  <rguenther@suse.de>
2132
2133         PR tree-optimization/44038
2134         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
2135         taking the address of a V_C_E of a constant.
2136
2137 2010-05-14  Jan Hubicka  <jh@suse.cz>
2138
2139         * tree.h (memory_identifier_string): Remove.
2140         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
2141         (ipa_reference_global_vars_info_d): Remove statics_not_read and
2142         statics_not_written.
2143         (ipa_reference_optimization_summary_d): New structure.
2144         (ipa_reference_optimization_summary_t): New type and vector.
2145         (ipa_reference_vars_info_d): Embedd structures instead of using
2146         pointers.
2147         (reference_vars_to_consider): Remove out of GGC space.
2148         (module_statics_escape): Remove.
2149         (global_info_obstack): Rename to ...
2150         (optimization_summary_obstack): ... this one.
2151         (initialization_status_t): Remove.
2152         (memory_identifier_string): Remove.
2153         (get_reference_vars_info): Fix indenting.
2154         (set_reference_vars_info): Likewise.
2155         (get_reference_optimization_summary): New.
2156         (set_reference_optimization_summary): New.
2157         (get_global_reference_vars_info): Remove.
2158         (ipa_reference_get_read_global): Remove.
2159         (ipa_reference_get_written_global): Remove.
2160         (ipa_reference_get_not_read_global): Update.
2161         (ipa_reference_get_not_written_global): Update.
2162         (is_proper_for_analysis): Outlaw addressable.
2163         (propagate_bits): Update for new datastructures.
2164         (analyze_variable): Remove.
2165         (init_function_info): Update for new datastructures.
2166         (clean_function_local_data): Remove.
2167         (clean_function): Remove.
2168         (copy_global_bitmap): Use optimizations_summary_obstack.
2169         (duplicate_node_data): Duplicate optimization summary only.
2170         (remove_node_data): Remove optimization summary only.
2171         (generate_summary): Do not analyze variables; do not compute
2172         module_statics_escape; do not prune solutions by it.
2173         (read_write_all_from_decl): Fix typos in comments.
2174         (propagate): Doscover readonly and nonaddressable first;
2175         update for new datastructures; share global bitmaps.
2176         * ipa-reference.h (ipa_reference_get_read_global,
2177         ipa_reference_get_written_global): Remove.
2178         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
2179         * Makefile.in: Remove ipa-refereference from GT files.
2180
2181 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2182
2183         PR debug/44112
2184         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
2185         for all SYMBOL_REF_DECLs.
2186
2187 2010-05-14  Jan Hubicka  <jh@suse.cz>
2188
2189         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
2190         (varpool_all_refs_explicit_p): New inline function.
2191         * ipa-reference.c: Update comment.
2192         (module_statics_written): Remove.
2193         (get_static_decl): Remove.
2194         (ipa_init): Do not initialize module_statics_written.
2195         (analyze_function): Likewise.
2196         (generate_summary): Likewise; do not compute module_statics_readonly
2197         and do not update variable flags.
2198         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
2199         * ipa.c: Inlucde flags.h
2200         (cgraph_local_node_p): New.
2201         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
2202         promote functions to local.
2203         (ipa_discover_readonly_nonaddressable_vars): New function.
2204         (function_and_variable_visibility): Use cgraph_local_node_p.
2205         * varpool.c (varpool_finalize_decl): Set force_output for
2206         DECL_PRESERVE_P vars.
2207
2208 2010-05-14  Jan Hubicka  <jh@suse.cz>
2209
2210         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
2211
2212 2010-05-14  Richard Guenther  <rguenther@suse.de>
2213
2214         PR tree-optimization/44119
2215         * tree-ssa-pre.c (eliminate): Properly mark replacement of
2216         a PHI node necessary.
2217
2218 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
2219
2220         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
2221
2222 2010-05-14  Jason Merrill  <jason@redhat.com>
2223
2224         PR c++/44127
2225         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
2226         (gimple_call_set_nothrow): New.
2227         * gimple.c (gimple_build_call_from_tree): Call it.
2228         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
2229
2230         PR c++/44127
2231         * gimplify.c (gimplify_seq_add_stmt): No longer static.
2232         * gimple.h: Declare it.
2233         * gimple.c (gimple_build_eh_filter): No ops.
2234
2235 2010-05-14  Jan Hubicka  <jh@suse.cz>
2236
2237         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
2238         nodes already in queue.
2239         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
2240         re-enqueueing node.
2241
2242 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2243
2244         PR debug/44136
2245         * cfgexpand.c (expand_debug_expr): If non-memory op0
2246         has BLKmode, return NULL.
2247
2248 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
2249
2250         * config.gcc: Add support for --with-cpu option for bdver1.
2251         * config/i386/i386.h (TARGET_BDVER1): New macro.
2252         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
2253         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2254         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
2255         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2256         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
2257         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
2258         (processor_type): Add PROCESSOR_BDVER1.
2259         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
2260         processor_type in config/i386/i386.h.
2261         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
2262         movaps <reg, reg> instead of movapd <reg, reg> when replacing
2263         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
2264         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
2265         to emit packed xor instead of packed double/packed integer
2266         xor for SSE and AVX when moving a zero value.
2267         * config/i386/sse.md: Add check for
2268         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
2269         movapd/movdqa for SSE and AVX.
2270         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
2271         single logical operations i.e and, or and xor instead of packed double
2272         logical operations for SSE and AVX.
2273         * config/i386/i386-c.c (ix86_target_macros_internal):
2274         Add PROCESSOR_BDVER1.
2275         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
2276         (has_fma4, has_xop): New.
2277         * config/i386/i386.c (bdver1_cost): New variable.
2278         (m_BDVER1): New macro.
2279         (m_AMD_MULTIPLE): Add m_BDVER1.
2280         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
2281         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
2282         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
2283         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
2284         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
2285         x86_tune_sse_partial_reg_dependency,
2286         x86_tune_sse_unaligned_load_optimal,
2287         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
2288         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
2289         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
2290         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
2291         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
2292         Enable/disable for bdver1.
2293         (processor_target_table): Add bdver1_cost.
2294         (cpu_names): Add bdver1.
2295         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
2296          processor_alias_table.
2297         (ix86_expand_vector_move_misalign): Change.
2298         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
2299         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
2300         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
2301         of movupd/movdqu for SSE and AVX.
2302         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
2303         (ix86_tune_adjust_cost): Add code for bdver1.
2304         (standard_sse_constant_opcode): Add check for
2305         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
2306         of packed double xor for SSE and AVX.
2307
2308 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
2309
2310         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
2311         result to unsigned.
2312
2313 2010-05-14  Tristan Gingold  <gingold@adacore.com>
2314
2315         * toplev.c (default_debug_hooks): Remove this variable.
2316         (process_options): Remove assignments to default_debug_hooks.
2317
2318 2010-05-14  Martin Jambor  <mjambor@suse.cz>
2319
2320         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
2321         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
2322         * langhooks.h (struct lang_hooks_for_decls): Removed field
2323         fold_obj_type_ref.
2324         * tree.c (free_lang_data): Remove assignment to
2325         lang_hooks.fold_obj_type_ref.
2326         * tree.def (OBJ_TYPE_REF): Update comment.
2327
2328 2010-05-14  Richard Guenther  <rguenther@suse.de>
2329
2330         PR tree-optimization/44124
2331         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
2332
2333 2010-05-14  Alan Modra  <amodra@gmail.com>
2334
2335         PR target/44075
2336         * config/rs6000/rs6000.c (struct machine_function): Reorder
2337         fields for better packing.  Add lr_save_state.
2338         (rs6000_ra_ever_killed): Return lr_save_state if set.
2339         (rs6000_emit_eh_reg_restore): Set lr_save_state.
2340
2341 2010-05-13  Jan Hubicka  <jh@suse.cz>
2342
2343         * varpool.c (decide_is_variable_needed): Drop code checking
2344         TREE_SYMBOL_REFERENCED.
2345
2346 2010-05-13  Jan Hubicka  <jh@suse.cz>
2347
2348         * final.c (output_addr_const): Do not call mark_decl_referenced.
2349         * cgraphunit.c (process_function_and_variable_attributes): Use
2350         mark_needed_node dirrectly.
2351         (assemble_thunk): Do not call mark_decl_referenced.
2352
2353 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
2354
2355         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
2356
2357 2010-05-13  Jeff Law  <law@redhat.com>
2358
2359         * ira-conflicts.c (print_allocno_conflicts): New function broken out
2360         from...
2361         (print_conflicts): Call print_allocno_conflicts.
2362
2363 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2364
2365         PR debug/44104
2366         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
2367         if it is NULL.
2368
2369 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
2370
2371         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
2372         t-mingw-w64 or t-mingw-w32 for multilib configuration.
2373         * config/i386/t-mingw-w32: New.
2374         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
2375
2376 2010-05-13  Martin Jambor  <mjambor@suse.cz>
2377
2378         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
2379         gimple-fold.c).
2380         * gimple-fold.c (get_base_binfo_for_type): New function.
2381         (gimple_get_relevant_ref_binfo): Likewise.
2382         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2383         (gimple_fold_obj_type_ref): Likewise.
2384         (fold_gimple_call): Simplify condition for folding virtual calls
2385         and call gimple_fold_obj_type_ref.
2386         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
2387         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2388
2389 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
2390
2391         * config/rs6000/rs6000-protos.h
2392         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
2393         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
2394         (rs6000_debug_mode_dependent_address)
2395         (rs6000_mode_dependent_address_ptr): Likewise.
2396
2397 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2398
2399         PR debug/43983
2400         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
2401         by SRA.
2402         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
2403         * tree-sra.c (create_access_replacement): Call unshare_expr before
2404         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
2405         * dwarf2out.c: Include tree-flow.h.
2406         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
2407         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
2408         Handle DW_OP_bit_piece.
2409         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
2410         construct_piece_list, adjust_piece_list): New functions.
2411         (add_var_loc_to_decl): Handle SRA optimized variables.
2412         Adjust for var_loc_note to loc field renaming.
2413         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
2414         in VAR_LOCATION note.
2415         (new_loc_descr_op_bit_piece): New function.
2416         (dw_sra_loc_expr): New function.
2417         (dw_loc_list): Use it.  Don't handle the last range after the
2418         loop, handle it inside of the loop.  Adjust for var_loc_note
2419         to loc field renaming.
2420         (add_location_or_const_value_attribute): Only special case
2421         single entry loc lists if loc is NOTE_P.  Adjust for
2422         var_loc_note to loc field renaming.
2423         (dwarf2out_var_location): Don't set newloc->var_loc_note
2424         and newloc->next here.
2425
2426 2010-05-12  Jan Hubicka  <jh@suse.cz>
2427
2428         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
2429         flag.
2430         * cgraph.h (cgraph_only_called_directly_p,
2431         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
2432         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
2433         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
2434         (assemble
2435         * ipa.c (cgraph_remove_unreachable_nodes): Use
2436         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
2437         flags.
2438         * tree-inline.c (copy_bb): Check address_taken flag.
2439         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
2440         externally_visible flag.
2441
2442 2010-05-12  Jason Merrill  <jason@redhat.com>
2443
2444         PR bootstrap/44048
2445         PR target/44099
2446         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
2447         * sdbout.c (plain_type_1): Likewise.
2448         * dwarf2out.c (is_base_type): Likewise.
2449         (gen_type_die_with_usage): Likewise.  Generate
2450         DW_TAG_unspecified_type for any LANG_TYPE.
2451
2452 2010-05-12  Jan Hubicka  <jh@suse.cz>
2453
2454         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
2455         indrect edges too.
2456         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
2457         (cgraph_clone_edge): Update.
2458         (cgraph_node_remove_callees): Remove indirect calls too.
2459         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
2460         (cgraph_create_indirect_edge): Update prototype.
2461         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
2462         is_proper_for_analysis.
2463         (add_new_function, visited_nodes, function_insertion_hook_holder,
2464         get_local_reference_vars_info, mark_address_taken, mark_address,
2465         mark_load, mark_store, check_asm_memory_clobber, check_call,
2466         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
2467         (ipa_init): Do not initialize visited_nodes;
2468         function_insertion_hook_holder.
2469         (analyze_variable): Rewrite.
2470         (analyze_function): Rewrite.
2471         (copy_local_bitmap): Remove.
2472         (duplicate_node_dat): Do not duplicate local info.
2473         (generate_summary): Simplify to only walk cgraph.
2474         (write_node_summary_p, ipa_reference_write_summary,
2475         ipa_reference_read_summary): Remove.
2476         (propagate): Do not remove function insertion;
2477         generate summary.
2478         (pass_ipa_reference): NULLify summary handling fields.
2479         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
2480         (input_edge): Input ecf_flags.
2481         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
2482         (update_indirect_edges_after_inlining): Ignore edges with unknown
2483         param.
2484
2485 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
2486
2487         * implicit-zee.c: New file.
2488         * tree-pass.h (pass_implicit_zee): Declare.
2489         * passes.c (init_optimization_passes): Add zee pass.
2490         * common.opt (fzee): New flag.
2491         * timevar.def (TV_ZEE): Define.
2492         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
2493         and beyond.
2494         * Makefile.in (implicit-zee.o): Add new build file.
2495
2496 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2497             Nathan Froyd  <froydnj@codesourcery.com>
2498
2499         * c-common.c (sync_resolve_params): Remove write-only variable.
2500
2501 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
2502
2503         * target.h (struct gcc_target): Add mode_dependent_address_p field.
2504         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2505         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
2506         * targhooks.c (default_mode_dependent_address_p): New function.
2507         * targhooks.h (default_mode_dependent_address_p): Declare function.
2508         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2509         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
2510         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
2511         target hook. Change return type to bool.
2512         * recog.h (mode_dependent_address_p): Change return type to bool.
2513
2514 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2515             Nathan Froyd  <froydnj@codesourcery.com>
2516
2517         * tree-mudflap.c (build_function_type_0, build_function_type_1,
2518         build_function_type_2, build_function_type_3): Remove.
2519         (mudflap_init): Use build_function_type_list.
2520
2521 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2522             Nathan Froyd  <froydnj@codesourcery.com>
2523
2524         * coverage.c (build_fn_info_value): Call build_constructor instead of
2525         build_constructor_from_list.
2526         (build_ctr_info_value): Likewise.
2527         (build_gcov_info): Likewise.
2528
2529 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
2530
2531         * tree.c (build_constructor): Compute TREE_CONSTANT for the
2532         resultant constructor.
2533         (build_constructor_single): Don't set TREE_CONSTANT.
2534         (build_constructor_from_list): Don't compute TREE_CONSTANT.
2535
2536 2010-05-12  Jan Hubicka  <jh@suse.cz>
2537
2538         * cgraph.h (struct varpool_node): Add aux.
2539         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
2540         * varpool.c (varpool_remove_node): Do not remove initializer.
2541         (varpool_reset_queue): Export.
2542         (varpool_finalize_decl): Volatile vars are forced to be output.
2543         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
2544         replaced decl.
2545         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
2546         process_references, varpool_can_remove_if_no_refs): New functions.
2547         (cgraph_remove_unreachable_nodes): Handle variables too.
2548
2549 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2550
2551         PR target/44088
2552         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
2553
2554 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
2555
2556         PR middle-end/44085
2557         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
2558         change value of ORT_TASK.
2559         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
2560         (omp_notice_threadprivate_variable): New function.
2561         (omp_notice_variable): Call it for threadprivate variables.
2562         If enclosing ctx is a task, print enclosing task rather than
2563         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
2564         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
2565         if task has untied clause.
2566
2567         PR debug/42278
2568         * dwarf2out.c (base_type_die): Don't add name attribute here.
2569         (modified_type_die): Instead of sizetype use
2570         its underlying original type.  If a DW_TAG_base_type doesn't
2571         have name added, add __unknown__.
2572         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
2573         always call force_type_die instead.
2574
2575 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
2576
2577         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
2578         for __stack_chk_guard.
2579
2580 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2581
2582         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
2583         don't call start_source_file debug hook here...
2584         (finish_options): ... but here, after outputting predefined and
2585         command line defines and undefs.
2586
2587         PR middle-end/44071
2588         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
2589         no fallthru edge.
2590         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
2591         optimizing away empty bb with no successors, move over its
2592         footer chain to fallthru predecessor.
2593         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
2594         (rtl_split_edge): For asm goto call patch_jump_insn even if
2595         splitting fallthru edge.
2596
2597         PR c++/44059
2598         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
2599         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
2600         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
2601         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
2602         on DW.ref.* decls.
2603
2604         PR c++/44062
2605         * c-parser.c (c_parser_expression): Mark LHS of a comma
2606         expression as read if it is a decl, handled component or
2607         COMPOUND_EXPR with that on the RHS.
2608         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
2609         if it is a decl or handled component.
2610
2611 2010-05-11  Jan Hubicka  <jh@suse.cz>
2612
2613         * lto-symtab.c (lto_symtab_free): New function.
2614         * lto-streamer.h (lto_symtab_free): Declare.
2615
2616 2010-05-11  Jan Hubicka  <jh@suse.cz>
2617
2618         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
2619         that if function is needed it is reachable.
2620         (lto_output_node): See if it the function is reachable or referenced.
2621         (output_cgraph): Update call of lto_output_node.
2622         * lto-streamer.h (reachable_from_other_partition_p): Declare.
2623
2624 2010-05-11  Jan Hubicka  <jh@suse.cz>
2625
2626         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
2627         Mark as used.
2628
2629 2010-05-11  Jan Hubicka  <jh@suse.cz>
2630
2631         PR tree-optimize/44063
2632         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
2633         queue.
2634         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
2635         limits.
2636         (estimate_function_body_sizes): Compute sizes even when disregarding.
2637
2638 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
2639
2640         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
2641
2642 2010-05-11  Jan Hubicka  <jh@suse.cz>
2643
2644         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
2645         into every boundary.
2646
2647 2010-05-11  Jan Hubicka  <jh@suse.cz>
2648
2649         * matrix-reorg.c (matrix_reorg): Rebuild edges.
2650
2651 2010-05-11  Jan Hubicka  <jh@suse.cz>
2652
2653         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
2654         lto_streamer_cache_delete): Put nodes into heap.
2655         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
2656         heap.
2657
2658 2010-05-11  Jan Hubicka  <jh@suse.cz>
2659
2660         * cgraphbuild.c (cgraph_rebuild_references): New.
2661         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
2662         out extern inlines.
2663         * cgraph.h (cgraph_rebuild_references): Declare.
2664         * tree-inline.c (tree_function_versioning): Use it.
2665         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
2666
2667 2010-05-11  Jan Hubicka  <jh@suse.cz>
2668
2669         * cgraph.c: Include ipa-utils.h
2670         (cgraph_create_virtual_clone): Update references.
2671         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
2672
2673 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2674
2675         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
2676         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
2677         cache size.
2678
2679 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2680
2681         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
2682
2683 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2684
2685         * gcc.c (execute): For -### don't quote arguments that
2686         contain just alphanumerics and _/-. characters.
2687         * doc/invoke.texi: Document that change for -###.
2688
2689         PR debug/44023
2690         * df-problems.c (struct dead_debug): Add to_rescan field.
2691         (dead_debug_init): Clear to_rescan field.
2692         (dead_debug_finish): Rescan all debug insns in to_rescan
2693         bitmap and free the bitmap.
2694         (dead_debug_insert_before): Instead of rescanning debug insns
2695         immediately queue their rescanning until dead_debug_finish.
2696         (df_note_bb_compute): After dead_debug_add do continue instead
2697         of break.
2698
2699 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
2700
2701         PR debug/44028
2702         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
2703         clear also INSN_REG_USE_LIST.
2704
2705 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2706
2707         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
2708
2709 2010-05-10  Jan Hubicka  <jh@suse.cz>
2710
2711         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
2712         commited change.
2713
2714 2010-05-10  Jan Hubicka  <jh@suse.cz>
2715
2716         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
2717         Allocate encoders.
2718         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
2719         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
2720         (lto_streamer_cache_create): Init alloc pool.
2721         (lto_streamer_cache_delete): Free alloc pool.
2722         * lto-streamer.h: Include alloc pool.
2723         (lto_streamer_cache_d): Use alloc pool.
2724         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
2725
2726 2010-05-10  Jan Hubicka  <jh@suse.cz>
2727
2728         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
2729         * cgraphbuild.c: Include except.h
2730         (record_type_list, record_eh_tables): New function.
2731         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
2732
2733 2010-05-10  Jan Hubicka  <jh@suse.cz>
2734
2735         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
2736         __frame_dummy_init_array_entry, force_to_data): Attribute as used
2737         rather than unused.
2738
2739 2010-05-10  Michael Matz  <matz@suse.de>
2740
2741         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
2742         (can_reassociate_p): Use FLOAT_TYPE_P.
2743         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
2744         (vect_force_simple_reduction): ... this.
2745         * tree-parloops.c (gather_scalar_reductions): Use
2746         vect_force_simple_reduction.
2747         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
2748         vect_is_simple_reduction, add modify argument, if true rewrite
2749         "a-b" into "a+(-b)".
2750         (vect_is_simple_reduction, vect_force_simple_reduction): New
2751         functions.
2752         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
2753
2754 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
2755             Vladimir Makarov  <vmakarov@redhat.com>
2756
2757         PR rtl-optimization/44012
2758         * ira-build.c (remove_unnecessary_allocnos): Nullify
2759         regno_allocno_map of the removed allocno.
2760
2761 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2762
2763         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
2764         to /dev/null.
2765         * configure: Regenerate.
2766
2767 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2768
2769         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
2770         unused.
2771         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
2772         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
2773         support in Sun ld.
2774         * configure: Regenerate.
2775
2776 2010-05-10  Richard Guenther  <rguenther@suse.de>
2777
2778         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
2779         marked if the entry identifier is marked.
2780
2781 2010-05-10  Richard Guenther  <rguenther@suse.de>
2782
2783         * c-common.c (struct c_common_attributes): Add fnspec attribute.
2784         (handle_fnspec_attribute): New function.
2785         * gimple.h (gimple_call_return_flags): Declare.
2786         (gimple_call_arg_flags): Likewise.
2787         * gimple.c (gimple_call_arg_flags): New function.
2788         (gimple_call_return_flags): Likewise.
2789         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
2790         New argument flags.
2791         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
2792         return value flags.
2793         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
2794         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
2795         main work to ...
2796         (make_heapvar_for): ... this new function.
2797         (handle_rhs_call): Handle fnspec attribute argument specifiers.
2798         (handle_lhs_call): Likewise.
2799         (find_func_aliases): Adjust.
2800
2801 2010-05-10  Richard Guenther  <rguenther@suse.de>
2802
2803         PR tree-optimization/44050
2804         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
2805
2806 2010-05-10  Wei Guozhi  <carrot@google.com>
2807
2808         PR target/42879
2809         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
2810
2811 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
2812
2813         PR c/10676
2814         * c-typeck.c (lookup_field): Take a type directly.  Update
2815         recursive calls.
2816         (build_component_ref): Update call to lookup_field.
2817         (set_init_label): Use lookup_field to find initialized field.
2818         Handle returned list of fields like a sequence of designators.
2819
2820 2010-05-09  Richard Guenther  <rguenther@suse.de>
2821
2822         PR middle-end/44024
2823         * fold-const.c (tree_single_nonzero_warnv_p): Properly
2824         handle &FUNCTION_DECL.
2825
2826 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
2827
2828         PR c/4784
2829         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
2830         structures and unions recursively.
2831         (detect_field_duplicates): Move duplicate detection with a hash to
2832         detect_field_duplicates_hash.  Always use a hash if anonymous
2833         structures or unions are present.
2834         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
2835         give errors.
2836
2837 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2838
2839         PR target/44046
2840         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
2841         detect Atom, Core 2 and Core i7.
2842
2843 2010-05-09  Richard Guenther  <rguenther@suse.de>
2844
2845         * gcc.c (store_arg): Handle temporary file deletion for
2846         joined arguments.
2847
2848 2010-05-09  Richard Guenther  <rguenther@suse.de>
2849
2850         PR middle-end/44043
2851         * ipa-inline.c (estimate_function_body_sizes): Return after
2852         disregarding inline limits.
2853
2854 2010-05-09  Richard Guenther  <rguenther@suse.de>
2855
2856         * gcc.c (store_arg): Revert last change.
2857
2858 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
2859
2860         PR middle-end/28685
2861         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
2862         (optimize_ops_list): Call it.
2863
2864 2010-05-08  Richard Guenther  <rguenther@suse.de>
2865
2866         PR tree-optimization/44030
2867         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
2868         NECESSARY flag if we propagate from a inserted expression.
2869
2870 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2871
2872         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
2873         domain types as equal if they are both PLACEHOLDER_EXPRs.
2874
2875 2010-05-08  Richard Guenther  <rguenther@suse.de>
2876
2877         * lto-wrapper.c (run_gcc): Remove linker output from
2878         command line for LTRANS invocation.
2879
2880 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
2881
2882         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2883         lto-macho as lto_binary_reader.
2884         * target.h (struct gcc_target): New hooks lto_start and lto_end.
2885         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
2886         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
2887         in lto_start and lto_end calls.
2888         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
2889         magic numbers.
2890         (scan_prog_file): Update is_elf_or_coff call.
2891         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
2892
2893         * collect2.c (main): Fix enum comparison.
2894
2895         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
2896         Add prototypes.
2897         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
2898         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
2899         and TARGET_ASM_LTO_END.
2900         * darwin.c: Include obstack.h and lto-streamer.h.
2901         (lto_section_names_offset, lto_section_names_obstack,
2902         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
2903         global variables.
2904         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
2905         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
2906         to a temporary file.
2907         (darwin_asm_lto_end): New function.  Restore asm_out_file.
2908         (darwin_asm_named_section): For LTO sections, replace the name with
2909         the offset of the section name in a string table, and build this
2910         table.
2911         (darwin_file_start): Initialize global vars for LTO support.
2912         (darwin_file_end): If output to asm_out_file was redirected, append it
2913         to the proper asm_out_file here.  Add the section names section.
2914
2915 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
2916
2917         * c-pragma.c (pending_weak_d, pending_weak): New.
2918         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
2919         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
2920         handle_pragma_weak): Update the uses of pending_weaks.
2921
2922 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2923
2924         PR documentation/44016
2925         * doc/standards.texi (Standards): Link to unversioned
2926         cxx0x_status.html page.
2927
2928 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
2929
2930         PR target/43708
2931         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
2932         in addition to TREE_USED, to avoid "set but unused" warnings.
2933
2934 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2935
2936         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
2937         (is_loop_prefetching_profitable): Do not insert prefetches
2938         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
2939         times the prefetch ahead distance.
2940
2941 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2942
2943         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
2944         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
2945         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
2946         the unroll_factor.
2947
2948 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2949
2950         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
2951         a diagnostic info when the insn-to-mem ratio is too small.
2952
2953 2010-05-07  Richard Guenther <rguenther@suse.de>
2954
2955         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
2956         the linker plugin.
2957         (store_arg): Queue temp_filename for deletion instead of
2958         the whole argument.
2959
2960 2010-05-07  Richard Guenther  <rguenther@suse.de>
2961
2962         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
2963         (run_gcc): Handle LTRANS phase invocation.
2964         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
2965
2966 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
2967
2968         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
2969         this is also meaningful on PARM_DECLs and RESULT_DECLs.
2970
2971 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2972
2973         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
2974
2975 2010-05-07  Richard Guenther  <rguenther@suse.de>
2976
2977         PR tree-optimization/44020
2978         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
2979         code when PRE is not yet initialized.
2980
2981 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2982
2983         * config/mips/dbxmdebug.h: Remove.
2984         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
2985
2986 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
2987
2988         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
2989         with null pointer and also warn about ordered comparison of zero with
2990         pointer if -Wextra.
2991
2992 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2993
2994         * graphite-blocking.c
2995         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
2996         * graphite-clast-to-gimple.c
2997         (clast_to_gcc_expression): Same.
2998         (precision_for_value): Same.
2999         (precision_for_interval): Same.
3000         (gcc_type_for_interval): Same.
3001         (graphite_create_new_guard): Same.
3002         (compute_bounds_for_level): Same.
3003         (graphite_create_new_loop_guard): Same.
3004         * graphite-interchange.c
3005         (build_linearized_memory_access): Same.
3006         (pdr_stride_in_loop): Same.
3007         (memory_strides_in_loop_1): Same.
3008         (memory_strides_in_loop): Same.
3009         (extend_scattering): Same.
3010         (psct_scattering_dim_for_loop_depth): Same.
3011         (pbb_number_of_iterations): Same.
3012         * graphite-poly.h
3013         (debug_iteration_domains): Same.
3014         * graphite-ppl.c
3015         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
3016         (ppl_set_inhomogeneous_gmp): Same.
3017         (ppl_strip_loop): Same.
3018         (ppl_lexico_compare_linear_expressions): Same.
3019         (ppl_read_polyhedron_matrix): Same.
3020         (ppl_max_for_le_pointset): Same.
3021         * graphite-ppl.h
3022         (ppl_read_polyhedron_matrix): Same.
3023         (tree_int_to_gmp): Same.
3024         (gmp_cst_to_tree): Same.
3025         (ppl_set_inhomogeneous): Same.
3026         (ppl_set_inhomogeneous_tree): Same.
3027         (ppl_set_coef): Same.
3028         (ppl_set_coef_tree): Same.
3029         * graphite-sese-to-poly.c
3030         (build_pbb_scattering_polyhedrons): Same.
3031         (build_scop_scattering): Same.
3032         (scan_tree_for_params_right_scev): Same.
3033         (scan_tree_for_params): Same.
3034         (find_params_in_bb): Same.
3035         (find_scop_parameters): Same.
3036         (add_upper_bounds_from_estimated_nit): Same.
3037         (build_loop_iteration_domains): Same.
3038         (add_condition_to_domain): Same.
3039         (pdr_add_memory_accesses): Same.
3040
3041 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3042
3043         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
3044         CLooG's value_* macros to their respective mpz_* counterparts.
3045         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
3046         (graphite_create_new_loop_guard): Same.
3047         * graphite-interchange.c (build_linearized_memory_access): Same.
3048         (pdr_stride_in_loop): Same.
3049         (memory_strides_in_loop_1): Same.
3050         (1st_interchange_profitable_p): Same.
3051         * graphite-poly.c (extend_scattering): Same.
3052         (psct_scattering_dim_for_loop_depth): Same.
3053         (pbb_number_of_iterations): Same.
3054         (pbb_number_of_iterations_at_time): Same.
3055         * graphite-poly.h (new_1st_loop): Same.
3056         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
3057         (oppose_constraint): Same.
3058         (insert_constraint_into_matrix): Same.
3059         (ppl_set_inhomogeneous_gmp): Same.
3060         (ppl_set_coef_gmp): Same.
3061         (ppl_strip_loop): Same.
3062         (ppl_lexico_compare_linear_expressions): Same.
3063         (ppl_max_for_le_pointset): Same.
3064         (ppl_min_for_le_pointset): Same.
3065         (ppl_build_realtion): Same.
3066         * graphite-ppl.h (gmp_cst_to_tree): Same.
3067         (ppl_set_inhomogeneous): Same.
3068         (ppl_set_inhomogeneous_tree): Same.
3069         (ppl_set_coef): Same.
3070         (ppl_set_coef_tree): Same.
3071         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
3072         (build_scop_scattering): Same.
3073         (add_value_to_dim): Same.
3074         (scan_tree_for_params_right_scev): Same.
3075         (scan_tree_for_params_int): Same.
3076         (scan_tree_for_params): Same.
3077         (find_params_in_bb): Same.
3078         (find_scop_parameters): Same.
3079         (add_upper_bounds_from_estimated_nit): Same.
3080         (build_loop_iteration_domains): Same.
3081         (create_linear_expr_from_tree): Same.
3082         (add_condition_to_domain): Same.
3083         (pdr_add_memory_accesses): Same.
3084
3085 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
3086             Jason Merrill  <jason@redhat.com>
3087
3088         * c-common.c (c_common_reswords): Add nullptr.
3089         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
3090         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
3091         (gen_type_die_with_usage): Likewise.
3092         * dbxout.c (dbxout_type): Likewise.
3093         * sdbout.c (plain_type_1): Likewise.
3094
3095 2010-05-06  Jason Merrill  <jason@redhat.com>
3096
3097         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
3098         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
3099         ret appropriately.
3100         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
3101
3102         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
3103         stripping WITH_SIZE_EXPR.
3104         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
3105         change.
3106
3107 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3108
3109         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
3110         list of obsolete configurations.
3111         Disabled check for obsolete configurations.
3112         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
3113         Removed support for previous versions.
3114         * config/mips/iris.h: Removed.
3115         * config/mips/iris5.h: Removed.
3116         * config/mips/iris6.h: Merged old iris.h contents.
3117         (TARGET_IRIX): Removed.
3118         (DRIVER_SELF_SPECS): Removed mabi=32.
3119         (IDENT_ASM_OP): Removed undef.
3120         (STARTFILE_SPEC): Removed mabi=32.
3121         (ENDFILE_SPEC): Likewise.
3122         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
3123         (MACHINE_TYPE): Update for IRIX 6.5.
3124         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
3125         TARGET_IRIX by TARGET_IRIX6.
3126         (mips_file_start): Likewise.
3127         (mips_output_external): Remove IRIX 5/6 O32 support.
3128         (mips_output_function_prologue): Likewise.
3129         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
3130         TARGET_IRIX6.
3131         (TARGET_CPU_CPP_BUILTINS): Likewise.
3132         (TARGET_IRIX): Removed.
3133         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
3134         (MULTILIB_DIRNAMES): Removed 32.
3135         (MULTILIB_OSDIRNAMES): Removed ../lib.
3136         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
3137         (Specific, mips-sgi-irix5): Document removal.
3138         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
3139         Remove references to older IRIX 6 releases and the O32 ABI.
3140
3141 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
3142
3143         PR bootstrap/43994
3144         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
3145         instead of DF_REF_REAL_REG.
3146
3147 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
3148
3149         PR target/43888
3150         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
3151         handling to still return true for x64 targets.
3152
3153 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3154
3155         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
3156
3157 2010-05-06  Jan Hubicka  <jh@suse.cz>
3158
3159         PR tree-optimization/43791
3160         * ipa-inline.c (update_caller_keys): Remove bogus
3161         disregard_inline_limits check.
3162
3163 2010-05-06  Michael Matz  <matz@suse.de>
3164
3165         PR tree-optimization/43984
3166         * tree-ssa-pre.c (inserted_phi_names): Remove.
3167         (inserted_exprs): Change to bitmap.
3168         (create_expression_by_pieces): Set bits, don't append to vector.
3169         (insert_into_preds_of_block): Don't handle inserted_phi_names.
3170         (eliminate): Don't look at inserted_phi_names, remove deleted
3171         insns from inserted_exprs.
3172         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
3173         (init_pre, fini_pre): Allocate and free bitmaps.
3174         (execute_pre): Insert insns on edges before elimination.
3175
3176 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3177
3178         * tree.c (initializer_zerop): Handle STRING_CST.
3179
3180 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3181
3182         PR 40989
3183         * doc/invoke.texi (Wimplicit): Document as C only.
3184         * opts.c (common_handle_option): Add argument kind.
3185         (handle_option): Rename as read_cmdline_option. Factor out code to...
3186         (handle_option): ... here. New.
3187         (handle_options): Rename as read_cmdline_options.
3188         (decode_options): Update call.
3189         (set_option): Use option index instead of option pointer. Classify
3190         diagnostics correctly.
3191         (enable_warning_as_error): Call handle_option.
3192         * opts.h (set_option): Update declaration.
3193         (handle_option): Declare.
3194         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
3195         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
3196         * c-opts.c (set_Wimplicit): Delete.
3197         (c_family_lang_mask): New static constant.
3198         (c_common_handle_option): Add argument kind. Use handle_option
3199         instead of set_Wimplicit.
3200         (c_common_post_options): warn_implicit and warn_implicit_int
3201         are disabled by default.
3202         * c-common.c (warn_implicit): Do not define here.
3203         * c-common.h (warn_implicit): Do not declare here.
3204         (c_common_handle_option): Update declaration.
3205         * lto-opts.c (lto_reissue_options): Update call to set_option.
3206
3207 2010-05-06  Richard Guenther  <rguenther@suse.de>
3208
3209         PR tree-optimization/43571
3210         * domwalk.c (walk_dominator_tree): Walk the dominator
3211         sons in more optimal order.
3212
3213 2010-05-06  Richard Guenther  <rguenther@suse.de>
3214
3215         PR tree-optimization/43934
3216         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
3217         (stmt_cost): Likewise.
3218         (extract_true_false_args_from_phi): New helper.
3219         (determine_max_movement): For PHI nodes verify we can hoist them
3220         and compute their cost.
3221         (determine_invariantness_stmt): Handle PHI nodes.
3222         (move_computations_stmt): Likewise.  Hoist PHI nodes in
3223         if-converted form using COND_EXPRs.
3224         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
3225         (tree_ssa_lim): Likewise.
3226         * tree-flow.h (tree_ssa_lim): Adjust prototype.
3227         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
3228
3229 2010-05-06  Richard Guenther  <rguenther@suse.de>
3230
3231         PR tree-optimization/43987
3232         * tree-ssa-structalias.c (could_have_pointers): For possibly
3233         address-taken variables force pointers to be recorded.
3234         (create_variable_info_for_1): Likewise.
3235         (push_fields_onto_fieldstack): Pass in wheter all fields
3236         must have pointers.
3237         (find_func_aliases): Query types instead of vars whether
3238         they contain pointers where appropriate.
3239
3240 2010-05-06  Jan Hubicka  <jh@suse.cz>
3241
3242         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
3243         (record_reference, mark_address, mark_load, mark_store): Record
3244         references.
3245         (record_references_in_initializer): Update call of record_references.
3246         (rebuild_cgraph_edges): Remove all references before rebuiding.
3247         * cgraph.c (cgraph_create_node): Clear ref list.
3248         (cgraph_remove_node): Remove references.
3249         (dump_cgraph_node): Dump references.
3250         (cgraph_clone_node): Clone references.
3251         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
3252         (struct cgraph_node, varpool_node): Add ref_lst.
3253         * ipa-ref.c: New file.
3254         * ipa-ref.h: New file.
3255         * ipa-ref-inline.h: New file.
3256         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
3257         (referenced_from_other_partition_p): New function.
3258         (lto_output_varpool_node): Take set arugment; call
3259         referenced_from_other_partition.
3260         (lto_output_ref): New.
3261         (add_references): New.
3262         (output_refs): New.
3263         (output_cgraph): Compute boundary based on references; output refs.
3264         (output_varpool): Accept cgraph_node_set argument.
3265         (input_ref): New.
3266         (input_refs): New.
3267         (input_cgraph): Call input_refs.
3268         * lto-section-in.c (lto_section_name): Add refs.
3269         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
3270         (ipa-ref.o): New file.
3271         * varpool.c (varpool_node): Clear ipa ref list.
3272         (varpool_remove_node): Remove references.
3273         (dump_varpool_node): Dump references.
3274         (varpool_assemble_decl): Only compile finalized ones.
3275         (varpool_extra_name_alias): Initialize ref list.
3276         * lto-streamer.c (lto-get_section_name): Add .refs section.
3277         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
3278         (referenced_from_other_partition_p): Declared.
3279
3280 2010-05-06  Ira Rosen  <irar@il.ibm.com>
3281
3282         PR tree-optimization/43901
3283         * tree-vect-stmts.c (vectorizable_call): Assert that vector
3284         type is not NULL if it's transformation phase, and return
3285         FALSE if it's analysis.
3286         (vectorizable_conversion, vectorizable_operation,
3287         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
3288
3289 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
3290
3291         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3292         Delete.
3293         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3294         New define.
3295         * config/mips/mips-protos.h
3296         (mips_small_register_classes_for_mode_p): Delete prototype.
3297
3298 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
3299
3300         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
3301         * config/arm/arm.c (multiple_operation_profitable_p,
3302         compute_offset_order): New static functions.
3303         (load_multiple_sequence, store_multiple_sequence): Use them.
3304         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
3305         memory offsets, not register numbers.
3306         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
3307
3308 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
3309
3310         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
3311         (get_pending_sizes, put_pending_size, put_pending_sizes):
3312         Update the uses of pending_sizes.
3313         * c-decl.c (store_parm_decls): Likewise.
3314         * c-tree.h (struct c_arg_info): Likewise.
3315         * tree.h: Update the prototype for get_pending_sizes and
3316         put_pending_sizes.
3317
3318 2010-05-05  Jason Merrill  <jason@redhat.com>
3319
3320         PR debug/43370
3321         * c-common.c (handle_aligned_attribute): Respect
3322         ATTR_FLAG_TYPE_IN_PLACE.
3323
3324         PR testsuite/43758
3325         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
3326         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3327         (TARGET_INITIALIZER): Use it.
3328         * c-common.c (attribute_takes_identifier_p): Call it.
3329         * c-common.h: Update prototype.
3330         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
3331         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3332
3333 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
3334
3335         PR debug/43950
3336         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
3337         DW_ID_down_case for Fortran compilation units.
3338
3339 2010-05-05  Jan Hubicka  <jh@suse.cz>
3340
3341         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
3342         handle aliases.
3343
3344 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
3345
3346         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
3347         a variable-sized RESULT_DECL.
3348
3349 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
3350
3351         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
3352
3353 2010-05-05  Jason Merrill  <jason@redhat.com>
3354
3355         PR c++/43787
3356         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
3357         returns GS_OK.
3358         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
3359
3360 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
3361             Jakub Jelinek  <jakub@redhat.com>
3362
3363         PR debug/43478
3364         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
3365         (dead_debug_init, dead_debug_finish): New functions.
3366         (dead_debug_add, dead_debug_insert_before): Likewise.
3367         (df_note_bb_compute): Initialize a dead_debug object, add dead
3368         debug uses to it, insert debug bind insns before death insns,
3369         reset debug insns that refer to pending uses at the end.
3370         * rtl.h (make_debug_expr_from_rtl): New prototype.
3371         * varasm.c (make_debug_expr_from_rtl): New function.
3372
3373 2010-05-05  Jan Hubicka  <jh@suse.cz>
3374
3375         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
3376         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
3377         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
3378         lto_varpool_encoder_deref, lto_varpool_encoder_size,
3379         lto_varpool_encoder_encode_initializer_p,
3380         lto_set_varpool_encoder_encode_initializer): New functions.
3381         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
3382         call output_varpool.
3383         (input_varpool_node): Do not always set analyzed.
3384         (input_cgraph_1): Return vector of cgraph nodes.
3385         (input_varpool_1): Return vector of varpools.
3386         (input_cgraph): Free the vectors.
3387         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
3388         output only initializers needed.
3389         (lto_output): Only call output_cgraph.
3390         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
3391         * lto-section-out.c (lto_new_out_decl_state): Initialize
3392         state->varpool_node_encoder.
3393         * lto-streamer.h (lto_varpool_encoder_d): New.
3394         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
3395         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
3396         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
3397         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
3398         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
3399         Declare.
3400         (output_varpool, input_varpool): Remove declarations.
3401
3402 2010-05-05  Jan Hubicka  <jh@suse.cz>
3403
3404         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
3405         with body can prevail.
3406
3407 2010-05-05  Jan Hubicka  <jh@suse.cz>
3408
3409         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
3410         size.
3411
3412 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3413
3414         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
3415
3416         * gengtype.h (erro_at_line): Constify pos argument.
3417
3418         * gengtype.c: Include hashtab.h.
3419         (enum gc_used): Document GC_MAYBE_POINTED_TO.
3420         (error_at_line): Constify pos argument.
3421         (do_typedef): Initialize p->opt field.
3422         (get_file_gtfilename): Fix comment typo.
3423         (struct walk_type_data): Constify line field.
3424         (get_output_file_for_structure): New function.
3425         (write_local_func_for_structure): Constify orig_s argument.
3426         Use get_output_file_for_structure.
3427         (write_func_for_structure): Use get_output_file_for_structure.
3428         (INDENT): New define.
3429         (dump_pair, dump_type, dump_type_list, dump_typekind)
3430         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
3431         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
3432         functions.
3433         (seen_types): New variable.
3434         (main): New variable do_dump.  Process "-d" command line option.
3435         Call dump_everything if dump requested.
3436
3437 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
3438
3439         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
3440         in a temporary instead of invoking the macro multiple times.
3441         (track_expr_p): Likewise.
3442
3443 2010-05-04  Neil Vachharajani <nvachhar@google.com>
3444
3445         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
3446         per new semantics.
3447         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
3448         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
3449         conditions for printing notes.
3450         * common.opt (-Wcoverage-mismatch): Allow negative, default to
3451         true, update documentation.
3452         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
3453
3454 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
3455
3456         PR c/43981
3457         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
3458         on dimen.
3459
3460 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3461
3462         PR target/43799
3463         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
3464         (*sse_prologue_save_insn1): Likewise.
3465         (SSE prologue save splitter): Likewise.
3466
3467 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
3468
3469         * tree.c (free_lang_data_in_one_sizepos): New inline function.
3470         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
3471         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
3472         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
3473         all decls.  Call it on DECL_FIELD_OFFSET of fields.
3474         (find_decls_types_r): Follow DECL_VALUE_EXPR.
3475         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
3476
3477 2010-05-04  Martin Jambor  <mjambor@suse.cz>
3478
3479         * tree-sra.c (build_access_from_expr_1): The first parameter type
3480         changed to simple tree.
3481         (build_access_from_expr): Likewise, gsi parameter was eliminated.
3482         (scan_assign_result): Renamed to assignment_mod_result, enum elements
3483         renamed as well.
3484         (build_accesses_from_assign): Removed all parameters except for a
3485         simple gimple statement.  Now returns a simple bool.
3486         (scan_function): All non-analysis parts moved to separate functions
3487         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
3488         parameters and updated both callers.
3489         (sra_modify_expr): Removed parameter data.
3490         (sra_modify_function_body): New function.
3491         (perform_intra_sra): Call sra_modify_function_body to modify the
3492         function body.
3493         (replace_removed_params_ssa_names): Parameter data changed into
3494         adjustments vector.
3495         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
3496         changed the parameter dont_convert to convert with the opposite
3497         meaning.
3498         (sra_ipa_modify_assign): Parameter data changed into adjustments
3499         vector, return value changed to bool.
3500         (ipa_sra_modify_function_body): New function.
3501         (sra_ipa_reset_debug_stmts): Updated a comment.
3502         (modify_function): Use ipa_sra_modify_function_body to modify function
3503         body.
3504
3505 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3506
3507         PR middle-end/43671
3508         * alias.c (true_dependence): Handle the same VALUE in x and mem.
3509         (canon_true_dependence): Likewise.
3510         (write_dependence_p): Likewise.
3511
3512 2010-05-04  Jan Hubicka  <jh@suse.cz>
3513
3514         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
3515         * cgraphbuild.c: Include ipa-utils.h
3516         (record_reference_ctx): New struct.
3517         (record_reference): Simplify to work on initializers; not statements.
3518         (mark_address, mark_load, mark_store): New.
3519         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3520         walk PHI nodes too.
3521         (record_references_in_initializer): Update use of record_reference.
3522         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3523         walk PHI nodes too.
3524
3525 2010-05-04  Jan Hubicka  <jh@suse.cz>
3526
3527         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
3528         node will be removed anyway.
3529         (lto_varpool_replace_node): Allow also unanalyzed nodes;
3530         relink aliases of node into prevailing node.
3531         * varpool.c (varpool_remove_node): Remove aliases properly;
3532         when removing node, remove all its aliases too; remove DECL_INITIAL
3533         of removed node; ggc_free the varpool node.
3534
3535 2010-05-04  Richard Guenther  <rguenther@suse.de>
3536
3537         PR tree-optimization/43879
3538         * tree-ssa-structalias.c (alias_get_name): Use
3539         DECL_ASSEMBLER_NAME if available.
3540         (create_function_info_for): Return the varinfo node.
3541         (ipa_pta_execute): Associate same-body aliases and extra names
3542         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
3543
3544 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
3545
3546         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
3547
3548 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
3549
3550         PR bootstrap/43964
3551         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
3552         only if HONOR_REG_ALLOC_ORDER is not defined.
3553
3554 2010-05-04  Richard Guenther  <rguenther@suse.de>
3555
3556         PR tree-optimization/43949
3557         * tree-vrp.c (extract_range_from_binary_expr): Only handle
3558         TRUNC_MOD_EXPR.
3559
3560 2010-04-26  Jason Merrill  <jason@redhat.com>
3561
3562         * c.opt (-fstrict-enums): New.
3563         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
3564
3565 2010-05-03  David Ung <davidu@mips.com>
3566             James E. Wilson  <wilson@codesourcery.com>
3567
3568         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
3569         emit the trap instruction before the divide for TUNE_74K.
3570
3571 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
3572
3573         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
3574         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
3575         based on the above, for new target hook.
3576
3577         * hooks.c (hook_bool_mode_true): New generic hook.
3578         * hooks.h (hook_bool_mode_true): Add prototype.
3579
3580         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
3581         target hook.
3582         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
3583         target hook, set to hook_bool_mode_false.
3584         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
3585         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
3586         with targetm.small_register_classes_for_mode_p.
3587         (find_reusable_reload): Likewise.
3588         (combine_reloads): Likewise.
3589         * reload1.c (reload_as_needed): Likewise.
3590         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
3591         * ifcvt.c (noce_process_if_block, check_cond_move_block,
3592         dead_or_predicable): Likewise.
3593         * regmove.c (optimize_reg_copy_1): Likewise.
3594         * calls.c (prepare_call_address): Likewise.
3595         (precompute_register_parameters): Likewise.
3596
3597         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
3598         hook definition.
3599         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
3600         implementation of the hook that considers all register classes
3601         small except for SH64.
3602         (sh_override_options): Use the new hook.
3603         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
3604         Add prototype.
3605
3606         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
3607         hook definition.
3608         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
3609         implementation of the hook that considers all register classes
3610         small for THUMB1.
3611         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
3612         Add prototype.
3613
3614         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
3615         hook definition.
3616         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
3617         implementation of the hook that considers all register classes
3618         small for MIPS16.
3619         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
3620         Add prototype.
3621
3622         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
3623         hook definition.
3624         * config/m32c/m32c.h: Likewise.
3625         * config/pdp11/pdp11.h: Likewise.
3626         * config/avr/avr.h: Likewise.
3627         * config/xtensa/xtensa.h: Likewise.
3628         * config/m68hc11/m68hc11.h: Likewise.
3629         * config/mn10300/mn10300.h: Likewise.
3630         * config/mcore/mcore.h: Likewise.
3631         * config/h8300/h8300.h: Likewise.
3632         * config/bfin/bfin.h: Likewise.
3633
3634         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
3635         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
3636
3637 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
3638
3639         * double-int.h (tree_to_double_int): Remove macro.
3640         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
3641         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
3642         (tree_to_double_int): New function.
3643         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
3644         Move ...
3645         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
3646
3647 2010-05-03  Richard Guenther  <rguenther@suse.de>
3648
3649         PR tree-optimization/43971
3650         * tree-ssa-structalias.c (get_constraint_for_1): Fix
3651         constraints in the !flag_delete_null_pointer_checks case.
3652
3653 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
3654
3655         PR debug/43972
3656         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
3657         result mode matches original rtl mode.
3658
3659 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
3660
3661         PR target/43888
3662         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
3663
3664 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3665
3666         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
3667         when processing flag options.
3668
3669 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3670
3671         * gcov-iov.c (main): Change format string placeholder
3672         from %#08x to 0x%08x.
3673         * genchecksum.c (dosum): Change format string placeholder
3674         from %#02x to 0x%02x.
3675
3676 2010-05-02  Richard Guenther  <rguenther@suse.de>
3677
3678         PR tree-optimization/43879
3679         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
3680
3681 2010-05-02  Bruno Haible  <bruno@clisp.org>
3682
3683         * doc/extend.texi (Function Attributes): Fix a typo.
3684
3685 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3686
3687         Revert:
3688         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
3689         placeholder from 0x%x to %#x.
3690         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
3691         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
3692         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
3693         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
3694         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
3695         * config/i386/i386.c (ix86_target_string): Ditto.
3696         * config/i386/i386.c (output_pic_addr_const): Ditto.
3697         (print_operand): Ditto.
3698
3699 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3700
3701         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
3702         placeholder from 0x%x to %#x.
3703         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
3704         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
3705         (ASM_OUTPUT_DEBUG_DATA): Ditto.
3706         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
3707         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
3708         * optc-gen.awk: Ditto.
3709         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
3710         (HOST_WIDE_INT_PRINT_HEX): Ditto.
3711         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
3712         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
3713
3714 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
3715
3716         * target.h (struct calls): Add function_value_regno_p field.
3717         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
3718         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
3719         * targhooks.c (default_function_value_regno_p): New function.
3720         * targhooks.h (default_function_value_regno_p): Declare function.
3721         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
3722         * builtins.c. (apply_result_size): (Ditto.).
3723         * combine.c. (likely_spilled_retval_p): (Ditto.).
3724         * mode-switching.c. Include 'target.h'.
3725         (create_pre_exit): Use function_value_regno_p hook.
3726         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
3727         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
3728         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
3729
3730         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
3731         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
3732         (ix86_function_value_regno_p): Declare as static, change argument
3733         type to const unsigned int.
3734         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
3735
3736 2010-05-01  Richard Guenther  <rguenther@suse.de>
3737
3738         PR tree-optimization/43949
3739         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
3740         types.
3741         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
3742
3743 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
3744
3745         * rtl.h (CONST_DOUBLE_P): Define.
3746         (rtx_to_double_int): Declare.
3747         * emit-rtl.c (rtx_to_double_int): New function.
3748         * dwarf2out.c (insert_double): New function.
3749         (loc_descriptor, add_const_value_attribute): Clean up, use
3750         rtx_to_double_int and insert_double functions.
3751
3752 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
3753
3754         * doc/extend.texi (Inline): Add missing return keyword to examples.
3755         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
3756         "command-line".
3757
3758 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
3759
3760         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
3761         the variable part of the offset as well.  Use highest_pow2_factor for
3762         all alignment checks.
3763
3764 2010-04-30  Richard Guenther  <rguenther@suse.de>
3765
3766         PR tree-optimization/43879
3767         * tree-ssa-structalias.c (type_could_have_pointers): Functions
3768         can have pointers.
3769
3770 2010-04-30  Jan Hubicka  <jh@suse.cz>
3771
3772         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
3773         varpool.
3774         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
3775
3776 2010-04-30  Jan Hubicka  <jh@suse.cz>
3777
3778         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
3779         New.
3780         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
3781         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
3782         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
3783         cgraph_node_set_needs_ltrans_p): Remove.
3784
3785 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
3786
3787         * sdbout.c: Include vec.h, do not include varray.h.
3788         (deferred_global_decls, sdbout_global_decl,
3789         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
3790         * toplev.c: Do not include varray.h.
3791         (dump_memory_report): Do not dump VARRAY statistics.
3792         * gengtype.c (open_base_file): Ignore varray.h.
3793         * Makefile.in: Update for abovementioned changes.
3794         Remove all traces of varray.c and varray.h.
3795         * varray.c: Remove file.
3796         * varray.h: Remove file.
3797
3798 2010-04-30  Jan Hubicka  <jh@suse.cz>
3799
3800         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
3801         references.
3802
3803 2010-04-30  Jan Hubicka  <jh@suse.cz>
3804
3805         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
3806         needed.
3807
3808 2010-04-30  Richard Guenther  <rguenther@suse.de>
3809
3810         * tree-ssa-structalias.c (get_constraint_for_1): Generate
3811         constraints for CONSTRUCTOR.
3812
3813 2010-04-30  Richard Guenther  <rguenther@suse.de>
3814
3815         PR lto/43946
3816         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
3817         first after all lowering passes.
3818
3819 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
3820
3821         * toplev.c: Include varray.h for statistics dumping.
3822         * tree.h: Do not declare varray_head_tag.
3823         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
3824         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
3825         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
3826         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
3827         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
3828         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
3829         c-common.c, c-common.h, reg-stack.c, basic-block.h,
3830         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
3831         include varray.h.
3832         * Makefile.in: Update for abovementioned changes.
3833
3834 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
3835
3836         PR debug/43942
3837         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
3838
3839 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
3840
3841         * config/picochip/picochip.c (picochip_legitimize_address): Define.
3842         Use this function to do machine-specific conversion.
3843         (picochip_legitimize_reload_address): Likewise.
3844         (picochip_legitimate_address_p): Check valid base register only if
3845         strict.
3846         (picochip_check_conditional_copy): Check for modw only if opnd is
3847         register.
3848         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
3849         to call the function in c.
3850         * config/picochip/picochip-protos.h
3851         (picochip_legitimize_reload_address): Define.
3852         * config/picochip/picochip.md (supported_compare1): Define.
3853
3854 2010-04-30  Jan Hubicka  <jh@suse.cz>
3855
3856         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
3857         (cgraph_global_info): Remove inlined.
3858         (LTO_cgraph_tag_names): Remove.
3859         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
3860         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
3861         simplify cgraph tags and document.
3862         (lto_output_node): Use only LTO_cgraph_unavail_node and
3863         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
3864         for_functions_valid, global info, process and output flags.
3865         (input_overwrite_node): Initialize estimated stack size and
3866         estimated growth.  Do not read flags we no longer store.
3867         (input_node): Likewise do not read info no longer stored.
3868         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
3869         flag.
3870
3871 2010-04-30  Richard Guenther  <rguenther@suse.de>
3872
3873         PR tree-optimization/43879
3874         * tree-ssa-structalias.c (get_constraint_for_1): Properly
3875         handle non-zero initializers.
3876
3877 2010-04-30  Richard Guenther  <rguenther@suse.de>
3878
3879         * builtins.c (fold_builtin_1): Delete free (0).
3880
3881 2010-04-29  Jan Hubicka  <jh@suse.cz>
3882
3883         * gengtype.c (open_base_files): Add lto-streamer.h
3884         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
3885         (pass_ipa_cp): GGC collect.
3886         * toplev. (compile_file): Do not output symbols.
3887         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
3888         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
3889         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
3890         * lto-section-in.c: Include ggc.h
3891         (lto_new_in_decl_state): Alloc in GGC.
3892         (lto_delete_in_decl_state): Likewise.
3893         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
3894         Collect.
3895
3896 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
3897
3898         PR target/42895
3899         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
3900         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
3901         (HONOR_REG_ALLOC_ORDER): Describe new macro.
3902         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
3903         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
3904         account only if HONOR_REG_ALLOC_ORDER is not defined.
3905         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
3906         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
3907
3908 2010-04-29  Jon Grant  <04@jguk.org>
3909
3910         * collect2.c (vflag): Change type from int to bool.
3911         (debug): Likewise.
3912         (helpflag): New global bool.
3913         (main): Set vflag and debug with boolean, not integer truth values.
3914         Accept new "--help" option and output usage text if found.
3915         * collect2.h (vflag): Update prototype.
3916         (debug): Likewise.
3917
3918 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3919
3920         PR bootstrap/43936
3921         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
3922
3923 2010-04-29  Richard Guenther  <rguenther@suse.de>
3924
3925         PR bootstrap/43935
3926         * plugin.h (invoke_plugin_callbacks): Annotate arguments
3927         with ATTRIBUTE_UNUSED.
3928
3929 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3930
3931         PR target/43921
3932         * config/i386/i386.c (get_some_local_dynamic_name): Replace
3933         INSN_P with NONDEBUG_INSN_P.
3934         (distance_non_agu_define): Likewise.
3935         (distance_agu_use): Likewise.
3936
3937 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
3938
3939         From Dominique d'Humieres <dominiq@lps.ens.fr>
3940         PR bootstrap/43858
3941         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
3942         test_set.
3943
3944 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
3945
3946         * plugin.h (invoke_plugin_callbacks): New inline function.
3947         * plugin.c (flag_plugin_added): New global flag.
3948         (add_new_plugin): Initialize above flag.
3949         (invoke_plugin_callbacks): Rename to ...
3950         (invoke_plugin_callbacks_full): ... this.
3951
3952 2010-04-28  Jan Hubicka  <jh@suse.cz>
3953
3954         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
3955         (lto_varpool_replace_node): New.
3956         (lto_symtab_resolve_symbols): Resolve varpool nodes.
3957         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
3958         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
3959         * cgraph.h (varpool_node_ptr): New type.
3960         (varpool_node_ptr): New vector.
3961         (varpool_node_set_def): New structure.
3962         (varpool_node_set): New type.
3963         (varpool_node_set): New vector.
3964         (varpool_node_set_element_def): New structure.
3965         (varpool_node_set_element, const_varpool_node_set_element): New types.
3966         (varpool_node_set_iterator): New type.
3967         (varpool_node): Add prev pointers, add used_from_other_partition,
3968         in_other_partition.
3969         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
3970         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
3971         varpool_get_node, varpool_remove_node): Declare.
3972         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
3973         varpool_node_set_size): New inlines.
3974         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
3975         * tree-pass.h (varpool_node_set_def): Forward declare.
3976         (ipa_opt_pass_d): Summary writting takes vnode sets too.
3977         (ipa_write_optimization_summaries): Update prototype.
3978         * ipa-cp.c (ipcp_write_summary): Update.
3979         * ipa-reference.c (ipa_reference_write_summary): Update.
3980         * lto-cgraph.c (lto_output_varpool_node): New static function.
3981         (output_varpool): New function.
3982         (input_varpool_node): New static function.
3983         (input_varpool_1): New function.
3984         (input_cgraph): Input varpool.
3985         * ipa-pure-const.c (pure_const_write_summary): Update.
3986         * lto-streamer-out.c (lto_output): Update, output varpool too.
3987         (write_global_stream): Kill WPA hack.
3988         (produce_asm_for_decls): Update.
3989         (output_alias_pair_p): Handle variables.
3990         (output_unreferenced_globals): Output only needed partition of varpool.
3991         * ipa-inline.c (inline_write_summary): Update.
3992         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
3993         cgraph.
3994         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
3995         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
3996         varpool_node_set_new, varpool_node_set_add,
3997         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
3998         debug_varpool_node_set): New functions.
3999         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
4000         (execute_one_pass): Process new decls too.
4001         (ipa_write_summaries_2): Pass around vsets.
4002         (ipa_write_summaries_1): Likewise.
4003         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
4004         to add.
4005         (ipa_write_optimization_summaries_1): Pass around vsets.
4006         (ipa_write_optimization_summaries): Likewise.
4007         * varpool.c (varpool_get_node): New.
4008         (varpool_node): Update doubly linked lists.
4009         (varpool_remove_node): New.
4010         (dump_varpool_node): More dumping.
4011         (varpool_enqueue_needed_node): Update doubly linked lists.
4012         (decide_is_variable_needed): Kill ltrans hack.
4013         (varpool_finalize_decl): Kill lto hack.
4014         (varpool_assemble_decl): Skip decls in other partitions.
4015         (varpool_assemble_pending_decls): Update doubly linkes lists.
4016         (varpool_empty_needed_queue): Likewise.
4017         (varpool_extra_name_alias): Likewise.
4018         * lto-streamer.c (lto_get_section_name): Add vars section.
4019         * lto-streamer.h (lto_section_type): Update.
4020         (output_varpool, input_varpool): Declare.
4021
4022 2010-04-28  Mike Stump  <mikestump@comcast.net>
4023
4024         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
4025
4026 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4027
4028         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
4029         record or union type with RECORD_OR_UNION_TYPE_P predicate.
4030         (lto_input_ts_type_tree_pointers): Likewise.
4031         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
4032         (lto_output_ts_type_tree_pointers): Likewise.
4033
4034 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4035
4036         Uniquization of constants at the Tree level
4037         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
4038         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
4039         bit to the end.
4040         (tree_output_constant_def): Declare.
4041         * gimplify.c (gimplify_init_constructor): When using block copy, first
4042         uniquize the constant constructor on the RHS.
4043         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
4044         DECL_IN_CONSTANT_POOL flag.
4045         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
4046         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
4047         constant pool.
4048         (assemble_variable): Deal with symbols belonging to the tree constant
4049         pool.
4050         (get_constant_section): Add ALIGN parameter and simplify.
4051         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
4052         (assemble_constant_contents): Use the expression of the VAR_DECL.
4053         (output_constant_def_contents): Use the alignment of the VAR_DECL.
4054         (tree_output_constant_def): New global function.
4055         (mark_constant): Use the expression of the VAR_DECL.
4056         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
4057         its expression.
4058         (output_object_block): Likewise and assemble the expression.
4059
4060 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4061
4062         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
4063         hash_tree, eq_tree): New tree hash table.
4064         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
4065         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
4066         lto_orig_address_remove): Reimplement.
4067
4068 2010-04-28  Xinliang David Li  <davidxl@google.com>
4069
4070         PR c/42643
4071         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
4072         (compute_uninit_opnds_pos): New function.
4073         (is_non_loop_exit_postdominating): New function.
4074         (compute_control_dep_chain): New function.
4075         (find_pdom): New function.
4076         (convert_control_dep_chain_into_preds): New function.
4077         (find_predicates): New function.
4078         (find_control_equiv_block): New function.
4079         (collect_phi_def_edges): New function.
4080         (find_def_preds): New function.
4081         (find_dom): New function.
4082         (dump_predicates): New function.
4083         (get_cmp_code): New function.
4084         (is_value_included_in): New function.
4085         (find_matching_predicate_in_rest_chains): New function.
4086         (use_pred_not_overlap_with_undef_path_pred): New function.
4087         (is_use_properly_guarded): New function.
4088         (normalize_cond_1): New function.
4089         (is_and_or_or): New function.
4090         (normalize_cond): New function.
4091         (is_gcond_subset_of): New function.
4092         (is_subset_of_any): New function.
4093         (is_or_set_subset_of): New function.
4094         (is_and_set_subset_of): New function.
4095         (is_norm_cond_subset_of): New function.
4096         (is_pred_expr_subset_of): New function.
4097         (is_pred_chain_subset_of): New function.
4098         (is_included_in): New function.
4099         (is_superset_of): New function.
4100         (find_uninit_use): New function.
4101         (warn_uninitialized_phi): New function.
4102         (compute_possibly_undefined_names): New function.
4103         (ssa_undefined_value_p): New function.
4104         (execute_late_warn_uninitialized): New function.
4105         * tree-ssa.c (ssa_undefined_value_p): Removed.
4106         (warn_uninit): Changed to extern.
4107         (warn_uninitialized_phi): Removed.
4108         (warn_uninitialized_vars): Changed to extern.
4109         (execute_late_warn_uninitialized): Removed
4110         * tree-flow.h: Add new prototypes.
4111         * timevar.def: Add new time variable.
4112         * Makefile.in: Add new build file.
4113
4114 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
4115
4116         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
4117         type if available.
4118
4119 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4120
4121         PR target/22224
4122         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
4123
4124 2010-04-28  Martin Jambor  <mjambor@suse.cz>
4125
4126         * cgraph.h (struct cgraph_node): New field indirect_calls.
4127         (struct cgraph_indirect_call_info): New type.
4128         (struct cgraph_edge): Removed field indirect_call. New fields
4129         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
4130         (cgraph_create_indirect_edge): Declare.
4131         (cgraph_make_edge_direct): Likewise.
4132         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
4133         * ipa-prop.h (struct ipa_param_call_note): Removed.
4134         (struct ipa_node_params): Removed field param_calls.
4135         (ipa_create_all_structures_for_iinln): Declare.
4136         * cgraph.c: Described indirect edges and uids in initial comment.
4137         (cgraph_add_edge_to_call_site_hash): New function.
4138         (cgraph_edge): Search also among the indirect edges, use
4139         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
4140         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
4141         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
4142         site hash.
4143         (initialize_inline_failed): Assign a reason to indirect edges.
4144         (cgraph_create_edge_1): New function.
4145         (cgraph_create_edge): Moved some functionality to
4146         cgraph_create_edge_1.
4147         (cgraph_create_indirect_edge): New function.
4148         (cgraph_edge_remove_callee): Add an assert checking for
4149         non-indirectness.
4150         (cgraph_edge_remove_caller): Special-case indirect edges.
4151         (cgraph_remove_edge): Likewise.
4152         (cgraph_set_edge_callee): New function.
4153         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
4154         (cgraph_make_edge_direct): New function.
4155         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
4156         the declaration of the call statement matches.
4157         (cgraph_node_remove_callees): Special-case indirect edges.
4158         (cgraph_clone_edge): Likewise.
4159         (cgraph_clone_node): Clone also the indirect edges.
4160         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
4161         indirect_call, dump count of indirect_calls edges.
4162         * ipa-prop.c (iinlining_processed_edges): New variable.
4163         (ipa_note_param_call): Create indirect edges instead of
4164         creating notes.  New parameter node.
4165         (ipa_analyze_call_uses): New parameter node, pass it on to
4166         ipa_note_param_call.
4167         (ipa_analyze_stmt_uses): Likewise.
4168         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
4169         (print_edge_addition_message): Work on edges rather than on notes.
4170         (update_call_notes_after_inlining): Likewise, renamed to
4171         update_indirect_edges_after_inlining.
4172         (ipa_create_all_structures_for_iinln): New function.
4173         (ipa_free_node_params_substructures): Do not free notes.
4174         (ipa_edge_duplication_hook): Propagate bits within
4175         iinlining_processed_edges bitmap.
4176         (ipa_node_duplication_hook): Do not duplicate notes.
4177         (free_all_ipa_structures_after_ipa_cp): Renamed to
4178         ipa_free_all_structures_after_ipa_cp.
4179         (free_all_ipa_structures_after_iinln): Renamed to
4180         ipa_free_all_structures_after_iinln.
4181         (ipa_write_param_call_note): Removed.
4182         (ipa_read_param_call_note): Removed.
4183         (ipa_write_indirect_edge_info): New function.
4184         (ipa_read_indirect_edge_info): Likewise.
4185         (ipa_write_node_info): Do not stream notes, do stream information
4186         in indirect edges.
4187         (ipa_read_node_info): Likewise.
4188         (lto_ipa_fixup_call_notes): Removed.
4189         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
4190         * ipa-inline.c (pass_ipa_inline): Likewise.
4191         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
4192         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
4193         * tree-inline.c (copy_bb): Removed an unnecessary double check for
4194         is_gimple_call.
4195         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
4196         edges.
4197         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
4198         (output_cgraph): Stream also indirect edges.
4199         (lto_output_edge): Added capability to stream indirect edges.
4200         (input_edge): Likewise.
4201         (input_cgraph_1): Likewise.
4202         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
4203         of indirect edges.
4204
4205 2010-04-28  Richard Guenther  <rguenther@suse.de>
4206
4207         PR tree-optimization/43879
4208         PR tree-optimization/43909
4209         * tree-ssa-structalias.c (struct variable_info): Add
4210         only_restrict_pointers flag.
4211         (new_var_info): Initialize it.  Increment stats.total_vars here.
4212         (create_function_info_for): Do not increment stats.total_vars here.
4213         (get_function_part_constraint): Fix build with C++.
4214         (insert_into_field_list): Remove.
4215         (push_fields_onto_fieldstack): Properly merge fields.
4216         (create_variable_info_for): Split and simplify.
4217         (create_variable_info_for_1): New piece.
4218         (intra_create_variable_infos): Properly make restrict constraints
4219         from parameters.
4220
4221 2010-04-28  Richard Guenther  <rguenther@suse.de>
4222
4223         PR c++/43880
4224         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
4225
4226 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4227             Jan Hubicka <hubicka@ucw.cz>
4228
4229         * doc/invoke.texi (-Wsuggest-attribute=const,
4230         -Wsuggest-attribute=pure): Document.
4231         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
4232         (function_always_visible_to_compiler_p,
4233         suggest_attribute, warn_function_pure, warn_function_const):
4234         New functions.
4235         (check_call): Improve debug info.
4236         (analyze_function): Do not check availability.
4237         (add_new_function): Check availability.
4238         (propagate): Output warnings.
4239         (skip_function_for_local_pure_const): New function.
4240         (local_pure_const): Use it; output warnings.
4241         * common.opt (Wsuggest-attribute=const,
4242         Wsuggest-attribute=pure): New.
4243
4244 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
4245
4246         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
4247         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
4248         or DW_CFA_def_cfa_offset{,_sf}.
4249
4250 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
4251
4252         * tree.h: Fix truncated long macros.
4253
4254 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
4255
4256         * collect2.c (TARGET_64BIT): Redefine to target's default.
4257         * tlink.c: Likewise.
4258         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
4259         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
4260         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
4261         for underscoring __USER_LABEL_PREFIX__.
4262         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
4263         (SUB_LINK_ENTRY32): New.
4264         (SUB_LINK_ENTRY64): New.
4265         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
4266         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
4267         (SUB_LINK_ENTRY64): New.
4268         (SUB_LINK_ENTRY): New.
4269         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
4270         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
4271         x64 target is choosen.
4272         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
4273         * configure: Regenerated.
4274         * configure.ac (leading-mingw64-underscores): Option added.
4275
4276 2010-04-27  Jan Hubicka  <jh@suse.cz>
4277
4278         * doc/invoke.texi (-fipa-profile): Document.
4279         * opts.c (decode_options): Enable ipa-profile at -O1.
4280         * timevar.def (TV_IPA_PROFILE): Define.
4281         * common.opt (fipa-profile): Add.
4282         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
4283         flag for clones.
4284         (cgraph_propagate_frequency): Handle only local ones.
4285         * tree-pass.h (pass_ipa_profile): Declare.
4286         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
4287         (pass_ipa_profile): Use TV_IPA_PROFILE.
4288         * ipa.c (ipa_profile): New function.
4289         (gate_ipa_profile): Likewise.
4290         (pass_ipa_profile): New global variable.
4291         * passes.c (pass_ipa_profile): New.
4292
4293 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
4294
4295         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
4296
4297 2010-04-27  Martin Jambor  <mjambor@suse.cz>
4298
4299         PR middle-end/43812
4300         * ipa.c (dissolve_same_comdat_group_list): New function.
4301         (function_and_variable_visibility): Call
4302         dissolve_same_comdat_group_list when comdat group contains external or
4303         newly local nodes.
4304         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
4305         lists are circular and that they contain only DECL_ONE_ONLY nodes.
4306
4307 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
4308
4309         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
4310         (const_hash_1) <VECTOR_CST>: New case.
4311         (compare_constant) <VECTOR_CST>: Likewise.
4312         <ADDR_EXPR>: Deal with LABEL_REFs.
4313         (copy_constant) <VECTOR_CST>: New case.
4314
4315 2010-04-27  Jan Hubicka  <jh@suse.cz>
4316
4317         * cgraph.c (cgraph_propagate_frequency): New function.
4318         * cgraph.h (cgraph_propagate_frequency): Declare.
4319         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
4320         cgraph_propagate_frequency.
4321
4322 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
4323
4324         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
4325
4326 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
4327
4328         PR target/40657
4329         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
4330         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
4331         here to determine which regs to push and how much stack to reserve.
4332
4333 2010-04-27  Jie Zhang  <jie@codesourcery.com>
4334
4335         * doc/gimple.texi (gimple_statement_with_ops): Remove
4336         addresses_taken field.
4337         (gimple_statement_with_memory_ops): Likewise.
4338
4339 2010-04-27  Jan Hubicka  <jh@suse.cz>
4340
4341         * tree-inline.c (eni_inlining_weights): Remove.
4342         (estimate_num_insns): Special case more builtins.
4343
4344 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
4345
4346         PR c/32207
4347         * c-typeck.c (build_binary_op): Move forward check for comparison
4348         pointer with null pointer constant and adjust the diagnostic message.
4349
4350 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
4351
4352         PR lto/42776
4353         * configure.ac (gcc_cv_as_section_has_align): Set if installed
4354         binutils supports extended .section directive needed by LTO, or
4355         warn if older binutils found.
4356         (LTO_BINARY_READER): New AC_SUBST'd variable.
4357         (LTO_USE_LIBELF): Likewise.
4358         * gcc/config.gcc (lto_binary_reader): New target-specific configure
4359         variable.
4360         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
4361         (LTO_USE_LIBELF): Likewise.
4362         * configure: Regenerate.
4363
4364         * collect2.c (is_elf): Rename from this ...
4365         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
4366          object files in addition to ELF-formatted ones.
4367         (scan_prog_file): Caller updated.  Also allow for LTO info marker
4368         symbol to be prefixed or not by an extra underscore.
4369
4370         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
4371         * config/i386/winnt.c: Also #include lto-streamer.h
4372         (i386_pe_asm_named_section): Specify 1-byte section alignment for
4373         LTO named sections.
4374         (i386_pe_asm_output_aligned_decl_common): Add comment.
4375         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
4376
4377 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
4378
4379         PR target/43889
4380         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
4381         Add missing earlyclobber for second alternative.
4382
4383 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
4384
4385         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
4386         bits for artificial defs at the top of the block.
4387         * fwprop.c (single_def_use_enter_block): Don't call it.
4388
4389 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
4390
4391         PR 43715
4392         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
4393         instead of "$gcc_cv_objdump -T".
4394         Use "-undefined dynamic_lookup" on darwin.
4395         * gcc/configure: Regenerate.
4396
4397 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
4398
4399         PR c/43893
4400         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
4401
4402 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
4403
4404         * c-parser.c (struct c_token): Move location field up.
4405         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
4406         (struct c_declspecs): Convert typespec_word, storage_class, and
4407         default_int_p into bitfields.
4408         (struct c_declarator): Move loc field up.
4409
4410 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
4411
4412         * cfgloop.h (struct loop): Move can_be_parallel field up.
4413         * ipa-prop.h (struct ip_node_params): Move bitfields up.
4414         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
4415         down.
4416         (struct iv_cand): Convert pos field into a bitfield.
4417         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
4418         field up.
4419         (struct _stmt_vec_info): Shuffle fields for better packing.
4420
4421 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
4422
4423         * varasm.c (IN_NAMED_SECTION): Remove guard.
4424         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
4425         (IN_NAMED_SECTION_P): ...this.
4426         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
4427         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
4428
4429 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
4430
4431         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
4432         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
4433         of shadowing it.  Fix comments.
4434
4435 2010-04-26  Jan Hubicka  <jh@suse.cz>
4436
4437         * cgraph.c (cgraph_create_node): Set node frequency to normal.
4438         (cgraph_clone_node): Copy function frequency.
4439         * cgraph.h (node_frequency): New enum
4440         (struct cgraph_node): Add.
4441         * final.c (rest_of_clean_state): Update.
4442         * lto-cgraph.c (lto_output_node): Output node frequency.
4443         (input_overwrite_node): Input node frequency.
4444         * tre-ssa-loop-ivopts (computation_cost): Update.
4445         * lto-streamer-out.c (output_function): Do not output function
4446         frequency.
4447         * predict.c (maybe_hot_frequency_p): Update and handle functions
4448         executed once.
4449         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
4450         attribute lookup.
4451         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
4452         (compute_function_frequency): Set noreturn functions to be executed
4453         once.
4454         (choose_function_section): Update.
4455         * lto-streamer-in.c (input_function): Do not input function frequency.
4456         * function.c (allocate_struct_function): Do not initialize function
4457         frequency.
4458         * function.h (function_frequency): Remove.
4459         (struct function): Remove function frequency.
4460         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
4461         (try_update): Update.
4462         * tree-inline.c (initialize_cfun): Do not update function frequency.
4463         * passes.c (pass_init_dump_file): Update.
4464         * i386.c (ix86_compute_frame_layout): Update.
4465         (ix86_pad_returns): Update.
4466
4467 2010-04-26  Jie Zhang  <jie@codesourcery.com>
4468
4469         PR tree-optimization/43833
4470         * tree-vrp.c (range_int_cst_p): New.
4471         (range_int_cst_singleton_p): New.
4472         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
4473         when both operands are constants.  Use range_int_cst_p in
4474         BIT_IOR_EXPR case.
4475
4476 2010-04-26  Jan Hubicka  <jh@suse.cz>
4477
4478         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
4479
4480 2010-04-26  Richard Guenther  <rguenther@suse.de>
4481
4482         PR lto/43080
4483         * gimple.c (gimple_decl_printable_name): Deal gracefully
4484         with a NULL DECL_NAME.
4485
4486 2010-04-26  Richard Guenther  <rguenther@suse.de>
4487
4488         PR lto/42425
4489         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
4490         if emitting debug information and it is either a function
4491         or a namespace decl.
4492
4493 2010-04-26  Ira Rosen  <irar@il.ibm.com>
4494
4495         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
4496         determine if the statement is vectorizable, and a macro to access it.
4497         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
4498         Skip statements that can't be vectorized. If the analysis fails,
4499         mark the statement as unvectorizable if vectorizing basic block.
4500         (vect_compute_data_refs_alignment): Likewise.
4501         (vect_verify_datarefs_alignment): Skip statements marked as
4502         unvectorizable. Add print.
4503         (vect_analyze_group_access): Skip statements that can't be
4504         vectorized. If the analysis fails, mark the statement as
4505         unvectorizable if vectorizing basic block.
4506         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
4507         * tree-vect-stmts.c (vectorizable_store): Fix the number of
4508         generated stmts for SLP.
4509         (new_stmt_vec_info): Initialize the new field.
4510         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
4511         statements marked as unvectorizable.
4512
4513 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
4514
4515         * c-common.c (flag_isoc1x): New.
4516         (flag_isoc99): Update comment.
4517         * c-common.h (flag_isoc1x): New.
4518         (flag_isoc99): Update comment.
4519         * c-cppbuiltin.c (builtin_define_float_constants): Also define
4520         __<type>_DECIMAL_DIG__.
4521         * c-opts.c (set_std_c1x): New.
4522         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
4523         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
4524         * c.opt (-std=c1x, -std=gnu1x): New options.
4525         * doc/cpp.texi: Mention -std=c1x.
4526         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
4527         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
4528         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
4529         * doc/standards.texi: Mention C1X.
4530         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
4531         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
4532         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
4533         Define for C1X.
4534
4535 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
4536
4537         * config/i386/gmon-sol2.c (_mcleanup): Change format string
4538         placeholder from 0x%x to %#x.
4539         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
4540         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
4541         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
4542         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
4543         * config/i386/i386.c (ix86_target_string): Ditto.
4544         (output_pic_addr_const): Ditto.
4545         (print_operand): Ditto.
4546
4547 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
4548
4549         * combine.c (find_split_point): Add third argument.  Use it
4550         to find nested multiply-accumulate instructions.  Adjust calls.
4551         (try_combine): Adjust call to find_split_point.
4552
4553 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
4554
4555         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
4556
4557 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
4558
4559         PR tree-optimization/41442
4560         * fold-const.c (merge_truthop_with_opposite_arm): New function.
4561         (fold_binary_loc): Call it.
4562
4563 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4564
4565         * toplev.c (general_init): Set default for fdiagnostics-show-option.
4566         * opts.c (common_handle_option): Allow disabling it.
4567         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
4568
4569 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
4570
4571         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
4572         between modes if both types are integral.
4573
4574 2010-04-23  Richard Guenther  <rguenther@suse.de>
4575
4576         PR tree-optimization/43572
4577         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
4578
4579 2010-04-23  Richard Guenther  <rguenther@suse.de>
4580
4581         PR lto/43455
4582         * tree-inline.c (tree_can_inline_p): Also check compatibility
4583         of return types.
4584
4585 2010-04-23  Martin Jambor  <mjambor@suse.cz>
4586
4587         PR tree-optimization/43846
4588         * tree-sra.c (struct access): New flag grp_assignment_read.
4589         (build_accesses_from_assign): Set grp_assignment_read.
4590         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
4591         (enum mark_read_status): New type.
4592         (analyze_access_subtree): Propagate grp_assignment_read, create
4593         accesses also if both direct_read and root->grp_assignment_read.
4594
4595 2010-04-23  Martin Jambor  <mjambor@suse.cz>
4596
4597         PR middle-end/43835
4598         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
4599         function does not have type attributes.
4600
4601 2010-04-23  Richard Guenther  <rguenther@suse.de>
4602
4603         PR lto/42653
4604         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
4605         of FUNCTION_DECLs.
4606
4607 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4608
4609         * sese.h (create_if_region_on_edge): Remove.
4610
4611         * sese.c (create_if_region_on_edge): Make static.
4612
4613         * tree-inline.c: Do not include ggc.h.
4614
4615         * expr.c: Do not include ggc.h.
4616
4617         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
4618         dependencies.
4619
4620 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
4621
4622         PR target/43744
4623         * config/sh/sh.c (find_barrier): Don't emit a constant pool
4624         in the middle of insns for casesi_worker_2.
4625
4626 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
4627
4628         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
4629
4630 2010-04-22  Ira Rosen  <irar@il.ibm.com>
4631
4632         PR tree-optimization/43842
4633         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
4634         loop unrolling in update of exit phis. Fix comment.
4635         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
4636         least two reduction statements in the loop before starting SLP
4637         analysis.
4638
4639 2010-04-22  Nick Clifton  <nickc@redhat.com>
4640
4641         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
4642
4643 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
4644
4645         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
4646         to simplify a + ~a.
4647
4648 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4649
4650         * tree-parloops.c (loop_parallel_p): New argument
4651         parloop_obstack.  Pass it down.
4652         (parallelize_loops): New variable parloop_obstack.  Initialize it,
4653         pass it down, free it.
4654
4655         * tree-loop-linear.c (linear_transform_loops): Pass down
4656         lambda_obstack.
4657
4658         * tree-data-ref.h (lambda_compute_access_matrices): New argument
4659         of type struct obstack *.
4660
4661         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
4662         scratch_obstack.  Initialize it, pass down, free it.
4663
4664         * lambda.h (lambda_loop_new): Remove.
4665         (lambda_matrix_new, lambda_matrix_inverse)
4666         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
4667         argument of type struct obstack *.
4668
4669         * lambda-trans.c (lambda_trans_matrix_new): New argument
4670         lambda_obstack.  Pass it down, use obstack allocation for ret.
4671         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
4672         it down.
4673
4674         * lambda-mat.c (lambda_matrix_get_column)
4675         (lambda_matrix_project_to_null): Remove.
4676         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
4677         allocation for mat.
4678         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
4679         lambda_obstack.
4680
4681         * lambda-code.c (lambda_loop_new): New function.
4682         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
4683         (lambda_compute_auxillary_space, lambda_compute_target_space)
4684         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
4685         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
4686         (build_access_matrix): New argument lambda_obstack.  Use obstack
4687         allocation for am.
4688         (lambda_compute_step_signs, lambda_compute_access_matrices): New
4689         argument lambda_obstack.  Pass it down.
4690
4691 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4692
4693         * optabs.h (expand_widening_mult): Declare.
4694
4695 2010-04-22  Richard Guenther  <rguenther@suse.de>
4696
4697         PR tree-optimization/43845
4698         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
4699         lookup the CALL_EXPR function and arguments.
4700
4701 2010-04-22  Nick Clifton  <nickc@redhat.com>
4702
4703         * config/stormy16/stormy16.c
4704         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
4705         * config/stormy16/stormy16.h: Tidy up formatting.
4706         (DONT_USE_BUILTIN_SETJMP): Remove definition.
4707         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
4708         (ineqbranchsi): Delete pattern.
4709         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
4710         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
4711         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
4712         stormy16-lib2-ucmpsi2.c.
4713
4714 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4715
4716         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
4717         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
4718         extra set merge_set_noclobber, and use it to relax the final test
4719         slightly.
4720         * df.h (df_simulate_find_noclobber_defs): Declare.
4721         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
4722         conditional defs.
4723         (df_simulate_find_noclobber_defs): New function.
4724
4725 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
4726
4727         * config/i386/i386.md: Use {} around multi-line preparation statements.
4728
4729 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4730
4731         * c-tree.h (push_init_level, pop_init_level, set_init_index)
4732         (process_init_element): New argument of type struct obstack *.
4733
4734         * c-typeck.c (push_init_level, pop_init_level, set_designator)
4735         (set_init_index, set_init_label, set_nonincremental_init)
4736         (set_nonincremental_init_from_string, find_init_member)
4737         (output_init_element, output_pending_init_elements)
4738         (process_init_element): New argument braced_init_obstack.  Pass it
4739         down.
4740         (push_range_stack, add_pending_init): New argument
4741         braced_init_obstack.  Use obstack allocation.
4742
4743         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
4744         braced_init_obstack.  Pass it down.
4745         (c_parser_braced_init): New variables ret, braced_init_obstack.
4746         Initialize obstack, pass it down and finally free it.
4747
4748 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4749
4750         PR middle-end/29274
4751         * tree-pass.h (pass_optimize_widening_mul): Declare.
4752         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
4753         gate_optimize_widening_mul): New static functions.
4754         (pass_optimize_widening_mul): New.
4755         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
4756         <case MULT_EXPR>: Remove support for widening multiplies.
4757         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
4758         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
4759         simplify_gen_unary rather than directly building extensions.
4760         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
4761         WIDEN_MULT_EXPR.
4762         * expmed.c (expand_widening_mult): New function.
4763         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
4764
4765 2010-04-21  Jan Hubicka  <jh@suse.cz>
4766
4767         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
4768         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
4769         * lto-wpa-fixup.c: Remove.
4770         * Makefile.in (lto-wpa-fixup.o): Remove.
4771         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
4772         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
4773         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
4774
4775 2010-04-21  Jan Hubicka  <jh@suse.cz>
4776
4777         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
4778         add write_optimization_summary, read_optimization_summary.
4779         (ipa_write_summaries_of_cgraph_node_set): Remove.
4780         (ipa_write_optimization_summaries): Declare.
4781         (ipa_read_optimization_summaries): Declare.
4782         * ipa-cp.c (pass_ipa_cp): Update.
4783         * ipa-reference.c (pass_ipa_reference): Update.
4784         * ipa-pure-const.c (pass_ipa_pure_const): Update.
4785         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
4786         Update.
4787         * ipa-inline.c (pass_ipa_inline): Update.
4788         * ipa.c (pass_ipa_whole_program): Update.
4789         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
4790         * passes.c (ipa_write_summaries_1): Do not test wpa.
4791         (ipa_write_optimization_summaries_1): New.
4792         (ipa_write_optimization_summaries): New.
4793         (ipa_read_summaries): Do not test ltrans.
4794         (ipa_read_optimization_summaries_1): New.
4795         (ipa_read_optimization_summaries): New.
4796
4797 2010-04-21  Jan Hubicka  <jh@suse.cz>
4798
4799         * lto-cgraph.c (lto_output_node): Do not output comdat groups
4800         for boundary nodes.
4801         (output_cgraph): Do not arrange comdat groups for boundary nodes.
4802
4803 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4804
4805         PR debug/40040
4806         * dwarf2out.c (add_name_and_src_coords_attributes): Add
4807         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
4808
4809 2010-04-21  Jan Hubicka  <jh@suse.cz>
4810
4811         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
4812
4813 2010-04-21  Jan Hubicka  <jh@suse.cz>
4814
4815         * varpool.c (decide_is_variable_needed): Variable is always needed
4816         during ltrans.
4817
4818 2010-04-21  Jan Hubicka  <jh@suse.cz>
4819
4820         * opts.c (decode_options): Enable pure-const pass for whopr.
4821
4822 2010-04-21  Jan Hubicka  <jh@suse.cz>
4823
4824         * cgraph.c (dump_cgraph_node): Dump also assembler name.
4825         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
4826         at WPA dumping.
4827         (cgraph_decide_inlining): Do not expect callee to be removed in all
4828         cases.
4829
4830 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
4831
4832         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
4833
4834 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
4835
4836         * config/i386/i386.md (x86_shrd): Add athlon_decode and
4837         amdfam10_decode attributes.
4838
4839 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4840
4841         PR middle-end/43570
4842         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
4843         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
4844         (lower_copyprivate_clauses): Use private var in outer
4845         context instead of original var.  Make sure the types
4846         are correct for VLAs.
4847
4848 2010-04-21  Richard Guenther  <rguenther@suse.de>
4849
4850         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
4851         to non-pointer objects.
4852
4853 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4854
4855         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
4856         last chain entry if it starts with the still current label.
4857         (add_location_or_const_value_attribute): Check that
4858         loc_list->first->next is NULL instead of comparing ->first with ->last.
4859         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
4860         to add_var_loc_to_decl.
4861
4862         * dwarf2out.c (output_call_frame_info): For dw_cie_version
4863         >= 4 add also address size and segment size fields into CIE header.
4864
4865         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
4866         long as address size is the same as sizeof (void *) and
4867         segment size is 0.
4868         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
4869         address size or segment size is unexpected, return DW_EH_PE_omit.
4870         (classify_object_over_fdes): If get_cie_encoding returned
4871         DW_EH_PE_omit, return -1.
4872         (init_object): If classify_object_over_fdes returned -1,
4873         pretend there were no FDEs at all.
4874
4875 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
4876
4877         * config/i386/i386.md (bswap<mode>2): Macroize expander from
4878         bswap{si,di}2 using SWI48 mode iterator.
4879         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
4880         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
4881         set modrm attribute of bswap insn to 0 and remove length attribute.
4882         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
4883         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
4884         set mode attribute to <MODE> and remove length attribute.
4885
4886 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
4887
4888         PR rtl-optimization/43520
4889         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
4890         zero available registers.
4891
4892 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4893
4894         * builtins.c (fold_builtin_cproj): Fold more cases.
4895
4896 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4897
4898         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
4899         (fold_builtin_1): Fold builtin cproj.
4900         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
4901         Use ATTR_CONST_NOTHROW_LIST.
4902
4903 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
4904
4905         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
4906         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
4907         ffsi2_no_cmove for !TARGET_CMOVE.
4908         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
4909         (ffssi2): Remove expander.
4910         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
4911         mode iterator.
4912         (ctz<mode>2): Ditto from ctz{si,di}2.
4913         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
4914         mode iterator.
4915         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
4916         mode iterator.
4917
4918 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
4919
4920         * dwarf2out.c (AT_linkage_name): Define.
4921         (clone_as_declaration): Handle DW_AT_linkage_name.
4922         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
4923         of DW_AT_MIPS_linkage_name.
4924         (move_linkage_attr): Likewise.
4925         (dwarf2out_finish): Likewise.
4926
4927 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
4928
4929         PR middle-end/41952
4930         * fold-const.c (fold_comparison): New folding rule.
4931
4932 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
4933
4934         * double-int.h (double_int_setbit): Declare.
4935         * double-int.c (double_int_setbit): New function.
4936         * rtl.h (immed_double_int_const): Declare.
4937         * emit-rtl.c (immed_double_int_const): New function.
4938         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
4939         and immed_double_int_const functions.
4940         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
4941         expand_copysign_bit):  (Ditto.).
4942         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
4943         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
4944         * dojump.c (prefer_and_bit_test): (Ditto.).
4945         * expr.c (convert_modes, reduce_to_bit_field_precision,
4946         const_vector_from_tree): (Ditto.).
4947         * expmed.c (mask_rtx, lshift_value): (Ditto.).
4948
4949 2010-04-20  Jan Hubicka  <jh@suse.cz>
4950
4951         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
4952         (dump_cgraph_node): Dump new flags.
4953         * cgraph.h (struct cgraph_node): Add flags
4954         reachable_from_other_partition and in_other_partition.
4955         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
4956         other partition can not be removed.
4957         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
4958         the other partition must be output; silence sanity checking on
4959         leaking functions bodies from other paritition.
4960         * lto-cgraph.c (reachable_from_other_partition_p): New function.
4961         (lto_output_node): Output new flags; do not sanity check that inline
4962         clones are output; drop lto_forced_extern_inline_p code; do not mock
4963         visibility flags at partition boundaries.
4964         (add_node_to): New function.
4965         (output_cgraph): Use it to sort functions so masters appear before
4966         clones.
4967         (input_overwrite_node): Input new flags.
4968         * passes.c (ipa_write_summaries): Do not call
4969         lto_new_extern_inline_states.
4970         * lto-section-out.c (forced_extern_inline,
4971         lto_new_extern_inline_states lto_delete_extern_inline_states,
4972         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
4973         * lto-streamer.h (lto_new_extern_inline_states,
4974         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
4975         lto_forced_extern_inline_p): Kill.
4976
4977 2010-04-20  Richard Guenther  <rguenther@suse.de>
4978
4979         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
4980         from vars that can have pointers.
4981         (process_constraint): Dump useless constraints.
4982
4983 2010-04-20  Richard Guenther  <rguenther@suse.de>
4984
4985         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
4986         (dump_sa_points_to_info): Remove asserts.
4987         (init_base_vars): nothing_id isn't an escape point nor does it
4988         have pointers.
4989
4990 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
4991
4992         * tree.h (TYPE_REF_IS_RVALUE): Define.
4993         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
4994         should_move_die_to_comdat, prune_unused_types_walk): Handle
4995         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
4996         (modified_type_die, gen_reference_type_die): Emit
4997         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
4998         if TYPE_REF_IS_RVALUE and -gdwarf-4.
4999
5000 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5001
5002         PR target/43635
5003         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
5004         calls for -fpic -m31 if they have been sibcall optimized.
5005
5006 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
5007
5008         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
5009         ar.lc fixed and call-used.
5010
5011         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
5012
5013 2010-04-19  Jan Hubicka  <jh@suse.cz>
5014
5015         * opts.c (decode_options): Disable whpr incompatible passes.
5016         * lto/lto.c (lto_1_to_1_map): Skip clones.
5017         (read_cgraph_and_symbols): Do not mark everything as needed.
5018         (do_whole_program_analysis): Do map only after optimizing;
5019         set proper cgraph_state; use passmanager.
5020
5021 2010-04-19  DJ Delorie  <dj@redhat.com>
5022
5023         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
5024         POINTER_PLUS_EXPR and fix them.
5025
5026 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
5027
5028         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
5029         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
5030         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
5031         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
5032         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
5033         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
5034         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
5035         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
5036         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
5037         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
5038         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
5039
5040 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
5041
5042         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
5043         (check_cond_move_block): Likewise.
5044         (cond_move_process_if_block): Likewise.
5045         (noce_find_if_block): Improve formatting.
5046         (find_if_header): Pass 0 to memset and tweak conditions.
5047         (cond_exec_find_if_block): Fix long lines and tweak conditions.
5048
5049 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
5050
5051         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
5052         for -gdwarf-4.
5053
5054         PR middle-end/43337
5055         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
5056         with non-local decl doesn't need chain.
5057
5058 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
5059
5060         * ira-color.c (allocno_reload_assign): Avoid accumulating
5061         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
5062
5063 2010-04-19  Martin Jambor  <mjambor@suse.cz>
5064
5065         * gimple.h (create_tmp_reg): Declare.
5066         * gimplify.c (create_tmp_reg): New function.
5067         (gimplify_return_expr): Use create_tmp_reg.
5068         (gimplify_omp_atomic): Likewise.
5069         (gimple_regimplify_operands): Likewise.
5070         * tree-dfa.c (make_rename_temp): Likewise.
5071         * tree-predcom.c (predcom_tmp_var): Likewise.
5072         (reassociate_to_the_same_stmt): Likewise.
5073         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
5074         (get_replaced_param_substitute): Likewise.
5075         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
5076         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
5077         * tree-ssa-pre.c (get_representative_for): Likewise.
5078         (create_expression_by_pieces): Likewise.
5079         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
5080         (create_tailcall_accumulator): Likewise.
5081
5082 2010-04-19  Martin Jambor  <mjambor@suse.cz>
5083
5084         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
5085         new_stmt.
5086         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
5087
5088 2010-04-19  Richard Guenther  <rguenther@suse.de>
5089
5090         PR tree-optimization/43796
5091         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
5092         from SCEV in the lattice.
5093         (vrp_visit_phi_node): Dump change.
5094
5095 2010-04-19  Richard Guenther  <rguenther@suse.de>
5096
5097         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
5098         * configure: Re-generated.
5099
5100 2010-04-19  Richard Guenther  <rguenther@suse.de>
5101
5102         PR tree-optimization/43783
5103         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
5104         constant ARRAY_REF operands two and three if possible.
5105
5106 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
5107
5108         PR target/43766
5109         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
5110
5111 2010-04-19  Jie Zhang  <jie@codesourcery.com>
5112
5113         PR target/43662
5114         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
5115
5116 2010-04-19  Ira Rosen  <irar@il.ibm.com>
5117
5118         PR tree-optimization/37027
5119         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
5120         and macro to access it.
5121         (vectorizable_reduction): Add argument.
5122         (vect_get_slp_defs): Likewise.
5123         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
5124         statements for possible use in SLP.
5125         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
5126         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
5127         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
5128         add new argument.
5129         (vectorizable_reduction): Likewise.
5130         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
5131         vect_get_slp_defs.
5132         (vectorizable_type_demotion, vectorizable_type_promotion,
5133         vectorizable_store): Likewise.
5134         (vect_analyze_stmt): Update call to vectorizable_reduction.
5135         (vect_transform_stmt): Likewise.
5136         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
5137         (vect_build_slp_tree): Fix indentation. Check that there are no loads
5138         from different interleaving chains in same node.
5139         (vect_slp_rearrange_stmts): New function.
5140         (vect_supported_load_permutation_p): Allow load permutations for
5141         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
5142         inside SLP nodes if necessary.
5143         (vect_analyze_slp_instance): Handle reductions.
5144         (vect_analyze_slp): Try to build SLP instances originating from groups
5145         of reductions.
5146         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
5147         (vect_get_constant_vectors): Create initial vectors for reductions
5148         according to reduction code. Add new argument.
5149         (vect_get_slp_defs): Add new argument, pass it to
5150         vect_get_constant_vectors.
5151         (vect_schedule_slp_instance): Remove SLP tree root statements.
5152
5153 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
5154
5155         * tree.h (ENUM_IS_SCOPED): Define.
5156         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
5157         for ENUM_IS_SCOPED enums.
5158
5159 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5160
5161         * fold-const.c (fold_comparison): Use ssizetype.
5162         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
5163         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
5164         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
5165         * tree-object-size.c (compute_object_sizes): Use size_type_node.
5166
5167         * tree.h (initialize_sizetypes): Remove parameter.
5168         (build_common_tree_nodes): Remove second parameter.
5169         * stor-layout.c (initialize_sizetypes): Remove parameter.
5170         Always create an unsigned type.
5171         (set_sizetype): Assert that the passed type is unsigned and simplify.
5172         * tree.c (build_common_tree_nodes): Remove second parameter.
5173         Adjust call to initialize_sizetypes.
5174         * c-decl.c (c_init_decl_processing): Remove second argument in call to
5175         build_common_tree_nodes.
5176
5177 2010-04-18  Matthias Klose  <doko@ubuntu.com>
5178
5179         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
5180
5181 2010-04-18  Ira Rosen  <irar@il.ibm.com>
5182
5183         PR tree-optimization/43771
5184         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
5185         load permutation doesn't have gaps.
5186
5187 2010-04-18  Jan Hubicka  <jh@suse.cz>
5188
5189         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
5190         (sse_prologue_save_insn expander): Use new pattern.
5191         (sse_prologue_save_insn1): New pattern and splitter.
5192         (sse_prologue_save_insn): Update to deal also with 64bit aligned
5193         blocks.
5194         * i386.c (setup_incoming_varargs_64): Do not compute jump
5195         destination here.
5196         (ix86_gimplify_va_arg): Update alignment needed.
5197         (ix86_local_alignment): Do not align all local arrays to 128bit.
5198
5199 2010-04-17  Jan Hubicka  <jh@suse.cz>
5200
5201         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
5202
5203 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5204
5205         * arm.md (negdi2): Remove redundant code to force values into a
5206         register.
5207
5208 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5209
5210         * arm/bpabi.S: Add EABI alignment attributes to objects.
5211         * arm/bpabi-v6m.S: Likewise.
5212         * arm/crti.asm: Likewise.
5213         * arm/crtn.asm: Likewise.
5214         * arm/lib1funcs.asm: Likewise.
5215         * arm/libunwind.S: Likewise.
5216
5217 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5218
5219         * arm-protos.h (tune_params): New structure.
5220         * arm.c (current_tune): New variable.
5221         (arm_constant_limit): Delete.
5222         (struct processors): Add pointer to the tune parameters.
5223         (arm_slowmul_tune): New tuning option.
5224         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
5225         (all_cores): Adjust to pick up the tuning model.
5226         (arm_constant_limit): New function.
5227         (arm_override_options): Select the appropriate tuning model.  Delete
5228         initialization of arm_const_limit.
5229         (arm_split_constant): Use the new constant-limit model.
5230         (arm_rtx_costs): Pick up the current tuning model.
5231         * arm.md (is_strongarm, is_xscale): Delete.
5232         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
5233         for Xscale variant architectures.
5234         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
5235
5236 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5237
5238         * config/arm/arm.c (arm_gen_constant): Remove unused variable
5239         can_shift.
5240         (arm_rtx_costs_1): Remove unused variable extra_cost.
5241         (arm_unwind_emit_set): Use variable offset.
5242         (thumb1_output_casesi): Remove unused variable flags.
5243
5244 2010-04-16  Jeff Law  <law@redhat.com>
5245
5246         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
5247         needing assignment rather than doing a two-phase assignment.  Remove
5248         unused variable 'm'.
5249
5250 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5251
5252         PR bootstrap/43767
5253         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
5254
5255 2010-04-16  Doug Kwan  <dougkwan@google.com>
5256
5257         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
5258         (next_operand_entry_id): New static variable.
5259         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
5260         (add_to_ops_vec): Assigned unique ID to operand entry.
5261         (struct oecount_s): New field ID.
5262         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
5263         (undistribute_ops_list): Assign unique IDs to oecounts.
5264         (init_reassoc): reset next_operand_entry_id.
5265
5266 2010-04-16  Doug Kwan  <dougkwan@google.com>
5267
5268         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
5269         missing left parenthesis.
5270
5271 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
5272
5273         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
5274         *btdi_rex64 using SWI48 mode iterator.
5275         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
5276         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
5277         *jcc_btdi_mask_rex64.
5278
5279 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
5280
5281         * double-int.h (tree_to_double_int): Convert to macro.
5282         * double-int.c (tree_to_double_int): Remove.
5283
5284 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5285
5286         PR debug/43762
5287         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
5288         with want_address 2 and in case a single element list might be
5289         possible, call it again with want_address 0.
5290
5291 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
5292
5293         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
5294         case 'W' print operands for HI mode.
5295         * config/h8300/h8300.h (Y0, Y2) : New constraints.
5296         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
5297         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
5298         * config/h8300/predicate.md (bit_register_indirect_operand): New.
5299
5300         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
5301
5302         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
5303         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
5304         #xx:3 and #xx:4 mode.
5305
5306         * config/h8300/h8300.md (inverted load with HImode dest): Add
5307         support for H8300SX.
5308
5309         * config/h8300/predicate.md (bit_operand): Allow immediate values that
5310         satisfy 'U' constraint.
5311
5312 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5313
5314         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
5315         * configure: Regenerate.
5316         * config.in: Regenerate.
5317         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
5318         works.
5319
5320 2010-04-16  Richard Guenther  <rguenther@suse.de>
5321
5322         * tree.h (struct tree_decl_minimal): Move pt_uid ...
5323         (struct tree_decl_common): ... here.
5324         (DECL_PT_UID): Adjust.
5325         (SET_DECL_PT_UID): Likewise.
5326         (DECL_PT_UID_SET_P): Likewise.
5327
5328 2010-04-16  Richard Guenther  <rguenther@suse.de>
5329
5330         PR tree-optimization/43572
5331         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
5332         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
5333         * tree-flow.h (is_call_clobbered): Remove.
5334         * tree-flow-inline.h (is_call_clobbered): Likewise.
5335         * tree-dfa.c (dump_variable): Do not dump call clobber state.
5336         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
5337         (execute_return_slot_opt): Adjust.
5338         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
5339         check for call clobbered vars here.
5340         (find_tail_calls): Move tailcall verification to the
5341         proper place.
5342
5343 2010-04-16  Diego Novillo  <dnovillo@google.com>
5344
5345         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
5346
5347 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5348
5349         PR target/40603
5350         * config/arm/arm.md (cbranchqi4): New pattern.
5351         * config/arm/predicates.md (const0_operand,
5352         cbranchqi4_comparison_operator): New predicates.
5353
5354 2010-04-16  Richard Guenther  <rguenther@suse.de>
5355
5356         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
5357         (dump_gimple_stmt): Likewise.
5358
5359 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5360
5361         * recog.h (struct recog_data): New field is_operator.
5362         (struct insn_operand_data): New field is_operator.
5363         * recog.c (extract_insn): Set recog_data.is_operator.
5364         * genoutput.c (output_operand_data): Emit code to set the
5365         is_operator field.
5366         * reload.c (find_reloads): Use it rather than testing for an
5367         empty constraint string.
5368
5369         PR target/41514
5370         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
5371         If the previous insn is a cbranchsi4_insn with the same arguments,
5372         omit the compare instruction.
5373
5374         * config/arm/arm.md (addsi3_cbranch): If destination is a high
5375         register, inputs must be low registers and we need a low register
5376         scratch.  Handle alternative 2 like alternative 3.
5377
5378 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5379
5380         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
5381         don't call get_addr on both.  If one expression is a VALUE and
5382         the other a REG, check VALUE's locs if the REG isn't among them.
5383
5384 2010-04-16  Christian Bruel  <christian.bruel@st.com>
5385
5386         * config/sh/sh.h (sh_frame_pointer_required): New function.
5387         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
5388         (flag_omit_frame_pointer) Set.
5389         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
5390         (rounded_frame_size): Adjust size with outgoing_args_size.
5391         (sh_set_return_address): Must return from stack pointer.
5392         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
5393         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
5394         (ACCUMULATE_OUTGOING_ARGS): Define.
5395         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
5396         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
5397
5398 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5399
5400         PR target/43471
5401         * config/sh/sh.c (sh_legitimize_reload_address): Use
5402         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
5403         Remove a unneeded check for offset_base.
5404
5405 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
5406
5407         * configure: Regenerated.
5408
5409 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5410
5411         * config/s390/s390.c (s390_call_save_register_used): Switch back
5412         to HARD_REGNO_NREGS.
5413
5414 2010-04-15  Richard Guenther  <rguenther@suse.de>
5415
5416         * alias.c (alias_set_subset_of): Handle alias-set zero
5417         child properly.
5418
5419 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
5420             Julian Brown  <julian@codesourcery.com>
5421
5422         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
5423         alternatives according to use of high and low regs.
5424         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
5425         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
5426         optimizing for size on Thumb-2.
5427
5428 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
5429
5430         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
5431
5432 2010-04-15  Richard Guenther  <rguenther@suse.de>
5433
5434         * tree-ssa-structalias.c (struct variable_info): Add
5435         is_fn_info flag.
5436         (new_var_info): Initialize it.
5437         (dump_constraints): Support printing last added constraints.
5438         (debug_constraints): Adjust.
5439         (dump_constraint_graph): Likewise.
5440         (make_heapvar_for): Check for NULL cfun.
5441         (get_function_part_constraint): New function.
5442         (get_fi_for_callee): Likewise.
5443         (find_func_aliases): Properly implement IPA PTA constraints.
5444         (process_ipa_clobber): New function.
5445         (find_func_clobbers): Likewise.
5446         (insert_into_field_list_sorted): Remove.
5447         (create_function_info_for): Properly allocate vars for IPA mode.
5448         Do not use insert_into_field_list_sorted.
5449         (create_variable_info_for): Properly generate constraints for
5450         global vars in IPA mode.
5451         (dump_solution_for_var): Always dump the solution.
5452         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
5453         (find_what_var_points_to): Adjust.
5454         (pt_solution_set): Change.
5455         (pt_solution_ior_into): New function.
5456         (pt_solution_empty_p): Export.
5457         (pt_solution_includes_global): Adjust.
5458         (pt_solution_includes_1): Likewise.
5459         (pt_solutions_intersect_1): Likewise.
5460         (dump_sa_points_to_info): Check some invariants.
5461         (solve_constraints): Move constraint dumping ...
5462         (compute_points_to_sets): ... here.
5463         (ipa_pta_execute): ... and here.
5464         (compute_may_aliases): Do not re-compute points-to info
5465         locally if IPA info is available.
5466         (ipa_escaped_pt): New global var.
5467         (ipa_pta_execute): Properly implement IPA PTA.
5468         * tree-into-ssa.c (dump_decl_set): Support dumping
5469         decls not in referenced-vars.
5470         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
5471         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
5472         (dump_points_to_solution): Likewise.
5473         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
5474         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
5475         (remap_gimple_stmt): Reset call clobber/use information if necessary.
5476         (copy_decl_to_var): Copy DECL_PT_UID.
5477         (copy_result_decl_to_var): Likewise.
5478         * tree.c (make_node_stat): Initialize DECL_PT_UID.
5479         (copy_node_stat): Copy it.
5480         * tree.h (DECL_PT_UID): New macro.
5481         (SET_DECL_PT_UID): Likewise.
5482         (DECL_PT_UID_SET_P): Likewise.
5483         (struct tree_decl_minimal): Add pt_uid member.
5484         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
5485         (pt_solution_empty_p): Declare.
5486         (pt_solution_set): Adjust.
5487         (ipa_escaped_pt): Declare.
5488         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
5489         * gimple-pretty-print.c (pp_points_to_solution): New function.
5490         (dump_gimple_call): Dump call clobber/use information.
5491         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
5492         * tree-pass.h (TDF_ALIAS): New dump option.
5493         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
5494         * doc/invoke.texi (-fipa-pta): Update documentation.
5495
5496 2010-04-15  Richard Guenther  <rguenther@suse.de>
5497
5498         * Makefile.in (OBJS-common): Add gimple-fold.o.
5499         (gimple-fold.o): New rule.
5500         * tree.h (maybe_fold_offset_to_reference,
5501         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
5502         prototypes ...
5503         * gimple.h: ... here.
5504         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
5505         may_propagate_address_into_dereference): Move prototypes ...
5506         * gimple.h: ... here.
5507         * tree-ssa-ccp.c (get_symbol_constant_value,
5508         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
5509         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
5510         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
5511         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
5512         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
5513         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
5514         gimplify_and_update_call_from_tree): Move ...
5515         * gimple-fold.c: ... here.  New file.
5516         (ccp_fold_builtin): Rename to ...
5517         (gimple_fold_builtin): ... this.
5518         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
5519
5520 2010-04-15  Richard Guenther  <rguenther@suse.de>
5521
5522         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
5523         fit_double_type, force_fit_type_double, add_double_with_sign,
5524         neg_double, mul_double_with_sign, lshift_double, rshift_double,
5525         lrotate_double, rrotate_double, div_and_round_double): Move ...
5526         * double-int.c: ... here.
5527         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
5528         add_double, neg_double, mul_double_with_sign, mul_double,
5529         lshift_double, rshift_double, lrotate_double, rrotate_double,
5530         div_and_round_double): Move prototypes ...
5531         * double-int.h: ... here.
5532
5533 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
5534
5535         PR target/43742
5536         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
5537         matching constraints to ensure inputs match the output.
5538
5539 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5540
5541         PR target/43742
5542         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
5543         in an input-only operand.
5544
5545 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
5546
5547         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
5548         (double_int_not, double_int_lshift, double_int_rshift): Declare.
5549         (double_int_negative_p): Convert to static inline function.
5550         * double-int.c (double_int_lshift, double_int_lshift): New functions.
5551         (double_int_negative_p): Remove.
5552         * tree.h (lshift_double, rshift_double):
5553         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
5554         * fold-const.c (fold_convert_const_int_from_real,
5555         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
5556         (lshift_double): Change type of arith argument to bool.
5557         (rshift_double): Change type of arith argument to bool. Correct
5558         comment.
5559         * expmed.c (mask_rtx, lshift_value): (Ditto.).
5560
5561 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
5562
5563         PR target/21803
5564         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
5565         at the start and end of the then/else blocks, and omit them from the
5566         conversion.
5567         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
5568         argument; all callers changed.  Pass zero to old_insns_match_p instead.
5569         (flow_find_head_matching_sequence): New function.
5570         (old_insns_match_p): Check REG_EH_REGION notes for calls.
5571         * basic-block.h (flow_find_cross_jump,
5572         flow_find_head_matching_sequence): Declare functions.
5573
5574 2010-04-14  Jason Merrill  <jason@redhat.com>
5575
5576         PR c++/36625
5577         * c-common.c (attribute_takes_identifier_p): New fn.
5578         * c-common.h: Declare it.
5579
5580 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5581
5582         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
5583         splitter condition.
5584         (*udivmod<mode>4): Ditto.
5585
5586 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5587
5588         * config/i386/i386.md (maxmin_int): Rename code attribute from
5589         maxminiprefix and update all users.
5590         (maxmin_float): Ditto from maxminfprefix.
5591         (logic): Ditto from logicprefix.
5592         (absneg_mnemonic): Ditto from absnegprefix.
5593         * config/i386/mmx.md: Update all users of maxminiprefix,
5594         maxminfprefix and logicprefix for rename.
5595         * config/i386/sse.md: Ditto.
5596         * config/i386/sync.md (sync_<code><mode>): Update for
5597         logicprefix rename.
5598
5599 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5600
5601         PR 42966
5602         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
5603         warnings converted to errors.
5604
5605 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5606
5607         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
5608         used insn_type variable.
5609         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
5610         to avoid set-but-not-used warning.
5611
5612 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5613
5614         * df-core.c (df_ref_debug): Change format string placeholder
5615         from 0x%x to %#x.
5616         * dwarf2asm.c (dw2_asm_output_data_raw,
5617         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
5618         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
5619         * dwarf2out.c (output_cfi, output_cfi_directive,
5620         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
5621         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
5622         Ditto.
5623         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
5624         * print-rtl.c (print_rtx): Ditto.
5625
5626 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
5627
5628         PR middle-end/42694
5629         * builtins.c (expand_builtin_pow_root): New function to expand pow
5630         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
5631         series of sqrt and cbrt calls under -ffast-math.
5632         (expand_builtin_pow): Call it.
5633
5634 2010-04-14  Michael Matz  <matz@suse.de>
5635
5636         PR tree-optimization/42963
5637         * tree-cfg.c (touched_switch_bbs): New static variable.
5638         (group_case_labels_stmt): New function broken out from ...
5639         (group_case_labels): ... here, use the above.
5640         (start_recording_case_labels): Allocate touched_switch_bbs.
5641         (end_recording_case_labels): Deallocate it, call
5642         group_case_labels_stmt.
5643         (gimple_redirect_edge_and_branch): Remember index of affected BB.
5644
5645 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5646
5647         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
5648         from insn template.
5649
5650 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5651
5652         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
5653
5654 2010-04-13  Jan Hubicka  <jh@suse.cz>
5655
5656         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
5657         of optimized out static functions.
5658         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
5659         cost computation.  Also sanity check for overflows.
5660         (update_caller_keys): Update cgraph_edge_badness call; properly
5661         update fibheap and sanity check that it is up to date.
5662         (add_new_edges_to_heap): Update cgraph_edge_badness.
5663         (cgraph_decide_inlining_of_small_function): Likewise;
5664         add sanity checking that badness in heap is up to date;
5665         improve dumping of reason; Update badness of calls to the
5666         offline copy of function currently inlined; dump badness
5667         of functions not inlined because of unit growth limits.
5668
5669 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
5670
5671         PR middle-end/32628
5672         * c-common.c (pointer_int_sum): Disregard overflow that occured only
5673         because of sign-extension change when converting to sizetype here...
5674         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
5675
5676         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
5677         the folding to constants.  Remove redundant final conversion.
5678         (fold_binary) <associate>: Do not associate if the re-association of
5679         constants alone overflows.
5680         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
5681         to the end of the list.
5682         (multiple_of_p) <COND_EXPR>: New case.
5683
5684 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5685
5686         * opt-functions.awk (opt_sanitized_name): New.
5687         (opt_enum): New.
5688         * optc-gen.awk: Use it
5689         * opth-gen.awk: Use it.
5690
5691 2010-04-13  Martin Jambor  <mjambor@suse.cz>
5692
5693         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
5694         (sra_modify_assign): Delete stmts loading dead data even if racc has no
5695         children.  Call replace_uses_with_default_def_ssa_name to handle
5696         SSA_NAES on lhs.
5697
5698 2010-04-13  Michael Matz  <matz@suse.de>
5699
5700         PR middle-end/43730
5701         * builtins.c (expand_builtin_interclass_mathfn): Also create
5702         a register if the predicate doesn't match.
5703
5704 2010-04-13  Diego Novillo  <dnovillo@google.com>
5705
5706         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
5707         * c-pch.c: Include timevar.h.
5708         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
5709         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
5710         * ggc-common.c: Include timevar.h.
5711         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
5712         * timevar.def (TV_PCH_SAVE): Define.
5713         (TV_PCH_CPP_SAVE): Define.
5714         (TV_PCH_PTR_REALLOC): Define.
5715         (TV_PCH_PTR_SORT): Define.
5716         (TV_PCH_RESTORE): Define.
5717         (TV_PCH_CPP_RESTORE): Define.
5718
5719 2010-04-13  Michael Matz  <matz@suse.de>
5720
5721         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
5722         into MINUS_EXPRs.
5723         (can_reassociate_p): New function.
5724         (break_up_subtract_bb, reassociate_bb): Use it.
5725
5726 2010-04-13  Richard Guenther  <rguenther@suse.de>
5727
5728         PR bootstrap/43737
5729         * builtins.c (c_readstr): Fix assert.
5730
5731 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
5732
5733         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
5734         when generating cltd insn.
5735
5736         (*ashl<mode>3_1): Remove special handling for register operand 2.
5737         (*ashlsi3_1_zext): Ditto.
5738         (*ashlhi3_1): Ditto.
5739         (*ashlhi3_1_lea): Ditto.
5740         (*ashlqi3_1): Ditto.
5741         (*ashlqi3_1_lea): Ditto.
5742         (*<shiftrt_insn><mode>3_1): Ditto.
5743         (*<shiftrt_insn>si3_1_zext): Ditto.
5744         (*<shiftrt_insn>qi3_1_slp): Ditto.
5745         (*<rotate_insn><mode>3_1): Ditto.
5746         (*<rotate_insn>si3_1_zext): Ditto.
5747         (*<rotate_insn>qi3_1_slp): Ditto.
5748
5749 2010-04-13  Richard Guenther  <rguenther@suse.de>
5750
5751         * tree-ssa-structalias.c (callused_id): Remove.
5752         (call_stmt_vars): New.
5753         (get_call_vi): Likewise.
5754         (lookup_call_use_vi): Likewise.
5755         (lookup_call_clobber_vi): Likewise.
5756         (get_call_use_vi): Likewise.
5757         (get_call_clobber_vi): Likewise.
5758         (make_transitive_closure_constraints): Likewise.
5759         (handle_const_call): Adjust to do per-call call-used handling.
5760         (handle_pure_call): Likewise.
5761         (find_what_var_points_to): Remove general callused handling.
5762         (init_base_vars): Likewise.
5763         (init_alias_vars): Initialize call_stmt_vars.
5764         (compute_points_to_sets): Process call-used and call-clobbered
5765         vars for call statements.
5766         (delete_points_to_sets): Free call_stmt_vars.
5767
5768 2010-04-13  Richard Guenther  <rguenther@suse.de>
5769
5770         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
5771         Only add RW dependence for dependence distance zero.
5772         Adjust maximal vectorization factor according to dependences.
5773         Move alignment handling ...
5774         (vect_find_same_alignment_drs): ... here.  New function.
5775         (vect_analyze_data_ref_dependences): Adjust.
5776         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
5777         (vect_analyze_data_refs): Adjust minimal vectorization factor
5778         according to data references.
5779         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
5780         dependences before determining the vectorization factor.
5781         Analyze alignment after determining the vectorization factor.
5782         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
5783         dependences before alignment.
5784         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
5785         Adjust prototype.
5786         (vect_analyze_data_refs): Likewise.
5787         (MAX_VECTORIZATION_FACTOR): New define.
5788
5789 2010-04-13  Duncan Sands  <baldrick@free.fr>
5790
5791         * except.h (lang_eh_type_covers): Remove.
5792         * except.c (lang_eh_type_covers): Likewise.
5793
5794 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5795             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5796
5797         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
5798         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
5799         UNITS_PER_LONG where it is ABI relevant.
5800         (s390_return_addr_rtx): Likewise.
5801         (s390_back_chain_rtx): Likewise.
5802         (s390_frame_area): Likewise.
5803         (s390_frame_info): Likewise.
5804         (s390_initial_elimination_offset): Likewise.
5805         (save_gprs): Likewise.
5806         (s390_emit_prologue): Likewise.
5807         (s390_emit_epilogue): Likewise.
5808         (s390_function_arg_advance): Likewise.
5809         (s390_function_arg): Likewise.
5810         (s390_va_start): Likewise.
5811         (s390_gimplify_va_arg): Likewise.
5812         (s390_function_profiler): Likewise.
5813         (s390_optimize_prologue): Likewise.
5814         (s390_rtx_costs): Likewise.
5815         (s390_secondary_reload): Likewise.
5816         (s390_promote_function_mode): Likewise.
5817         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
5818         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
5819         registers available.
5820         (s390_unwind_word_mode): New function.
5821         (s390_function_value): Split 64 bit values into register pair if
5822         used as return value.
5823         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
5824         function call parameters.  Handle parallels.
5825         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
5826         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
5827         (DWARF_CIE_DATA_ALIGNMENT): New macro.
5828         (s390_expand_setmem): Remove unused variable src_addr.
5829         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
5830         deal with 64 bit registers.
5831         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
5832         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
5833         (UNITS_PER_LONG): New macro.
5834         * libjava/include/s390-signal.h: Define extended ucontext
5835         structure containing the upper halfs of the 64 bit registers.
5836
5837 2010-04-13  Simon Baldwin  <simonb@google.com>
5838
5839         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
5840
5841 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
5842
5843         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
5844         rvalue on the RHS if the LHS is of a non-renamable type.
5845         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
5846
5847 2010-04-13  Matthias Klose  <doko@ubuntu.com>
5848
5849         * gcc.c (cc1_options): Handle -iplugindir before processing
5850         the cc1 spec. Only add -iplugindir once.
5851         (cpp_unique_options): Add -iplugindir option if -fplugin* options
5852         found.
5853         * common.opt (iplugindir): Remove `Separate' property, initialize.
5854         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
5855         option.
5856         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
5857         (distclean): Remove plugin dir.
5858         * doc/invoke.texi: Document -iplugindir.
5859
5860 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
5861
5862         * doc/plugins.texi (Loading Plugins): Document short
5863         -fplugin=foo option.
5864         (Plugin API): Mention default_plugin_dir_name function.
5865
5866         * gcc.c (find_file_spec_function): Add new declaration.
5867         (static_spec_func): Use it for "find-file".
5868         (find_file_spec_function): Add new function.
5869         (cc1_options): Add -iplugindir option if -fplugin* options found.
5870
5871         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
5872
5873         * plugin.c (add_new_plugin): Updated comment, and handle short
5874         plugin name.
5875         (default_plugin_dir_name): Added new function.
5876
5877         * common.opt (iplugindir): New option to set the plugin directory.
5878
5879 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
5880
5881         * config/i386/i386.md (any_rotate): New code iterator.
5882         (rotate_insn): New code attribute.
5883         (rotate): Ditto.
5884         (SWIM124): New mode iterator.
5885         (<rotate_insn>ti3): New expander.
5886         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
5887         any_rotate code iterator.
5888         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
5889         using any_rotate code iterator and SWIM124 mode iterator.
5890         (ix86_rotlti3): New insn_and_split pattern.
5891         (ix86_rotrti3): Ditto.
5892         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
5893         ix86_rotl{di,ti}3 patterns.
5894         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
5895         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
5896         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
5897         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
5898         code iterator and SWI mode iterator.
5899         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
5900         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
5901         code iterator.
5902         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
5903         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
5904         (bswap rotatert splitter): Add splitter.
5905         (bswap splitter): Macroize splitter using any_rotate code iterator.
5906         Add insn predicate to split only for TARGET_USE_XCHGB or when
5907         optimizing function for size.
5908
5909 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5910
5911         * config/pa/pa.c (emit_move_sequence): Remove use of
5912         deleted variable flag_argument_noalias.
5913
5914 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5915
5916         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
5917         configurations.
5918         Add to unsupported targets list.
5919         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
5920         sparc*-sun-solaris2.[567]* from target lists.
5921         * configure: Regenerate.
5922         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
5923         removal.
5924         Remove Solaris 7 patch references.
5925         (Specific, sparc-sun-solaris2.7): Removed.
5926         (sparc-sun-solaris2*): Update Solaris 7 example.
5927         (sparc64-*-solaris2*): Likewise.
5928
5929 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5930
5931         * config.build (alpha*-dec-osf4*): Remove.
5932         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
5933         of obsolete configurations.
5934         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
5935         support.
5936         * config/alpha/t-osf4: Renamed to ...
5937         * config/alpha/t-osf5: ... this.
5938         * config/alpha/osf.h: Renamed to ...
5939         * config/alpha/osf5.h: ... this.
5940         Merged old osf5.h contents.
5941         Update comments.
5942         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
5943         (EXTRA_SPECS): Removed.
5944         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
5945         reflect removal of Tru64 UNIX V4.0/V5.0 support.
5946         Document that.
5947
5948 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5949
5950         * doc/contrib.texi (Contributors, Rainer Orth): Update.
5951
5952 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
5953
5954         PR/43702
5955         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
5956         __thiscall convention.
5957
5958 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5959
5960         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
5961         orig_base.
5962         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
5963
5964 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5965
5966         * function.c (assign_parms_initialize_all): Add unused attribute
5967         to fntype.
5968
5969 2010-04-12  Richard Guenther  <rguenther@suse.de>
5970
5971         * gsstruct.def (GSS_CALL): New.
5972         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
5973         * gimple.h: Include tree-ssa-alias.h.
5974         (struct gimple_statement_call): New.
5975         (union gimple_statement_struct_d): Add gimple_call member.
5976         (gimple_call_reset_alias_info): Declare.
5977         (gimple_call_use_set): New function.
5978         (gimple_call_clobber_set): Likewise.
5979         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
5980         * gimple.c (gimple_call_reset_alias_info): New function.
5981         (gimple_build_call_1): Call it.
5982         * lto-streamer-in.c (input_gimple_stmt): Likewise.
5983         * tree-inline.c (remap_gimple_stmt): Likewise.
5984         (expand_call_inline): Remove callused handling.
5985         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
5986         * tree-dfa.c (dump_variable): Likewise.
5987         * tree-parloops.c (parallelize_loops): Likewise.
5988         * tree-ssa.c (init_tree_ssa): Likewise.
5989         (delete_tree_ssa): Likewise.
5990         * tree-flow-inline.h (is_call_used): Remove.
5991         * tree-flow.h (struct gimple_df): Remove callused member.
5992         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
5993         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
5994         (ref_maybe_used_by_call_p_1): Simplify.
5995         (call_may_clobber_ref_p_1): Likewise.
5996         * tree-ssa-structalias.c (compute_points_to_sets): Set
5997         the call stmt used and clobbered sets.
5998         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
5999         (find_tail_calls): Verify the tail call.
6000
6001 2010-04-12  Richard Guenther  <rguenther@suse.de>
6002
6003         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
6004         single-iteration always-inline inlining.
6005         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
6006         (cgraph_decide_inlining): Do not handle always-inline specially.
6007         (try_inline): Remove always-inline cycle detection special case.
6008         Do not recurse on always-inlines.
6009         (cgraph_early_inlining): Do not iterate if not optimizing.
6010         (cgraph_gate_early_inlining): remove.
6011         (pass_early_inline): Run unconditionally.
6012         (gate_cgraph_decide_inlining): New function.
6013         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
6014         not inlining or optimizing.
6015         (cgraph_decide_inlining_of_small_functions): Also consider
6016         always-inline functions.
6017         (cgraph_default_inline_p): Return true for nodes which should
6018         disregard inline limits.
6019         (estimate_function_body_sizes): Assume zero size and time for
6020         nodes which are marked as disregarding inline limits.
6021         (cgraph_decide_recursive_inlining): Do not perform recursive
6022         inlining on always-inline nodes.
6023
6024 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
6025
6026         PR bootstrap/43699
6027         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
6028         for exprs satisfying handled_component_p.
6029
6030 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
6031
6032         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
6033         non-constant aggregate elements.
6034
6035         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
6036         is a real initialization.
6037
6038 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
6039
6040         PR c/36774
6041         * c-decl.c (start_function): Move forward check for nested function.
6042
6043 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
6044
6045         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
6046         * config/sh/sh.c: Include reload.h.
6047         (sh_legitimize_reload_address): New.
6048         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
6049         sh_legitimize_reload_address.
6050
6051 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
6052
6053         * config/sh/sh.md (*movqi_pop): New insn pattern.
6054         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
6055
6056 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
6057
6058         * config/i386/i386.md (any_shiftrt): New code iterator.
6059         (shiftrt_insn): New code attribute.
6060         (shiftrt): Ditto.
6061         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
6062         using any_shiftrt code iterator.
6063         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
6064         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
6065         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
6066         pattern from corresponding peephole2 patterns.
6067         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
6068         using any_shiftrt code iterator.
6069         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
6070         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
6071         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
6072         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
6073         *{ashr,lshr}<mode>3_cmp_zext.
6074         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
6075
6076 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
6077
6078         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
6079         scratch register.
6080         (*lshr<mode>3_cconly): Ditto.
6081
6082 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
6083
6084         * config/i386/i386.md (lshr<mode>3): Macroize expander from
6085         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
6086         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6087         pattern from *lshr{di,ti}3_1 and corresponding splitters using
6088         DWI mode iterator.
6089         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
6090         from corresponding peephole2 patterns.
6091         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
6092         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
6093         and *lshrdi3_1_rex64 using SWI mode iterator.
6094         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
6095         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
6096         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
6097         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
6098         and *lshrdi3_cmp_rex64 using SWI mode iterator.
6099         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
6100         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
6101         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
6102         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
6103         SWI mode iterator.
6104
6105 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
6106
6107         * config/i386/i386.md (ashr<mode>3): Macroize expander from
6108         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
6109         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6110         pattern from *ashr{di,ti}3_1 and corresponding splitters using
6111         DWI mode iterator.
6112         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
6113         from corresponding peephole2 patterns.
6114         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
6115         (ashrsi3_cvt): Rename from ashrsi3_31.
6116         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
6117         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
6118         and x86_64_shift_adj_3 using SWI48 mode iterator.
6119         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
6120         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
6121         and *ashrdi3_1_rex64 using SWI mode iterator.
6122         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
6123         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
6124         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
6125         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
6126         and *ashrdi3_cmp_rex64 using SWI mode iterator.
6127         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
6128         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
6129         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
6130         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
6131         SWI mode iterator.
6132         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
6133         * config/i386/i386.c (ix86_split_ashr): Update for renamed
6134         x86_shift<mode>_adj_3 expanders.
6135
6136 2010-04-10  Wei Guozhi  <carrot@google.com>
6137
6138         PR target/42601
6139         * config/arm/arm.c (arm_pic_static_addr): New function.
6140         (legitimize_pic_address): Call arm_pic_static_addr when it detects
6141         a static symbol.
6142         (arm_output_addr_const_extra): Output expression for new pattern.
6143         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
6144
6145 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
6146
6147         * ira-costs.c (record_reg_classes): Ignore alternatives that are
6148         not enabled.
6149
6150         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
6151         * web.c: Include "insn-config.h" and "recog.h".
6152         (union_match_dups): New function.
6153         (web_main): Call it.
6154         (union_defs): Don't try to recognize match_dups.
6155
6156         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
6157         if doing so would replace the entire pattern.
6158
6159 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
6160
6161         PR target/43707
6162         PR target/43709
6163         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
6164         and splitter pattern.  Change splitter operand 1 predicate to
6165         nonmemory_operand.
6166
6167 2010-04-09  Martin Jambor  <mjambor@suse.cz>
6168
6169         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
6170         lattices are addresses of CONST_DECLs with the same initial value.
6171         (ipcp_print_all_lattices): Print values of CONST_DECLs.
6172         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
6173
6174 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
6175             Bernd Schmidt  <bernds@codesourcery.com>
6176
6177         * loop-invariant.c (replace_uses): New static function.
6178         (move_invariant_reg): Use it to ensure we can replace the uses.
6179
6180 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
6181
6182         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
6183         function template.
6184         (picochip_override_options): Enable section anchors only above -O1.
6185         (picochip_reorg): Fixed a couple of build warnings.
6186
6187 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6188
6189         * configure.ac (plugin -rdynamic test): Log result.
6190         * configure: Regenerate.
6191         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
6192         (RDYNAMIC_SPEC): Define.
6193         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
6194
6195 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6196
6197         * configure.ac: Determine Sun ld version numbers.
6198         (comdat_group): Restrict GNU ld version checks to gld.
6199         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
6200         (enable_comdat): Support --enable-comdat.
6201         * configure: Regenerate.
6202         * doc/install.texi (Configuration): Document --enable-comdat.
6203
6204 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6205
6206         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
6207         * config/sol2-gld.h: ... here.
6208         * config.gcc (sparc*-*-solaris2*): Reflect this.
6209         (i[34567]86-*-solaris2*): Use it.
6210
6211 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
6212
6213         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
6214         setup_clocks_p.
6215         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
6216
6217 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6218
6219         PR 42965
6220         * diagnostic.c (diagnostic_initialize): Initialize
6221         some_warnings_are_errors.
6222         (diagnostic_finish): New.
6223         (diagnostic_action_after_output): Call it before exiting.
6224         (diagnostic_report_diagnostic): Do not print message here. Set
6225         some_warnings_are_errors.
6226         * diagnostic.h (diagnostic_context): Delete
6227         issue_warnings_are_errors_message. Add some_warnings_are_errors.
6228         (diagnostic_finish): Declare.
6229         * toplev.c (toplev_main): Call it before exit.
6230
6231 2010-04-09  Jason Merrill  <jason@redhat.com>
6232
6233         PR c++/42623
6234         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
6235         for incomplete type.
6236
6237         PR c++/41788
6238         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
6239         based on a warning flag.
6240
6241 2010-04-09  Richard Guenther  <rguenther@suse.de>
6242
6243         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
6244
6245 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
6246
6247         PR bootstrap/43684
6248         * varasm.c (default_assemble_visibility): Wrap vars that are
6249         set, but unused, by targets without GAS.
6250         * config/rs6000/rs6000.c (paired_emit_vector_compare):
6251         Remove set, but unused, vars.
6252         (rs6000_legitimize_tls_address): Likewise.
6253         (altivec_expand_dst_builtin): Likewise.
6254         * config/darwin.c (machopic_classify_symbol): Likewise.
6255         (machopic_indirection_name): Likewise.
6256
6257 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
6258
6259         * config/i386/i386.md (DWI): New mode iterator.
6260         (S): New mode attribute.
6261         (shift_operand): Ditto.
6262         (shift_immediate_operand): Ditto.
6263         (ashl_input_operand): Ditto.
6264         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
6265         using SDWIM mode iterator.
6266         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6267         pattern from *ashl{di,ti}3_1 and corresponding splitters using
6268         DWI mode iterator.
6269         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
6270         from corresponding peephole2 patterns.
6271         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
6272         and x86_64_shift_adj_1 using SWI48 mode iterator.
6273         (x86_shift<mode>_adj_2): Ditto.
6274         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
6275         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
6276         using SWI48 mode iterator.
6277         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
6278         *ashldi3_cmp_rex64 using SWI mode iterator.
6279         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
6280         *ashldi3_cconly_rex64 using SWI mode iterator.
6281         * config/i386/i386.c (ix86_split_ashl): Update for renamed
6282         x86_shift<mode>_adj_{1,2}.
6283         (ix86_split_ashr): Ditto.
6284         (ix86_split_lshr): Ditto.
6285
6286 2010-04-09  Richard Guenther  <rguenther@suse.de>
6287
6288         * target.h (builtin_conversion): Pass in input and output types.
6289         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
6290         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
6291         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
6292         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
6293
6294         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
6295         Handle AVX modes.
6296         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
6297
6298 2010-04-09  Richard Guenther  <rguenther@suse.de>
6299
6300         PR target/43152
6301         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
6302
6303 2010-04-09  Richard Guenther  <rguenther@suse.de>
6304
6305         * tree-vectorizer.h (struct _stmt_vec_info): Document
6306         that vectype is the type of the LHS.
6307         (supportable_widening_operation, supportable_narrowing_operation):
6308         Get both input and output vector types as arguments.
6309         (vect_is_simple_use_1): Declare.
6310         (get_same_sized_vectype): Likewise.
6311         * tree-vect-loop.c (vect_determine_vectorization_factor):
6312         Set STMT_VINFO_VECTYPE to the vector type of the def.
6313         (vectorizable_reduction): Adjust.
6314         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
6315         Adjust.  Specify the output vector type.
6316         (vect_pattern_recog_1): Adjust.
6317         * tree-vect-stmts.c (get_same_sized_vectype): New function.
6318         (vectorizable_call): Adjust.
6319         (vectorizable_conversion): Likewise.
6320         (vectorizable_operation): Likewise.
6321         (vectorizable_type_demotion): Likewise.
6322         (vectorizable_type_promotion): Likewise.
6323         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
6324         the def.
6325         (vect_is_simple_use_1): New function.
6326         (supportable_widening_operation): Get both input and output
6327         vector types.
6328         (supportable_narrowing_operation): Likewise.
6329         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
6330
6331 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
6332
6333         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
6334         __thiscall and _thiscall as predefined macros.
6335         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
6336         thiscall attribute handling.
6337         (ix86_comp_type_attributes): Likewise.
6338         (ix86_function_regparm): Likewise.
6339         (ix86_return_pops_args): Likewise.
6340         (init_cumulative_args): Likewise.
6341         (find_drap_reg): Likewise.
6342         (ix86_static_chain): Likewise.
6343         (x86_this_parameter): Likewise.
6344         (x86_output_mi_thunk): Likewise.
6345         (ix86_attribute_table): Add description for thiscall attribute.
6346         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
6347         * doc/extend.texi: Add documentation for thiscall.
6348
6349 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6350
6351         PR c++/28584
6352         * c.opt (Wint-to-pointer-cast): Available in C++.
6353         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
6354
6355 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
6356
6357         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
6358         * calls.c (expand_call): Pass the function type to aggregate_value_p.
6359         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
6360         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
6361         function type instead.  Reorder and simplify checks.
6362
6363         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
6364
6365 2010-04-08  Jing Yu  <jingyu@google.com>
6366             Zdenek Dvorak  <ook@ucw.cz>
6367
6368         PR tree-optimization/42720
6369         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
6370         loop unswitch conditions here from ...
6371         (tree_unswitch_single_loop): ... here.
6372
6373 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
6374
6375         * tree-if-conv.c: Fix comments and simplify logic.
6376
6377 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
6378
6379         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
6380         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
6381         (main_tree_if_conversion): Update call to tree_if_conversion.
6382
6383 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6384
6385         PR 42485
6386         * doc/invoke.texi (-b,-V): Delete.
6387         * doc/tm.texi: Do not mention -b.
6388         * gcc.c (display_help): Delete -b and -V.
6389         (process_command): Delete -b and -V.
6390         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
6391
6392 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
6393             Wolfgang Gellerich  <gellerich@de.ibm.com>
6394
6395         Implement target hook for loop unrolling
6396         * target.h (loop_unroll_adjust): Add a new target hook function.
6397         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
6398         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
6399         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
6400         (s390_loop_unroll_adjust): Implement the new target hook for s390.
6401         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
6402         target hook.
6403         (decide_unroll_stupid): Likewise.
6404
6405 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6406
6407         PR target/43643
6408         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
6409
6410 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6411
6412         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
6413         (Specific, *-*-solaris2*): Likewise.
6414         Don't prefer Sun as over GNU as.
6415
6416 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
6417
6418         * config/s390/s390.c (override_options): Adjust the z10 defaults
6419         for max-unroll-times, max-completely-peeled-insns
6420         and max-completely-peel-times.
6421
6422 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6423
6424         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
6425         instructions for z10.
6426         (s390_expand_setmem): Likewise.
6427         (s390_expand_cmpmem): Likewise.
6428
6429 2010-04-08  Richard Guenther  <rguenther@suse.de>
6430
6431         PR tree-optimization/43679
6432         * tree-ssa-pre.c (eliminate): Only propagate copies.
6433
6434 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
6435
6436         PR bootstrap/43681
6437         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
6438         set but not used variable warning.
6439
6440 2010-04-08  Wei Guozhi  <carrot@google.com>
6441
6442         PR target/41653
6443         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
6444         (arm_size_rtx_costs): Call the new function when optimized for size.
6445
6446 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
6447
6448         PR debug/43670
6449         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
6450         op0 is not a MEM, just return NULL instead of assertion
6451         failure.
6452         (discover_nonconstant_array_refs): Don't walk debug stmts.
6453
6454 2010-04-08  Doug Kwan  <dougkwan@google.com>
6455
6456         * configure.ac: Recognize gold and do not use its version number
6457         to test ld features.
6458         * configure: Regenerate.
6459
6460 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
6461
6462         PR middle-end/40815
6463         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
6464         (negate_value): Move code to push elements to broken_up_substracts ...
6465         (eliminate_plus_minus_pair): ... here.  Push operands that have no
6466         negative pair to plus_negates.
6467         (repropagate_negates, init_reassoc, fini_reassoc): Update.
6468
6469 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6470
6471         * doc/install.texi (Configuration): Move description of
6472         --enable-lto, --with-libelf*, --enable-gold from Java section to
6473         general section.
6474
6475         * doc/generic.texi (Working with declarations)
6476         (Function Properties, C and C++ Trees): Fix typos.
6477         * doc/sourcebuild.texi (Top Level): Likewise.
6478
6479 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
6480
6481         PR c/18624
6482         * tree.h (DECL_READ_P): Define.
6483         (struct tree_decl_common): Add decl_read_flag.
6484         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
6485         a set but not used warning.
6486         (merge_decls): Merge DECL_READ_P flag.
6487         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
6488         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
6489         * c-common.c (handle_used_attribute, handle_unused_attribute):
6490         Likewise.
6491         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
6492         New prototypes.
6493         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
6494         New functions.
6495         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
6496         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
6497         c_parser_binary_expression, c_parser_cast_expression,
6498         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
6499         Call default_function_array_read_conversion instead of
6500         default_function_array_conversion where needed.
6501         (c_parser_unary_expression, c_parser_conditional_expression,
6502         c_parser_postfix_expression_after_primary, c_parser_initelt):
6503         Likewise.  Call mark_exp_read where needed.
6504         (c_parser_statement_after_labels, c_parser_asm_operands,
6505         c_parser_typeof_specifier, c_parser_sizeof_expression,
6506         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
6507         where needed.
6508         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
6509         New.
6510         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
6511         (warn_unused_but_set_parameter): Default to warn_unused
6512         && extra_warnings.
6513         * doc/invoke.texi: Document -Wunused-but-set-variable and
6514         -Wunused-but-set-parameter.
6515
6516         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
6517         used count variable.
6518         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
6519         when operandN variables aren't used in the body of the expander
6520         or splitter.
6521         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
6522         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
6523         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
6524         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
6525         FOR_EACH_IMM_USE_ON_STMT): Likewise.
6526         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
6527         * tree.c (PROCESS_ARG): Likewise.
6528
6529 2010-04-07  Simon Baldwin  <simonb@google.com>
6530
6531         * diagnostic.h (diagnostic_override_option_index): New macro to
6532         set a diagnostic's option_index.
6533         * c-tree.h (c_cpp_error): Add warning reason argument.
6534         * opts.c (_warning_as_error_callback): New.
6535         (register_warning_as_error_callback): Store callback for
6536         warnings enabled via enable_warning_as_error.
6537         (enable_warning_as_error): Call callback, minor code tidy.
6538         * opts.h (register_warning_as_error_callback): Declare.
6539         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
6540         response to -Werror=.
6541         (c_common_init_options): Register warning_as_error_callback in opts.c.
6542         * common.opt: Add -Wno-cpp option.
6543         * c-common.c (struct reason_option_codes_t): Map cpp warning
6544         reason codes to gcc option indexes.
6545         * (c_option_controlling_cpp_error): New function, lookup the gcc
6546         option index for a cpp warning reason code.
6547         * (c_cpp_error): Add warning reason argument, call
6548         c_option_controlling_cpp_error for diagnostic_override_option_index.
6549         * doc/invoke.texi: Document -Wno-cpp.
6550
6551 2010-04-07  Richard Guenther  <rguenther@suse.de>
6552
6553         * ipa-reference.c (mark_load): Use get_base_address.
6554         (mark_store): Likewise.
6555
6556         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
6557         inserting GIMPLE_NOPs into the IL.
6558         * tree-ssa-structalias.c (get_constraint_for_component_ref):
6559         Explicitly strip handled components and indirect references.
6560
6561         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
6562         folding address expressions.
6563         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
6564         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
6565         operand_equal_p to compare decls.
6566         (ptr_deref_may_alias_decl_p): Likewise.
6567         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
6568         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
6569         Handle reversed comparison ops.
6570         * tree-sra.c (asm_visit_addr): Use get_base_address.
6571         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
6572         * ipa-reference.c (mark_address): Use get_base_address.
6573
6574 2010-04-07  Richard Guenther  <rguenther@suse.de>
6575
6576         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
6577         Propagate constants everywhere.
6578
6579 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
6580
6581         PR debug/43516
6582         * tree.c (MAX_INT_CACHED_PREC): Define.
6583         (nonstandard_integer_type_cache): New array.
6584         (build_nonstandard_integer_type): Cache results for precision
6585         <= MAX_INT_CACHED_PREC.
6586
6587 2010-04-07  Richard Guenther  <rguenther@suse.de>
6588
6589         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
6590         -fargument-noalias-global, -fargument-noalias-anything): Remove.
6591         * common.opt: Likewise.
6592         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
6593         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
6594         (nonoverlapping_memrefs_p): Likewise.
6595         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6596         * opts.c (common_handle_option): Handle OPT_fargument_alias,
6597         OPT_fargument_noalias, OPT_fargument_noalias_anything and
6598         OPT_fargument_noalias_global for backward compatibility.
6599
6600 2010-04-07  Richard Guenther  <rguenther@suse.de>
6601
6602         PR tree-optimization/43270
6603         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
6604         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
6605         * tree-ssa-pre.c (phi_translate_1): Adjust.
6606         (fully_constant_expression): Split out vn_reference handling to ...
6607         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
6608         Fold reads from constant strings.
6609         (vn_reference_lookup): Handle fully constant references.
6610         (vn_reference_lookup_pieces): Likewise.
6611         * Makefile.in (expmed.o-warn): Add -Wno-error.
6612
6613 2010-04-07  Martin Jambor  <mjambor@suse.cz>
6614
6615         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
6616
6617 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
6618
6619         PR driver/41594
6620         * gcc.c: Add -static-libstdc++ to list of recognized options.
6621
6622 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6623
6624         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
6625
6626 2010-04-07  Richard Guenther  <rguenther@suse.de>
6627
6628         PR middle-end/42617
6629         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
6630         bases build simple mem attributes to retain points-to information.
6631
6632 2010-04-07  Richard Guenther  <rguenther@suse.de>
6633
6634         PR middle-end/42617
6635         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
6636         preserve points-to related information.
6637
6638 2010-04-07  Richard Guenther  <rguenther@suse.de>
6639
6640         PR middle-end/42617
6641         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
6642         discard plain indirect references.
6643         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
6644         * tree.c (tree_nop_conversion): Likewise.
6645
6646 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
6647
6648         PR debug/43628
6649         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
6650
6651 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
6652
6653         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
6654         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
6655
6656 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6657
6658         * tree-if-conv.c: Fix indentation and comments.
6659
6660 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6661
6662         * tree-if-conv.c: Sort static functions in topological order.
6663
6664 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6665
6666         * tree-if-conv.c: Fix indentation and comments.
6667
6668 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6669
6670         PR middle-end/43519
6671         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
6672         lang_hooks.types.type_for_size instead of
6673         build_nonstandard_integer_type.
6674         When converting an unsigned type to signed, double its precision.
6675         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
6676         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
6677         (graphite_create_new_loop_guard): When ub + 1 wraps around,
6678         use lb <= ub.
6679
6680 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6681
6682         PR middle-end/43519
6683         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
6684         POINTER_PLUS_EXPR for pointer types.
6685
6686 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6687
6688         PR middle-end/43519
6689         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
6690         * graphite-clast-to-gimple.c: Include langhooks.h.
6691         (max_signed_precision_type): New.
6692         (max_precision_type): Takes two types as arguments.
6693         (precision_for_value): New.
6694         (precision_for_interval): New.
6695         (gcc_type_for_interval): New.
6696         (gcc_type_for_value): New.
6697         (gcc_type_for_clast_term): New.
6698         (gcc_type_for_clast_red): New.
6699         (gcc_type_for_clast_bin): New.
6700         (gcc_type_for_clast_expr): Split up into several functions.
6701         (gcc_type_for_clast_eq): Rewritten.
6702         (compute_bounds_for_level): New.
6703         (compute_type_for_level_1): New.
6704         (compute_type_for_level): New.
6705         (gcc_type_for_cloog_iv): Removed.
6706         (gcc_type_for_iv_of_clast_loop): Rewritten.
6707         (graphite_create_new_loop): Compute the lower and upper bound types
6708         with gcc_type_for_clast_expr.
6709         (graphite_create_new_loop_guard): Same.
6710         (find_cloog_iv_in_expr): Removed.
6711         (compute_cloog_iv_types_1): Removed.
6712         (compute_cloog_iv_types): Removed.
6713         (gloog): Do not call compute_cloog_iv_types.
6714         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
6715         GBB_CLOOG_IV_TYPES.
6716         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
6717         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
6718         (GBB_CLOOG_IV_TYPES): Removed.
6719
6720 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6721
6722         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
6723         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
6724         (detect_commutative_reduction): Same.
6725
6726 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6727
6728         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
6729         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
6730         argument.
6731         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
6732         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
6733         (rewrite_commutative_reductions_out_of_ssa): Same.
6734         * passes.c (execute_function_todo): Call verify_ssa for every pass
6735         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
6736         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
6737         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
6738         with an extra argument.
6739         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
6740         verify_ssa only when the extra argument is true.
6741         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
6742         with an extra argument.
6743         (tree_transform_and_unroll_loop): Same.
6744
6745 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6746
6747         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
6748         for all the passes of the LNO having LOOP_CLOSED_SSA.
6749         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
6750         * tree-loop-distribution.c (pass_loop_distribution): Same.
6751         * tree-pass.h (TODO_verify_loops): Removed.
6752         * tree-ssa-loop.c (pass_tree_loop_init): Same.
6753         (pass_lim): Same.
6754         (pass_tree_unswitch): Same.
6755         (pass_predcom): Same.
6756         (pass_vectorize): Same.
6757         (pass_linear_transform): Same.
6758         (pass_graphite_transforms): Same.
6759         (pass_iv_canon): Same.
6760         (pass_complete_unroll): Same.
6761         (pass_complete_unrolli): Same.
6762         (pass_parallelize_loops): Same.
6763         (pass_loop_prefetch): Same.
6764         (pass_iv_optimize): Same.
6765
6766 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
6767
6768         PR middle-end/32824
6769         * passes.c (init_optimization_passes): Move pass_lim before
6770         pass_copy_prop and pass_dce_loop.
6771
6772 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
6773
6774         PR target/43667
6775         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
6776         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
6777         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
6778         MULTI_* defines for 4 argument vpermil2p* builtins.
6779
6780 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
6781
6782         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
6783         * config/i386/i386.c (x86_maybe_negate_const_int): New.
6784         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
6785         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
6786         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
6787         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
6788         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
6789         Use x86_maybe_negate_const_int to output insn mnemonic.
6790         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
6791         check from instruction predicate.  Update comments.
6792         * config/i386/sync.md (sync_add<mode>): Use
6793         x86_maybe_negate_const_int to output insn mnemonic.
6794
6795 2010-04-06  Jan Hubicka  <jh@suse.cz>
6796
6797         PR tree-optimization/42906
6798         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
6799         IGNORE_SELF argument.  Set visited_control_parents for fully
6800         processed BBs.
6801         (find_obviously_necessary_stmts): Update call of
6802         mark_control_dependent_edges_necessary.
6803         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
6804
6805 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
6806
6807         * config/i386/i386.md: Remove comment about 'e' and 'E'
6808         operand modifier.
6809
6810 2010-04-06  Richard Guenther  <rguenther@suse.de>
6811
6812         PR tree-optimization/43627
6813         * tree-vrp.c (extract_range_from_unary_expr): Widenings
6814         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
6815         not varying.
6816
6817 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
6818
6819         * BASE-VER: Change to 4.6.0.
6820
6821         PR target/43638
6822         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
6823         handling.
6824
6825 2010-04-06  Richard Guenther  <rguenther@suse.de>
6826
6827         PR middle-end/43661
6828         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
6829
6830 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6831
6832         * doc/invoke.texi (Optimize Options): Document that LTO
6833         won't remove object access purely due to incompatible
6834         declarations.
6835
6836 2010-04-04  Matthias Klose  <doko@ubuntu.com>
6837
6838         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
6839         Initialize variable.
6840
6841 2010-04-03  Richard Guenther  <rguenther@suse.de>
6842
6843         PR middle-end/42509
6844         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
6845         require a non-NULL MEM_OFFSET.
6846
6847 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
6848
6849         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
6850         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
6851         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
6852         config/alpha/predicates.md, config/arm/arm.md,
6853         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
6854         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
6855         config/darwin9.h, config/darwin.c, config/darwin.h,
6856         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
6857         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
6858         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
6859         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
6860         config/mips/mips.md, config/mn10300/mn10300.c,
6861         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
6862         config/rs6000/aix.h, config/rs6000/dfp.md,
6863         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
6864         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
6865         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
6866         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
6867         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
6868         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
6869         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
6870         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
6871         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
6872         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
6873         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
6874         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
6875         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
6876         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
6877         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
6878         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
6879         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
6880         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
6881         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
6882         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
6883         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
6884         opt-functions.awk, opth-gen.awk, params.def, passes.c,
6885         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
6886         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
6887         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
6888         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
6889         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
6890         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
6891         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
6892         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
6893         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
6894         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
6895         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
6896         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
6897         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
6898         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
6899
6900 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6901
6902         PR other/43620
6903         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
6904         * aclocal.m4: Regenerate.
6905
6906 2010-04-02  Richard Guenther  <rguenther@suse.de>
6907
6908         PR tree-optimization/43629
6909         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
6910         if we have seen a constant value.
6911
6912 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
6913
6914         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
6915
6916 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
6917
6918         PR target/43469
6919         * arm.c (legitimize_tls_address): Adjust call to
6920         gen_tls_load_dot_plus_four.
6921         (arm_note_pic_base): New function.
6922         (arm_cannot_copy_insn_p): Use it.
6923         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
6924         constraint.
6925
6926 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6927
6928         PR bootstrap/43531
6929
6930         Revert:
6931         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6932
6933         * Makefile.in ($(out_object_file)): Depend on
6934         gt-$(basename $(notdir $(out_file))).h.
6935
6936 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
6937
6938         * config.gcc (lm32-*-rtems*): Add t-lm32.
6939
6940 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
6941
6942         * config.gcc: Add lm32-*-rtems*.
6943         * config/lm32/rtems.h: New file.
6944
6945 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
6946
6947         PR target/42609
6948         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
6949
6950 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
6951
6952         * dwarf2out.c (output_compilation_unit_header): For
6953         -gdwarf-4 use version 4 instead of version 3.
6954         (output_line_info): For version 4 and above emit additional
6955         maximum ops per insn header field.
6956         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
6957
6958         * dwarf2out.c (is_c_family, is_java): Remove.
6959         (lower_bound_default): New function.
6960         (add_bound_info, gen_descr_array_type_die): Use it.
6961
6962 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
6963
6964         PR debug/43325
6965         * dwarf2out.c (gen_variable_die): Allow debug info for variable
6966         re-declaration when it happens in a function.
6967
6968 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
6969
6970         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
6971         (cgraph_remove_function_insertion_hook): Same.
6972         (cgraph_call_function_insertion_hooks): Same.
6973
6974 2010-04-01  Richard Guenther  <rguenther@suse.de>
6975
6976         PR middle-end/43614
6977         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
6978         and TREE_THIS_VOLATILE.
6979         (copy_ref_info): Likewise.
6980         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
6981         * tree.c (build6_stat): Ignore side-effects of all but arg5
6982         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
6983         TARGET_MEM_REF.
6984
6985 2010-04-01  Richard Guenther  <rguenther@suse.de>
6986
6987         PR tree-optimization/43607
6988         * ipa-type-escape.c (check_call): Do not access non-existing
6989         arguments.
6990
6991 2010-04-01  Richard Guenther  <rguenther@suse.de>
6992
6993         PR middle-end/43602
6994         Revert
6995         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
6996                     Jack Howarth <howarth@bromo.med.uc.edu>
6997
6998         * tree-profile.c (tree_init_ic_make_global_vars): Make static
6999         variables TLS.
7000
7001 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7002
7003         * doc/install.texi (Prerequisites): Document libelf usability on
7004         IRIX 5/6 and Solaris 2.
7005         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
7006         Update GNU as, GNU ld requirements.
7007         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
7008         Document Sun Studio compiler download.
7009         Update and simplify as, ld recommendations.
7010         (Specific, *-*-solaris2.7): Note obsoletion, removal.
7011
7012 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7013
7014         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
7015         with_tune_32 to pentium4.
7016
7017 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
7018
7019         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
7020
7021 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7022
7023         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
7024         obsoletion, removal.
7025         Update IDO URL.
7026         Document GNU as requirement.
7027         Update configure requirements.
7028         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
7029         Recomment IRIX 6.5.18+.
7030         Document IDF/IDL requirement.
7031         Document GNU as requirement.
7032         Document GNU ld bootstrap failure.
7033         Remove freeware.sgi.com reference.
7034
7035 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7036
7037         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
7038         UNIX V4.0, V5.0 obsoletion, removal.
7039         Remove --with-gc=simple reference.
7040         Update VM requirements during bootstrap.
7041         Remove -oldas bootstrap description.
7042         Update binutils reference.
7043         Remove comparison failure note.
7044
7045 2010-03-31  Richard Guenther  <rguenther@suse.de>
7046             Zdenek Dvorak  <ook@ucw.cz>
7047             Sebastian Pop  <sebastian.pop@amd.com>
7048
7049         PR middle-end/43464
7050         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
7051         with multiple arguments.
7052         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
7053
7054 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7055
7056         * graphite-dependences.c (print_pddr): Call print_pdr with an
7057         extra argument.
7058         * graphite-poly.c (debug_pdr): Add an extra argument for the
7059         verbosity level.
7060         (print_pdr): Same.
7061         (print_pbb_domain): Same.
7062         (print_pbb): Same.
7063         (print_scop_context): Same.
7064         (print_scop): Same.
7065         (print_cloog): Same.
7066         (debug_pbb_domain): Same.
7067         (debug_pbb): Same.
7068         (print_pdrs): Same.
7069         (debug_pdrs): Same.
7070         (debug_scop_context): Same.
7071         (debug_scop): Same.
7072         (debug_cloog): Same.
7073         (print_scop_params): Same.
7074         (debug_scop_params): Same.
7075         (print_iteration_domain): Same.
7076         (print_iteration_domains): Same.
7077         (debug_iteration_domain): Same.
7078         (debug_iteration_domains): Same.
7079         (print_scattering_function): Same.
7080         (print_scattering_functions): Same.
7081         (debug_scattering_function): Same.
7082         (debug_scattering_functions): Same.
7083         * graphite-poly.h (debug_pdr): Update declaration.
7084         (print_pdr): Same.
7085         (print_pbb_domain): Same.
7086         (print_pbb): Same.
7087         (print_scop_context): Same.
7088         (print_scop): Same.
7089         (print_cloog): Same.
7090         (debug_pbb_domain): Same.
7091         (debug_pbb): Same.
7092         (print_pdrs): Same.
7093         (debug_pdrs): Same.
7094         (debug_scop_context): Same.
7095         (debug_scop): Same.
7096         (debug_cloog): Same.
7097         (print_scop_params): Same.
7098         (debug_scop_params): Same.
7099         (print_iteration_domain): Same.
7100         (print_iteration_domains): Same.
7101         (debug_iteration_domain): Same.
7102         (debug_iteration_domains): Same.
7103         (print_scattering_function): Same.
7104         (print_scattering_functions): Same.
7105         (debug_scattering_function): Same.
7106         (debug_scattering_functions): Same.
7107
7108 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7109
7110         * graphite-poly.c (print_scattering_function_1): New.
7111         (print_scattering_function): Call it.
7112         (print_scop_params): Remove spaces at the end of lines.
7113         (print_cloog): New.
7114         (debug_cloog): New.
7115         * graphite-poly.h (print_cloog): Declared.
7116         (debug_cloog): Declared.
7117
7118 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7119
7120         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
7121         in loop->header.
7122         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
7123         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
7124         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
7125         to switch between adding the IV bump in loop->latch or in loop->header.
7126
7127 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7128
7129         * graphite-poly.c (print_scattering_function): Pretty print following
7130         the scoplib format.
7131         (print_pdr): Same.
7132         (print_pbb_domain): Same.
7133         (dump_gbb_cases): Same.
7134         (dump_gbb_conditions): Same.
7135         (print_pdrs): Same.
7136         (print_pbb): Same.
7137         (print_scop_params): Same.
7138         (print_scop_context): Same.
7139         (print_scop): Same.
7140         (print_pbb_body): New.
7141         (lst_indent_to): New.
7142         (print_lst): Start new lines with a #.
7143         * graphite-poly.h (pbb_bb): New.
7144         (pbb_index): Use pbb_bb.
7145         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
7146         disjuncts.
7147         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
7148
7149 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
7150
7151         * dwarf2out.c (size_of_die): For -gdwarf-4 use
7152         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
7153         and 0 instead of 1 for dw_val_class_flag.
7154         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
7155         dw_val_class_range_list, dw_val_class_loc_list,
7156         dw_val_class_lineptr and dw_val_class_macptr, use
7157         DW_FORM_flag_present for dw_val_class_flag and
7158         DW_FORM_exprloc for dw_val_class_loc.
7159         (output_die): For -gdwarf-4 print dw_val_class_loc
7160         size as uleb128 instead of 1 or 2 bytes and don't print
7161         anything for dw_val_class_flag.
7162
7163         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
7164         instead of cselib_lookup following by tweaking locs->setting_insn.
7165
7166         PR bootstrap/43596
7167         * cselib.c (cselib_process_insn): Clear cselib_current_insn
7168         even before returning from label, setjmp call or volatile asm
7169         handling.
7170
7171 2010-03-31  Richard Guenther  <rguenther@suse.de>
7172
7173         PR middle-end/43600
7174         * cgraphunit.c (cgraph_output_in_order): Do not allocate
7175         temporary data on stack.
7176
7177 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7178
7179         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
7180         (PUSHSECTION_ASM_OP): Remove.
7181         (POPSECTION_ASM_OP): Remove.
7182         (PUSHSECTION_FORMAT): Remove.
7183         * config/sol2.h (PUSHSECTION_FORMAT): Define.
7184         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
7185         * config/sol2.c (solaris_output_init_fini): Use it.
7186
7187 2010-03-31  Jie Zhang  <jie@codesourcery.com>
7188
7189         PR 43574
7190         * opt-functions.awk (var_type_struct): Use signed char type
7191         for simple variables.
7192
7193 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7194
7195         * config/sol2.c: Include output.h.
7196         (solaris_assemble_visibility): New function.
7197         * config/t-sol2 (sol2.o): Add output.h dependency.
7198         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
7199         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
7200         Redefine.
7201
7202 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
7203
7204         PR target/43580
7205         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
7206         V2SImode or XFmode on PRE_DEC.
7207
7208         PR debug/43557
7209         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
7210         BLKmode.
7211
7212 2010-03-31  Jie Zhang  <jie@codesourcery.com>
7213
7214         PR 43562
7215         * reload.h (caller_save_initialized_p): Declare.
7216         * toplev.c (backend_init_target): Don't call
7217         init_caller_save but set caller_save_initialized_p to false.
7218         * caller-save.c (caller_save_initialized_p): Define.
7219         (init_caller_save): Check caller_save_initialized_p.
7220         * ira.c (ira): Call init_caller_save if flag_caller_saves.
7221
7222 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7223
7224         PR target/39048
7225         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
7226         and soft-fp/t-softfp to tmake_file.
7227         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
7228         (LIBGCC2_TF_CEXT): Define.
7229         (TF_SIZE): Define.
7230
7231 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
7232
7233         PR debug/42977
7234         * cselib.c (n_useless_values): Document handling of debug locs.
7235         (n_useless_debug_values, n_debug_values): New variables.
7236         (new_elt_loc_list): Don't add to debug values, keep count.
7237         (promote_debug_loc): New.
7238         (cselib_reset_table): Zero new variables.
7239         (entry_and_rtx_equal_p): Promote debug locs.
7240         (discard_useless_locs): Increment n_useless_debug_values for
7241         debug values.
7242         (remove_useless_values): Adjust n_useless_values and n_debug_values
7243         with n_useless_debug_values.
7244         (add_mem_for_addr): Promote debug locs.
7245         (cselib_lookup_mem): Likewise.
7246         (cselib_lookup_addr): Renamed to...
7247         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
7248         (cselib_log_lookup): ... this.  Turn into...
7249         (cselib_lookup_addr): ... new wrapper.
7250         (cselib_lookup_from_insn): New.
7251         (cselib_invalidate_regno): Increment n_useless_debug_values for
7252         debug values.
7253         (cselib_invalidate_mem): Likewise.
7254         (cselib_process_insn): Take n_deleted and n_debug_values into
7255         account to guard remove_useless_value call.
7256         (cselib_finish): Zero n_useless_debug_values.
7257         * cselib.h (cselib_lookup_from_insn): Declare.
7258         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
7259         (sched_analyze_2): Likewise.
7260
7261 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
7262
7263         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
7264         functions.
7265         (adjust_mems): Replace narrowing SUBREG of expression containing
7266         just PLUS, MINUS, MULT and ASHIFT of registers and constants
7267         with operations in the narrower mode.
7268
7269         PR debug/43593
7270         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
7271         regs_invalidated_by_call instead all call_used_reg_set registers.
7272
7273 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
7274
7275         PR middle-end/43430
7276         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
7277         pointer comparisons with types_compatible_p.
7278         * tree-vect-stmts.c (vectorizable_call): Same.
7279         (vectorizable_condition): Same.
7280
7281 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7282
7283         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
7284         stack check if the mask would be zero.
7285
7286 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
7287             Jack Howarth <howarth@bromo.med.uc.edu>
7288
7289         * tree-profile.c (tree_init_ic_make_global_vars): Make static
7290         variables TLS.
7291
7292 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
7293
7294         PR other/25232
7295         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
7296         and __unordtf2.
7297         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
7298         Include ___unordxf2 and ___unordtf2.
7299         * config/i386/libgcc-glibc.ver: Do not define inheritance from
7300         GCC_4.4.0 here.
7301
7302 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
7303
7304         * config/lm32/t-lm32: New file.
7305         * config.gcc: Use the above file when targetting lm32.
7306
7307 2010-03-28  Duncan Sands  <baldrick@free.fr>
7308
7309         * Makefile.in (PLUGIN_HEADERS): Add except.h.
7310
7311 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
7312
7313         PR middle-end/43431
7314         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
7315         Improve vectorization cost model diagnostic.
7316
7317 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
7318
7319         PR middle-end/43436
7320         * tree-vect-data-refs.c (vect_analyze_data_refs): When
7321         compute_data_dependences_for_loop returns false, early exit
7322         and output an extra diagnostic for the failed data reference
7323         analysis.
7324
7325 2010-03-29  Richard Guenther  <rguenther@suse.de>
7326
7327         PR tree-optimization/43560
7328         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
7329         (can_sm_ref_p): Treat stores to readonly locations as trapping.
7330
7331 2010-03-29  Jie Zhang  <jie@codesourcery.com>
7332
7333         PR 43564
7334         * toplev.c (process_options): Set optimization_default_node
7335         and optimization_current_node.
7336         * opts.c (decode_options): Don't set optimization_default_node
7337         and optimization_current_node.
7338
7339 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
7340
7341         * config/rtems.h: Abandon -qrtems_debug.
7342
7343 2010-03-28  Jan Hubicka  <jh@suse.cz>
7344
7345         PR tree-optimization/43505
7346         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
7347         map should not be copied.
7348
7349 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7350
7351         PR middle-end/41674
7352         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
7353         cdtors, set DECL_PRESERVE_P.
7354         * ipa.c (cgraph_externally_visible_p): Return true if declaration
7355         should be preseved.
7356
7357 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
7358
7359         PR tree-optimization/43528
7360         * stor-layout.c (place_field): Check that constant fits into
7361         unsigned HWI when skipping calculation of MS bitfield layout.
7362
7363 2010-03-27  Jan Hubicka  <jh@suse.cz>
7364
7365         PR middle-end/43391
7366         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
7367         notice_global_symbol work.
7368
7369 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
7370
7371         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
7372         instead of dwarf2out_decl.
7373         (struct var_loc_node): Remove section_label field.
7374         (dwarf2out_function_decl): New function.
7375         (dwarf2out_var_location): Don't set section_label field.
7376         (dwarf2out_begin_function): Don't empty decl_loc_table here.
7377
7378 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
7379
7380         PR tree-optimization/43544
7381         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
7382         First argument for builtin vectorized function hook is now a
7383         tree to be able to distinguish between machine specific and
7384         standard builtins.
7385         * targhooks.c (default_builtin_vectorized_function): Ditto.
7386         * targhooks.h (default_builtin_vectorized_function): Ditto.
7387         * target.h (struct gcc_target): Ditto.
7388         * tree-vect-stmts.c (vectorizable_function): Ditto.
7389         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
7390         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
7391         Ditto.
7392
7393 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
7394
7395         PR c/43381
7396         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
7397         nested binding iff it is a FUNCTION_DECL.
7398         (store_parm_decls_newstyle): Pass nested=true to bind for
7399         FUNCTION_DECLs amongst parameters.
7400
7401 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
7402
7403         * var-tracking.c (vt_expand_loc_callback): Don't run
7404         cselib_expand_value_rtx_cb in dummy mode if
7405         cselib_dummy_expand_value_rtx_cb returned false.
7406
7407         * var-tracking.c (emit_note_insn_var_location): For one part
7408         notes with offset 0, don't add EXPR_LIST around the location.
7409         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
7410         add_location_or_const_value_attribute): Adjust for that change.
7411
7412         PR debug/43540
7413         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
7414         into first operand and location into second.
7415         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
7416         dw_cfi_oprnd_loc for DW_CFA_expression.
7417         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
7418         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
7419         assume first argument is regnum and second argument is location.
7420
7421 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
7422
7423         PR target/42113
7424         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
7425         of scratch register to DImode.  Split to DImode comparison operator.
7426         Use SImode subreg of scratch register in the multiplication.
7427         (*cmp_sadd_sidi): Ditto.
7428         (*cmp_ssub_si): Ditto.
7429         (*cmp_ssub_sidi): Ditto.
7430
7431 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
7432
7433         PR target/43524
7434         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
7435         Remove invalid assert and wrong comment.
7436
7437 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
7438
7439         PR debug/43516
7440         * flags.h (final_insns_dump_p): New extern.
7441         * final.c (final_insns_dump_p): New variable.
7442         (rest_of_clean_state): Set it before -fdump-final-insns=
7443         dumping, clear afterwards.
7444         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
7445         MEM_ALIAS_SET on MEMs.
7446
7447 2010-03-26  David S. Miller  <davem@davemloft.net>
7448
7449         * configure.ac: Fix sparc GOTDATA_OP bug check.
7450         * configure: Rebuild.
7451
7452 2010-03-26  Alan Modra  <amodra@gmail.com>
7453
7454         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
7455
7456 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7457
7458         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
7459         TLS_SECTION_ASM_FLAG.
7460
7461 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
7462
7463         PR bootstrap/43511
7464         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
7465         Clear first_function_block_is_cold.
7466
7467         PR c/43385
7468         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
7469         argument if the argument is truth_value_p.
7470
7471 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
7472
7473         * config/rs6000/constraints.md: Update copyright year for my changes.
7474
7475         PR target/43484
7476         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
7477         used in reg+reg addressing, swap registers.
7478
7479 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
7480
7481         PR debug/43293
7482         * target.h (struct gcc_target): Add code_end hook.
7483         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
7484         if not yet defined.
7485         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
7486         * toplev.c (compile_file): Call targetm.asm_out.code_end
7487         hook before unwind info/debug info output.
7488         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
7489         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
7490         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7491         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
7492         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7493         * config/i386/i386.c (ix86_file_end): Renamed to...
7494         (ix86_code_end): ... this.  Make static.  Don't call
7495         file_end_indicate_exec_stack.  Emit unwind info using
7496         final_start_function/final_end_function.
7497         (darwin_x86_file_end): Remove.
7498         (TARGET_ASM_CODE_END): Define.
7499         * config/i386/i386.h (TARGET_ASM_FILE_END,
7500         NEED_INDICATE_EXEC_STACK): Don't define.
7501         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
7502         (TARGET_ASM_FILE_END): Define to darwin_file_end.
7503         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
7504         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
7505
7506         PR target/43498
7507         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
7508         at the beginning and final_end_function at the end.
7509         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
7510
7511 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7512
7513         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
7514         and Sun as TLS syntax.
7515         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
7516         * configure: Regenerate.
7517         * config.in: Regenerate.
7518         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
7519         (default_elf_asm_named_section): Use it.
7520         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
7521         (i386_output_dwarf_dtprel): Likewise.
7522         (output_addr_const_extra): Likewise.
7523         (output_pic_addr_const): Lowercase @GOTTPOFF.
7524         (output_addr_const_extra): Likewise.
7525         (output_pic_addr_const): Lowercase @GOTNTPOFF.
7526         (output_addr_const_extra): Likewise.
7527         (output_pic_addr_const): Lowercase @INDNTPOFF.
7528         (output_addr_const_extra): Likewise.
7529         (output_pic_addr_const): Lowercase @NTPOFF.
7530         (output_addr_const_extra): Likewise.
7531         (output_pic_addr_const): Lowercase @TPOFF.
7532         (output_addr_const_extra): Likewise.
7533         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
7534         (*tls_global_dynamic_64): Likewise.
7535         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
7536         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
7537
7538         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
7539         (ASM_OUTPUT_TLS_COMMON): Use it.
7540         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
7541
7542         PR target/38118
7543         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
7544         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
7545         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
7546         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
7547         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7548         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
7549
7550 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7551
7552         * config/i386/i386.c (override_options): Don't accept
7553         -mtls-dialect=sun any longer.
7554         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
7555         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
7556         (*tls_local_dynamic_base_32_sun): Likewise.
7557         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7558
7559 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
7560
7561         PR debug/43508
7562         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
7563         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
7564
7565         PR debug/43479
7566         * ira.c (adjust_cleared_regs): New function.
7567         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
7568
7569         PR debug/19192
7570         PR debug/43479
7571         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
7572         from gimple_block.
7573         * expr.c (expand_expr_real): Restore previous
7574         curr_insn_source_location and curr_insn_block after
7575         expand_expr_real_1 call.
7576         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
7577         instead of expand_expr_real_1.
7578
7579 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
7580
7581         PR rtl-optimization/43413
7582         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
7583         hard regs too.
7584
7585 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
7586
7587         PR target/43348
7588         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
7589         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
7590
7591 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
7592
7593         * config/i386/i386.c (ix86_target_string): Add -mfma.
7594         Fix a typo in comment.
7595
7596 2010-03-22  Mike Stump  <mikestump@comcast.net>
7597
7598         PR target/23071
7599         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
7600         Don't overly align based upon packed packed fields.
7601
7602 2010-03-22  Jason Merrill  <jason@redhat.com>
7603
7604         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
7605         Use () rather than [], and move before the element type.
7606
7607 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7608
7609         * doc/configfiles.texi (Configuration Files): Removed
7610         fixinc/Makefile*, intl/Makefile.*.
7611         * doc/makefile.texi: Fixed markup. Abstract from version
7612         control system used.
7613         (Makefile): Removed obsolete gcc/java/parse.y example.
7614         * doc/sourcebuild.texi: Likewise.
7615         (Top Level): Added config, gnattools, libdecnumber, libgcc,
7616         libgomp, libssp.  Removed fastjar.
7617         (Miscellaneous Docs): Clarify location.
7618         Added COPYING3, COPYING3.LIB.
7619         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
7620
7621 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7622
7623         PR target/38085
7624         * config/i386/i386.c (x86_function_profiler)
7625         [!NO_PROFILE_COUNTERS]: Fix typo.
7626         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
7627         instead of callq.
7628
7629 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
7630             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7631
7632         * doc/sourcebuild.texi (Test Directives): Split into six
7633         subsections, with most of the current text in new subsections
7634         Directives, Selectors, and Final Actions.
7635         (Directives): Split list of test directives into multiple
7636         subsubsections.
7637         (Selectors): Describe use and syntax of selectors.
7638         (Effective-Target Keywords): Describe all existing keywords.
7639         (Add Options): Describe features for dg-add-options.
7640         (Require Support): Describe variants of dg-require-support.
7641         (Final Actions): Describe commands to use in dg-final.
7642
7643 2010-03-22  Michael Matz  <matz@suse.de>
7644
7645         PR middle-end/43475
7646         * recog.c (validate_replace_rtx_group): Replace also in
7647         REG_EQUAL and REG_EQUIV notes.
7648
7649 2010-03-22  Richard Guenther  <rguenther@suse.de>
7650
7651         PR tree-optimization/43390
7652         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
7653         sure vector extracts are type correct.
7654
7655 2010-03-22  Richard Guenther  <rguenther@suse.de>
7656
7657         PR middle-end/40106
7658         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
7659         x * sqrt (x) even when optimizing for size if the target
7660         has native support for sqrt.
7661
7662 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
7663
7664         * varasm.c (make_decl_rtl_for_debug): Also clear
7665         flag_mudflap for the duration of make_decl_rtl call.
7666
7667         PR debug/43443
7668         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
7669         locs from preserved VALUEs.
7670
7671 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7672
7673         PR middle-end/42718
7674         * pa.md (movmemsi): Set align to one if zero.
7675         (movmemdi): Likewise.
7676
7677 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
7678
7679         PR target/42321
7680         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
7681         with their corresponding prologue pushes.
7682
7683 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
7684
7685         PR target/43156
7686         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
7687         at the begining or end.
7688         (spu_expand_epilogue): Likewise.
7689
7690 2010-03-20  Richard Guenther  <rguenther@suse.de>
7691
7692         PR rtl-optimization/43438
7693         * combine.c (make_extraction): Properly zero-/sign-extend an
7694         extraction of the low part of a CONST_INT.  Also handle
7695         CONST_DOUBLE.
7696
7697 2010-03-19  Mike Stump  <mikestump@comcast.net>
7698
7699         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
7700         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
7701         (override_options): Use SUBTARGET32_DEFAULT_CPU.
7702
7703 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
7704
7705         PR c/43211
7706         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
7707         an error.
7708
7709 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
7710
7711         PR rtl-optimization/42258
7712         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
7713         use that may match DEF.
7714
7715         PR target/40697
7716         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
7717         the cost of loading the constant rather than assuming
7718         COSTS_N_INSNS (1).
7719         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
7720         outer code is AND, do the same tests as the andsi3 expander and
7721         return COSTS_N_INSNS (1) if and is cheap.
7722
7723         * optabs.c (avoid_expensive_constant): Fix formatting.
7724
7725 2010-03-19  Michael Matz  <matz@suse.de>
7726
7727         PR c++/43116
7728         * attribs.c (decl_attributes): When rebuilding a function pointer
7729         type use the same qualifiers as the original pointer type.
7730
7731 2010-03-19  Martin Jambor  <mjambor@suse.cz>
7732
7733         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
7734         and is_gimple_ip_invariant_address.
7735
7736 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7737
7738         Revert
7739         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7740
7741         * config/arm/arm.c (arm_override_options): Turn off
7742         flag_dwarf2_cfi_asm for AAPCS variants.
7743
7744 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7745
7746         PR target/43399
7747         * config/arm/arm.c (emit_multi_reg_push): Update comments.
7748         Use PRE_MODIFY instead of PRE_DEC.
7749         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
7750         (vfp_emit_fstmd): Likewise.
7751
7752 2010-03-19  Michael Matz  <matz@suse.de>
7753
7754         PR target/43305
7755         * builtins.c (expand_builtin_interclass_mathfn,
7756         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
7757         if that fails.
7758
7759 2010-03-19  Richard Guenther  <rguenther@suse.de>
7760
7761         PR tree-optimization/43415
7762         * tree-ssa-pre.c (phi_translate): Split out worker to ...
7763         (phi_translate_1): ... this.
7764         (phi_translate): Move all caching here.  Cache all NARY
7765         and REFERENCE translations.
7766
7767 2010-03-19  David S. Miller  <davem@davemloft.net>
7768
7769         With help from Eric Botcazou.
7770         * config/sparc/sparc.c: Include dwarf2out.h.
7771         (emit_pic_helper): Delete.
7772         (pic_helper_symbol_name): Delete.
7773         (pic_helper_emitted_p): Delete.
7774         (pic_helper_needed): New.
7775         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
7776         (get_pc_thunk_name): New.
7777         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
7778         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
7779         Set pic_helper_needed to true.  Don't call emit_pic_helper.
7780         (sparc_expand_prologue): Update load_pic_register call.
7781         (sparc_output_mi_thunk): Likewise.
7782         (sparc_file_end): Emit a hidden comdat symbol for the PIC
7783         thunk if possible.  Output CFI information as needed.
7784
7785 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
7786             Jack Howarth <howarth@bromo.med.uc.edu>
7787
7788         PR target/36399
7789         * config/i386/i386.h: Fix ABI on darwin x86-32.
7790
7791 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
7792
7793         * tree.h: Declare make_decl_rtl_for_debug.
7794         * varasm.c (make_decl_rtl_for_debug): New.
7795         * dwarf2out.c (rtl_for_decl_location): Call it.
7796         * cfgexpand.c (expand_debug_expr): Call it.
7797
7798 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
7799
7800         PR bootstrap/43399
7801         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
7802         mem_mode.
7803
7804         PR bootstrap/43403
7805         * var-tracking.c (vt_init_cfa_base): Do nothing if
7806         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
7807
7808 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
7809
7810         PR debug/42873
7811         * var-tracking.c (canonicalize_vars_star): New.
7812         (dataflow_post_merge_adjust): Use it.
7813
7814 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
7815
7816         PR debug/43058
7817         * var-tracking.c (non_suitable_const): New function.
7818         (add_uses): For DEBUG_INSNs with constants, don't record any
7819         value, instead just the constant value itself.
7820         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
7821         is not VAR_LOC_UNKNOWN_P, set var to the constant.
7822         (emit_notes_in_bb): Likewise.
7823         (emit_note_insn_var_location): For onepart variables if
7824         cur_loc is a VOIDmode constant, use DECL_MODE.
7825
7826 2010-03-18  Martin Jambor  <mjambor@suse.cz>
7827
7828         PR middle-end/42450
7829         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
7830         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
7831         all non-clones.  Moved call redirection...
7832         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
7833         (cgraph_materialize_all_clones): Dispose of all
7834         combined_args_to_skip bitmaps.
7835         (verify_cgraph_node): Do not check for edges pointing to wrong
7836         nodes in inline clones.
7837         * tree-inline.c (copy_bb): Call
7838         cgraph_redirect_edge_call_stmt_to_callee.
7839         * ipa.c (cgraph_remove_unreachable_nodes): Call
7840         cgraph_node_remove_callees even when there are used clones.
7841
7842 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
7843
7844         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
7845
7846 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
7847
7848         PR target/43383
7849         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
7850         for 32bit.
7851
7852 2010-03-18  Michael Matz  <matz@suse.de>
7853
7854         PR middle-end/43419
7855         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
7856         into sqrt(x) if we need to preserve signed zeros.
7857
7858 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
7859             Eric Botcazou  <ebotcazou@adacore.com>
7860
7861         PR rtl-optimization/43360
7862         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
7863         note if we don't know its invariant status.
7864
7865 2010-03-18  Michael Matz  <matz@suse.de>
7866
7867         PR tree-optimization/43402
7868         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
7869         PHI chains of ssa names registered for update.
7870
7871 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
7872
7873         PR target/42427
7874         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
7875         non-offsettable and pre_modify update addressing.
7876         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
7877         and "2" alternatives "#".
7878         (*movdd_softfloat32): Make all alternatives "#";
7879         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
7880         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
7881         (*movdf_softfloat32): Make all alternatives "#";
7882         (movdi): Use the new DIFD mode iterator to create a common splitter
7883         for movdi, movdf and movdd patterns.
7884
7885 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
7886
7887         * common.opt (dumpdir): Remove redundant tab.
7888
7889 2010-03-17  Martin Jambor  <mjambor@suse.cz>
7890
7891         PR tree-optimization/43347
7892         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
7893         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
7894
7895 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
7896
7897         PR rtl-optimization/42216
7898         * regrename.c (create_new_chain): New function, broken out from...
7899         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
7900         appending a use to an empty chain.
7901         (build_def_use): Remove previous changes that convert OP_INOUT to
7902         OP_OUT operands; instead detect the case where an OP_INOUT operand
7903         uses a previously untracked register and create an empty chain for it.
7904
7905 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7906
7907         * doc/extend.texi (Function Attributes): Rewrite unfinished
7908         sentence in ms_abi documentation.
7909
7910 2010-03-17  Alan Modra  <amodra@gmail.com>
7911
7912         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
7913         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
7914         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
7915         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
7916
7917 2010-03-16  Richard Henderson  <rth@redhat.com>
7918
7919         PR middle-end/43365
7920         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
7921         (lower_try_finally): Save and restore eh_seq around the expansion
7922         of the try-finally.
7923
7924 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
7925
7926         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
7927         statements before splitting block.
7928
7929 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7930
7931         * doc/sourcebuild.texi (Testsuites): Fix markup.
7932         Use pathnames relative to gcc/testsuite.
7933         (Test Directives): Move description of how timeout is determined.
7934         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
7935         (C Tests): Correct gcc.misc-tests directory.
7936         Framework tests now live in gcc.test-framework.
7937
7938 2010-03-16  Richard Guenther  <rguenther@suse.de>
7939
7940         PR middle-end/43379
7941         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
7942         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
7943
7944 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
7945             Alexandre Oliva  <aoliva@redhat.com>
7946
7947         PR tree-optimization/42917
7948         * lambda-code.c (remove_iv): Skip debug statements.
7949         (lambda_loopnest_to_gcc_loopnest): Likewise.
7950         (not_interesting_stmt): Debug statements are not interesting.
7951
7952 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
7953
7954         PR debug/43051
7955         PR debug/43092
7956         * cselib.c (cselib_preserve_constants,
7957         cfa_base_preserved_val): New static variables.
7958         (preserve_only_constants): New function.
7959         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
7960         clear its REG_VALUES.  If cselib_preserve_constants, don't
7961         empty the whole hash table, but preserve there VALUEs with constants,
7962         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
7963         (cselib_preserve_cfa_base_value): New function.
7964         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
7965         (cselib_init): Change argument to int bitfield.  Set
7966         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
7967         is in it.
7968         (cselib_finish): Clear cselib_preserve_constants and
7969         cfa_base_preserved_val.
7970         * cselib.h (enum cselib_record_what): New enum.
7971         (cselib_init): Change argument to int.
7972         (cselib_preserve_cfa_base_value): New prototype.
7973         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
7974         * dse.c (dse_step1): Likewise.
7975         * cfgcleanup.c (thread_jump): Likewise.
7976         * sched-deps.c (sched_analyze): Likewise.
7977         * gcse.c (local_cprop_pass): Likewise.
7978         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
7979         If FN is non-NULL, call the callback always and whenever it returns
7980         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
7981         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
7982         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
7983         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
7984         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
7985         * var-tracking.c: Include recog.h.
7986         (bb_stack_adjust_offset): Remove.
7987         (vt_stack_adjustments): Don't call it, instead just gather the
7988         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
7989         (adjust_stack_reference): Remove.
7990         (compute_cfa_pointer): New function.
7991         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
7992         (struct adjust_mem_data): New type.
7993         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
7994         functions.
7995         (get_address_mode): New function.
7996         (replace_expr_with_values): Use it.
7997         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
7998         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
7999         (adjust_sets): Remove.
8000         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
8001         Use get_address_mode.
8002         (get_adjusted_src): Remove.
8003         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
8004         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
8005         (add_with_sets): Don't call adjust_sets.
8006         (fp_setter, vt_init_cfa_base): New functions.
8007         (vt_initialize): Change return type to bool.  Move most of pool etc.
8008         initialization to the beginning of the function from end.  Pass
8009         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
8010         If !frame_pointer_needed, call vt_stack_adjustment before mos
8011         vector is filled, call vt_init_cfa_base if argp/framep has been
8012         eliminated to sp.  If frame_pointer_needed and argp/framep has
8013         been eliminated to hard frame pointer, set
8014         hard_frame_pointer_adjustment and call vt_init_cfa_base after
8015         encountering fp setter in the prologue.  For MO_ADJUST, call
8016         log_op_type before pusing the op into mos vector, not afterwards.
8017         Call adjust_insn before cselib_process_insn/add_with_sets,
8018         call cancel_changes (0) afterwards.
8019         (variable_tracking_main_1): Adjust for vt_initialize calling
8020         vt_stack_adjustments and returning whether it succeeded or not.
8021
8022 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
8023
8024         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
8025         debug statements.
8026
8027 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
8028
8029         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
8030         has been set.
8031         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
8032         drap_reg has not been set.
8033
8034 2010-03-15  Michael Matz  <matz@suse.de>
8035
8036         PR middle-end/43300
8037         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
8038         use it to expand block copies.
8039         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
8040         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
8041         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
8042
8043 2010-03-15  Richard Guenther  <rguenther@suse.de>
8044
8045         PR tree-optimization/43367
8046         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
8047         elimination check.
8048
8049 2010-03-15  Richard Guenther  <rguenther@suse.de>
8050
8051         PR tree-optimization/43317
8052         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
8053
8054 2010-03-15  Martin Jambor  <mjambor@suse.cz>
8055
8056         PR tree-optimization/43141
8057         * tree-sra.c (create_abstract_origin): New function.
8058         (modify_function): Call create_abstract_origin.
8059
8060 2010-03-15  Chris Demetriou  <cgd@google.com>
8061
8062         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
8063         wasn't copied.
8064
8065 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8066
8067         PR middle-end/43354
8068         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
8069         call insert_out_of_ssa_copy for default definitions.
8070
8071 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8072
8073         * graphite-clast-to-gimple.c (my_long_long): Defined.
8074         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
8075         * graphite-sese-to-poly.c (my_long_long): Defined.
8076         (scop_ivs_can_be_represented): Use it.
8077
8078 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8079
8080         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
8081         graphite-max-bbs-per-function, and loop-block-tile-size.
8082         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
8083         with "maximum".
8084         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
8085
8086 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8087
8088         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
8089         forward declaration.
8090         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
8091         (add_upper_bounds_from_estimated_nit): New.
8092         (build_loop_iteration_domains): Use it.
8093
8094 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8095
8096         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
8097
8098 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8099
8100         PR middle-end/43306
8101         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
8102         should be an INTEGER_CST.  Also handle CASE_CONVERT.
8103
8104 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8105
8106         * graphite.c (graphite_initialize): To bound the number of bbs per
8107         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
8108         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
8109         * doc/invoke.texi: Document it.
8110
8111 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8112
8113         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
8114         * graphite-sese-to-poly.h (build_poly_scop): Same.
8115
8116 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8117
8118         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
8119         the number of parameters in the scop.  Use as an upper bound
8120         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
8121         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
8122         * doc/invoke.texi: Document it.
8123
8124 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
8125
8126         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
8127         * doc/c-tree.texi: Remove.
8128         * doc/generic.texi: Merge c-tree.texi here.
8129         * doc/gccint.texi (Trees): Remove menu entry.
8130         (c-tree.texi): Remove @include.
8131         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
8132         * doc/languages.texi (Reading RTL): Ditto.
8133
8134 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
8135
8136         PR target/42869
8137         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
8138
8139 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
8140
8141         PR middle-end/42431
8142         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
8143         code added to work around reload clobbering CONST insns.
8144
8145 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
8146
8147         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
8148         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
8149         (cselib_preserve_only_values): Remove retain argument, don't
8150         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
8151         * cselib.h (cselib_preserve_only_values): Remove retain argument.
8152         * var-tracking.c (micro_operation): Move insn field before union.
8153         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
8154         (struct variable_tracking_info_def): Remove n_mos field, change
8155         mos into a vector of micro_operations.
8156         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
8157         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
8158         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
8159         changing into a vector.
8160         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
8161         come before all other uops generated by add_stores.
8162         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
8163         argument removal.
8164         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
8165         a vector.  Run just one pass over the bbs instead of separate counting
8166         and computation phase.
8167         (vt_finalize): Free VTI (bb)->mos vector instead of array.
8168
8169         PR debug/43329
8170         * tree-inline.c (remap_decls): Put old_var rather than origin_var
8171         into *nonlocalized_list vector.
8172         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
8173         even if origin is non-NULL.
8174         (gen_variable_die): Likewise.
8175         (process_scope_var): Don't change origin.
8176         (gen_decl_die): Likewise.
8177         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
8178         before adding new edges instead of after it, fix moving over
8179         debug stmts.
8180
8181 2010-03-11  David S. Miller  <davem@davemloft.net>
8182
8183         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
8184         of four.
8185         * configure: Rebuild.
8186
8187 2010-03-11  Martin Jambor  <mjambor@suse.cz>
8188
8189         PR tree-optimization/43257
8190         * tree.c (assign_assembler_name_if_neeeded): New function.
8191         (free_lang_data_in_cgraph): Assembler name assignment moved to the
8192         above new function.
8193         * tree.h (assign_assembler_name_if_neeeded): Declare.
8194         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
8195         the function if needed.
8196
8197 2010-03-11  Chris Demetriou  <cgd@google.com>
8198
8199         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
8200         include/stdint-gcc.h, and include/stdint.h world-readable.
8201
8202 2010-03-11  Richard Guenther  <rguenther@suse.de>
8203
8204         PR tree-optimization/43255
8205         * tree-vrp.c (process_assert_insertions_for): Do not insert
8206         asserts for trivial conditions.
8207
8208 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8209
8210         PR tree-optimization/43280
8211         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
8212         generation.  Move calculation of size out of the if branch.
8213         (find_bswap): Modify compare number generation.
8214
8215 2010-03-11  Richard Guenther  <rguenther@suse.de>
8216
8217         PR lto/43200
8218         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
8219         (input_gimple_stmt): Fixup handled component types during
8220         operand read.  Also fix up decls in ADDR_EXPRs.
8221
8222 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
8223
8224         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
8225         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
8226
8227 2010-03-10  Jan Hubicka  <jh@suse.cz>
8228
8229         PR c/43288
8230         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
8231         * varasm.c (get_variable_section): Don't do that here...
8232         (make_decl_rtl): ... and here.
8233         (do_assemble_alias): Produce decl RTL.
8234         (assemble_alias): Likewise.
8235
8236 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
8237
8238         PR debug/43290
8239         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
8240         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
8241         of fde->vdrap_reg.
8242         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
8243         (based_loc_descr): Only express drap or vdrap regno based expressions
8244         using DW_OP_fbreg when not optimizing.
8245         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
8246         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
8247         REG_CFA_SET_VDRAP note.
8248
8249 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
8250
8251         PR tree-optimization/43236
8252         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
8253         error in calculation of base address in reverse iteration case.
8254         (generate_builtin): Take number of latch executions if the statement
8255         is in the latch.
8256
8257 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
8258
8259         PR middle-end/42859
8260         * tree-eh.c: Include pointer-set.h.
8261         (lower_eh_dispatch): Filter out duplicate case labels and
8262         remove the unneeded edge when the label is unused.  Return
8263         true when some edges are removed.
8264         (execute_lower_eh_dispatch): When any lowering resulted in
8265         removing an edge, also delete unreachable blocks.
8266
8267 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
8268
8269         PR bootstrap/43287
8270         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
8271         UNSPEC_MACHOPIC_OFFSET.
8272
8273 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
8274
8275         PR target/43294
8276         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
8277         (m68k_delegitimize_address): New function.
8278
8279 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
8280
8281         PR debug/43299
8282         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
8283
8284         PR debug/43299
8285         * var-tracking.c (adjust_sets): New function.
8286         (count_with_sets, add_with_sets): Use it.
8287         (get_adjusted_src): New inline function.
8288         (add_stores): Use it.
8289
8290         PR debug/43304
8291         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
8292         call cselib_dummy_expand_value_rtx_cb instead of
8293         cselib_expand_value_rtx_cb.
8294
8295         PR debug/43293
8296         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
8297         * config/i386/i386.c: Include debug.h and dwarf2out.h.
8298         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
8299         and .cfi_endproc around the pic thunks.
8300         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
8301         all queued unwind info register saves are saved before the call.
8302         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
8303         considered as sp-=4 for unwind info and the pop as sp+=4 which
8304         also clobbers dest, but doesn't actually restore it.
8305
8306         PR debug/43290
8307         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
8308         RTX_FRAME_RELATED_P.
8309
8310 2010-03-09  Jie Zhang  <jie@codesourcery.com>
8311
8312         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
8313         whitespaces in output template.
8314
8315 2010-03-09  Jie Zhang  <jie@codesourcery.com>
8316
8317         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
8318         out array boundary.
8319
8320 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
8321
8322         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
8323         builtins.exp in a separate job.
8324
8325 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8326
8327         * graphite-sese-to-poly.c (add_param_constraints): Use
8328         lower_bound_in_type and upper_bound_in_type.
8329
8330 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8331
8332         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
8333         instead of unsigned_type_node.
8334
8335 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8336             Reza Yazdani  <reza.yazdani@amd.com>
8337
8338         PR middle-end/43065
8339         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
8340         on pointer type parameters.
8341
8342 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
8343
8344         PR middle-end/42644
8345         PR middle-end/42130
8346         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
8347         handle conversions from pointer to integers.
8348         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
8349         induction variable, to be able to work with code generated by CLooG.
8350         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
8351         (build_poly_scop): Bail out if we cannot codegen a loop.
8352
8353 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
8354
8355         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
8356         code generation with gloog_error.
8357
8358 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8359
8360         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
8361         Call fold_convert on all the returned values.
8362         (expand_scalar_variables_expr): Pass to
8363         expand_scalar_variables_ssa_name the type of the resulting expression.
8364
8365 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8366
8367         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
8368         ppl_min_for_le_pointset.
8369         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
8370         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
8371
8372 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8373
8374         * graphite-dependences.c (map_into_dep_poly): Removed.
8375         (dependence_polyhedron_1): Use combine_context_id_scat.
8376
8377 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8378
8379         * graphite-poly.h (struct poly_scattering): Add layout documentation.
8380         (struct poly_bb): Same.
8381         (combine_context_id_scat): New.
8382
8383 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8384
8385         PR middle-end/42326
8386         * sese.c (name_defined_in_loop_p): Return false for default
8387         definitions.
8388
8389 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8390
8391         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
8392         and clean up the logic.
8393
8394 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8395
8396         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
8397         early return.
8398
8399 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
8400
8401         * var-tracking.c (remove_cselib_value_chains): Define only for
8402         ENABLE_CHECKING.
8403         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
8404         delete_slot_part, emit_notes_for_differences_1): Don't call
8405         remove_cselib_value_chains here.
8406         (set_slot_part, emit_notes_for_differences_2): Don't call
8407         add_cselib_value_chains here.
8408         (preserved_values): New vector.
8409         (preserve_value): New function.
8410         (add_uses, add_stores, vt_add_function_parameters): Use it
8411         instead of cselib_preserve_value.
8412         (changed_values_stack): New vector.
8413         (check_changed_vars_0): New function.
8414         (check_changed_vars_1, check_changed_vars_2): Use it.
8415         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
8416         changed_values_stack VALUEs.
8417         (vt_emit_notes): For all preserved_values call
8418         add_cselib_value_chains.  If ENABLE_CHECKING call
8419         remove_cselib_value_chains before verifying value_chains is empty.
8420         Initialize and free changed_values_stack.
8421         (vt_initialize): Initialize preserved_values.
8422         (vt_finalize): Free preserved_values.
8423
8424 2010-03-08  Richard Guenther  <rguenther@suse.de>
8425
8426         PR tree-optimization/43269
8427         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
8428         region detection.
8429
8430 2010-03-08  Martin Jambor  <mjambor@suse.cz>
8431
8432         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
8433         (ipa_is_param_called): Removed.
8434         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
8435         (ipa_print_node_params): Do not print the called flag.
8436         (ipa_write_node_info): Do not stream the called flag.
8437         (ipa_read_node_info): Likewise.
8438
8439 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
8440
8441         PR debug/43176
8442         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
8443         * cselib.c (struct expand_value_data): Add dummy field.
8444         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
8445         dummy to false.
8446         (cselib_dummy_expand_value_rtx_cb): New function.
8447         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
8448         any rtl.
8449         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
8450         * var-tracking.c: Include pointer-set.h.
8451         (variable): Change n_var_parts to char from int.  Add
8452         cur_loc_changed and in_changed_variables fields.
8453         (variable_canonicalize): Remove.
8454         (shared_var_p): New inline function.
8455         (unshare_variable): Maintain cur_loc_changed and
8456         in_changed_variables fields.  If var was in changed_variables,
8457         replace it there with new_var.  Just copy cur_loc instead of
8458         resetting it to something else.
8459         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
8460         (dataflow_set_union): Don't call variable_canonicalize.
8461         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
8462         of their DEBUG_EXPR_TREE_DECLs.
8463         (canonicalize_loc_order_check): Verify that cur_loc is NULL
8464         and in_changed_variables and cur_loc_changed is false.
8465         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
8466         and cur_loc_changed.  Don't update cur_loc here.
8467         (variable_merge_over_src): Don't call variable_canonicalize.
8468         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
8469         removing loc that is equal to cur_loc, clear cur_loc,
8470         set cur_loc_changed and ensure variable_was_changed is called.
8471         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
8472         compare pointers in cur_loc check, if it is equal to loc,
8473         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
8474         (variable_different_p): Remove compare_current_location argument,
8475         don't compare cur_loc.
8476         (dataflow_set_different_1): Adjust variable_different_p caller.
8477         (variable_was_changed): If dv had some var in changed_variables
8478         already, reset in_changed_variables flag for it and propagate
8479         cur_loc_changed over to the new variable.  On empty var
8480         always set cur_loc_changed.  Set in_changed_variables on whatever
8481         var is added to changed_variables.
8482         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
8483         Use shared_var_p.  When removing loc that is equal to cur_loc,
8484         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
8485         end, don't set it to something else, just call variable_was_changed.
8486         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
8487         loc being removed, clear cur_loc and set cur_loc_changed.
8488         Set cur_loc_changed if all locations have been removed.
8489         (struct expand_loc_callback_data): New type.
8490         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
8491         allocated.  Always create SUBREGs if simplify_subreg failed.
8492         Prefer to use cur_loc, when that fails and still in
8493         changed_variables (and seen first time) recompute it.  Set
8494         cur_loc_changed of variables which had to change cur_loc and
8495         compute elcd->cur_loc_changed if any of the subexpressions used
8496         had to change cur_loc.
8497         (vt_expand_loc): Adjust to pass arguments in
8498         expand_loc_callback_data structure.
8499         (vt_expand_loc_dummy): New function.
8500         (emitted_notes): New variable.
8501         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
8502         that weren't used for any other decl in current
8503         emit_notes_for_changes call call vt_expand_loc_dummy to update
8504         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
8505         first loc_chain location if NULL before.  Always use just
8506         cur_loc instead of first loc_chain location.  When cur_loc_changed
8507         is false, when not --enable-checking=rtl just don't emit any note.
8508         When rtl checking, compute the note and assert it is the same
8509         as previous note.  Clear cur_loc_changed and in_changed_variables
8510         at the end before removing from changed_variables.
8511         (check_changed_vars_3): New function.
8512         (emit_notes_for_changes): Traverse changed_vars to call
8513         check_changed_vars_3 on each changed var.
8514         (emit_notes_for_differences_1): Clear cur_loc_changed and
8515         in_changed_variables.  Recompute cur_loc of new_var.
8516         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
8517         (vt_emit_notes): Initialize and destroy emitted_notes.
8518
8519 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
8520
8521         PR rtl-optimization/42220
8522         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
8523         Use verify_reg_tracked to determine if we should use OP_OUT rather
8524         than OP_INOUT.
8525         (build_def_use): If we see an in-out operand for a register that we
8526         know nothing about, treat is an output if possible, fail the block if
8527         not.
8528
8529 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
8530
8531         PR debug/42897
8532         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
8533         permanently.
8534
8535 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
8536
8537         PR debug/42897
8538         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
8539         uses of relevant DEFs that are dead outside the loop too.
8540
8541 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
8542
8543         * var-tracking.c (dataflow_set_merge): Swap src and src2.
8544         Reverted:
8545         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
8546         PR debug/41371
8547         * var-tracking.c (values_to_unmark): New variable.
8548         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
8549         values_to_unmark vector.  Moved body to...
8550         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
8551         instead queue it into values_to_unmark vector.
8552         (vt_find_locations): Free values_to_unmark vector.
8553
8554 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
8555
8556         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
8557         (site.exp): Export them when plugins are enabled.
8558
8559 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
8560
8561         PR middle-end/42326
8562         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
8563         that contain scevs.
8564         (chrec_fold_multiply): Same.
8565
8566 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
8567
8568         PR c/43248
8569         * c-decl.c (build_compound_literal): Return early if init is
8570         an error_mark_node.
8571
8572 2010-03-04  Martin Jambor  <mjambor@suse.cz>
8573
8574         PR tree-optimization/43164
8575         PR tree-optimization/43191
8576         * tree-sra.c (type_consists_of_records_p): Reject records with
8577         zero-size bit-fields at the end.
8578
8579 2010-03-04  Mike Stump  <mikestump@comcast.net>
8580
8581         * Makefile.in (TAGS): Remove *.y.
8582
8583 2010-03-04  Richard Guenther  <rguenther@suse.de>
8584
8585         PR tree-optimization/40761
8586         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
8587         in reverse order.
8588         (my_rev_post_order_compute): New function.
8589         (init_pre): Call it.
8590
8591 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
8592
8593         PR middle-end/43209
8594         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
8595         decrease the cost of an IV candidate when the cost is infinite.
8596
8597 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8598
8599         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
8600         Use '3DNow!' for the extension of that name, ensure normal space
8601         after the string.
8602         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
8603
8604 2010-03-03  Jeff Law  <law@redhat.com>
8605
8606         * PR middle-end/32693
8607         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
8608         than gen_rtx_SUBREG.
8609         (extract_bit_field_1): Likewise.
8610
8611 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
8612
8613         * doc/sourcebuild.texi (Test directives): Document that arguments
8614         include-opts and exclude-opts are now optional for dg-skip-if,
8615         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
8616
8617 2010-03-03  Jason Merrill  <jason@redhat.com>
8618
8619         PR c++/12909
8620         * cgraph.h (varpool_node): Add extra_name field.
8621         * varpool.c (varpool_extra_name_alias): New.
8622         (varpool_assemble_decl): Emit extra name aliases.
8623         (varpool_mark_needed_node): Look past an extra name alias.
8624         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
8625         * lto-streamer-in.c (lto_input_tree): Read it.
8626         * lto-streamer-out.c (output_unreferenced_globals): Write it.
8627
8628 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
8629
8630         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
8631         (sparc*-*-solaris2*): ...this.
8632
8633 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
8634
8635         PR debug/43229
8636         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
8637         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
8638         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
8639         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
8640
8641         PR debug/43237
8642         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
8643         fallthrough to default handling, just with want_address 0 instead of 2.
8644         For single element lists, add_AT_loc directly, otherwise create an
8645         artificial variable DIE and stick location list to it.
8646
8647         PR debug/43177
8648         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
8649         (VAL_EXPR_HAS_REVERSE): Define.
8650         (reverse_op): New function.
8651         (add_stores): For reversible operations add an extra MO_VAL_USE.
8652
8653 2010-03-02  Jason Merrill  <jason@redhat.com>
8654
8655         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
8656
8657 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
8658
8659         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
8660         (sparc64-*-linux*): Likewise.
8661         (sparc64-*-solaris2*): Include assembler files before linker ones.
8662         (sparc-*-solaris2*): Simplify and reorder to match previous case.
8663         * config/sparc/gas.h: Delete.
8664         * config/sparc/sol2-64.h: Add copyright notice.
8665         * config/sparc/sol2-gas-bi.h: Likewise.
8666         * config/sparc/sol2-gld.h: Likewise.
8667         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
8668         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
8669         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
8670         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
8671         (sparc_elf_asm_named_section): Rename into...
8672         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
8673
8674 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
8675
8676         * config/alpha/alpha.c (override_options): Fix -mtune error message.
8677
8678 2010-03-02  Jeff Law  <law@redhat.com>
8679
8680         PR middle-end/42431
8681         * reload1.c (rtx_p, substitute_stack): Declare.
8682         (substitute): Record addresses of changed rtxs.
8683         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
8684         Restore the original rtx when complete.
8685         (reload): Free subsitute_stack when complete.
8686
8687 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
8688
8689         * doc/gccint.texi (menu): Add Testsuites as a chapter.
8690         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
8691         new chapter.
8692         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
8693         LTO Testing, gcov Testing, profopt Testing, compat Testing,
8694         Torture Tests): Change from subsection to section.
8695
8696 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
8697             Steven Bosscher  <steven@gcc.gnu.org>
8698
8699         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
8700         instead of bb.
8701
8702 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
8703
8704         PR middle-end/42640
8705         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
8706         the assignment from the new induction variable to the assignment
8707         of the value from the original loop PHI function.
8708
8709 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
8710             Daniel Jacobowitz  <dan@codesourcery.com>
8711
8712         * doc/sourcebuild.texi (Test directives): Clarify options to
8713         dg-skip-if.
8714
8715 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8716
8717         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
8718         Disable cfi directives unless GCC and gas agree on using read-only
8719         .eh_frame sections for 64-bit.
8720         * configure: Regenerate.
8721
8722 2010-03-01  Richard Guenther  <rguenther@suse.de>
8723
8724         PR tree-optimization/43220
8725         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
8726         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
8727
8728 2010-03-01  Richard Guenther  <rguenther@suse.de>
8729             Martin Jambor  <mjambor@suse.cz>
8730
8731         PR middle-end/41250
8732         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
8733         gimplified parameters.
8734
8735 2010-03-01  Christian Bruel  <christian.bruel@st.com>
8736
8737         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
8738
8739 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
8740
8741         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
8742
8743 2010-03-01  Richard Guenther  <rguenther@suse.de>
8744
8745         PR middle-end/43213
8746         * expr.c (expand_assignment): Use the alias-oracle to tell
8747         if the rhs aliases the result decl.
8748
8749 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8750
8751         PR pch/14940
8752         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
8753         to sol_gt_pch_get_address.
8754         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
8755         64-bit, SPARC and x86.
8756         (sol_gt_pch_get_address): New function.
8757
8758 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
8759
8760         * toplev.h (inform_n, error_n): Declare.
8761         * diagnostic.c (inform_n, error_n): New function.
8762
8763 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
8764
8765         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
8766         has no rtl yet when processing local_decls, queue it and recheck
8767         if deferred stack allocation hasn't assigned it rtl.
8768
8769 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
8770
8771         * config/sh/sh.c (unspec_bbr_uid): New.
8772         (gen_block_redirect): Use it instead of INSN_UID.
8773         (gen_far_branch): Likewise.
8774
8775 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
8776
8777         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
8778         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
8779
8780 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8781
8782         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
8783         (Warning Options): -Wno-conversion-null is valid for
8784         Objective-C++ as well.
8785         * doc/tm.texi (Named Address Spaces): Likewise.
8786         * doc/plugins.texi (Plugins): Replace TABs with spaces.
8787         * doc/tree-ssa.texi (Tree SSA): Likewise.
8788
8789 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8790
8791         PR bootstrap/43202
8792         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
8793         by default.  Don't set the default arch for
8794         i[34567]86-*-darwin*|x86_64-*-darwin*.
8795
8796 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8797
8798         PR bootstrap/43202
8799         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
8800         default.  Set the default 32bit/64bit archs with $with_arch
8801         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
8802
8803 2010-02-27  Richard Guenther  <rguenther@suse.de>
8804
8805         PR tree-optimization/43186
8806         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
8807         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
8808         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
8809         unroller iterations.
8810
8811 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8812
8813         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
8814         required and i[34567]86-*-* targets don't support 64bit ISA.
8815
8816 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
8817
8818         PR ada/43096
8819         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
8820         the same alias set.
8821
8822 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
8823
8824         * config.gcc: Set the default arch at least to Prescott for
8825         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
8826         if SSE math is enabled.
8827
8828 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8829
8830         * diagnostic.c (diagnostic_initialize): Update.
8831         (diagnostic_report_diagnostic): Test inhibit_notes_p for
8832         informative notes.
8833         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
8834         (diagnostic_inhibit_notes): New.
8835         * toplev.c (process_options): inhibit notes with -fcompare-debug.
8836
8837 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8838
8839         PR c/20631
8840         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
8841         * doc/standards.texi: Likewise.
8842         * doc/extend.texi: Likewise.
8843         * doc/trouble.texi: Likewise.
8844         * doc/cppopts.texi: Likewise.
8845         * doc/install.texi: Likewise.
8846         * c.opt (std=c90,std=gnu90): New options.
8847         * c-opts.c (c_common_handle_option): Handle them.
8848
8849 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8850
8851         PR c/24577
8852         * c-decl.c (undeclared_variable): Use an informative note.
8853
8854 2010-02-26  Richard Guenther  <rguenther@suse.de>
8855
8856         PR tree-optimization/43186
8857         * gimple.h (gimple_fold): Remove.
8858         * gimple.c (gimple_fold): Remove.  Inline into single user ...
8859         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
8860         Try harder for conditions.
8861
8862 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
8863
8864         PR debug/43190
8865         * function.c (used_types_insert): Don't skip through named pointer
8866         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
8867         and it is different from the main variant's type.
8868
8869 2010-02-26  Nick Clifton  <nickc@redhat.com>
8870
8871         * config/rx/rx.md (sminsi3): Remove bogus alternative.
8872
8873 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
8874
8875         * config.gcc: Support --with-fpmath=sse for x86.
8876
8877         * config/i386/ssemath.h: New.
8878
8879         * doc/install.texi (--with-fpmath=sse): Documented.
8880
8881 2010-02-26  Richard Guenther  <rguenther@suse.de>
8882
8883         PR tree-optimization/43188
8884         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
8885         vector types of over-aligned element type.
8886
8887 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
8888
8889         PR target/43175
8890         * config/i386/i386.c (expand_vec_perm_blend): Use correct
8891         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
8892
8893 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
8894
8895         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
8896
8897 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
8898
8899         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
8900         * var-tracking.c: Include diagnostic.h.
8901         (debug_dv): New function.
8902         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
8903
8904         PR debug/43160
8905         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
8906         (add_value_chain, add_value_chains, remove_value_chain,
8907         remove_value_chains): Handle DEBUG_EXPRs.
8908         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
8909
8910         PR debug/43161
8911         * regcprop.c (struct queued_debug_insn_change): New type.
8912         (struct value_data_entry): Add debug_insn_changes field.
8913         (struct value_data): Add n_debug_insn_changes field.
8914         (debug_insn_changes_pool): New variable.
8915         (free_debug_insn_changes, apply_debug_insn_changes,
8916         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
8917         (kill_value_one_regno): Call free_debug_insn_changes if needed.
8918         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
8919         fields.
8920         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
8921         changes for them.
8922         (copyprop_hardreg_forward_1): Don't call apply_change_group for
8923         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
8924         changes, call cprop_find_used_regs via note_stores.
8925         (copyprop_hardreg_forward): When copying vd from predecessor
8926         which has any queued DEBUG_INSN changes, make sure the pointers are
8927         cleared.  At the end call df_analyze and then if there are any
8928         DEBUG_INSN changes queued at the end of some basic block for still
8929         live registers, apply them.
8930         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
8931
8932 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
8933
8934         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
8935         (arm*-*-*): Ditto.
8936
8937 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
8938
8939         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
8940         targets.  Set the default with_cpu/with_arch from arch/cpu.
8941         Allow x86-64 and native for with_cpu/with_arch.
8942
8943 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
8944
8945         * ebitmap.c: Change calls to verify_popcount with calls to
8946         sbitmap_verify_popcount.
8947         (ebitmap_clear_bit): Fixed map->cacheindex test and
8948         map>cache update when bit clearing results in an empty
8949         element.
8950
8951 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
8952
8953         PR target/43154
8954         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
8955         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
8956         and support both V2DF and V2DI modes.
8957         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
8958         support both V2DF and V2DI modes.
8959         (general): Delete trailing whitespace from a few patterns.
8960
8961         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8962         V2DF/V2DI interleave high/low builtins.
8963
8964         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
8965         new VSX builtins.
8966
8967         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
8968         interleave high/low functions.
8969
8970 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
8971
8972         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
8973         #pragma extern_prefix.
8974
8975 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
8976
8977         PR debug/43166
8978         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
8979         BLKmode, assert op0 is a MEM and just adjust its mode.
8980
8981         PR debug/43165
8982         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
8983         if bitpos isn't multiple of mode's bitsize.
8984
8985 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8986
8987         * c.opt (-ftemplate-depth=): New.
8988         (-ftemplate-depth-): Deprecate.
8989         * optc-gen.awk: Handle -ftemplate-depth=.
8990         * opth-gen.awk: Likewise.
8991         * c-opts.c (c_common_handle_option): Likewise.
8992         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
8993
8994 2010-02-24  Jason Merrill  <jason@redhat.com>
8995
8996         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
8997
8998 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8999
9000         * cfg.c (alloc_aux_for_block): Remove inline.
9001         (alloc_aux_for_edge): Likewise.
9002
9003 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9004
9005         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
9006
9007 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9008
9009         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
9010         * config/i386/sol2-gas.h: New file.
9011         * config.gcc (i[34567]86-*-solaris2*): Use it.
9012
9013 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9014
9015         PR c/43128
9016         * c-typeck.c (ep_convert_and_check): New.
9017         (build_conditional_expr): Use it.
9018         (build_binary_op): Likewise.
9019
9020 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
9021
9022         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
9023
9024         PR debug/43150
9025         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
9026         bounds even for -O+.
9027         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
9028         expr needs to have DECL_NAME set.
9029
9030 2010-02-24  Nick Clifton  <nickc@redhat.com>
9031
9032         * config/mep/mep.c: Include gimple.h.
9033         (mep_function_uses_sp): Delete unused function.
9034         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
9035         parameters.  Use unsigned integers to count args.  Return a
9036         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
9037
9038 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
9039
9040         PR target/43107
9041         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
9042         greater or equal to nelt instead of 2 * nelt.
9043         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
9044         with nelt - 1.
9045
9046 2010-02-23  Jason Merrill  <jason@redhat.com>
9047
9048         PR debug/42800
9049         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
9050         in cfun->local_decls even if they have register types.
9051
9052         PR c++/42837
9053         * stor-layout.c (place_field): Don't warn about unnecessary
9054         DECL_PACKED if the type is packed.
9055
9056 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
9057
9058         PR target/43139
9059         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
9060         GOTOFF relocs, even when the base reg isn't pic pointer.
9061
9062 2010-02-23  Michael Matz  <matz@suse.de>
9063
9064         PR debug/43077
9065         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
9066         (expand_gimple_basic_block): Generate and use debug temps if there
9067         are debug uses left after the last real use of TERed ssa names.
9068         Unlink debug immediate uses when they are expanded.
9069
9070 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9071
9072         PR 43123
9073         * config/i386/i386.c (override_options): Reorganise to provide
9074         better error messages.
9075
9076 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9077
9078         PR middle-end/43083
9079         * graphite-scop-detection.c (create_single_exit_edge): Move
9080         the call to find_single_exit_edge to....
9081         (create_sese_edges): ...here.  Don't handle multiple edges
9082         exiting the function.
9083         (build_graphite_scops): Don't handle multiple edges
9084         exiting the function.
9085
9086 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9087
9088         PR middle-end/43097
9089         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
9090         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
9091
9092 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9093
9094         PR middle-end/43026
9095         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
9096
9097 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9098
9099         PR c++/43126
9100         * c-typeck.c (convert_arguments): Print declaration location.
9101         * c-common.c (validate_nargs): Rename as
9102         builtin_function_validate_nargs.
9103         (check_builtin_function_arguments): Update.
9104
9105 2010-02-22  Richard Guenther  <rguenther@suse.de>
9106
9107         PR lto/43045
9108         * tree-inline.c (declare_return_variable): Use the type of
9109         the call stmt lhs if available.
9110
9111 2010-02-22  Duncan Sands  <baldrick@free.fr>
9112
9113         * passes.c (register_pass): Always consider all pass lists when
9114         ref_pass_instance_number is zero.
9115
9116 2010-02-22  Richard Guenther  <rguenther@suse.de>
9117
9118         PR tree-optimization/42749
9119         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
9120         parameter.  Do arithmetic in the original type.
9121         (update_accumulator_with_ops): Likewise.
9122         (adjust_accumulator_values): Adjust.
9123
9124 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9125
9126         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
9127         (QI to BLKmode splitter): New splitter.
9128
9129 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
9130
9131         * config/i386/i386.c (initial_ix86_tune_features): Turn on
9132         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
9133
9134 2010-02-22  Richard Guenther  <rguenther@suse.de>
9135
9136         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
9137
9138 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
9139
9140         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
9141         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
9142         ($(T)crti.o, $(T)crtn.o): Remove rules.
9143
9144 2010-02-21  Tobias Burnus  <burnus@net-b.de>
9145
9146         PR fortran/35259
9147         * doc/invoke.texi (-fassociative-math): Document that this
9148         option is automatically enabled for Fortran.
9149
9150 2010-02-20  David S. Miller  <davem@davemloft.net>
9151
9152         * configure.ac: Test if linker and assembler properly support
9153         GOTDATA_OP relocations.
9154         * configure: Rebuild.
9155         * config.in: Likewise.
9156         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
9157         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
9158         (movsi_high_pic): Likewise.
9159         (movdi_lo_sum_pic): Likewise.
9160         (movdi_high_pic): Likewise.
9161         (movsi_pic_gotdata_op): New pattern.
9162         (movdi_pic_gotdata_op): Likewise.
9163         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
9164         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
9165
9166 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
9167
9168         PR target/43067
9169         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
9170         attribute to ssemul.
9171         (xop_mulv2div2di3_high): Ditto.
9172
9173 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9174
9175         PR c++/35669
9176         * c.opt (Wconversion-null): New option.
9177         * doc/invoke.texi (Wconversion-null): Document.
9178
9179 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9180
9181         * common.opt (Wlarger-than-): Add Undocumented.
9182
9183 2010-02-19  Mike Stump  <mikestump@comcast.net>
9184
9185         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
9186
9187 2010-02-19  Jason Merrill  <jason@redhat.com>
9188
9189         PR target/40332
9190         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
9191         * configure: Likewise.
9192
9193 2010-02-20  Alan Modra  <amodra@gmail.com>
9194
9195         PR middle-end/42344
9196         * cgraph.h (cgraph_make_decl_local): Declare.
9197         * cgraph.c (cgraph_make_decl_local): New function.
9198         (cgraph_make_node_local): Use it.
9199         * cgraphunit.c (cgraph_function_versioning): Likewise.
9200         * ipa.c (function_and_variable_visibility): Likewise.
9201
9202 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9203
9204         PR bootstrap/43121
9205         * except.c (sjlj_emit_function_enter): Don't call
9206         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
9207         directly.
9208         * rtl.h (add_reg_br_prob_note): Remove prototype.
9209
9210 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9211
9212         PR 41779
9213         * c-common.c (conversion_warning): Remove widening conversions
9214         before checking the conversion of integers to reals.
9215
9216 2010-02-19  Mike Stump  <mikestump@comcast.net>
9217
9218         PR middle-end/43125
9219         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
9220
9221         PR objc/43061
9222         * cgraphunit.c (process_function_and_variable_attributes): Check
9223         DECL_PRESERVE_P instead of looking up attribute "used".
9224         * ipa-pure-const.c (check_decl): Likewise.
9225         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
9226         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
9227         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
9228         instead of attribute "used".
9229         * config/sol2-c.c (solaris_pragma_init): Likewise.
9230         (solaris_pragma_fini): Likewise.
9231
9232 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9233
9234         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
9235         Use XCNEW instead of xcalloc.
9236         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
9237         XNEW instead of xmalloc.
9238         (get_fields): Use XNEWVEC instead of xmalloc.
9239
9240         PR debug/43084
9241         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
9242         populate vars array.
9243         (create_new_general_access): For debug stmts just reset value.
9244         (get_stmt_accesses): For accesses within debug stmts just record them
9245         using add_access_to_acc_sites instead of preventing the peeling or
9246         counting them as accesses.
9247
9248         PR middle-end/42233
9249         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
9250
9251 2010-02-19  Richard Guenther  <rguenther@suse.de>
9252
9253         PR tree-optimization/42916
9254         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
9255         instructions.
9256
9257 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
9258
9259         * configure.ac: Replace all uses of changequote in macro arguments
9260         with proper quoting.
9261
9262 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9263
9264         PR middle-end/42233
9265         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
9266
9267 2010-02-19  Richard Guenther  <rguenther@suse.de>
9268
9269         PR tree-optimization/42944
9270         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
9271         test for aliasing with errno.
9272
9273 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9274
9275         PR middle-end/42233
9276         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
9277         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
9278         * dojump.c: Include output.h.
9279         (inv): New inline function.
9280         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
9281         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
9282         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
9283         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
9284         argument, pass it down to other calls.
9285         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
9286         add REG_BR_PROB note to the conditional jump.
9287         * cfgexpand.c (add_reg_br_prob_note): Removed.
9288         (expand_gimple_cond): Don't call it, add the probability
9289         as last argument to jumpif_1/jumpifnot_1.
9290         * Makefile.in (dojump.o): Depend on output.h.
9291         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
9292         callers.
9293         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
9294         * stmt.c (do_jump_if_equal): Likewise.
9295         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
9296         * loop-unswitch.c (compare_and_jump_seq): Likewise.
9297         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
9298         Likewise.
9299         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
9300         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
9301         jumpifnot_1 callers.
9302         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
9303         callers.
9304         (store_expr): Adjust jumpifnot caller.
9305         (store_constructor): Adjust jumpif caller.
9306
9307         PR middle-end/42233
9308         * gimplify.c (gimple_boolify): For __builtin_expect call
9309         gimple_boolify also on its first argument.
9310
9311 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
9312
9313         * configure.ac (gnu-unique-object): Wrap regexps using [] in
9314         changequote block.
9315         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
9316         * configure: Regenerated.
9317
9318 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9319
9320         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
9321         lang_hooks.types_compatible_p instead of comptypes.
9322
9323 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
9324
9325         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
9326         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
9327         if __prefer_thumb__ is defined.
9328
9329 2010-02-18  Martin Jambor  <mjambor@suse.cz>
9330
9331         PR tree-optimization/43066
9332         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
9333         array with zero-sized element type.
9334
9335 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
9336
9337         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
9338         rtx, allocate struct var_loc_node here and return it to the
9339         caller, and only if it is actually needed.
9340         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
9341         move it earlier and return immediately if it returns NULL.
9342
9343 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
9344
9345         * config/sparc/gas.h: New file.  Restore
9346         TARGET_ASM_NAMED_SECTION to its ELF default.
9347         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
9348         check !HAVE_GNU_AS.
9349         * config/sparc/sparc.c (sparc_elf_asm_named_section):
9350         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
9351         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
9352         after sparc/sysv4.h.
9353
9354 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
9355
9356         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
9357
9358 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
9359
9360         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
9361         patterns from predicated pattern.
9362
9363 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
9364
9365         PR target/43103
9366         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
9367         for insn mnemonic suffix.
9368
9369 2010-02-17  Richard Guenther  <rguenther@suse.de>
9370
9371         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
9372         to loop PHI nodes.
9373
9374 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
9375
9376         PR debug/42918
9377         * caller-save.c (save_call_clobbered_regs): If BB ends with
9378         a DEBUG_INSN, move any notes in between last real insn and the last
9379         DEBUG_INSN after the last DEBUG_INSN.
9380
9381 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
9382
9383         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
9384         Fix return type.  Fix argument type.  Explain meaning of return value.
9385
9386 2010-02-16  Richard Guenther  <rguenther@suse.de>
9387
9388         PR tree-optimization/41043
9389         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
9390         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
9391         statements ...
9392         (vrp_visit_phi_node): ... but only for loop PHI nodes.
9393
9394 2010-02-16  Ira Rosen  <irar@il.ibm.com>
9395
9396         PR tree-optimization/43074
9397         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
9398         * tree-vect-loop.c (vect_analyze_loop_operations): Add
9399         vectorizable cycles in hybrid SLP check.
9400         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
9401
9402 2010-02-16  Richard Guenther  <rguenther@suse.de>
9403
9404         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
9405         (true_dependence): If memrefs_conflict_p computes must-alias
9406         trust it.  Move TBAA check after offset-based disambiguation.
9407         (canon_true_dependence): Likewise.
9408
9409 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
9410
9411         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
9412         * doc/invoke.texi: Document it.
9413         * var-tracking.c: Include toplev.h and params.h.
9414         (vt_find_locations): Return bool indicating success.  Compute
9415         hash sizes unconditionally.  Check new parameter, report.
9416         (variable_tracking_main_1): Check vt_find_locations results and
9417         retry.  Renamed from...
9418         (variable_tracking_main): ... this.  New wrapper to preserve
9419         flag_var_tracking_assignments.
9420         * Makefile.in (var-tracking.o): Adjust dependencies.
9421
9422 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
9423             Jakub Jelinek <jakub@redhat.com>
9424
9425         PR target/42854
9426         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
9427         if weak_import attribute is present.
9428         * config/darwin.c (machopic_select_section): Likewise.
9429
9430 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
9431
9432         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
9433         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
9434         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
9435         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
9436
9437         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
9438         types.
9439
9440         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
9441         Fix argument types.
9442
9443         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
9444         Rewrite text to refer to the names.
9445
9446 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
9447
9448         * config/i386/i386-builtin-types.def
9449         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
9450         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
9451         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
9452         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
9453         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
9454         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
9455         IX86_BUILTIN_VPERMIL2PS256.
9456         (MULTI_ARG_4_DF2_DI_I): Defined.
9457         (MULTI_ARG_4_DF2_DI_I1): Defined.
9458         (MULTI_ARG_4_SF2_SI_I): Defined.
9459         (MULTI_ARG_4_SF2_SI_I1): Defined.
9460         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
9461         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
9462         __builtin_ia32_vpermil2ps256.
9463         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9464         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9465         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
9466         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9467         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9468         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
9469         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
9470         CODE_FOR_xop_vpermil2v8sf3.
9471         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
9472         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
9473         * config/i386/xopintrin.h (_mm_permute2_pd): New.
9474         (_mm256_permute2_pd): New.
9475         (_mm_permute2_ps): New.
9476         (_mm256_permute2_ps): New.
9477
9478 2010-02-15  Nick Clifton  <nickc@redhat.com>
9479
9480         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
9481         boolean parameters.  Use emit_jump_insn when emitting a pop
9482         instruction containing a return insn.
9483         (push): Use 'true' rather than '1' as second parameter to F.
9484         (h8300_expand_prologue): Likewise.
9485         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
9486         (h8300_expand_epilogue): Likewise.
9487
9488 2010-02-15  Richard Guenther  <rguenther@suse.de>
9489
9490         PR middle-end/43068
9491         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
9492         if that is zero.
9493
9494 2010-02-15  Nick Clifton  <nickc@redhat.com>
9495
9496         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
9497         delta.
9498
9499 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
9500
9501         * intl.c (fake_ngettext): New function.
9502         * intl.h (fake_ngettext): Declare.
9503         (ngettext): Define macro.
9504         * collect2.c (notice_translated): New function.
9505         (main): Use notice_translated and ngettext.
9506         * collect2.h (notice_translated): Declare.
9507
9508 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
9509
9510         * reorg.c (delete_computation): Comment fixes.
9511         * caller-save.c (setup_save_areas): Idem.
9512         * sel-sched-dump.c (dump_lv_set): Idem.
9513         * rtl.def: Idem.
9514
9515 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9516
9517         * config/s390/s390.c (s390_sched_init): New function.
9518         (TARGET_SCHED_INIT): Target hook defined.
9519
9520 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
9521             Jack Howarth  <howarth@bromo.med.uc.edu>
9522             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
9523
9524         PR target/42982
9525         Partial revert of unintended change in fix for PR41605.
9526         * config/darwin.h: Fix typo.
9527         * config/darwin9.h: Same.
9528
9529 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
9530
9531         * c-pch.c (pch_init): Clear v.
9532
9533 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9534
9535         PR middle-end/42930
9536         * graphite-scop-detection.c (graphite_can_represent_scev): Call
9537         graphite_can_represent_init for MULT_EXPR.
9538
9539 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9540
9541         PR middle-end/42914
9542         PR middle-end/42530
9543         * graphite-sese-to-poly.c (remove_phi): New.
9544         (translate_scalar_reduction_to_array): Call remove_phi.
9545
9546 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9547
9548         PR middle-end/42771
9549         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
9550         * graphite-clast-to-gimple.h (gloog): Update declaration.
9551         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
9552         * graphite-poly.h (struct poly_bb): Add missing comments.
9553         (struct scop): Add poly_scop_p field.
9554         (POLY_SCOP_P): New.
9555         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
9556         * graphite.c (graphite_transform_loops): Build the polyhedral
9557         representation for each scop before code generation.
9558         * sese.c (rename_variables_in_operand): Removed.
9559         (rename_variables_in_expr): Return the renamed expression.
9560         (rename_sese_parameters): New.
9561         * sese.h (rename_sese_parameters): Declared.
9562
9563 2010-02-11  Richard Guenther  <rguenther@suse.de>
9564
9565         PR tree-optimization/42998
9566         * tree-ssa-pre.c (create_expression_by_pieces): Treat
9567         POINTER_PLUS_EXPR properly.
9568
9569 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9570             Changpeng Fang  <changpeng.fang@amd.com>
9571
9572         PR middle-end/40886
9573         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
9574         the cost of an IV candidate when the IV is used in a test against zero.
9575
9576         * gcc.dg/tree-ssa/ivopts-3.c: New.
9577
9578 2010-02-11  Richard Guenther  <rguenther@suse.de>
9579
9580         PR lto/41664
9581         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
9582         pointer-vs-decl case by swapping refs.  Handle some cases
9583         of pointer-vs-decl disambiguations more conservatively.
9584         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
9585         to false after expanding.
9586
9587 2010-02-11  Richard Guenther  <rguenther@suse.de>
9588
9589         PR driver/43021
9590         * gcc.c (process_command): Handle LTO file@offset case more
9591         appropriately.
9592
9593 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
9594
9595         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
9596         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
9597         of DEBUG_INSNs.
9598         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
9599
9600         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
9601         if MEM's mode size isn't DWARF2_ADDR_SIZE.
9602         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
9603         Optimize eq/ne comparisons when both arguments are known to be
9604         zero-extended.
9605         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
9606         Don't mask operands unnecessarily if they are known to be already
9607         zero-extended.
9608
9609 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
9610
9611         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
9612         instead of loop.
9613
9614 2010-02-10  Richard Guenther  <rguenther@suse.de>
9615
9616         PR tree-optimization/43017
9617         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
9618         for wrapping signed arithmetic.
9619
9620 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
9621
9622         PR debug/43010
9623         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
9624         if no debug info should be emitted for it.
9625
9626 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
9627
9628         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
9629         note when flag_exceptions is set.
9630
9631 2010-02-10  Duncan Sands  <baldrick@free.fr>
9632
9633         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
9634
9635 2010-02-10  Richard Guenther  <rguenther@suse.de>
9636
9637         PR c/43007
9638         * tree.c (get_unwidened): Handle constants.
9639         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
9640
9641 2010-02-10  Martin Jambor  <mjambor@suse.cz>
9642
9643         PR lto/42985
9644         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
9645         check for variable argument counts independently.
9646
9647 2010-02-10  Christian Bruel  <christian.bruel@st.com>
9648
9649         PR target/42841
9650         * config/sh/sh.c (find_barrier): Increase length for non delayed
9651         conditional branches.
9652
9653 2010-02-10  Christian Bruel  <christian.bruel@st.com>
9654
9655         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
9656
9657 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
9658
9659         * builtins.c (set_builtin_user_assembler_name): Also handle
9660         ffs if int is smaller than word.
9661
9662 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
9663
9664         PR middle-end/42973
9665         * ira-conflicts.c (get_dup): Remove.
9666         (process_reg_shuffles): Add new parameter.  Use it as an
9667         additional guard for copy generation.
9668         (add_insn_allocno_copies): Rewrite.
9669
9670 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
9671
9672         * common.opt (fsched2-use-traces): Preserved for backward
9673         compatibility.
9674         * doc/invoke.texi: Remove the documentation about option
9675         -fsched2-use-traces.
9676         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
9677         flag_sched2_use_traces.
9678         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
9679         the backward compatibility flag section.
9680
9681 2010-02-09  Richard Guenther  <rguenther@suse.de>
9682
9683         PR tree-optimization/43008
9684         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
9685         make HEAP variables initialized from global memory if they
9686         are not known builtin functions.
9687         (find_func_aliases): Adjust.
9688
9689 2010-02-09  Richard Guenther  <rguenther@suse.de>
9690
9691         PR tree-optimization/43000
9692         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
9693         arithmetic manually.
9694
9695 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
9696
9697         PR tree-optimization/42931
9698         * tree-loop-linear.c (try_interchange_loops): Don't call
9699         double_int_mul if estimated_loop_iterations failed.
9700
9701 2010-02-08  Martin Jambor  <mjambor@suse.cz>
9702
9703         PR middle-end/42898
9704         * tree-sra.c (build_accesses_from_assign): Do not mark in
9705         should_scalarize_away_bitmap if stmt has volatile ops.
9706         (sra_modify_assign): Do not process assigns piecemeal if if stmt
9707         has volatile ops.
9708
9709 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
9710
9711         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
9712
9713 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
9714
9715         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
9716         before the pattern.
9717
9718 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
9719
9720         PR middle-end/42946
9721         * df-core.c (df_finish_pass): Change type of saved_flags to int.
9722
9723 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
9724
9725         PR middle-end/42988
9726         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
9727         to unknown_dependence.
9728         (graphite_legal_transform_dr): Handle the unknown_dependence.
9729         (graphite_carried_dependence_level_k): Same.
9730
9731 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
9732
9733         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
9734
9735 2010-02-07  Richard Guenther  <rguenther@suse.de>
9736
9737         PR middle-end/42991
9738         * expr.c (get_inner_reference): Always initialize *pbitsize.
9739
9740 2010-02-07  Richard Guenther  <rguenther@suse.de>
9741
9742         PR middle-end/42956
9743         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
9744         new ARRAY_REFs on variable size element or minimal index arrays.
9745         Complete.
9746         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
9747         gimple_fold_indirect_ref.
9748
9749 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
9750
9751         PR target/42957
9752         * arm.c (arm_override_options): Just return if the user has specified
9753         an invalid fpu name.
9754
9755 2010-02-03  Jason Merrill  <jason@redhat.com>
9756
9757         PR c++/42870
9758         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
9759         i386_pe_maybe_record_exported_symbol.
9760
9761 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
9762
9763         PR target/42924
9764         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
9765         (pa_delegitimize_address): New function.
9766
9767 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
9768
9769         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
9770         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
9771
9772 2010-02-05  Richard Guenther  <rguenther@suse.de>
9773
9774         PR lto/42762
9775         * lto-streamer-in.c (get_resolution): Deal with references
9776         to undefined functions.
9777
9778 2010-02-05  Richard Guenther  <rguenther@suse.de>
9779
9780         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
9781         (fold_const_aggregate_ref): Likewise.
9782         (ccp_fold_stmt): Substitute loads.
9783         (maybe_fold_reference): Verify types before substituting.
9784         Unshare properly.
9785         (fold_gimple_assign): Unshare properly.
9786         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
9787
9788 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
9789
9790         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
9791         for rs6000_gen_cell_microcode.
9792
9793 2010-02-04  Richard Guenther  <rguenther@suse.de>
9794
9795         PR rtl-optimization/42952
9796         * dse.c (const_or_frame_p): Remove MEM handling.
9797
9798 2010-02-04  Nick Clifton  <nickc@redhat.com>
9799
9800         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
9801         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
9802         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
9803         (mn10300_asm_output_mi_thunk): New function.
9804         (mn10300_can_output_mu_thunk): New function.
9805         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
9806         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
9807         (FUNCTION_ARG): Delete incorrect comment.
9808
9809 2010-02-03  Jason Merrill  <jason@redhat.com>
9810
9811         PR c++/40138
9812         * fold-const.c (operand_equal_p): Handle erroneous types.
9813
9814 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
9815
9816         * config/h8300/h8300.md (can_delay): Fix attibute condition.
9817
9818 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
9819
9820         PR rtl-optimization/42941
9821         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
9822         of xmalloc.
9823
9824 2010-02-03  Jason Merrill  <jason@redhat.com>
9825
9826         PR c++/35652
9827         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
9828
9829 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
9830
9831         PR debug/42896
9832         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
9833         (cselib_reset_table): Renamed from...
9834         (cselib_reset_table_with_next_value): ... this.
9835         (cselib_get_next_uid): Renamed from...
9836         (cselib_get_next_unknown_value): ... this.
9837         * cselib.c (next_uid): Renamed from...
9838         (next_unknown_value): ... this.
9839         (cselib_clear_table): Adjust.
9840         (cselib_reset_table): Adjust.  Renamed from...
9841         (cselib_reset_table_with_next_value): ... this.
9842         (cselib_get_next_uid): Adjust.  Renamed from...
9843         (cselib_get_next_unknown_value): ... this.
9844         (get_value_hash): Use hash.
9845         (cselib_hash_rtx): Likewise.
9846         (new_cselib_val): Adjust.  Set and dump uid.
9847         (cselib_lookup_mem): Pass next_uid as hash.
9848         (cselib_subst_to_values): Likewise.
9849         (cselib_log_lookup): Dump uid.
9850         (cselib_lookup): Pass next_uid as hash.  Adjust.
9851         (cselib_process_insn): Adjust.
9852         (cselib_init): Initialize next_uid.
9853         (cselib_finish): Adjust.
9854         (dump_cselib_table): Likewise.
9855         * dse.c (canon_address): Dump value uid.
9856         * print-rtl.c (print_rtx): Print value uid.
9857         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
9858         (dvuid): New type.
9859         (dv_uid): New function, sort of renamed from...
9860         (dv_htab_hash): ... this, reimplemented in terms of it and...
9861         (dv_uid2hash): ... this.  New.
9862         (variable_htab_eq): Drop excess assertions.
9863         (tie_break_pointers): Removed.
9864         (canon_value_cmp): Compare uids.
9865         (variable_post_merge_New_vals): Print uids.
9866         (vt_add_function_parameters): Adjust.
9867         (vt_initialize): Reset table.  Adjust.
9868
9869 2010-02-03  Richard Guenther  <rguenther@suse.de>
9870
9871         PR tree-optimization/42944
9872         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
9873         (call_may_clobber_ref_p_1): Likewise.  Properly handle
9874         malloc and calloc clobbering errno.
9875
9876 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
9877
9878         * doc/invoke.texi: Fix name of sched1 dump.
9879
9880         * opts.c (decode_options): Set flag_tree_switch_conversion
9881         only conditionally on optimize >= 2.
9882
9883         * gcse.c: Assorted comment fixes in pass description.
9884
9885 2010-02-03  Anthony Green  <green@moxielogic.com>
9886
9887         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
9888         nop padding in order to maintain alignment of storage location of
9889         target function address.
9890         (moxie_trampoline_init): Store target function address at newly
9891         aligned location.
9892         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
9893         to 32.
9894         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
9895
9896 2010-02-03  Richard Guenther  <rguenther@suse.de>
9897
9898         PR middle-end/42927
9899         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
9900
9901 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9902
9903         * config.gcc: Reenable check for obsolete targets.
9904         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
9905         mips-sgi-irix6.[0-4]*.
9906
9907 2010-02-02  Nick Clifton  <nickc@redhat.com>
9908
9909         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
9910         constant size of 4 as being the same as 0.
9911         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
9912         can take values in the range 0..4.
9913
9914 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
9915
9916         PR java/41991
9917         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
9918         as _darwin10_Unwind_FindEnclosingFunction().
9919         * libgcc-libsystem.ver: New.
9920
9921 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
9922
9923         PR target/41399
9924         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
9925         implicitly set registers.
9926
9927 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
9928
9929         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
9930         (arm_override_options): Allow automatic selection of the thread
9931         pointer register if thumb2.
9932         (legitimize_pic_address): Improve code sequences for Thumb2.
9933         (arm_call_tls_get_addr): Likewise.
9934         (legitimize_tls_address): Likewise.
9935         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
9936         (pic_load_addr_32bit): ... this.  New named pattern.
9937         * thumb2.md (pic_load_addr_thumb2): Delete.
9938         (pic_load_dot_plus_four): Delete.
9939         (tls_load_dot_plus_four): New named pattern.
9940
9941 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9942
9943         PR libgomp/29986
9944         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
9945         Document fix for TLS bug.
9946
9947 2010-01-31  Richard Guenther  <rguenther@suse.de>
9948
9949         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
9950         conservatively correct.
9951
9952 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9953
9954         PR target/42850
9955         Revert:
9956         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9957
9958         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
9959
9960 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9961
9962         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
9963
9964 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
9965
9966         * config.gcc: Adjust order of makefile fragments for mingw targets.
9967
9968 2010-01-31  Richard Guenther  <rguenther@suse.de>
9969
9970         PR middle-end/42898
9971         * gimplify.c (gimplify_init_constructor): For volatile LHS
9972         initialize a temporary.
9973
9974 2010-01-31  Matthias Klose  <doko@ubuntu.com>
9975
9976         * configure.ac: Fix __stack_chk_fail check for cross builds configured
9977         --with-headers
9978         * configure: Regenerate.
9979
9980 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
9981
9982         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
9983         the same alias set and their sizes different constantness.
9984         (aliasing_component_refs_p): Revert 2009-10-24 change.
9985
9986 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9987
9988         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
9989         unused.
9990
9991 2010-01-29  Richard Guenther  <rguenther@suse.de>
9992
9993         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
9994         Assert we successfully updated the call.
9995
9996 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
9997
9998         PR rtl-optimization/42889
9999         * df.h (df_set_bb_dirty_nonlr): New prototype.
10000         * df-core.c (df_set_bb_dirty_nonlr): New function.
10001         * df-scan.c (df_insn_rescan): Call it instead of
10002         df_set_bb_dirty for DEBUG_INSNs.
10003
10004 2010-01-29  Richard Guenther  <rguenther@suse.de>
10005
10006         PR middle-end/37448
10007         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
10008         quadratic behavior in most cases.
10009
10010 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
10011
10012         PR target/42891
10013         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
10014         in the call to gen_x86_movsicc_0_m1.
10015
10016 2010-01-28  Richard Guenther  <rguenther@suse.de>
10017
10018         PR tree-optimization/42871
10019         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
10020
10021 2010-01-28  Richard Guenther  <rguenther@suse.de>
10022
10023         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
10024         into call arguments.
10025
10026 2010-01-28  Richard Guenther  <rguenther@suse.de>
10027
10028         PR middle-end/42883
10029         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
10030         the forwarder if the destination is an EH landing pad.
10031
10032 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
10033
10034         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
10035         block list passed to gimple_duplicate_sese_tail.
10036         (parallelize_loops): Avoid parallelization when the function
10037         has_nonlocal_label.
10038         Avoid parallelization when the preheader is IRREDUCIBLE.
10039         Try to optimize when estimated_loop_iterations_int is unresolved.
10040         Add the loop's location to the dump file.
10041         * tree-cfg.c (add_phi_args_after_redirect): Remove.
10042         (gimple_duplicate_sese_tail): Remove the check for the latch.
10043         Redirect nexits to the exit block.
10044         Remove handling of the incoming edges to the latch.
10045         Redirect the backedge from the copied latch to the exit bb.
10046
10047 2010-01-28  Michael Matz  <matz@suse.de>
10048
10049         PR target/42881
10050         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
10051         Wrap force_reg into a sequence, emit it before user.
10052
10053 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
10054
10055         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
10056         (arm_rev): New.
10057         (arm_legacy_rev): Likewise.
10058         (thumb_legacy_rev): Likewise.
10059
10060 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
10061
10062         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
10063         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
10064         on MEM's address failed, try avoid_constant_pool_reference and
10065         recurse if it returned something different.
10066         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
10067         address, try avoid_constant_pool_reference and recurse if it
10068         returned something different.
10069         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
10070         address and avoid_constant_pool_reference returned something
10071         different, don't set have_address.
10072
10073 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
10074
10075         PR debug/42861
10076         * var-tracking.c (val_store): Add modified argument, obey it.
10077         Adjust callers.
10078         (count_uses): Move down logging of main.
10079         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
10080         don't need resolution.
10081         (emit_notes_in_bb): Likewise.
10082
10083 2010-01-27  Richard Guenther  <rguenther@suse.de>
10084
10085         PR middle-end/42878
10086         * tree-inline.c (remap_decl): Delay remapping of SSA name
10087         default definitions until we need them.
10088
10089 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
10090
10091         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
10092         (rs6000_delegitimize_address): New function.
10093
10094         * config/s390/s390.c (s390_delegitimize_address): Call
10095         delegitimize_mem_from_attrs.
10096
10097         PR middle-end/42874
10098         * tree-inline.c (cannot_copy_type_1): Removed.
10099         (copy_forbidden): Don't forbid copying of functions containing
10100         records/unions with variable length fields.
10101
10102 2010-01-27  Christian Bruel  <christian.bruel@st.com>
10103
10104         Revert:
10105         PR target/42841
10106         * config/sh/sh.c (find_barrier): Increase length for non delayed
10107         conditional branches.
10108
10109 2010-01-27  Matthias Klose  <doko@ubuntu.com>
10110
10111         * configure.ac (gnu-unique-object): Fix ldd version check.
10112         * configure: Regenerate.
10113
10114 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10115
10116         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
10117         HAVE_GNU_AS value.
10118         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
10119         Test for HAVE_GNU_AS value.
10120
10121 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10122
10123         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
10124         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
10125         INT64_TYPE): Define.
10126         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
10127         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10128         INT_LEAST64_TYPE): Define.
10129         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
10130         UINT_LEAST64_TYPE): Define.
10131         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
10132         INT_FAST64_TYPE): Define.
10133         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10134         UINT_FAST64_TYPE): Define.
10135         (INTMAX_TYPE, UINTMAX_TYPE): Define.
10136         (INTPTR_TYPE, UINTPTR_TYPE): Define.
10137         (SIG_ATOMIC_TYPE): Define.
10138
10139 2010-01-26  Richard Guenther  <rguenther@suse.de>
10140
10141         * df-scan.c (df_scan_set_bb_info): Remove assert.
10142         (df_insn_rescan_debug_internal): Merge asserts.
10143         (df_install_ref): Likewise.
10144         (df_mark_reg): Use bitmap_set_range.
10145         (df_hard_reg_used_p): Remove assert.
10146         (df_hard_reg_used_count): Likewise.
10147
10148 2010-01-26  Richard Guenther  <rguenther@suse.de>
10149
10150         PR rtl-optimization/42685
10151         * web.c (web_main): Ignore DEBUG_INSNs.
10152
10153 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
10154
10155         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
10156
10157         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
10158         Fix types of fndecl and arglist parameters.
10159
10160 2010-01-26  Richard Guenther  <rguenther@suse.de>
10161
10162         PR middle-end/42806
10163         * tree-eh.c (unsplit_eh): Skip debug insns.
10164
10165 2010-01-26  Richard Guenther  <rguenther@suse.de>
10166
10167         PR tree-optimization/42250
10168         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
10169
10170 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
10171
10172         PR fortran/42866
10173         * omp-low.c (expand_omp_sections): Only use single_pred if
10174         l2_bb is single_pred_p.
10175
10176 2010-01-25  Christian Bruel  <christian.bruel@st.com>
10177
10178         PR target/42841
10179         * config/sh/sh.c (find_barrier): Increase length for non delayed
10180         conditional branches.
10181         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
10182
10183 2010-01-24  David S. Miller  <davem@davemloft.net>
10184
10185         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
10186         define if not using GAS.
10187         * config/sparc/sparc.c (sparc_elf_asm_named_section):
10188         Likewise.  Delete SECTION_MERGE code, which is only applicable
10189         when using GAS.
10190
10191 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
10192
10193         PR c++/42748
10194         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
10195         mangling of va_list in system headers.
10196
10197 2010-01-23  Toon Moene  <toon@moene.org>
10198
10199         * tree-predcom.c (combine_chains): Return NULL, not false.
10200
10201 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
10202
10203         * tree-loop-distribution.c (distribute_loop): Fix declaration and
10204         initialization of variable res to agree with return type.
10205
10206 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
10207
10208         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
10209         * tree-sra.c: Add include of expr.h.
10210
10211 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
10212
10213         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
10214         insert the debug stmt on the single non-EH edge from the stmt.
10215
10216 2010-01-22  Richard Henderson  <rth@redhat.com>
10217
10218         PR tree-opt/42833
10219         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
10220         the RHS until after generate_subtree_copies has insertted its
10221         code before the current statement.
10222
10223 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
10224
10225         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
10226
10227         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
10228
10229 2010-01-21  Martin Jambor  <mjambor@suse.cz>
10230
10231         PR tree-optimization/42585
10232         * tree-sra.c (struct access): New field grp_total_scalarization.
10233         (dump_access): Dump the new field.
10234         (should_scalarize_away_bitmap): New variable.
10235         (cannot_scalarize_away_bitmap): Likewise.
10236         (sra_initialize): Allocate new bitmaps.
10237         (sra_deinitialize): Free new bitmaps.
10238         (create_access_1): New function.
10239         (create_access): Parts moved to create_access_1.
10240         (type_consists_of_records_p): New function.
10241         (completely_scalarize_record): Likewise.
10242         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
10243         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
10244         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
10245         access.
10246         (analyze_all_variable_accesses): Completely scalarize small eligible
10247         records.
10248
10249 2010-01-21  Martin Jambor  <mjambor@suse.cz>
10250
10251         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
10252
10253 2010-01-21  Andrew Haley  <aph@redhat.com>
10254
10255         * gcc.c (process_command): Move lang_specific_driver before
10256         setting cc_libexec_prefix.
10257
10258 2010-01-21  Richard Guenther  <rguenther@suse.de>
10259
10260         PR middle-end/19988
10261         * fold-const.c (negate_expr_p): Pretend only negative
10262         real constants are easily negatable.
10263
10264 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
10265             Jason Merrill  <jason@redhat.com>
10266
10267         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
10268         (TYPE_TRANSPARENT_AGGR): this, for union and record.
10269         * calls.c (initialize argument_information): Handle it.
10270         * c-common.c (handle_transparent_union_attribute): Use new name.
10271         * c-decl.c (finish_struct): Ditto.
10272         * c-typeck.c (type_lists_compatible_p): Ditto.
10273         (convert_for_assignment): Use new name and also handle record.
10274         * function.c (aggregate_value_p): Handle it.
10275         (pass_by_reference): Ditto.
10276         (assign_parm_data_types): Ditto.
10277         * print-tree.c (print_node): Ditto.
10278         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
10279         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
10280         * tree.c (first_field): New fn.
10281
10282 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
10283
10284         PR target/42818
10285         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
10286         even when linking statically, for now.
10287
10288 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
10289
10290         PR debug/42715
10291         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
10292         without a cselib val.
10293         (count_uses): Accept MO_VAL_SET with no val on stores.
10294         (add_stores): Likewise.
10295
10296 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10297
10298         * var-tracking.c (check_value_val): Add a compile time assertion.
10299         (dv_is_decl_p): Simplify.
10300         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
10301         gcc_assert if ENABLE_CHECKING.
10302
10303 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
10304
10305         PR debug/42782
10306         * var-tracking.c: Include tree-flow.h.
10307         (mem_dies_at_call): New.
10308         (dataflow_set_preserve_mem_locs): Use it.
10309         (dataflow_set_remove_mem_locs): Likewise.
10310         (dump_var): Renamed from dump_variable.  Adjust all callers.
10311         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
10312         * Makefile.in (var-tracking.o): Adjust deps.
10313
10314 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
10315
10316         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
10317
10318 2010-01-20  Richard Guenther  <rguenther@suse.de>
10319
10320         PR tree-optimization/42717
10321         * tree-ssa-dce.c (get_live_post_dom): Remove.
10322         (forward_edge_to_pdom): Take an arbitrary edge to copy
10323         degenerate PHI args from.
10324         (remove_dead_stmt): Use the first post-dominator even if it
10325         does not contain live statements as redirection destination.
10326
10327 2010-01-20  Richard Guenther  <rguenther@suse.de>
10328
10329         * tree-inline.c (estimate_num_insns): Handle EH builtins.
10330
10331 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10332
10333         * sel-sched.c (create_speculation_check): Remove set but not used
10334         variable twin.
10335         (try_transformation_cache): Remove set but not used variable ds.
10336         (calculate_privileged_insns): Remove set but not used variables
10337         cur_insn and min_spec_insn.
10338         (find_best_expr): Remove set but not used variable avail_n.
10339         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
10340         variable e.
10341         * cgraphunit.c (assemble_thunk): Remove set but not used variable
10342         false_label.
10343         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
10344         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
10345         new_scop_exit_edge.
10346
10347 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
10348
10349         PR bootstrap/42786
10350         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
10351         cpu types.  Add support for *-sse3 cpu types.
10352         (x86_64-*-*): Ditto.
10353
10354 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10355
10356         PR middle-end/42803
10357         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
10358         argument, call initializer_constant_valid_p_1 instead of
10359         initializer_constant_valid_p, pass CACHE to it, return NULL
10360         immediately if first call returns NULL.
10361         (initializer_constant_valid_p_1): New function.
10362         (initializer_constant_valid_p): Use it.
10363
10364 2010-01-20  Thomas Quinot  <quinot@adacore.com>
10365
10366         * tree.def (PLACEHOLDER_EXPR): Fix comment.
10367
10368 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10369
10370         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
10371         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
10372         (loc_list_from_tree): Don't handle unsigned division.  Handle
10373         signed modulo using DW_OP_{over,over,div,mul,minus}.
10374         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
10375         modulo instead of signed.
10376
10377 2010-01-20  DJ Delorie  <dj@redhat.com>
10378
10379         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
10380         (Fpa): Pass it
10381         (h8300_emit_stack_adjustment): Propogate it.
10382         (push): Pass it.
10383         (h8300_expand_prologue): Likewise.
10384         (h8300_expand_epilogue): Likewise.
10385
10386 2010-01-19  Michael Matz  <matz@suse.de>
10387
10388         PR tree-optimization/41783
10389         * tree-data-ref.c (toplevel): Include flags.h.
10390         (dump_data_dependence_relation):  Also dump the inputs if the
10391         result will be unknown.
10392         (split_constant_offset_1): Look through some conversions.
10393         * tree-predcom.c (determine_roots_comp): Restart a new chain if
10394         the offset from last element is too large.
10395         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
10396         (reassociate_to_the_same_stmt): Handle vector registers.
10397         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
10398         (e.g. conversions).
10399         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
10400         wide_prolog_niters argument, emit widening instructions.
10401         (vect_do_peeling_for_alignment): Adjust caller, use widened
10402         variant of the iteration cound.
10403         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
10404
10405 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10406
10407         PR target/38697
10408         * config/arm/neon-testgen.m (emit_automatics): New parameter
10409         features. Adjust for Fixed_return_reg feature.
10410         (test_intrinsic): Call emit_automatics with new feature.
10411         * config/arm/neon.ml: Update copyright years.
10412         (features): New Fixed_return_reg feature.
10413         (ops): Update feature for Vget_low.
10414
10415 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
10416
10417         PR tree-optimization/42719
10418         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
10419         stmt uses.
10420
10421         PR debug/42728
10422         * fwprop.c (all_uses_available_at): Return false if def_set dest
10423         is a REG that is used in def_insn.
10424
10425 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
10426
10427         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
10428
10429         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
10430         Add argument names.
10431
10432         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
10433
10434         * target.h (struct gcc_target) <secondary_reload>: Change type
10435         of last argument to secondary_reload_info *.
10436
10437 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
10438
10439         PR target/42774
10440         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
10441         memory references with unaligned offsets.  Remove CQImode handling.
10442         (unaligned_memory_operand): Return 1 for memory references with
10443         unaligned offsets.  Remove CQImode handling.
10444
10445 2010-01-18  Richard Guenther  <rguenther@suse.de>
10446
10447         PR middle-end/39954
10448         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
10449         builtin calls.
10450
10451 2010-01-18  Richard Guenther  <rguenther@suse.de>
10452
10453         PR tree-optimization/42781
10454         * tree-ssa-structalias.c (find_what_var_points_to): Skip
10455         restrict processing only if the original variable was artificial.
10456
10457 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
10458
10459         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
10460         find number of popped argument bytes.
10461
10462         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
10463         Fix the text that describes the return value for invalid insns.
10464
10465         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
10466
10467         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
10468         Clarify what 'cost of the -dependence' is.  Fix quoting.
10469
10470         * toplev.c (default_get_pch_validity): Rename argument to "sz".
10471         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
10472
10473 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
10474
10475         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
10476         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
10477
10478 2010-01-17  Richard Guenther  <rguenther@suse.de>
10479
10480         PR middle-end/42248
10481         * function.c (split_complex_args): Take a VEC to modify.
10482         (assign_parms_augmented_arg_list): Build a VEC instead of
10483         a chain of PARM_DECLs.
10484         (assign_parms_unsplit_complex): Take a VEC of arguments.
10485         Do not fixup unmodified parms.
10486         (assign_parms): Deal with the VEC.
10487         (gimplify_parameters): Likewise.
10488
10489 2010-01-17  Richard Guenther  <rguenther@suse.de>
10490
10491         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
10492         node existence check.
10493         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
10494         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
10495         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
10496         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
10497         (gimple_execute_on_growing_pred): Likewise.
10498
10499 2010-01-17  Richard Guenther  <rguenther@suse.de>
10500
10501         PR tree-optimization/42773
10502         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
10503         (compute_antic_aux): Likewise.
10504         (compute_partial_antic_aux): Likewise.
10505
10506 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
10507
10508         PR debug/42767
10509         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
10510         and US_TRUNCATE.
10511
10512 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
10513
10514         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
10515         appearance.
10516
10517         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
10518         Fix markup for strict argument.
10519
10520         (TARGET_SCHED_REORDER2): Fix argument types.
10521
10522         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
10523         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
10524
10525         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
10526         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
10527
10528         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
10529         Add argument name.
10530
10531         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
10532         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
10533         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
10534         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
10535         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
10536
10537         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
10538
10539         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
10540
10541         (TARGET_ASM_RELOC_RW_MASK): Add return type.
10542         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
10543
10544         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
10545
10546         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
10547         Use prototype.
10548
10549         (TARGET_ASM_NAMED_SECTION): Fix argument list.
10550
10551         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
10552         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
10553
10554         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
10555
10556         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
10557
10558         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
10559         referring to it.  Fix language.
10560
10561         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
10562
10563         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
10564
10565         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
10566
10567         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
10568
10569         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
10570         '@var{stream}.  Remove stray 'and'.
10571
10572         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
10573
10574         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
10575
10576         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
10577
10578         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
10579         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
10580
10581         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
10582         Fix description of return value.
10583         Rename argument "sz" to "len."
10584
10585         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
10586         Clarify meaning of 'true' return value.
10587
10588         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
10589
10590         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
10591         rep_mode versus mode_rep.
10592
10593         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
10594
10595         (TARGET_BUILTIN_DECL): Fix name.
10596
10597         (TARGET_COMMUTATIVE_P): Fix type of first argument.
10598
10599         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
10600
10601         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
10602
10603         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
10604
10605         (TARGET_RELAXED_ORDERING): Use @deftypevr.
10606
10607         (TARGET_GET_DRAP_RTX): Note that this is a hook.
10608         Clarify language.
10609
10610         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
10611         Rename argument tm_fn to md_fn.
10612
10613         (TARGET_OPTION_PRINT): Fix argument list.
10614
10615 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
10616
10617         PR target/42664
10618         * config/i386/i386.c (ix86_fixup_binary_operands):
10619         Revert FMA4 fixup of operands.
10620
10621 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10622
10623         PR gcc/42525
10624         * Makefile.in (write_entries_to_file, install-plugin):
10625         Use \012 instead of \n with tr.
10626
10627 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
10628
10629         * configure.ac (HAVE_AS_REF): New C macro.
10630         * configure: Regenerate.
10631         * config.in: Likewise.
10632         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
10633         if HAVE_AS_REF.
10634         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
10635         if HAVE_AS_REF.
10636
10637 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
10638
10639         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
10640
10641         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
10642
10643         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
10644
10645         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
10646
10647         (TARGET_IN_SMALL_DATA_P): Fix argument type.
10648
10649         (TARGET_BINDS_LOCAL_P): Fix argument type.
10650
10651         (TARGET_ASM_FILE_END): Use prototype.
10652
10653         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
10654
10655         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
10656
10657         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
10658
10659         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
10660
10661         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
10662         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
10663
10664         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
10665         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
10666
10667         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
10668         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
10669         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
10670         (TARGET_ADDR_SPACE_CONVERT): Likewise.
10671
10672         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
10673
10674         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
10675
10676         (TARGET_INIT_BUILTINS): Use prototype.
10677
10678         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
10679         Put 'const char *' in braces.  Fix parameter types.
10680         (TARGET_INVALID_CONVERSION): Fix parameter types.
10681         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
10682         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
10683
10684         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
10685         Fix argument type.
10686
10687         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
10688
10689         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
10690
10691 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
10692
10693         * doc/tm.texi (TARGET_HELP): Fix return type.
10694
10695         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
10696         in braces.  Fix argument types.
10697
10698         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
10699
10700         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
10701
10702         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
10703
10704         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
10705         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
10706
10707         (TARGET_MANGLE_TYPE): Fix argument types.
10708
10709         (TARGET_IRA_COVER_CLASSES): Use prototype.
10710
10711         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
10712
10713         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
10714
10715         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
10716
10717         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
10718
10719         (TARGET_CALLEE_COPIES): Fix argument types.
10720
10721         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
10722
10723         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
10724
10725         (TARGET_FUNCTION_VALUE): Fix argument types.
10726
10727         (TARGET_RETURN_IN_MSB): Fix argument type.
10728
10729         (TARGET_RETURN_IN_MEMORY): Fix argument types.
10730
10731         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
10732
10733         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
10734
10735         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
10736         agree with return type.
10737
10738         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
10739
10740 2010-01-15  Jing Yu  <jingyu@google.com>
10741
10742         PR rtl-optimization/42691
10743         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
10744         a pseudo to a constant and are merged, and adjust comments.
10745
10746 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
10747
10748         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
10749
10750 2010-01-15  Richard Guenther  <rguenther@suse.de>
10751
10752         PR middle-end/42739
10753         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
10754         labels of computed or non-local gotos to the destination.
10755         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
10756         landing pad label is the first label.
10757
10758 2010-01-15  Richard Guenther  <rguenther@suse.de>
10759
10760         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
10761
10762 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
10763
10764         PR target/42747
10765         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
10766         to allow generation of the xssqrtdp instruction on power7.
10767         (sqrtdf2_fpr): Ditto.
10768
10769 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10770
10771         PR middle-end/42674
10772         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
10773         functions with noreturn attribute.
10774
10775         PR c++/42608
10776         * varasm.c (declare_weak): Add weak attribute to decl if it
10777         doesn't have one already.
10778         (assemble_external): Only add decls to weak_decls if they also
10779         have weak attribute.
10780
10781 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
10782
10783         * var-tracking.c (var_reg_delete): Don't delete the association
10784         between REGs and values or one-part variables if the register
10785         isn't clobbered.
10786
10787 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10788
10789         PR debug/42657
10790         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
10791         because its first operand is a non-localized variable.
10792
10793 2010-01-14  Martin Jambor  <mjambor@suse.cz>
10794
10795         PR tree-optimization/42706
10796         * tree-sra.c (encountered_recursive_call): New variable.
10797         (encountered_unchangable_recursive_call): Likewise.
10798         (sra_initialize): Initialize both new variables.
10799         (callsite_has_enough_arguments_p): New function.
10800         (scan_function): Call decl and flags check only for IPA-SRA, check
10801         whether there is a recursive call and whether it has enough arguments.
10802         (all_callers_have_enough_arguments_p): New function.
10803         (convert_callers): Look for recursive calls only when
10804         encountered_recursive_call is set.
10805         (ipa_early_sra): Bail out either if
10806         !all_callers_have_enough_arguments_p or
10807         encountered_unchangable_recursive_call.
10808
10809 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10810
10811         * sel-sched.c: Add 2010 to copyright years.
10812         * sel-sched-ir.c: Likewise.
10813         * sel-sched-ir.h: Likewise.
10814
10815 2010-01-14  Martin Jambor  <mjambor@suse.cz>
10816
10817         PR tree-optimization/42714
10818         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
10819         constructors specially.
10820
10821 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10822
10823         * config/i386/drivers-i386.c (detect_caches_intel):
10824         Add l2sizekb parameter and fill in.
10825         (host_detect_local_cpu): Add l2sizekb, fill in.
10826         Add Atom small cache heuristic.
10827
10828 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10829
10830         * config/i386/drivers-i386.c (detect_caches_cpuid4):
10831         Add level3 parameter and fill in.
10832         (detect_caches_intel): Handle level3 cache.
10833
10834 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10835
10836         * config/i386/drivers-i386.c (host_detect_local_cpu):
10837         Fix core duo detection.
10838
10839 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10840
10841         * config/i386/drivers-i386.c (host_detect_local_cpu):
10842         Fix Atom detection.
10843
10844 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10845
10846         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
10847         (rs6000_variable_issue_1): this.  Use...
10848         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
10849
10850 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10851
10852         * sel-sched-ir.c (sel_restore_other_notes): Rename to
10853         sel_restore_notes.  Update all callers.  Call reemit_notes
10854         for all insns.
10855
10856 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10857
10858         PR rtl-optimization/42246
10859         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
10860         loops.
10861
10862 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10863
10864         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
10865         all successors is the same as number of successors in current region.
10866
10867 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10868
10869         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
10870         to rename is not separable.  Otherwise check that its LHS is not NULL.
10871
10872 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10873
10874         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
10875
10876 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10877
10878         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
10879         available registers when failed to discover LHS register class.
10880         Fix indentation.  Update comment.
10881
10882 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10883             Alexander Monakov  <amonakov@ispras.ru>
10884
10885         PR rtl-optimization/42389
10886         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
10887         to can_issue_more.
10888         (advance_state_on_fence): Likewise.
10889         (sel_target_adjust_priority): Print debug output only when
10890         sched_verbose >= 4, not 2.
10891         (get_expr_cost): Do not issue all unique insns on the next cycle.
10892         (fill_insns): Initialize can_issue_more from the value saved
10893         with the fence.
10894         * sel-sched-ir.c (flist_add): New parameter issue_more.
10895         Init FENCE_ISSUE_MORE with it.
10896         (merge_fences): Likewise.
10897         (init_fences): Update call to flist_add.
10898         (add_to_fences, add_clean_fence_to_fences)
10899         (add_dirty_fence_to_fences): Likewise.
10900         (move_fence_to_fences): Update call to merge_fences.
10901         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
10902         sched groups.
10903         * sel-sched-ir.h (struct _fence): New field issue_more.
10904         (FENCE_ISSUE_MORE): New accessor macro.
10905
10906 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10907
10908         PR rtl-optimization/42388
10909         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
10910         that have no predecessors nor successors.  Do not call move_bb_info
10911         for empty blocks outside of current region.
10912
10913 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10914
10915         PR rtl-optimization/42294
10916         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
10917         * sel-sched.c (move_exprs_to_boundary): Transitively add all
10918         originators' originators.
10919
10920 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10921
10922         PR rtl-optimization/39453
10923         PR rtl-optimization/42246
10924         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
10925         for pipelining_p.
10926         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
10927
10928 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10929             Alexander Monakov  <amonakov@ispras.ru>
10930
10931         PR middle-end/42245
10932         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
10933         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
10934         argument.  Update all callers.
10935         (tidy_control_flow): ... and here.  Recompute topological order
10936         of basic blocks in region if necessary.
10937         (sel_redirect_edge_and_branch): Change return type.  Return true
10938         if topological order might have been invalidated.
10939         (purge_empty_blocks): Export and move from...
10940         * sel-sched.c (purge_empty_blocks): ... here.
10941         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
10942         (maybe_tidy_empty_bb): Delete prototype.
10943         (purge_empty_blocks): Declare.
10944
10945 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
10946
10947         PR rtl-optimization/42249
10948         * sel-sched.c (try_replace_dest_reg): When chosen register
10949         and original register is the same, do not bail out early, but
10950         still check all original insns for validity of replacing destination
10951         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
10952         in this case.
10953
10954 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10955
10956         PR c/42721
10957         Port from no-undefined-overflow branch:
10958         2009-03-09  Richard Guenther  <rguenther@suse.de>
10959
10960         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
10961
10962 2010-01-14  Richard Guenther  <rguenther@suse.de>
10963
10964         PR lto/42665
10965         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
10966
10967 2010-01-14  Ira Rosen  <irar@il.ibm.com>
10968
10969         PR tree-optimization/42709
10970         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
10971         as scalar type in creation of constant vector operand.
10972
10973 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10974
10975         PR testsuite/42414
10976         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
10977         (check-parallel-%): Match `testsuite' directory component only
10978         at the end.
10979
10980 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
10981
10982         PR translation/39521
10983         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
10984         strings with _().
10985
10986 2010-01-13  Richard Guenther  <rguenther@suse.de>
10987
10988         PR tree-optimization/42730
10989         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
10990         offset zero.
10991
10992 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
10993
10994         PR target/pr42542
10995         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
10996         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
10997         them signed.
10998
10999 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
11000
11001         * config/bfin/libgcc-bfin.ver: Regenerate based on current
11002         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
11003         ___umulsi3_highpart.
11004
11005         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
11006         rather than schedule_insns if the pass is enabled.
11007
11008 2010-01-13  Martin Jambor  <mjambor@suse.cz>
11009
11010         PR tree-optimization/42704
11011         * tree-sra.c (sra_modify_assign): Do not delete assignments to
11012         SSA_NAMEs.
11013
11014 2010-01-13  Martin Jambor  <mjambor@suse.cz>
11015
11016         PR tree-optimization/42703
11017         * tree-sra.c (analyze_access_subtree): Check that we can build a
11018         reference to the original data within the aggregate.
11019
11020 2010-01-13  Richard Guenther  <rguenther@suse.de>
11021
11022         PR tree-optimization/42705
11023         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
11024
11025 2010-01-13  Richard Guenther  <rguenther@suse.de>
11026
11027         PR middle-end/42716
11028         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
11029
11030 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
11031
11032         PR debug/41371
11033         * var-tracking.c (values_to_unmark): New variable.
11034         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
11035         values_to_unmark vector.  Moved body to...
11036         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
11037         instead queue it into values_to_unmark vector.
11038         (vt_find_locations): Free values_to_unmark vector.
11039
11040 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
11041
11042         * config/s390/s390.c (override_options): Set
11043         default of max-pending-list-length to 256
11044
11045 2010-01-13  Richard Guenther  <rguenther@suse.de>
11046
11047         PR lto/42678
11048         * tree-pass.h (PROP_gimple_lcx): New.
11049         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
11050         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
11051         before the final cleanup_eh.
11052         (dump_properties): Dump PROP_gimple_lcx.
11053         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
11054         (tree_lower_complex_O0): Remove.
11055         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
11056         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
11057         tree_lower_complex, schedule TODO_update_ssa.
11058         * lto-streamer-out.c (output_function): Stream the functions
11059         properties.
11060         * lto-streamer-in.c (input_function): Likewise.
11061         (lto_read_body): Do not override them here.
11062
11063 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
11064
11065         PR c/42708
11066         * c-typeck.c (build_c_cast): Fold value cast to union type before
11067         wrapping it in a CONSTRUCTOR.
11068
11069 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
11070
11071         PR rtl-optimization/42699
11072         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
11073         involved.
11074
11075 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11076
11077         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
11078         SUBTARGET_WARN_UNUSED_SPEC): Move ...
11079         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
11080         SUBTARGET_WARN_UNUSED_SPEC): ... here
11081         * config/mips/iris5.h (LIBGCC_SPEC): Define.
11082
11083 2010-01-12  Julian Brown  <julian@codesourcery.com>
11084
11085         * config/arm/neon-schedgen.ml (Utils): Don't try to
11086         open missing module.
11087         (find_with_result): New.
11088
11089 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
11090
11091         PR debug/42662
11092         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
11093         sharing when canonicalizing ({lt,ge}u (plus a b) b).
11094
11095         PR tree-optimization/42645
11096         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
11097         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
11098         decl_map, set processing_debug_stmt to -1 and return name without
11099         any remapping.
11100
11101 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
11102
11103         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
11104         binutils version, and reword target configuration description.
11105
11106 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
11107
11108         * config/avr/avr.h (LINKER_NAME): Remove.
11109
11110 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
11111
11112         PR target/42416
11113         * config/rs6000/rs6000.c (rs6000_override_options): On targets
11114         that support VSX, warn for -mno-altivec if vsx is not disabled,
11115         and disable vsx.
11116
11117 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
11118             Shujing Zhao  <pearly.zhao@oracle.com>
11119
11120         PR translation/42469
11121         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
11122         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
11123         character between option name and help text.
11124         * c.opt (imultilib): Likewise.
11125
11126 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
11127
11128         * lto-streamer-out.c (output_unreferenced_globals): Output static
11129         variables.
11130
11131 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
11132
11133         PR rtl-optimization/42621
11134         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
11135         optimizing for size.
11136         (duplicate_computed_gotos): Remove now-redundant check.
11137
11138 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
11139
11140         PR target/37454
11141         * configure.ac: Save and restore LDFLAGS and LIBS
11142         * configure: Regenerate.
11143
11144 2010-01-10  Richard Guenther  <rguenther@suse.de>
11145
11146         PR middle-end/42667
11147         * builtins.c (fold_builtin_strlen): Add type argument and
11148         convert the resulting length to it.
11149         (fold_builtin_1): Adjust.
11150
11151 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
11152
11153         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
11154         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
11155         1 insn.
11156         (num_insns_constant_wide): Adjust for that change.
11157
11158 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11159
11160         PR debug/42631
11161         * web.c (union_defs): Add used argument, to combine uses of
11162         uninitialized regs.
11163         (entry_register): Adjust type and tests of used argument.
11164         (web_main): Widen used for new use.  Pass it to union_defs.
11165         * df.h (union_defs): Adjust prototype.
11166
11167 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11168
11169         PR debug/42630
11170         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
11171         uses in new incoming argument.  Free body.
11172         (reset_debug_uses_in_loop): New.
11173         (analyze_insn_to_expand_var): Call the latter if the former found
11174         anything.  Fix whitespace.  Reject invalid dest overlaps before
11175         going through all insns in the loop.
11176
11177 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11178
11179         PR debug/42629
11180         * haifa-sched.c (dying_use_p): Debug insns don't count.
11181
11182 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11183
11184         PR middle-end/42363
11185         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
11186         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
11187         (verify_gimple_call): Reject LHS in noreturn calls.
11188
11189 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11190
11191         PR debug/42604
11192         PR debug/42395
11193         * tree-vect-loop-manip.c (adjust_info): New type.
11194         (adjust_vec): New pointer to vector.
11195         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
11196         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
11197         (slpeel_update_phis_for_duplicate_loop): Use them.
11198         (slpeel_update_phi_nodes_for_guard1): Likewise.
11199         (slpeel_update_phi_nodes_for_guard2): Likewise.
11200         (slpeel_tree_peel_loop_to_edge): Likewise.
11201         (vect_update_ivs_after_vectorizer): Likewise.
11202
11203 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11204
11205         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
11206         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
11207
11208 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11209
11210         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
11211         bogus uninitialized warning.
11212
11213 2010-01-09  Richard Guenther  <rguenther@suse.de>
11214
11215         PR middle-end/42512
11216         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
11217         the evolution is compatible with the initial condition.
11218
11219 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
11220
11221         * gcc.c (process_command): Update copyright notice dates.
11222         * gcov.c (print_version): Likewise.
11223         * gcov-dump.c (print_version): Likewise.
11224         * mips-tfile.c (main): Likewise.
11225         * mips-tdump.c (main): Likewise.
11226
11227 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
11228
11229         PR target/41885
11230         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
11231         (rotlhi3): Delete.
11232         (rotlhi3_8): Delete.
11233         (rotlsi3): Delete.
11234         (rotlsi3_8): Delete.
11235         (rotlsi3_16): Delete.
11236         (rotlsi3_24): Delete.
11237         (rotl<mode>3): New.
11238         (*rotw<mode>3): New.
11239         (*rotb<mode>3): New.
11240         * config/avr/avr.c (avr_rotate_bytes): New function.
11241         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
11242
11243 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
11244
11245         PR target/37454
11246         * configure.ac: Modify -rdynamic check.
11247         * configure: Regenerate.
11248
11249 2010-01-08  DJ Delorie  <dj@redhat.com>
11250
11251         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
11252         register popping order.
11253
11254 2010-01-08  Richard Guenther  <rguenther@suse.de>
11255
11256         PR lto/42528
11257         * c.opt (fsigned-char): Also let LTO handle this option.
11258         (funsigned-char): Likewise.
11259
11260 2010-01-07  Richard Guenther  <rguenther@suse.de>
11261
11262         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
11263         (gimple_op): Likewise.
11264         (gimple_op_ptr): Likewise.
11265         (gimple_assign_set_lhs): Remove gcc_assert.
11266         (gimple_assign_set_rhs1): Likewise.
11267         (gimple_assign_set_rhs2): Likewise.
11268         (gimple_call_set_lhs): Likewise.
11269         (gimple_call_set_fn): Likewise.
11270         (gimple_call_set_fndecl): Likewise.
11271         (gimple_call_fndecl): Likewise.
11272         (gimple_call_return_type): Likewise.
11273         (gimple_call_set_chain): Likewise.
11274         (gimple_call_num_args): Likewise.
11275         (gimple_call_set_arg): Likewise.
11276         (gimple_cond_set_code): Likewise.
11277         (gimple_cond_set_lhs): Likewise.
11278         (gimple_cond_set_rhs): Likewise.
11279         (gimple_cond_set_true_label): Likewise.
11280         (gimple_cond_set_false_label): Likewise.
11281         (gimple_label_set_label): Likewise.
11282         (gimple_goto_set_dest): Likewise.
11283         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
11284         (gimple_debug_bind_get_value): Likewise.
11285         (gimple_debug_bind_get_value_ptr): Likewise.
11286         (gimple_debug_bind_set_var): Likewise.
11287         (gimple_debug_bind_set_value): Likewise.
11288         (gimple_debug_bind_reset_value): Likewise.
11289         (gimple_debug_bind_has_value_p): Likewise.
11290         (gimple_return_retval_ptr): Remove gcc_assert.
11291         (gimple_return_retval): Likewise.
11292         (gimple_return_set_retval): Likewise.
11293         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
11294         (safe_referenced_var_iterator): Remove.
11295         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
11296         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
11297         (fill_referenced_var_vec): Remove.
11298         (first_readonly_imm_use): Remove redundant gcc_assert.
11299         (phi_arg_index_from_use): Combine gcc_asserts.
11300         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
11301         (first_imm_use_stmt): Remove redundant gcc_assert.
11302         * tree-cfg.c (verify_gimple_call): Verify function and chain
11303         operands.  Verify arguments.
11304         (verify_types_in_gimple_stmt): Verify condition code and labels.
11305
11306 2010-01-07  Richard Guenther  <rguenther@suse.de>
11307
11308         PR tree-optimization/42641
11309         * sese.c (rename_map_elt_info): Use the SSA name version, do
11310         not hash pointers.
11311
11312 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
11313
11314         PR tree-optimization/42625
11315         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
11316         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
11317
11318 2010-01-07  Duncan Sands  <baldrick@free.fr>
11319
11320         * Makefile.in (PLUGIN_HEADERS): Add version.h.
11321
11322 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
11323
11324         PR target/42511
11325         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
11326         note itself is not function_invariant_p.
11327
11328 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
11329
11330         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
11331         Do not add the DF_NOTE problem.
11332         * store-motion.c (execute_rtl_store_motion): Likewise.
11333
11334 2010-01-07  Martin Jambor  <mjambor@suse.cz>
11335
11336         PR tree-optimization/42157
11337         * tree-sra.c (compare_access_positions): Stabilize sort if both
11338         accesses have integer types, return zero immediately if they are the
11339         same.
11340
11341 2010-01-06  Richard Henderson  <rth@redhat.com>
11342
11343         PR middle-end/41883
11344         * haifa-sched.c (add_to_note_list): Merge into ...
11345         (concat_note_lists): ... here, and ...
11346         (unlink_other_notes, rm_other_notes): Merge into...
11347         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
11348         NOTE_INSN_EPILOGUE_BEG.
11349
11350 2010-01-06  Richard Guenther  <rguenther@suse.de>
11351
11352         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
11353         not inline regular functions into always-inline functions.
11354
11355 2010-01-06  Nick Clifton  <nickc@redhat.com>
11356
11357         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
11358         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
11359         used together.
11360         (OVERRIDE_OPTIONS): Delete.
11361         (OPTIMIZATION_OPTIONS): Define.
11362         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
11363         * config/rx/rx.c (rx_handle_option): Issue an error message if
11364         -mcpu=rx200 and -fpu are used together.
11365         (rx_set_optimization_options): New function.  Issue an error
11366         message if an optimization attribute attempts to reset the FPU/
11367         math optimization pairing.
11368         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
11369         * config/rx/rx.opt: Set the default to 32-bit doubles.
11370         * config/rx/t-rx: Add multilibs for -nofpu option.
11371         * doc/invoke.texi: Update documentation of RX options.
11372
11373 2010-01-06  Richard Guenther  <rguenther@suse.de>
11374
11375         * tree-ssa-pre.c (name_to_id): New global.
11376         (alloc_expression_id): Simplify SSA name handling.
11377         (lookup_expression_id): Likewise.
11378         (init_pre): Zero name_to_id.
11379         (fini_pre): Free it.
11380
11381 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
11382
11383         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
11384
11385 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
11386
11387         PR target/42542
11388         * config/i386/sse.md (smaxv2di3): New.
11389         (umaxv2di3): Likewise.
11390         (sminv2di3): Likewise.
11391         (uminv2di3): Likewise.
11392
11393 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
11394
11395         PR target/42564
11396         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
11397         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
11398         (legitimize_tls_address): Likewise.
11399         (sparc_tls_referenced_p): Likewise.
11400         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
11401         and adjust calls to legitimize_pic_address.
11402         (legitimate_constant_p) Use sparc_tls_referenced_p.
11403         (legitimate_pic_operand_p): Likewise.
11404         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
11405         (sparc_tls_symbol_ref_1): Delete.
11406         (sparc_tls_referenced_p): Make static, recognize specific patterns.
11407         (legitimize_tls_address): Make static, handle CONST patterns.
11408         (legitimize_pic_address): Make static, remove unused parameter and
11409         adjust recursive calls.
11410         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
11411         and adjust call to legitimize_pic_address.
11412         (sparc_output_mi_thunk): Likewise.
11413
11414 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
11415             H.J. Lu  <hongjiu.lu@intel.com>
11416
11417         PR target/42542
11418         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
11419         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
11420         operands to make them signed.
11421
11422         Revert:
11423         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11424
11425         PR target/42542
11426         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11427         GTU to GT for V4SI and V2DI.
11428
11429         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11430         (umin<mode>3): Removed.
11431         (uminv8hi3): New.
11432         (uminv4si3): Likewise.
11433
11434 2010-01-05  Martin Jambor  <mjambor@suse.cz>
11435
11436         PR tree-optimization/42462
11437         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
11438         current_function_decl to helper functions and macros.
11439
11440 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11441
11442         PR bootstrap/41771
11443         * flags.h: Don't include real.h.
11444         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
11445         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
11446         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
11447         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
11448         * dominance.c: Update copyright.
11449         * gimple.c (walk_gimple_op): Remove inline.
11450         * tree-ssa-reassoc.c: Include real.h.
11451         * Makefile.in (FLAGS_H): Remove $(REAL_H).
11452         (tree-ssa-reassoc.o): Depend on $(REAL_H).
11453
11454 2010-01-05  Nick Clifton  <nickc@redhat.com>
11455
11456         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
11457         register to push into the stack frame when the accumulator has to
11458         be saved during interrupts.
11459
11460 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
11461
11462         * doc/invoke.texi: Remove the documentation about option
11463         -Wunreachable-code.
11464         * common.opt (Wunreachable-code):  Preserved for backward
11465         compatibility.
11466         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
11467         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
11468         the backward compatibility flag section.
11469
11470 2010-01-05  Richard Guenther  <rguenther@suse.de>
11471
11472         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
11473
11474 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
11475
11476         PR other/42611
11477         * cfgexpand.c (expand_one_var): Diagnose too large variables.
11478
11479         PR tree-optimization/42508
11480         * tree-sra.c (convert_callers): Check for recursive call
11481         by comparing cgraph nodes instead of decls.
11482         (modify_function): Call ipa_modify_formal_parameters also
11483         on all same_body aliases.
11484
11485         * cgraphunit.c (cgraph_materialize_all_clones): Compare
11486         cgraph nodes when checking for same_body aliases.
11487
11488 2010-01-05  Richard Guenther  <rguenther@suse.de>
11489
11490         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
11491         allocation and lookup.
11492         (get_or_alloc_expr_for_constant): Likewise.
11493         (phi_translate): Sink allocation.
11494
11495 2010-01-04  Richard Guenther  <rguenther@suse.de>
11496
11497         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
11498         a new entry only if needed.
11499         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
11500         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
11501         hashtable lookup.
11502         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
11503         the result array.
11504         (phi_translate): Handle CONSTANTs early.
11505
11506 2010-01-04  Martin Jambor  <mjambor@suse.cz>
11507
11508         PR tree-optimization/42398
11509         * tree-sra.c (struct access): Removed flag grp_different_types.
11510         (dump_access): Do not dump the removed flag.
11511         (sort_and_splice_var_accesses): Do not set the removed flag.
11512         (sra_modify_expr): Check for type compatibility directly.
11513
11514 2010-01-04  Martin Jambor  <mjambor@suse.cz>
11515
11516         PR tree-optimization/42366
11517         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
11518         edges with variable number of parameters.
11519         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
11520         flag instead of asserting it.
11521         (ipa_read_node_info): Read uses_analysis_done flag.
11522
11523 2010-01-04  Richard Guenther  <rguenther@suse.de>
11524
11525         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
11526         iterative_hash_* as intended.
11527         (vn_reference_compute_hash): Likewise.  Simplify hashing
11528         SSA names.
11529         (vn_reference_lookup_2): Likewise.
11530         (vn_nary_op_compute_hash): Likewise.
11531         (vn_phi_compute_hash): Likewise.
11532         (expressions_equal_p): Remove strange code.
11533         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
11534         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
11535         (bitmap_insert_into_set_1): Take value-id as parameter.
11536         (add_to_value): Pass it.
11537         (bitmap_insert_into_set): Likewise.
11538         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
11539
11540 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
11541
11542         PR driver/42442
11543         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
11544         (do_self_spec): For switches with SWITCH_IGNORE set set also
11545         SWITCH_IGNORE_PERMANENTLY.
11546         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
11547         of SWITCH_IGNORE.
11548
11549 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
11550
11551         * lto-streamer-out.c (output_unreferenced_globals): Output the full
11552         tree of an unreferenced global var.
11553
11554 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11555
11556         PR target/42542
11557         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11558         GTU to GT for V4SI and V2DI.
11559
11560         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11561         (umin<mode>3): Removed.
11562         (uminv8hi3): New.
11563         (uminv4si3): Likewise.
11564
11565 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11566
11567         PR lto/42581
11568         * collect2.c (main): Turn on trace in collect2 if -v is passed
11569         to gcc with LTO.
11570
11571 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
11572
11573         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
11574         description of expression operand.
11575
11576 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
11577
11578         * configure.ac: Add install-html to target_list for Make-hooks.
11579         * configure: Regenerate.
11580         * fortran/Make-lang.in (F95_HTMLFILES): New.
11581         (fortran.html): Use it.
11582         (fortran.install-html): New.
11583         * Makefile.in (install-html): Add lang.install-html.
11584         * java/Make-lang.in (JAVA_HTMLFILES): New.
11585         (java.html): Use it.
11586         (java.install-html): New.
11587         * objc/Make-lang.in (objc.install-html): New.
11588         * objcp/Make-lang.in (obj-c++.install-html): New.
11589         * cp/Make-lang.in (c++.install-html): New.
11590         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
11591         * lto/Make-lang.in (lto.install-html): New.
11592
11593 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
11594
11595         PR lto/42520
11596         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
11597
11598 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
11599
11600         PR rtl-optimization/41862
11601         * store-motion.c (store_killed_in_insn, compute_store_table,
11602         remove_reachable_equiv_notes, replace_store_insn,
11603         build_store_vectors): Ignore all DEBUG_INSNs.
11604
11605 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
11606
11607         PR lto/41564
11608         * common.opt: Add dumpdir.
11609
11610         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
11611         isn't specified.
11612         (option_map): Add --dumpdir.
11613
11614         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
11615
11616         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
11617
11618         * opts.c (decode_options): Try dump_dir_name first if
11619         dump_base_name isn't an absolute path.
11620         (common_handle_option): Handle OPT_dumpdir.
11621
11622         * toplev.c (dump_dir_name): New.
11623         (print_switch_values): Also ignore -dumpdir.
11624
11625         * toplev.h (dump_dir_name): New.
11626
11627 2010-01-03  Richard Guenther  <rguenther@suse.de>
11628
11629         PR tree-optimization/42589
11630         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
11631         double-word expansion of bswap32.
11632
11633 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
11634
11635         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
11636         with BLOCK_FOR_INSN.
11637         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
11638         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
11639         noce_process_if_block): Likewise.
11640         * gcse.c (compute_local_properties, insert_expr_in_table,
11641         insert_set_in_table, canon_list_insert, find_avail_set,
11642         pre_insert_copy_insn): Likewise.
11643
11644         * basic-block.h (BLOCK_NUM): Move from here...
11645         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
11646
11647 2010-01-03  Richard Guenther  <rguenther@suse.de>
11648
11649         PR tree-optimization/42438
11650         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
11651         contains_may_not_return_call flag.
11652         (BB_MAY_NOTRETURN): New.
11653         (valid_in_sets): Trapping nary operations are not valid
11654         in blocks that may not return.
11655         (insert_into_preds_of_block): Remove check for trapping expressions.
11656         (compute_avail): Compute also BB_MAY_NOTRETURN.
11657
11658 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
11659
11660         * doc/invoke.texi: Add 2010 to copyright years.
11661
11662 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
11663
11664         * config/sparc/sparc.c: Fix formatting nits.
11665
11666 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
11667             Alexander Monakov  <amonakov@ispras.ru>
11668
11669         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
11670
11671 2010-01-02  Richard Guenther  <rguenther@suse.de>
11672
11673         PR middle-end/42577
11674         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
11675         (simplify_switch_using_ranges): Mark to be removed edges
11676         as non-executable.
11677
11678 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11679
11680         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
11681
11682         * collect2.c (scan_libraries): Add missing argument in call to
11683         scan_prog_file.
11684
11685 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
11686
11687         PR target/42448
11688         * config/alpha/predicates.md (aligned_memory_operand): Return false
11689         for CQImode.
11690         (unaligned_memory_operand): Return true for CQImode.
11691         * config/alpha/alpha.c (get_aligned_mem): Assert that location
11692         doesn not cross aligned SImode word boundary.
11693
11694 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
11695
11696         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
11697         Remove.
11698         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
11699         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
11700
11701 2010-01-02  Richard Guenther  <rguenther@suse.de>
11702
11703         PR lto/41597
11704         * toplev.c (compile_file): Emit LTO marker properly.  Change
11705         it to __gnu_lto_v1.
11706         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
11707
11708 2010-01-01  Richard Guenther  <rguenther@suse.de>
11709
11710         PR debug/42455
11711         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
11712
11713 2010-01-01  Richard Guenther  <rguenther@suse.de>
11714
11715         PR c/42570
11716         * c-decl.c (grokdeclarator): For zero-size arrays force
11717         structural equality checks as layout_type does.
11718
11719 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
11720
11721         * builtins.c: Update copyright to 2010.
11722
11723 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
11724
11725         PR lto/42531
11726         * lto-streamer-out.c (produce_asm): Revert the last change.
11727         (copy_function): Likewise.
11728
11729         * lto-streamer.c (lto_get_section_name): Skip any leading
11730         asterisk in name.
11731
11732 2010-01-01  Richard Guenther  <rguenther@suse.de>
11733
11734         PR middle-end/42559
11735         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
11736         for LABEL_DECLs.
11737
11738 \f
11739 Copyright (C) 2010 Free Software Foundation, Inc.
11740
11741 Copying and distribution of this file, with or without modification,
11742 are permitted in any medium without royalty provided the copyright
11743 notice and this notice are preserved.
11744
11745         PR bootstrap/44299
11746         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
11747         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
11748
11749 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
11750
11751         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
11752         toplev.h.
11753         * diagnostic.c: Don't include toplev.h.
11754         (progname): Define.  Moved from toplev.c.
11755         (seen_error): New function.
11756         * diagnostic.h: Include diagnostic-core.h.
11757         (diagnostic_t, emit_diagnostic): Don't declare here.
11758         * toplev.c (progname): Move to toplev.c.
11759         (emit_debug_global_declarations, compile_file, finalize,
11760         do_compile, toplev_main): Use seen_error.
11761         * toplev.h: Include diagnostic-core.h.
11762         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
11763         internal_error, warning, warning_at, error, error_n, error_at,
11764         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
11765         verbatim, fnotice, progname): Move to diagnostic-core.h.
11766         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
11767         (expand_builtin_expect): Use seen_error.
11768         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
11769         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
11770         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
11771         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
11772         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
11773         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
11774         errorcount for errors.
11775         * c-opts.c (c_common_finish): Use seen_error.
11776         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
11777         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
11778         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
11779         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
11780         (get_coverage_counts): Use seen_error.
11781         * dwarf2out.c (dwarf2out_finish): Use seen_error.
11782         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
11783         gimplify_body): Use seen_error.
11784         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
11785         * ipa-pure-const.c (gate_pure_const): Use seen_error.
11786         * ipa-reference.c (gate_reference): Use seen_error.
11787         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
11788         * lambda-code.c: Include diagnostic-core.h instead of
11789         diagnostic.h.
11790         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
11791         * lto-compress.c: Include diagnostic-core.h instead of
11792         diagnostic.h.
11793         * lto-section-in.c: Include diagnostic-core.h instead of
11794         diagnostic.h.
11795         * lto-streamer-out.c: Include diagnostic-core.h instead of
11796         diagnostic.h.
11797         * lto-streamer.c: Include diagnostic-core.h instead of
11798         diagnostic.h.
11799         (gate_lto_out): Use seen_error.
11800         * matrix-reorg.c: Include diagnostic-core.h instead of
11801         diagnostic.h.
11802         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
11803         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
11804         (gate_expand_omp, lower_omp_1): Use seen_error.
11805         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
11806         (rest_of_decl_compilation, rest_of_type_compilation,
11807         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
11808         * tree-cfg.c (label_to_block_fn): Use seen_error.
11809         * tree-inline.c (optimize_inline_calls): Use seen_error.
11810         * tree-mudflap.c (mudflap_finish_file): Use
11811         seen_error.
11812         * tree-optimize.c (gate_all_optimizations,
11813         gate_all_early_local_passes, gate_all_early_optimizations): Use
11814         seen_error.
11815         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
11816         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
11817         (varpool_remove_unreferenced_decls,
11818         varpool_assemble_pending_decls): Use seen_error.
11819         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
11820         (TOPLEV_H, DIAGNOSTIC_H): Update.
11821         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
11822         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
11823         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
11824         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
11825         coverage.o, lambda-code.o): Update dependencies.
11826
11827 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
11828
11829         PR c++/44188
11830         * c-common.c (is_typedef_decl): Move this definition ...
11831         * tree.c (is_typedef_decl): ... here.
11832         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
11833         * c-common.h (is_typedef_decl): Move this declaration ...
11834         * tree.h (is_typedef_decl): ... here.
11835         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
11836         * dwarf2out.c (is_naming_typedef_decl): New function.
11837         (gen_tagged_type_die): Split out of ...
11838         (gen_type_die_with_usage): ... this function. When an anonymous
11839         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
11840         is emitted for the typedef.
11841         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
11842         anonymous tagged types.
11843
11844 2010-05-27  Jason Merrill  <jason@redhat.com>
11845
11846         * print-tree.c (debug_vec_tree): New fn.
11847         (print_vec_tree): New fn.
11848         * tree.h: Declare them.
11849         * gdbinit.in (pvt): New command.
11850
11851         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
11852
11853         * gdbinit.in (pdd): New command.
11854
11855 2010-05-27  Jan Hubicka  <jh@suse.cz>
11856
11857         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
11858         (update_caller_keys): Return early if there are no callers;
11859         only update fibheap when decresing the key.
11860         (update_callee_keys): Avoid recursion.
11861         (decide_inlining_of_small_functions): When badness does not match;
11862         re-insert into fibheap.
11863
11864 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
11865
11866         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
11867         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
11868         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
11869         (ALL_HOST_OBJS): Now a union of the above two.
11870         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
11871         all files in ALL_HOST_FRONTEND_OBJS.
11872         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
11873
11874         * c-common.c: Pretend to be a backend file by undefining
11875         IN_GCC_FRONTEND (still need rtl.h here).
11876
11877 2010-05-27  Jan Hubicka  <jh@suse.cz>
11878
11879         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
11880         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
11881
11882 2010-05-27  Jan Hubicka  <jh@suse.cz>
11883
11884         * sched-ebb.c: Rename struct deps to struct deps_desc.
11885         * ddg.c: Likewise.
11886         * sel-sched-ir.c: Likewise.
11887         * sched-deps.c: Likewise.
11888         * sched-int.h: Likewise.
11889         * sched-rgn.c: Likewise.
11890
11891 2010-05-27  Jon Beniston <jon@beniston.com>
11892
11893         PR 43726
11894         * config/lm32/lm32.h: Remove definition of 
11895         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
11896
11897 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
11898
11899         PR lto/44230
11900         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
11901
11902 2010-05-27  Richard Guenther  <rguenther@suse.de>
11903
11904         PR tree-optimization/44284
11905         * tree-vect-stmts.c (vectorizable_assignment): Handle
11906         sign-changing conversions as simple copy.
11907
11908 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11909
11910         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
11911         Bionic C library.
11912         (__gthread_active_p): Check for pthread_create if compiling against
11913         Bionic C library.
11914
11915 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11916
11917         Support compilation for Android platform.  Reimplement -mandroid.
11918
11919         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
11920         (*android*): Set ANDROID_DEFAULT.
11921         (arm*-*-linux*): Include linux-android.h.
11922         (arm*-*-eabi*): Don't include previous -mandroid implementation.
11923         * config/arm/eabi.h: Remove, move Android-specific parts ...
11924         * config/linux-android.h: ... here.  New file.
11925         * config/arm/eabi.opt: Rename to ...
11926         * config/linux-android.opt: ... this.
11927         (mandroid): Allow -mno-android option.  Initialize based on
11928         ANDROID_DEFAULT.
11929         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
11930         Move logic to corresponding LINUX_TARGET_* macros.
11931         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
11932         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
11933         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
11934         Android definitions.
11935         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
11936         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
11937         Document.
11938
11939 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11940
11941         Add support for Bionic C library
11942
11943         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
11944         macro.
11945         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
11946         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
11947
11948         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
11949         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
11950         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
11951         to support multiple C libraries.  Handle Bionic.
11952         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
11953         (BIONIC_DYNAMIC_LINKER64): Define.
11954         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
11955         Update.
11956         (TARGET_HAS_SINCOS): Enable for Bionic.
11957
11958         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
11959         the last option specified on command line take effect.
11960         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
11961         (mbionic): New.
11962         (mglibc, muclibc): Update.
11963
11964         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
11965         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
11966         DEFAULT_LIBC.
11967
11968         * doc/invoke.texi (-mglibc, -muclibc): Update.
11969         (-mbionic): Document.
11970
11971 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11972
11973         * c-common.h (c_register_addr_space): Add prototype.
11974         (ADDR_SPACE_KEYWORD): Remove.
11975         * c-common.c (c_register_addr_space): New function.
11976         (c_addr_space_name): Reimplement.
11977         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
11978
11979         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
11980         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
11981
11982         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
11983         Remove TARGET_ADDR_SPACE_KEYWORDS.
11984
11985 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
11986
11987         * input.c: New file.
11988         * input.h (main_input_filename): Move declaration to toplev.h.
11989         * toplev.c (input_location, line_table): Move to input.c
11990         * toplev.h (main_input_filename): Move declaration from input.h.
11991         * tree.c (expand_location): Move to input.c.
11992         * Makefile.in (OBJS-common): Add input.o.
11993         (input.o): Add dependencies.
11994
11995 2010-05-27  Richard Guenther  <rguenther@suse.de>
11996
11997         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
11998         for non-existant files.
11999         (fork_execute): Mark args_name file as deleted.
12000
12001 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
12002
12003         PR bootstrp/44287
12004         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
12005         (narrow_signed_type): Likewise.
12006
12007 2010-05-26  Jan Hubicka  <jh@suse.cz>
12008
12009         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
12010         edge only when checking is enabled; check using former_clone_of;
12011         check inline clones too.
12012         (cgraph_materialize_clone): Record former_clone_of pointer.
12013         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
12014         combining redirections; dump args_to_skip bitmap
12015         (cgraph_materialize_all_clones): Do no redirection here.
12016         * ipa-inline.c (inline_transform): Do redirection here.
12017         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
12018         cheking only).
12019
12020 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12021
12022         * config/avr/avr-c.c: Do not include regs.h.
12023         Include cpplib.h for cpp_define and tree.h for c-common.h.
12024         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
12025         * config/avr/t-avr: Fix dependencies for avr-c.o.
12026
12027 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12028
12029         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
12030         string instead of SYMBOL_REF rtx.
12031         * rtl.h (set_stack_check_libfunc): Move prototype from here...
12032         * libfuncs.h: ...to here.  Adjust for explow.c change.
12033
12034 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
12035
12036         * pretty-print.c: Don't include ggc.h.
12037         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
12038         (identifier_to_locale): Use them for allocation.
12039         * pretty-print.h (identifier_to_locale_alloc,
12040         identifier_to_locale_free): Declare.
12041         * toplev.c (alloc_for_identifier_to_locale): New.
12042         (general_init): Set identifier_to_locale_alloc and
12043         identifier_to_locale_free.
12044         * Makefile.in (pretty-print.o): Update dependencies.
12045
12046 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
12047
12048         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
12049         pointer types if they have different alignment or mode.
12050
12051 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
12052
12053         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
12054         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
12055         * config/sparc/sparc-protos.h (function_value): Remove declaration.
12056         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
12057         sparc_function_value_regno_p): New functions.
12058         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12059         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12060         (function_value): Rename to...
12061         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
12062         argument to 'outgoing'.
12063         (function_arg_record_value, function_arg_union_value,
12064         function_arg_vector_value): Update comment.
12065
12066 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
12067
12068         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
12069         (fde_needed_for_eh_p): New predicate.
12070         (output_call_frame_info): Use it throughout to decide whether FDEs
12071         are needed for EH purpose.
12072         (dwarf2out_begin_prologue): Reorder assignments.
12073
12074 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12075
12076         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
12077         special case loop->header.
12078         (is_predicated): New.
12079         (if_convertible_loop_p): Call it.
12080
12081 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12082
12083         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
12084         iterator in parameter.  Do not generate code during the analysis.
12085         (tree_if_convert_cond_stmt): Removed.
12086         (tree_if_convert_stmt): Removed.
12087         (predicate_bbs): New.
12088         (if_convertible_loop_p): Call predicate_bbs.
12089         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
12090         now contains all the analysis part.
12091
12092 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12093
12094         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
12095         statements in the analysis part.
12096         (tree_if_convert_stmt): Update comment.
12097         (remove_conditions_and_labels): New.
12098         (combine_blocks): Call remove_conditions_and_labels.
12099         (tree_if_conversion): Update comment.
12100
12101 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12102
12103         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
12104         than 2 predecessors or more than 2 successors.
12105
12106 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12107
12108         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
12109         of loops in which the data dependence analysis fails.
12110
12111 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12112
12113         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
12114         CDI_POST_DOMINATORS.
12115         (tree_if_conversion): Same.
12116
12117 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12118
12119         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
12120
12121 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12122
12123         * tree-if-conv.c: Update copyright years.  Fix comments.
12124         Fix indentation.
12125
12126 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
12127
12128         * builtin-types.def (BT_INT128): New primitive type.
12129         (BT_UINT128): Likewise.
12130         * c-common.c (c_common_r): Add __int128 keyword.
12131         (c_common_type_for_size): Handle __int128.
12132         (c_common_type_for_mode): Likewise.
12133         (c_common_signed_or_unsigned_type): Likewise.
12134         (c_common_nodes_and_builtins): Add builtin type
12135         if target supports 128-bit integer scalar.
12136         * c-common.h (enum rid): Add RID_INT128.
12137         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
12138         if target supports 128-bit integer scalar.
12139         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
12140         (finish_declspecs): Likewise.
12141         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
12142         (c_token_starts_declspecs): Likewise.
12143         (c_parser_declspecs): Likewise.
12144         (c_parser_attributes): Likewise.
12145         (c_parser_objc_selector): Likewise.
12146         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
12147         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
12148         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
12149         * tree.c (make_or_reuse_type): Likewise.
12150         (make_unsigned_type): Likewise.
12151         (build_common_tree_nodes_2): Likewise.
12152         * tree.h (enum integer_type_kind): Add itk_int128 and
12153         itk_unsigned_int128.
12154         (int128_integer_type_node): New define.
12155         (int128_unsigned_type_node): New define.
12156         * doc/extend.texi: Add documentation about __int128 type.
12157
12158 2010-05-26  Richard Guenther  <rguenther@suse.de>
12159
12160         * tree-ssa-sccvn.c (copy_nary): Adjust.
12161         (copy_phis): Rename to ...
12162         (copy_phi): ... this.  Adjust.
12163         (copy_references): Rename to ...
12164         (copy_reference): ... this.  Adjust.
12165         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
12166         result into the valid table.
12167
12168 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12169
12170         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
12171         insn-config.h, insn-codes.h, recog.h, and optabs.h.
12172
12173 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12174
12175         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
12176
12177 2010-05-26  Richard Guenther  <rguenther@suse.de>
12178
12179         * opts.c (common_handle_option): Handle OPT_Ofast.
12180
12181 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
12182
12183         * diagnostic.c: Don't include opts.h.
12184         (permissive_error_option): Define.
12185         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
12186         for classify_diagnostic.  Don't use memset for
12187         classify_diagnostic.  Initialize new and recently added fields.
12188         (diagnostic_classify_diagnostic): Use context->n_opts instead of
12189         N_OPTS.
12190         (diagnostic_report_diagnostic): Pass context parameter to
12191         diagnostic_report_warnings_p.  Use option_enabled and option_name
12192         hooks from context.
12193         (emit_diagnostic): Use permissive_error_option.
12194         (permerror): Likewise.
12195         * diagnostic.h: Don't include options.h.
12196         (struct diagnostic_context): Add n_opts, opt_permissive,
12197         inhibit_warnings, warn_system_headers, option_enabled and
12198         option_name fields.  Change classify_diagnostic to a pointer.
12199         * opts-diagnostic.h: New file.
12200         * opts.c: Include opts-diagnostic.h.
12201         (common_handle_option): Set global_dc fields for -Wfatal-errors,
12202         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
12203         (option_name): New function.
12204         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
12205         (c_common_handle_option): Set global_dc->permissive for
12206         -fpermissive.
12207         * c-common.c (c_cpp_error): Save and restore
12208         global_dc->warn_system_headers, not variable warn_system_headers.
12209         * toplev.c: Include opts-diagnostic.h.
12210         (general_init): Update call to diagnostic_initialize.  Set
12211         global_dc->show_column, global_dc->option_enabled and
12212         global_dc->option_name.
12213         (process_options): Don't set global_dc fields here.
12214         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
12215         (diagnostic.o, opts.o, toplev.o): Update dependencies.
12216
12217 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
12218
12219         * config/picochip/picochip.md (movsi): Split a movsi from a
12220         const after reload.
12221
12222 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12223
12224         * ggc-zone.c: Update copyright year.
12225         (poison_region): Mark memory for Valgrind as undefined before
12226         memset () call and inaccessible afterwards.
12227         (ggc_pch_total_size): Change type of i to int.
12228
12229 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12230
12231         * ggc-common.c (ggc_free_overhead): Allow empty slot.
12232
12233 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12234
12235         * ggc-common.c: Update copyright year.
12236         (ggc_rlimit_bound): Remove prototype.  Compile only if
12237         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
12238         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
12239         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
12240         (ggc_min_heapsize_heuristic): Likewise.
12241
12242 2010-05-26  Richard Guenther  <rguenther@suse.de>
12243
12244         PR rtl-optimization/44164
12245         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
12246         no-common access-path disambiguation.
12247         (indirect_ref_may_alias_decl_p): Adjust.
12248         (indirect_refs_may_alias_p): Likewise.
12249         (refs_may_alias_p_1): Likewise.
12250
12251 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12252
12253         * c-typeck.c: Do not include expr.h.
12254
12255 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12256
12257         * rtl.h (decl_default_tls_model): Move prototype from here...
12258         * output.h: ...to here.
12259         * c-decl.c: Do not include rtl.h.
12260         * c-pragma.c: Likewise.
12261         * c-parser.c: Likewise.
12262         * c-gimplify.c: Likewise.  And also not hard-reg-set.
12263         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
12264         FIXME note for it.  Add a FIXME note for expr.h.
12265         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
12266         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
12267         defined.
12268
12269 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
12270
12271         PR target/44199
12272         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
12273         or total_size is larger than red zone size for non-V4 ABI, emit a
12274         stack_tie resp. frame_tie insn before stack pointer restore.
12275         * config/rs6000/rs6000.md (frame_tie): New insn.
12276
12277 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
12278
12279         * function.h (struct function): Add can_throw_non_call_exceptions bit.
12280         * lto-streamer-in.c (input_function): Stream it in.
12281         * lto-streamer-out.c (output_function): Stream it out.
12282         * function.c (allocate_struct_function): Set it.
12283         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
12284         for flag_non_call_exceptions.
12285         * cfgbuild.c (control_flow_insn_p): Likewise.
12286         (make_edges): Likewise.
12287         * cfgexpand.c (expand_stack_alignment): Likewise.
12288         * combine.c (distribute_notes): Likewise.
12289         * cse.c (cse_extended_basic_block): Likewise.
12290         * except.c (insn_could_throw_p): Likewise.
12291         * gcse.c (simple_mem): Likewise.
12292         * ipa-pure-const.c (check_call): Likewise.
12293         (check_stmt ): Likewise.
12294         * lower-subreg.c (lower-subreg.c): Likewise.
12295         * optabs.c (emit_libcall_block): Likewise.
12296         (prepare_cmp_insn): Likewise.
12297         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
12298         * postreload.c (rest_of_handle_postreload): Likewise.
12299         * reload1.c (reload_as_needed): Likewise.
12300         (emit_input_reload_insns): Likewise.
12301         (emit_output_reload_insns): Likewise.
12302         (fixup_abnormal_edges): Likewise.
12303         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
12304         * store-motion.c (find_moveable_store): Likewise.
12305         * tree-eh.c (stmt_could_throw_p): Likewise.
12306         (tree_could_throw_p): Likewise.
12307         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
12308         * config/arm/arm.c (arm_expand_prologue): Likewise.
12309         (thumb1_expand_prologue): Likewise.
12310         * config/rx/rx.md (cbranchsf4): Likewise.
12311         (cmpsf): Likewise.
12312         * config/s390/s390.c (s390_emit_prologue): Likewise.
12313         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
12314         (inline_forbidden_into_p): New predicate.
12315         (expand_call_inline): Use it to forbid inlining.
12316         (tree_can_inline_p): Likewise.
12317
12318 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
12319
12320         * config/i386/i386-c.c: Do not include rtl.h.
12321         * config/i386/t-i386: Update dependencies.
12322
12323 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
12324
12325         * attribs.c: Do not include rtl.h.
12326         * Makefile.in: Update dependencies.
12327
12328 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
12329
12330         * double-int.h (double_int_and): New.
12331         * combine.c (try_combine): Clean up, use double_int_* and
12332         immed_double_int_const functions.
12333
12334 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12335
12336         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
12337         stderr to /dev/null instead of grep -q.
12338         * configure: Regenerate.
12339
12340 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
12341
12342         * Makefile.in (EXCEPT_H): Fix typo.
12343
12344 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
12345
12346         * ira-build.c (update_conflict_hard_reg_costs): New.
12347         (ira_build): Call update_conflict_hard_reg_costs.
12348
12349 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
12350
12351         PR debug/41371
12352         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
12353         ENABLE_CHECKING.
12354         (intersect_loc_chains): Walk the s2var's loc_chain together
12355         with s1node chain as long as the locations are equal, don't
12356         call find_loc_in_1pdv in that case.
12357
12358         PR debug/42801
12359         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
12360         (copy_bind_expr): ... instead of here.
12361         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
12362         if the block hasn't been remapped.
12363         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
12364         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
12365
12366 2010-05-25  Richard Guenther  <rguenther@suse.de>
12367
12368         PR middle-end/44069
12369         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
12370         out-of-bounds array accesses.
12371
12372 2010-05-25  Richard Guenther  <rguenther@suse.de>
12373
12374         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
12375         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
12376         (run_gcc): Re-organize to make cleanup easier.
12377
12378 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12379
12380         * config/s390/s390.c (optimization_options): Fix and move the
12381         flag_prefetch_loop_arrays override ...
12382         (override_options): ... here.
12383
12384 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
12385
12386         * diagnostic.c: Don't include plugin.h.
12387         (diagnostic_report_diagnostic): Don't handle plugins specially
12388         here.  Pass context to internal_error callback.
12389         * diagnostic.h (struct diagnostic_context): Add context parameter
12390         to internal_error callback.
12391         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
12392         * plugin.h (struct diagnostic_context): Declare.
12393         (warn_if_plugins, plugins_internal_error_function): Declare.
12394         * toplev.c (general_init): Set global_dc->internal_error.
12395         * Makefile.in (diagnostic.o): Update dependencies.
12396
12397 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
12398
12399         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
12400         * config/rs6000/t-darwin64: New.
12401         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
12402         build crt2.
12403
12404 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
12405
12406         PR 44203
12407         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
12408         match the original (and intended) behaviour before r159557.  This
12409         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
12410         in two ways.
12411
12412 2010-05-25  Richard Guenther  <rguenther@suse.de>
12413
12414         * doc/invoke.texi: Document -Ofast.
12415         * target.h (struct gcc_target): Add handle_ofast.
12416         * target-def.h (TARGET_HANDLE_OFAST): Add.
12417         (TARGET_INITIALIZER): Adjust.
12418         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
12419         * common.opt (Ofast): Add.
12420
12421 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
12422
12423         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
12424         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
12425
12426 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
12427
12428         PR target/43610
12429         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
12430         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
12431         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
12432         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
12433
12434 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
12435
12436         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
12437         DW_OP_minus with negated offset instead of DW_OP_plus.
12438         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
12439
12440 2010-05-25  Wei Guozhi  <carrot@google.com>
12441
12442         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
12443         tst instruction and a new alternative.
12444         * config/arm/constraints.md (Pu): New constraint.
12445
12446 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
12447
12448         * function.c (assign_stack_local_1): Initialize variable
12449         to avoid warning when bootstrapping at -O3.
12450
12451 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
12452
12453         * configure.ac (all_lang_makefiles): Remove everything related to it.
12454         * configure: Regenerate.
12455         * Makefile.in: Fix reference to ada Make-lang.in.
12456         Remove support for LANG_MAKEFILES.
12457
12458 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
12459             Sandra Loosemore  <sandra@codesourcery.com>
12460
12461         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
12462         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
12463         description.  Add arm_neon_fp16_ok.
12464         (Add Options): Add arm_neon and arm_neon_fp16.
12465
12466 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
12467
12468         * diagnostic.c: Don't include flags.h.
12469         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
12470         context parameters.  Check flags in the context passed as a parameter.
12471         (diagnostic_build_prefix): Add context parameter.  Check
12472         show_column flag in context.
12473         (diagnostic_action_after_output): Check fatal_errors flag in context.
12474         (diagnostic_report_current_module): Check show_column flag in context.
12475         (default_diagnostic_starter): Update call to
12476         diagnostic_build_prefix.
12477         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
12478         (emit_diagnostic): Pass context to permissive_error_kind.
12479         (permerror): Pass context to permissive_error_kind.
12480         * diagnostic.h (struct diagnostic_context): Add show_column,
12481         pedantic_errors, permissive and fatal_errors fields.
12482         (diagnostic_build_prefix): Update prototype.
12483         * langhooks.c
12484         * toplev.c (process_options): Set flags in global_dc from
12485         flag_show_column, flag_pedantic_errors, flag_permissive,
12486         flag_fatal_errors.
12487         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
12488         to diagnostic_build_prefix.
12489         * Makefile.in (diagnostic.o): Update dependencies.
12490
12491 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
12492
12493         * config/i386/ia32intrin.h (__crc32q): Define only if
12494         __SSE4_2__ is defined.
12495
12496 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
12497
12498         PR target/44132
12499         PR middle-end/43602
12500         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
12501         DECL_VISIBILITY_SPECIFIED.
12502         (emutls_decl): Set DECL_PRESERVE_P and copy
12503         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
12504         (emutls_finalize_control_var): New callback.
12505         (emutls_finish): Finalize emutls control variables.
12506         * toplev.c (compile_file): Move the call to emutls_finish ()
12507         before varpool_assemble_pending_decls ().
12508
12509 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
12510
12511         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
12512         added to the preprocessor condition.
12513
12514 2010-05-24  Paul Brook  <paul@codesourcery.com>
12515
12516         * gengtype-lex.l: Add HARD_REG_SET.
12517         * expr.c (expand_expr_real_1): Record writes to hard registers.
12518         * function.c (rtl_data): Add asm_clobbers.
12519         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
12520         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
12521         Use crtl->asm_clobbers.
12522
12523 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12524
12525         * doc/makefile.texi (Makefile): Mention stages 'profile'
12526         and 'feedback' for profiledbootstrap.
12527
12528 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
12529
12530         PR target/44245
12531         * config/i386/i386.c (def_builtin): Properly check
12532         OPTION_MASK_ISA_64BIT.
12533
12534 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
12535
12536         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
12537         typedefs with different but compatible types.  Allow duplicate
12538         typedefs with the same type except for pedantic non-C1X, but give
12539         warning for variably modified types.
12540         * c-typeck.c (tagged_types_tu_compatible_p,
12541         function_types_compatible_p, type_lists_compatible_p,
12542         comptypes_internal): Add parameter different_types_p; set
12543         *different_types_p for different but compatible types.  All
12544         callers changed.
12545         (comptypes_check_different_types): New.
12546         * c-tree.h (comptypes_check_different_types): Declare.
12547
12548 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
12549
12550         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
12551         * jump.c: Include basic-block.h.
12552         * profile.c: Likewise.
12553         * tree-profile.c: Likewise.
12554         * coverage.c: Likewise.
12555         * basic-block.h (optimize_function_for_size_p): Move to function.h.
12556         (optimize_function_for_speed_p): Likewise.
12557         * function.h (optimize_function_for_size_p,
12558         optimize_function_for_speed_p): Moved here from basic-block.h.
12559         * Makefile.in: Update dependencies.
12560
12561 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12562
12563         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
12564         before calling make; allow override through $MAKE.
12565         * doc/invoke.texi (Optimize Options): Document override.
12566
12567 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
12568
12569         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
12570         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12571         (rs6000_mode_dependent_address_ptr): Make static.
12572         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12573         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
12574         Remove.
12575
12576 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
12577
12578         PR target/43869
12579         * config/i386/i386.c: Make sure that the correct regparm is passed.
12580
12581 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
12582
12583         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
12584         * sbitmap.c: ...to here to internalize sbitmap element access.
12585         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
12586         Explain why basic-block.h is included.
12587         * function.h: Include tm.h for CUMULATIVE_ARGS.
12588         * Makefile.in: Update dependencies.
12589
12590 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
12591
12592         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
12593         New core types.
12594         * sbitmap.h (struct sbitmap_def): Do not typedef here.
12595         * sbitmap.c: Include sbitmap.h.
12596         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
12597         hard-reg-set.h.  Split everything related to regsets out from here...
12598         * regset.h: ...to here.  New file.
12599         * df.h: Include regset.h and sbitmap.h.
12600         * tree-flow.h: Likewise.
12601         * cfgloop.h: Likewise.
12602         * except.h: Do not include sbitmap.h.  Include hashtab.h.
12603         * cgraph.h: Include vec.h and function.h.
12604         * reload.h (struct insn_chain): Change types of live_throughout
12605         and dead_or_set from regset_head to bitmap_head.
12606         (compute_use_by_pseudos): Be defined also if regset.h is not included.
12607         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
12608         spilled_regs from regset_head to bitmap_head to avoid dependency
12609         in regset.h.
12610         * sel-sched-ir.h: Include regset.h.
12611         * reload.c: Include df.h before reload.h.
12612         * caller-save.c: Likewise.
12613         * reload1.c: Likewise.
12614         * ira.c: Likewise.
12615         (mark_elimination): Update type of r to bitmap, consistent with
12616         DF_LR_IN.
12617         * dominance.c: Include bitmap.h.
12618         * modulo-sched.c: Include df.h.
12619         * cfganal.c: Include bitmap.h and sbitmap.h.
12620         * cfgbuild.c: Include sbitmap.h.
12621         * lcm.c: Include sbitmap.h.
12622         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
12623         * domwalk.c: Include sbitmap.h, exclude ggc.h.
12624         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
12625         * cselib.c: Include bitmap.h.
12626         * tree-optimize.c: Include regset.h.
12627         * stmt.c: Include bitmap.h.
12628         * Makefile.in: Update dependencies.
12629
12630 2010-05-22  Jan Hubicka  <jh@suse.cz>
12631
12632         * cgraph.h (struct varpool_node): Add same_comdat_group.
12633         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
12634         pointer.
12635         (output_varpool): Update call of lto_output_varpool_node.
12636         (input_varpool): Read same_comdat_group pointer.
12637         (input_varpool_1): Fixup same_comdat_group pointer.
12638         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
12639         group is needed, all are.
12640         * varpool.c (varpool_remove_node): Remove node from same comdat group
12641         linklist too.
12642         (varpool_analyze_pending_decls): Walk same comdat groups.
12643
12644 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
12645
12646         * rtl.h (union rtunion_def): Remove rt_bit member.
12647         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
12648         * print-rtl (print_rtx): Do not print the member.
12649         * gengtype.c (adjust_field_rtx_def): Do not handle it.
12650         * gengenrtl.c (type_from_format): Likewise.
12651         (accessor_from_format): Likewise.
12652
12653 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
12654
12655         * dbgcnt.c: Include toplev.h instead of errors.h.
12656         * ira-emit.c: Don't include errors.h.
12657         * ira.c: Include toplev.h instead of errors.h.
12658         * lto-compress.c: Include toplev.h instead of errors.h.
12659         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
12660         ira.o, dbgcnt.o): Update dependencies.
12661
12662 2010-05-22  Richard Guenther  <rguenther@suse.de>
12663
12664         * gimple.c (gimple_types_compatible_p): Check type qualifications
12665         before merging pointer to complete and pointer to incomplete type.
12666         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
12667         we use our own resolution algorithm.  The gold linker plugin
12668         doesn't do the job we want it to do here.
12669
12670 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
12671
12672         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12673         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12674         (sparc_mode_dependent_address_p): New function.
12675
12676 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
12677
12678         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
12679
12680         * timevar.c: Do not include any core headers.
12681         (timevar_print): De-i18n-ize.
12682         (print_time): Likewise.
12683         * timevar.h (timevar_push, timevar_pop): Make inline functions.
12684
12685 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
12686
12687         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
12688         langhooks-def.h.
12689         (diagnostic_initialize): Initialize x_data not last_function.
12690         (diagnostic_report_current_function): Move to tree-diagnostic.c.
12691         (default_diagnostic_starter): Call
12692         diagnostic_report_current_module not
12693         diagnostic_report_current_function.
12694         (diagnostic_report_diagnostic): Initialize x_data not
12695         abstract_origin.
12696         (verbatim): Likewise.
12697         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
12698         x_data.
12699         (struct diagnostic_context): Change last_function to x_data.
12700         (diagnostic_auxiliary_data): Replace with
12701         diagnostic_context_auxiliary_data and
12702         diagnostic_info_auxiliary_data.
12703         (diagnostic_last_function_changed, diagnostic_set_last_function,
12704         diagnostic_report_current_function): Move to tree-diagnostic.h.
12705         (print_declaration, dump_generic_node, print_generic_stmt,
12706         print_generic_stmt_indented, print_generic_expr,
12707         print_generic_decl, debug_c_tree, dump_omp_clauses,
12708         print_call_name, debug_generic_expr, debug_generic_stmt,
12709         debug_tree_chain, default_tree_printer): Move to
12710         tree-pretty-print.h.
12711         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
12712         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
12713         gimple-pretty-print.h.
12714         * pretty-print.c: Don't include tree.h
12715         (pp_base_format): Don't handle %K here.
12716         (pp_base_tree_identifier): Move to tree-pretty-print.c.
12717         * pretty-print.h (text_info): Change abstract_origin to x_data.
12718         (pp_tree_identifier, pp_unsupported_tree,
12719         pp_base_tree_identifier): Move to tree-pretty-print.h.
12720         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
12721         tree-pretty-print.h: New files.
12722         * tree-pretty-print.c: Include tree-pretty-print.h.
12723         (percent_K_format): New.  Moved from pretty-print.c.
12724         (pp_base_tree_identifier): Move from pretty-print.c.
12725         * c-objc-common.c: Include tree-pretty-print.h.
12726         (c_tree_printer): Handle %K here.
12727         * langhooks.c: Include tree-diagnostic.h.
12728         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
12729         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
12730         (default_tree_printer): Handle %K using percent_K_format.
12731         (general_init): Use default_tree_diagnostic_starter.
12732         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
12733         (free_lang_data): Use default_tree_diagnostic_starter.
12734         * c-pretty-print.c: Include tree-pretty-print.h.
12735         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12736         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12737         * dwarf2out.c: Include tree-pretty-print.h.
12738         * except.c: Include tree-pretty-print.h.
12739         * gimple-pretty-print.c: Include tree-pretty-print.h and
12740         gimple-pretty-print.h.
12741         * gimplify.c: Include tree-pretty-print.h.
12742         * graphite-poly.c: Include tree-pretty-print.h and
12743         gimple-pretty-print.h.
12744         * ipa-cp.c: Include tree-pretty-print.h.
12745         * ipa-inline.c: Include gimple-pretty-print.h.
12746         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12747         * ipa-pure-const.c: Include gimple-pretty-print.h.
12748         * ipa-struct-reorg.c: Include tree-pretty-print.h and
12749         gimple-pretty-print.h.
12750         * ipa-type-escape.c: Include tree-pretty-print.h.
12751         * print-rtl.c: Include tree-pretty-print.h.
12752         * print-tree.c: Include gimple-pretty-print.h.
12753         * sese.c: Include tree-pretty-print.h.
12754         * tree-affine.c: Include tree-pretty-print.h.
12755         * tree-browser.c: Include tree-pretty-print.h.
12756         * tree-call-cdce.c: Include gimple-pretty-print.h.
12757         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12758         * tree-chrec.c: Include tree-pretty-print.h.
12759         * tree-data-ref.c: Include tree-pretty-print.h and
12760         gimple-pretty-print.h.
12761         * tree-dfa.c: Include tree-pretty-print.h.
12762         * tree-if-conv.c: Include tree-pretty-print.h and
12763         gimple-pretty-print.h.
12764         * tree-inline.c: Include tree-pretty-print.h.
12765         * tree-into-ssa.c: Include tree-pretty-print.h and
12766         gimple-pretty-print.h.
12767         * tree-nrv.c: Include tree-pretty-print.h.
12768         * tree-object-size.c: Include tree-pretty-print.h and
12769         gimple-pretty-print.h.
12770         * tree-outof-ssa.c: Include tree-pretty-print.h and
12771         gimple-pretty-print.h.
12772         * tree-parloops.c: Include tree-pretty-print.h and
12773         gimple-pretty-print.h.
12774         * tree-predcom.c: Include tree-pretty-print.h and
12775         gimple-pretty-print.h.
12776         * tree-scalar-evolution.c: Include tree-pretty-print.h and
12777         gimple-pretty-print.h.
12778         * tree-sra.c: Include tree-pretty-print.h.
12779         * tree-ssa-address.c: Include tree-pretty-print.h.
12780         * tree-ssa-alias.c: Include tree-pretty-print.h.
12781         * tree-ssa-ccp.c: Include tree-pretty-print.h and
12782         gimple-pretty-print.h.
12783         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
12784         * tree-ssa-copy.c: Include tree-pretty-print.h and
12785         gimple-pretty-print.h.
12786         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
12787         * tree-ssa-dce.c: Include tree-pretty-print.h and
12788         gimple-pretty-print.h.
12789         * tree-ssa-dom.c: Include tree-pretty-print.h and
12790         gimple-pretty-print.h.
12791         * tree-ssa-dse.c: Include gimple-pretty-print.h.
12792         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
12793         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
12794         * tree-ssa-live.c: Include tree-pretty-print.h and
12795         gimple-pretty-print.h.
12796         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
12797         gimple-pretty-print.h.
12798         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
12799         gimple-pretty-print.h.
12800         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
12801         gimple-pretty-print.h.
12802         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
12803         gimple-pretty-print.h.
12804         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
12805         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
12806         * tree-ssa-operands.c: Include tree-pretty-print.h and
12807         gimple-pretty-print.h.
12808         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
12809         gimple-pretty-print.h.
12810         * tree-ssa-pre.c: Include tree-pretty-print.h and
12811         gimple-pretty-print.h.
12812         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
12813         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
12814         gimple-pretty-print.h.
12815         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
12816         gimple-pretty-print.h.
12817         * tree-ssa-sink.c: Include gimple-pretty-print.h.
12818         * tree-ssa-ter.c: Include tree-pretty-print.h and
12819         gimple-pretty-print.h.
12820         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
12821         * tree-ssa.c: Include tree-pretty-print.h and
12822         gimple-pretty-print.h.
12823         * tree-stdarg.c: Include gimple-pretty-print.h.
12824         * tree-switch-conversion.c: Include gimple-pretty-print.h.
12825         * tree-tailcall.c: Include tree-pretty-print.h and
12826         gimple-pretty-print.h.
12827         * tree-vect-data-refs.c: Include tree-pretty-print.h and
12828         gimple-pretty-print.h.
12829         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
12830         gimple-pretty-print.h.
12831         * tree-vect-loop.c: Include tree-pretty-print.h and
12832         gimple-pretty-print.h.
12833         * tree-vect-patterns.c: Include gimple-pretty-print.h.
12834         * tree-vect-slp.c: Include tree-pretty-print.h and
12835         gimple-pretty-print.h.
12836         * tree-vect-stmts.c: Include tree-pretty-print.h and
12837         gimple-pretty-print.h.
12838         * tree-vectorizer.c: Include tree-pretty-print.h.
12839         * tree-vrp.c: Include tree-pretty-print.h and
12840         gimple-pretty-print.h.
12841         * value-prof.c: Include tree-pretty-print.h and
12842         gimple-pretty-print.h.
12843         * var-tracking.c: Include tree-pretty-print.h.
12844         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
12845         (tree-diagnostic.o): New dependencies.
12846         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
12847         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
12848         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
12849         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
12850         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
12851         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
12852         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
12853         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
12854         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
12855         tree-ssa-address.o, tree-ssa-loop-niter.o,
12856         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
12857         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
12858         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
12859         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
12860         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
12861         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
12862         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
12863         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
12864         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
12865         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
12866         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
12867         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
12868         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
12869         tree-switch-conversion.o, var-tracking.o, value-prof.o,
12870         cfgexpand.o, pretty-print.o): Update dependencies.
12871
12872 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
12873
12874         * tree-ssa-structalias.c: Remove tm_p.h from include.
12875
12876 2010-05-21  Jeff Law  <law@redhat.com>
12877
12878         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
12879
12880 2010-05-21  Jason Merrill  <jason@redhat.com>
12881
12882         * tree-eh.c (cleanup_is_dead_in): New.
12883         (lower_try_finally): Don't generate a dead cleanup region.
12884         (lower_cleanup): Likewise.
12885
12886 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
12887
12888         PR debug/44223
12889         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
12890         unchain each use from the cyclic next_regno_use chain first.
12891
12892 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
12893
12894         * real: Do not include gmp.h, mpfr.h, and mpc.h.
12895         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
12896         (real_value_negate, real_value_abs): New prototypes.
12897         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
12898         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
12899         new include file for interface between MPFR and REAL_VALUE_TYPE.
12900         * real.c: Include realmpfr.h.
12901         (real_arithmetic2): Remove legacy function.
12902         (real_value_negate): New.
12903         (real_value_abs): New.
12904         (mfpr_from_real, real_from_mpfr): Move from here...
12905         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
12906         * builtins.c: Include realmpfr.h.
12907         * fold-const.c: Include realmpfr.h.
12908         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
12909         (fold_negate_const): Likewise.
12910         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
12911         * toplev.c: Include realmpfr.h.
12912         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
12913         and real_value_negate.
12914         * fixed-value.c (check_real_for_fixed_mode): Likewise.
12915         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
12916         (vfp3_const_double_index): Likewise.
12917         (arm_print_operand): Likewise.
12918         * Makefile.in: Update dependencies.
12919
12920 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12921
12922         * config/s390/s390.c (override_options): Increase the default
12923         of max-completely-peel-times.
12924
12925 2010-05-21  Julian Brown  <julian@codesourcery.com>
12926             Mark Mitchell  <mark@codesourcery.com>
12927
12928         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
12929         sibling calls for Thumb-1.
12930         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
12931         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
12932         Thumb-2.
12933         (*call_insn, *call_value_insn): Don't use for Thumb-2.
12934         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
12935         for Thumb-2.
12936         (return): New expander.
12937         (*arm_return): New name for ARM return insn.
12938         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
12939
12940 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
12941
12942         * config.gcc (sparc64-*-rtems*): New target.
12943
12944 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
12945
12946         * tree.c (build_function_decl_skip_args): Fix grammar.
12947         (build_function_type_list_1): Fix typos, adjust formatting.
12948
12949 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
12950
12951         * tree.h: Include real.h and fixed-value.h as basic datatypes.
12952         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
12953         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
12954         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
12955         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
12956         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
12957         tree-pretty-print.c, tree-loop-distribution.c,
12958         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
12959         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
12960         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
12961         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
12962         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
12963         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
12964         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
12965         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
12966         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
12967         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
12968         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
12969         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
12970         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
12971         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
12972         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
12973         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
12974         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
12975         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
12976         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
12977         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
12978         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
12979         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
12980         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
12981         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
12982         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
12983         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
12984         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
12985         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
12986         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
12987         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
12988         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
12989         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
12990         config/score/score7.c, config/score/score.c, config/arm/arm.c,
12991         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
12992         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
12993         config/bfin/bfin.c: Clean up redundant includes.
12994         * Makefile.in: Update accordingly.
12995
12996 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
12997
12998         PR middle-end/44204
12999         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
13000         statement has no arguments.
13001
13002 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
13003
13004         PR/44139
13005         * varasm.c (emutls_decl): Merge attributes to new decl.
13006
13007 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
13008
13009         PR middle-end/44101
13010         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
13011         around the uniquized constructor if its type requires a conversion.
13012
13013 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
13014
13015         PR debug/44205
13016         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
13017         at -O0 goto_locus of any of the incoming edges differs from
13018         goto_locus of outgoing edge, or gimple_location of any of the
13019         labels differs.
13020
13021 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
13022
13023         * ira.c (ira_non_ordered_class_hard_regs): Define.
13024         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
13025         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
13026         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
13027         cost of unaligned hard regs when allocating multi-reg pseudos.
13028
13029 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
13030
13031         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
13032         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
13033         for TARGET_NO_FLOAT.
13034         * config/mips/mips.c (mips_file_start): Expand conditional expression
13035         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
13036         (mips_override_options): Move -mno-float override -msoft-float and
13037         -mhard-float.
13038         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
13039         Condition(TARGET_SUPPORTS_NO_FLOAT).
13040         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
13041         __mips_no_float here.
13042         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
13043         (TARGET_SUPPORTS_NO_FLOAT): Define.
13044         * config/mips/sdemtk.opt: Delete.
13045
13046 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
13047
13048         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
13049
13050 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
13051
13052         PR target/43733
13053         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
13054         * configure: Regenerate.
13055         * config.in: Regenerate.
13056         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
13057         instead of sahf only for 64bit targets.
13058
13059 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
13060
13061         PR debug/44178
13062         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
13063         setup_ref_regs for DEBUG_INSNs.
13064
13065 2010-05-20  Jan Hubicka  <jh@suse.cz>
13066
13067         PR middle-end/44197
13068         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
13069
13070 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
13071
13072         PR bootstrap/43870
13073         * df-scan.c (df_ref_compare): Stabilize sort.
13074
13075 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
13076
13077         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
13078         argument.  Don't use DW_OP_piece if offset is non-zero,
13079         put offset into second DW_OP_bit_piece argument.
13080         (dw_sra_loc_expr): Adjust callers.  For memory expressions
13081         compute offset.
13082
13083 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
13084
13085         PR target/44202
13086         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
13087         settings for 16-bit-constant "addo" alternative.
13088
13089 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
13090
13091         * config/mips/mips-dsp.md (add<DSPV:mode>3,
13092         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
13093
13094         PR target/43764
13095         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
13096         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
13097         Use it.
13098
13099 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
13100
13101         * diagnostic.c (FLOAT, FFS): Don't undefine.
13102         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
13103         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
13104         include ordering.
13105
13106 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
13107
13108         * combine.c (propagate_for_debug): Call make_compound_operation
13109         on the source value.
13110         (try_combine): When implementing a split chosen by find_split_point,
13111         either copy i2src or set it to null.  Assert that i2src is not null
13112         before substituting into CALL_INSN_FUNCTION_USAGE.
13113
13114 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
13115
13116         * double-int.h (double_int_ior): New function.
13117         * tree.h (build_int_cst_wide_type): Remove.
13118         * tree.c (build_int_cst_wide_type): Remove.
13119         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
13120         of build_int_cst_wide_type.
13121         * stor-layout.c (set_sizetype): (Ditto.).
13122         * dojump.c (do_jump): Use build_int_cstu instead of
13123         build_int_cst_wide_type.
13124
13125 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
13126
13127         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
13128         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
13129         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
13130         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
13131         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
13132         propagate the 'data' argument to copy_tree_r.
13133         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
13134         Propagate 'data' argument to walk_tree.
13135         (copy_if_shared): New function.
13136         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
13137         (unmark_visited): New function.
13138         (unshare_body): Call copy_if_shared instead of doing it manually.
13139         (unvisit_body): Call unmark_visited instead of doing it manually.
13140
13141 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
13142
13143         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
13144         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
13145         * hooks.c: Likewise.
13146         * target-def.h (TARGET_FOLD_BUILTIN): Define to
13147         hook_tree_tree_int_treep_bool_null.
13148         * target.h (struct gcc_target): Update signature of fold_builtin
13149         field.
13150         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
13151         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
13152         instead of the call expression.
13153         (fold_builtin_call_array): Pass n and argarray directly.
13154         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
13155         consing a list.
13156         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
13157         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
13158         `i' and use it in place of `arity'.
13159         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
13160         Dereference `args' directly.
13161         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
13162
13163 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13164
13165         * doc/sourcebuild.texi (Effective-Target Keywords): Document
13166         3dnow, sse3, sse2.
13167         (Directives): Document optional dg-require-effective-target
13168         selector.
13169
13170 2010-05-19  Richard Guenther  <rguenther@suse.de>
13171
13172         PR lto/44196
13173         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
13174
13175 2010-05-19  Richard Guenther  <rguenther@suse.de>
13176
13177         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
13178         * common.opt (fwhopr=): New.
13179         * opts.c (common_handle_option): Handle OPT_fwhopr.
13180         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
13181         * collect2.c (main): Match -fwhopr*.
13182         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
13183         Execute ltrans stage in parallel when jobs is bigger than 1.
13184
13185 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13186
13187         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
13188         pentiumpro on Solaris 8/x86 with Sun as.
13189         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
13190         hidden alias bug.
13191         (gcc_cv_as_ix86_quad): Check for .quad directive.
13192         * configure: Regenerate.
13193         * config.in: Regenerate.
13194         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
13195
13196 2010-05-19  Martin Jambor  <mjambor@suse.cz>
13197
13198         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
13199         also for indirect edges.  Actual printing moved...
13200         (ipa_print_node_jump_functions_for_edge): ...here.
13201         (ipa_compute_jump_functions): Renamed to
13202         ipa_compute_jump_functions_for_edge and made static.
13203         (ipa_compute_jump_functions): New function.
13204         (make_edge_direct_to_target): Check if the number of arguments on
13205         the newly direct edge is the same as the number of parametrs of
13206         the callee.
13207         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
13208         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
13209         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
13210         analysis functions unconditionally, call the new
13211         ipa_analyze_params_uses on the node instead of every edge.
13212
13213 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
13214
13215         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
13216         to tree.
13217         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
13218         also checks for a constant int vs.  non-constant but
13219         loop-invariant steps.
13220         (find_or_create_group): Change the sort algorithm to only consider
13221         steps that are constant ints.
13222         (idx_analyze_ref): Adopt code to handle a tree instead of a
13223         HOST_WIDE_INT for step.
13224         (gather_memory_references_ref): Handle tree instead of int and be
13225         prepared to see a NULL_TREE.
13226         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
13227         prefetches if the step cannot be calculated at compile time.
13228         (issue_prefetch_ref): Issue prefetches for non-constant but
13229         loop-invariant steps.
13230
13231 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
13232
13233         Revert:
13234         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
13235
13236         * tree.h (build_call_list): Remove.
13237         * tree.c (build_call_list): Remove.
13238
13239 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
13240
13241         * tree.h (build_call_list): Remove.
13242         * tree.c (build_call_list): Remove.
13243
13244 2010-05-18  Jan Hubicka  <jh@suse.cz>
13245
13246         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
13247
13248 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
13249
13250         PR rtl-optimization/43332
13251         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
13252
13253 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
13254
13255         * tree.h (build_int_cstu): Implement as static inline.
13256         * tree.c (build_int_cstu): Remove function.
13257         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
13258         sign extended.
13259
13260 2010-05-18  Richard Guenther  <rguenther@suse.de>
13261
13262         PR lto/44143
13263         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
13264         (debug): Initialize from -save-temps.
13265         (collect_execute): Print command-line when verbose.
13266         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
13267         for ltrans invocation.  Produce -dumpbase flag again.
13268         (process_args): Remove.
13269         (main): Simplify.
13270         * collect2.c (maybe_run_lto_and_relink): Only pass object
13271         files to lto-wrapper.
13272         * gcc.c (LINK_COMMAND_SPEC): Likewise.
13273
13274 2010-05-18  Jan Hubicka  <jh@suse.cz>
13275
13276         * opts.c (decode_options): Do not disable whopr at ipa_cp.
13277         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
13278
13279 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
13280
13281         PR lto/44184
13282         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
13283         in a GIMPLE_ASM.
13284         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
13285         in a GIMPLE_ASM.
13286
13287 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
13288
13289         PR debug/41371
13290         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
13291         rtx_equal_p inline.
13292
13293 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
13294
13295         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
13296         lto-macho as lto_binary_reader.
13297
13298         * darwin.c (darwin_asm_named_section): Do not add assembler comment
13299         after .section directive; just print it before the directive instead.
13300
13301 2010-05-17  Jan Hubicka  <jh@suse.cz>
13302
13303         * cgraph.c (cgraph_create_virtual_clone): Only check
13304         versionable_function_p when not in wpa and checking is enabled.
13305         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
13306         there are no more functions to materialize.
13307
13308 2010-05-17  Jan Hubicka  <jh@suse.cz>
13309
13310         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
13311         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
13312         New functions.
13313         (output_cgraph): Call output_cgraph_opt_summary.
13314         (input_cgrpah): Call input_cgraph_opt_summary.
13315         (output_cgraph_opt_summary_p, output_node_opt_summary,
13316         input_node_opt_summary, input_cgraph_opt_section): New functions.
13317         * lto-section-in.c (lto_section_name): Add cgraphopt.
13318         * tree-inline.c (tree_function_versioning): Handle parm_num.
13319         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
13320         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
13321
13322 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
13323
13324         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
13325         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
13326         the insn to prefetch ratio heuristic to loops with known trip count.
13327
13328 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
13329
13330         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
13331         (schedule_prefetches): Do not generate a prefetch if the unroll factor
13332         is far from what is required by the prefetch.
13333
13334 2010-05-17  Jan Hubicka  <jh@suse.cz>
13335
13336         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
13337         (ipcp_estimate_growth): Likewise.
13338         (ipcp_const_param_count): Likewise.
13339         (ipcp_insert_stage): Likewise.
13340         * ipa-prop.c (visit_load_for_mod_analysis): New function.
13341         (visit_store_addr_for_mod_analysis): Set used flag.
13342         (ipa_detect_param_modifications): Set used flag for SSE params;
13343         update use of walk_stmt_load_store_addr_ops.
13344         (ipa_print_node_params): Print used flag.
13345         (ipa_write_node_info): Stream used flag.
13346         (ipa_read_node_info): Likewise.
13347         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
13348         (ipa_is_param_used): New function.
13349         (lto_ipa_fixup_call_notes): Remove unused declaration.
13350
13351 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13352
13353         PR target/44074
13354         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
13355         * configure: Regenerate.
13356         * config.in: Regenerate.
13357         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
13358         !HAVE_AS_IX86_REP_LOCK_PREFIX.
13359         Don't emit whitespace.
13360         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
13361         (*rep_movsi): Likewise.
13362         (*rep_movsi_rex64): Likewise.
13363         (*rep_movqi): Likewise.
13364         (*rep_movqi_rex64): Likewise.
13365         (*rep_stosdi_rex64): Likewise.
13366         (*rep_stossi): Likewise.
13367         (*rep_stossi_rex64): Likewise.
13368         (*rep_stosqi): Likewise.
13369         (*rep_stosqi_rex64): Likewise.
13370         (*cmpstrnqi_nz_1): Use {%;} after repz.
13371         (*cmpstrnqi_nz_rex_1): Likewise.
13372         (*cmpstrnqi_1): Likewise.
13373         (*cmpstrnqi_rex_1): Likewise.
13374         (*strlenqi_1): Use {%;} after repnz.
13375         (*strlenqi_rex_1): Likewise.
13376         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
13377         (*sync_compare_and_swap<mode>): Likewise.
13378         (sync_double_compare_and_swap<mode>): Likewise.
13379         (*sync_double_compare_and_swapdi_pic): Likewise.
13380         (sync_old_add<mode>): Likewise.
13381         (sync_add<mode>): Likewise.
13382         (sync_sub<mode>): Likewise.
13383         (sync_<code><mode>): Likewise.
13384
13385 2010-05-17  Martin Jambor  <mjambor@suse.cz>
13386
13387         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
13388         otr_token and polymorphic.
13389         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
13390         (cgraph_clone_edge): Copy the above fields.
13391         * tree.c (get_binfo_at_offset): New function.
13392         * tree.h (get_binfo_at_offset): Declare.
13393         * ipa-prop.h (enum jump_func_type): Added known_type jump function
13394         type, reordered items, updated comments.
13395         (union jump_func_value): Added base_type field, reordered fields.
13396         (enum ipa_lattice_type): Moved down in the file.
13397         (struct ipa_param_descriptor): New field polymorphic.
13398         (ipa_is_param_polymorphic): New function.
13399         * ipa-prop.c: Include gimple.h and gimple-fold.h.
13400         (ipa_print_node_jump_functions): Print known type jump functions.
13401         (compute_complex_pass_through): Renamed to...
13402         (compute_complex_assign_jump_func): this.
13403         (compute_complex_ancestor_jump_func): New function.
13404         (compute_known_type_jump_func): Likewise.
13405         (compute_scalar_jump_functions): Create known type and complex ancestor
13406         jump functions.
13407         (ipa_note_param_call): New parameter polymorphic, set the corresponding
13408         flag in the call note accordingly.
13409         (ipa_analyze_call_uses): Renamed to...
13410         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
13411         variable var only in the block where it is used.
13412         (ipa_analyze_virtual_call_uses): New function.
13413         (ipa_analyze_call_uses): Likewise.
13414         (combine_known_type_and_ancestor_jfs): Likewise.
13415         (update_jump_functions_after_inlining): Implemented handling of a
13416         number of new jump function types combination.
13417         (print_edge_addition_message): Removed.
13418         (make_edge_direct_to_target): New function.
13419         (try_make_edge_direct_simple_call): Likewise.
13420         (try_make_edge_direct_virtual_call): Likewise.
13421         (update_call_notes_after_inlining): Renamed to...
13422         (update_indirect_edges_after_inlining): this.  Moved edge creation for
13423         indirect calls to try_make_edge_direct_simple_call, also calls
13424         try_make_edge_direct_virtual_call for virtual calls.
13425         (ipa_print_node_params): Changed the header message.
13426         (ipa_write_jump_function): Stream also known type jump functions.
13427         (ipa_read_jump_function): Likewise.
13428         (ipa_write_indirect_edge_info): Stream new fields in
13429         cgraph_indirect_call_info.
13430         (ipa_read_indirect_edge_info): Likewise.
13431         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
13432         GIMPLE_FOLD_H.
13433
13434 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13435
13436         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
13437
13438 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
13439
13440         * tree.h (CALL_EXPR_ARGS): Delete.
13441         (call_expr_arglist): Delete.
13442         * tree.c (call_expr_arglist): Delete.
13443         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
13444         targetm.fold_builtin.
13445         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
13446         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
13447         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
13448         arglist parameter.  Use CALL_EXPR_ARG.
13449         (picochip_expand_builtin_3op): Likewise.
13450         (picochip_expand_builtin_2opvoid): Likewise.
13451         (picochip_expand_array_get): Likewise.
13452         (picochip_expand_array_put): Likewise.
13453         (picochip_expand_array_testport): Likewise.
13454         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
13455         rather than arglist.
13456         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
13457         CALL_EXPR_ARGS.
13458         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
13459         than TREE_VALUE and TREE_CHAIN.
13460         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
13461         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
13462         the arglist.
13463
13464 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
13465
13466         PR bootstrap/42347
13467         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
13468         to have no fallthru edge.
13469
13470         PR middle-end/44102
13471         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
13472         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
13473         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
13474         add BARRIER after previous bb if needed.
13475
13476 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
13477
13478         * tree.c (build_function_type_list_1): Remove bogus assert condition.
13479
13480 2010-05-17  Alan Modra  <amodra@gmail.com>
13481
13482         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
13483         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
13484         with copy_reg rtx param.
13485         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
13486         Correct cases where code for ABI_V4 did not initialise the reg
13487         used to access frame.  Also leave frame_reg_rtx as sp for large
13488         frames that save no regs.
13489
13490 2010-05-17  Martin Jambor  <mjambor@suse.cz>
13491
13492         PR middle-end/44133
13493         * tree-sra.c (create_access_replacement): New parameter rename, mark
13494         the replaement for renaming only when it is true.
13495         (get_access_replacement): Pass true in the rename parameter of
13496         create_access_replacement.
13497         (get_unrenamed_access_replacement): New function.
13498         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
13499         replacement declaration from it.
13500
13501 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
13502
13503         * function.c (try_fit_stack_local, add_frame_space): New static
13504         functions.
13505         (assign_stack_local_1): Use them.  Look for opportunities to use
13506         space previously wasted on alignment.
13507         * function.h (struct frame_space): New.
13508         (struct rtl_data): Add FRAME_SPACE_LIST member.
13509         * reload1.c (something_was_spilled): New static variable.
13510         (alter_reg): Set it.
13511         (reload): Test it in addition to testing if the frame size changed.
13512
13513 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
13514
13515         * config/s390/s390.c: Define sane prefetch settings and activate
13516         flag_prefetch_loop_arrays on -O3.
13517         * config/s390/s390.h: Declare that read can use write prefetch.
13518
13519 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
13520
13521         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
13522         build.
13523
13524 2010-05-16  Jan Hubicka  <jh@suse.cz>
13525
13526         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
13527         function body; do not check stdarg field of struct function.
13528
13529 2010-05-16  Jan Hubicka  <jh@suse.cz>
13530
13531         * cgraph.c (dump_cgraph_node): Dump versionable flag.
13532         * cgraph.h (cgraph_local_info): Add versionable flag.
13533         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
13534         (ipcp_versionable_function_p): Use it.
13535         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
13536         versionable flag.
13537
13538 2010-05-16  Jan Hubicka  <jh@suse.cz>
13539
13540         * cgraph.c (cgraph_clone_node): Take decl argument and insert
13541         clone into hash when it is different from orig.
13542         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
13543         * cgraph.h (cgraph_clone_node): Update prototype.
13544         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
13545         (lto_cgraph_encoder_delete): Delete body map.
13546         (lto_cgraph_encoder_size): Move to header.
13547         (lto_cgraph_encoder_encode_body_p,
13548         lto_set_cgraph_encoder_encode_body): New.
13549         (lto_output_node): Do not take written_decls argument; output clone_of
13550         pointer.
13551         (add_node_to): Add include_body_argument; call
13552         lto_set_cgraph_encoder_encode_body on master of the clone.
13553         (add_references): Update use of add_node_to.
13554         (compute_ltrans_boundary): Likewise.
13555         (output_cgraph): Do not create written_decls bitmap.
13556         (input_node): Take nodes argument; stream in clone_of correctly.
13557         (input_cgraph_1): Update use of input_node.
13558         * lto-streamer-out.c (lto_output): Use encoder info to decide
13559         what bodies to output.
13560         * ipa-inline.c (cgraph_clone_inlined_nodes,
13561         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
13562         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
13563         (lto_cgraph_encoder_size): Define here.
13564         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
13565         Declare.
13566
13567 2010-05-16  Richard Guenther  <rguenther@suse.de>
13568
13569         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
13570         -fipa-type-escape.
13571         * ipa-type-escape.c (gate_type_escape_vars): Run when
13572         -fipa-struct-reorg runs.
13573         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
13574         * common.opt (fipa-type-escape): Remove.
13575
13576 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
13577
13578         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
13579         (decode_options): Likewise.
13580         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
13581
13582 2010-05-16  Jan Hubicka  <jh@suse.cz>
13583
13584         * ipa.c (function_and_variable_visibility): Also bring local all
13585         aliases.
13586
13587 2010-05-16  Richard Guenther  <rguenther@suse.de>
13588
13589         * alias.c (nonoverlapping_memrefs_p): Remove use of
13590         IPA type-escape information.
13591
13592 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
13593
13594         * c-common.c (c_common_reswords): Add _Static_assert for C.
13595         * c-parser.c (c_token_starts_declaration,
13596         c_parser_next_token_starts_declaration,
13597         c_parser_static_assert_declaration_no_semi,
13598         c_parser_static_assert_declaration): New.
13599         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
13600         Handle static assertions if static_assert_ok.
13601         (c_parser_external_declaration, c_parser_declaration_or_fndef,
13602         c_parser_compound_statement_nostart, c_parser_label,
13603         c_parser_for_statement, c_parser_objc_methodprotolist,
13604         c_parser_omp_for_loop): All callers of
13605         c_parser_declaration_or_fndef changed.
13606         (c_parser_struct_declaration): Handle static assertions.
13607         (c_parser_compound_statement_nostart): Use
13608         c_parser_next_token_starts_declaration and
13609         c_token_starts_declaration to detect start of declarations.
13610         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
13611         Likewise.
13612
13613 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
13614
13615         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
13616         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
13617         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
13618         TARGET_FUNCTION_VALUE_REGNO_P): Define.
13619         (mmix_function_outgoing_value): Rename to...
13620         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
13621         (mmix_function_value_regno_p): Make static.
13622         (mmix_libcall_value): New function.
13623         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
13624         mmix_function_value_regno_p): Remove declaration.
13625
13626 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
13627
13628         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
13629         BUILT_IN_ALLOCA if stack checking is enabled.
13630
13631 2010-05-16  Richard Guenther  <rguenther@suse.de>
13632
13633         * var-tracking.c (vars_copy_1): Inline ...
13634         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
13635         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
13636         (variable_merge_over_cur): Adjust.  Merge asserts.
13637         (variable_merge_over_src): Likewise.
13638         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
13639         (variable_post_merge_new_vals): Merge asserts.
13640         (variable_post_merge_perm_vals): Likewise.
13641         (find_mem_expr_in_1pdv): Likewise.
13642         (dataflow_set_different_value): Remove.
13643         (onepart_variable_different_p): Merge asserts.
13644         (variable_different_p): Likewise.
13645         (dataflow_set_different_1): Inline ...
13646         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
13647         (emit_notes_for_differences_1): Merge asserts.
13648
13649 2010-05-16  Richard Guenther  <rguenther@suse.de>
13650
13651         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
13652         * optabs.c (libfunc_decl_hash): Likewise.
13653         * varasm.c (emutls_decl): Likewise.
13654
13655 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
13656
13657         * c-decl.c: Don't include gimple.h.
13658         (merge_decls): Do not copy gimple_body.
13659
13660 2010-05-15  Jason Merrill  <jason@redhat.com>
13661
13662         * c.opt: Add -fnothrow-opt.
13663
13664 2010-05-15  Jan Hubicka  <jh@suse.cz>
13665
13666         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
13667         analyzed.
13668         * passes.c (ipa_write_summaries): Write all analyzed nodes.
13669
13670 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
13671
13672         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
13673         * Makefile.in: Add it.
13674         Fix all other Makefile dependencies for changes below.
13675         * tree.h: Include it instead of defining VEC primitives here.
13676         * gimple.h: Likewise.
13677         * rtl.h: Likewise.
13678         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
13679         * except.h: Include vecir.h, break dependence on tree.h.
13680
13681         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
13682         Move from here...
13683         * tree-iterator.c: ...to here.
13684         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
13685
13686         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
13687         tm_p.h.
13688         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
13689         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
13690         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
13691         tree-mudflap.h, and target.h.
13692         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
13693         predict.h, tree-inline.h, gimple.h, and langhooks.h.
13694         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
13695         Add FIXME for why gimple.h is still included (should be unnecessary
13696         since GCC 4.5 gimplification unit-at-a-time).
13697         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
13698         * c-pragma.c: Add FIXME for why function.h needs to be included just
13699         for cfun, at front-end level.
13700         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
13701         Do not include ggc.h, but include vecprim.h for VEC(char).
13702         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
13703         Explain why target.h is included.
13704         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
13705         Explain why gimple.h is included.
13706         * c-ppoutput.c: Do not include tm.h.
13707         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
13708         * c-parses.c: Explain why rtl.h is included, and that this (and only
13709         this) is also why tm.h must be included.
13710         Do not include except.h.
13711         * c-lang.c: Do not include ggc.h.
13712
13713 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
13714
13715         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
13716
13717 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
13718
13719         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
13720         unions by default if those structs and unions have no tags.  Do
13721         not condition anonymous struct and unions handling on flag_iso.
13722         Allow anonymous structs and unions for C1X.
13723         (finish_struct): Do not diagnose lack of named fields when
13724         anonymous structs and unions present for C1X.  Accept flexible
13725         array members in structure with anonymous structs or unions but no
13726         directly named fields.
13727         * doc/extend.texi (Unnamed Fields): Update.
13728
13729 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
13730
13731         * gimple.h (compare_field_offset): Rename into...
13732         (gimple_compare_field_offset): ...this.
13733         * gimple.c (compare_field_offset): Rename into...
13734         (gimple_compare_field_offset): ...this.  Compare the full access if
13735         the offset is self-referential.
13736         (gimple_types_compatible_p): Adjust for above renaming.
13737         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
13738         DECL_NONADDRESSABLE_P flag of fields before merging them.
13739
13740 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
13741
13742         * tree.h (ctor_to_list): Delete.
13743         * tree.c (ctor_to_list): Delete.
13744
13745 2010-05-15  Jan Hubicka  <jh@suse.cz>
13746
13747         * ipa-reference.c: Include toplev.h
13748         (is_proper_for_analysis): Only add to all_module_statics
13749         if it is allocated.
13750         (write_node_summary_p, stream_out_bitmap,
13751         ipa_reference_write_optimization_summary,
13752         ipa_reference_read_optimization_summary): New.
13753         (struct ipa_opt_pass_d pass_ipa_reference): Add
13754         optimization summary streaming.
13755         * lto-cgraph.c (referenced_from_this_partition_p,
13756         reachable_from_this_partition_p): New functions.
13757         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
13758         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
13759         * opts.c (decode_options): Enable ipa_reference.
13760         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
13761         * lto-streamer.h (referenced_from_this_partition_p,
13762         reachable_from_this_partition_p): Declare.
13763
13764 2010-05-15  Richard Guenther  <rguenther@suse.de>
13765
13766         PR tree-optimization/44038
13767         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
13768         taking the address of a V_C_E of a constant.
13769
13770 2010-05-14  Jan Hubicka  <jh@suse.cz>
13771
13772         * tree.h (memory_identifier_string): Remove.
13773         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
13774         (ipa_reference_global_vars_info_d): Remove statics_not_read and
13775         statics_not_written.
13776         (ipa_reference_optimization_summary_d): New structure.
13777         (ipa_reference_optimization_summary_t): New type and vector.
13778         (ipa_reference_vars_info_d): Embedd structures instead of using
13779         pointers.
13780         (reference_vars_to_consider): Remove out of GGC space.
13781         (module_statics_escape): Remove.
13782         (global_info_obstack): Rename to ...
13783         (optimization_summary_obstack): ... this one.
13784         (initialization_status_t): Remove.
13785         (memory_identifier_string): Remove.
13786         (get_reference_vars_info): Fix indenting.
13787         (set_reference_vars_info): Likewise.
13788         (get_reference_optimization_summary): New.
13789         (set_reference_optimization_summary): New.
13790         (get_global_reference_vars_info): Remove.
13791         (ipa_reference_get_read_global): Remove.
13792         (ipa_reference_get_written_global): Remove.
13793         (ipa_reference_get_not_read_global): Update.
13794         (ipa_reference_get_not_written_global): Update.
13795         (is_proper_for_analysis): Outlaw addressable.
13796         (propagate_bits): Update for new datastructures.
13797         (analyze_variable): Remove.
13798         (init_function_info): Update for new datastructures.
13799         (clean_function_local_data): Remove.
13800         (clean_function): Remove.
13801         (copy_global_bitmap): Use optimizations_summary_obstack.
13802         (duplicate_node_data): Duplicate optimization summary only.
13803         (remove_node_data): Remove optimization summary only.
13804         (generate_summary): Do not analyze variables; do not compute
13805         module_statics_escape; do not prune solutions by it.
13806         (read_write_all_from_decl): Fix typos in comments.
13807         (propagate): Doscover readonly and nonaddressable first;
13808         update for new datastructures; share global bitmaps.
13809         * ipa-reference.h (ipa_reference_get_read_global,
13810         ipa_reference_get_written_global): Remove.
13811         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
13812         * Makefile.in: Remove ipa-refereference from GT files.
13813
13814 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
13815
13816         PR debug/44112
13817         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
13818         for all SYMBOL_REF_DECLs.
13819
13820 2010-05-14  Jan Hubicka  <jh@suse.cz>
13821
13822         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
13823         (varpool_all_refs_explicit_p): New inline function.
13824         * ipa-reference.c: Update comment.
13825         (module_statics_written): Remove.
13826         (get_static_decl): Remove.
13827         (ipa_init): Do not initialize module_statics_written.
13828         (analyze_function): Likewise.
13829         (generate_summary): Likewise; do not compute module_statics_readonly
13830         and do not update variable flags.
13831         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
13832         * ipa.c: Inlucde flags.h
13833         (cgraph_local_node_p): New.
13834         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
13835         promote functions to local.
13836         (ipa_discover_readonly_nonaddressable_vars): New function.
13837         (function_and_variable_visibility): Use cgraph_local_node_p.
13838         * varpool.c (varpool_finalize_decl): Set force_output for
13839         DECL_PRESERVE_P vars.
13840
13841 2010-05-14  Jan Hubicka  <jh@suse.cz>
13842
13843         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
13844
13845 2010-05-14  Richard Guenther  <rguenther@suse.de>
13846
13847         PR tree-optimization/44119
13848         * tree-ssa-pre.c (eliminate): Properly mark replacement of
13849         a PHI node necessary.
13850
13851 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
13852
13853         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
13854
13855 2010-05-14  Jason Merrill  <jason@redhat.com>
13856
13857         PR c++/44127
13858         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
13859         (gimple_call_set_nothrow): New.
13860         * gimple.c (gimple_build_call_from_tree): Call it.
13861         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
13862
13863         PR c++/44127
13864         * gimplify.c (gimplify_seq_add_stmt): No longer static.
13865         * gimple.h: Declare it.
13866         * gimple.c (gimple_build_eh_filter): No ops.
13867
13868 2010-05-14  Jan Hubicka  <jh@suse.cz>
13869
13870         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
13871         nodes already in queue.
13872         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
13873         re-enqueueing node.
13874
13875 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
13876
13877         PR debug/44136
13878         * cfgexpand.c (expand_debug_expr): If non-memory op0
13879         has BLKmode, return NULL.
13880
13881 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
13882
13883         * config.gcc: Add support for --with-cpu option for bdver1.
13884         * config/i386/i386.h (TARGET_BDVER1): New macro.
13885         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
13886         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
13887         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
13888         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
13889         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
13890         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
13891         (processor_type): Add PROCESSOR_BDVER1.
13892         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
13893         processor_type in config/i386/i386.h.
13894         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
13895         movaps <reg, reg> instead of movapd <reg, reg> when replacing
13896         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
13897         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
13898         to emit packed xor instead of packed double/packed integer
13899         xor for SSE and AVX when moving a zero value.
13900         * config/i386/sse.md: Add check for
13901         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
13902         movapd/movdqa for SSE and AVX.
13903         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
13904         single logical operations i.e and, or and xor instead of packed double
13905         logical operations for SSE and AVX.
13906         * config/i386/i386-c.c (ix86_target_macros_internal):
13907         Add PROCESSOR_BDVER1.
13908         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
13909         (has_fma4, has_xop): New.
13910         * config/i386/i386.c (bdver1_cost): New variable.
13911         (m_BDVER1): New macro.
13912         (m_AMD_MULTIPLE): Add m_BDVER1.
13913         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
13914         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
13915         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
13916         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
13917         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
13918         x86_tune_sse_partial_reg_dependency,
13919         x86_tune_sse_unaligned_load_optimal,
13920         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
13921         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
13922         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
13923         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
13924         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
13925         Enable/disable for bdver1.
13926         (processor_target_table): Add bdver1_cost.
13927         (cpu_names): Add bdver1.
13928         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
13929          processor_alias_table.
13930         (ix86_expand_vector_move_misalign): Change.
13931         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
13932         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
13933         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
13934         of movupd/movdqu for SSE and AVX.
13935         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
13936         (ix86_tune_adjust_cost): Add code for bdver1.
13937         (standard_sse_constant_opcode): Add check for
13938         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
13939         of packed double xor for SSE and AVX.
13940
13941 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
13942
13943         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
13944         result to unsigned.
13945
13946 2010-05-14  Tristan Gingold  <gingold@adacore.com>
13947
13948         * toplev.c (default_debug_hooks): Remove this variable.
13949         (process_options): Remove assignments to default_debug_hooks.
13950
13951 2010-05-14  Martin Jambor  <mjambor@suse.cz>
13952
13953         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
13954         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
13955         * langhooks.h (struct lang_hooks_for_decls): Removed field
13956         fold_obj_type_ref.
13957         * tree.c (free_lang_data): Remove assignment to
13958         lang_hooks.fold_obj_type_ref.
13959         * tree.def (OBJ_TYPE_REF): Update comment.
13960
13961 2010-05-14  Richard Guenther  <rguenther@suse.de>
13962
13963         PR tree-optimization/44124
13964         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
13965
13966 2010-05-14  Alan Modra  <amodra@gmail.com>
13967
13968         PR target/44075
13969         * config/rs6000/rs6000.c (struct machine_function): Reorder
13970         fields for better packing.  Add lr_save_state.
13971         (rs6000_ra_ever_killed): Return lr_save_state if set.
13972         (rs6000_emit_eh_reg_restore): Set lr_save_state.
13973
13974 2010-05-13  Jan Hubicka  <jh@suse.cz>
13975
13976         * varpool.c (decide_is_variable_needed): Drop code checking
13977         TREE_SYMBOL_REFERENCED.
13978
13979 2010-05-13  Jan Hubicka  <jh@suse.cz>
13980
13981         * final.c (output_addr_const): Do not call mark_decl_referenced.
13982         * cgraphunit.c (process_function_and_variable_attributes): Use
13983         mark_needed_node dirrectly.
13984         (assemble_thunk): Do not call mark_decl_referenced.
13985
13986 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
13987
13988         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
13989
13990 2010-05-13  Jeff Law  <law@redhat.com>
13991
13992         * ira-conflicts.c (print_allocno_conflicts): New function broken out
13993         from...
13994         (print_conflicts): Call print_allocno_conflicts.
13995
13996 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
13997
13998         PR debug/44104
13999         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
14000         if it is NULL.
14001
14002 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
14003
14004         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
14005         t-mingw-w64 or t-mingw-w32 for multilib configuration.
14006         * config/i386/t-mingw-w32: New.
14007         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
14008
14009 2010-05-13  Martin Jambor  <mjambor@suse.cz>
14010
14011         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
14012         gimple-fold.c).
14013         * gimple-fold.c (get_base_binfo_for_type): New function.
14014         (gimple_get_relevant_ref_binfo): Likewise.
14015         (gimple_fold_obj_type_ref_known_binfo): Likewise.
14016         (gimple_fold_obj_type_ref): Likewise.
14017         (fold_gimple_call): Simplify condition for folding virtual calls
14018         and call gimple_fold_obj_type_ref.
14019         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
14020         (gimple_fold_obj_type_ref_known_binfo): Likewise.
14021
14022 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
14023
14024         * config/rs6000/rs6000-protos.h
14025         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
14026         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
14027         (rs6000_debug_mode_dependent_address)
14028         (rs6000_mode_dependent_address_ptr): Likewise.
14029
14030 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
14031
14032         PR debug/43983
14033         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
14034         by SRA.
14035         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
14036         * tree-sra.c (create_access_replacement): Call unshare_expr before
14037         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
14038         * dwarf2out.c: Include tree-flow.h.
14039         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
14040         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
14041         Handle DW_OP_bit_piece.
14042         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
14043         construct_piece_list, adjust_piece_list): New functions.
14044         (add_var_loc_to_decl): Handle SRA optimized variables.
14045         Adjust for var_loc_note to loc field renaming.
14046         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
14047         in VAR_LOCATION note.
14048         (new_loc_descr_op_bit_piece): New function.
14049         (dw_sra_loc_expr): New function.
14050         (dw_loc_list): Use it.  Don't handle the last range after the
14051         loop, handle it inside of the loop.  Adjust for var_loc_note
14052         to loc field renaming.
14053         (add_location_or_const_value_attribute): Only special case
14054         single entry loc lists if loc is NOTE_P.  Adjust for
14055         var_loc_note to loc field renaming.
14056         (dwarf2out_var_location): Don't set newloc->var_loc_note
14057         and newloc->next here.
14058
14059 2010-05-12  Jan Hubicka  <jh@suse.cz>
14060
14061         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
14062         flag.
14063         * cgraph.h (cgraph_only_called_directly_p,
14064         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
14065         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
14066         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
14067         (assemble
14068         * ipa.c (cgraph_remove_unreachable_nodes): Use
14069         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
14070         flags.
14071         * tree-inline.c (copy_bb): Check address_taken flag.
14072         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
14073         externally_visible flag.
14074
14075 2010-05-12  Jason Merrill  <jason@redhat.com>
14076
14077         PR bootstrap/44048
14078         PR target/44099
14079         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
14080         * sdbout.c (plain_type_1): Likewise.
14081         * dwarf2out.c (is_base_type): Likewise.
14082         (gen_type_die_with_usage): Likewise.  Generate
14083         DW_TAG_unspecified_type for any LANG_TYPE.
14084
14085 2010-05-12  Jan Hubicka  <jh@suse.cz>
14086
14087         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
14088         indrect edges too.
14089         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
14090         (cgraph_clone_edge): Update.
14091         (cgraph_node_remove_callees): Remove indirect calls too.
14092         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
14093         (cgraph_create_indirect_edge): Update prototype.
14094         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
14095         is_proper_for_analysis.
14096         (add_new_function, visited_nodes, function_insertion_hook_holder,
14097         get_local_reference_vars_info, mark_address_taken, mark_address,
14098         mark_load, mark_store, check_asm_memory_clobber, check_call,
14099         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
14100         (ipa_init): Do not initialize visited_nodes;
14101         function_insertion_hook_holder.
14102         (analyze_variable): Rewrite.
14103         (analyze_function): Rewrite.
14104         (copy_local_bitmap): Remove.
14105         (duplicate_node_dat): Do not duplicate local info.
14106         (generate_summary): Simplify to only walk cgraph.
14107         (write_node_summary_p, ipa_reference_write_summary,
14108         ipa_reference_read_summary): Remove.
14109         (propagate): Do not remove function insertion;
14110         generate summary.
14111         (pass_ipa_reference): NULLify summary handling fields.
14112         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
14113         (input_edge): Input ecf_flags.
14114         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
14115         (update_indirect_edges_after_inlining): Ignore edges with unknown
14116         param.
14117
14118 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
14119
14120         * implicit-zee.c: New file.
14121         * tree-pass.h (pass_implicit_zee): Declare.
14122         * passes.c (init_optimization_passes): Add zee pass.
14123         * common.opt (fzee): New flag.
14124         * timevar.def (TV_ZEE): Define.
14125         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
14126         and beyond.
14127         * Makefile.in (implicit-zee.o): Add new build file.
14128
14129 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
14130             Nathan Froyd  <froydnj@codesourcery.com>
14131
14132         * c-common.c (sync_resolve_params): Remove write-only variable.
14133
14134 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
14135
14136         * target.h (struct gcc_target): Add mode_dependent_address_p field.
14137         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
14138         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
14139         * targhooks.c (default_mode_dependent_address_p): New function.
14140         * targhooks.h (default_mode_dependent_address_p): Declare function.
14141         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
14142         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
14143         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
14144         target hook. Change return type to bool.
14145         * recog.h (mode_dependent_address_p): Change return type to bool.
14146
14147 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
14148             Nathan Froyd  <froydnj@codesourcery.com>
14149
14150         * tree-mudflap.c (build_function_type_0, build_function_type_1,
14151         build_function_type_2, build_function_type_3): Remove.
14152         (mudflap_init): Use build_function_type_list.
14153
14154 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
14155             Nathan Froyd  <froydnj@codesourcery.com>
14156
14157         * coverage.c (build_fn_info_value): Call build_constructor instead of
14158         build_constructor_from_list.
14159         (build_ctr_info_value): Likewise.
14160         (build_gcov_info): Likewise.
14161
14162 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
14163
14164         * tree.c (build_constructor): Compute TREE_CONSTANT for the
14165         resultant constructor.
14166         (build_constructor_single): Don't set TREE_CONSTANT.
14167         (build_constructor_from_list): Don't compute TREE_CONSTANT.
14168
14169 2010-05-12  Jan Hubicka  <jh@suse.cz>
14170
14171         * cgraph.h (struct varpool_node): Add aux.
14172         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
14173         * varpool.c (varpool_remove_node): Do not remove initializer.
14174         (varpool_reset_queue): Export.
14175         (varpool_finalize_decl): Volatile vars are forced to be output.
14176         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
14177         replaced decl.
14178         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
14179         process_references, varpool_can_remove_if_no_refs): New functions.
14180         (cgraph_remove_unreachable_nodes): Handle variables too.
14181
14182 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
14183
14184         PR target/44088
14185         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
14186
14187 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
14188
14189         PR middle-end/44085
14190         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
14191         change value of ORT_TASK.
14192         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
14193         (omp_notice_threadprivate_variable): New function.
14194         (omp_notice_variable): Call it for threadprivate variables.
14195         If enclosing ctx is a task, print enclosing task rather than
14196         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
14197         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
14198         if task has untied clause.
14199
14200         PR debug/42278
14201         * dwarf2out.c (base_type_die): Don't add name attribute here.
14202         (modified_type_die): Instead of sizetype use
14203         its underlying original type.  If a DW_TAG_base_type doesn't
14204         have name added, add __unknown__.
14205         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
14206         always call force_type_die instead.
14207
14208 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
14209
14210         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
14211         for __stack_chk_guard.
14212
14213 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
14214
14215         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
14216         don't call start_source_file debug hook here...
14217         (finish_options): ... but here, after outputting predefined and
14218         command line defines and undefs.
14219
14220         PR middle-end/44071
14221         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
14222         no fallthru edge.
14223         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
14224         optimizing away empty bb with no successors, move over its
14225         footer chain to fallthru predecessor.
14226         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
14227         (rtl_split_edge): For asm goto call patch_jump_insn even if
14228         splitting fallthru edge.
14229
14230         PR c++/44059
14231         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
14232         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
14233         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
14234         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
14235         on DW.ref.* decls.
14236
14237         PR c++/44062
14238         * c-parser.c (c_parser_expression): Mark LHS of a comma
14239         expression as read if it is a decl, handled component or
14240         COMPOUND_EXPR with that on the RHS.
14241         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
14242         if it is a decl or handled component.
14243
14244 2010-05-11  Jan Hubicka  <jh@suse.cz>
14245
14246         * lto-symtab.c (lto_symtab_free): New function.
14247         * lto-streamer.h (lto_symtab_free): Declare.
14248
14249 2010-05-11  Jan Hubicka  <jh@suse.cz>
14250
14251         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
14252         that if function is needed it is reachable.
14253         (lto_output_node): See if it the function is reachable or referenced.
14254         (output_cgraph): Update call of lto_output_node.
14255         * lto-streamer.h (reachable_from_other_partition_p): Declare.
14256
14257 2010-05-11  Jan Hubicka  <jh@suse.cz>
14258
14259         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
14260         Mark as used.
14261
14262 2010-05-11  Jan Hubicka  <jh@suse.cz>
14263
14264         PR tree-optimize/44063
14265         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
14266         queue.
14267         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
14268         limits.
14269         (estimate_function_body_sizes): Compute sizes even when disregarding.
14270
14271 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
14272
14273         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
14274
14275 2010-05-11  Jan Hubicka  <jh@suse.cz>
14276
14277         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
14278         into every boundary.
14279
14280 2010-05-11  Jan Hubicka  <jh@suse.cz>
14281
14282         * matrix-reorg.c (matrix_reorg): Rebuild edges.
14283
14284 2010-05-11  Jan Hubicka  <jh@suse.cz>
14285
14286         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
14287         lto_streamer_cache_delete): Put nodes into heap.
14288         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
14289         heap.
14290
14291 2010-05-11  Jan Hubicka  <jh@suse.cz>
14292
14293         * cgraphbuild.c (cgraph_rebuild_references): New.
14294         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
14295         out extern inlines.
14296         * cgraph.h (cgraph_rebuild_references): Declare.
14297         * tree-inline.c (tree_function_versioning): Use it.
14298         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
14299
14300 2010-05-11  Jan Hubicka  <jh@suse.cz>
14301
14302         * cgraph.c: Include ipa-utils.h
14303         (cgraph_create_virtual_clone): Update references.
14304         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
14305
14306 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
14307
14308         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
14309         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
14310         cache size.
14311
14312 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
14313
14314         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
14315
14316 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
14317
14318         * gcc.c (execute): For -### don't quote arguments that
14319         contain just alphanumerics and _/-. characters.
14320         * doc/invoke.texi: Document that change for -###.
14321
14322         PR debug/44023
14323         * df-problems.c (struct dead_debug): Add to_rescan field.
14324         (dead_debug_init): Clear to_rescan field.
14325         (dead_debug_finish): Rescan all debug insns in to_rescan
14326         bitmap and free the bitmap.
14327         (dead_debug_insert_before): Instead of rescanning debug insns
14328         immediately queue their rescanning until dead_debug_finish.
14329         (df_note_bb_compute): After dead_debug_add do continue instead
14330         of break.
14331
14332 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
14333
14334         PR debug/44028
14335         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
14336         clear also INSN_REG_USE_LIST.
14337
14338 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14339
14340         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
14341
14342 2010-05-10  Jan Hubicka  <jh@suse.cz>
14343
14344         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
14345         commited change.
14346
14347 2010-05-10  Jan Hubicka  <jh@suse.cz>
14348
14349         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
14350         Allocate encoders.
14351         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
14352         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
14353         (lto_streamer_cache_create): Init alloc pool.
14354         (lto_streamer_cache_delete): Free alloc pool.
14355         * lto-streamer.h: Include alloc pool.
14356         (lto_streamer_cache_d): Use alloc pool.
14357         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
14358
14359 2010-05-10  Jan Hubicka  <jh@suse.cz>
14360
14361         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
14362         * cgraphbuild.c: Include except.h
14363         (record_type_list, record_eh_tables): New function.
14364         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
14365
14366 2010-05-10  Jan Hubicka  <jh@suse.cz>
14367
14368         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
14369         __frame_dummy_init_array_entry, force_to_data): Attribute as used
14370         rather than unused.
14371
14372 2010-05-10  Michael Matz  <matz@suse.de>
14373
14374         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
14375         (can_reassociate_p): Use FLOAT_TYPE_P.
14376         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
14377         (vect_force_simple_reduction): ... this.
14378         * tree-parloops.c (gather_scalar_reductions): Use
14379         vect_force_simple_reduction.
14380         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
14381         vect_is_simple_reduction, add modify argument, if true rewrite
14382         "a-b" into "a+(-b)".
14383         (vect_is_simple_reduction, vect_force_simple_reduction): New
14384         functions.
14385         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
14386
14387 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
14388             Vladimir Makarov  <vmakarov@redhat.com>
14389
14390         PR rtl-optimization/44012
14391         * ira-build.c (remove_unnecessary_allocnos): Nullify
14392         regno_allocno_map of the removed allocno.
14393
14394 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14395
14396         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
14397         to /dev/null.
14398         * configure: Regenerate.
14399
14400 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14401
14402         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
14403         unused.
14404         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
14405         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
14406         support in Sun ld.
14407         * configure: Regenerate.
14408
14409 2010-05-10  Richard Guenther  <rguenther@suse.de>
14410
14411         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
14412         marked if the entry identifier is marked.
14413
14414 2010-05-10  Richard Guenther  <rguenther@suse.de>
14415
14416         * c-common.c (struct c_common_attributes): Add fnspec attribute.
14417         (handle_fnspec_attribute): New function.
14418         * gimple.h (gimple_call_return_flags): Declare.
14419         (gimple_call_arg_flags): Likewise.
14420         * gimple.c (gimple_call_arg_flags): New function.
14421         (gimple_call_return_flags): Likewise.
14422         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
14423         New argument flags.
14424         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
14425         return value flags.
14426         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
14427         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
14428         main work to ...
14429         (make_heapvar_for): ... this new function.
14430         (handle_rhs_call): Handle fnspec attribute argument specifiers.
14431         (handle_lhs_call): Likewise.
14432         (find_func_aliases): Adjust.
14433
14434 2010-05-10  Richard Guenther  <rguenther@suse.de>
14435
14436         PR tree-optimization/44050
14437         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
14438
14439 2010-05-10  Wei Guozhi  <carrot@google.com>
14440
14441         PR target/42879
14442         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
14443
14444 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
14445
14446         PR c/10676
14447         * c-typeck.c (lookup_field): Take a type directly.  Update
14448         recursive calls.
14449         (build_component_ref): Update call to lookup_field.
14450         (set_init_label): Use lookup_field to find initialized field.
14451         Handle returned list of fields like a sequence of designators.
14452
14453 2010-05-09  Richard Guenther  <rguenther@suse.de>
14454
14455         PR middle-end/44024
14456         * fold-const.c (tree_single_nonzero_warnv_p): Properly
14457         handle &FUNCTION_DECL.
14458
14459 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
14460
14461         PR c/4784
14462         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
14463         structures and unions recursively.
14464         (detect_field_duplicates): Move duplicate detection with a hash to
14465         detect_field_duplicates_hash.  Always use a hash if anonymous
14466         structures or unions are present.
14467         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
14468         give errors.
14469
14470 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
14471
14472         PR target/44046
14473         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
14474         detect Atom, Core 2 and Core i7.
14475
14476 2010-05-09  Richard Guenther  <rguenther@suse.de>
14477
14478         * gcc.c (store_arg): Handle temporary file deletion for
14479         joined arguments.
14480
14481 2010-05-09  Richard Guenther  <rguenther@suse.de>
14482
14483         PR middle-end/44043
14484         * ipa-inline.c (estimate_function_body_sizes): Return after
14485         disregarding inline limits.
14486
14487 2010-05-09  Richard Guenther  <rguenther@suse.de>
14488
14489         * gcc.c (store_arg): Revert last change.
14490
14491 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
14492
14493         PR middle-end/28685
14494         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
14495         (optimize_ops_list): Call it.
14496
14497 2010-05-08  Richard Guenther  <rguenther@suse.de>
14498
14499         PR tree-optimization/44030
14500         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
14501         NECESSARY flag if we propagate from a inserted expression.
14502
14503 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
14504
14505         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
14506         domain types as equal if they are both PLACEHOLDER_EXPRs.
14507
14508 2010-05-08  Richard Guenther  <rguenther@suse.de>
14509
14510         * lto-wrapper.c (run_gcc): Remove linker output from
14511         command line for LTRANS invocation.
14512
14513 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
14514
14515         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
14516         lto-macho as lto_binary_reader.
14517         * target.h (struct gcc_target): New hooks lto_start and lto_end.
14518         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
14519         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
14520         in lto_start and lto_end calls.
14521         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
14522         magic numbers.
14523         (scan_prog_file): Update is_elf_or_coff call.
14524         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
14525
14526         * collect2.c (main): Fix enum comparison.
14527
14528         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
14529         Add prototypes.
14530         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
14531         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
14532         and TARGET_ASM_LTO_END.
14533         * darwin.c: Include obstack.h and lto-streamer.h.
14534         (lto_section_names_offset, lto_section_names_obstack,
14535         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
14536         global variables.
14537         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
14538         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
14539         to a temporary file.
14540         (darwin_asm_lto_end): New function.  Restore asm_out_file.
14541         (darwin_asm_named_section): For LTO sections, replace the name with
14542         the offset of the section name in a string table, and build this
14543         table.
14544         (darwin_file_start): Initialize global vars for LTO support.
14545         (darwin_file_end): If output to asm_out_file was redirected, append it
14546         to the proper asm_out_file here.  Add the section names section.
14547
14548 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
14549
14550         * c-pragma.c (pending_weak_d, pending_weak): New.
14551         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
14552         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
14553         handle_pragma_weak): Update the uses of pending_weaks.
14554
14555 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14556
14557         PR documentation/44016
14558         * doc/standards.texi (Standards): Link to unversioned
14559         cxx0x_status.html page.
14560
14561 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
14562
14563         PR target/43708
14564         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
14565         in addition to TREE_USED, to avoid "set but unused" warnings.
14566
14567 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
14568
14569         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
14570         (is_loop_prefetching_profitable): Do not insert prefetches
14571         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
14572         times the prefetch ahead distance.
14573
14574 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
14575
14576         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
14577         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
14578         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
14579         the unroll_factor.
14580
14581 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
14582
14583         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
14584         a diagnostic info when the insn-to-mem ratio is too small.
14585
14586 2010-05-07  Richard Guenther <rguenther@suse.de>
14587
14588         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
14589         the linker plugin.
14590         (store_arg): Queue temp_filename for deletion instead of
14591         the whole argument.
14592
14593 2010-05-07  Richard Guenther  <rguenther@suse.de>
14594
14595         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
14596         (run_gcc): Handle LTRANS phase invocation.
14597         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
14598
14599 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
14600
14601         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
14602         this is also meaningful on PARM_DECLs and RESULT_DECLs.
14603
14604 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14605
14606         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
14607
14608 2010-05-07  Richard Guenther  <rguenther@suse.de>
14609
14610         PR tree-optimization/44020
14611         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
14612         code when PRE is not yet initialized.
14613
14614 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14615
14616         * config/mips/dbxmdebug.h: Remove.
14617         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
14618
14619 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
14620
14621         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
14622         with null pointer and also warn about ordered comparison of zero with
14623         pointer if -Wextra.
14624
14625 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14626
14627         * graphite-blocking.c
14628         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
14629         * graphite-clast-to-gimple.c
14630         (clast_to_gcc_expression): Same.
14631         (precision_for_value): Same.
14632         (precision_for_interval): Same.
14633         (gcc_type_for_interval): Same.
14634         (graphite_create_new_guard): Same.
14635         (compute_bounds_for_level): Same.
14636         (graphite_create_new_loop_guard): Same.
14637         * graphite-interchange.c
14638         (build_linearized_memory_access): Same.
14639         (pdr_stride_in_loop): Same.
14640         (memory_strides_in_loop_1): Same.
14641         (memory_strides_in_loop): Same.
14642         (extend_scattering): Same.
14643         (psct_scattering_dim_for_loop_depth): Same.
14644         (pbb_number_of_iterations): Same.
14645         * graphite-poly.h
14646         (debug_iteration_domains): Same.
14647         * graphite-ppl.c
14648         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14649         (ppl_set_inhomogeneous_gmp): Same.
14650         (ppl_strip_loop): Same.
14651         (ppl_lexico_compare_linear_expressions): Same.
14652         (ppl_read_polyhedron_matrix): Same.
14653         (ppl_max_for_le_pointset): Same.
14654         * graphite-ppl.h
14655         (ppl_read_polyhedron_matrix): Same.
14656         (tree_int_to_gmp): Same.
14657         (gmp_cst_to_tree): Same.
14658         (ppl_set_inhomogeneous): Same.
14659         (ppl_set_inhomogeneous_tree): Same.
14660         (ppl_set_coef): Same.
14661         (ppl_set_coef_tree): Same.
14662         * graphite-sese-to-poly.c
14663         (build_pbb_scattering_polyhedrons): Same.
14664         (build_scop_scattering): Same.
14665         (scan_tree_for_params_right_scev): Same.
14666         (scan_tree_for_params): Same.
14667         (find_params_in_bb): Same.
14668         (find_scop_parameters): Same.
14669         (add_upper_bounds_from_estimated_nit): Same.
14670         (build_loop_iteration_domains): Same.
14671         (add_condition_to_domain): Same.
14672         (pdr_add_memory_accesses): Same.
14673
14674 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14675
14676         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
14677         CLooG's value_* macros to their respective mpz_* counterparts.
14678         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
14679         (graphite_create_new_loop_guard): Same.
14680         * graphite-interchange.c (build_linearized_memory_access): Same.
14681         (pdr_stride_in_loop): Same.
14682         (memory_strides_in_loop_1): Same.
14683         (1st_interchange_profitable_p): Same.
14684         * graphite-poly.c (extend_scattering): Same.
14685         (psct_scattering_dim_for_loop_depth): Same.
14686         (pbb_number_of_iterations): Same.
14687         (pbb_number_of_iterations_at_time): Same.
14688         * graphite-poly.h (new_1st_loop): Same.
14689         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
14690         (oppose_constraint): Same.
14691         (insert_constraint_into_matrix): Same.
14692         (ppl_set_inhomogeneous_gmp): Same.
14693         (ppl_set_coef_gmp): Same.
14694         (ppl_strip_loop): Same.
14695         (ppl_lexico_compare_linear_expressions): Same.
14696         (ppl_max_for_le_pointset): Same.
14697         (ppl_min_for_le_pointset): Same.
14698         (ppl_build_realtion): Same.
14699         * graphite-ppl.h (gmp_cst_to_tree): Same.
14700         (ppl_set_inhomogeneous): Same.
14701         (ppl_set_inhomogeneous_tree): Same.
14702         (ppl_set_coef): Same.
14703         (ppl_set_coef_tree): Same.
14704         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
14705         (build_scop_scattering): Same.
14706         (add_value_to_dim): Same.
14707         (scan_tree_for_params_right_scev): Same.
14708         (scan_tree_for_params_int): Same.
14709         (scan_tree_for_params): Same.
14710         (find_params_in_bb): Same.
14711         (find_scop_parameters): Same.
14712         (add_upper_bounds_from_estimated_nit): Same.
14713         (build_loop_iteration_domains): Same.
14714         (create_linear_expr_from_tree): Same.
14715         (add_condition_to_domain): Same.
14716         (pdr_add_memory_accesses): Same.
14717
14718 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
14719             Jason Merrill  <jason@redhat.com>
14720
14721         * c-common.c (c_common_reswords): Add nullptr.
14722         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
14723         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
14724         (gen_type_die_with_usage): Likewise.
14725         * dbxout.c (dbxout_type): Likewise.
14726         * sdbout.c (plain_type_1): Likewise.
14727
14728 2010-05-06  Jason Merrill  <jason@redhat.com>
14729
14730         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
14731         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
14732         ret appropriately.
14733         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
14734
14735         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
14736         stripping WITH_SIZE_EXPR.
14737         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
14738         change.
14739
14740 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14741
14742         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
14743         list of obsolete configurations.
14744         Disabled check for obsolete configurations.
14745         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
14746         Removed support for previous versions.
14747         * config/mips/iris.h: Removed.
14748         * config/mips/iris5.h: Removed.
14749         * config/mips/iris6.h: Merged old iris.h contents.
14750         (TARGET_IRIX): Removed.
14751         (DRIVER_SELF_SPECS): Removed mabi=32.
14752         (IDENT_ASM_OP): Removed undef.
14753         (STARTFILE_SPEC): Removed mabi=32.
14754         (ENDFILE_SPEC): Likewise.
14755         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
14756         (MACHINE_TYPE): Update for IRIX 6.5.
14757         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
14758         TARGET_IRIX by TARGET_IRIX6.
14759         (mips_file_start): Likewise.
14760         (mips_output_external): Remove IRIX 5/6 O32 support.
14761         (mips_output_function_prologue): Likewise.
14762         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
14763         TARGET_IRIX6.
14764         (TARGET_CPU_CPP_BUILTINS): Likewise.
14765         (TARGET_IRIX): Removed.
14766         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
14767         (MULTILIB_DIRNAMES): Removed 32.
14768         (MULTILIB_OSDIRNAMES): Removed ../lib.
14769         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
14770         (Specific, mips-sgi-irix5): Document removal.
14771         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
14772         Remove references to older IRIX 6 releases and the O32 ABI.
14773
14774 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
14775
14776         PR bootstrap/43994
14777         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
14778         instead of DF_REF_REAL_REG.
14779
14780 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
14781
14782         PR target/43888
14783         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
14784         handling to still return true for x64 targets.
14785
14786 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
14787
14788         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
14789
14790 2010-05-06  Jan Hubicka  <jh@suse.cz>
14791
14792         PR tree-optimization/43791
14793         * ipa-inline.c (update_caller_keys): Remove bogus
14794         disregard_inline_limits check.
14795
14796 2010-05-06  Michael Matz  <matz@suse.de>
14797
14798         PR tree-optimization/43984
14799         * tree-ssa-pre.c (inserted_phi_names): Remove.
14800         (inserted_exprs): Change to bitmap.
14801         (create_expression_by_pieces): Set bits, don't append to vector.
14802         (insert_into_preds_of_block): Don't handle inserted_phi_names.
14803         (eliminate): Don't look at inserted_phi_names, remove deleted
14804         insns from inserted_exprs.
14805         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
14806         (init_pre, fini_pre): Allocate and free bitmaps.
14807         (execute_pre): Insert insns on edges before elimination.
14808
14809 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
14810
14811         * tree.c (initializer_zerop): Handle STRING_CST.
14812
14813 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14814
14815         PR 40989
14816         * doc/invoke.texi (Wimplicit): Document as C only.
14817         * opts.c (common_handle_option): Add argument kind.
14818         (handle_option): Rename as read_cmdline_option. Factor out code to...
14819         (handle_option): ... here. New.
14820         (handle_options): Rename as read_cmdline_options.
14821         (decode_options): Update call.
14822         (set_option): Use option index instead of option pointer. Classify
14823         diagnostics correctly.
14824         (enable_warning_as_error): Call handle_option.
14825         * opts.h (set_option): Update declaration.
14826         (handle_option): Declare.
14827         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
14828         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
14829         * c-opts.c (set_Wimplicit): Delete.
14830         (c_family_lang_mask): New static constant.
14831         (c_common_handle_option): Add argument kind. Use handle_option
14832         instead of set_Wimplicit.
14833         (c_common_post_options): warn_implicit and warn_implicit_int
14834         are disabled by default.
14835         * c-common.c (warn_implicit): Do not define here.
14836         * c-common.h (warn_implicit): Do not declare here.
14837         (c_common_handle_option): Update declaration.
14838         * lto-opts.c (lto_reissue_options): Update call to set_option.
14839
14840 2010-05-06  Richard Guenther  <rguenther@suse.de>
14841
14842         PR tree-optimization/43571
14843         * domwalk.c (walk_dominator_tree): Walk the dominator
14844         sons in more optimal order.
14845
14846 2010-05-06  Richard Guenther  <rguenther@suse.de>
14847
14848         PR tree-optimization/43934
14849         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
14850         (stmt_cost): Likewise.
14851         (extract_true_false_args_from_phi): New helper.
14852         (determine_max_movement): For PHI nodes verify we can hoist them
14853         and compute their cost.
14854         (determine_invariantness_stmt): Handle PHI nodes.
14855         (move_computations_stmt): Likewise.  Hoist PHI nodes in
14856         if-converted form using COND_EXPRs.
14857         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
14858         (tree_ssa_lim): Likewise.
14859         * tree-flow.h (tree_ssa_lim): Adjust prototype.
14860         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
14861
14862 2010-05-06  Richard Guenther  <rguenther@suse.de>
14863
14864         PR tree-optimization/43987
14865         * tree-ssa-structalias.c (could_have_pointers): For possibly
14866         address-taken variables force pointers to be recorded.
14867         (create_variable_info_for_1): Likewise.
14868         (push_fields_onto_fieldstack): Pass in wheter all fields
14869         must have pointers.
14870         (find_func_aliases): Query types instead of vars whether
14871         they contain pointers where appropriate.
14872
14873 2010-05-06  Jan Hubicka  <jh@suse.cz>
14874
14875         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
14876         (record_reference, mark_address, mark_load, mark_store): Record
14877         references.
14878         (record_references_in_initializer): Update call of record_references.
14879         (rebuild_cgraph_edges): Remove all references before rebuiding.
14880         * cgraph.c (cgraph_create_node): Clear ref list.
14881         (cgraph_remove_node): Remove references.
14882         (dump_cgraph_node): Dump references.
14883         (cgraph_clone_node): Clone references.
14884         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
14885         (struct cgraph_node, varpool_node): Add ref_lst.
14886         * ipa-ref.c: New file.
14887         * ipa-ref.h: New file.
14888         * ipa-ref-inline.h: New file.
14889         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
14890         (referenced_from_other_partition_p): New function.
14891         (lto_output_varpool_node): Take set arugment; call
14892         referenced_from_other_partition.
14893         (lto_output_ref): New.
14894         (add_references): New.
14895         (output_refs): New.
14896         (output_cgraph): Compute boundary based on references; output refs.
14897         (output_varpool): Accept cgraph_node_set argument.
14898         (input_ref): New.
14899         (input_refs): New.
14900         (input_cgraph): Call input_refs.
14901         * lto-section-in.c (lto_section_name): Add refs.
14902         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
14903         (ipa-ref.o): New file.
14904         * varpool.c (varpool_node): Clear ipa ref list.
14905         (varpool_remove_node): Remove references.
14906         (dump_varpool_node): Dump references.
14907         (varpool_assemble_decl): Only compile finalized ones.
14908         (varpool_extra_name_alias): Initialize ref list.
14909         * lto-streamer.c (lto-get_section_name): Add .refs section.
14910         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
14911         (referenced_from_other_partition_p): Declared.
14912
14913 2010-05-06  Ira Rosen  <irar@il.ibm.com>
14914
14915         PR tree-optimization/43901
14916         * tree-vect-stmts.c (vectorizable_call): Assert that vector
14917         type is not NULL if it's transformation phase, and return
14918         FALSE if it's analysis.
14919         (vectorizable_conversion, vectorizable_operation,
14920         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
14921
14922 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
14923
14924         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
14925         Delete.
14926         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
14927         New define.
14928         * config/mips/mips-protos.h
14929         (mips_small_register_classes_for_mode_p): Delete prototype.
14930
14931 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
14932
14933         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
14934         * config/arm/arm.c (multiple_operation_profitable_p,
14935         compute_offset_order): New static functions.
14936         (load_multiple_sequence, store_multiple_sequence): Use them.
14937         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
14938         memory offsets, not register numbers.
14939         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
14940
14941 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
14942
14943         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
14944         (get_pending_sizes, put_pending_size, put_pending_sizes):
14945         Update the uses of pending_sizes.
14946         * c-decl.c (store_parm_decls): Likewise.
14947         * c-tree.h (struct c_arg_info): Likewise.
14948         * tree.h: Update the prototype for get_pending_sizes and
14949         put_pending_sizes.
14950
14951 2010-05-05  Jason Merrill  <jason@redhat.com>
14952
14953         PR debug/43370
14954         * c-common.c (handle_aligned_attribute): Respect
14955         ATTR_FLAG_TYPE_IN_PLACE.
14956
14957         PR testsuite/43758
14958         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
14959         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
14960         (TARGET_INITIALIZER): Use it.
14961         * c-common.c (attribute_takes_identifier_p): Call it.
14962         * c-common.h: Update prototype.
14963         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
14964         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
14965
14966 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
14967
14968         PR debug/43950
14969         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
14970         DW_ID_down_case for Fortran compilation units.
14971
14972 2010-05-05  Jan Hubicka  <jh@suse.cz>
14973
14974         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
14975         handle aliases.
14976
14977 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
14978
14979         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
14980         a variable-sized RESULT_DECL.
14981
14982 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
14983
14984         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
14985
14986 2010-05-05  Jason Merrill  <jason@redhat.com>
14987
14988         PR c++/43787
14989         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
14990         returns GS_OK.
14991         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
14992
14993 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
14994             Jakub Jelinek  <jakub@redhat.com>
14995
14996         PR debug/43478
14997         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
14998         (dead_debug_init, dead_debug_finish): New functions.
14999         (dead_debug_add, dead_debug_insert_before): Likewise.
15000         (df_note_bb_compute): Initialize a dead_debug object, add dead
15001         debug uses to it, insert debug bind insns before death insns,
15002         reset debug insns that refer to pending uses at the end.
15003         * rtl.h (make_debug_expr_from_rtl): New prototype.
15004         * varasm.c (make_debug_expr_from_rtl): New function.
15005
15006 2010-05-05  Jan Hubicka  <jh@suse.cz>
15007
15008         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
15009         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
15010         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
15011         lto_varpool_encoder_deref, lto_varpool_encoder_size,
15012         lto_varpool_encoder_encode_initializer_p,
15013         lto_set_varpool_encoder_encode_initializer): New functions.
15014         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
15015         call output_varpool.
15016         (input_varpool_node): Do not always set analyzed.
15017         (input_cgraph_1): Return vector of cgraph nodes.
15018         (input_varpool_1): Return vector of varpools.
15019         (input_cgraph): Free the vectors.
15020         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
15021         output only initializers needed.
15022         (lto_output): Only call output_cgraph.
15023         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
15024         * lto-section-out.c (lto_new_out_decl_state): Initialize
15025         state->varpool_node_encoder.
15026         * lto-streamer.h (lto_varpool_encoder_d): New.
15027         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
15028         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
15029         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
15030         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
15031         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
15032         Declare.
15033         (output_varpool, input_varpool): Remove declarations.
15034
15035 2010-05-05  Jan Hubicka  <jh@suse.cz>
15036
15037         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
15038         with body can prevail.
15039
15040 2010-05-05  Jan Hubicka  <jh@suse.cz>
15041
15042         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
15043         size.
15044
15045 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
15046
15047         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
15048
15049         * gengtype.h (erro_at_line): Constify pos argument.
15050
15051         * gengtype.c: Include hashtab.h.
15052         (enum gc_used): Document GC_MAYBE_POINTED_TO.
15053         (error_at_line): Constify pos argument.
15054         (do_typedef): Initialize p->opt field.
15055         (get_file_gtfilename): Fix comment typo.
15056         (struct walk_type_data): Constify line field.
15057         (get_output_file_for_structure): New function.
15058         (write_local_func_for_structure): Constify orig_s argument.
15059         Use get_output_file_for_structure.
15060         (write_func_for_structure): Use get_output_file_for_structure.
15061         (INDENT): New define.
15062         (dump_pair, dump_type, dump_type_list, dump_typekind)
15063         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
15064         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
15065         functions.
15066         (seen_types): New variable.
15067         (main): New variable do_dump.  Process "-d" command line option.
15068         Call dump_everything if dump requested.
15069
15070 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
15071
15072         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
15073         in a temporary instead of invoking the macro multiple times.
15074         (track_expr_p): Likewise.
15075
15076 2010-05-04  Neil Vachharajani <nvachhar@google.com>
15077
15078         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
15079         per new semantics.
15080         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
15081         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
15082         conditions for printing notes.
15083         * common.opt (-Wcoverage-mismatch): Allow negative, default to
15084         true, update documentation.
15085         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
15086
15087 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
15088
15089         PR c/43981
15090         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
15091         on dimen.
15092
15093 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
15094
15095         PR target/43799
15096         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
15097         (*sse_prologue_save_insn1): Likewise.
15098         (SSE prologue save splitter): Likewise.
15099
15100 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
15101
15102         * tree.c (free_lang_data_in_one_sizepos): New inline function.
15103         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
15104         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
15105         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
15106         all decls.  Call it on DECL_FIELD_OFFSET of fields.
15107         (find_decls_types_r): Follow DECL_VALUE_EXPR.
15108         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
15109
15110 2010-05-04  Martin Jambor  <mjambor@suse.cz>
15111
15112         * tree-sra.c (build_access_from_expr_1): The first parameter type
15113         changed to simple tree.
15114         (build_access_from_expr): Likewise, gsi parameter was eliminated.
15115         (scan_assign_result): Renamed to assignment_mod_result, enum elements
15116         renamed as well.
15117         (build_accesses_from_assign): Removed all parameters except for a
15118         simple gimple statement.  Now returns a simple bool.
15119         (scan_function): All non-analysis parts moved to separate functions
15120         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
15121         parameters and updated both callers.
15122         (sra_modify_expr): Removed parameter data.
15123         (sra_modify_function_body): New function.
15124         (perform_intra_sra): Call sra_modify_function_body to modify the
15125         function body.
15126         (replace_removed_params_ssa_names): Parameter data changed into
15127         adjustments vector.
15128         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
15129         changed the parameter dont_convert to convert with the opposite
15130         meaning.
15131         (sra_ipa_modify_assign): Parameter data changed into adjustments
15132         vector, return value changed to bool.
15133         (ipa_sra_modify_function_body): New function.
15134         (sra_ipa_reset_debug_stmts): Updated a comment.
15135         (modify_function): Use ipa_sra_modify_function_body to modify function
15136         body.
15137
15138 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
15139
15140         PR middle-end/43671
15141         * alias.c (true_dependence): Handle the same VALUE in x and mem.
15142         (canon_true_dependence): Likewise.
15143         (write_dependence_p): Likewise.
15144
15145 2010-05-04  Jan Hubicka  <jh@suse.cz>
15146
15147         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
15148         * cgraphbuild.c: Include ipa-utils.h
15149         (record_reference_ctx): New struct.
15150         (record_reference): Simplify to work on initializers; not statements.
15151         (mark_address, mark_load, mark_store): New.
15152         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
15153         walk PHI nodes too.
15154         (record_references_in_initializer): Update use of record_reference.
15155         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
15156         walk PHI nodes too.
15157
15158 2010-05-04  Jan Hubicka  <jh@suse.cz>
15159
15160         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
15161         node will be removed anyway.
15162         (lto_varpool_replace_node): Allow also unanalyzed nodes;
15163         relink aliases of node into prevailing node.
15164         * varpool.c (varpool_remove_node): Remove aliases properly;
15165         when removing node, remove all its aliases too; remove DECL_INITIAL
15166         of removed node; ggc_free the varpool node.
15167
15168 2010-05-04  Richard Guenther  <rguenther@suse.de>
15169
15170         PR tree-optimization/43879
15171         * tree-ssa-structalias.c (alias_get_name): Use
15172         DECL_ASSEMBLER_NAME if available.
15173         (create_function_info_for): Return the varinfo node.
15174         (ipa_pta_execute): Associate same-body aliases and extra names
15175         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
15176
15177 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
15178
15179         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
15180
15181 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
15182
15183         PR bootstrap/43964
15184         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
15185         only if HONOR_REG_ALLOC_ORDER is not defined.
15186
15187 2010-05-04  Richard Guenther  <rguenther@suse.de>
15188
15189         PR tree-optimization/43949
15190         * tree-vrp.c (extract_range_from_binary_expr): Only handle
15191         TRUNC_MOD_EXPR.
15192
15193 2010-04-26  Jason Merrill  <jason@redhat.com>
15194
15195         * c.opt (-fstrict-enums): New.
15196         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
15197
15198 2010-05-03  David Ung <davidu@mips.com>
15199             James E. Wilson  <wilson@codesourcery.com>
15200
15201         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
15202         emit the trap instruction before the divide for TUNE_74K.
15203
15204 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
15205
15206         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
15207         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
15208         based on the above, for new target hook.
15209
15210         * hooks.c (hook_bool_mode_true): New generic hook.
15211         * hooks.h (hook_bool_mode_true): Add prototype.
15212
15213         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
15214         target hook.
15215         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
15216         target hook, set to hook_bool_mode_false.
15217         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
15218         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
15219         with targetm.small_register_classes_for_mode_p.
15220         (find_reusable_reload): Likewise.
15221         (combine_reloads): Likewise.
15222         * reload1.c (reload_as_needed): Likewise.
15223         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
15224         * ifcvt.c (noce_process_if_block, check_cond_move_block,
15225         dead_or_predicable): Likewise.
15226         * regmove.c (optimize_reg_copy_1): Likewise.
15227         * calls.c (prepare_call_address): Likewise.
15228         (precompute_register_parameters): Likewise.
15229
15230         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
15231         hook definition.
15232         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
15233         implementation of the hook that considers all register classes
15234         small except for SH64.
15235         (sh_override_options): Use the new hook.
15236         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
15237         Add prototype.
15238
15239         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
15240         hook definition.
15241         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
15242         implementation of the hook that considers all register classes
15243         small for THUMB1.
15244         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
15245         Add prototype.
15246
15247         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
15248         hook definition.
15249         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
15250         implementation of the hook that considers all register classes
15251         small for MIPS16.
15252         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
15253         Add prototype.
15254
15255         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
15256         hook definition.
15257         * config/m32c/m32c.h: Likewise.
15258         * config/pdp11/pdp11.h: Likewise.
15259         * config/avr/avr.h: Likewise.
15260         * config/xtensa/xtensa.h: Likewise.
15261         * config/m68hc11/m68hc11.h: Likewise.
15262         * config/mn10300/mn10300.h: Likewise.
15263         * config/mcore/mcore.h: Likewise.
15264         * config/h8300/h8300.h: Likewise.
15265         * config/bfin/bfin.h: Likewise.
15266
15267         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
15268         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
15269
15270 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
15271
15272         * double-int.h (tree_to_double_int): Remove macro.
15273         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
15274         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
15275         (tree_to_double_int): New function.
15276         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
15277         Move ...
15278         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
15279
15280 2010-05-03  Richard Guenther  <rguenther@suse.de>
15281
15282         PR tree-optimization/43971
15283         * tree-ssa-structalias.c (get_constraint_for_1): Fix
15284         constraints in the !flag_delete_null_pointer_checks case.
15285
15286 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
15287
15288         PR debug/43972
15289         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
15290         result mode matches original rtl mode.
15291
15292 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
15293
15294         PR target/43888
15295         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
15296
15297 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15298
15299         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
15300         when processing flag options.
15301
15302 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15303
15304         * gcov-iov.c (main): Change format string placeholder
15305         from %#08x to 0x%08x.
15306         * genchecksum.c (dosum): Change format string placeholder
15307         from %#02x to 0x%02x.
15308
15309 2010-05-02  Richard Guenther  <rguenther@suse.de>
15310
15311         PR tree-optimization/43879
15312         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
15313
15314 2010-05-02  Bruno Haible  <bruno@clisp.org>
15315
15316         * doc/extend.texi (Function Attributes): Fix a typo.
15317
15318 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15319
15320         Revert:
15321         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
15322         placeholder from 0x%x to %#x.
15323         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
15324         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
15325         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
15326         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
15327         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
15328         * config/i386/i386.c (ix86_target_string): Ditto.
15329         * config/i386/i386.c (output_pic_addr_const): Ditto.
15330         (print_operand): Ditto.
15331
15332 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15333
15334         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
15335         placeholder from 0x%x to %#x.
15336         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
15337         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
15338         (ASM_OUTPUT_DEBUG_DATA): Ditto.
15339         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
15340         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
15341         * optc-gen.awk: Ditto.
15342         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
15343         (HOST_WIDE_INT_PRINT_HEX): Ditto.
15344         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
15345         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
15346
15347 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
15348
15349         * target.h (struct calls): Add function_value_regno_p field.
15350         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
15351         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
15352         * targhooks.c (default_function_value_regno_p): New function.
15353         * targhooks.h (default_function_value_regno_p): Declare function.
15354         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
15355         * builtins.c. (apply_result_size): (Ditto.).
15356         * combine.c. (likely_spilled_retval_p): (Ditto.).
15357         * mode-switching.c. Include 'target.h'.
15358         (create_pre_exit): Use function_value_regno_p hook.
15359         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
15360         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
15361         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
15362
15363         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
15364         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
15365         (ix86_function_value_regno_p): Declare as static, change argument
15366         type to const unsigned int.
15367         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
15368
15369 2010-05-01  Richard Guenther  <rguenther@suse.de>
15370
15371         PR tree-optimization/43949
15372         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
15373         types.
15374         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
15375
15376 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
15377
15378         * rtl.h (CONST_DOUBLE_P): Define.
15379         (rtx_to_double_int): Declare.
15380         * emit-rtl.c (rtx_to_double_int): New function.
15381         * dwarf2out.c (insert_double): New function.
15382         (loc_descriptor, add_const_value_attribute): Clean up, use
15383         rtx_to_double_int and insert_double functions.
15384
15385 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
15386
15387         * doc/extend.texi (Inline): Add missing return keyword to examples.
15388         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
15389         "command-line".
15390
15391 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
15392
15393         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
15394         the variable part of the offset as well.  Use highest_pow2_factor for
15395         all alignment checks.
15396
15397 2010-04-30  Richard Guenther  <rguenther@suse.de>
15398
15399         PR tree-optimization/43879
15400         * tree-ssa-structalias.c (type_could_have_pointers): Functions
15401         can have pointers.
15402
15403 2010-04-30  Jan Hubicka  <jh@suse.cz>
15404
15405         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
15406         varpool.
15407         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
15408
15409 2010-04-30  Jan Hubicka  <jh@suse.cz>
15410
15411         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
15412         New.
15413         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
15414         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
15415         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
15416         cgraph_node_set_needs_ltrans_p): Remove.
15417
15418 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
15419
15420         * sdbout.c: Include vec.h, do not include varray.h.
15421         (deferred_global_decls, sdbout_global_decl,
15422         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
15423         * toplev.c: Do not include varray.h.
15424         (dump_memory_report): Do not dump VARRAY statistics.
15425         * gengtype.c (open_base_file): Ignore varray.h.
15426         * Makefile.in: Update for abovementioned changes.
15427         Remove all traces of varray.c and varray.h.
15428         * varray.c: Remove file.
15429         * varray.h: Remove file.
15430
15431 2010-04-30  Jan Hubicka  <jh@suse.cz>
15432
15433         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
15434         references.
15435
15436 2010-04-30  Jan Hubicka  <jh@suse.cz>
15437
15438         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
15439         needed.
15440
15441 2010-04-30  Richard Guenther  <rguenther@suse.de>
15442
15443         * tree-ssa-structalias.c (get_constraint_for_1): Generate
15444         constraints for CONSTRUCTOR.
15445
15446 2010-04-30  Richard Guenther  <rguenther@suse.de>
15447
15448         PR lto/43946
15449         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
15450         first after all lowering passes.
15451
15452 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
15453
15454         * toplev.c: Include varray.h for statistics dumping.
15455         * tree.h: Do not declare varray_head_tag.
15456         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
15457         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
15458         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
15459         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
15460         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
15461         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
15462         c-common.c, c-common.h, reg-stack.c, basic-block.h,
15463         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
15464         include varray.h.
15465         * Makefile.in: Update for abovementioned changes.
15466
15467 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
15468
15469         PR debug/43942
15470         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
15471
15472 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
15473
15474         * config/picochip/picochip.c (picochip_legitimize_address): Define.
15475         Use this function to do machine-specific conversion.
15476         (picochip_legitimize_reload_address): Likewise.
15477         (picochip_legitimate_address_p): Check valid base register only if
15478         strict.
15479         (picochip_check_conditional_copy): Check for modw only if opnd is
15480         register.
15481         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
15482         to call the function in c.
15483         * config/picochip/picochip-protos.h
15484         (picochip_legitimize_reload_address): Define.
15485         * config/picochip/picochip.md (supported_compare1): Define.
15486
15487 2010-04-30  Jan Hubicka  <jh@suse.cz>
15488
15489         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
15490         (cgraph_global_info): Remove inlined.
15491         (LTO_cgraph_tag_names): Remove.
15492         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
15493         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
15494         simplify cgraph tags and document.
15495         (lto_output_node): Use only LTO_cgraph_unavail_node and
15496         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
15497         for_functions_valid, global info, process and output flags.
15498         (input_overwrite_node): Initialize estimated stack size and
15499         estimated growth.  Do not read flags we no longer store.
15500         (input_node): Likewise do not read info no longer stored.
15501         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
15502         flag.
15503
15504 2010-04-30  Richard Guenther  <rguenther@suse.de>
15505
15506         PR tree-optimization/43879
15507         * tree-ssa-structalias.c (get_constraint_for_1): Properly
15508         handle non-zero initializers.
15509
15510 2010-04-30  Richard Guenther  <rguenther@suse.de>
15511
15512         * builtins.c (fold_builtin_1): Delete free (0).
15513
15514 2010-04-29  Jan Hubicka  <jh@suse.cz>
15515
15516         * gengtype.c (open_base_files): Add lto-streamer.h
15517         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
15518         (pass_ipa_cp): GGC collect.
15519         * toplev. (compile_file): Do not output symbols.
15520         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
15521         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
15522         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
15523         * lto-section-in.c: Include ggc.h
15524         (lto_new_in_decl_state): Alloc in GGC.
15525         (lto_delete_in_decl_state): Likewise.
15526         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
15527         Collect.
15528
15529 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
15530
15531         PR target/42895
15532         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
15533         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
15534         (HONOR_REG_ALLOC_ORDER): Describe new macro.
15535         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
15536         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
15537         account only if HONOR_REG_ALLOC_ORDER is not defined.
15538         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
15539         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
15540
15541 2010-04-29  Jon Grant  <04@jguk.org>
15542
15543         * collect2.c (vflag): Change type from int to bool.
15544         (debug): Likewise.
15545         (helpflag): New global bool.
15546         (main): Set vflag and debug with boolean, not integer truth values.
15547         Accept new "--help" option and output usage text if found.
15548         * collect2.h (vflag): Update prototype.
15549         (debug): Likewise.
15550
15551 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
15552
15553         PR bootstrap/43936
15554         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
15555
15556 2010-04-29  Richard Guenther  <rguenther@suse.de>
15557
15558         PR bootstrap/43935
15559         * plugin.h (invoke_plugin_callbacks): Annotate arguments
15560         with ATTRIBUTE_UNUSED.
15561
15562 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
15563
15564         PR target/43921
15565         * config/i386/i386.c (get_some_local_dynamic_name): Replace
15566         INSN_P with NONDEBUG_INSN_P.
15567         (distance_non_agu_define): Likewise.
15568         (distance_agu_use): Likewise.
15569
15570 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
15571
15572         From Dominique d'Humieres <dominiq@lps.ens.fr>
15573         PR bootstrap/43858
15574         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
15575         test_set.
15576
15577 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
15578
15579         * plugin.h (invoke_plugin_callbacks): New inline function.
15580         * plugin.c (flag_plugin_added): New global flag.
15581         (add_new_plugin): Initialize above flag.
15582         (invoke_plugin_callbacks): Rename to ...
15583         (invoke_plugin_callbacks_full): ... this.
15584
15585 2010-04-28  Jan Hubicka  <jh@suse.cz>
15586
15587         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
15588         (lto_varpool_replace_node): New.
15589         (lto_symtab_resolve_symbols): Resolve varpool nodes.
15590         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
15591         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
15592         * cgraph.h (varpool_node_ptr): New type.
15593         (varpool_node_ptr): New vector.
15594         (varpool_node_set_def): New structure.
15595         (varpool_node_set): New type.
15596         (varpool_node_set): New vector.
15597         (varpool_node_set_element_def): New structure.
15598         (varpool_node_set_element, const_varpool_node_set_element): New types.
15599         (varpool_node_set_iterator): New type.
15600         (varpool_node): Add prev pointers, add used_from_other_partition,
15601         in_other_partition.
15602         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
15603         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
15604         varpool_get_node, varpool_remove_node): Declare.
15605         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
15606         varpool_node_set_size): New inlines.
15607         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
15608         * tree-pass.h (varpool_node_set_def): Forward declare.
15609         (ipa_opt_pass_d): Summary writting takes vnode sets too.
15610         (ipa_write_optimization_summaries): Update prototype.
15611         * ipa-cp.c (ipcp_write_summary): Update.
15612         * ipa-reference.c (ipa_reference_write_summary): Update.
15613         * lto-cgraph.c (lto_output_varpool_node): New static function.
15614         (output_varpool): New function.
15615         (input_varpool_node): New static function.
15616         (input_varpool_1): New function.
15617         (input_cgraph): Input varpool.
15618         * ipa-pure-const.c (pure_const_write_summary): Update.
15619         * lto-streamer-out.c (lto_output): Update, output varpool too.
15620         (write_global_stream): Kill WPA hack.
15621         (produce_asm_for_decls): Update.
15622         (output_alias_pair_p): Handle variables.
15623         (output_unreferenced_globals): Output only needed partition of varpool.
15624         * ipa-inline.c (inline_write_summary): Update.
15625         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
15626         cgraph.
15627         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
15628         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
15629         varpool_node_set_new, varpool_node_set_add,
15630         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
15631         debug_varpool_node_set): New functions.
15632         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
15633         (execute_one_pass): Process new decls too.
15634         (ipa_write_summaries_2): Pass around vsets.
15635         (ipa_write_summaries_1): Likewise.
15636         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
15637         to add.
15638         (ipa_write_optimization_summaries_1): Pass around vsets.
15639         (ipa_write_optimization_summaries): Likewise.
15640         * varpool.c (varpool_get_node): New.
15641         (varpool_node): Update doubly linked lists.
15642         (varpool_remove_node): New.
15643         (dump_varpool_node): More dumping.
15644         (varpool_enqueue_needed_node): Update doubly linked lists.
15645         (decide_is_variable_needed): Kill ltrans hack.
15646         (varpool_finalize_decl): Kill lto hack.
15647         (varpool_assemble_decl): Skip decls in other partitions.
15648         (varpool_assemble_pending_decls): Update doubly linkes lists.
15649         (varpool_empty_needed_queue): Likewise.
15650         (varpool_extra_name_alias): Likewise.
15651         * lto-streamer.c (lto_get_section_name): Add vars section.
15652         * lto-streamer.h (lto_section_type): Update.
15653         (output_varpool, input_varpool): Declare.
15654
15655 2010-04-28  Mike Stump  <mikestump@comcast.net>
15656
15657         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
15658
15659 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
15660
15661         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
15662         record or union type with RECORD_OR_UNION_TYPE_P predicate.
15663         (lto_input_ts_type_tree_pointers): Likewise.
15664         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
15665         (lto_output_ts_type_tree_pointers): Likewise.
15666
15667 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
15668
15669         Uniquization of constants at the Tree level
15670         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
15671         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
15672         bit to the end.
15673         (tree_output_constant_def): Declare.
15674         * gimplify.c (gimplify_init_constructor): When using block copy, first
15675         uniquize the constant constructor on the RHS.
15676         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
15677         DECL_IN_CONSTANT_POOL flag.
15678         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
15679         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
15680         constant pool.
15681         (assemble_variable): Deal with symbols belonging to the tree constant
15682         pool.
15683         (get_constant_section): Add ALIGN parameter and simplify.
15684         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
15685         (assemble_constant_contents): Use the expression of the VAR_DECL.
15686         (output_constant_def_contents): Use the alignment of the VAR_DECL.
15687         (tree_output_constant_def): New global function.
15688         (mark_constant): Use the expression of the VAR_DECL.
15689         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
15690         its expression.
15691         (output_object_block): Likewise and assemble the expression.
15692
15693 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
15694
15695         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
15696         hash_tree, eq_tree): New tree hash table.
15697         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
15698         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
15699         lto_orig_address_remove): Reimplement.
15700
15701 2010-04-28  Xinliang David Li  <davidxl@google.com>
15702
15703         PR c/42643
15704         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
15705         (compute_uninit_opnds_pos): New function.
15706         (is_non_loop_exit_postdominating): New function.
15707         (compute_control_dep_chain): New function.
15708         (find_pdom): New function.
15709         (convert_control_dep_chain_into_preds): New function.
15710         (find_predicates): New function.
15711         (find_control_equiv_block): New function.
15712         (collect_phi_def_edges): New function.
15713         (find_def_preds): New function.
15714         (find_dom): New function.
15715         (dump_predicates): New function.
15716         (get_cmp_code): New function.
15717         (is_value_included_in): New function.
15718         (find_matching_predicate_in_rest_chains): New function.
15719         (use_pred_not_overlap_with_undef_path_pred): New function.
15720         (is_use_properly_guarded): New function.
15721         (normalize_cond_1): New function.
15722         (is_and_or_or): New function.
15723         (normalize_cond): New function.
15724         (is_gcond_subset_of): New function.
15725         (is_subset_of_any): New function.
15726         (is_or_set_subset_of): New function.
15727         (is_and_set_subset_of): New function.
15728         (is_norm_cond_subset_of): New function.
15729         (is_pred_expr_subset_of): New function.
15730         (is_pred_chain_subset_of): New function.
15731         (is_included_in): New function.
15732         (is_superset_of): New function.
15733         (find_uninit_use): New function.
15734         (warn_uninitialized_phi): New function.
15735         (compute_possibly_undefined_names): New function.
15736         (ssa_undefined_value_p): New function.
15737         (execute_late_warn_uninitialized): New function.
15738         * tree-ssa.c (ssa_undefined_value_p): Removed.
15739         (warn_uninit): Changed to extern.
15740         (warn_uninitialized_phi): Removed.
15741         (warn_uninitialized_vars): Changed to extern.
15742         (execute_late_warn_uninitialized): Removed
15743         * tree-flow.h: Add new prototypes.
15744         * timevar.def: Add new time variable.
15745         * Makefile.in: Add new build file.
15746
15747 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
15748
15749         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
15750         type if available.
15751
15752 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15753
15754         PR target/22224
15755         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
15756
15757 2010-04-28  Martin Jambor  <mjambor@suse.cz>
15758
15759         * cgraph.h (struct cgraph_node): New field indirect_calls.
15760         (struct cgraph_indirect_call_info): New type.
15761         (struct cgraph_edge): Removed field indirect_call. New fields
15762         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
15763         (cgraph_create_indirect_edge): Declare.
15764         (cgraph_make_edge_direct): Likewise.
15765         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
15766         * ipa-prop.h (struct ipa_param_call_note): Removed.
15767         (struct ipa_node_params): Removed field param_calls.
15768         (ipa_create_all_structures_for_iinln): Declare.
15769         * cgraph.c: Described indirect edges and uids in initial comment.
15770         (cgraph_add_edge_to_call_site_hash): New function.
15771         (cgraph_edge): Search also among the indirect edges, use
15772         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
15773         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
15774         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
15775         site hash.
15776         (initialize_inline_failed): Assign a reason to indirect edges.
15777         (cgraph_create_edge_1): New function.
15778         (cgraph_create_edge): Moved some functionality to
15779         cgraph_create_edge_1.
15780         (cgraph_create_indirect_edge): New function.
15781         (cgraph_edge_remove_callee): Add an assert checking for
15782         non-indirectness.
15783         (cgraph_edge_remove_caller): Special-case indirect edges.
15784         (cgraph_remove_edge): Likewise.
15785         (cgraph_set_edge_callee): New function.
15786         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
15787         (cgraph_make_edge_direct): New function.
15788         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
15789         the declaration of the call statement matches.
15790         (cgraph_node_remove_callees): Special-case indirect edges.
15791         (cgraph_clone_edge): Likewise.
15792         (cgraph_clone_node): Clone also the indirect edges.
15793         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
15794         indirect_call, dump count of indirect_calls edges.
15795         * ipa-prop.c (iinlining_processed_edges): New variable.
15796         (ipa_note_param_call): Create indirect edges instead of
15797         creating notes.  New parameter node.
15798         (ipa_analyze_call_uses): New parameter node, pass it on to
15799         ipa_note_param_call.
15800         (ipa_analyze_stmt_uses): Likewise.
15801         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
15802         (print_edge_addition_message): Work on edges rather than on notes.
15803         (update_call_notes_after_inlining): Likewise, renamed to
15804         update_indirect_edges_after_inlining.
15805         (ipa_create_all_structures_for_iinln): New function.
15806         (ipa_free_node_params_substructures): Do not free notes.
15807         (ipa_edge_duplication_hook): Propagate bits within
15808         iinlining_processed_edges bitmap.
15809         (ipa_node_duplication_hook): Do not duplicate notes.
15810         (free_all_ipa_structures_after_ipa_cp): Renamed to
15811         ipa_free_all_structures_after_ipa_cp.
15812         (free_all_ipa_structures_after_iinln): Renamed to
15813         ipa_free_all_structures_after_iinln.
15814         (ipa_write_param_call_note): Removed.
15815         (ipa_read_param_call_note): Removed.
15816         (ipa_write_indirect_edge_info): New function.
15817         (ipa_read_indirect_edge_info): Likewise.
15818         (ipa_write_node_info): Do not stream notes, do stream information
15819         in indirect edges.
15820         (ipa_read_node_info): Likewise.
15821         (lto_ipa_fixup_call_notes): Removed.
15822         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
15823         * ipa-inline.c (pass_ipa_inline): Likewise.
15824         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
15825         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
15826         * tree-inline.c (copy_bb): Removed an unnecessary double check for
15827         is_gimple_call.
15828         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
15829         edges.
15830         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
15831         (output_cgraph): Stream also indirect edges.
15832         (lto_output_edge): Added capability to stream indirect edges.
15833         (input_edge): Likewise.
15834         (input_cgraph_1): Likewise.
15835         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
15836         of indirect edges.
15837
15838 2010-04-28  Richard Guenther  <rguenther@suse.de>
15839
15840         PR tree-optimization/43879
15841         PR tree-optimization/43909
15842         * tree-ssa-structalias.c (struct variable_info): Add
15843         only_restrict_pointers flag.
15844         (new_var_info): Initialize it.  Increment stats.total_vars here.
15845         (create_function_info_for): Do not increment stats.total_vars here.
15846         (get_function_part_constraint): Fix build with C++.
15847         (insert_into_field_list): Remove.
15848         (push_fields_onto_fieldstack): Properly merge fields.
15849         (create_variable_info_for): Split and simplify.
15850         (create_variable_info_for_1): New piece.
15851         (intra_create_variable_infos): Properly make restrict constraints
15852         from parameters.
15853
15854 2010-04-28  Richard Guenther  <rguenther@suse.de>
15855
15856         PR c++/43880
15857         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
15858
15859 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15860             Jan Hubicka <hubicka@ucw.cz>
15861
15862         * doc/invoke.texi (-Wsuggest-attribute=const,
15863         -Wsuggest-attribute=pure): Document.
15864         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
15865         (function_always_visible_to_compiler_p,
15866         suggest_attribute, warn_function_pure, warn_function_const):
15867         New functions.
15868         (check_call): Improve debug info.
15869         (analyze_function): Do not check availability.
15870         (add_new_function): Check availability.
15871         (propagate): Output warnings.
15872         (skip_function_for_local_pure_const): New function.
15873         (local_pure_const): Use it; output warnings.
15874         * common.opt (Wsuggest-attribute=const,
15875         Wsuggest-attribute=pure): New.
15876
15877 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
15878
15879         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
15880         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
15881         or DW_CFA_def_cfa_offset{,_sf}.
15882
15883 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
15884
15885         * tree.h: Fix truncated long macros.
15886
15887 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
15888
15889         * collect2.c (TARGET_64BIT): Redefine to target's default.
15890         * tlink.c: Likewise.
15891         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
15892         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
15893         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
15894         for underscoring __USER_LABEL_PREFIX__.
15895         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
15896         (SUB_LINK_ENTRY32): New.
15897         (SUB_LINK_ENTRY64): New.
15898         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
15899         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
15900         (SUB_LINK_ENTRY64): New.
15901         (SUB_LINK_ENTRY): New.
15902         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
15903         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
15904         x64 target is choosen.
15905         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
15906         * configure: Regenerated.
15907         * configure.ac (leading-mingw64-underscores): Option added.
15908
15909 2010-04-27  Jan Hubicka  <jh@suse.cz>
15910
15911         * doc/invoke.texi (-fipa-profile): Document.
15912         * opts.c (decode_options): Enable ipa-profile at -O1.
15913         * timevar.def (TV_IPA_PROFILE): Define.
15914         * common.opt (fipa-profile): Add.
15915         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
15916         flag for clones.
15917         (cgraph_propagate_frequency): Handle only local ones.
15918         * tree-pass.h (pass_ipa_profile): Declare.
15919         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
15920         (pass_ipa_profile): Use TV_IPA_PROFILE.
15921         * ipa.c (ipa_profile): New function.
15922         (gate_ipa_profile): Likewise.
15923         (pass_ipa_profile): New global variable.
15924         * passes.c (pass_ipa_profile): New.
15925
15926 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
15927
15928         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
15929
15930 2010-04-27  Martin Jambor  <mjambor@suse.cz>
15931
15932         PR middle-end/43812
15933         * ipa.c (dissolve_same_comdat_group_list): New function.
15934         (function_and_variable_visibility): Call
15935         dissolve_same_comdat_group_list when comdat group contains external or
15936         newly local nodes.
15937         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
15938         lists are circular and that they contain only DECL_ONE_ONLY nodes.
15939
15940 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
15941
15942         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
15943         (const_hash_1) <VECTOR_CST>: New case.
15944         (compare_constant) <VECTOR_CST>: Likewise.
15945         <ADDR_EXPR>: Deal with LABEL_REFs.
15946         (copy_constant) <VECTOR_CST>: New case.
15947
15948 2010-04-27  Jan Hubicka  <jh@suse.cz>
15949
15950         * cgraph.c (cgraph_propagate_frequency): New function.
15951         * cgraph.h (cgraph_propagate_frequency): Declare.
15952         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
15953         cgraph_propagate_frequency.
15954
15955 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
15956
15957         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
15958
15959 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
15960
15961         PR target/40657
15962         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
15963         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
15964         here to determine which regs to push and how much stack to reserve.
15965
15966 2010-04-27  Jie Zhang  <jie@codesourcery.com>
15967
15968         * doc/gimple.texi (gimple_statement_with_ops): Remove
15969         addresses_taken field.
15970         (gimple_statement_with_memory_ops): Likewise.
15971
15972 2010-04-27  Jan Hubicka  <jh@suse.cz>
15973
15974         * tree-inline.c (eni_inlining_weights): Remove.
15975         (estimate_num_insns): Special case more builtins.
15976
15977 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
15978
15979         PR c/32207
15980         * c-typeck.c (build_binary_op): Move forward check for comparison
15981         pointer with null pointer constant and adjust the diagnostic message.
15982
15983 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
15984
15985         PR lto/42776
15986         * configure.ac (gcc_cv_as_section_has_align): Set if installed
15987         binutils supports extended .section directive needed by LTO, or
15988         warn if older binutils found.
15989         (LTO_BINARY_READER): New AC_SUBST'd variable.
15990         (LTO_USE_LIBELF): Likewise.
15991         * gcc/config.gcc (lto_binary_reader): New target-specific configure
15992         variable.
15993         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
15994         (LTO_USE_LIBELF): Likewise.
15995         * configure: Regenerate.
15996
15997         * collect2.c (is_elf): Rename from this ...
15998         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
15999          object files in addition to ELF-formatted ones.
16000         (scan_prog_file): Caller updated.  Also allow for LTO info marker
16001         symbol to be prefixed or not by an extra underscore.
16002
16003         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
16004         * config/i386/winnt.c: Also #include lto-streamer.h
16005         (i386_pe_asm_named_section): Specify 1-byte section alignment for
16006         LTO named sections.
16007         (i386_pe_asm_output_aligned_decl_common): Add comment.
16008         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
16009
16010 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
16011
16012         PR target/43889
16013         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
16014         Add missing earlyclobber for second alternative.
16015
16016 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
16017
16018         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
16019         bits for artificial defs at the top of the block.
16020         * fwprop.c (single_def_use_enter_block): Don't call it.
16021
16022 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
16023
16024         PR 43715
16025         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
16026         instead of "$gcc_cv_objdump -T".
16027         Use "-undefined dynamic_lookup" on darwin.
16028         * gcc/configure: Regenerate.
16029
16030 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
16031
16032         PR c/43893
16033         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
16034
16035 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
16036
16037         * c-parser.c (struct c_token): Move location field up.
16038         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
16039         (struct c_declspecs): Convert typespec_word, storage_class, and
16040         default_int_p into bitfields.
16041         (struct c_declarator): Move loc field up.
16042
16043 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
16044
16045         * cfgloop.h (struct loop): Move can_be_parallel field up.
16046         * ipa-prop.h (struct ip_node_params): Move bitfields up.
16047         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
16048         down.
16049         (struct iv_cand): Convert pos field into a bitfield.
16050         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
16051         field up.
16052         (struct _stmt_vec_info): Shuffle fields for better packing.
16053
16054 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
16055
16056         * varasm.c (IN_NAMED_SECTION): Remove guard.
16057         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
16058         (IN_NAMED_SECTION_P): ...this.
16059         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
16060         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
16061
16062 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
16063
16064         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
16065         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
16066         of shadowing it.  Fix comments.
16067
16068 2010-04-26  Jan Hubicka  <jh@suse.cz>
16069
16070         * cgraph.c (cgraph_create_node): Set node frequency to normal.
16071         (cgraph_clone_node): Copy function frequency.
16072         * cgraph.h (node_frequency): New enum
16073         (struct cgraph_node): Add.
16074         * final.c (rest_of_clean_state): Update.
16075         * lto-cgraph.c (lto_output_node): Output node frequency.
16076         (input_overwrite_node): Input node frequency.
16077         * tre-ssa-loop-ivopts (computation_cost): Update.
16078         * lto-streamer-out.c (output_function): Do not output function
16079         frequency.
16080         * predict.c (maybe_hot_frequency_p): Update and handle functions
16081         executed once.
16082         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
16083         attribute lookup.
16084         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
16085         (compute_function_frequency): Set noreturn functions to be executed
16086         once.
16087         (choose_function_section): Update.
16088         * lto-streamer-in.c (input_function): Do not input function frequency.
16089         * function.c (allocate_struct_function): Do not initialize function
16090         frequency.
16091         * function.h (function_frequency): Remove.
16092         (struct function): Remove function frequency.
16093         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
16094         (try_update): Update.
16095         * tree-inline.c (initialize_cfun): Do not update function frequency.
16096         * passes.c (pass_init_dump_file): Update.
16097         * i386.c (ix86_compute_frame_layout): Update.
16098         (ix86_pad_returns): Update.
16099
16100 2010-04-26  Jie Zhang  <jie@codesourcery.com>
16101
16102         PR tree-optimization/43833
16103         * tree-vrp.c (range_int_cst_p): New.
16104         (range_int_cst_singleton_p): New.
16105         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
16106         when both operands are constants.  Use range_int_cst_p in
16107         BIT_IOR_EXPR case.
16108
16109 2010-04-26  Jan Hubicka  <jh@suse.cz>
16110
16111         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
16112
16113 2010-04-26  Richard Guenther  <rguenther@suse.de>
16114
16115         PR lto/43080
16116         * gimple.c (gimple_decl_printable_name): Deal gracefully
16117         with a NULL DECL_NAME.
16118
16119 2010-04-26  Richard Guenther  <rguenther@suse.de>
16120
16121         PR lto/42425
16122         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
16123         if emitting debug information and it is either a function
16124         or a namespace decl.
16125
16126 2010-04-26  Ira Rosen  <irar@il.ibm.com>
16127
16128         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
16129         determine if the statement is vectorizable, and a macro to access it.
16130         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
16131         Skip statements that can't be vectorized. If the analysis fails,
16132         mark the statement as unvectorizable if vectorizing basic block.
16133         (vect_compute_data_refs_alignment): Likewise.
16134         (vect_verify_datarefs_alignment): Skip statements marked as
16135         unvectorizable. Add print.
16136         (vect_analyze_group_access): Skip statements that can't be
16137         vectorized. If the analysis fails, mark the statement as
16138         unvectorizable if vectorizing basic block.
16139         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
16140         * tree-vect-stmts.c (vectorizable_store): Fix the number of
16141         generated stmts for SLP.
16142         (new_stmt_vec_info): Initialize the new field.
16143         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
16144         statements marked as unvectorizable.
16145
16146 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
16147
16148         * c-common.c (flag_isoc1x): New.
16149         (flag_isoc99): Update comment.
16150         * c-common.h (flag_isoc1x): New.
16151         (flag_isoc99): Update comment.
16152         * c-cppbuiltin.c (builtin_define_float_constants): Also define
16153         __<type>_DECIMAL_DIG__.
16154         * c-opts.c (set_std_c1x): New.
16155         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
16156         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
16157         * c.opt (-std=c1x, -std=gnu1x): New options.
16158         * doc/cpp.texi: Mention -std=c1x.
16159         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
16160         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
16161         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
16162         * doc/standards.texi: Mention C1X.
16163         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
16164         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
16165         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
16166         Define for C1X.
16167
16168 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
16169
16170         * config/i386/gmon-sol2.c (_mcleanup): Change format string
16171         placeholder from 0x%x to %#x.
16172         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
16173         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
16174         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
16175         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
16176         * config/i386/i386.c (ix86_target_string): Ditto.
16177         (output_pic_addr_const): Ditto.
16178         (print_operand): Ditto.
16179
16180 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
16181
16182         * combine.c (find_split_point): Add third argument.  Use it
16183         to find nested multiply-accumulate instructions.  Adjust calls.
16184         (try_combine): Adjust call to find_split_point.
16185
16186 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
16187
16188         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
16189
16190 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
16191
16192         PR tree-optimization/41442
16193         * fold-const.c (merge_truthop_with_opposite_arm): New function.
16194         (fold_binary_loc): Call it.
16195
16196 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16197
16198         * toplev.c (general_init): Set default for fdiagnostics-show-option.
16199         * opts.c (common_handle_option): Allow disabling it.
16200         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
16201
16202 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
16203
16204         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
16205         between modes if both types are integral.
16206
16207 2010-04-23  Richard Guenther  <rguenther@suse.de>
16208
16209         PR tree-optimization/43572
16210         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
16211
16212 2010-04-23  Richard Guenther  <rguenther@suse.de>
16213
16214         PR lto/43455
16215         * tree-inline.c (tree_can_inline_p): Also check compatibility
16216         of return types.
16217
16218 2010-04-23  Martin Jambor  <mjambor@suse.cz>
16219
16220         PR tree-optimization/43846
16221         * tree-sra.c (struct access): New flag grp_assignment_read.
16222         (build_accesses_from_assign): Set grp_assignment_read.
16223         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
16224         (enum mark_read_status): New type.
16225         (analyze_access_subtree): Propagate grp_assignment_read, create
16226         accesses also if both direct_read and root->grp_assignment_read.
16227
16228 2010-04-23  Martin Jambor  <mjambor@suse.cz>
16229
16230         PR middle-end/43835
16231         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
16232         function does not have type attributes.
16233
16234 2010-04-23  Richard Guenther  <rguenther@suse.de>
16235
16236         PR lto/42653
16237         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
16238         of FUNCTION_DECLs.
16239
16240 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16241
16242         * sese.h (create_if_region_on_edge): Remove.
16243
16244         * sese.c (create_if_region_on_edge): Make static.
16245
16246         * tree-inline.c: Do not include ggc.h.
16247
16248         * expr.c: Do not include ggc.h.
16249
16250         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
16251         dependencies.
16252
16253 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
16254
16255         PR target/43744
16256         * config/sh/sh.c (find_barrier): Don't emit a constant pool
16257         in the middle of insns for casesi_worker_2.
16258
16259 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
16260
16261         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
16262
16263 2010-04-22  Ira Rosen  <irar@il.ibm.com>
16264
16265         PR tree-optimization/43842
16266         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
16267         loop unrolling in update of exit phis. Fix comment.
16268         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
16269         least two reduction statements in the loop before starting SLP
16270         analysis.
16271
16272 2010-04-22  Nick Clifton  <nickc@redhat.com>
16273
16274         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
16275
16276 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
16277
16278         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
16279         to simplify a + ~a.
16280
16281 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16282
16283         * tree-parloops.c (loop_parallel_p): New argument
16284         parloop_obstack.  Pass it down.
16285         (parallelize_loops): New variable parloop_obstack.  Initialize it,
16286         pass it down, free it.
16287
16288         * tree-loop-linear.c (linear_transform_loops): Pass down
16289         lambda_obstack.
16290
16291         * tree-data-ref.h (lambda_compute_access_matrices): New argument
16292         of type struct obstack *.
16293
16294         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
16295         scratch_obstack.  Initialize it, pass down, free it.
16296
16297         * lambda.h (lambda_loop_new): Remove.
16298         (lambda_matrix_new, lambda_matrix_inverse)
16299         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
16300         argument of type struct obstack *.
16301
16302         * lambda-trans.c (lambda_trans_matrix_new): New argument
16303         lambda_obstack.  Pass it down, use obstack allocation for ret.
16304         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
16305         it down.
16306
16307         * lambda-mat.c (lambda_matrix_get_column)
16308         (lambda_matrix_project_to_null): Remove.
16309         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
16310         allocation for mat.
16311         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
16312         lambda_obstack.
16313
16314         * lambda-code.c (lambda_loop_new): New function.
16315         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
16316         (lambda_compute_auxillary_space, lambda_compute_target_space)
16317         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
16318         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
16319         (build_access_matrix): New argument lambda_obstack.  Use obstack
16320         allocation for am.
16321         (lambda_compute_step_signs, lambda_compute_access_matrices): New
16322         argument lambda_obstack.  Pass it down.
16323
16324 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
16325
16326         * optabs.h (expand_widening_mult): Declare.
16327
16328 2010-04-22  Richard Guenther  <rguenther@suse.de>
16329
16330         PR tree-optimization/43845
16331         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
16332         lookup the CALL_EXPR function and arguments.
16333
16334 2010-04-22  Nick Clifton  <nickc@redhat.com>
16335
16336         * config/stormy16/stormy16.c
16337         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
16338         * config/stormy16/stormy16.h: Tidy up formatting.
16339         (DONT_USE_BUILTIN_SETJMP): Remove definition.
16340         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
16341         (ineqbranchsi): Delete pattern.
16342         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
16343         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
16344         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
16345         stormy16-lib2-ucmpsi2.c.
16346
16347 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
16348
16349         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
16350         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
16351         extra set merge_set_noclobber, and use it to relax the final test
16352         slightly.
16353         * df.h (df_simulate_find_noclobber_defs): Declare.
16354         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
16355         conditional defs.
16356         (df_simulate_find_noclobber_defs): New function.
16357
16358 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
16359
16360         * config/i386/i386.md: Use {} around multi-line preparation statements.
16361
16362 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16363
16364         * c-tree.h (push_init_level, pop_init_level, set_init_index)
16365         (process_init_element): New argument of type struct obstack *.
16366
16367         * c-typeck.c (push_init_level, pop_init_level, set_designator)
16368         (set_init_index, set_init_label, set_nonincremental_init)
16369         (set_nonincremental_init_from_string, find_init_member)
16370         (output_init_element, output_pending_init_elements)
16371         (process_init_element): New argument braced_init_obstack.  Pass it
16372         down.
16373         (push_range_stack, add_pending_init): New argument
16374         braced_init_obstack.  Use obstack allocation.
16375
16376         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
16377         braced_init_obstack.  Pass it down.
16378         (c_parser_braced_init): New variables ret, braced_init_obstack.
16379         Initialize obstack, pass it down and finally free it.
16380
16381 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
16382
16383         PR middle-end/29274
16384         * tree-pass.h (pass_optimize_widening_mul): Declare.
16385         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
16386         gate_optimize_widening_mul): New static functions.
16387         (pass_optimize_widening_mul): New.
16388         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
16389         <case MULT_EXPR>: Remove support for widening multiplies.
16390         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
16391         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
16392         simplify_gen_unary rather than directly building extensions.
16393         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
16394         WIDEN_MULT_EXPR.
16395         * expmed.c (expand_widening_mult): New function.
16396         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
16397
16398 2010-04-21  Jan Hubicka  <jh@suse.cz>
16399
16400         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
16401         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
16402         * lto-wpa-fixup.c: Remove.
16403         * Makefile.in (lto-wpa-fixup.o): Remove.
16404         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
16405         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
16406         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
16407
16408 2010-04-21  Jan Hubicka  <jh@suse.cz>
16409
16410         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
16411         add write_optimization_summary, read_optimization_summary.
16412         (ipa_write_summaries_of_cgraph_node_set): Remove.
16413         (ipa_write_optimization_summaries): Declare.
16414         (ipa_read_optimization_summaries): Declare.
16415         * ipa-cp.c (pass_ipa_cp): Update.
16416         * ipa-reference.c (pass_ipa_reference): Update.
16417         * ipa-pure-const.c (pass_ipa_pure_const): Update.
16418         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
16419         Update.
16420         * ipa-inline.c (pass_ipa_inline): Update.
16421         * ipa.c (pass_ipa_whole_program): Update.
16422         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
16423         * passes.c (ipa_write_summaries_1): Do not test wpa.
16424         (ipa_write_optimization_summaries_1): New.
16425         (ipa_write_optimization_summaries): New.
16426         (ipa_read_summaries): Do not test ltrans.
16427         (ipa_read_optimization_summaries_1): New.
16428         (ipa_read_optimization_summaries): New.
16429
16430 2010-04-21  Jan Hubicka  <jh@suse.cz>
16431
16432         * lto-cgraph.c (lto_output_node): Do not output comdat groups
16433         for boundary nodes.
16434         (output_cgraph): Do not arrange comdat groups for boundary nodes.
16435
16436 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
16437
16438         PR debug/40040
16439         * dwarf2out.c (add_name_and_src_coords_attributes): Add
16440         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
16441
16442 2010-04-21  Jan Hubicka  <jh@suse.cz>
16443
16444         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
16445
16446 2010-04-21  Jan Hubicka  <jh@suse.cz>
16447
16448         * varpool.c (decide_is_variable_needed): Variable is always needed
16449         during ltrans.
16450
16451 2010-04-21  Jan Hubicka  <jh@suse.cz>
16452
16453         * opts.c (decode_options): Enable pure-const pass for whopr.
16454
16455 2010-04-21  Jan Hubicka  <jh@suse.cz>
16456
16457         * cgraph.c (dump_cgraph_node): Dump also assembler name.
16458         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
16459         at WPA dumping.
16460         (cgraph_decide_inlining): Do not expect callee to be removed in all
16461         cases.
16462
16463 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
16464
16465         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
16466
16467 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
16468
16469         * config/i386/i386.md (x86_shrd): Add athlon_decode and
16470         amdfam10_decode attributes.
16471
16472 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
16473
16474         PR middle-end/43570
16475         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
16476         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
16477         (lower_copyprivate_clauses): Use private var in outer
16478         context instead of original var.  Make sure the types
16479         are correct for VLAs.
16480
16481 2010-04-21  Richard Guenther  <rguenther@suse.de>
16482
16483         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
16484         to non-pointer objects.
16485
16486 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
16487
16488         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
16489         last chain entry if it starts with the still current label.
16490         (add_location_or_const_value_attribute): Check that
16491         loc_list->first->next is NULL instead of comparing ->first with ->last.
16492         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
16493         to add_var_loc_to_decl.
16494
16495         * dwarf2out.c (output_call_frame_info): For dw_cie_version
16496         >= 4 add also address size and segment size fields into CIE header.
16497
16498         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
16499         long as address size is the same as sizeof (void *) and
16500         segment size is 0.
16501         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
16502         address size or segment size is unexpected, return DW_EH_PE_omit.
16503         (classify_object_over_fdes): If get_cie_encoding returned
16504         DW_EH_PE_omit, return -1.
16505         (init_object): If classify_object_over_fdes returned -1,
16506         pretend there were no FDEs at all.
16507
16508 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
16509
16510         * config/i386/i386.md (bswap<mode>2): Macroize expander from
16511         bswap{si,di}2 using SWI48 mode iterator.
16512         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
16513         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
16514         set modrm attribute of bswap insn to 0 and remove length attribute.
16515         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
16516         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
16517         set mode attribute to <MODE> and remove length attribute.
16518
16519 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
16520
16521         PR rtl-optimization/43520
16522         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
16523         zero available registers.
16524
16525 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16526
16527         * builtins.c (fold_builtin_cproj): Fold more cases.
16528
16529 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16530
16531         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
16532         (fold_builtin_1): Fold builtin cproj.
16533         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
16534         Use ATTR_CONST_NOTHROW_LIST.
16535
16536 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
16537
16538         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
16539         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
16540         ffsi2_no_cmove for !TARGET_CMOVE.
16541         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
16542         (ffssi2): Remove expander.
16543         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
16544         mode iterator.
16545         (ctz<mode>2): Ditto from ctz{si,di}2.
16546         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
16547         mode iterator.
16548         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
16549         mode iterator.
16550
16551 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
16552
16553         * dwarf2out.c (AT_linkage_name): Define.
16554         (clone_as_declaration): Handle DW_AT_linkage_name.
16555         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
16556         of DW_AT_MIPS_linkage_name.
16557         (move_linkage_attr): Likewise.
16558         (dwarf2out_finish): Likewise.
16559
16560 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
16561
16562         PR middle-end/41952
16563         * fold-const.c (fold_comparison): New folding rule.
16564
16565 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
16566
16567         * double-int.h (double_int_setbit): Declare.
16568         * double-int.c (double_int_setbit): New function.
16569         * rtl.h (immed_double_int_const): Declare.
16570         * emit-rtl.c (immed_double_int_const): New function.
16571         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
16572         and immed_double_int_const functions.
16573         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
16574         expand_copysign_bit):  (Ditto.).
16575         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
16576         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
16577         * dojump.c (prefer_and_bit_test): (Ditto.).
16578         * expr.c (convert_modes, reduce_to_bit_field_precision,
16579         const_vector_from_tree): (Ditto.).
16580         * expmed.c (mask_rtx, lshift_value): (Ditto.).
16581
16582 2010-04-20  Jan Hubicka  <jh@suse.cz>
16583
16584         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
16585         (dump_cgraph_node): Dump new flags.
16586         * cgraph.h (struct cgraph_node): Add flags
16587         reachable_from_other_partition and in_other_partition.
16588         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
16589         other partition can not be removed.
16590         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
16591         the other partition must be output; silence sanity checking on
16592         leaking functions bodies from other paritition.
16593         * lto-cgraph.c (reachable_from_other_partition_p): New function.
16594         (lto_output_node): Output new flags; do not sanity check that inline
16595         clones are output; drop lto_forced_extern_inline_p code; do not mock
16596         visibility flags at partition boundaries.
16597         (add_node_to): New function.
16598         (output_cgraph): Use it to sort functions so masters appear before
16599         clones.
16600         (input_overwrite_node): Input new flags.
16601         * passes.c (ipa_write_summaries): Do not call
16602         lto_new_extern_inline_states.
16603         * lto-section-out.c (forced_extern_inline,
16604         lto_new_extern_inline_states lto_delete_extern_inline_states,
16605         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
16606         * lto-streamer.h (lto_new_extern_inline_states,
16607         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
16608         lto_forced_extern_inline_p): Kill.
16609
16610 2010-04-20  Richard Guenther  <rguenther@suse.de>
16611
16612         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
16613         from vars that can have pointers.
16614         (process_constraint): Dump useless constraints.
16615
16616 2010-04-20  Richard Guenther  <rguenther@suse.de>
16617
16618         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
16619         (dump_sa_points_to_info): Remove asserts.
16620         (init_base_vars): nothing_id isn't an escape point nor does it
16621         have pointers.
16622
16623 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
16624
16625         * tree.h (TYPE_REF_IS_RVALUE): Define.
16626         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
16627         should_move_die_to_comdat, prune_unused_types_walk): Handle
16628         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
16629         (modified_type_die, gen_reference_type_die): Emit
16630         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
16631         if TYPE_REF_IS_RVALUE and -gdwarf-4.
16632
16633 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16634
16635         PR target/43635
16636         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
16637         calls for -fpic -m31 if they have been sibcall optimized.
16638
16639 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
16640
16641         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
16642         ar.lc fixed and call-used.
16643
16644         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
16645
16646 2010-04-19  Jan Hubicka  <jh@suse.cz>
16647
16648         * opts.c (decode_options): Disable whpr incompatible passes.
16649         * lto/lto.c (lto_1_to_1_map): Skip clones.
16650         (read_cgraph_and_symbols): Do not mark everything as needed.
16651         (do_whole_program_analysis): Do map only after optimizing;
16652         set proper cgraph_state; use passmanager.
16653
16654 2010-04-19  DJ Delorie  <dj@redhat.com>
16655
16656         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
16657         POINTER_PLUS_EXPR and fix them.
16658
16659 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
16660
16661         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
16662         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
16663         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
16664         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
16665         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
16666         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
16667         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
16668         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
16669         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
16670         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
16671         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
16672
16673 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
16674
16675         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
16676         (check_cond_move_block): Likewise.
16677         (cond_move_process_if_block): Likewise.
16678         (noce_find_if_block): Improve formatting.
16679         (find_if_header): Pass 0 to memset and tweak conditions.
16680         (cond_exec_find_if_block): Fix long lines and tweak conditions.
16681
16682 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
16683
16684         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
16685         for -gdwarf-4.
16686
16687         PR middle-end/43337
16688         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
16689         with non-local decl doesn't need chain.
16690
16691 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
16692
16693         * ira-color.c (allocno_reload_assign): Avoid accumulating
16694         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
16695
16696 2010-04-19  Martin Jambor  <mjambor@suse.cz>
16697
16698         * gimple.h (create_tmp_reg): Declare.
16699         * gimplify.c (create_tmp_reg): New function.
16700         (gimplify_return_expr): Use create_tmp_reg.
16701         (gimplify_omp_atomic): Likewise.
16702         (gimple_regimplify_operands): Likewise.
16703         * tree-dfa.c (make_rename_temp): Likewise.
16704         * tree-predcom.c (predcom_tmp_var): Likewise.
16705         (reassociate_to_the_same_stmt): Likewise.
16706         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
16707         (get_replaced_param_substitute): Likewise.
16708         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
16709         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
16710         * tree-ssa-pre.c (get_representative_for): Likewise.
16711         (create_expression_by_pieces): Likewise.
16712         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
16713         (create_tailcall_accumulator): Likewise.
16714
16715 2010-04-19  Martin Jambor  <mjambor@suse.cz>
16716
16717         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
16718         new_stmt.
16719         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
16720
16721 2010-04-19  Richard Guenther  <rguenther@suse.de>
16722
16723         PR tree-optimization/43796
16724         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
16725         from SCEV in the lattice.
16726         (vrp_visit_phi_node): Dump change.
16727
16728 2010-04-19  Richard Guenther  <rguenther@suse.de>
16729
16730         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
16731         * configure: Re-generated.
16732
16733 2010-04-19  Richard Guenther  <rguenther@suse.de>
16734
16735         PR tree-optimization/43783
16736         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
16737         constant ARRAY_REF operands two and three if possible.
16738
16739 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
16740
16741         PR target/43766
16742         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
16743
16744 2010-04-19  Jie Zhang  <jie@codesourcery.com>
16745
16746         PR target/43662
16747         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
16748
16749 2010-04-19  Ira Rosen  <irar@il.ibm.com>
16750
16751         PR tree-optimization/37027
16752         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
16753         and macro to access it.
16754         (vectorizable_reduction): Add argument.
16755         (vect_get_slp_defs): Likewise.
16756         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
16757         statements for possible use in SLP.
16758         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
16759         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
16760         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
16761         add new argument.
16762         (vectorizable_reduction): Likewise.
16763         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
16764         vect_get_slp_defs.
16765         (vectorizable_type_demotion, vectorizable_type_promotion,
16766         vectorizable_store): Likewise.
16767         (vect_analyze_stmt): Update call to vectorizable_reduction.
16768         (vect_transform_stmt): Likewise.
16769         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
16770         (vect_build_slp_tree): Fix indentation. Check that there are no loads
16771         from different interleaving chains in same node.
16772         (vect_slp_rearrange_stmts): New function.
16773         (vect_supported_load_permutation_p): Allow load permutations for
16774         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
16775         inside SLP nodes if necessary.
16776         (vect_analyze_slp_instance): Handle reductions.
16777         (vect_analyze_slp): Try to build SLP instances originating from groups
16778         of reductions.
16779         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
16780         (vect_get_constant_vectors): Create initial vectors for reductions
16781         according to reduction code. Add new argument.
16782         (vect_get_slp_defs): Add new argument, pass it to
16783         vect_get_constant_vectors.
16784         (vect_schedule_slp_instance): Remove SLP tree root statements.
16785
16786 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
16787
16788         * tree.h (ENUM_IS_SCOPED): Define.
16789         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
16790         for ENUM_IS_SCOPED enums.
16791
16792 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
16793
16794         * fold-const.c (fold_comparison): Use ssizetype.
16795         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
16796         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
16797         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
16798         * tree-object-size.c (compute_object_sizes): Use size_type_node.
16799
16800         * tree.h (initialize_sizetypes): Remove parameter.
16801         (build_common_tree_nodes): Remove second parameter.
16802         * stor-layout.c (initialize_sizetypes): Remove parameter.
16803         Always create an unsigned type.
16804         (set_sizetype): Assert that the passed type is unsigned and simplify.
16805         * tree.c (build_common_tree_nodes): Remove second parameter.
16806         Adjust call to initialize_sizetypes.
16807         * c-decl.c (c_init_decl_processing): Remove second argument in call to
16808         build_common_tree_nodes.
16809
16810 2010-04-18  Matthias Klose  <doko@ubuntu.com>
16811
16812         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
16813
16814 2010-04-18  Ira Rosen  <irar@il.ibm.com>
16815
16816         PR tree-optimization/43771
16817         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
16818         load permutation doesn't have gaps.
16819
16820 2010-04-18  Jan Hubicka  <jh@suse.cz>
16821
16822         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
16823         (sse_prologue_save_insn expander): Use new pattern.
16824         (sse_prologue_save_insn1): New pattern and splitter.
16825         (sse_prologue_save_insn): Update to deal also with 64bit aligned
16826         blocks.
16827         * i386.c (setup_incoming_varargs_64): Do not compute jump
16828         destination here.
16829         (ix86_gimplify_va_arg): Update alignment needed.
16830         (ix86_local_alignment): Do not align all local arrays to 128bit.
16831
16832 2010-04-17  Jan Hubicka  <jh@suse.cz>
16833
16834         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
16835
16836 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
16837
16838         * arm.md (negdi2): Remove redundant code to force values into a
16839         register.
16840
16841 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
16842
16843         * arm/bpabi.S: Add EABI alignment attributes to objects.
16844         * arm/bpabi-v6m.S: Likewise.
16845         * arm/crti.asm: Likewise.
16846         * arm/crtn.asm: Likewise.
16847         * arm/lib1funcs.asm: Likewise.
16848         * arm/libunwind.S: Likewise.
16849
16850 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
16851
16852         * arm-protos.h (tune_params): New structure.
16853         * arm.c (current_tune): New variable.
16854         (arm_constant_limit): Delete.
16855         (struct processors): Add pointer to the tune parameters.
16856         (arm_slowmul_tune): New tuning option.
16857         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
16858         (all_cores): Adjust to pick up the tuning model.
16859         (arm_constant_limit): New function.
16860         (arm_override_options): Select the appropriate tuning model.  Delete
16861         initialization of arm_const_limit.
16862         (arm_split_constant): Use the new constant-limit model.
16863         (arm_rtx_costs): Pick up the current tuning model.
16864         * arm.md (is_strongarm, is_xscale): Delete.
16865         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
16866         for Xscale variant architectures.
16867         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
16868
16869 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16870
16871         * config/arm/arm.c (arm_gen_constant): Remove unused variable
16872         can_shift.
16873         (arm_rtx_costs_1): Remove unused variable extra_cost.
16874         (arm_unwind_emit_set): Use variable offset.
16875         (thumb1_output_casesi): Remove unused variable flags.
16876
16877 2010-04-16  Jeff Law  <law@redhat.com>
16878
16879         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
16880         needing assignment rather than doing a two-phase assignment.  Remove
16881         unused variable 'm'.
16882
16883 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
16884
16885         PR bootstrap/43767
16886         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
16887
16888 2010-04-16  Doug Kwan  <dougkwan@google.com>
16889
16890         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
16891         (next_operand_entry_id): New static variable.
16892         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
16893         (add_to_ops_vec): Assigned unique ID to operand entry.
16894         (struct oecount_s): New field ID.
16895         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
16896         (undistribute_ops_list): Assign unique IDs to oecounts.
16897         (init_reassoc): reset next_operand_entry_id.
16898
16899 2010-04-16  Doug Kwan  <dougkwan@google.com>
16900
16901         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
16902         missing left parenthesis.
16903
16904 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
16905
16906         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
16907         *btdi_rex64 using SWI48 mode iterator.
16908         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
16909         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
16910         *jcc_btdi_mask_rex64.
16911
16912 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
16913
16914         * double-int.h (tree_to_double_int): Convert to macro.
16915         * double-int.c (tree_to_double_int): Remove.
16916
16917 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
16918
16919         PR debug/43762
16920         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
16921         with want_address 2 and in case a single element list might be
16922         possible, call it again with want_address 0.
16923
16924 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
16925
16926         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
16927         case 'W' print operands for HI mode.
16928         * config/h8300/h8300.h (Y0, Y2) : New constraints.
16929         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
16930         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
16931         * config/h8300/predicate.md (bit_register_indirect_operand): New.
16932
16933         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
16934
16935         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
16936         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
16937         #xx:3 and #xx:4 mode.
16938
16939         * config/h8300/h8300.md (inverted load with HImode dest): Add
16940         support for H8300SX.
16941
16942         * config/h8300/predicate.md (bit_operand): Allow immediate values that
16943         satisfy 'U' constraint.
16944
16945 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16946
16947         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
16948         * configure: Regenerate.
16949         * config.in: Regenerate.
16950         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
16951         works.
16952
16953 2010-04-16  Richard Guenther  <rguenther@suse.de>
16954
16955         * tree.h (struct tree_decl_minimal): Move pt_uid ...
16956         (struct tree_decl_common): ... here.
16957         (DECL_PT_UID): Adjust.
16958         (SET_DECL_PT_UID): Likewise.
16959         (DECL_PT_UID_SET_P): Likewise.
16960
16961 2010-04-16  Richard Guenther  <rguenther@suse.de>
16962
16963         PR tree-optimization/43572
16964         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
16965         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
16966         * tree-flow.h (is_call_clobbered): Remove.
16967         * tree-flow-inline.h (is_call_clobbered): Likewise.
16968         * tree-dfa.c (dump_variable): Do not dump call clobber state.
16969         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
16970         (execute_return_slot_opt): Adjust.
16971         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
16972         check for call clobbered vars here.
16973         (find_tail_calls): Move tailcall verification to the
16974         proper place.
16975
16976 2010-04-16  Diego Novillo  <dnovillo@google.com>
16977
16978         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
16979
16980 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
16981
16982         PR target/40603
16983         * config/arm/arm.md (cbranchqi4): New pattern.
16984         * config/arm/predicates.md (const0_operand,
16985         cbranchqi4_comparison_operator): New predicates.
16986
16987 2010-04-16  Richard Guenther  <rguenther@suse.de>
16988
16989         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
16990         (dump_gimple_stmt): Likewise.
16991
16992 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
16993
16994         * recog.h (struct recog_data): New field is_operator.
16995         (struct insn_operand_data): New field is_operator.
16996         * recog.c (extract_insn): Set recog_data.is_operator.
16997         * genoutput.c (output_operand_data): Emit code to set the
16998         is_operator field.
16999         * reload.c (find_reloads): Use it rather than testing for an
17000         empty constraint string.
17001
17002         PR target/41514
17003         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
17004         If the previous insn is a cbranchsi4_insn with the same arguments,
17005         omit the compare instruction.
17006
17007         * config/arm/arm.md (addsi3_cbranch): If destination is a high
17008         register, inputs must be low registers and we need a low register
17009         scratch.  Handle alternative 2 like alternative 3.
17010
17011 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
17012
17013         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
17014         don't call get_addr on both.  If one expression is a VALUE and
17015         the other a REG, check VALUE's locs if the REG isn't among them.
17016
17017 2010-04-16  Christian Bruel  <christian.bruel@st.com>
17018
17019         * config/sh/sh.h (sh_frame_pointer_required): New function.
17020         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
17021         (flag_omit_frame_pointer) Set.
17022         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
17023         (rounded_frame_size): Adjust size with outgoing_args_size.
17024         (sh_set_return_address): Must return from stack pointer.
17025         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
17026         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
17027         (ACCUMULATE_OUTGOING_ARGS): Define.
17028         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
17029         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
17030
17031 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
17032
17033         PR target/43471
17034         * config/sh/sh.c (sh_legitimize_reload_address): Use
17035         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
17036         Remove a unneeded check for offset_base.
17037
17038 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
17039
17040         * configure: Regenerated.
17041
17042 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17043
17044         * config/s390/s390.c (s390_call_save_register_used): Switch back
17045         to HARD_REGNO_NREGS.
17046
17047 2010-04-15  Richard Guenther  <rguenther@suse.de>
17048
17049         * alias.c (alias_set_subset_of): Handle alias-set zero
17050         child properly.
17051
17052 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
17053             Julian Brown  <julian@codesourcery.com>
17054
17055         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
17056         alternatives according to use of high and low regs.
17057         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
17058         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
17059         optimizing for size on Thumb-2.
17060
17061 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
17062
17063         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
17064
17065 2010-04-15  Richard Guenther  <rguenther@suse.de>
17066
17067         * tree-ssa-structalias.c (struct variable_info): Add
17068         is_fn_info flag.
17069         (new_var_info): Initialize it.
17070         (dump_constraints): Support printing last added constraints.
17071         (debug_constraints): Adjust.
17072         (dump_constraint_graph): Likewise.
17073         (make_heapvar_for): Check for NULL cfun.
17074         (get_function_part_constraint): New function.
17075         (get_fi_for_callee): Likewise.
17076         (find_func_aliases): Properly implement IPA PTA constraints.
17077         (process_ipa_clobber): New function.
17078         (find_func_clobbers): Likewise.
17079         (insert_into_field_list_sorted): Remove.
17080         (create_function_info_for): Properly allocate vars for IPA mode.
17081         Do not use insert_into_field_list_sorted.
17082         (create_variable_info_for): Properly generate constraints for
17083         global vars in IPA mode.
17084         (dump_solution_for_var): Always dump the solution.
17085         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
17086         (find_what_var_points_to): Adjust.
17087         (pt_solution_set): Change.
17088         (pt_solution_ior_into): New function.
17089         (pt_solution_empty_p): Export.
17090         (pt_solution_includes_global): Adjust.
17091         (pt_solution_includes_1): Likewise.
17092         (pt_solutions_intersect_1): Likewise.
17093         (dump_sa_points_to_info): Check some invariants.
17094         (solve_constraints): Move constraint dumping ...
17095         (compute_points_to_sets): ... here.
17096         (ipa_pta_execute): ... and here.
17097         (compute_may_aliases): Do not re-compute points-to info
17098         locally if IPA info is available.
17099         (ipa_escaped_pt): New global var.
17100         (ipa_pta_execute): Properly implement IPA PTA.
17101         * tree-into-ssa.c (dump_decl_set): Support dumping
17102         decls not in referenced-vars.
17103         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
17104         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
17105         (dump_points_to_solution): Likewise.
17106         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
17107         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
17108         (remap_gimple_stmt): Reset call clobber/use information if necessary.
17109         (copy_decl_to_var): Copy DECL_PT_UID.
17110         (copy_result_decl_to_var): Likewise.
17111         * tree.c (make_node_stat): Initialize DECL_PT_UID.
17112         (copy_node_stat): Copy it.
17113         * tree.h (DECL_PT_UID): New macro.
17114         (SET_DECL_PT_UID): Likewise.
17115         (DECL_PT_UID_SET_P): Likewise.
17116         (struct tree_decl_minimal): Add pt_uid member.
17117         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
17118         (pt_solution_empty_p): Declare.
17119         (pt_solution_set): Adjust.
17120         (ipa_escaped_pt): Declare.
17121         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
17122         * gimple-pretty-print.c (pp_points_to_solution): New function.
17123         (dump_gimple_call): Dump call clobber/use information.
17124         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
17125         * tree-pass.h (TDF_ALIAS): New dump option.
17126         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
17127         * doc/invoke.texi (-fipa-pta): Update documentation.
17128
17129 2010-04-15  Richard Guenther  <rguenther@suse.de>
17130
17131         * Makefile.in (OBJS-common): Add gimple-fold.o.
17132         (gimple-fold.o): New rule.
17133         * tree.h (maybe_fold_offset_to_reference,
17134         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
17135         prototypes ...
17136         * gimple.h: ... here.
17137         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
17138         may_propagate_address_into_dereference): Move prototypes ...
17139         * gimple.h: ... here.
17140         * tree-ssa-ccp.c (get_symbol_constant_value,
17141         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
17142         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
17143         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
17144         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
17145         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
17146         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
17147         gimplify_and_update_call_from_tree): Move ...
17148         * gimple-fold.c: ... here.  New file.
17149         (ccp_fold_builtin): Rename to ...
17150         (gimple_fold_builtin): ... this.
17151         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
17152
17153 2010-04-15  Richard Guenther  <rguenther@suse.de>
17154
17155         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
17156         fit_double_type, force_fit_type_double, add_double_with_sign,
17157         neg_double, mul_double_with_sign, lshift_double, rshift_double,
17158         lrotate_double, rrotate_double, div_and_round_double): Move ...
17159         * double-int.c: ... here.
17160         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
17161         add_double, neg_double, mul_double_with_sign, mul_double,
17162         lshift_double, rshift_double, lrotate_double, rrotate_double,
17163         div_and_round_double): Move prototypes ...
17164         * double-int.h: ... here.
17165
17166 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
17167
17168         PR target/43742
17169         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
17170         matching constraints to ensure inputs match the output.
17171
17172 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
17173
17174         PR target/43742
17175         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
17176         in an input-only operand.
17177
17178 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
17179
17180         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
17181         (double_int_not, double_int_lshift, double_int_rshift): Declare.
17182         (double_int_negative_p): Convert to static inline function.
17183         * double-int.c (double_int_lshift, double_int_lshift): New functions.
17184         (double_int_negative_p): Remove.
17185         * tree.h (lshift_double, rshift_double):
17186         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
17187         * fold-const.c (fold_convert_const_int_from_real,
17188         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
17189         (lshift_double): Change type of arith argument to bool.
17190         (rshift_double): Change type of arith argument to bool. Correct
17191         comment.
17192         * expmed.c (mask_rtx, lshift_value): (Ditto.).
17193
17194 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
17195
17196         PR target/21803
17197         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
17198         at the start and end of the then/else blocks, and omit them from the
17199         conversion.
17200         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
17201         argument; all callers changed.  Pass zero to old_insns_match_p instead.
17202         (flow_find_head_matching_sequence): New function.
17203         (old_insns_match_p): Check REG_EH_REGION notes for calls.
17204         * basic-block.h (flow_find_cross_jump,
17205         flow_find_head_matching_sequence): Declare functions.
17206
17207 2010-04-14  Jason Merrill  <jason@redhat.com>
17208
17209         PR c++/36625
17210         * c-common.c (attribute_takes_identifier_p): New fn.
17211         * c-common.h: Declare it.
17212
17213 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17214
17215         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
17216         splitter condition.
17217         (*udivmod<mode>4): Ditto.
17218
17219 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17220
17221         * config/i386/i386.md (maxmin_int): Rename code attribute from
17222         maxminiprefix and update all users.
17223         (maxmin_float): Ditto from maxminfprefix.
17224         (logic): Ditto from logicprefix.
17225         (absneg_mnemonic): Ditto from absnegprefix.
17226         * config/i386/mmx.md: Update all users of maxminiprefix,
17227         maxminfprefix and logicprefix for rename.
17228         * config/i386/sse.md: Ditto.
17229         * config/i386/sync.md (sync_<code><mode>): Update for
17230         logicprefix rename.
17231
17232 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17233
17234         PR 42966
17235         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
17236         warnings converted to errors.
17237
17238 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17239
17240         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
17241         used insn_type variable.
17242         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
17243         to avoid set-but-not-used warning.
17244
17245 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17246
17247         * df-core.c (df_ref_debug): Change format string placeholder
17248         from 0x%x to %#x.
17249         * dwarf2asm.c (dw2_asm_output_data_raw,
17250         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
17251         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
17252         * dwarf2out.c (output_cfi, output_cfi_directive,
17253         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
17254         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
17255         Ditto.
17256         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
17257         * print-rtl.c (print_rtx): Ditto.
17258
17259 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
17260
17261         PR middle-end/42694
17262         * builtins.c (expand_builtin_pow_root): New function to expand pow
17263         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
17264         series of sqrt and cbrt calls under -ffast-math.
17265         (expand_builtin_pow): Call it.
17266
17267 2010-04-14  Michael Matz  <matz@suse.de>
17268
17269         PR tree-optimization/42963
17270         * tree-cfg.c (touched_switch_bbs): New static variable.
17271         (group_case_labels_stmt): New function broken out from ...
17272         (group_case_labels): ... here, use the above.
17273         (start_recording_case_labels): Allocate touched_switch_bbs.
17274         (end_recording_case_labels): Deallocate it, call
17275         group_case_labels_stmt.
17276         (gimple_redirect_edge_and_branch): Remember index of affected BB.
17277
17278 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17279
17280         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
17281         from insn template.
17282
17283 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17284
17285         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
17286
17287 2010-04-13  Jan Hubicka  <jh@suse.cz>
17288
17289         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
17290         of optimized out static functions.
17291         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
17292         cost computation.  Also sanity check for overflows.
17293         (update_caller_keys): Update cgraph_edge_badness call; properly
17294         update fibheap and sanity check that it is up to date.
17295         (add_new_edges_to_heap): Update cgraph_edge_badness.
17296         (cgraph_decide_inlining_of_small_function): Likewise;
17297         add sanity checking that badness in heap is up to date;
17298         improve dumping of reason; Update badness of calls to the
17299         offline copy of function currently inlined; dump badness
17300         of functions not inlined because of unit growth limits.
17301
17302 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
17303
17304         PR middle-end/32628
17305         * c-common.c (pointer_int_sum): Disregard overflow that occured only
17306         because of sign-extension change when converting to sizetype here...
17307         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
17308
17309         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
17310         the folding to constants.  Remove redundant final conversion.
17311         (fold_binary) <associate>: Do not associate if the re-association of
17312         constants alone overflows.
17313         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
17314         to the end of the list.
17315         (multiple_of_p) <COND_EXPR>: New case.
17316
17317 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17318
17319         * opt-functions.awk (opt_sanitized_name): New.
17320         (opt_enum): New.
17321         * optc-gen.awk: Use it
17322         * opth-gen.awk: Use it.
17323
17324 2010-04-13  Martin Jambor  <mjambor@suse.cz>
17325
17326         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
17327         (sra_modify_assign): Delete stmts loading dead data even if racc has no
17328         children.  Call replace_uses_with_default_def_ssa_name to handle
17329         SSA_NAES on lhs.
17330
17331 2010-04-13  Michael Matz  <matz@suse.de>
17332
17333         PR middle-end/43730
17334         * builtins.c (expand_builtin_interclass_mathfn): Also create
17335         a register if the predicate doesn't match.
17336
17337 2010-04-13  Diego Novillo  <dnovillo@google.com>
17338
17339         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
17340         * c-pch.c: Include timevar.h.
17341         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
17342         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
17343         * ggc-common.c: Include timevar.h.
17344         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
17345         * timevar.def (TV_PCH_SAVE): Define.
17346         (TV_PCH_CPP_SAVE): Define.
17347         (TV_PCH_PTR_REALLOC): Define.
17348         (TV_PCH_PTR_SORT): Define.
17349         (TV_PCH_RESTORE): Define.
17350         (TV_PCH_CPP_RESTORE): Define.
17351
17352 2010-04-13  Michael Matz  <matz@suse.de>
17353
17354         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
17355         into MINUS_EXPRs.
17356         (can_reassociate_p): New function.
17357         (break_up_subtract_bb, reassociate_bb): Use it.
17358
17359 2010-04-13  Richard Guenther  <rguenther@suse.de>
17360
17361         PR bootstrap/43737
17362         * builtins.c (c_readstr): Fix assert.
17363
17364 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
17365
17366         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
17367         when generating cltd insn.
17368
17369         (*ashl<mode>3_1): Remove special handling for register operand 2.
17370         (*ashlsi3_1_zext): Ditto.
17371         (*ashlhi3_1): Ditto.
17372         (*ashlhi3_1_lea): Ditto.
17373         (*ashlqi3_1): Ditto.
17374         (*ashlqi3_1_lea): Ditto.
17375         (*<shiftrt_insn><mode>3_1): Ditto.
17376         (*<shiftrt_insn>si3_1_zext): Ditto.
17377         (*<shiftrt_insn>qi3_1_slp): Ditto.
17378         (*<rotate_insn><mode>3_1): Ditto.
17379         (*<rotate_insn>si3_1_zext): Ditto.
17380         (*<rotate_insn>qi3_1_slp): Ditto.
17381
17382 2010-04-13  Richard Guenther  <rguenther@suse.de>
17383
17384         * tree-ssa-structalias.c (callused_id): Remove.
17385         (call_stmt_vars): New.
17386         (get_call_vi): Likewise.
17387         (lookup_call_use_vi): Likewise.
17388         (lookup_call_clobber_vi): Likewise.
17389         (get_call_use_vi): Likewise.
17390         (get_call_clobber_vi): Likewise.
17391         (make_transitive_closure_constraints): Likewise.
17392         (handle_const_call): Adjust to do per-call call-used handling.
17393         (handle_pure_call): Likewise.
17394         (find_what_var_points_to): Remove general callused handling.
17395         (init_base_vars): Likewise.
17396         (init_alias_vars): Initialize call_stmt_vars.
17397         (compute_points_to_sets): Process call-used and call-clobbered
17398         vars for call statements.
17399         (delete_points_to_sets): Free call_stmt_vars.
17400
17401 2010-04-13  Richard Guenther  <rguenther@suse.de>
17402
17403         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
17404         Only add RW dependence for dependence distance zero.
17405         Adjust maximal vectorization factor according to dependences.
17406         Move alignment handling ...
17407         (vect_find_same_alignment_drs): ... here.  New function.
17408         (vect_analyze_data_ref_dependences): Adjust.
17409         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
17410         (vect_analyze_data_refs): Adjust minimal vectorization factor
17411         according to data references.
17412         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
17413         dependences before determining the vectorization factor.
17414         Analyze alignment after determining the vectorization factor.
17415         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
17416         dependences before alignment.
17417         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
17418         Adjust prototype.
17419         (vect_analyze_data_refs): Likewise.
17420         (MAX_VECTORIZATION_FACTOR): New define.
17421
17422 2010-04-13  Duncan Sands  <baldrick@free.fr>
17423
17424         * except.h (lang_eh_type_covers): Remove.
17425         * except.c (lang_eh_type_covers): Likewise.
17426
17427 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17428             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17429
17430         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
17431         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
17432         UNITS_PER_LONG where it is ABI relevant.
17433         (s390_return_addr_rtx): Likewise.
17434         (s390_back_chain_rtx): Likewise.
17435         (s390_frame_area): Likewise.
17436         (s390_frame_info): Likewise.
17437         (s390_initial_elimination_offset): Likewise.
17438         (save_gprs): Likewise.
17439         (s390_emit_prologue): Likewise.
17440         (s390_emit_epilogue): Likewise.
17441         (s390_function_arg_advance): Likewise.
17442         (s390_function_arg): Likewise.
17443         (s390_va_start): Likewise.
17444         (s390_gimplify_va_arg): Likewise.
17445         (s390_function_profiler): Likewise.
17446         (s390_optimize_prologue): Likewise.
17447         (s390_rtx_costs): Likewise.
17448         (s390_secondary_reload): Likewise.
17449         (s390_promote_function_mode): Likewise.
17450         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
17451         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
17452         registers available.
17453         (s390_unwind_word_mode): New function.
17454         (s390_function_value): Split 64 bit values into register pair if
17455         used as return value.
17456         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
17457         function call parameters.  Handle parallels.
17458         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
17459         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
17460         (DWARF_CIE_DATA_ALIGNMENT): New macro.
17461         (s390_expand_setmem): Remove unused variable src_addr.
17462         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
17463         deal with 64 bit registers.
17464         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
17465         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
17466         (UNITS_PER_LONG): New macro.
17467         * libjava/include/s390-signal.h: Define extended ucontext
17468         structure containing the upper halfs of the 64 bit registers.
17469
17470 2010-04-13  Simon Baldwin  <simonb@google.com>
17471
17472         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
17473
17474 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
17475
17476         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
17477         rvalue on the RHS if the LHS is of a non-renamable type.
17478         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
17479
17480 2010-04-13  Matthias Klose  <doko@ubuntu.com>
17481
17482         * gcc.c (cc1_options): Handle -iplugindir before processing
17483         the cc1 spec. Only add -iplugindir once.
17484         (cpp_unique_options): Add -iplugindir option if -fplugin* options
17485         found.
17486         * common.opt (iplugindir): Remove `Separate' property, initialize.
17487         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
17488         option.
17489         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
17490         (distclean): Remove plugin dir.
17491         * doc/invoke.texi: Document -iplugindir.
17492
17493 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
17494
17495         * doc/plugins.texi (Loading Plugins): Document short
17496         -fplugin=foo option.
17497         (Plugin API): Mention default_plugin_dir_name function.
17498
17499         * gcc.c (find_file_spec_function): Add new declaration.
17500         (static_spec_func): Use it for "find-file".
17501         (find_file_spec_function): Add new function.
17502         (cc1_options): Add -iplugindir option if -fplugin* options found.
17503
17504         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
17505
17506         * plugin.c (add_new_plugin): Updated comment, and handle short
17507         plugin name.
17508         (default_plugin_dir_name): Added new function.
17509
17510         * common.opt (iplugindir): New option to set the plugin directory.
17511
17512 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
17513
17514         * config/i386/i386.md (any_rotate): New code iterator.
17515         (rotate_insn): New code attribute.
17516         (rotate): Ditto.
17517         (SWIM124): New mode iterator.
17518         (<rotate_insn>ti3): New expander.
17519         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
17520         any_rotate code iterator.
17521         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
17522         using any_rotate code iterator and SWIM124 mode iterator.
17523         (ix86_rotlti3): New insn_and_split pattern.
17524         (ix86_rotrti3): Ditto.
17525         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
17526         ix86_rotl{di,ti}3 patterns.
17527         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
17528         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
17529         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
17530         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
17531         code iterator and SWI mode iterator.
17532         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
17533         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
17534         code iterator.
17535         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
17536         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
17537         (bswap rotatert splitter): Add splitter.
17538         (bswap splitter): Macroize splitter using any_rotate code iterator.
17539         Add insn predicate to split only for TARGET_USE_XCHGB or when
17540         optimizing function for size.
17541
17542 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
17543
17544         * config/pa/pa.c (emit_move_sequence): Remove use of
17545         deleted variable flag_argument_noalias.
17546
17547 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17548
17549         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
17550         configurations.
17551         Add to unsupported targets list.
17552         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
17553         sparc*-sun-solaris2.[567]* from target lists.
17554         * configure: Regenerate.
17555         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
17556         removal.
17557         Remove Solaris 7 patch references.
17558         (Specific, sparc-sun-solaris2.7): Removed.
17559         (sparc-sun-solaris2*): Update Solaris 7 example.
17560         (sparc64-*-solaris2*): Likewise.
17561
17562 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17563
17564         * config.build (alpha*-dec-osf4*): Remove.
17565         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
17566         of obsolete configurations.
17567         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
17568         support.
17569         * config/alpha/t-osf4: Renamed to ...
17570         * config/alpha/t-osf5: ... this.
17571         * config/alpha/osf.h: Renamed to ...
17572         * config/alpha/osf5.h: ... this.
17573         Merged old osf5.h contents.
17574         Update comments.
17575         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
17576         (EXTRA_SPECS): Removed.
17577         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
17578         reflect removal of Tru64 UNIX V4.0/V5.0 support.
17579         Document that.
17580
17581 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17582
17583         * doc/contrib.texi (Contributors, Rainer Orth): Update.
17584
17585 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
17586
17587         PR/43702
17588         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
17589         __thiscall convention.
17590
17591 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
17592
17593         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
17594         orig_base.
17595         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
17596
17597 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
17598
17599         * function.c (assign_parms_initialize_all): Add unused attribute
17600         to fntype.
17601
17602 2010-04-12  Richard Guenther  <rguenther@suse.de>
17603
17604         * gsstruct.def (GSS_CALL): New.
17605         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
17606         * gimple.h: Include tree-ssa-alias.h.
17607         (struct gimple_statement_call): New.
17608         (union gimple_statement_struct_d): Add gimple_call member.
17609         (gimple_call_reset_alias_info): Declare.
17610         (gimple_call_use_set): New function.
17611         (gimple_call_clobber_set): Likewise.
17612         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
17613         * gimple.c (gimple_call_reset_alias_info): New function.
17614         (gimple_build_call_1): Call it.
17615         * lto-streamer-in.c (input_gimple_stmt): Likewise.
17616         * tree-inline.c (remap_gimple_stmt): Likewise.
17617         (expand_call_inline): Remove callused handling.
17618         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
17619         * tree-dfa.c (dump_variable): Likewise.
17620         * tree-parloops.c (parallelize_loops): Likewise.
17621         * tree-ssa.c (init_tree_ssa): Likewise.
17622         (delete_tree_ssa): Likewise.
17623         * tree-flow-inline.h (is_call_used): Remove.
17624         * tree-flow.h (struct gimple_df): Remove callused member.
17625         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
17626         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
17627         (ref_maybe_used_by_call_p_1): Simplify.
17628         (call_may_clobber_ref_p_1): Likewise.
17629         * tree-ssa-structalias.c (compute_points_to_sets): Set
17630         the call stmt used and clobbered sets.
17631         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
17632         (find_tail_calls): Verify the tail call.
17633
17634 2010-04-12  Richard Guenther  <rguenther@suse.de>
17635
17636         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
17637         single-iteration always-inline inlining.
17638         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
17639         (cgraph_decide_inlining): Do not handle always-inline specially.
17640         (try_inline): Remove always-inline cycle detection special case.
17641         Do not recurse on always-inlines.
17642         (cgraph_early_inlining): Do not iterate if not optimizing.
17643         (cgraph_gate_early_inlining): remove.
17644         (pass_early_inline): Run unconditionally.
17645         (gate_cgraph_decide_inlining): New function.
17646         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
17647         not inlining or optimizing.
17648         (cgraph_decide_inlining_of_small_functions): Also consider
17649         always-inline functions.
17650         (cgraph_default_inline_p): Return true for nodes which should
17651         disregard inline limits.
17652         (estimate_function_body_sizes): Assume zero size and time for
17653         nodes which are marked as disregarding inline limits.
17654         (cgraph_decide_recursive_inlining): Do not perform recursive
17655         inlining on always-inline nodes.
17656
17657 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
17658
17659         PR bootstrap/43699
17660         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
17661         for exprs satisfying handled_component_p.
17662
17663 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
17664
17665         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
17666         non-constant aggregate elements.
17667
17668         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
17669         is a real initialization.
17670
17671 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
17672
17673         PR c/36774
17674         * c-decl.c (start_function): Move forward check for nested function.
17675
17676 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
17677
17678         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
17679         * config/sh/sh.c: Include reload.h.
17680         (sh_legitimize_reload_address): New.
17681         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
17682         sh_legitimize_reload_address.
17683
17684 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
17685
17686         * config/sh/sh.md (*movqi_pop): New insn pattern.
17687         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
17688
17689 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
17690
17691         * config/i386/i386.md (any_shiftrt): New code iterator.
17692         (shiftrt_insn): New code attribute.
17693         (shiftrt): Ditto.
17694         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
17695         using any_shiftrt code iterator.
17696         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
17697         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
17698         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
17699         pattern from corresponding peephole2 patterns.
17700         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
17701         using any_shiftrt code iterator.
17702         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
17703         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
17704         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
17705         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
17706         *{ashr,lshr}<mode>3_cmp_zext.
17707         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
17708
17709 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
17710
17711         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
17712         scratch register.
17713         (*lshr<mode>3_cconly): Ditto.
17714
17715 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
17716
17717         * config/i386/i386.md (lshr<mode>3): Macroize expander from
17718         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
17719         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
17720         pattern from *lshr{di,ti}3_1 and corresponding splitters using
17721         DWI mode iterator.
17722         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
17723         from corresponding peephole2 patterns.
17724         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
17725         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
17726         and *lshrdi3_1_rex64 using SWI mode iterator.
17727         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
17728         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
17729         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
17730         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
17731         and *lshrdi3_cmp_rex64 using SWI mode iterator.
17732         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
17733         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
17734         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
17735         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
17736         SWI mode iterator.
17737
17738 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
17739
17740         * config/i386/i386.md (ashr<mode>3): Macroize expander from
17741         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
17742         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
17743         pattern from *ashr{di,ti}3_1 and corresponding splitters using
17744         DWI mode iterator.
17745         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
17746         from corresponding peephole2 patterns.
17747         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
17748         (ashrsi3_cvt): Rename from ashrsi3_31.
17749         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
17750         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
17751         and x86_64_shift_adj_3 using SWI48 mode iterator.
17752         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
17753         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
17754         and *ashrdi3_1_rex64 using SWI mode iterator.
17755         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
17756         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
17757         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
17758         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
17759         and *ashrdi3_cmp_rex64 using SWI mode iterator.
17760         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
17761         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
17762         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
17763         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
17764         SWI mode iterator.
17765         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
17766         * config/i386/i386.c (ix86_split_ashr): Update for renamed
17767         x86_shift<mode>_adj_3 expanders.
17768
17769 2010-04-10  Wei Guozhi  <carrot@google.com>
17770
17771         PR target/42601
17772         * config/arm/arm.c (arm_pic_static_addr): New function.
17773         (legitimize_pic_address): Call arm_pic_static_addr when it detects
17774         a static symbol.
17775         (arm_output_addr_const_extra): Output expression for new pattern.
17776         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
17777
17778 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
17779
17780         * ira-costs.c (record_reg_classes): Ignore alternatives that are
17781         not enabled.
17782
17783         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
17784         * web.c: Include "insn-config.h" and "recog.h".
17785         (union_match_dups): New function.
17786         (web_main): Call it.
17787         (union_defs): Don't try to recognize match_dups.
17788
17789         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
17790         if doing so would replace the entire pattern.
17791
17792 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
17793
17794         PR target/43707
17795         PR target/43709
17796         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
17797         and splitter pattern.  Change splitter operand 1 predicate to
17798         nonmemory_operand.
17799
17800 2010-04-09  Martin Jambor  <mjambor@suse.cz>
17801
17802         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
17803         lattices are addresses of CONST_DECLs with the same initial value.
17804         (ipcp_print_all_lattices): Print values of CONST_DECLs.
17805         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
17806
17807 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
17808             Bernd Schmidt  <bernds@codesourcery.com>
17809
17810         * loop-invariant.c (replace_uses): New static function.
17811         (move_invariant_reg): Use it to ensure we can replace the uses.
17812
17813 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
17814
17815         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
17816         function template.
17817         (picochip_override_options): Enable section anchors only above -O1.
17818         (picochip_reorg): Fixed a couple of build warnings.
17819
17820 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17821
17822         * configure.ac (plugin -rdynamic test): Log result.
17823         * configure: Regenerate.
17824         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
17825         (RDYNAMIC_SPEC): Define.
17826         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
17827
17828 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17829
17830         * configure.ac: Determine Sun ld version numbers.
17831         (comdat_group): Restrict GNU ld version checks to gld.
17832         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
17833         (enable_comdat): Support --enable-comdat.
17834         * configure: Regenerate.
17835         * doc/install.texi (Configuration): Document --enable-comdat.
17836
17837 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17838
17839         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
17840         * config/sol2-gld.h: ... here.
17841         * config.gcc (sparc*-*-solaris2*): Reflect this.
17842         (i[34567]86-*-solaris2*): Use it.
17843
17844 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
17845
17846         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
17847         setup_clocks_p.
17848         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
17849
17850 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17851
17852         PR 42965
17853         * diagnostic.c (diagnostic_initialize): Initialize
17854         some_warnings_are_errors.
17855         (diagnostic_finish): New.
17856         (diagnostic_action_after_output): Call it before exiting.
17857         (diagnostic_report_diagnostic): Do not print message here. Set
17858         some_warnings_are_errors.
17859         * diagnostic.h (diagnostic_context): Delete
17860         issue_warnings_are_errors_message. Add some_warnings_are_errors.
17861         (diagnostic_finish): Declare.
17862         * toplev.c (toplev_main): Call it before exit.
17863
17864 2010-04-09  Jason Merrill  <jason@redhat.com>
17865
17866         PR c++/42623
17867         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
17868         for incomplete type.
17869
17870         PR c++/41788
17871         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
17872         based on a warning flag.
17873
17874 2010-04-09  Richard Guenther  <rguenther@suse.de>
17875
17876         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
17877
17878 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
17879
17880         PR bootstrap/43684
17881         * varasm.c (default_assemble_visibility): Wrap vars that are
17882         set, but unused, by targets without GAS.
17883         * config/rs6000/rs6000.c (paired_emit_vector_compare):
17884         Remove set, but unused, vars.
17885         (rs6000_legitimize_tls_address): Likewise.
17886         (altivec_expand_dst_builtin): Likewise.
17887         * config/darwin.c (machopic_classify_symbol): Likewise.
17888         (machopic_indirection_name): Likewise.
17889
17890 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
17891
17892         * config/i386/i386.md (DWI): New mode iterator.
17893         (S): New mode attribute.
17894         (shift_operand): Ditto.
17895         (shift_immediate_operand): Ditto.
17896         (ashl_input_operand): Ditto.
17897         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
17898         using SDWIM mode iterator.
17899         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
17900         pattern from *ashl{di,ti}3_1 and corresponding splitters using
17901         DWI mode iterator.
17902         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
17903         from corresponding peephole2 patterns.
17904         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
17905         and x86_64_shift_adj_1 using SWI48 mode iterator.
17906         (x86_shift<mode>_adj_2): Ditto.
17907         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
17908         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
17909         using SWI48 mode iterator.
17910         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
17911         *ashldi3_cmp_rex64 using SWI mode iterator.
17912         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
17913         *ashldi3_cconly_rex64 using SWI mode iterator.
17914         * config/i386/i386.c (ix86_split_ashl): Update for renamed
17915         x86_shift<mode>_adj_{1,2}.
17916         (ix86_split_ashr): Ditto.
17917         (ix86_split_lshr): Ditto.
17918
17919 2010-04-09  Richard Guenther  <rguenther@suse.de>
17920
17921         * target.h (builtin_conversion): Pass in input and output types.
17922         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
17923         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
17924         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
17925         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
17926
17927         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
17928         Handle AVX modes.
17929         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
17930
17931 2010-04-09  Richard Guenther  <rguenther@suse.de>
17932
17933         PR target/43152
17934         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
17935
17936 2010-04-09  Richard Guenther  <rguenther@suse.de>
17937
17938         * tree-vectorizer.h (struct _stmt_vec_info): Document
17939         that vectype is the type of the LHS.
17940         (supportable_widening_operation, supportable_narrowing_operation):
17941         Get both input and output vector types as arguments.
17942         (vect_is_simple_use_1): Declare.
17943         (get_same_sized_vectype): Likewise.
17944         * tree-vect-loop.c (vect_determine_vectorization_factor):
17945         Set STMT_VINFO_VECTYPE to the vector type of the def.
17946         (vectorizable_reduction): Adjust.
17947         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
17948         Adjust.  Specify the output vector type.
17949         (vect_pattern_recog_1): Adjust.
17950         * tree-vect-stmts.c (get_same_sized_vectype): New function.
17951         (vectorizable_call): Adjust.
17952         (vectorizable_conversion): Likewise.
17953         (vectorizable_operation): Likewise.
17954         (vectorizable_type_demotion): Likewise.
17955         (vectorizable_type_promotion): Likewise.
17956         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
17957         the def.
17958         (vect_is_simple_use_1): New function.
17959         (supportable_widening_operation): Get both input and output
17960         vector types.
17961         (supportable_narrowing_operation): Likewise.
17962         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
17963
17964 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
17965
17966         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
17967         __thiscall and _thiscall as predefined macros.
17968         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
17969         thiscall attribute handling.
17970         (ix86_comp_type_attributes): Likewise.
17971         (ix86_function_regparm): Likewise.
17972         (ix86_return_pops_args): Likewise.
17973         (init_cumulative_args): Likewise.
17974         (find_drap_reg): Likewise.
17975         (ix86_static_chain): Likewise.
17976         (x86_this_parameter): Likewise.
17977         (x86_output_mi_thunk): Likewise.
17978         (ix86_attribute_table): Add description for thiscall attribute.
17979         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
17980         * doc/extend.texi: Add documentation for thiscall.
17981
17982 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17983
17984         PR c++/28584
17985         * c.opt (Wint-to-pointer-cast): Available in C++.
17986         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
17987
17988 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
17989
17990         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
17991         * calls.c (expand_call): Pass the function type to aggregate_value_p.
17992         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
17993         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
17994         function type instead.  Reorder and simplify checks.
17995
17996         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
17997
17998 2010-04-08  Jing Yu  <jingyu@google.com>
17999             Zdenek Dvorak  <ook@ucw.cz>
18000
18001         PR tree-optimization/42720
18002         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
18003         loop unswitch conditions here from ...
18004         (tree_unswitch_single_loop): ... here.
18005
18006 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
18007
18008         * tree-if-conv.c: Fix comments and simplify logic.
18009
18010 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
18011
18012         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
18013         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
18014         (main_tree_if_conversion): Update call to tree_if_conversion.
18015
18016 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18017
18018         PR 42485
18019         * doc/invoke.texi (-b,-V): Delete.
18020         * doc/tm.texi: Do not mention -b.
18021         * gcc.c (display_help): Delete -b and -V.
18022         (process_command): Delete -b and -V.
18023         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
18024
18025 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
18026             Wolfgang Gellerich  <gellerich@de.ibm.com>
18027
18028         Implement target hook for loop unrolling
18029         * target.h (loop_unroll_adjust): Add a new target hook function.
18030         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
18031         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
18032         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
18033         (s390_loop_unroll_adjust): Implement the new target hook for s390.
18034         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
18035         target hook.
18036         (decide_unroll_stupid): Likewise.
18037
18038 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18039
18040         PR target/43643
18041         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
18042
18043 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18044
18045         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
18046         (Specific, *-*-solaris2*): Likewise.
18047         Don't prefer Sun as over GNU as.
18048
18049 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
18050
18051         * config/s390/s390.c (override_options): Adjust the z10 defaults
18052         for max-unroll-times, max-completely-peeled-insns
18053         and max-completely-peel-times.
18054
18055 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18056
18057         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
18058         instructions for z10.
18059         (s390_expand_setmem): Likewise.
18060         (s390_expand_cmpmem): Likewise.
18061
18062 2010-04-08  Richard Guenther  <rguenther@suse.de>
18063
18064         PR tree-optimization/43679
18065         * tree-ssa-pre.c (eliminate): Only propagate copies.
18066
18067 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
18068
18069         PR bootstrap/43681
18070         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
18071         set but not used variable warning.
18072
18073 2010-04-08  Wei Guozhi  <carrot@google.com>
18074
18075         PR target/41653
18076         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
18077         (arm_size_rtx_costs): Call the new function when optimized for size.
18078
18079 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
18080
18081         PR debug/43670
18082         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
18083         op0 is not a MEM, just return NULL instead of assertion
18084         failure.
18085         (discover_nonconstant_array_refs): Don't walk debug stmts.
18086
18087 2010-04-08  Doug Kwan  <dougkwan@google.com>
18088
18089         * configure.ac: Recognize gold and do not use its version number
18090         to test ld features.
18091         * configure: Regenerate.
18092
18093 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
18094
18095         PR middle-end/40815
18096         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
18097         (negate_value): Move code to push elements to broken_up_substracts ...
18098         (eliminate_plus_minus_pair): ... here.  Push operands that have no
18099         negative pair to plus_negates.
18100         (repropagate_negates, init_reassoc, fini_reassoc): Update.
18101
18102 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18103
18104         * doc/install.texi (Configuration): Move description of
18105         --enable-lto, --with-libelf*, --enable-gold from Java section to
18106         general section.
18107
18108         * doc/generic.texi (Working with declarations)
18109         (Function Properties, C and C++ Trees): Fix typos.
18110         * doc/sourcebuild.texi (Top Level): Likewise.
18111
18112 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
18113
18114         PR c/18624
18115         * tree.h (DECL_READ_P): Define.
18116         (struct tree_decl_common): Add decl_read_flag.
18117         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
18118         a set but not used warning.
18119         (merge_decls): Merge DECL_READ_P flag.
18120         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
18121         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
18122         * c-common.c (handle_used_attribute, handle_unused_attribute):
18123         Likewise.
18124         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
18125         New prototypes.
18126         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
18127         New functions.
18128         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
18129         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
18130         c_parser_binary_expression, c_parser_cast_expression,
18131         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
18132         Call default_function_array_read_conversion instead of
18133         default_function_array_conversion where needed.
18134         (c_parser_unary_expression, c_parser_conditional_expression,
18135         c_parser_postfix_expression_after_primary, c_parser_initelt):
18136         Likewise.  Call mark_exp_read where needed.
18137         (c_parser_statement_after_labels, c_parser_asm_operands,
18138         c_parser_typeof_specifier, c_parser_sizeof_expression,
18139         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
18140         where needed.
18141         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
18142         New.
18143         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
18144         (warn_unused_but_set_parameter): Default to warn_unused
18145         && extra_warnings.
18146         * doc/invoke.texi: Document -Wunused-but-set-variable and
18147         -Wunused-but-set-parameter.
18148
18149         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
18150         used count variable.
18151         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
18152         when operandN variables aren't used in the body of the expander
18153         or splitter.
18154         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
18155         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
18156         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
18157         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
18158         FOR_EACH_IMM_USE_ON_STMT): Likewise.
18159         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
18160         * tree.c (PROCESS_ARG): Likewise.
18161
18162 2010-04-07  Simon Baldwin  <simonb@google.com>
18163
18164         * diagnostic.h (diagnostic_override_option_index): New macro to
18165         set a diagnostic's option_index.
18166         * c-tree.h (c_cpp_error): Add warning reason argument.
18167         * opts.c (_warning_as_error_callback): New.
18168         (register_warning_as_error_callback): Store callback for
18169         warnings enabled via enable_warning_as_error.
18170         (enable_warning_as_error): Call callback, minor code tidy.
18171         * opts.h (register_warning_as_error_callback): Declare.
18172         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
18173         response to -Werror=.
18174         (c_common_init_options): Register warning_as_error_callback in opts.c.
18175         * common.opt: Add -Wno-cpp option.
18176         * c-common.c (struct reason_option_codes_t): Map cpp warning
18177         reason codes to gcc option indexes.
18178         * (c_option_controlling_cpp_error): New function, lookup the gcc
18179         option index for a cpp warning reason code.
18180         * (c_cpp_error): Add warning reason argument, call
18181         c_option_controlling_cpp_error for diagnostic_override_option_index.
18182         * doc/invoke.texi: Document -Wno-cpp.
18183
18184 2010-04-07  Richard Guenther  <rguenther@suse.de>
18185
18186         * ipa-reference.c (mark_load): Use get_base_address.
18187         (mark_store): Likewise.
18188
18189         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
18190         inserting GIMPLE_NOPs into the IL.
18191         * tree-ssa-structalias.c (get_constraint_for_component_ref):
18192         Explicitly strip handled components and indirect references.
18193
18194         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
18195         folding address expressions.
18196         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
18197         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
18198         operand_equal_p to compare decls.
18199         (ptr_deref_may_alias_decl_p): Likewise.
18200         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
18201         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
18202         Handle reversed comparison ops.
18203         * tree-sra.c (asm_visit_addr): Use get_base_address.
18204         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
18205         * ipa-reference.c (mark_address): Use get_base_address.
18206
18207 2010-04-07  Richard Guenther  <rguenther@suse.de>
18208
18209         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
18210         Propagate constants everywhere.
18211
18212 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
18213
18214         PR debug/43516
18215         * tree.c (MAX_INT_CACHED_PREC): Define.
18216         (nonstandard_integer_type_cache): New array.
18217         (build_nonstandard_integer_type): Cache results for precision
18218         <= MAX_INT_CACHED_PREC.
18219
18220 2010-04-07  Richard Guenther  <rguenther@suse.de>
18221
18222         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
18223         -fargument-noalias-global, -fargument-noalias-anything): Remove.
18224         * common.opt: Likewise.
18225         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
18226         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
18227         (nonoverlapping_memrefs_p): Likewise.
18228         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
18229         * opts.c (common_handle_option): Handle OPT_fargument_alias,
18230         OPT_fargument_noalias, OPT_fargument_noalias_anything and
18231         OPT_fargument_noalias_global for backward compatibility.
18232
18233 2010-04-07  Richard Guenther  <rguenther@suse.de>
18234
18235         PR tree-optimization/43270
18236         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
18237         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
18238         * tree-ssa-pre.c (phi_translate_1): Adjust.
18239         (fully_constant_expression): Split out vn_reference handling to ...
18240         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
18241         Fold reads from constant strings.
18242         (vn_reference_lookup): Handle fully constant references.
18243         (vn_reference_lookup_pieces): Likewise.
18244         * Makefile.in (expmed.o-warn): Add -Wno-error.
18245
18246 2010-04-07  Martin Jambor  <mjambor@suse.cz>
18247
18248         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
18249
18250 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
18251
18252         PR driver/41594
18253         * gcc.c: Add -static-libstdc++ to list of recognized options.
18254
18255 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18256
18257         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
18258
18259 2010-04-07  Richard Guenther  <rguenther@suse.de>
18260
18261         PR middle-end/42617
18262         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
18263         bases build simple mem attributes to retain points-to information.
18264
18265 2010-04-07  Richard Guenther  <rguenther@suse.de>
18266
18267         PR middle-end/42617
18268         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
18269         preserve points-to related information.
18270
18271 2010-04-07  Richard Guenther  <rguenther@suse.de>
18272
18273         PR middle-end/42617
18274         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
18275         discard plain indirect references.
18276         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
18277         * tree.c (tree_nop_conversion): Likewise.
18278
18279 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
18280
18281         PR debug/43628
18282         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
18283
18284 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
18285
18286         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
18287         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
18288
18289 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
18290
18291         * tree-if-conv.c: Fix indentation and comments.
18292
18293 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
18294
18295         * tree-if-conv.c: Sort static functions in topological order.
18296
18297 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
18298
18299         * tree-if-conv.c: Fix indentation and comments.
18300
18301 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18302
18303         PR middle-end/43519
18304         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
18305         lang_hooks.types.type_for_size instead of
18306         build_nonstandard_integer_type.
18307         When converting an unsigned type to signed, double its precision.
18308         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
18309         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
18310         (graphite_create_new_loop_guard): When ub + 1 wraps around,
18311         use lb <= ub.
18312
18313 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18314
18315         PR middle-end/43519
18316         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
18317         POINTER_PLUS_EXPR for pointer types.
18318
18319 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18320
18321         PR middle-end/43519
18322         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
18323         * graphite-clast-to-gimple.c: Include langhooks.h.
18324         (max_signed_precision_type): New.
18325         (max_precision_type): Takes two types as arguments.
18326         (precision_for_value): New.
18327         (precision_for_interval): New.
18328         (gcc_type_for_interval): New.
18329         (gcc_type_for_value): New.
18330         (gcc_type_for_clast_term): New.
18331         (gcc_type_for_clast_red): New.
18332         (gcc_type_for_clast_bin): New.
18333         (gcc_type_for_clast_expr): Split up into several functions.
18334         (gcc_type_for_clast_eq): Rewritten.
18335         (compute_bounds_for_level): New.
18336         (compute_type_for_level_1): New.
18337         (compute_type_for_level): New.
18338         (gcc_type_for_cloog_iv): Removed.
18339         (gcc_type_for_iv_of_clast_loop): Rewritten.
18340         (graphite_create_new_loop): Compute the lower and upper bound types
18341         with gcc_type_for_clast_expr.
18342         (graphite_create_new_loop_guard): Same.
18343         (find_cloog_iv_in_expr): Removed.
18344         (compute_cloog_iv_types_1): Removed.
18345         (compute_cloog_iv_types): Removed.
18346         (gloog): Do not call compute_cloog_iv_types.
18347         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
18348         GBB_CLOOG_IV_TYPES.
18349         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
18350         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
18351         (GBB_CLOOG_IV_TYPES): Removed.
18352
18353 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18354
18355         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
18356         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
18357         (detect_commutative_reduction): Same.
18358
18359 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18360
18361         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
18362         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
18363         argument.
18364         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
18365         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
18366         (rewrite_commutative_reductions_out_of_ssa): Same.
18367         * passes.c (execute_function_todo): Call verify_ssa for every pass
18368         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
18369         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
18370         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
18371         with an extra argument.
18372         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
18373         verify_ssa only when the extra argument is true.
18374         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
18375         with an extra argument.
18376         (tree_transform_and_unroll_loop): Same.
18377
18378 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18379
18380         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
18381         for all the passes of the LNO having LOOP_CLOSED_SSA.
18382         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
18383         * tree-loop-distribution.c (pass_loop_distribution): Same.
18384         * tree-pass.h (TODO_verify_loops): Removed.
18385         * tree-ssa-loop.c (pass_tree_loop_init): Same.
18386         (pass_lim): Same.
18387         (pass_tree_unswitch): Same.
18388         (pass_predcom): Same.
18389         (pass_vectorize): Same.
18390         (pass_linear_transform): Same.
18391         (pass_graphite_transforms): Same.
18392         (pass_iv_canon): Same.
18393         (pass_complete_unroll): Same.
18394         (pass_complete_unrolli): Same.
18395         (pass_parallelize_loops): Same.
18396         (pass_loop_prefetch): Same.
18397         (pass_iv_optimize): Same.
18398
18399 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
18400
18401         PR middle-end/32824
18402         * passes.c (init_optimization_passes): Move pass_lim before
18403         pass_copy_prop and pass_dce_loop.
18404
18405 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
18406
18407         PR target/43667
18408         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
18409         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
18410         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
18411         MULTI_* defines for 4 argument vpermil2p* builtins.
18412
18413 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
18414
18415         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
18416         * config/i386/i386.c (x86_maybe_negate_const_int): New.
18417         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
18418         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
18419         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
18420         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
18421         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
18422         Use x86_maybe_negate_const_int to output insn mnemonic.
18423         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
18424         check from instruction predicate.  Update comments.
18425         * config/i386/sync.md (sync_add<mode>): Use
18426         x86_maybe_negate_const_int to output insn mnemonic.
18427
18428 2010-04-06  Jan Hubicka  <jh@suse.cz>
18429
18430         PR tree-optimization/42906
18431         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
18432         IGNORE_SELF argument.  Set visited_control_parents for fully
18433         processed BBs.
18434         (find_obviously_necessary_stmts): Update call of
18435         mark_control_dependent_edges_necessary.
18436         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
18437
18438 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
18439
18440         * config/i386/i386.md: Remove comment about 'e' and 'E'
18441         operand modifier.
18442
18443 2010-04-06  Richard Guenther  <rguenther@suse.de>
18444
18445         PR tree-optimization/43627
18446         * tree-vrp.c (extract_range_from_unary_expr): Widenings
18447         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
18448         not varying.
18449
18450 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
18451
18452         * BASE-VER: Change to 4.6.0.
18453
18454         PR target/43638
18455         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
18456         handling.
18457
18458 2010-04-06  Richard Guenther  <rguenther@suse.de>
18459
18460         PR middle-end/43661
18461         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
18462
18463 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18464
18465         * doc/invoke.texi (Optimize Options): Document that LTO
18466         won't remove object access purely due to incompatible
18467         declarations.
18468
18469 2010-04-04  Matthias Klose  <doko@ubuntu.com>
18470
18471         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
18472         Initialize variable.
18473
18474 2010-04-03  Richard Guenther  <rguenther@suse.de>
18475
18476         PR middle-end/42509
18477         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
18478         require a non-NULL MEM_OFFSET.
18479
18480 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
18481
18482         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
18483         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
18484         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
18485         config/alpha/predicates.md, config/arm/arm.md,
18486         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
18487         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
18488         config/darwin9.h, config/darwin.c, config/darwin.h,
18489         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
18490         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
18491         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
18492         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
18493         config/mips/mips.md, config/mn10300/mn10300.c,
18494         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
18495         config/rs6000/aix.h, config/rs6000/dfp.md,
18496         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
18497         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
18498         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
18499         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
18500         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
18501         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
18502         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
18503         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
18504         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
18505         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
18506         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
18507         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
18508         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
18509         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
18510         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
18511         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
18512         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
18513         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
18514         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
18515         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
18516         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
18517         opt-functions.awk, opth-gen.awk, params.def, passes.c,
18518         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
18519         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
18520         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
18521         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
18522         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
18523         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
18524         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
18525         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
18526         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
18527         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
18528         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
18529         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
18530         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
18531         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
18532
18533 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18534
18535         PR other/43620
18536         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
18537         * aclocal.m4: Regenerate.
18538
18539 2010-04-02  Richard Guenther  <rguenther@suse.de>
18540
18541         PR tree-optimization/43629
18542         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
18543         if we have seen a constant value.
18544
18545 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
18546
18547         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
18548
18549 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
18550
18551         PR target/43469
18552         * arm.c (legitimize_tls_address): Adjust call to
18553         gen_tls_load_dot_plus_four.
18554         (arm_note_pic_base): New function.
18555         (arm_cannot_copy_insn_p): Use it.
18556         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
18557         constraint.
18558
18559 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18560
18561         PR bootstrap/43531
18562
18563         Revert:
18564         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18565
18566         * Makefile.in ($(out_object_file)): Depend on
18567         gt-$(basename $(notdir $(out_file))).h.
18568
18569 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
18570
18571         * config.gcc (lm32-*-rtems*): Add t-lm32.
18572
18573 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
18574
18575         * config.gcc: Add lm32-*-rtems*.
18576         * config/lm32/rtems.h: New file.
18577
18578 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
18579
18580         PR target/42609
18581         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
18582
18583 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
18584
18585         * dwarf2out.c (output_compilation_unit_header): For
18586         -gdwarf-4 use version 4 instead of version 3.
18587         (output_line_info): For version 4 and above emit additional
18588         maximum ops per insn header field.
18589         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
18590
18591         * dwarf2out.c (is_c_family, is_java): Remove.
18592         (lower_bound_default): New function.
18593         (add_bound_info, gen_descr_array_type_die): Use it.
18594
18595 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
18596
18597         PR debug/43325
18598         * dwarf2out.c (gen_variable_die): Allow debug info for variable
18599         re-declaration when it happens in a function.
18600
18601 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
18602
18603         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
18604         (cgraph_remove_function_insertion_hook): Same.
18605         (cgraph_call_function_insertion_hooks): Same.
18606
18607 2010-04-01  Richard Guenther  <rguenther@suse.de>
18608
18609         PR middle-end/43614
18610         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
18611         and TREE_THIS_VOLATILE.
18612         (copy_ref_info): Likewise.
18613         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
18614         * tree.c (build6_stat): Ignore side-effects of all but arg5
18615         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
18616         TARGET_MEM_REF.
18617
18618 2010-04-01  Richard Guenther  <rguenther@suse.de>
18619
18620         PR tree-optimization/43607
18621         * ipa-type-escape.c (check_call): Do not access non-existing
18622         arguments.
18623
18624 2010-04-01  Richard Guenther  <rguenther@suse.de>
18625
18626         PR middle-end/43602
18627         Revert
18628         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
18629                     Jack Howarth <howarth@bromo.med.uc.edu>
18630
18631         * tree-profile.c (tree_init_ic_make_global_vars): Make static
18632         variables TLS.
18633
18634 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18635
18636         * doc/install.texi (Prerequisites): Document libelf usability on
18637         IRIX 5/6 and Solaris 2.
18638         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
18639         Update GNU as, GNU ld requirements.
18640         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
18641         Document Sun Studio compiler download.
18642         Update and simplify as, ld recommendations.
18643         (Specific, *-*-solaris2.7): Note obsoletion, removal.
18644
18645 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18646
18647         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
18648         with_tune_32 to pentium4.
18649
18650 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
18651
18652         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
18653
18654 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18655
18656         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
18657         obsoletion, removal.
18658         Update IDO URL.
18659         Document GNU as requirement.
18660         Update configure requirements.
18661         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
18662         Recomment IRIX 6.5.18+.
18663         Document IDF/IDL requirement.
18664         Document GNU as requirement.
18665         Document GNU ld bootstrap failure.
18666         Remove freeware.sgi.com reference.
18667
18668 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18669
18670         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
18671         UNIX V4.0, V5.0 obsoletion, removal.
18672         Remove --with-gc=simple reference.
18673         Update VM requirements during bootstrap.
18674         Remove -oldas bootstrap description.
18675         Update binutils reference.
18676         Remove comparison failure note.
18677
18678 2010-03-31  Richard Guenther  <rguenther@suse.de>
18679             Zdenek Dvorak  <ook@ucw.cz>
18680             Sebastian Pop  <sebastian.pop@amd.com>
18681
18682         PR middle-end/43464
18683         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
18684         with multiple arguments.
18685         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
18686
18687 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18688
18689         * graphite-dependences.c (print_pddr): Call print_pdr with an
18690         extra argument.
18691         * graphite-poly.c (debug_pdr): Add an extra argument for the
18692         verbosity level.
18693         (print_pdr): Same.
18694         (print_pbb_domain): Same.
18695         (print_pbb): Same.
18696         (print_scop_context): Same.
18697         (print_scop): Same.
18698         (print_cloog): Same.
18699         (debug_pbb_domain): Same.
18700         (debug_pbb): Same.
18701         (print_pdrs): Same.
18702         (debug_pdrs): Same.
18703         (debug_scop_context): Same.
18704         (debug_scop): Same.
18705         (debug_cloog): Same.
18706         (print_scop_params): Same.
18707         (debug_scop_params): Same.
18708         (print_iteration_domain): Same.
18709         (print_iteration_domains): Same.
18710         (debug_iteration_domain): Same.
18711         (debug_iteration_domains): Same.
18712         (print_scattering_function): Same.
18713         (print_scattering_functions): Same.
18714         (debug_scattering_function): Same.
18715         (debug_scattering_functions): Same.
18716         * graphite-poly.h (debug_pdr): Update declaration.
18717         (print_pdr): Same.
18718         (print_pbb_domain): Same.
18719         (print_pbb): Same.
18720         (print_scop_context): Same.
18721         (print_scop): Same.
18722         (print_cloog): Same.
18723         (debug_pbb_domain): Same.
18724         (debug_pbb): Same.
18725         (print_pdrs): Same.
18726         (debug_pdrs): Same.
18727         (debug_scop_context): Same.
18728         (debug_scop): Same.
18729         (debug_cloog): Same.
18730         (print_scop_params): Same.
18731         (debug_scop_params): Same.
18732         (print_iteration_domain): Same.
18733         (print_iteration_domains): Same.
18734         (debug_iteration_domain): Same.
18735         (debug_iteration_domains): Same.
18736         (print_scattering_function): Same.
18737         (print_scattering_functions): Same.
18738         (debug_scattering_function): Same.
18739         (debug_scattering_functions): Same.
18740
18741 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18742
18743         * graphite-poly.c (print_scattering_function_1): New.
18744         (print_scattering_function): Call it.
18745         (print_scop_params): Remove spaces at the end of lines.
18746         (print_cloog): New.
18747         (debug_cloog): New.
18748         * graphite-poly.h (print_cloog): Declared.
18749         (debug_cloog): Declared.
18750
18751 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18752
18753         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
18754         in loop->header.
18755         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
18756         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
18757         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
18758         to switch between adding the IV bump in loop->latch or in loop->header.
18759
18760 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18761
18762         * graphite-poly.c (print_scattering_function): Pretty print following
18763         the scoplib format.
18764         (print_pdr): Same.
18765         (print_pbb_domain): Same.
18766         (dump_gbb_cases): Same.
18767         (dump_gbb_conditions): Same.
18768         (print_pdrs): Same.
18769         (print_pbb): Same.
18770         (print_scop_params): Same.
18771         (print_scop_context): Same.
18772         (print_scop): Same.
18773         (print_pbb_body): New.
18774         (lst_indent_to): New.
18775         (print_lst): Start new lines with a #.
18776         * graphite-poly.h (pbb_bb): New.
18777         (pbb_index): Use pbb_bb.
18778         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
18779         disjuncts.
18780         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
18781
18782 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
18783
18784         * dwarf2out.c (size_of_die): For -gdwarf-4 use
18785         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
18786         and 0 instead of 1 for dw_val_class_flag.
18787         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
18788         dw_val_class_range_list, dw_val_class_loc_list,
18789         dw_val_class_lineptr and dw_val_class_macptr, use
18790         DW_FORM_flag_present for dw_val_class_flag and
18791         DW_FORM_exprloc for dw_val_class_loc.
18792         (output_die): For -gdwarf-4 print dw_val_class_loc
18793         size as uleb128 instead of 1 or 2 bytes and don't print
18794         anything for dw_val_class_flag.
18795
18796         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
18797         instead of cselib_lookup following by tweaking locs->setting_insn.
18798
18799         PR bootstrap/43596
18800         * cselib.c (cselib_process_insn): Clear cselib_current_insn
18801         even before returning from label, setjmp call or volatile asm
18802         handling.
18803
18804 2010-03-31  Richard Guenther  <rguenther@suse.de>
18805
18806         PR middle-end/43600
18807         * cgraphunit.c (cgraph_output_in_order): Do not allocate
18808         temporary data on stack.
18809
18810 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18811
18812         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
18813         (PUSHSECTION_ASM_OP): Remove.
18814         (POPSECTION_ASM_OP): Remove.
18815         (PUSHSECTION_FORMAT): Remove.
18816         * config/sol2.h (PUSHSECTION_FORMAT): Define.
18817         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
18818         * config/sol2.c (solaris_output_init_fini): Use it.
18819
18820 2010-03-31  Jie Zhang  <jie@codesourcery.com>
18821
18822         PR 43574
18823         * opt-functions.awk (var_type_struct): Use signed char type
18824         for simple variables.
18825
18826 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18827
18828         * config/sol2.c: Include output.h.
18829         (solaris_assemble_visibility): New function.
18830         * config/t-sol2 (sol2.o): Add output.h dependency.
18831         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
18832         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
18833         Redefine.
18834
18835 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
18836
18837         PR target/43580
18838         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
18839         V2SImode or XFmode on PRE_DEC.
18840
18841         PR debug/43557
18842         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
18843         BLKmode.
18844
18845 2010-03-31  Jie Zhang  <jie@codesourcery.com>
18846
18847         PR 43562
18848         * reload.h (caller_save_initialized_p): Declare.
18849         * toplev.c (backend_init_target): Don't call
18850         init_caller_save but set caller_save_initialized_p to false.
18851         * caller-save.c (caller_save_initialized_p): Define.
18852         (init_caller_save): Check caller_save_initialized_p.
18853         * ira.c (ira): Call init_caller_save if flag_caller_saves.
18854
18855 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18856
18857         PR target/39048
18858         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
18859         and soft-fp/t-softfp to tmake_file.
18860         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
18861         (LIBGCC2_TF_CEXT): Define.
18862         (TF_SIZE): Define.
18863
18864 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
18865
18866         PR debug/42977
18867         * cselib.c (n_useless_values): Document handling of debug locs.
18868         (n_useless_debug_values, n_debug_values): New variables.
18869         (new_elt_loc_list): Don't add to debug values, keep count.
18870         (promote_debug_loc): New.
18871         (cselib_reset_table): Zero new variables.
18872         (entry_and_rtx_equal_p): Promote debug locs.
18873         (discard_useless_locs): Increment n_useless_debug_values for
18874         debug values.
18875         (remove_useless_values): Adjust n_useless_values and n_debug_values
18876         with n_useless_debug_values.
18877         (add_mem_for_addr): Promote debug locs.
18878         (cselib_lookup_mem): Likewise.
18879         (cselib_lookup_addr): Renamed to...
18880         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
18881         (cselib_log_lookup): ... this.  Turn into...
18882         (cselib_lookup_addr): ... new wrapper.
18883         (cselib_lookup_from_insn): New.
18884         (cselib_invalidate_regno): Increment n_useless_debug_values for
18885         debug values.
18886         (cselib_invalidate_mem): Likewise.
18887         (cselib_process_insn): Take n_deleted and n_debug_values into
18888         account to guard remove_useless_value call.
18889         (cselib_finish): Zero n_useless_debug_values.
18890         * cselib.h (cselib_lookup_from_insn): Declare.
18891         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
18892         (sched_analyze_2): Likewise.
18893
18894 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
18895
18896         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
18897         functions.
18898         (adjust_mems): Replace narrowing SUBREG of expression containing
18899         just PLUS, MINUS, MULT and ASHIFT of registers and constants
18900         with operations in the narrower mode.
18901
18902         PR debug/43593
18903         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
18904         regs_invalidated_by_call instead all call_used_reg_set registers.
18905
18906 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
18907
18908         PR middle-end/43430
18909         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
18910         pointer comparisons with types_compatible_p.
18911         * tree-vect-stmts.c (vectorizable_call): Same.
18912         (vectorizable_condition): Same.
18913
18914 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18915
18916         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
18917         stack check if the mask would be zero.
18918
18919 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
18920             Jack Howarth <howarth@bromo.med.uc.edu>
18921
18922         * tree-profile.c (tree_init_ic_make_global_vars): Make static
18923         variables TLS.
18924
18925 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
18926
18927         PR other/25232
18928         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
18929         and __unordtf2.
18930         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
18931         Include ___unordxf2 and ___unordtf2.
18932         * config/i386/libgcc-glibc.ver: Do not define inheritance from
18933         GCC_4.4.0 here.
18934
18935 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
18936
18937         * config/lm32/t-lm32: New file.
18938         * config.gcc: Use the above file when targetting lm32.
18939
18940 2010-03-28  Duncan Sands  <baldrick@free.fr>
18941
18942         * Makefile.in (PLUGIN_HEADERS): Add except.h.
18943
18944 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
18945
18946         PR middle-end/43431
18947         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
18948         Improve vectorization cost model diagnostic.
18949
18950 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
18951
18952         PR middle-end/43436
18953         * tree-vect-data-refs.c (vect_analyze_data_refs): When
18954         compute_data_dependences_for_loop returns false, early exit
18955         and output an extra diagnostic for the failed data reference
18956         analysis.
18957
18958 2010-03-29  Richard Guenther  <rguenther@suse.de>
18959
18960         PR tree-optimization/43560
18961         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
18962         (can_sm_ref_p): Treat stores to readonly locations as trapping.
18963
18964 2010-03-29  Jie Zhang  <jie@codesourcery.com>
18965
18966         PR 43564
18967         * toplev.c (process_options): Set optimization_default_node
18968         and optimization_current_node.
18969         * opts.c (decode_options): Don't set optimization_default_node
18970         and optimization_current_node.
18971
18972 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
18973
18974         * config/rtems.h: Abandon -qrtems_debug.
18975
18976 2010-03-28  Jan Hubicka  <jh@suse.cz>
18977
18978         PR tree-optimization/43505
18979         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
18980         map should not be copied.
18981
18982 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18983
18984         PR middle-end/41674
18985         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
18986         cdtors, set DECL_PRESERVE_P.
18987         * ipa.c (cgraph_externally_visible_p): Return true if declaration
18988         should be preseved.
18989
18990 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
18991
18992         PR tree-optimization/43528
18993         * stor-layout.c (place_field): Check that constant fits into
18994         unsigned HWI when skipping calculation of MS bitfield layout.
18995
18996 2010-03-27  Jan Hubicka  <jh@suse.cz>
18997
18998         PR middle-end/43391
18999         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
19000         notice_global_symbol work.
19001
19002 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
19003
19004         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
19005         instead of dwarf2out_decl.
19006         (struct var_loc_node): Remove section_label field.
19007         (dwarf2out_function_decl): New function.
19008         (dwarf2out_var_location): Don't set section_label field.
19009         (dwarf2out_begin_function): Don't empty decl_loc_table here.
19010
19011 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
19012
19013         PR tree-optimization/43544
19014         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
19015         First argument for builtin vectorized function hook is now a
19016         tree to be able to distinguish between machine specific and
19017         standard builtins.
19018         * targhooks.c (default_builtin_vectorized_function): Ditto.
19019         * targhooks.h (default_builtin_vectorized_function): Ditto.
19020         * target.h (struct gcc_target): Ditto.
19021         * tree-vect-stmts.c (vectorizable_function): Ditto.
19022         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
19023         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
19024         Ditto.
19025
19026 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
19027
19028         PR c/43381
19029         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
19030         nested binding iff it is a FUNCTION_DECL.
19031         (store_parm_decls_newstyle): Pass nested=true to bind for
19032         FUNCTION_DECLs amongst parameters.
19033
19034 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
19035
19036         * var-tracking.c (vt_expand_loc_callback): Don't run
19037         cselib_expand_value_rtx_cb in dummy mode if
19038         cselib_dummy_expand_value_rtx_cb returned false.
19039
19040         * var-tracking.c (emit_note_insn_var_location): For one part
19041         notes with offset 0, don't add EXPR_LIST around the location.
19042         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
19043         add_location_or_const_value_attribute): Adjust for that change.
19044
19045         PR debug/43540
19046         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
19047         into first operand and location into second.
19048         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
19049         dw_cfi_oprnd_loc for DW_CFA_expression.
19050         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
19051         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
19052         assume first argument is regnum and second argument is location.
19053
19054 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
19055
19056         PR target/42113
19057         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
19058         of scratch register to DImode.  Split to DImode comparison operator.
19059         Use SImode subreg of scratch register in the multiplication.
19060         (*cmp_sadd_sidi): Ditto.
19061         (*cmp_ssub_si): Ditto.
19062         (*cmp_ssub_sidi): Ditto.
19063
19064 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
19065
19066         PR target/43524
19067         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
19068         Remove invalid assert and wrong comment.
19069
19070 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
19071
19072         PR debug/43516
19073         * flags.h (final_insns_dump_p): New extern.
19074         * final.c (final_insns_dump_p): New variable.
19075         (rest_of_clean_state): Set it before -fdump-final-insns=
19076         dumping, clear afterwards.
19077         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
19078         MEM_ALIAS_SET on MEMs.
19079
19080 2010-03-26  David S. Miller  <davem@davemloft.net>
19081
19082         * configure.ac: Fix sparc GOTDATA_OP bug check.
19083         * configure: Rebuild.
19084
19085 2010-03-26  Alan Modra  <amodra@gmail.com>
19086
19087         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
19088
19089 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19090
19091         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
19092         TLS_SECTION_ASM_FLAG.
19093
19094 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
19095
19096         PR bootstrap/43511
19097         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
19098         Clear first_function_block_is_cold.
19099
19100         PR c/43385
19101         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
19102         argument if the argument is truth_value_p.
19103
19104 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
19105
19106         * config/rs6000/constraints.md: Update copyright year for my changes.
19107
19108         PR target/43484
19109         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
19110         used in reg+reg addressing, swap registers.
19111
19112 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
19113
19114         PR debug/43293
19115         * target.h (struct gcc_target): Add code_end hook.
19116         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
19117         if not yet defined.
19118         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
19119         * toplev.c (compile_file): Call targetm.asm_out.code_end
19120         hook before unwind info/debug info output.
19121         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
19122         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
19123         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
19124         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
19125         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
19126         * config/i386/i386.c (ix86_file_end): Renamed to...
19127         (ix86_code_end): ... this.  Make static.  Don't call
19128         file_end_indicate_exec_stack.  Emit unwind info using
19129         final_start_function/final_end_function.
19130         (darwin_x86_file_end): Remove.
19131         (TARGET_ASM_CODE_END): Define.
19132         * config/i386/i386.h (TARGET_ASM_FILE_END,
19133         NEED_INDICATE_EXEC_STACK): Don't define.
19134         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
19135         (TARGET_ASM_FILE_END): Define to darwin_file_end.
19136         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
19137         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
19138
19139         PR target/43498
19140         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
19141         at the beginning and final_end_function at the end.
19142         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
19143
19144 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19145
19146         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
19147         and Sun as TLS syntax.
19148         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
19149         * configure: Regenerate.
19150         * config.in: Regenerate.
19151         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
19152         (default_elf_asm_named_section): Use it.
19153         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
19154         (i386_output_dwarf_dtprel): Likewise.
19155         (output_addr_const_extra): Likewise.
19156         (output_pic_addr_const): Lowercase @GOTTPOFF.
19157         (output_addr_const_extra): Likewise.
19158         (output_pic_addr_const): Lowercase @GOTNTPOFF.
19159         (output_addr_const_extra): Likewise.
19160         (output_pic_addr_const): Lowercase @INDNTPOFF.
19161         (output_addr_const_extra): Likewise.
19162         (output_pic_addr_const): Lowercase @NTPOFF.
19163         (output_addr_const_extra): Likewise.
19164         (output_pic_addr_const): Lowercase @TPOFF.
19165         (output_addr_const_extra): Likewise.
19166         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
19167         (*tls_global_dynamic_64): Likewise.
19168         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
19169         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
19170
19171         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
19172         (ASM_OUTPUT_TLS_COMMON): Use it.
19173         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
19174
19175         PR target/38118
19176         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
19177         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
19178         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
19179         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
19180         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
19181         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
19182
19183 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19184
19185         * config/i386/i386.c (override_options): Don't accept
19186         -mtls-dialect=sun any longer.
19187         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
19188         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
19189         (*tls_local_dynamic_base_32_sun): Likewise.
19190         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
19191
19192 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
19193
19194         PR debug/43508
19195         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
19196         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
19197
19198         PR debug/43479
19199         * ira.c (adjust_cleared_regs): New function.
19200         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
19201
19202         PR debug/19192
19203         PR debug/43479
19204         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
19205         from gimple_block.
19206         * expr.c (expand_expr_real): Restore previous
19207         curr_insn_source_location and curr_insn_block after
19208         expand_expr_real_1 call.
19209         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
19210         instead of expand_expr_real_1.
19211
19212 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
19213
19214         PR rtl-optimization/43413
19215         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
19216         hard regs too.
19217
19218 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
19219
19220         PR target/43348
19221         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
19222         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
19223
19224 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
19225
19226         * config/i386/i386.c (ix86_target_string): Add -mfma.
19227         Fix a typo in comment.
19228
19229 2010-03-22  Mike Stump  <mikestump@comcast.net>
19230
19231         PR target/23071
19232         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
19233         Don't overly align based upon packed packed fields.
19234
19235 2010-03-22  Jason Merrill  <jason@redhat.com>
19236
19237         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
19238         Use () rather than [], and move before the element type.
19239
19240 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19241
19242         * doc/configfiles.texi (Configuration Files): Removed
19243         fixinc/Makefile*, intl/Makefile.*.
19244         * doc/makefile.texi: Fixed markup. Abstract from version
19245         control system used.
19246         (Makefile): Removed obsolete gcc/java/parse.y example.
19247         * doc/sourcebuild.texi: Likewise.
19248         (Top Level): Added config, gnattools, libdecnumber, libgcc,
19249         libgomp, libssp.  Removed fastjar.
19250         (Miscellaneous Docs): Clarify location.
19251         Added COPYING3, COPYING3.LIB.
19252         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
19253
19254 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19255
19256         PR target/38085
19257         * config/i386/i386.c (x86_function_profiler)
19258         [!NO_PROFILE_COUNTERS]: Fix typo.
19259         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
19260         instead of callq.
19261
19262 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
19263             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19264
19265         * doc/sourcebuild.texi (Test Directives): Split into six
19266         subsections, with most of the current text in new subsections
19267         Directives, Selectors, and Final Actions.
19268         (Directives): Split list of test directives into multiple
19269         subsubsections.
19270         (Selectors): Describe use and syntax of selectors.
19271         (Effective-Target Keywords): Describe all existing keywords.
19272         (Add Options): Describe features for dg-add-options.
19273         (Require Support): Describe variants of dg-require-support.
19274         (Final Actions): Describe commands to use in dg-final.
19275
19276 2010-03-22  Michael Matz  <matz@suse.de>
19277
19278         PR middle-end/43475
19279         * recog.c (validate_replace_rtx_group): Replace also in
19280         REG_EQUAL and REG_EQUIV notes.
19281
19282 2010-03-22  Richard Guenther  <rguenther@suse.de>
19283
19284         PR tree-optimization/43390
19285         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
19286         sure vector extracts are type correct.
19287
19288 2010-03-22  Richard Guenther  <rguenther@suse.de>
19289
19290         PR middle-end/40106
19291         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
19292         x * sqrt (x) even when optimizing for size if the target
19293         has native support for sqrt.
19294
19295 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
19296
19297         * varasm.c (make_decl_rtl_for_debug): Also clear
19298         flag_mudflap for the duration of make_decl_rtl call.
19299
19300         PR debug/43443
19301         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
19302         locs from preserved VALUEs.
19303
19304 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19305
19306         PR middle-end/42718
19307         * pa.md (movmemsi): Set align to one if zero.
19308         (movmemdi): Likewise.
19309
19310 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
19311
19312         PR target/42321
19313         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
19314         with their corresponding prologue pushes.
19315
19316 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
19317
19318         PR target/43156
19319         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
19320         at the begining or end.
19321         (spu_expand_epilogue): Likewise.
19322
19323 2010-03-20  Richard Guenther  <rguenther@suse.de>
19324
19325         PR rtl-optimization/43438
19326         * combine.c (make_extraction): Properly zero-/sign-extend an
19327         extraction of the low part of a CONST_INT.  Also handle
19328         CONST_DOUBLE.
19329
19330 2010-03-19  Mike Stump  <mikestump@comcast.net>
19331
19332         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
19333         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
19334         (override_options): Use SUBTARGET32_DEFAULT_CPU.
19335
19336 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
19337
19338         PR c/43211
19339         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
19340         an error.
19341
19342 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
19343
19344         PR rtl-optimization/42258
19345         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
19346         use that may match DEF.
19347
19348         PR target/40697
19349         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
19350         the cost of loading the constant rather than assuming
19351         COSTS_N_INSNS (1).
19352         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
19353         outer code is AND, do the same tests as the andsi3 expander and
19354         return COSTS_N_INSNS (1) if and is cheap.
19355
19356         * optabs.c (avoid_expensive_constant): Fix formatting.
19357
19358 2010-03-19  Michael Matz  <matz@suse.de>
19359
19360         PR c++/43116
19361         * attribs.c (decl_attributes): When rebuilding a function pointer
19362         type use the same qualifiers as the original pointer type.
19363
19364 2010-03-19  Martin Jambor  <mjambor@suse.cz>
19365
19366         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
19367         and is_gimple_ip_invariant_address.
19368
19369 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19370
19371         Revert
19372         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19373
19374         * config/arm/arm.c (arm_override_options): Turn off
19375         flag_dwarf2_cfi_asm for AAPCS variants.
19376
19377 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19378
19379         PR target/43399
19380         * config/arm/arm.c (emit_multi_reg_push): Update comments.
19381         Use PRE_MODIFY instead of PRE_DEC.
19382         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
19383         (vfp_emit_fstmd): Likewise.
19384
19385 2010-03-19  Michael Matz  <matz@suse.de>
19386
19387         PR target/43305
19388         * builtins.c (expand_builtin_interclass_mathfn,
19389         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
19390         if that fails.
19391
19392 2010-03-19  Richard Guenther  <rguenther@suse.de>
19393
19394         PR tree-optimization/43415
19395         * tree-ssa-pre.c (phi_translate): Split out worker to ...
19396         (phi_translate_1): ... this.
19397         (phi_translate): Move all caching here.  Cache all NARY
19398         and REFERENCE translations.
19399
19400 2010-03-19  David S. Miller  <davem@davemloft.net>
19401
19402         With help from Eric Botcazou.
19403         * config/sparc/sparc.c: Include dwarf2out.h.
19404         (emit_pic_helper): Delete.
19405         (pic_helper_symbol_name): Delete.
19406         (pic_helper_emitted_p): Delete.
19407         (pic_helper_needed): New.
19408         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
19409         (get_pc_thunk_name): New.
19410         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
19411         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
19412         Set pic_helper_needed to true.  Don't call emit_pic_helper.
19413         (sparc_expand_prologue): Update load_pic_register call.
19414         (sparc_output_mi_thunk): Likewise.
19415         (sparc_file_end): Emit a hidden comdat symbol for the PIC
19416         thunk if possible.  Output CFI information as needed.
19417
19418 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
19419             Jack Howarth <howarth@bromo.med.uc.edu>
19420
19421         PR target/36399
19422         * config/i386/i386.h: Fix ABI on darwin x86-32.
19423
19424 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
19425
19426         * tree.h: Declare make_decl_rtl_for_debug.
19427         * varasm.c (make_decl_rtl_for_debug): New.
19428         * dwarf2out.c (rtl_for_decl_location): Call it.
19429         * cfgexpand.c (expand_debug_expr): Call it.
19430
19431 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
19432
19433         PR bootstrap/43399
19434         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
19435         mem_mode.
19436
19437         PR bootstrap/43403
19438         * var-tracking.c (vt_init_cfa_base): Do nothing if
19439         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
19440
19441 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
19442
19443         PR debug/42873
19444         * var-tracking.c (canonicalize_vars_star): New.
19445         (dataflow_post_merge_adjust): Use it.
19446
19447 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
19448
19449         PR debug/43058
19450         * var-tracking.c (non_suitable_const): New function.
19451         (add_uses): For DEBUG_INSNs with constants, don't record any
19452         value, instead just the constant value itself.
19453         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
19454         is not VAR_LOC_UNKNOWN_P, set var to the constant.
19455         (emit_notes_in_bb): Likewise.
19456         (emit_note_insn_var_location): For onepart variables if
19457         cur_loc is a VOIDmode constant, use DECL_MODE.
19458
19459 2010-03-18  Martin Jambor  <mjambor@suse.cz>
19460
19461         PR middle-end/42450
19462         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
19463         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
19464         all non-clones.  Moved call redirection...
19465         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
19466         (cgraph_materialize_all_clones): Dispose of all
19467         combined_args_to_skip bitmaps.
19468         (verify_cgraph_node): Do not check for edges pointing to wrong
19469         nodes in inline clones.
19470         * tree-inline.c (copy_bb): Call
19471         cgraph_redirect_edge_call_stmt_to_callee.
19472         * ipa.c (cgraph_remove_unreachable_nodes): Call
19473         cgraph_node_remove_callees even when there are used clones.
19474
19475 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
19476
19477         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
19478
19479 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
19480
19481         PR target/43383
19482         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
19483         for 32bit.
19484
19485 2010-03-18  Michael Matz  <matz@suse.de>
19486
19487         PR middle-end/43419
19488         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
19489         into sqrt(x) if we need to preserve signed zeros.
19490
19491 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
19492             Eric Botcazou  <ebotcazou@adacore.com>
19493
19494         PR rtl-optimization/43360
19495         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
19496         note if we don't know its invariant status.
19497
19498 2010-03-18  Michael Matz  <matz@suse.de>
19499
19500         PR tree-optimization/43402
19501         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
19502         PHI chains of ssa names registered for update.
19503
19504 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
19505
19506         PR target/42427
19507         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
19508         non-offsettable and pre_modify update addressing.
19509         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
19510         and "2" alternatives "#".
19511         (*movdd_softfloat32): Make all alternatives "#";
19512         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
19513         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
19514         (*movdf_softfloat32): Make all alternatives "#";
19515         (movdi): Use the new DIFD mode iterator to create a common splitter
19516         for movdi, movdf and movdd patterns.
19517
19518 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
19519
19520         * common.opt (dumpdir): Remove redundant tab.
19521
19522 2010-03-17  Martin Jambor  <mjambor@suse.cz>
19523
19524         PR tree-optimization/43347
19525         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
19526         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
19527
19528 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
19529
19530         PR rtl-optimization/42216
19531         * regrename.c (create_new_chain): New function, broken out from...
19532         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
19533         appending a use to an empty chain.
19534         (build_def_use): Remove previous changes that convert OP_INOUT to
19535         OP_OUT operands; instead detect the case where an OP_INOUT operand
19536         uses a previously untracked register and create an empty chain for it.
19537
19538 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19539
19540         * doc/extend.texi (Function Attributes): Rewrite unfinished
19541         sentence in ms_abi documentation.
19542
19543 2010-03-17  Alan Modra  <amodra@gmail.com>
19544
19545         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
19546         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
19547         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
19548         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
19549
19550 2010-03-16  Richard Henderson  <rth@redhat.com>
19551
19552         PR middle-end/43365
19553         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
19554         (lower_try_finally): Save and restore eh_seq around the expansion
19555         of the try-finally.
19556
19557 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
19558
19559         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
19560         statements before splitting block.
19561
19562 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19563
19564         * doc/sourcebuild.texi (Testsuites): Fix markup.
19565         Use pathnames relative to gcc/testsuite.
19566         (Test Directives): Move description of how timeout is determined.
19567         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
19568         (C Tests): Correct gcc.misc-tests directory.
19569         Framework tests now live in gcc.test-framework.
19570
19571 2010-03-16  Richard Guenther  <rguenther@suse.de>
19572
19573         PR middle-end/43379
19574         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
19575         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
19576
19577 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
19578             Alexandre Oliva  <aoliva@redhat.com>
19579
19580         PR tree-optimization/42917
19581         * lambda-code.c (remove_iv): Skip debug statements.
19582         (lambda_loopnest_to_gcc_loopnest): Likewise.
19583         (not_interesting_stmt): Debug statements are not interesting.
19584
19585 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
19586
19587         PR debug/43051
19588         PR debug/43092
19589         * cselib.c (cselib_preserve_constants,
19590         cfa_base_preserved_val): New static variables.
19591         (preserve_only_constants): New function.
19592         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
19593         clear its REG_VALUES.  If cselib_preserve_constants, don't
19594         empty the whole hash table, but preserve there VALUEs with constants,
19595         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
19596         (cselib_preserve_cfa_base_value): New function.
19597         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
19598         (cselib_init): Change argument to int bitfield.  Set
19599         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
19600         is in it.
19601         (cselib_finish): Clear cselib_preserve_constants and
19602         cfa_base_preserved_val.
19603         * cselib.h (enum cselib_record_what): New enum.
19604         (cselib_init): Change argument to int.
19605         (cselib_preserve_cfa_base_value): New prototype.
19606         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
19607         * dse.c (dse_step1): Likewise.
19608         * cfgcleanup.c (thread_jump): Likewise.
19609         * sched-deps.c (sched_analyze): Likewise.
19610         * gcse.c (local_cprop_pass): Likewise.
19611         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
19612         If FN is non-NULL, call the callback always and whenever it returns
19613         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
19614         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
19615         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
19616         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
19617         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
19618         * var-tracking.c: Include recog.h.
19619         (bb_stack_adjust_offset): Remove.
19620         (vt_stack_adjustments): Don't call it, instead just gather the
19621         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
19622         (adjust_stack_reference): Remove.
19623         (compute_cfa_pointer): New function.
19624         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
19625         (struct adjust_mem_data): New type.
19626         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
19627         functions.
19628         (get_address_mode): New function.
19629         (replace_expr_with_values): Use it.
19630         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
19631         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
19632         (adjust_sets): Remove.
19633         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
19634         Use get_address_mode.
19635         (get_adjusted_src): Remove.
19636         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
19637         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
19638         (add_with_sets): Don't call adjust_sets.
19639         (fp_setter, vt_init_cfa_base): New functions.
19640         (vt_initialize): Change return type to bool.  Move most of pool etc.
19641         initialization to the beginning of the function from end.  Pass
19642         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
19643         If !frame_pointer_needed, call vt_stack_adjustment before mos
19644         vector is filled, call vt_init_cfa_base if argp/framep has been
19645         eliminated to sp.  If frame_pointer_needed and argp/framep has
19646         been eliminated to hard frame pointer, set
19647         hard_frame_pointer_adjustment and call vt_init_cfa_base after
19648         encountering fp setter in the prologue.  For MO_ADJUST, call
19649         log_op_type before pusing the op into mos vector, not afterwards.
19650         Call adjust_insn before cselib_process_insn/add_with_sets,
19651         call cancel_changes (0) afterwards.
19652         (variable_tracking_main_1): Adjust for vt_initialize calling
19653         vt_stack_adjustments and returning whether it succeeded or not.
19654
19655 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
19656
19657         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
19658         debug statements.
19659
19660 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
19661
19662         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
19663         has been set.
19664         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
19665         drap_reg has not been set.
19666
19667 2010-03-15  Michael Matz  <matz@suse.de>
19668
19669         PR middle-end/43300
19670         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
19671         use it to expand block copies.
19672         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
19673         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
19674         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
19675
19676 2010-03-15  Richard Guenther  <rguenther@suse.de>
19677
19678         PR tree-optimization/43367
19679         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
19680         elimination check.
19681
19682 2010-03-15  Richard Guenther  <rguenther@suse.de>
19683
19684         PR tree-optimization/43317
19685         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
19686
19687 2010-03-15  Martin Jambor  <mjambor@suse.cz>
19688
19689         PR tree-optimization/43141
19690         * tree-sra.c (create_abstract_origin): New function.
19691         (modify_function): Call create_abstract_origin.
19692
19693 2010-03-15  Chris Demetriou  <cgd@google.com>
19694
19695         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
19696         wasn't copied.
19697
19698 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19699
19700         PR middle-end/43354
19701         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
19702         call insert_out_of_ssa_copy for default definitions.
19703
19704 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19705
19706         * graphite-clast-to-gimple.c (my_long_long): Defined.
19707         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
19708         * graphite-sese-to-poly.c (my_long_long): Defined.
19709         (scop_ivs_can_be_represented): Use it.
19710
19711 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19712
19713         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
19714         graphite-max-bbs-per-function, and loop-block-tile-size.
19715         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
19716         with "maximum".
19717         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
19718
19719 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19720
19721         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
19722         forward declaration.
19723         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
19724         (add_upper_bounds_from_estimated_nit): New.
19725         (build_loop_iteration_domains): Use it.
19726
19727 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19728
19729         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
19730
19731 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19732
19733         PR middle-end/43306
19734         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
19735         should be an INTEGER_CST.  Also handle CASE_CONVERT.
19736
19737 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19738
19739         * graphite.c (graphite_initialize): To bound the number of bbs per
19740         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
19741         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
19742         * doc/invoke.texi: Document it.
19743
19744 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19745
19746         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
19747         * graphite-sese-to-poly.h (build_poly_scop): Same.
19748
19749 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19750
19751         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
19752         the number of parameters in the scop.  Use as an upper bound
19753         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
19754         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
19755         * doc/invoke.texi: Document it.
19756
19757 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
19758
19759         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
19760         * doc/c-tree.texi: Remove.
19761         * doc/generic.texi: Merge c-tree.texi here.
19762         * doc/gccint.texi (Trees): Remove menu entry.
19763         (c-tree.texi): Remove @include.
19764         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
19765         * doc/languages.texi (Reading RTL): Ditto.
19766
19767 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
19768
19769         PR target/42869
19770         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
19771
19772 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
19773
19774         PR middle-end/42431
19775         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
19776         code added to work around reload clobbering CONST insns.
19777
19778 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
19779
19780         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
19781         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
19782         (cselib_preserve_only_values): Remove retain argument, don't
19783         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
19784         * cselib.h (cselib_preserve_only_values): Remove retain argument.
19785         * var-tracking.c (micro_operation): Move insn field before union.
19786         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
19787         (struct variable_tracking_info_def): Remove n_mos field, change
19788         mos into a vector of micro_operations.
19789         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
19790         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
19791         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
19792         changing into a vector.
19793         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
19794         come before all other uops generated by add_stores.
19795         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
19796         argument removal.
19797         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
19798         a vector.  Run just one pass over the bbs instead of separate counting
19799         and computation phase.
19800         (vt_finalize): Free VTI (bb)->mos vector instead of array.
19801
19802         PR debug/43329
19803         * tree-inline.c (remap_decls): Put old_var rather than origin_var
19804         into *nonlocalized_list vector.
19805         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
19806         even if origin is non-NULL.
19807         (gen_variable_die): Likewise.
19808         (process_scope_var): Don't change origin.
19809         (gen_decl_die): Likewise.
19810         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
19811         before adding new edges instead of after it, fix moving over
19812         debug stmts.
19813
19814 2010-03-11  David S. Miller  <davem@davemloft.net>
19815
19816         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
19817         of four.
19818         * configure: Rebuild.
19819
19820 2010-03-11  Martin Jambor  <mjambor@suse.cz>
19821
19822         PR tree-optimization/43257
19823         * tree.c (assign_assembler_name_if_neeeded): New function.
19824         (free_lang_data_in_cgraph): Assembler name assignment moved to the
19825         above new function.
19826         * tree.h (assign_assembler_name_if_neeeded): Declare.
19827         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
19828         the function if needed.
19829
19830 2010-03-11  Chris Demetriou  <cgd@google.com>
19831
19832         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
19833         include/stdint-gcc.h, and include/stdint.h world-readable.
19834
19835 2010-03-11  Richard Guenther  <rguenther@suse.de>
19836
19837         PR tree-optimization/43255
19838         * tree-vrp.c (process_assert_insertions_for): Do not insert
19839         asserts for trivial conditions.
19840
19841 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19842
19843         PR tree-optimization/43280
19844         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
19845         generation.  Move calculation of size out of the if branch.
19846         (find_bswap): Modify compare number generation.
19847
19848 2010-03-11  Richard Guenther  <rguenther@suse.de>
19849
19850         PR lto/43200
19851         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
19852         (input_gimple_stmt): Fixup handled component types during
19853         operand read.  Also fix up decls in ADDR_EXPRs.
19854
19855 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
19856
19857         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
19858         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
19859
19860 2010-03-10  Jan Hubicka  <jh@suse.cz>
19861
19862         PR c/43288
19863         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
19864         * varasm.c (get_variable_section): Don't do that here...
19865         (make_decl_rtl): ... and here.
19866         (do_assemble_alias): Produce decl RTL.
19867         (assemble_alias): Likewise.
19868
19869 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
19870
19871         PR debug/43290
19872         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
19873         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
19874         of fde->vdrap_reg.
19875         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
19876         (based_loc_descr): Only express drap or vdrap regno based expressions
19877         using DW_OP_fbreg when not optimizing.
19878         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
19879         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
19880         REG_CFA_SET_VDRAP note.
19881
19882 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
19883
19884         PR tree-optimization/43236
19885         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
19886         error in calculation of base address in reverse iteration case.
19887         (generate_builtin): Take number of latch executions if the statement
19888         is in the latch.
19889
19890 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
19891
19892         PR middle-end/42859
19893         * tree-eh.c: Include pointer-set.h.
19894         (lower_eh_dispatch): Filter out duplicate case labels and
19895         remove the unneeded edge when the label is unused.  Return
19896         true when some edges are removed.
19897         (execute_lower_eh_dispatch): When any lowering resulted in
19898         removing an edge, also delete unreachable blocks.
19899
19900 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
19901
19902         PR bootstrap/43287
19903         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
19904         UNSPEC_MACHOPIC_OFFSET.
19905
19906 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
19907
19908         PR target/43294
19909         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
19910         (m68k_delegitimize_address): New function.
19911
19912 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
19913
19914         PR debug/43299
19915         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
19916
19917         PR debug/43299
19918         * var-tracking.c (adjust_sets): New function.
19919         (count_with_sets, add_with_sets): Use it.
19920         (get_adjusted_src): New inline function.
19921         (add_stores): Use it.
19922
19923         PR debug/43304
19924         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
19925         call cselib_dummy_expand_value_rtx_cb instead of
19926         cselib_expand_value_rtx_cb.
19927
19928         PR debug/43293
19929         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
19930         * config/i386/i386.c: Include debug.h and dwarf2out.h.
19931         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
19932         and .cfi_endproc around the pic thunks.
19933         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
19934         all queued unwind info register saves are saved before the call.
19935         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
19936         considered as sp-=4 for unwind info and the pop as sp+=4 which
19937         also clobbers dest, but doesn't actually restore it.
19938
19939         PR debug/43290
19940         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
19941         RTX_FRAME_RELATED_P.
19942
19943 2010-03-09  Jie Zhang  <jie@codesourcery.com>
19944
19945         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
19946         whitespaces in output template.
19947
19948 2010-03-09  Jie Zhang  <jie@codesourcery.com>
19949
19950         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
19951         out array boundary.
19952
19953 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
19954
19955         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
19956         builtins.exp in a separate job.
19957
19958 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19959
19960         * graphite-sese-to-poly.c (add_param_constraints): Use
19961         lower_bound_in_type and upper_bound_in_type.
19962
19963 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19964
19965         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
19966         instead of unsigned_type_node.
19967
19968 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19969             Reza Yazdani  <reza.yazdani@amd.com>
19970
19971         PR middle-end/43065
19972         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
19973         on pointer type parameters.
19974
19975 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
19976
19977         PR middle-end/42644
19978         PR middle-end/42130
19979         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
19980         handle conversions from pointer to integers.
19981         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
19982         induction variable, to be able to work with code generated by CLooG.
19983         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
19984         (build_poly_scop): Bail out if we cannot codegen a loop.
19985
19986 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
19987
19988         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
19989         code generation with gloog_error.
19990
19991 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19992
19993         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
19994         Call fold_convert on all the returned values.
19995         (expand_scalar_variables_expr): Pass to
19996         expand_scalar_variables_ssa_name the type of the resulting expression.
19997
19998 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19999
20000         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
20001         ppl_min_for_le_pointset.
20002         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
20003         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
20004
20005 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20006
20007         * graphite-dependences.c (map_into_dep_poly): Removed.
20008         (dependence_polyhedron_1): Use combine_context_id_scat.
20009
20010 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20011
20012         * graphite-poly.h (struct poly_scattering): Add layout documentation.
20013         (struct poly_bb): Same.
20014         (combine_context_id_scat): New.
20015
20016 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20017
20018         PR middle-end/42326
20019         * sese.c (name_defined_in_loop_p): Return false for default
20020         definitions.
20021
20022 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20023
20024         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
20025         and clean up the logic.
20026
20027 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20028
20029         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
20030         early return.
20031
20032 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
20033
20034         * var-tracking.c (remove_cselib_value_chains): Define only for
20035         ENABLE_CHECKING.
20036         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
20037         delete_slot_part, emit_notes_for_differences_1): Don't call
20038         remove_cselib_value_chains here.
20039         (set_slot_part, emit_notes_for_differences_2): Don't call
20040         add_cselib_value_chains here.
20041         (preserved_values): New vector.
20042         (preserve_value): New function.
20043         (add_uses, add_stores, vt_add_function_parameters): Use it
20044         instead of cselib_preserve_value.
20045         (changed_values_stack): New vector.
20046         (check_changed_vars_0): New function.
20047         (check_changed_vars_1, check_changed_vars_2): Use it.
20048         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
20049         changed_values_stack VALUEs.
20050         (vt_emit_notes): For all preserved_values call
20051         add_cselib_value_chains.  If ENABLE_CHECKING call
20052         remove_cselib_value_chains before verifying value_chains is empty.
20053         Initialize and free changed_values_stack.
20054         (vt_initialize): Initialize preserved_values.
20055         (vt_finalize): Free preserved_values.
20056
20057 2010-03-08  Richard Guenther  <rguenther@suse.de>
20058
20059         PR tree-optimization/43269
20060         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
20061         region detection.
20062
20063 2010-03-08  Martin Jambor  <mjambor@suse.cz>
20064
20065         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
20066         (ipa_is_param_called): Removed.
20067         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
20068         (ipa_print_node_params): Do not print the called flag.
20069         (ipa_write_node_info): Do not stream the called flag.
20070         (ipa_read_node_info): Likewise.
20071
20072 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
20073
20074         PR debug/43176
20075         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
20076         * cselib.c (struct expand_value_data): Add dummy field.
20077         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
20078         dummy to false.
20079         (cselib_dummy_expand_value_rtx_cb): New function.
20080         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
20081         any rtl.
20082         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
20083         * var-tracking.c: Include pointer-set.h.
20084         (variable): Change n_var_parts to char from int.  Add
20085         cur_loc_changed and in_changed_variables fields.
20086         (variable_canonicalize): Remove.
20087         (shared_var_p): New inline function.
20088         (unshare_variable): Maintain cur_loc_changed and
20089         in_changed_variables fields.  If var was in changed_variables,
20090         replace it there with new_var.  Just copy cur_loc instead of
20091         resetting it to something else.
20092         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
20093         (dataflow_set_union): Don't call variable_canonicalize.
20094         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
20095         of their DEBUG_EXPR_TREE_DECLs.
20096         (canonicalize_loc_order_check): Verify that cur_loc is NULL
20097         and in_changed_variables and cur_loc_changed is false.
20098         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
20099         and cur_loc_changed.  Don't update cur_loc here.
20100         (variable_merge_over_src): Don't call variable_canonicalize.
20101         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
20102         removing loc that is equal to cur_loc, clear cur_loc,
20103         set cur_loc_changed and ensure variable_was_changed is called.
20104         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
20105         compare pointers in cur_loc check, if it is equal to loc,
20106         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
20107         (variable_different_p): Remove compare_current_location argument,
20108         don't compare cur_loc.
20109         (dataflow_set_different_1): Adjust variable_different_p caller.
20110         (variable_was_changed): If dv had some var in changed_variables
20111         already, reset in_changed_variables flag for it and propagate
20112         cur_loc_changed over to the new variable.  On empty var
20113         always set cur_loc_changed.  Set in_changed_variables on whatever
20114         var is added to changed_variables.
20115         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
20116         Use shared_var_p.  When removing loc that is equal to cur_loc,
20117         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
20118         end, don't set it to something else, just call variable_was_changed.
20119         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
20120         loc being removed, clear cur_loc and set cur_loc_changed.
20121         Set cur_loc_changed if all locations have been removed.
20122         (struct expand_loc_callback_data): New type.
20123         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
20124         allocated.  Always create SUBREGs if simplify_subreg failed.
20125         Prefer to use cur_loc, when that fails and still in
20126         changed_variables (and seen first time) recompute it.  Set
20127         cur_loc_changed of variables which had to change cur_loc and
20128         compute elcd->cur_loc_changed if any of the subexpressions used
20129         had to change cur_loc.
20130         (vt_expand_loc): Adjust to pass arguments in
20131         expand_loc_callback_data structure.
20132         (vt_expand_loc_dummy): New function.
20133         (emitted_notes): New variable.
20134         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
20135         that weren't used for any other decl in current
20136         emit_notes_for_changes call call vt_expand_loc_dummy to update
20137         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
20138         first loc_chain location if NULL before.  Always use just
20139         cur_loc instead of first loc_chain location.  When cur_loc_changed
20140         is false, when not --enable-checking=rtl just don't emit any note.
20141         When rtl checking, compute the note and assert it is the same
20142         as previous note.  Clear cur_loc_changed and in_changed_variables
20143         at the end before removing from changed_variables.
20144         (check_changed_vars_3): New function.
20145         (emit_notes_for_changes): Traverse changed_vars to call
20146         check_changed_vars_3 on each changed var.
20147         (emit_notes_for_differences_1): Clear cur_loc_changed and
20148         in_changed_variables.  Recompute cur_loc of new_var.
20149         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
20150         (vt_emit_notes): Initialize and destroy emitted_notes.
20151
20152 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
20153
20154         PR rtl-optimization/42220
20155         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
20156         Use verify_reg_tracked to determine if we should use OP_OUT rather
20157         than OP_INOUT.
20158         (build_def_use): If we see an in-out operand for a register that we
20159         know nothing about, treat is an output if possible, fail the block if
20160         not.
20161
20162 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
20163
20164         PR debug/42897
20165         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
20166         permanently.
20167
20168 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
20169
20170         PR debug/42897
20171         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
20172         uses of relevant DEFs that are dead outside the loop too.
20173
20174 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
20175
20176         * var-tracking.c (dataflow_set_merge): Swap src and src2.
20177         Reverted:
20178         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
20179         PR debug/41371
20180         * var-tracking.c (values_to_unmark): New variable.
20181         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
20182         values_to_unmark vector.  Moved body to...
20183         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
20184         instead queue it into values_to_unmark vector.
20185         (vt_find_locations): Free values_to_unmark vector.
20186
20187 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
20188
20189         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
20190         (site.exp): Export them when plugins are enabled.
20191
20192 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
20193
20194         PR middle-end/42326
20195         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
20196         that contain scevs.
20197         (chrec_fold_multiply): Same.
20198
20199 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
20200
20201         PR c/43248
20202         * c-decl.c (build_compound_literal): Return early if init is
20203         an error_mark_node.
20204
20205 2010-03-04  Martin Jambor  <mjambor@suse.cz>
20206
20207         PR tree-optimization/43164
20208         PR tree-optimization/43191
20209         * tree-sra.c (type_consists_of_records_p): Reject records with
20210         zero-size bit-fields at the end.
20211
20212 2010-03-04  Mike Stump  <mikestump@comcast.net>
20213
20214         * Makefile.in (TAGS): Remove *.y.
20215
20216 2010-03-04  Richard Guenther  <rguenther@suse.de>
20217
20218         PR tree-optimization/40761
20219         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
20220         in reverse order.
20221         (my_rev_post_order_compute): New function.
20222         (init_pre): Call it.
20223
20224 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
20225
20226         PR middle-end/43209
20227         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
20228         decrease the cost of an IV candidate when the cost is infinite.
20229
20230 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20231
20232         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
20233         Use '3DNow!' for the extension of that name, ensure normal space
20234         after the string.
20235         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
20236
20237 2010-03-03  Jeff Law  <law@redhat.com>
20238
20239         * PR middle-end/32693
20240         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
20241         than gen_rtx_SUBREG.
20242         (extract_bit_field_1): Likewise.
20243
20244 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
20245
20246         * doc/sourcebuild.texi (Test directives): Document that arguments
20247         include-opts and exclude-opts are now optional for dg-skip-if,
20248         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
20249
20250 2010-03-03  Jason Merrill  <jason@redhat.com>
20251
20252         PR c++/12909
20253         * cgraph.h (varpool_node): Add extra_name field.
20254         * varpool.c (varpool_extra_name_alias): New.
20255         (varpool_assemble_decl): Emit extra name aliases.
20256         (varpool_mark_needed_node): Look past an extra name alias.
20257         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
20258         * lto-streamer-in.c (lto_input_tree): Read it.
20259         * lto-streamer-out.c (output_unreferenced_globals): Write it.
20260
20261 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
20262
20263         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
20264         (sparc*-*-solaris2*): ...this.
20265
20266 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
20267
20268         PR debug/43229
20269         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
20270         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
20271         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
20272         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
20273
20274         PR debug/43237
20275         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
20276         fallthrough to default handling, just with want_address 0 instead of 2.
20277         For single element lists, add_AT_loc directly, otherwise create an
20278         artificial variable DIE and stick location list to it.
20279
20280         PR debug/43177
20281         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
20282         (VAL_EXPR_HAS_REVERSE): Define.
20283         (reverse_op): New function.
20284         (add_stores): For reversible operations add an extra MO_VAL_USE.
20285
20286 2010-03-02  Jason Merrill  <jason@redhat.com>
20287
20288         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
20289
20290 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
20291
20292         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
20293         (sparc64-*-linux*): Likewise.
20294         (sparc64-*-solaris2*): Include assembler files before linker ones.
20295         (sparc-*-solaris2*): Simplify and reorder to match previous case.
20296         * config/sparc/gas.h: Delete.
20297         * config/sparc/sol2-64.h: Add copyright notice.
20298         * config/sparc/sol2-gas-bi.h: Likewise.
20299         * config/sparc/sol2-gld.h: Likewise.
20300         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
20301         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
20302         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
20303         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
20304         (sparc_elf_asm_named_section): Rename into...
20305         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
20306
20307 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
20308
20309         * config/alpha/alpha.c (override_options): Fix -mtune error message.
20310
20311 2010-03-02  Jeff Law  <law@redhat.com>
20312
20313         PR middle-end/42431
20314         * reload1.c (rtx_p, substitute_stack): Declare.
20315         (substitute): Record addresses of changed rtxs.
20316         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
20317         Restore the original rtx when complete.
20318         (reload): Free subsitute_stack when complete.
20319
20320 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
20321
20322         * doc/gccint.texi (menu): Add Testsuites as a chapter.
20323         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
20324         new chapter.
20325         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
20326         LTO Testing, gcov Testing, profopt Testing, compat Testing,
20327         Torture Tests): Change from subsection to section.
20328
20329 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
20330             Steven Bosscher  <steven@gcc.gnu.org>
20331
20332         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
20333         instead of bb.
20334
20335 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
20336
20337         PR middle-end/42640
20338         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
20339         the assignment from the new induction variable to the assignment
20340         of the value from the original loop PHI function.
20341
20342 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
20343             Daniel Jacobowitz  <dan@codesourcery.com>
20344
20345         * doc/sourcebuild.texi (Test directives): Clarify options to
20346         dg-skip-if.
20347
20348 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20349
20350         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
20351         Disable cfi directives unless GCC and gas agree on using read-only
20352         .eh_frame sections for 64-bit.
20353         * configure: Regenerate.
20354
20355 2010-03-01  Richard Guenther  <rguenther@suse.de>
20356
20357         PR tree-optimization/43220
20358         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
20359         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
20360
20361 2010-03-01  Richard Guenther  <rguenther@suse.de>
20362             Martin Jambor  <mjambor@suse.cz>
20363
20364         PR middle-end/41250
20365         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
20366         gimplified parameters.
20367
20368 2010-03-01  Christian Bruel  <christian.bruel@st.com>
20369
20370         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
20371
20372 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
20373
20374         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
20375
20376 2010-03-01  Richard Guenther  <rguenther@suse.de>
20377
20378         PR middle-end/43213
20379         * expr.c (expand_assignment): Use the alias-oracle to tell
20380         if the rhs aliases the result decl.
20381
20382 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20383
20384         PR pch/14940
20385         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
20386         to sol_gt_pch_get_address.
20387         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
20388         64-bit, SPARC and x86.
20389         (sol_gt_pch_get_address): New function.
20390
20391 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
20392
20393         * toplev.h (inform_n, error_n): Declare.
20394         * diagnostic.c (inform_n, error_n): New function.
20395
20396 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
20397
20398         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
20399         has no rtl yet when processing local_decls, queue it and recheck
20400         if deferred stack allocation hasn't assigned it rtl.
20401
20402 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
20403
20404         * config/sh/sh.c (unspec_bbr_uid): New.
20405         (gen_block_redirect): Use it instead of INSN_UID.
20406         (gen_far_branch): Likewise.
20407
20408 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
20409
20410         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
20411         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
20412
20413 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20414
20415         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
20416         (Warning Options): -Wno-conversion-null is valid for
20417         Objective-C++ as well.
20418         * doc/tm.texi (Named Address Spaces): Likewise.
20419         * doc/plugins.texi (Plugins): Replace TABs with spaces.
20420         * doc/tree-ssa.texi (Tree SSA): Likewise.
20421
20422 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
20423
20424         PR bootstrap/43202
20425         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
20426         by default.  Don't set the default arch for
20427         i[34567]86-*-darwin*|x86_64-*-darwin*.
20428
20429 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
20430
20431         PR bootstrap/43202
20432         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
20433         default.  Set the default 32bit/64bit archs with $with_arch
20434         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
20435
20436 2010-02-27  Richard Guenther  <rguenther@suse.de>
20437
20438         PR tree-optimization/43186
20439         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
20440         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
20441         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
20442         unroller iterations.
20443
20444 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
20445
20446         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
20447         required and i[34567]86-*-* targets don't support 64bit ISA.
20448
20449 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
20450
20451         PR ada/43096
20452         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
20453         the same alias set.
20454
20455 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
20456
20457         * config.gcc: Set the default arch at least to Prescott for
20458         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
20459         if SSE math is enabled.
20460
20461 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20462
20463         * diagnostic.c (diagnostic_initialize): Update.
20464         (diagnostic_report_diagnostic): Test inhibit_notes_p for
20465         informative notes.
20466         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
20467         (diagnostic_inhibit_notes): New.
20468         * toplev.c (process_options): inhibit notes with -fcompare-debug.
20469
20470 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20471
20472         PR c/20631
20473         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
20474         * doc/standards.texi: Likewise.
20475         * doc/extend.texi: Likewise.
20476         * doc/trouble.texi: Likewise.
20477         * doc/cppopts.texi: Likewise.
20478         * doc/install.texi: Likewise.
20479         * c.opt (std=c90,std=gnu90): New options.
20480         * c-opts.c (c_common_handle_option): Handle them.
20481
20482 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20483
20484         PR c/24577
20485         * c-decl.c (undeclared_variable): Use an informative note.
20486
20487 2010-02-26  Richard Guenther  <rguenther@suse.de>
20488
20489         PR tree-optimization/43186
20490         * gimple.h (gimple_fold): Remove.
20491         * gimple.c (gimple_fold): Remove.  Inline into single user ...
20492         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
20493         Try harder for conditions.
20494
20495 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
20496
20497         PR debug/43190
20498         * function.c (used_types_insert): Don't skip through named pointer
20499         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
20500         and it is different from the main variant's type.
20501
20502 2010-02-26  Nick Clifton  <nickc@redhat.com>
20503
20504         * config/rx/rx.md (sminsi3): Remove bogus alternative.
20505
20506 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
20507
20508         * config.gcc: Support --with-fpmath=sse for x86.
20509
20510         * config/i386/ssemath.h: New.
20511
20512         * doc/install.texi (--with-fpmath=sse): Documented.
20513
20514 2010-02-26  Richard Guenther  <rguenther@suse.de>
20515
20516         PR tree-optimization/43188
20517         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
20518         vector types of over-aligned element type.
20519
20520 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
20521
20522         PR target/43175
20523         * config/i386/i386.c (expand_vec_perm_blend): Use correct
20524         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
20525
20526 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
20527
20528         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
20529
20530 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
20531
20532         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
20533         * var-tracking.c: Include diagnostic.h.
20534         (debug_dv): New function.
20535         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
20536
20537         PR debug/43160
20538         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
20539         (add_value_chain, add_value_chains, remove_value_chain,
20540         remove_value_chains): Handle DEBUG_EXPRs.
20541         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
20542
20543         PR debug/43161
20544         * regcprop.c (struct queued_debug_insn_change): New type.
20545         (struct value_data_entry): Add debug_insn_changes field.
20546         (struct value_data): Add n_debug_insn_changes field.
20547         (debug_insn_changes_pool): New variable.
20548         (free_debug_insn_changes, apply_debug_insn_changes,
20549         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
20550         (kill_value_one_regno): Call free_debug_insn_changes if needed.
20551         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
20552         fields.
20553         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
20554         changes for them.
20555         (copyprop_hardreg_forward_1): Don't call apply_change_group for
20556         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
20557         changes, call cprop_find_used_regs via note_stores.
20558         (copyprop_hardreg_forward): When copying vd from predecessor
20559         which has any queued DEBUG_INSN changes, make sure the pointers are
20560         cleared.  At the end call df_analyze and then if there are any
20561         DEBUG_INSN changes queued at the end of some basic block for still
20562         live registers, apply them.
20563         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
20564
20565 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
20566
20567         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
20568         (arm*-*-*): Ditto.
20569
20570 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
20571
20572         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
20573         targets.  Set the default with_cpu/with_arch from arch/cpu.
20574         Allow x86-64 and native for with_cpu/with_arch.
20575
20576 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
20577
20578         * ebitmap.c: Change calls to verify_popcount with calls to
20579         sbitmap_verify_popcount.
20580         (ebitmap_clear_bit): Fixed map->cacheindex test and
20581         map>cache update when bit clearing results in an empty
20582         element.
20583
20584 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
20585
20586         PR target/43154
20587         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
20588         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
20589         and support both V2DF and V2DI modes.
20590         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
20591         support both V2DF and V2DI modes.
20592         (general): Delete trailing whitespace from a few patterns.
20593
20594         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20595         V2DF/V2DI interleave high/low builtins.
20596
20597         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
20598         new VSX builtins.
20599
20600         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
20601         interleave high/low functions.
20602
20603 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
20604
20605         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
20606         #pragma extern_prefix.
20607
20608 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
20609
20610         PR debug/43166
20611         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
20612         BLKmode, assert op0 is a MEM and just adjust its mode.
20613
20614         PR debug/43165
20615         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
20616         if bitpos isn't multiple of mode's bitsize.
20617
20618 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20619
20620         * c.opt (-ftemplate-depth=): New.
20621         (-ftemplate-depth-): Deprecate.
20622         * optc-gen.awk: Handle -ftemplate-depth=.
20623         * opth-gen.awk: Likewise.
20624         * c-opts.c (c_common_handle_option): Likewise.
20625         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
20626
20627 2010-02-24  Jason Merrill  <jason@redhat.com>
20628
20629         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
20630
20631 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20632
20633         * cfg.c (alloc_aux_for_block): Remove inline.
20634         (alloc_aux_for_edge): Likewise.
20635
20636 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20637
20638         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
20639
20640 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20641
20642         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
20643         * config/i386/sol2-gas.h: New file.
20644         * config.gcc (i[34567]86-*-solaris2*): Use it.
20645
20646 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20647
20648         PR c/43128
20649         * c-typeck.c (ep_convert_and_check): New.
20650         (build_conditional_expr): Use it.
20651         (build_binary_op): Likewise.
20652
20653 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
20654
20655         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
20656
20657         PR debug/43150
20658         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
20659         bounds even for -O+.
20660         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
20661         expr needs to have DECL_NAME set.
20662
20663 2010-02-24  Nick Clifton  <nickc@redhat.com>
20664
20665         * config/mep/mep.c: Include gimple.h.
20666         (mep_function_uses_sp): Delete unused function.
20667         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
20668         parameters.  Use unsigned integers to count args.  Return a
20669         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
20670
20671 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
20672
20673         PR target/43107
20674         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
20675         greater or equal to nelt instead of 2 * nelt.
20676         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
20677         with nelt - 1.
20678
20679 2010-02-23  Jason Merrill  <jason@redhat.com>
20680
20681         PR debug/42800
20682         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
20683         in cfun->local_decls even if they have register types.
20684
20685         PR c++/42837
20686         * stor-layout.c (place_field): Don't warn about unnecessary
20687         DECL_PACKED if the type is packed.
20688
20689 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
20690
20691         PR target/43139
20692         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
20693         GOTOFF relocs, even when the base reg isn't pic pointer.
20694
20695 2010-02-23  Michael Matz  <matz@suse.de>
20696
20697         PR debug/43077
20698         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
20699         (expand_gimple_basic_block): Generate and use debug temps if there
20700         are debug uses left after the last real use of TERed ssa names.
20701         Unlink debug immediate uses when they are expanded.
20702
20703 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20704
20705         PR 43123
20706         * config/i386/i386.c (override_options): Reorganise to provide
20707         better error messages.
20708
20709 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
20710
20711         PR middle-end/43083
20712         * graphite-scop-detection.c (create_single_exit_edge): Move
20713         the call to find_single_exit_edge to....
20714         (create_sese_edges): ...here.  Don't handle multiple edges
20715         exiting the function.
20716         (build_graphite_scops): Don't handle multiple edges
20717         exiting the function.
20718
20719 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
20720
20721         PR middle-end/43097
20722         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
20723         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
20724
20725 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
20726
20727         PR middle-end/43026
20728         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
20729
20730 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20731
20732         PR c++/43126
20733         * c-typeck.c (convert_arguments): Print declaration location.
20734         * c-common.c (validate_nargs): Rename as
20735         builtin_function_validate_nargs.
20736         (check_builtin_function_arguments): Update.
20737
20738 2010-02-22  Richard Guenther  <rguenther@suse.de>
20739
20740         PR lto/43045
20741         * tree-inline.c (declare_return_variable): Use the type of
20742         the call stmt lhs if available.
20743
20744 2010-02-22  Duncan Sands  <baldrick@free.fr>
20745
20746         * passes.c (register_pass): Always consider all pass lists when
20747         ref_pass_instance_number is zero.
20748
20749 2010-02-22  Richard Guenther  <rguenther@suse.de>
20750
20751         PR tree-optimization/42749
20752         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
20753         parameter.  Do arithmetic in the original type.
20754         (update_accumulator_with_ops): Likewise.
20755         (adjust_accumulator_values): Adjust.
20756
20757 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20758
20759         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
20760         (QI to BLKmode splitter): New splitter.
20761
20762 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
20763
20764         * config/i386/i386.c (initial_ix86_tune_features): Turn on
20765         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
20766
20767 2010-02-22  Richard Guenther  <rguenther@suse.de>
20768
20769         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
20770
20771 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
20772
20773         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
20774         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
20775         ($(T)crti.o, $(T)crtn.o): Remove rules.
20776
20777 2010-02-21  Tobias Burnus  <burnus@net-b.de>
20778
20779         PR fortran/35259
20780         * doc/invoke.texi (-fassociative-math): Document that this
20781         option is automatically enabled for Fortran.
20782
20783 2010-02-20  David S. Miller  <davem@davemloft.net>
20784
20785         * configure.ac: Test if linker and assembler properly support
20786         GOTDATA_OP relocations.
20787         * configure: Rebuild.
20788         * config.in: Likewise.
20789         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
20790         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
20791         (movsi_high_pic): Likewise.
20792         (movdi_lo_sum_pic): Likewise.
20793         (movdi_high_pic): Likewise.
20794         (movsi_pic_gotdata_op): New pattern.
20795         (movdi_pic_gotdata_op): Likewise.
20796         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
20797         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
20798
20799 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
20800
20801         PR target/43067
20802         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
20803         attribute to ssemul.
20804         (xop_mulv2div2di3_high): Ditto.
20805
20806 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20807
20808         PR c++/35669
20809         * c.opt (Wconversion-null): New option.
20810         * doc/invoke.texi (Wconversion-null): Document.
20811
20812 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20813
20814         * common.opt (Wlarger-than-): Add Undocumented.
20815
20816 2010-02-19  Mike Stump  <mikestump@comcast.net>
20817
20818         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
20819
20820 2010-02-19  Jason Merrill  <jason@redhat.com>
20821
20822         PR target/40332
20823         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
20824         * configure: Likewise.
20825
20826 2010-02-20  Alan Modra  <amodra@gmail.com>
20827
20828         PR middle-end/42344
20829         * cgraph.h (cgraph_make_decl_local): Declare.
20830         * cgraph.c (cgraph_make_decl_local): New function.
20831         (cgraph_make_node_local): Use it.
20832         * cgraphunit.c (cgraph_function_versioning): Likewise.
20833         * ipa.c (function_and_variable_visibility): Likewise.
20834
20835 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20836
20837         PR bootstrap/43121
20838         * except.c (sjlj_emit_function_enter): Don't call
20839         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
20840         directly.
20841         * rtl.h (add_reg_br_prob_note): Remove prototype.
20842
20843 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20844
20845         PR 41779
20846         * c-common.c (conversion_warning): Remove widening conversions
20847         before checking the conversion of integers to reals.
20848
20849 2010-02-19  Mike Stump  <mikestump@comcast.net>
20850
20851         PR middle-end/43125
20852         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
20853
20854         PR objc/43061
20855         * cgraphunit.c (process_function_and_variable_attributes): Check
20856         DECL_PRESERVE_P instead of looking up attribute "used".
20857         * ipa-pure-const.c (check_decl): Likewise.
20858         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
20859         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
20860         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
20861         instead of attribute "used".
20862         * config/sol2-c.c (solaris_pragma_init): Likewise.
20863         (solaris_pragma_fini): Likewise.
20864
20865 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20866
20867         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
20868         Use XCNEW instead of xcalloc.
20869         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
20870         XNEW instead of xmalloc.
20871         (get_fields): Use XNEWVEC instead of xmalloc.
20872
20873         PR debug/43084
20874         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
20875         populate vars array.
20876         (create_new_general_access): For debug stmts just reset value.
20877         (get_stmt_accesses): For accesses within debug stmts just record them
20878         using add_access_to_acc_sites instead of preventing the peeling or
20879         counting them as accesses.
20880
20881         PR middle-end/42233
20882         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
20883
20884 2010-02-19  Richard Guenther  <rguenther@suse.de>
20885
20886         PR tree-optimization/42916
20887         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
20888         instructions.
20889
20890 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
20891
20892         * configure.ac: Replace all uses of changequote in macro arguments
20893         with proper quoting.
20894
20895 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20896
20897         PR middle-end/42233
20898         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
20899
20900 2010-02-19  Richard Guenther  <rguenther@suse.de>
20901
20902         PR tree-optimization/42944
20903         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
20904         test for aliasing with errno.
20905
20906 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20907
20908         PR middle-end/42233
20909         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
20910         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
20911         * dojump.c: Include output.h.
20912         (inv): New inline function.
20913         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
20914         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
20915         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
20916         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
20917         argument, pass it down to other calls.
20918         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
20919         add REG_BR_PROB note to the conditional jump.
20920         * cfgexpand.c (add_reg_br_prob_note): Removed.
20921         (expand_gimple_cond): Don't call it, add the probability
20922         as last argument to jumpif_1/jumpifnot_1.
20923         * Makefile.in (dojump.o): Depend on output.h.
20924         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
20925         callers.
20926         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
20927         * stmt.c (do_jump_if_equal): Likewise.
20928         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
20929         * loop-unswitch.c (compare_and_jump_seq): Likewise.
20930         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
20931         Likewise.
20932         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
20933         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
20934         jumpifnot_1 callers.
20935         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
20936         callers.
20937         (store_expr): Adjust jumpifnot caller.
20938         (store_constructor): Adjust jumpif caller.
20939
20940         PR middle-end/42233
20941         * gimplify.c (gimple_boolify): For __builtin_expect call
20942         gimple_boolify also on its first argument.
20943
20944 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
20945
20946         * configure.ac (gnu-unique-object): Wrap regexps using [] in
20947         changequote block.
20948         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
20949         * configure: Regenerated.
20950
20951 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20952
20953         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
20954         lang_hooks.types_compatible_p instead of comptypes.
20955
20956 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
20957
20958         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
20959         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
20960         if __prefer_thumb__ is defined.
20961
20962 2010-02-18  Martin Jambor  <mjambor@suse.cz>
20963
20964         PR tree-optimization/43066
20965         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
20966         array with zero-sized element type.
20967
20968 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
20969
20970         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
20971         rtx, allocate struct var_loc_node here and return it to the
20972         caller, and only if it is actually needed.
20973         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
20974         move it earlier and return immediately if it returns NULL.
20975
20976 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
20977
20978         * config/sparc/gas.h: New file.  Restore
20979         TARGET_ASM_NAMED_SECTION to its ELF default.
20980         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
20981         check !HAVE_GNU_AS.
20982         * config/sparc/sparc.c (sparc_elf_asm_named_section):
20983         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
20984         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
20985         after sparc/sysv4.h.
20986
20987 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
20988
20989         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
20990
20991 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
20992
20993         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
20994         patterns from predicated pattern.
20995
20996 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
20997
20998         PR target/43103
20999         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
21000         for insn mnemonic suffix.
21001
21002 2010-02-17  Richard Guenther  <rguenther@suse.de>
21003
21004         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
21005         to loop PHI nodes.
21006
21007 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
21008
21009         PR debug/42918
21010         * caller-save.c (save_call_clobbered_regs): If BB ends with
21011         a DEBUG_INSN, move any notes in between last real insn and the last
21012         DEBUG_INSN after the last DEBUG_INSN.
21013
21014 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
21015
21016         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
21017         Fix return type.  Fix argument type.  Explain meaning of return value.
21018
21019 2010-02-16  Richard Guenther  <rguenther@suse.de>
21020
21021         PR tree-optimization/41043
21022         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
21023         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
21024         statements ...
21025         (vrp_visit_phi_node): ... but only for loop PHI nodes.
21026
21027 2010-02-16  Ira Rosen  <irar@il.ibm.com>
21028
21029         PR tree-optimization/43074
21030         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
21031         * tree-vect-loop.c (vect_analyze_loop_operations): Add
21032         vectorizable cycles in hybrid SLP check.
21033         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
21034
21035 2010-02-16  Richard Guenther  <rguenther@suse.de>
21036
21037         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
21038         (true_dependence): If memrefs_conflict_p computes must-alias
21039         trust it.  Move TBAA check after offset-based disambiguation.
21040         (canon_true_dependence): Likewise.
21041
21042 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
21043
21044         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
21045         * doc/invoke.texi: Document it.
21046         * var-tracking.c: Include toplev.h and params.h.
21047         (vt_find_locations): Return bool indicating success.  Compute
21048         hash sizes unconditionally.  Check new parameter, report.
21049         (variable_tracking_main_1): Check vt_find_locations results and
21050         retry.  Renamed from...
21051         (variable_tracking_main): ... this.  New wrapper to preserve
21052         flag_var_tracking_assignments.
21053         * Makefile.in (var-tracking.o): Adjust dependencies.
21054
21055 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
21056             Jakub Jelinek <jakub@redhat.com>
21057
21058         PR target/42854
21059         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
21060         if weak_import attribute is present.
21061         * config/darwin.c (machopic_select_section): Likewise.
21062
21063 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
21064
21065         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
21066         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
21067         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
21068         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
21069
21070         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
21071         types.
21072
21073         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
21074         Fix argument types.
21075
21076         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
21077         Rewrite text to refer to the names.
21078
21079 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
21080
21081         * config/i386/i386-builtin-types.def
21082         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
21083         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
21084         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
21085         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
21086         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
21087         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
21088         IX86_BUILTIN_VPERMIL2PS256.
21089         (MULTI_ARG_4_DF2_DI_I): Defined.
21090         (MULTI_ARG_4_DF2_DI_I1): Defined.
21091         (MULTI_ARG_4_SF2_SI_I): Defined.
21092         (MULTI_ARG_4_SF2_SI_I1): Defined.
21093         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
21094         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
21095         __builtin_ia32_vpermil2ps256.
21096         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
21097         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
21098         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
21099         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
21100         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
21101         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
21102         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
21103         CODE_FOR_xop_vpermil2v8sf3.
21104         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
21105         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
21106         * config/i386/xopintrin.h (_mm_permute2_pd): New.
21107         (_mm256_permute2_pd): New.
21108         (_mm_permute2_ps): New.
21109         (_mm256_permute2_ps): New.
21110
21111 2010-02-15  Nick Clifton  <nickc@redhat.com>
21112
21113         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
21114         boolean parameters.  Use emit_jump_insn when emitting a pop
21115         instruction containing a return insn.
21116         (push): Use 'true' rather than '1' as second parameter to F.
21117         (h8300_expand_prologue): Likewise.
21118         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
21119         (h8300_expand_epilogue): Likewise.
21120
21121 2010-02-15  Richard Guenther  <rguenther@suse.de>
21122
21123         PR middle-end/43068
21124         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
21125         if that is zero.
21126
21127 2010-02-15  Nick Clifton  <nickc@redhat.com>
21128
21129         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
21130         delta.
21131
21132 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
21133
21134         * intl.c (fake_ngettext): New function.
21135         * intl.h (fake_ngettext): Declare.
21136         (ngettext): Define macro.
21137         * collect2.c (notice_translated): New function.
21138         (main): Use notice_translated and ngettext.
21139         * collect2.h (notice_translated): Declare.
21140
21141 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
21142
21143         * reorg.c (delete_computation): Comment fixes.
21144         * caller-save.c (setup_save_areas): Idem.
21145         * sel-sched-dump.c (dump_lv_set): Idem.
21146         * rtl.def: Idem.
21147
21148 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21149
21150         * config/s390/s390.c (s390_sched_init): New function.
21151         (TARGET_SCHED_INIT): Target hook defined.
21152
21153 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
21154             Jack Howarth  <howarth@bromo.med.uc.edu>
21155             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
21156
21157         PR target/42982
21158         Partial revert of unintended change in fix for PR41605.
21159         * config/darwin.h: Fix typo.
21160         * config/darwin9.h: Same.
21161
21162 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
21163
21164         * c-pch.c (pch_init): Clear v.
21165
21166 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21167
21168         PR middle-end/42930
21169         * graphite-scop-detection.c (graphite_can_represent_scev): Call
21170         graphite_can_represent_init for MULT_EXPR.
21171
21172 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21173
21174         PR middle-end/42914
21175         PR middle-end/42530
21176         * graphite-sese-to-poly.c (remove_phi): New.
21177         (translate_scalar_reduction_to_array): Call remove_phi.
21178
21179 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21180
21181         PR middle-end/42771
21182         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
21183         * graphite-clast-to-gimple.h (gloog): Update declaration.
21184         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
21185         * graphite-poly.h (struct poly_bb): Add missing comments.
21186         (struct scop): Add poly_scop_p field.
21187         (POLY_SCOP_P): New.
21188         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
21189         * graphite.c (graphite_transform_loops): Build the polyhedral
21190         representation for each scop before code generation.
21191         * sese.c (rename_variables_in_operand): Removed.
21192         (rename_variables_in_expr): Return the renamed expression.
21193         (rename_sese_parameters): New.
21194         * sese.h (rename_sese_parameters): Declared.
21195
21196 2010-02-11  Richard Guenther  <rguenther@suse.de>
21197
21198         PR tree-optimization/42998
21199         * tree-ssa-pre.c (create_expression_by_pieces): Treat
21200         POINTER_PLUS_EXPR properly.
21201
21202 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21203             Changpeng Fang  <changpeng.fang@amd.com>
21204
21205         PR middle-end/40886
21206         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
21207         the cost of an IV candidate when the IV is used in a test against zero.
21208
21209         * gcc.dg/tree-ssa/ivopts-3.c: New.
21210
21211 2010-02-11  Richard Guenther  <rguenther@suse.de>
21212
21213         PR lto/41664
21214         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
21215         pointer-vs-decl case by swapping refs.  Handle some cases
21216         of pointer-vs-decl disambiguations more conservatively.
21217         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
21218         to false after expanding.
21219
21220 2010-02-11  Richard Guenther  <rguenther@suse.de>
21221
21222         PR driver/43021
21223         * gcc.c (process_command): Handle LTO file@offset case more
21224         appropriately.
21225
21226 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
21227
21228         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
21229         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
21230         of DEBUG_INSNs.
21231         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
21232
21233         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
21234         if MEM's mode size isn't DWARF2_ADDR_SIZE.
21235         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
21236         Optimize eq/ne comparisons when both arguments are known to be
21237         zero-extended.
21238         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
21239         Don't mask operands unnecessarily if they are known to be already
21240         zero-extended.
21241
21242 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
21243
21244         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
21245         instead of loop.
21246
21247 2010-02-10  Richard Guenther  <rguenther@suse.de>
21248
21249         PR tree-optimization/43017
21250         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
21251         for wrapping signed arithmetic.
21252
21253 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
21254
21255         PR debug/43010
21256         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
21257         if no debug info should be emitted for it.
21258
21259 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
21260
21261         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
21262         note when flag_exceptions is set.
21263
21264 2010-02-10  Duncan Sands  <baldrick@free.fr>
21265
21266         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
21267
21268 2010-02-10  Richard Guenther  <rguenther@suse.de>
21269
21270         PR c/43007
21271         * tree.c (get_unwidened): Handle constants.
21272         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
21273
21274 2010-02-10  Martin Jambor  <mjambor@suse.cz>
21275
21276         PR lto/42985
21277         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
21278         check for variable argument counts independently.
21279
21280 2010-02-10  Christian Bruel  <christian.bruel@st.com>
21281
21282         PR target/42841
21283         * config/sh/sh.c (find_barrier): Increase length for non delayed
21284         conditional branches.
21285
21286 2010-02-10  Christian Bruel  <christian.bruel@st.com>
21287
21288         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
21289
21290 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
21291
21292         * builtins.c (set_builtin_user_assembler_name): Also handle
21293         ffs if int is smaller than word.
21294
21295 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
21296
21297         PR middle-end/42973
21298         * ira-conflicts.c (get_dup): Remove.
21299         (process_reg_shuffles): Add new parameter.  Use it as an
21300         additional guard for copy generation.
21301         (add_insn_allocno_copies): Rewrite.
21302
21303 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
21304
21305         * common.opt (fsched2-use-traces): Preserved for backward
21306         compatibility.
21307         * doc/invoke.texi: Remove the documentation about option
21308         -fsched2-use-traces.
21309         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
21310         flag_sched2_use_traces.
21311         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
21312         the backward compatibility flag section.
21313
21314 2010-02-09  Richard Guenther  <rguenther@suse.de>
21315
21316         PR tree-optimization/43008
21317         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
21318         make HEAP variables initialized from global memory if they
21319         are not known builtin functions.
21320         (find_func_aliases): Adjust.
21321
21322 2010-02-09  Richard Guenther  <rguenther@suse.de>
21323
21324         PR tree-optimization/43000
21325         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
21326         arithmetic manually.
21327
21328 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
21329
21330         PR tree-optimization/42931
21331         * tree-loop-linear.c (try_interchange_loops): Don't call
21332         double_int_mul if estimated_loop_iterations failed.
21333
21334 2010-02-08  Martin Jambor  <mjambor@suse.cz>
21335
21336         PR middle-end/42898
21337         * tree-sra.c (build_accesses_from_assign): Do not mark in
21338         should_scalarize_away_bitmap if stmt has volatile ops.
21339         (sra_modify_assign): Do not process assigns piecemeal if if stmt
21340         has volatile ops.
21341
21342 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
21343
21344         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
21345
21346 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
21347
21348         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
21349         before the pattern.
21350
21351 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
21352
21353         PR middle-end/42946
21354         * df-core.c (df_finish_pass): Change type of saved_flags to int.
21355
21356 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
21357
21358         PR middle-end/42988
21359         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
21360         to unknown_dependence.
21361         (graphite_legal_transform_dr): Handle the unknown_dependence.
21362         (graphite_carried_dependence_level_k): Same.
21363
21364 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
21365
21366         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
21367
21368 2010-02-07  Richard Guenther  <rguenther@suse.de>
21369
21370         PR middle-end/42991
21371         * expr.c (get_inner_reference): Always initialize *pbitsize.
21372
21373 2010-02-07  Richard Guenther  <rguenther@suse.de>
21374
21375         PR middle-end/42956
21376         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
21377         new ARRAY_REFs on variable size element or minimal index arrays.
21378         Complete.
21379         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
21380         gimple_fold_indirect_ref.
21381
21382 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
21383
21384         PR target/42957
21385         * arm.c (arm_override_options): Just return if the user has specified
21386         an invalid fpu name.
21387
21388 2010-02-03  Jason Merrill  <jason@redhat.com>
21389
21390         PR c++/42870
21391         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
21392         i386_pe_maybe_record_exported_symbol.
21393
21394 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
21395
21396         PR target/42924
21397         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
21398         (pa_delegitimize_address): New function.
21399
21400 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
21401
21402         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
21403         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
21404
21405 2010-02-05  Richard Guenther  <rguenther@suse.de>
21406
21407         PR lto/42762
21408         * lto-streamer-in.c (get_resolution): Deal with references
21409         to undefined functions.
21410
21411 2010-02-05  Richard Guenther  <rguenther@suse.de>
21412
21413         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
21414         (fold_const_aggregate_ref): Likewise.
21415         (ccp_fold_stmt): Substitute loads.
21416         (maybe_fold_reference): Verify types before substituting.
21417         Unshare properly.
21418         (fold_gimple_assign): Unshare properly.
21419         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
21420
21421 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
21422
21423         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
21424         for rs6000_gen_cell_microcode.
21425
21426 2010-02-04  Richard Guenther  <rguenther@suse.de>
21427
21428         PR rtl-optimization/42952
21429         * dse.c (const_or_frame_p): Remove MEM handling.
21430
21431 2010-02-04  Nick Clifton  <nickc@redhat.com>
21432
21433         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
21434         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
21435         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
21436         (mn10300_asm_output_mi_thunk): New function.
21437         (mn10300_can_output_mu_thunk): New function.
21438         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
21439         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
21440         (FUNCTION_ARG): Delete incorrect comment.
21441
21442 2010-02-03  Jason Merrill  <jason@redhat.com>
21443
21444         PR c++/40138
21445         * fold-const.c (operand_equal_p): Handle erroneous types.
21446
21447 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
21448
21449         * config/h8300/h8300.md (can_delay): Fix attibute condition.
21450
21451 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
21452
21453         PR rtl-optimization/42941
21454         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
21455         of xmalloc.
21456
21457 2010-02-03  Jason Merrill  <jason@redhat.com>
21458
21459         PR c++/35652
21460         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
21461
21462 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
21463
21464         PR debug/42896
21465         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
21466         (cselib_reset_table): Renamed from...
21467         (cselib_reset_table_with_next_value): ... this.
21468         (cselib_get_next_uid): Renamed from...
21469         (cselib_get_next_unknown_value): ... this.
21470         * cselib.c (next_uid): Renamed from...
21471         (next_unknown_value): ... this.
21472         (cselib_clear_table): Adjust.
21473         (cselib_reset_table): Adjust.  Renamed from...
21474         (cselib_reset_table_with_next_value): ... this.
21475         (cselib_get_next_uid): Adjust.  Renamed from...
21476         (cselib_get_next_unknown_value): ... this.
21477         (get_value_hash): Use hash.
21478         (cselib_hash_rtx): Likewise.
21479         (new_cselib_val): Adjust.  Set and dump uid.
21480         (cselib_lookup_mem): Pass next_uid as hash.
21481         (cselib_subst_to_values): Likewise.
21482         (cselib_log_lookup): Dump uid.
21483         (cselib_lookup): Pass next_uid as hash.  Adjust.
21484         (cselib_process_insn): Adjust.
21485         (cselib_init): Initialize next_uid.
21486         (cselib_finish): Adjust.
21487         (dump_cselib_table): Likewise.
21488         * dse.c (canon_address): Dump value uid.
21489         * print-rtl.c (print_rtx): Print value uid.
21490         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
21491         (dvuid): New type.
21492         (dv_uid): New function, sort of renamed from...
21493         (dv_htab_hash): ... this, reimplemented in terms of it and...
21494         (dv_uid2hash): ... this.  New.
21495         (variable_htab_eq): Drop excess assertions.
21496         (tie_break_pointers): Removed.
21497         (canon_value_cmp): Compare uids.
21498         (variable_post_merge_New_vals): Print uids.
21499         (vt_add_function_parameters): Adjust.
21500         (vt_initialize): Reset table.  Adjust.
21501
21502 2010-02-03  Richard Guenther  <rguenther@suse.de>
21503
21504         PR tree-optimization/42944
21505         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
21506         (call_may_clobber_ref_p_1): Likewise.  Properly handle
21507         malloc and calloc clobbering errno.
21508
21509 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
21510
21511         * doc/invoke.texi: Fix name of sched1 dump.
21512
21513         * opts.c (decode_options): Set flag_tree_switch_conversion
21514         only conditionally on optimize >= 2.
21515
21516         * gcse.c: Assorted comment fixes in pass description.
21517
21518 2010-02-03  Anthony Green  <green@moxielogic.com>
21519
21520         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
21521         nop padding in order to maintain alignment of storage location of
21522         target function address.
21523         (moxie_trampoline_init): Store target function address at newly
21524         aligned location.
21525         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
21526         to 32.
21527         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
21528
21529 2010-02-03  Richard Guenther  <rguenther@suse.de>
21530
21531         PR middle-end/42927
21532         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
21533
21534 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21535
21536         * config.gcc: Reenable check for obsolete targets.
21537         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
21538         mips-sgi-irix6.[0-4]*.
21539
21540 2010-02-02  Nick Clifton  <nickc@redhat.com>
21541
21542         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
21543         constant size of 4 as being the same as 0.
21544         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
21545         can take values in the range 0..4.
21546
21547 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
21548
21549         PR java/41991
21550         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
21551         as _darwin10_Unwind_FindEnclosingFunction().
21552         * libgcc-libsystem.ver: New.
21553
21554 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
21555
21556         PR target/41399
21557         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
21558         implicitly set registers.
21559
21560 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
21561
21562         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
21563         (arm_override_options): Allow automatic selection of the thread
21564         pointer register if thumb2.
21565         (legitimize_pic_address): Improve code sequences for Thumb2.
21566         (arm_call_tls_get_addr): Likewise.
21567         (legitimize_tls_address): Likewise.
21568         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
21569         (pic_load_addr_32bit): ... this.  New named pattern.
21570         * thumb2.md (pic_load_addr_thumb2): Delete.
21571         (pic_load_dot_plus_four): Delete.
21572         (tls_load_dot_plus_four): New named pattern.
21573
21574 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21575
21576         PR libgomp/29986
21577         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
21578         Document fix for TLS bug.
21579
21580 2010-01-31  Richard Guenther  <rguenther@suse.de>
21581
21582         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
21583         conservatively correct.
21584
21585 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21586
21587         PR target/42850
21588         Revert:
21589         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21590
21591         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
21592
21593 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21594
21595         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
21596
21597 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
21598
21599         * config.gcc: Adjust order of makefile fragments for mingw targets.
21600
21601 2010-01-31  Richard Guenther  <rguenther@suse.de>
21602
21603         PR middle-end/42898
21604         * gimplify.c (gimplify_init_constructor): For volatile LHS
21605         initialize a temporary.
21606
21607 2010-01-31  Matthias Klose  <doko@ubuntu.com>
21608
21609         * configure.ac: Fix __stack_chk_fail check for cross builds configured
21610         --with-headers
21611         * configure: Regenerate.
21612
21613 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
21614
21615         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
21616         the same alias set and their sizes different constantness.
21617         (aliasing_component_refs_p): Revert 2009-10-24 change.
21618
21619 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21620
21621         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
21622         unused.
21623
21624 2010-01-29  Richard Guenther  <rguenther@suse.de>
21625
21626         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
21627         Assert we successfully updated the call.
21628
21629 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
21630
21631         PR rtl-optimization/42889
21632         * df.h (df_set_bb_dirty_nonlr): New prototype.
21633         * df-core.c (df_set_bb_dirty_nonlr): New function.
21634         * df-scan.c (df_insn_rescan): Call it instead of
21635         df_set_bb_dirty for DEBUG_INSNs.
21636
21637 2010-01-29  Richard Guenther  <rguenther@suse.de>
21638
21639         PR middle-end/37448
21640         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
21641         quadratic behavior in most cases.
21642
21643 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
21644
21645         PR target/42891
21646         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
21647         in the call to gen_x86_movsicc_0_m1.
21648
21649 2010-01-28  Richard Guenther  <rguenther@suse.de>
21650
21651         PR tree-optimization/42871
21652         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
21653
21654 2010-01-28  Richard Guenther  <rguenther@suse.de>
21655
21656         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
21657         into call arguments.
21658
21659 2010-01-28  Richard Guenther  <rguenther@suse.de>
21660
21661         PR middle-end/42883
21662         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
21663         the forwarder if the destination is an EH landing pad.
21664
21665 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
21666
21667         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
21668         block list passed to gimple_duplicate_sese_tail.
21669         (parallelize_loops): Avoid parallelization when the function
21670         has_nonlocal_label.
21671         Avoid parallelization when the preheader is IRREDUCIBLE.
21672         Try to optimize when estimated_loop_iterations_int is unresolved.
21673         Add the loop's location to the dump file.
21674         * tree-cfg.c (add_phi_args_after_redirect): Remove.
21675         (gimple_duplicate_sese_tail): Remove the check for the latch.
21676         Redirect nexits to the exit block.
21677         Remove handling of the incoming edges to the latch.
21678         Redirect the backedge from the copied latch to the exit bb.
21679
21680 2010-01-28  Michael Matz  <matz@suse.de>
21681
21682         PR target/42881
21683         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
21684         Wrap force_reg into a sequence, emit it before user.
21685
21686 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
21687
21688         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
21689         (arm_rev): New.
21690         (arm_legacy_rev): Likewise.
21691         (thumb_legacy_rev): Likewise.
21692
21693 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
21694
21695         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
21696         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
21697         on MEM's address failed, try avoid_constant_pool_reference and
21698         recurse if it returned something different.
21699         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
21700         address, try avoid_constant_pool_reference and recurse if it
21701         returned something different.
21702         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
21703         address and avoid_constant_pool_reference returned something
21704         different, don't set have_address.
21705
21706 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
21707
21708         PR debug/42861
21709         * var-tracking.c (val_store): Add modified argument, obey it.
21710         Adjust callers.
21711         (count_uses): Move down logging of main.
21712         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
21713         don't need resolution.
21714         (emit_notes_in_bb): Likewise.
21715
21716 2010-01-27  Richard Guenther  <rguenther@suse.de>
21717
21718         PR middle-end/42878
21719         * tree-inline.c (remap_decl): Delay remapping of SSA name
21720         default definitions until we need them.
21721
21722 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
21723
21724         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
21725         (rs6000_delegitimize_address): New function.
21726
21727         * config/s390/s390.c (s390_delegitimize_address): Call
21728         delegitimize_mem_from_attrs.
21729
21730         PR middle-end/42874
21731         * tree-inline.c (cannot_copy_type_1): Removed.
21732         (copy_forbidden): Don't forbid copying of functions containing
21733         records/unions with variable length fields.
21734
21735 2010-01-27  Christian Bruel  <christian.bruel@st.com>
21736
21737         Revert:
21738         PR target/42841
21739         * config/sh/sh.c (find_barrier): Increase length for non delayed
21740         conditional branches.
21741
21742 2010-01-27  Matthias Klose  <doko@ubuntu.com>
21743
21744         * configure.ac (gnu-unique-object): Fix ldd version check.
21745         * configure: Regenerate.
21746
21747 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21748
21749         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
21750         HAVE_GNU_AS value.
21751         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
21752         Test for HAVE_GNU_AS value.
21753
21754 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21755
21756         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
21757         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
21758         INT64_TYPE): Define.
21759         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
21760         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
21761         INT_LEAST64_TYPE): Define.
21762         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
21763         UINT_LEAST64_TYPE): Define.
21764         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
21765         INT_FAST64_TYPE): Define.
21766         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
21767         UINT_FAST64_TYPE): Define.
21768         (INTMAX_TYPE, UINTMAX_TYPE): Define.
21769         (INTPTR_TYPE, UINTPTR_TYPE): Define.
21770         (SIG_ATOMIC_TYPE): Define.
21771
21772 2010-01-26  Richard Guenther  <rguenther@suse.de>
21773
21774         * df-scan.c (df_scan_set_bb_info): Remove assert.
21775         (df_insn_rescan_debug_internal): Merge asserts.
21776         (df_install_ref): Likewise.
21777         (df_mark_reg): Use bitmap_set_range.
21778         (df_hard_reg_used_p): Remove assert.
21779         (df_hard_reg_used_count): Likewise.
21780
21781 2010-01-26  Richard Guenther  <rguenther@suse.de>
21782
21783         PR rtl-optimization/42685
21784         * web.c (web_main): Ignore DEBUG_INSNs.
21785
21786 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
21787
21788         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
21789
21790         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
21791         Fix types of fndecl and arglist parameters.
21792
21793 2010-01-26  Richard Guenther  <rguenther@suse.de>
21794
21795         PR middle-end/42806
21796         * tree-eh.c (unsplit_eh): Skip debug insns.
21797
21798 2010-01-26  Richard Guenther  <rguenther@suse.de>
21799
21800         PR tree-optimization/42250
21801         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
21802
21803 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
21804
21805         PR fortran/42866
21806         * omp-low.c (expand_omp_sections): Only use single_pred if
21807         l2_bb is single_pred_p.
21808
21809 2010-01-25  Christian Bruel  <christian.bruel@st.com>
21810
21811         PR target/42841
21812         * config/sh/sh.c (find_barrier): Increase length for non delayed
21813         conditional branches.
21814         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
21815
21816 2010-01-24  David S. Miller  <davem@davemloft.net>
21817
21818         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
21819         define if not using GAS.
21820         * config/sparc/sparc.c (sparc_elf_asm_named_section):
21821         Likewise.  Delete SECTION_MERGE code, which is only applicable
21822         when using GAS.
21823
21824 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
21825
21826         PR c++/42748
21827         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
21828         mangling of va_list in system headers.
21829
21830 2010-01-23  Toon Moene  <toon@moene.org>
21831
21832         * tree-predcom.c (combine_chains): Return NULL, not false.
21833
21834 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
21835
21836         * tree-loop-distribution.c (distribute_loop): Fix declaration and
21837         initialization of variable res to agree with return type.
21838
21839 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
21840
21841         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
21842         * tree-sra.c: Add include of expr.h.
21843
21844 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
21845
21846         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
21847         insert the debug stmt on the single non-EH edge from the stmt.
21848
21849 2010-01-22  Richard Henderson  <rth@redhat.com>
21850
21851         PR tree-opt/42833
21852         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
21853         the RHS until after generate_subtree_copies has insertted its
21854         code before the current statement.
21855
21856 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
21857
21858         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
21859
21860         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
21861
21862 2010-01-21  Martin Jambor  <mjambor@suse.cz>
21863
21864         PR tree-optimization/42585
21865         * tree-sra.c (struct access): New field grp_total_scalarization.
21866         (dump_access): Dump the new field.
21867         (should_scalarize_away_bitmap): New variable.
21868         (cannot_scalarize_away_bitmap): Likewise.
21869         (sra_initialize): Allocate new bitmaps.
21870         (sra_deinitialize): Free new bitmaps.
21871         (create_access_1): New function.
21872         (create_access): Parts moved to create_access_1.
21873         (type_consists_of_records_p): New function.
21874         (completely_scalarize_record): Likewise.
21875         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
21876         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
21877         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
21878         access.
21879         (analyze_all_variable_accesses): Completely scalarize small eligible
21880         records.
21881
21882 2010-01-21  Martin Jambor  <mjambor@suse.cz>
21883
21884         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
21885
21886 2010-01-21  Andrew Haley  <aph@redhat.com>
21887
21888         * gcc.c (process_command): Move lang_specific_driver before
21889         setting cc_libexec_prefix.
21890
21891 2010-01-21  Richard Guenther  <rguenther@suse.de>
21892
21893         PR middle-end/19988
21894         * fold-const.c (negate_expr_p): Pretend only negative
21895         real constants are easily negatable.
21896
21897 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
21898             Jason Merrill  <jason@redhat.com>
21899
21900         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
21901         (TYPE_TRANSPARENT_AGGR): this, for union and record.
21902         * calls.c (initialize argument_information): Handle it.
21903         * c-common.c (handle_transparent_union_attribute): Use new name.
21904         * c-decl.c (finish_struct): Ditto.
21905         * c-typeck.c (type_lists_compatible_p): Ditto.
21906         (convert_for_assignment): Use new name and also handle record.
21907         * function.c (aggregate_value_p): Handle it.
21908         (pass_by_reference): Ditto.
21909         (assign_parm_data_types): Ditto.
21910         * print-tree.c (print_node): Ditto.
21911         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
21912         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
21913         * tree.c (first_field): New fn.
21914
21915 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
21916
21917         PR target/42818
21918         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
21919         even when linking statically, for now.
21920
21921 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
21922
21923         PR debug/42715
21924         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
21925         without a cselib val.
21926         (count_uses): Accept MO_VAL_SET with no val on stores.
21927         (add_stores): Likewise.
21928
21929 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
21930
21931         * var-tracking.c (check_value_val): Add a compile time assertion.
21932         (dv_is_decl_p): Simplify.
21933         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
21934         gcc_assert if ENABLE_CHECKING.
21935
21936 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
21937
21938         PR debug/42782
21939         * var-tracking.c: Include tree-flow.h.
21940         (mem_dies_at_call): New.
21941         (dataflow_set_preserve_mem_locs): Use it.
21942         (dataflow_set_remove_mem_locs): Likewise.
21943         (dump_var): Renamed from dump_variable.  Adjust all callers.
21944         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
21945         * Makefile.in (var-tracking.o): Adjust deps.
21946
21947 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
21948
21949         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
21950
21951 2010-01-20  Richard Guenther  <rguenther@suse.de>
21952
21953         PR tree-optimization/42717
21954         * tree-ssa-dce.c (get_live_post_dom): Remove.
21955         (forward_edge_to_pdom): Take an arbitrary edge to copy
21956         degenerate PHI args from.
21957         (remove_dead_stmt): Use the first post-dominator even if it
21958         does not contain live statements as redirection destination.
21959
21960 2010-01-20  Richard Guenther  <rguenther@suse.de>
21961
21962         * tree-inline.c (estimate_num_insns): Handle EH builtins.
21963
21964 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
21965
21966         * sel-sched.c (create_speculation_check): Remove set but not used
21967         variable twin.
21968         (try_transformation_cache): Remove set but not used variable ds.
21969         (calculate_privileged_insns): Remove set but not used variables
21970         cur_insn and min_spec_insn.
21971         (find_best_expr): Remove set but not used variable avail_n.
21972         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
21973         variable e.
21974         * cgraphunit.c (assemble_thunk): Remove set but not used variable
21975         false_label.
21976         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
21977         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
21978         new_scop_exit_edge.
21979
21980 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
21981
21982         PR bootstrap/42786
21983         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
21984         cpu types.  Add support for *-sse3 cpu types.
21985         (x86_64-*-*): Ditto.
21986
21987 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
21988
21989         PR middle-end/42803
21990         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
21991         argument, call initializer_constant_valid_p_1 instead of
21992         initializer_constant_valid_p, pass CACHE to it, return NULL
21993         immediately if first call returns NULL.
21994         (initializer_constant_valid_p_1): New function.
21995         (initializer_constant_valid_p): Use it.
21996
21997 2010-01-20  Thomas Quinot  <quinot@adacore.com>
21998
21999         * tree.def (PLACEHOLDER_EXPR): Fix comment.
22000
22001 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
22002
22003         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
22004         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
22005         (loc_list_from_tree): Don't handle unsigned division.  Handle
22006         signed modulo using DW_OP_{over,over,div,mul,minus}.
22007         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
22008         modulo instead of signed.
22009
22010 2010-01-20  DJ Delorie  <dj@redhat.com>
22011
22012         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
22013         (Fpa): Pass it
22014         (h8300_emit_stack_adjustment): Propogate it.
22015         (push): Pass it.
22016         (h8300_expand_prologue): Likewise.
22017         (h8300_expand_epilogue): Likewise.
22018
22019 2010-01-19  Michael Matz  <matz@suse.de>
22020
22021         PR tree-optimization/41783
22022         * tree-data-ref.c (toplevel): Include flags.h.
22023         (dump_data_dependence_relation):  Also dump the inputs if the
22024         result will be unknown.
22025         (split_constant_offset_1): Look through some conversions.
22026         * tree-predcom.c (determine_roots_comp): Restart a new chain if
22027         the offset from last element is too large.
22028         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
22029         (reassociate_to_the_same_stmt): Handle vector registers.
22030         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
22031         (e.g. conversions).
22032         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
22033         wide_prolog_niters argument, emit widening instructions.
22034         (vect_do_peeling_for_alignment): Adjust caller, use widened
22035         variant of the iteration cound.
22036         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
22037
22038 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22039
22040         PR target/38697
22041         * config/arm/neon-testgen.m (emit_automatics): New parameter
22042         features. Adjust for Fixed_return_reg feature.
22043         (test_intrinsic): Call emit_automatics with new feature.
22044         * config/arm/neon.ml: Update copyright years.
22045         (features): New Fixed_return_reg feature.
22046         (ops): Update feature for Vget_low.
22047
22048 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
22049
22050         PR tree-optimization/42719
22051         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
22052         stmt uses.
22053
22054         PR debug/42728
22055         * fwprop.c (all_uses_available_at): Return false if def_set dest
22056         is a REG that is used in def_insn.
22057
22058 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
22059
22060         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
22061
22062         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
22063         Add argument names.
22064
22065         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
22066
22067         * target.h (struct gcc_target) <secondary_reload>: Change type
22068         of last argument to secondary_reload_info *.
22069
22070 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
22071
22072         PR target/42774
22073         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
22074         memory references with unaligned offsets.  Remove CQImode handling.
22075         (unaligned_memory_operand): Return 1 for memory references with
22076         unaligned offsets.  Remove CQImode handling.
22077
22078 2010-01-18  Richard Guenther  <rguenther@suse.de>
22079
22080         PR middle-end/39954
22081         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
22082         builtin calls.
22083
22084 2010-01-18  Richard Guenther  <rguenther@suse.de>
22085
22086         PR tree-optimization/42781
22087         * tree-ssa-structalias.c (find_what_var_points_to): Skip
22088         restrict processing only if the original variable was artificial.
22089
22090 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
22091
22092         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
22093         find number of popped argument bytes.
22094
22095         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
22096         Fix the text that describes the return value for invalid insns.
22097
22098         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
22099
22100         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
22101         Clarify what 'cost of the -dependence' is.  Fix quoting.
22102
22103         * toplev.c (default_get_pch_validity): Rename argument to "sz".
22104         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
22105
22106 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
22107
22108         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
22109         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
22110
22111 2010-01-17  Richard Guenther  <rguenther@suse.de>
22112
22113         PR middle-end/42248
22114         * function.c (split_complex_args): Take a VEC to modify.
22115         (assign_parms_augmented_arg_list): Build a VEC instead of
22116         a chain of PARM_DECLs.
22117         (assign_parms_unsplit_complex): Take a VEC of arguments.
22118         Do not fixup unmodified parms.
22119         (assign_parms): Deal with the VEC.
22120         (gimplify_parameters): Likewise.
22121
22122 2010-01-17  Richard Guenther  <rguenther@suse.de>
22123
22124         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
22125         node existence check.
22126         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
22127         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
22128         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
22129         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
22130         (gimple_execute_on_growing_pred): Likewise.
22131
22132 2010-01-17  Richard Guenther  <rguenther@suse.de>
22133
22134         PR tree-optimization/42773
22135         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
22136         (compute_antic_aux): Likewise.
22137         (compute_partial_antic_aux): Likewise.
22138
22139 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
22140
22141         PR debug/42767
22142         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
22143         and US_TRUNCATE.
22144
22145 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
22146
22147         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
22148         appearance.
22149
22150         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
22151         Fix markup for strict argument.
22152
22153         (TARGET_SCHED_REORDER2): Fix argument types.
22154
22155         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
22156         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
22157
22158         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
22159         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
22160
22161         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
22162         Add argument name.
22163
22164         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
22165         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
22166         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
22167         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
22168         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
22169
22170         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
22171
22172         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
22173
22174         (TARGET_ASM_RELOC_RW_MASK): Add return type.
22175         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
22176
22177         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
22178
22179         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
22180         Use prototype.
22181
22182         (TARGET_ASM_NAMED_SECTION): Fix argument list.
22183
22184         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
22185         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
22186
22187         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
22188
22189         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
22190
22191         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
22192         referring to it.  Fix language.
22193
22194         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
22195
22196         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
22197
22198         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
22199
22200         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
22201
22202         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
22203         '@var{stream}.  Remove stray 'and'.
22204
22205         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
22206
22207         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
22208
22209         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
22210
22211         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
22212         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
22213
22214         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
22215         Fix description of return value.
22216         Rename argument "sz" to "len."
22217
22218         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
22219         Clarify meaning of 'true' return value.
22220
22221         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
22222
22223         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
22224         rep_mode versus mode_rep.
22225
22226         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
22227
22228         (TARGET_BUILTIN_DECL): Fix name.
22229
22230         (TARGET_COMMUTATIVE_P): Fix type of first argument.
22231
22232         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
22233
22234         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
22235
22236         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
22237
22238         (TARGET_RELAXED_ORDERING): Use @deftypevr.
22239
22240         (TARGET_GET_DRAP_RTX): Note that this is a hook.
22241         Clarify language.
22242
22243         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
22244         Rename argument tm_fn to md_fn.
22245
22246         (TARGET_OPTION_PRINT): Fix argument list.
22247
22248 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
22249
22250         PR target/42664
22251         * config/i386/i386.c (ix86_fixup_binary_operands):
22252         Revert FMA4 fixup of operands.
22253
22254 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22255
22256         PR gcc/42525
22257         * Makefile.in (write_entries_to_file, install-plugin):
22258         Use \012 instead of \n with tr.
22259
22260 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
22261
22262         * configure.ac (HAVE_AS_REF): New C macro.
22263         * configure: Regenerate.
22264         * config.in: Likewise.
22265         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
22266         if HAVE_AS_REF.
22267         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
22268         if HAVE_AS_REF.
22269
22270 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
22271
22272         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
22273
22274         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
22275
22276         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
22277
22278         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
22279
22280         (TARGET_IN_SMALL_DATA_P): Fix argument type.
22281
22282         (TARGET_BINDS_LOCAL_P): Fix argument type.
22283
22284         (TARGET_ASM_FILE_END): Use prototype.
22285
22286         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
22287
22288         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
22289
22290         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
22291
22292         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
22293
22294         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
22295         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
22296
22297         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
22298         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
22299
22300         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
22301         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
22302         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
22303         (TARGET_ADDR_SPACE_CONVERT): Likewise.
22304
22305         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
22306
22307         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
22308
22309         (TARGET_INIT_BUILTINS): Use prototype.
22310
22311         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
22312         Put 'const char *' in braces.  Fix parameter types.
22313         (TARGET_INVALID_CONVERSION): Fix parameter types.
22314         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
22315         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
22316
22317         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
22318         Fix argument type.
22319
22320         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
22321
22322         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
22323
22324 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
22325
22326         * doc/tm.texi (TARGET_HELP): Fix return type.
22327
22328         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
22329         in braces.  Fix argument types.
22330
22331         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
22332
22333         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
22334
22335         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
22336
22337         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
22338         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
22339
22340         (TARGET_MANGLE_TYPE): Fix argument types.
22341
22342         (TARGET_IRA_COVER_CLASSES): Use prototype.
22343
22344         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
22345
22346         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
22347
22348         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
22349
22350         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
22351
22352         (TARGET_CALLEE_COPIES): Fix argument types.
22353
22354         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
22355
22356         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
22357
22358         (TARGET_FUNCTION_VALUE): Fix argument types.
22359
22360         (TARGET_RETURN_IN_MSB): Fix argument type.
22361
22362         (TARGET_RETURN_IN_MEMORY): Fix argument types.
22363
22364         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
22365
22366         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
22367
22368         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
22369         agree with return type.
22370
22371         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
22372
22373 2010-01-15  Jing Yu  <jingyu@google.com>
22374
22375         PR rtl-optimization/42691
22376         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
22377         a pseudo to a constant and are merged, and adjust comments.
22378
22379 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
22380
22381         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
22382
22383 2010-01-15  Richard Guenther  <rguenther@suse.de>
22384
22385         PR middle-end/42739
22386         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
22387         labels of computed or non-local gotos to the destination.
22388         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
22389         landing pad label is the first label.
22390
22391 2010-01-15  Richard Guenther  <rguenther@suse.de>
22392
22393         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
22394
22395 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
22396
22397         PR target/42747
22398         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
22399         to allow generation of the xssqrtdp instruction on power7.
22400         (sqrtdf2_fpr): Ditto.
22401
22402 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
22403
22404         PR middle-end/42674
22405         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
22406         functions with noreturn attribute.
22407
22408         PR c++/42608
22409         * varasm.c (declare_weak): Add weak attribute to decl if it
22410         doesn't have one already.
22411         (assemble_external): Only add decls to weak_decls if they also
22412         have weak attribute.
22413
22414 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
22415
22416         * var-tracking.c (var_reg_delete): Don't delete the association
22417         between REGs and values or one-part variables if the register
22418         isn't clobbered.
22419
22420 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
22421
22422         PR debug/42657
22423         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
22424         because its first operand is a non-localized variable.
22425
22426 2010-01-14  Martin Jambor  <mjambor@suse.cz>
22427
22428         PR tree-optimization/42706
22429         * tree-sra.c (encountered_recursive_call): New variable.
22430         (encountered_unchangable_recursive_call): Likewise.
22431         (sra_initialize): Initialize both new variables.
22432         (callsite_has_enough_arguments_p): New function.
22433         (scan_function): Call decl and flags check only for IPA-SRA, check
22434         whether there is a recursive call and whether it has enough arguments.
22435         (all_callers_have_enough_arguments_p): New function.
22436         (convert_callers): Look for recursive calls only when
22437         encountered_recursive_call is set.
22438         (ipa_early_sra): Bail out either if
22439         !all_callers_have_enough_arguments_p or
22440         encountered_unchangable_recursive_call.
22441
22442 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22443
22444         * sel-sched.c: Add 2010 to copyright years.
22445         * sel-sched-ir.c: Likewise.
22446         * sel-sched-ir.h: Likewise.
22447
22448 2010-01-14  Martin Jambor  <mjambor@suse.cz>
22449
22450         PR tree-optimization/42714
22451         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
22452         constructors specially.
22453
22454 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22455
22456         * config/i386/drivers-i386.c (detect_caches_intel):
22457         Add l2sizekb parameter and fill in.
22458         (host_detect_local_cpu): Add l2sizekb, fill in.
22459         Add Atom small cache heuristic.
22460
22461 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22462
22463         * config/i386/drivers-i386.c (detect_caches_cpuid4):
22464         Add level3 parameter and fill in.
22465         (detect_caches_intel): Handle level3 cache.
22466
22467 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22468
22469         * config/i386/drivers-i386.c (host_detect_local_cpu):
22470         Fix core duo detection.
22471
22472 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22473
22474         * config/i386/drivers-i386.c (host_detect_local_cpu):
22475         Fix Atom detection.
22476
22477 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22478
22479         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
22480         (rs6000_variable_issue_1): this.  Use...
22481         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
22482
22483 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22484
22485         * sel-sched-ir.c (sel_restore_other_notes): Rename to
22486         sel_restore_notes.  Update all callers.  Call reemit_notes
22487         for all insns.
22488
22489 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22490
22491         PR rtl-optimization/42246
22492         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
22493         loops.
22494
22495 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22496
22497         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
22498         all successors is the same as number of successors in current region.
22499
22500 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22501
22502         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
22503         to rename is not separable.  Otherwise check that its LHS is not NULL.
22504
22505 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22506
22507         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
22508
22509 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22510
22511         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
22512         available registers when failed to discover LHS register class.
22513         Fix indentation.  Update comment.
22514
22515 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22516             Alexander Monakov  <amonakov@ispras.ru>
22517
22518         PR rtl-optimization/42389
22519         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
22520         to can_issue_more.
22521         (advance_state_on_fence): Likewise.
22522         (sel_target_adjust_priority): Print debug output only when
22523         sched_verbose >= 4, not 2.
22524         (get_expr_cost): Do not issue all unique insns on the next cycle.
22525         (fill_insns): Initialize can_issue_more from the value saved
22526         with the fence.
22527         * sel-sched-ir.c (flist_add): New parameter issue_more.
22528         Init FENCE_ISSUE_MORE with it.
22529         (merge_fences): Likewise.
22530         (init_fences): Update call to flist_add.
22531         (add_to_fences, add_clean_fence_to_fences)
22532         (add_dirty_fence_to_fences): Likewise.
22533         (move_fence_to_fences): Update call to merge_fences.
22534         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
22535         sched groups.
22536         * sel-sched-ir.h (struct _fence): New field issue_more.
22537         (FENCE_ISSUE_MORE): New accessor macro.
22538
22539 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22540
22541         PR rtl-optimization/42388
22542         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
22543         that have no predecessors nor successors.  Do not call move_bb_info
22544         for empty blocks outside of current region.
22545
22546 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22547
22548         PR rtl-optimization/42294
22549         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
22550         * sel-sched.c (move_exprs_to_boundary): Transitively add all
22551         originators' originators.
22552
22553 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22554
22555         PR rtl-optimization/39453
22556         PR rtl-optimization/42246
22557         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
22558         for pipelining_p.
22559         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
22560
22561 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22562             Alexander Monakov  <amonakov@ispras.ru>
22563
22564         PR middle-end/42245
22565         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
22566         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
22567         argument.  Update all callers.
22568         (tidy_control_flow): ... and here.  Recompute topological order
22569         of basic blocks in region if necessary.
22570         (sel_redirect_edge_and_branch): Change return type.  Return true
22571         if topological order might have been invalidated.
22572         (purge_empty_blocks): Export and move from...
22573         * sel-sched.c (purge_empty_blocks): ... here.
22574         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
22575         (maybe_tidy_empty_bb): Delete prototype.
22576         (purge_empty_blocks): Declare.
22577
22578 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
22579
22580         PR rtl-optimization/42249
22581         * sel-sched.c (try_replace_dest_reg): When chosen register
22582         and original register is the same, do not bail out early, but
22583         still check all original insns for validity of replacing destination
22584         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
22585         in this case.
22586
22587 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
22588
22589         PR c/42721
22590         Port from no-undefined-overflow branch:
22591         2009-03-09  Richard Guenther  <rguenther@suse.de>
22592
22593         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
22594
22595 2010-01-14  Richard Guenther  <rguenther@suse.de>
22596
22597         PR lto/42665
22598         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
22599
22600 2010-01-14  Ira Rosen  <irar@il.ibm.com>
22601
22602         PR tree-optimization/42709
22603         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
22604         as scalar type in creation of constant vector operand.
22605
22606 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22607
22608         PR testsuite/42414
22609         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
22610         (check-parallel-%): Match `testsuite' directory component only
22611         at the end.
22612
22613 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
22614
22615         PR translation/39521
22616         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
22617         strings with _().
22618
22619 2010-01-13  Richard Guenther  <rguenther@suse.de>
22620
22621         PR tree-optimization/42730
22622         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
22623         offset zero.
22624
22625 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
22626
22627         PR target/pr42542
22628         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
22629         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
22630         them signed.
22631
22632 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
22633
22634         * config/bfin/libgcc-bfin.ver: Regenerate based on current
22635         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
22636         ___umulsi3_highpart.
22637
22638         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
22639         rather than schedule_insns if the pass is enabled.
22640
22641 2010-01-13  Martin Jambor  <mjambor@suse.cz>
22642
22643         PR tree-optimization/42704
22644         * tree-sra.c (sra_modify_assign): Do not delete assignments to
22645         SSA_NAMEs.
22646
22647 2010-01-13  Martin Jambor  <mjambor@suse.cz>
22648
22649         PR tree-optimization/42703
22650         * tree-sra.c (analyze_access_subtree): Check that we can build a
22651         reference to the original data within the aggregate.
22652
22653 2010-01-13  Richard Guenther  <rguenther@suse.de>
22654
22655         PR tree-optimization/42705
22656         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
22657
22658 2010-01-13  Richard Guenther  <rguenther@suse.de>
22659
22660         PR middle-end/42716
22661         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
22662
22663 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
22664
22665         PR debug/41371
22666         * var-tracking.c (values_to_unmark): New variable.
22667         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
22668         values_to_unmark vector.  Moved body to...
22669         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
22670         instead queue it into values_to_unmark vector.
22671         (vt_find_locations): Free values_to_unmark vector.
22672
22673 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
22674
22675         * config/s390/s390.c (override_options): Set
22676         default of max-pending-list-length to 256
22677
22678 2010-01-13  Richard Guenther  <rguenther@suse.de>
22679
22680         PR lto/42678
22681         * tree-pass.h (PROP_gimple_lcx): New.
22682         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
22683         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
22684         before the final cleanup_eh.
22685         (dump_properties): Dump PROP_gimple_lcx.
22686         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
22687         (tree_lower_complex_O0): Remove.
22688         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
22689         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
22690         tree_lower_complex, schedule TODO_update_ssa.
22691         * lto-streamer-out.c (output_function): Stream the functions
22692         properties.
22693         * lto-streamer-in.c (input_function): Likewise.
22694         (lto_read_body): Do not override them here.
22695
22696 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
22697
22698         PR c/42708
22699         * c-typeck.c (build_c_cast): Fold value cast to union type before
22700         wrapping it in a CONSTRUCTOR.
22701
22702 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
22703
22704         PR rtl-optimization/42699
22705         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
22706         involved.
22707
22708 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22709
22710         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
22711         SUBTARGET_WARN_UNUSED_SPEC): Move ...
22712         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
22713         SUBTARGET_WARN_UNUSED_SPEC): ... here
22714         * config/mips/iris5.h (LIBGCC_SPEC): Define.
22715
22716 2010-01-12  Julian Brown  <julian@codesourcery.com>
22717
22718         * config/arm/neon-schedgen.ml (Utils): Don't try to
22719         open missing module.
22720         (find_with_result): New.
22721
22722 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
22723
22724         PR debug/42662
22725         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
22726         sharing when canonicalizing ({lt,ge}u (plus a b) b).
22727
22728         PR tree-optimization/42645
22729         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
22730         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
22731         decl_map, set processing_debug_stmt to -1 and return name without
22732         any remapping.
22733
22734 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
22735
22736         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
22737         binutils version, and reword target configuration description.
22738
22739 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
22740
22741         * config/avr/avr.h (LINKER_NAME): Remove.
22742
22743 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
22744
22745         PR target/42416
22746         * config/rs6000/rs6000.c (rs6000_override_options): On targets
22747         that support VSX, warn for -mno-altivec if vsx is not disabled,
22748         and disable vsx.
22749
22750 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
22751             Shujing Zhao  <pearly.zhao@oracle.com>
22752
22753         PR translation/42469
22754         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
22755         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
22756         character between option name and help text.
22757         * c.opt (imultilib): Likewise.
22758
22759 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
22760
22761         * lto-streamer-out.c (output_unreferenced_globals): Output static
22762         variables.
22763
22764 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
22765
22766         PR rtl-optimization/42621
22767         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
22768         optimizing for size.
22769         (duplicate_computed_gotos): Remove now-redundant check.
22770
22771 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
22772
22773         PR target/37454
22774         * configure.ac: Save and restore LDFLAGS and LIBS
22775         * configure: Regenerate.
22776
22777 2010-01-10  Richard Guenther  <rguenther@suse.de>
22778
22779         PR middle-end/42667
22780         * builtins.c (fold_builtin_strlen): Add type argument and
22781         convert the resulting length to it.
22782         (fold_builtin_1): Adjust.
22783
22784 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
22785
22786         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
22787         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
22788         1 insn.
22789         (num_insns_constant_wide): Adjust for that change.
22790
22791 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22792
22793         PR debug/42631
22794         * web.c (union_defs): Add used argument, to combine uses of
22795         uninitialized regs.
22796         (entry_register): Adjust type and tests of used argument.
22797         (web_main): Widen used for new use.  Pass it to union_defs.
22798         * df.h (union_defs): Adjust prototype.
22799
22800 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22801
22802         PR debug/42630
22803         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
22804         uses in new incoming argument.  Free body.
22805         (reset_debug_uses_in_loop): New.
22806         (analyze_insn_to_expand_var): Call the latter if the former found
22807         anything.  Fix whitespace.  Reject invalid dest overlaps before
22808         going through all insns in the loop.
22809
22810 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22811
22812         PR debug/42629
22813         * haifa-sched.c (dying_use_p): Debug insns don't count.
22814
22815 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22816
22817         PR middle-end/42363
22818         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
22819         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
22820         (verify_gimple_call): Reject LHS in noreturn calls.
22821
22822 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22823
22824         PR debug/42604
22825         PR debug/42395
22826         * tree-vect-loop-manip.c (adjust_info): New type.
22827         (adjust_vec): New pointer to vector.
22828         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
22829         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
22830         (slpeel_update_phis_for_duplicate_loop): Use them.
22831         (slpeel_update_phi_nodes_for_guard1): Likewise.
22832         (slpeel_update_phi_nodes_for_guard2): Likewise.
22833         (slpeel_tree_peel_loop_to_edge): Likewise.
22834         (vect_update_ivs_after_vectorizer): Likewise.
22835
22836 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22837
22838         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
22839         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
22840
22841 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22842
22843         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
22844         bogus uninitialized warning.
22845
22846 2010-01-09  Richard Guenther  <rguenther@suse.de>
22847
22848         PR middle-end/42512
22849         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
22850         the evolution is compatible with the initial condition.
22851
22852 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
22853
22854         * gcc.c (process_command): Update copyright notice dates.
22855         * gcov.c (print_version): Likewise.
22856         * gcov-dump.c (print_version): Likewise.
22857         * mips-tfile.c (main): Likewise.
22858         * mips-tdump.c (main): Likewise.
22859
22860 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
22861
22862         PR target/41885
22863         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
22864         (rotlhi3): Delete.
22865         (rotlhi3_8): Delete.
22866         (rotlsi3): Delete.
22867         (rotlsi3_8): Delete.
22868         (rotlsi3_16): Delete.
22869         (rotlsi3_24): Delete.
22870         (rotl<mode>3): New.
22871         (*rotw<mode>3): New.
22872         (*rotb<mode>3): New.
22873         * config/avr/avr.c (avr_rotate_bytes): New function.
22874         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
22875
22876 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
22877
22878         PR target/37454
22879         * configure.ac: Modify -rdynamic check.
22880         * configure: Regenerate.
22881
22882 2010-01-08  DJ Delorie  <dj@redhat.com>
22883
22884         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
22885         register popping order.
22886
22887 2010-01-08  Richard Guenther  <rguenther@suse.de>
22888
22889         PR lto/42528
22890         * c.opt (fsigned-char): Also let LTO handle this option.
22891         (funsigned-char): Likewise.
22892
22893 2010-01-07  Richard Guenther  <rguenther@suse.de>
22894
22895         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
22896         (gimple_op): Likewise.
22897         (gimple_op_ptr): Likewise.
22898         (gimple_assign_set_lhs): Remove gcc_assert.
22899         (gimple_assign_set_rhs1): Likewise.
22900         (gimple_assign_set_rhs2): Likewise.
22901         (gimple_call_set_lhs): Likewise.
22902         (gimple_call_set_fn): Likewise.
22903         (gimple_call_set_fndecl): Likewise.
22904         (gimple_call_fndecl): Likewise.
22905         (gimple_call_return_type): Likewise.
22906         (gimple_call_set_chain): Likewise.
22907         (gimple_call_num_args): Likewise.
22908         (gimple_call_set_arg): Likewise.
22909         (gimple_cond_set_code): Likewise.
22910         (gimple_cond_set_lhs): Likewise.
22911         (gimple_cond_set_rhs): Likewise.
22912         (gimple_cond_set_true_label): Likewise.
22913         (gimple_cond_set_false_label): Likewise.
22914         (gimple_label_set_label): Likewise.
22915         (gimple_goto_set_dest): Likewise.
22916         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
22917         (gimple_debug_bind_get_value): Likewise.
22918         (gimple_debug_bind_get_value_ptr): Likewise.
22919         (gimple_debug_bind_set_var): Likewise.
22920         (gimple_debug_bind_set_value): Likewise.
22921         (gimple_debug_bind_reset_value): Likewise.
22922         (gimple_debug_bind_has_value_p): Likewise.
22923         (gimple_return_retval_ptr): Remove gcc_assert.
22924         (gimple_return_retval): Likewise.
22925         (gimple_return_set_retval): Likewise.
22926         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
22927         (safe_referenced_var_iterator): Remove.
22928         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
22929         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
22930         (fill_referenced_var_vec): Remove.
22931         (first_readonly_imm_use): Remove redundant gcc_assert.
22932         (phi_arg_index_from_use): Combine gcc_asserts.
22933         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
22934         (first_imm_use_stmt): Remove redundant gcc_assert.
22935         * tree-cfg.c (verify_gimple_call): Verify function and chain
22936         operands.  Verify arguments.
22937         (verify_types_in_gimple_stmt): Verify condition code and labels.
22938
22939 2010-01-07  Richard Guenther  <rguenther@suse.de>
22940
22941         PR tree-optimization/42641
22942         * sese.c (rename_map_elt_info): Use the SSA name version, do
22943         not hash pointers.
22944
22945 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
22946
22947         PR tree-optimization/42625
22948         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
22949         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
22950
22951 2010-01-07  Duncan Sands  <baldrick@free.fr>
22952
22953         * Makefile.in (PLUGIN_HEADERS): Add version.h.
22954
22955 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
22956
22957         PR target/42511
22958         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
22959         note itself is not function_invariant_p.
22960
22961 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
22962
22963         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
22964         Do not add the DF_NOTE problem.
22965         * store-motion.c (execute_rtl_store_motion): Likewise.
22966
22967 2010-01-07  Martin Jambor  <mjambor@suse.cz>
22968
22969         PR tree-optimization/42157
22970         * tree-sra.c (compare_access_positions): Stabilize sort if both
22971         accesses have integer types, return zero immediately if they are the
22972         same.
22973
22974 2010-01-06  Richard Henderson  <rth@redhat.com>
22975
22976         PR middle-end/41883
22977         * haifa-sched.c (add_to_note_list): Merge into ...
22978         (concat_note_lists): ... here, and ...
22979         (unlink_other_notes, rm_other_notes): Merge into...
22980         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
22981         NOTE_INSN_EPILOGUE_BEG.
22982
22983 2010-01-06  Richard Guenther  <rguenther@suse.de>
22984
22985         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
22986         not inline regular functions into always-inline functions.
22987
22988 2010-01-06  Nick Clifton  <nickc@redhat.com>
22989
22990         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
22991         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
22992         used together.
22993         (OVERRIDE_OPTIONS): Delete.
22994         (OPTIMIZATION_OPTIONS): Define.
22995         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
22996         * config/rx/rx.c (rx_handle_option): Issue an error message if
22997         -mcpu=rx200 and -fpu are used together.
22998         (rx_set_optimization_options): New function.  Issue an error
22999         message if an optimization attribute attempts to reset the FPU/
23000         math optimization pairing.
23001         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
23002         * config/rx/rx.opt: Set the default to 32-bit doubles.
23003         * config/rx/t-rx: Add multilibs for -nofpu option.
23004         * doc/invoke.texi: Update documentation of RX options.
23005
23006 2010-01-06  Richard Guenther  <rguenther@suse.de>
23007
23008         * tree-ssa-pre.c (name_to_id): New global.
23009         (alloc_expression_id): Simplify SSA name handling.
23010         (lookup_expression_id): Likewise.
23011         (init_pre): Zero name_to_id.
23012         (fini_pre): Free it.
23013
23014 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
23015
23016         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
23017
23018 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
23019
23020         PR target/42542
23021         * config/i386/sse.md (smaxv2di3): New.
23022         (umaxv2di3): Likewise.
23023         (sminv2di3): Likewise.
23024         (uminv2di3): Likewise.
23025
23026 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
23027
23028         PR target/42564
23029         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
23030         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
23031         (legitimize_tls_address): Likewise.
23032         (sparc_tls_referenced_p): Likewise.
23033         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
23034         and adjust calls to legitimize_pic_address.
23035         (legitimate_constant_p) Use sparc_tls_referenced_p.
23036         (legitimate_pic_operand_p): Likewise.
23037         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
23038         (sparc_tls_symbol_ref_1): Delete.
23039         (sparc_tls_referenced_p): Make static, recognize specific patterns.
23040         (legitimize_tls_address): Make static, handle CONST patterns.
23041         (legitimize_pic_address): Make static, remove unused parameter and
23042         adjust recursive calls.
23043         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
23044         and adjust call to legitimize_pic_address.
23045         (sparc_output_mi_thunk): Likewise.
23046
23047 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
23048             H.J. Lu  <hongjiu.lu@intel.com>
23049
23050         PR target/42542
23051         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
23052         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
23053         operands to make them signed.
23054
23055         Revert:
23056         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
23057
23058         PR target/42542
23059         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
23060         GTU to GT for V4SI and V2DI.
23061
23062         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
23063         (umin<mode>3): Removed.
23064         (uminv8hi3): New.
23065         (uminv4si3): Likewise.
23066
23067 2010-01-05  Martin Jambor  <mjambor@suse.cz>
23068
23069         PR tree-optimization/42462
23070         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
23071         current_function_decl to helper functions and macros.
23072
23073 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23074
23075         PR bootstrap/41771
23076         * flags.h: Don't include real.h.
23077         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
23078         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
23079         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
23080         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
23081         * dominance.c: Update copyright.
23082         * gimple.c (walk_gimple_op): Remove inline.
23083         * tree-ssa-reassoc.c: Include real.h.
23084         * Makefile.in (FLAGS_H): Remove $(REAL_H).
23085         (tree-ssa-reassoc.o): Depend on $(REAL_H).
23086
23087 2010-01-05  Nick Clifton  <nickc@redhat.com>
23088
23089         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
23090         register to push into the stack frame when the accumulator has to
23091         be saved during interrupts.
23092
23093 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
23094
23095         * doc/invoke.texi: Remove the documentation about option
23096         -Wunreachable-code.
23097         * common.opt (Wunreachable-code):  Preserved for backward
23098         compatibility.
23099         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
23100         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
23101         the backward compatibility flag section.
23102
23103 2010-01-05  Richard Guenther  <rguenther@suse.de>
23104
23105         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
23106
23107 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
23108
23109         PR other/42611
23110         * cfgexpand.c (expand_one_var): Diagnose too large variables.
23111
23112         PR tree-optimization/42508
23113         * tree-sra.c (convert_callers): Check for recursive call
23114         by comparing cgraph nodes instead of decls.
23115         (modify_function): Call ipa_modify_formal_parameters also
23116         on all same_body aliases.
23117
23118         * cgraphunit.c (cgraph_materialize_all_clones): Compare
23119         cgraph nodes when checking for same_body aliases.
23120
23121 2010-01-05  Richard Guenther  <rguenther@suse.de>
23122
23123         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
23124         allocation and lookup.
23125         (get_or_alloc_expr_for_constant): Likewise.
23126         (phi_translate): Sink allocation.
23127
23128 2010-01-04  Richard Guenther  <rguenther@suse.de>
23129
23130         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
23131         a new entry only if needed.
23132         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
23133         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
23134         hashtable lookup.
23135         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
23136         the result array.
23137         (phi_translate): Handle CONSTANTs early.
23138
23139 2010-01-04  Martin Jambor  <mjambor@suse.cz>
23140
23141         PR tree-optimization/42398
23142         * tree-sra.c (struct access): Removed flag grp_different_types.
23143         (dump_access): Do not dump the removed flag.
23144         (sort_and_splice_var_accesses): Do not set the removed flag.
23145         (sra_modify_expr): Check for type compatibility directly.
23146
23147 2010-01-04  Martin Jambor  <mjambor@suse.cz>
23148
23149         PR tree-optimization/42366
23150         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
23151         edges with variable number of parameters.
23152         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
23153         flag instead of asserting it.
23154         (ipa_read_node_info): Read uses_analysis_done flag.
23155
23156 2010-01-04  Richard Guenther  <rguenther@suse.de>
23157
23158         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
23159         iterative_hash_* as intended.
23160         (vn_reference_compute_hash): Likewise.  Simplify hashing
23161         SSA names.
23162         (vn_reference_lookup_2): Likewise.
23163         (vn_nary_op_compute_hash): Likewise.
23164         (vn_phi_compute_hash): Likewise.
23165         (expressions_equal_p): Remove strange code.
23166         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
23167         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
23168         (bitmap_insert_into_set_1): Take value-id as parameter.
23169         (add_to_value): Pass it.
23170         (bitmap_insert_into_set): Likewise.
23171         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
23172
23173 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
23174
23175         PR driver/42442
23176         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
23177         (do_self_spec): For switches with SWITCH_IGNORE set set also
23178         SWITCH_IGNORE_PERMANENTLY.
23179         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
23180         of SWITCH_IGNORE.
23181
23182 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
23183
23184         * lto-streamer-out.c (output_unreferenced_globals): Output the full
23185         tree of an unreferenced global var.
23186
23187 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
23188
23189         PR target/42542
23190         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
23191         GTU to GT for V4SI and V2DI.
23192
23193         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
23194         (umin<mode>3): Removed.
23195         (uminv8hi3): New.
23196         (uminv4si3): Likewise.
23197
23198 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
23199
23200         PR lto/42581
23201         * collect2.c (main): Turn on trace in collect2 if -v is passed
23202         to gcc with LTO.
23203
23204 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
23205
23206         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
23207         description of expression operand.
23208
23209 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
23210
23211         * configure.ac: Add install-html to target_list for Make-hooks.
23212         * configure: Regenerate.
23213         * fortran/Make-lang.in (F95_HTMLFILES): New.
23214         (fortran.html): Use it.
23215         (fortran.install-html): New.
23216         * Makefile.in (install-html): Add lang.install-html.
23217         * java/Make-lang.in (JAVA_HTMLFILES): New.
23218         (java.html): Use it.
23219         (java.install-html): New.
23220         * objc/Make-lang.in (objc.install-html): New.
23221         * objcp/Make-lang.in (obj-c++.install-html): New.
23222         * cp/Make-lang.in (c++.install-html): New.
23223         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
23224         * lto/Make-lang.in (lto.install-html): New.
23225
23226 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
23227
23228         PR lto/42520
23229         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
23230
23231 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
23232
23233         PR rtl-optimization/41862
23234         * store-motion.c (store_killed_in_insn, compute_store_table,
23235         remove_reachable_equiv_notes, replace_store_insn,
23236         build_store_vectors): Ignore all DEBUG_INSNs.
23237
23238 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
23239
23240         PR lto/41564
23241         * common.opt: Add dumpdir.
23242
23243         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
23244         isn't specified.
23245         (option_map): Add --dumpdir.
23246
23247         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
23248
23249         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
23250
23251         * opts.c (decode_options): Try dump_dir_name first if
23252         dump_base_name isn't an absolute path.
23253         (common_handle_option): Handle OPT_dumpdir.
23254
23255         * toplev.c (dump_dir_name): New.
23256         (print_switch_values): Also ignore -dumpdir.
23257
23258         * toplev.h (dump_dir_name): New.
23259
23260 2010-01-03  Richard Guenther  <rguenther@suse.de>
23261
23262         PR tree-optimization/42589
23263         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
23264         double-word expansion of bswap32.
23265
23266 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
23267
23268         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
23269         with BLOCK_FOR_INSN.
23270         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
23271         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
23272         noce_process_if_block): Likewise.
23273         * gcse.c (compute_local_properties, insert_expr_in_table,
23274         insert_set_in_table, canon_list_insert, find_avail_set,
23275         pre_insert_copy_insn): Likewise.
23276
23277         * basic-block.h (BLOCK_NUM): Move from here...
23278         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
23279
23280 2010-01-03  Richard Guenther  <rguenther@suse.de>
23281
23282         PR tree-optimization/42438
23283         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
23284         contains_may_not_return_call flag.
23285         (BB_MAY_NOTRETURN): New.
23286         (valid_in_sets): Trapping nary operations are not valid
23287         in blocks that may not return.
23288         (insert_into_preds_of_block): Remove check for trapping expressions.
23289         (compute_avail): Compute also BB_MAY_NOTRETURN.
23290
23291 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
23292
23293         * doc/invoke.texi: Add 2010 to copyright years.
23294
23295 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
23296
23297         * config/sparc/sparc.c: Fix formatting nits.
23298
23299 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
23300             Alexander Monakov  <amonakov@ispras.ru>
23301
23302         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
23303
23304 2010-01-02  Richard Guenther  <rguenther@suse.de>
23305
23306         PR middle-end/42577
23307         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
23308         (simplify_switch_using_ranges): Mark to be removed edges
23309         as non-executable.
23310
23311 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23312
23313         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
23314
23315         * collect2.c (scan_libraries): Add missing argument in call to
23316         scan_prog_file.
23317
23318 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
23319
23320         PR target/42448
23321         * config/alpha/predicates.md (aligned_memory_operand): Return false
23322         for CQImode.
23323         (unaligned_memory_operand): Return true for CQImode.
23324         * config/alpha/alpha.c (get_aligned_mem): Assert that location
23325         doesn not cross aligned SImode word boundary.
23326
23327 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
23328
23329         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
23330         Remove.
23331         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
23332         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
23333
23334 2010-01-02  Richard Guenther  <rguenther@suse.de>
23335
23336         PR lto/41597
23337         * toplev.c (compile_file): Emit LTO marker properly.  Change
23338         it to __gnu_lto_v1.
23339         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
23340
23341 2010-01-01  Richard Guenther  <rguenther@suse.de>
23342
23343         PR debug/42455
23344         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
23345
23346 2010-01-01  Richard Guenther  <rguenther@suse.de>
23347
23348         PR c/42570
23349         * c-decl.c (grokdeclarator): For zero-size arrays force
23350         structural equality checks as layout_type does.
23351
23352 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
23353
23354         * builtins.c: Update copyright to 2010.
23355
23356 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
23357
23358         PR lto/42531
23359         * lto-streamer-out.c (produce_asm): Revert the last change.
23360         (copy_function): Likewise.
23361
23362         * lto-streamer.c (lto_get_section_name): Skip any leading
23363         asterisk in name.
23364
23365 2010-01-01  Richard Guenther  <rguenther@suse.de>
23366
23367         PR middle-end/42559
23368         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
23369         for LABEL_DECLs.
23370
23371 \f
23372 Copyright (C) 2010 Free Software Foundation, Inc.
23373
23374 Copying and distribution of this file, with or without modification,
23375 are permitted in any medium without royalty provided the copyright
23376 notice and this notice are preserved.