re PR bootstrap/44314 (Powerpc64-unknown-linux-gnu bootstrap broken)
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
2
3         PR bootstrap/44314
4         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
5         (OPTION_GLIBC): Define.
6
7 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
8
9         PR debug/41048
10         * dwarf2out.c (double_int_type_size_in_bits): New function.
11         (round_up_to_align): Change first argument and return value to
12         double_int.
13         (field_byte_offset): Work internally on double_ints.
14
15         PR target/43636
16         * builtins.c (expand_movstr): Use a temporary pseudo instead
17         of target even when target is not NULL and not const0_rtx, but
18         fails movstr predicate.
19         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
20
21 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
22
23         * final.c (rest_of_clean_state): Use %m in errors instead of
24         strerror (errno).
25         * gengtype.c (read_input_list, close_output_files): Use xstrerror
26         instead of strerror.
27         * toplev.c (process_options): Use %m in errors instead of strerror
28         (errno).
29         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
30         (errno).
31
32 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
33
34         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
35         (ix86_canonical_va_list_type): Make static.  Add declaration.
36         (ix86_enum_va_list): Make static.  Reindent.
37         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
38         (ix86_canonical_va_list_type): Ditto.
39         (ix86_enum_va_list): Ditto.
40
41 2010-05-28  Richard Guenther  <rguenther@suse.de>
42
43         * lto-wrapper.c (run_gcc): With -save-temps generate a
44         user-visible ltrans filename.  Fixup ltrans unit numbering.
45
46 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
47
48         * c-common.c (c_common_nodes_and_builtins): Replace use
49         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
50         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
51         to ix86_enum_va_list.
52         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
53         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
54         (TARGET_ENUM_VA_LIST_P): Add hook description.
55         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
56         * target.h (gcc_target): Add enum_va_list hook.
57
58         PR bootstrap/44299
59         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
60         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
61         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
62
63 2010-05-28  Alan Modra  <amodra@gmail.com>
64
65         PR target/44266
66         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
67         emit_library_call machinery to set up __tls_get_addr calls.
68
69 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
70
71         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
72
73 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
74
75         revert fix for PR c++/44188
76         * c-common.c (is_typedef_decl): Revert the moving of  this
77         definition ...
78         * tree.c (is_typedef_decl): ... here.
79         (typdef_variant_p): Revert the moving of this  definition
80         here from gcc/cp/tree.c.
81         * c-common.h (is_typedef_decl): Revert the moving of this
82         declaration ...
83         * tree.h (is_typedef_decl): ... here.
84         (typedef_variant_p): Revert the moving of this  declaration here
85         from gcc/cp/cp-tree.h
86         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
87         (gen_tagged_type_die): Revert the splitting out of ...
88         (gen_type_die_with_usage): ... this function. Revert the anonymous
89         tagged type handling.
90         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
91         typedefs naming anonymous tagged types.
92
93
94 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
95
96         * config/rs6000/rs6000-modes.def (PSImode): Delete.
97
98 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
99
100         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
101         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
102         throughout.
103         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
104         "xer" to "ca".
105         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
106         XER_REGS to CA_REGS throughout.
107         * config/rs6000/rs6000.h: Same.
108         (ADDITIONAL_REGISTER_NAMES): Add "xer".
109         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
110         that mode_iterator "P" is the size for arithmetic carries as well.
111         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
112
113 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
114
115         PR bootstrap/44255
116         * combine.c (struct rtx_subst_pair): Define unconditionally.
117         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
118         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
119         Call make_compound_operation on pair->to.
120         (propagate_for_debug): Don't call make_compound_operation here.
121         Always use simplify_replace_fn_rtx.
122
123 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
124
125         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
126         * config/xtensa/xtensa.c (override_options): Check
127           TARGET_FORCE_NO_PIC and set flag_pic.
128         * config/xtensa/xtensa.opt: Document -mforce-no-pic
129
130 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
131
132         PR bootstrap/44299
133         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
134         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
135
136 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
137
138         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
139         toplev.h.
140         * diagnostic.c: Don't include toplev.h.
141         (progname): Define.  Moved from toplev.c.
142         (seen_error): New function.
143         * diagnostic.h: Include diagnostic-core.h.
144         (diagnostic_t, emit_diagnostic): Don't declare here.
145         * toplev.c (progname): Move to toplev.c.
146         (emit_debug_global_declarations, compile_file, finalize,
147         do_compile, toplev_main): Use seen_error.
148         * toplev.h: Include diagnostic-core.h.
149         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
150         internal_error, warning, warning_at, error, error_n, error_at,
151         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
152         verbatim, fnotice, progname): Move to diagnostic-core.h.
153         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
154         (expand_builtin_expect): Use seen_error.
155         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
156         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
157         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
158         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
159         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
160         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
161         errorcount for errors.
162         * c-opts.c (c_common_finish): Use seen_error.
163         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
164         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
165         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
166         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
167         (get_coverage_counts): Use seen_error.
168         * dwarf2out.c (dwarf2out_finish): Use seen_error.
169         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
170         gimplify_body): Use seen_error.
171         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
172         * ipa-pure-const.c (gate_pure_const): Use seen_error.
173         * ipa-reference.c (gate_reference): Use seen_error.
174         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
175         * lambda-code.c: Include diagnostic-core.h instead of
176         diagnostic.h.
177         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
178         * lto-compress.c: Include diagnostic-core.h instead of
179         diagnostic.h.
180         * lto-section-in.c: Include diagnostic-core.h instead of
181         diagnostic.h.
182         * lto-streamer-out.c: Include diagnostic-core.h instead of
183         diagnostic.h.
184         * lto-streamer.c: Include diagnostic-core.h instead of
185         diagnostic.h.
186         (gate_lto_out): Use seen_error.
187         * matrix-reorg.c: Include diagnostic-core.h instead of
188         diagnostic.h.
189         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
190         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
191         (gate_expand_omp, lower_omp_1): Use seen_error.
192         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
193         (rest_of_decl_compilation, rest_of_type_compilation,
194         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
195         * tree-cfg.c (label_to_block_fn): Use seen_error.
196         * tree-inline.c (optimize_inline_calls): Use seen_error.
197         * tree-mudflap.c (mudflap_finish_file): Use
198         seen_error.
199         * tree-optimize.c (gate_all_optimizations,
200         gate_all_early_local_passes, gate_all_early_optimizations): Use
201         seen_error.
202         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
203         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
204         (varpool_remove_unreferenced_decls,
205         varpool_assemble_pending_decls): Use seen_error.
206         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
207         (TOPLEV_H, DIAGNOSTIC_H): Update.
208         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
209         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
210         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
211         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
212         coverage.o, lambda-code.o): Update dependencies.
213
214 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
215
216         PR c++/44188
217         * c-common.c (is_typedef_decl): Move this definition ...
218         * tree.c (is_typedef_decl): ... here.
219         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
220         * c-common.h (is_typedef_decl): Move this declaration ...
221         * tree.h (is_typedef_decl): ... here.
222         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
223         * dwarf2out.c (is_naming_typedef_decl): New function.
224         (gen_tagged_type_die): Split out of ...
225         (gen_type_die_with_usage): ... this function. When an anonymous
226         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
227         is emitted for the typedef.
228         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
229         anonymous tagged types.
230
231 2010-05-27  Jason Merrill  <jason@redhat.com>
232
233         * print-tree.c (debug_vec_tree): New fn.
234         (print_vec_tree): New fn.
235         * tree.h: Declare them.
236         * gdbinit.in (pvt): New command.
237
238         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
239
240         * gdbinit.in (pdd): New command.
241
242 2010-05-27  Jan Hubicka  <jh@suse.cz>
243
244         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
245         (update_caller_keys): Return early if there are no callers;
246         only update fibheap when decresing the key.
247         (update_callee_keys): Avoid recursion.
248         (decide_inlining_of_small_functions): When badness does not match;
249         re-insert into fibheap.
250
251 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
252
253         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
254         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
255         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
256         (ALL_HOST_OBJS): Now a union of the above two.
257         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
258         all files in ALL_HOST_FRONTEND_OBJS.
259         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
260
261         * c-common.c: Pretend to be a backend file by undefining
262         IN_GCC_FRONTEND (still need rtl.h here).
263
264 2010-05-27  Jan Hubicka  <jh@suse.cz>
265
266         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
267         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
268
269 2010-05-27  Jan Hubicka  <jh@suse.cz>
270
271         * sched-ebb.c: Rename struct deps to struct deps_desc.
272         * ddg.c: Likewise.
273         * sel-sched-ir.c: Likewise.
274         * sched-deps.c: Likewise.
275         * sched-int.h: Likewise.
276         * sched-rgn.c: Likewise.
277
278 2010-05-27  Jon Beniston <jon@beniston.com>
279
280         PR 43726
281         * config/lm32/lm32.h: Remove definition of 
282         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
283
284 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
285
286         PR lto/44230
287         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
288
289 2010-05-27  Richard Guenther  <rguenther@suse.de>
290
291         PR tree-optimization/44284
292         * tree-vect-stmts.c (vectorizable_assignment): Handle
293         sign-changing conversions as simple copy.
294
295 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
296
297         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
298         Bionic C library.
299         (__gthread_active_p): Check for pthread_create if compiling against
300         Bionic C library.
301
302 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
303
304         Support compilation for Android platform.  Reimplement -mandroid.
305
306         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
307         (*android*): Set ANDROID_DEFAULT.
308         (arm*-*-linux*): Include linux-android.h.
309         (arm*-*-eabi*): Don't include previous -mandroid implementation.
310         * config/arm/eabi.h: Remove, move Android-specific parts ...
311         * config/linux-android.h: ... here.  New file.
312         * config/arm/eabi.opt: Rename to ...
313         * config/linux-android.opt: ... this.
314         (mandroid): Allow -mno-android option.  Initialize based on
315         ANDROID_DEFAULT.
316         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
317         Move logic to corresponding LINUX_TARGET_* macros.
318         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
319         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
320         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
321         Android definitions.
322         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
323         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
324         Document.
325
326 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
327
328         Add support for Bionic C library
329
330         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
331         macro.
332         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
333         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
334
335         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
336         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
337         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
338         to support multiple C libraries.  Handle Bionic.
339         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
340         (BIONIC_DYNAMIC_LINKER64): Define.
341         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
342         Update.
343         (TARGET_HAS_SINCOS): Enable for Bionic.
344
345         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
346         the last option specified on command line take effect.
347         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
348         (mbionic): New.
349         (mglibc, muclibc): Update.
350
351         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
352         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
353         DEFAULT_LIBC.
354
355         * doc/invoke.texi (-mglibc, -muclibc): Update.
356         (-mbionic): Document.
357
358 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
359
360         * c-common.h (c_register_addr_space): Add prototype.
361         (ADDR_SPACE_KEYWORD): Remove.
362         * c-common.c (c_register_addr_space): New function.
363         (c_addr_space_name): Reimplement.
364         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
365
366         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
367         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
368
369         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
370         Remove TARGET_ADDR_SPACE_KEYWORDS.
371
372 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
373
374         * input.c: New file.
375         * input.h (main_input_filename): Move declaration to toplev.h.
376         * toplev.c (input_location, line_table): Move to input.c
377         * toplev.h (main_input_filename): Move declaration from input.h.
378         * tree.c (expand_location): Move to input.c.
379         * Makefile.in (OBJS-common): Add input.o.
380         (input.o): Add dependencies.
381
382 2010-05-27  Richard Guenther  <rguenther@suse.de>
383
384         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
385         for non-existant files.
386         (fork_execute): Mark args_name file as deleted.
387
388 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
389
390         PR bootstrp/44287
391         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
392         (narrow_signed_type): Likewise.
393
394 2010-05-26  Jan Hubicka  <jh@suse.cz>
395
396         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
397         edge only when checking is enabled; check using former_clone_of;
398         check inline clones too.
399         (cgraph_materialize_clone): Record former_clone_of pointer.
400         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
401         combining redirections; dump args_to_skip bitmap
402         (cgraph_materialize_all_clones): Do no redirection here.
403         * ipa-inline.c (inline_transform): Do redirection here.
404         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
405         cheking only).
406
407 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
408
409         * config/avr/avr-c.c: Do not include regs.h.
410         Include cpplib.h for cpp_define and tree.h for c-common.h.
411         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
412         * config/avr/t-avr: Fix dependencies for avr-c.o.
413
414 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
415
416         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
417         string instead of SYMBOL_REF rtx.
418         * rtl.h (set_stack_check_libfunc): Move prototype from here...
419         * libfuncs.h: ...to here.  Adjust for explow.c change.
420
421 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
422
423         * pretty-print.c: Don't include ggc.h.
424         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
425         (identifier_to_locale): Use them for allocation.
426         * pretty-print.h (identifier_to_locale_alloc,
427         identifier_to_locale_free): Declare.
428         * toplev.c (alloc_for_identifier_to_locale): New.
429         (general_init): Set identifier_to_locale_alloc and
430         identifier_to_locale_free.
431         * Makefile.in (pretty-print.o): Update dependencies.
432
433 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
434
435         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
436         pointer types if they have different alignment or mode.
437
438 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
439
440         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
441         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
442         * config/sparc/sparc-protos.h (function_value): Remove declaration.
443         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
444         sparc_function_value_regno_p): New functions.
445         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
446         TARGET_FUNCTION_VALUE_REGNO_P): Define.
447         (function_value): Rename to...
448         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
449         argument to 'outgoing'.
450         (function_arg_record_value, function_arg_union_value,
451         function_arg_vector_value): Update comment.
452
453 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
454
455         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
456         (fde_needed_for_eh_p): New predicate.
457         (output_call_frame_info): Use it throughout to decide whether FDEs
458         are needed for EH purpose.
459         (dwarf2out_begin_prologue): Reorder assignments.
460
461 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
462
463         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
464         special case loop->header.
465         (is_predicated): New.
466         (if_convertible_loop_p): Call it.
467
468 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
469
470         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
471         iterator in parameter.  Do not generate code during the analysis.
472         (tree_if_convert_cond_stmt): Removed.
473         (tree_if_convert_stmt): Removed.
474         (predicate_bbs): New.
475         (if_convertible_loop_p): Call predicate_bbs.
476         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
477         now contains all the analysis part.
478
479 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
480
481         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
482         statements in the analysis part.
483         (tree_if_convert_stmt): Update comment.
484         (remove_conditions_and_labels): New.
485         (combine_blocks): Call remove_conditions_and_labels.
486         (tree_if_conversion): Update comment.
487
488 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
489
490         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
491         than 2 predecessors or more than 2 successors.
492
493 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
494
495         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
496         of loops in which the data dependence analysis fails.
497
498 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
499
500         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
501         CDI_POST_DOMINATORS.
502         (tree_if_conversion): Same.
503
504 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
505
506         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
507
508 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
509
510         * tree-if-conv.c: Update copyright years.  Fix comments.
511         Fix indentation.
512
513 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
514
515         * builtin-types.def (BT_INT128): New primitive type.
516         (BT_UINT128): Likewise.
517         * c-common.c (c_common_r): Add __int128 keyword.
518         (c_common_type_for_size): Handle __int128.
519         (c_common_type_for_mode): Likewise.
520         (c_common_signed_or_unsigned_type): Likewise.
521         (c_common_nodes_and_builtins): Add builtin type
522         if target supports 128-bit integer scalar.
523         * c-common.h (enum rid): Add RID_INT128.
524         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
525         if target supports 128-bit integer scalar.
526         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
527         (finish_declspecs): Likewise.
528         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
529         (c_token_starts_declspecs): Likewise.
530         (c_parser_declspecs): Likewise.
531         (c_parser_attributes): Likewise.
532         (c_parser_objc_selector): Likewise.
533         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
534         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
535         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
536         * tree.c (make_or_reuse_type): Likewise.
537         (make_unsigned_type): Likewise.
538         (build_common_tree_nodes_2): Likewise.
539         * tree.h (enum integer_type_kind): Add itk_int128 and
540         itk_unsigned_int128.
541         (int128_integer_type_node): New define.
542         (int128_unsigned_type_node): New define.
543         * doc/extend.texi: Add documentation about __int128 type.
544
545 2010-05-26  Richard Guenther  <rguenther@suse.de>
546
547         * tree-ssa-sccvn.c (copy_nary): Adjust.
548         (copy_phis): Rename to ...
549         (copy_phi): ... this.  Adjust.
550         (copy_references): Rename to ...
551         (copy_reference): ... this.  Adjust.
552         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
553         result into the valid table.
554
555 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
556
557         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
558         insn-config.h, insn-codes.h, recog.h, and optabs.h.
559
560 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
561
562         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
563
564 2010-05-26  Richard Guenther  <rguenther@suse.de>
565
566         * opts.c (common_handle_option): Handle OPT_Ofast.
567
568 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
569
570         * diagnostic.c: Don't include opts.h.
571         (permissive_error_option): Define.
572         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
573         for classify_diagnostic.  Don't use memset for
574         classify_diagnostic.  Initialize new and recently added fields.
575         (diagnostic_classify_diagnostic): Use context->n_opts instead of
576         N_OPTS.
577         (diagnostic_report_diagnostic): Pass context parameter to
578         diagnostic_report_warnings_p.  Use option_enabled and option_name
579         hooks from context.
580         (emit_diagnostic): Use permissive_error_option.
581         (permerror): Likewise.
582         * diagnostic.h: Don't include options.h.
583         (struct diagnostic_context): Add n_opts, opt_permissive,
584         inhibit_warnings, warn_system_headers, option_enabled and
585         option_name fields.  Change classify_diagnostic to a pointer.
586         * opts-diagnostic.h: New file.
587         * opts.c: Include opts-diagnostic.h.
588         (common_handle_option): Set global_dc fields for -Wfatal-errors,
589         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
590         (option_name): New function.
591         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
592         (c_common_handle_option): Set global_dc->permissive for
593         -fpermissive.
594         * c-common.c (c_cpp_error): Save and restore
595         global_dc->warn_system_headers, not variable warn_system_headers.
596         * toplev.c: Include opts-diagnostic.h.
597         (general_init): Update call to diagnostic_initialize.  Set
598         global_dc->show_column, global_dc->option_enabled and
599         global_dc->option_name.
600         (process_options): Don't set global_dc fields here.
601         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
602         (diagnostic.o, opts.o, toplev.o): Update dependencies.
603
604 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
605
606         * config/picochip/picochip.md (movsi): Split a movsi from a
607         const after reload.
608
609 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
610
611         * ggc-zone.c: Update copyright year.
612         (poison_region): Mark memory for Valgrind as undefined before
613         memset () call and inaccessible afterwards.
614         (ggc_pch_total_size): Change type of i to int.
615
616 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
617
618         * ggc-common.c (ggc_free_overhead): Allow empty slot.
619
620 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
621
622         * ggc-common.c: Update copyright year.
623         (ggc_rlimit_bound): Remove prototype.  Compile only if
624         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
625         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
626         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
627         (ggc_min_heapsize_heuristic): Likewise.
628
629 2010-05-26  Richard Guenther  <rguenther@suse.de>
630
631         PR rtl-optimization/44164
632         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
633         no-common access-path disambiguation.
634         (indirect_ref_may_alias_decl_p): Adjust.
635         (indirect_refs_may_alias_p): Likewise.
636         (refs_may_alias_p_1): Likewise.
637
638 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
639
640         * c-typeck.c: Do not include expr.h.
641
642 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
643
644         * rtl.h (decl_default_tls_model): Move prototype from here...
645         * output.h: ...to here.
646         * c-decl.c: Do not include rtl.h.
647         * c-pragma.c: Likewise.
648         * c-parser.c: Likewise.
649         * c-gimplify.c: Likewise.  And also not hard-reg-set.
650         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
651         FIXME note for it.  Add a FIXME note for expr.h.
652         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
653         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
654         defined.
655
656 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
657
658         PR target/44199
659         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
660         or total_size is larger than red zone size for non-V4 ABI, emit a
661         stack_tie resp. frame_tie insn before stack pointer restore.
662         * config/rs6000/rs6000.md (frame_tie): New insn.
663
664 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
665
666         * function.h (struct function): Add can_throw_non_call_exceptions bit.
667         * lto-streamer-in.c (input_function): Stream it in.
668         * lto-streamer-out.c (output_function): Stream it out.
669         * function.c (allocate_struct_function): Set it.
670         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
671         for flag_non_call_exceptions.
672         * cfgbuild.c (control_flow_insn_p): Likewise.
673         (make_edges): Likewise.
674         * cfgexpand.c (expand_stack_alignment): Likewise.
675         * combine.c (distribute_notes): Likewise.
676         * cse.c (cse_extended_basic_block): Likewise.
677         * except.c (insn_could_throw_p): Likewise.
678         * gcse.c (simple_mem): Likewise.
679         * ipa-pure-const.c (check_call): Likewise.
680         (check_stmt ): Likewise.
681         * lower-subreg.c (lower-subreg.c): Likewise.
682         * optabs.c (emit_libcall_block): Likewise.
683         (prepare_cmp_insn): Likewise.
684         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
685         * postreload.c (rest_of_handle_postreload): Likewise.
686         * reload1.c (reload_as_needed): Likewise.
687         (emit_input_reload_insns): Likewise.
688         (emit_output_reload_insns): Likewise.
689         (fixup_abnormal_edges): Likewise.
690         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
691         * store-motion.c (find_moveable_store): Likewise.
692         * tree-eh.c (stmt_could_throw_p): Likewise.
693         (tree_could_throw_p): Likewise.
694         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
695         * config/arm/arm.c (arm_expand_prologue): Likewise.
696         (thumb1_expand_prologue): Likewise.
697         * config/rx/rx.md (cbranchsf4): Likewise.
698         (cmpsf): Likewise.
699         * config/s390/s390.c (s390_emit_prologue): Likewise.
700         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
701         (inline_forbidden_into_p): New predicate.
702         (expand_call_inline): Use it to forbid inlining.
703         (tree_can_inline_p): Likewise.
704
705 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
706
707         * config/i386/i386-c.c: Do not include rtl.h.
708         * config/i386/t-i386: Update dependencies.
709
710 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
711
712         * attribs.c: Do not include rtl.h.
713         * Makefile.in: Update dependencies.
714
715 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
716
717         * double-int.h (double_int_and): New.
718         * combine.c (try_combine): Clean up, use double_int_* and
719         immed_double_int_const functions.
720
721 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
722
723         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
724         stderr to /dev/null instead of grep -q.
725         * configure: Regenerate.
726
727 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
728
729         * Makefile.in (EXCEPT_H): Fix typo.
730
731 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
732
733         * ira-build.c (update_conflict_hard_reg_costs): New.
734         (ira_build): Call update_conflict_hard_reg_costs.
735
736 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
737
738         PR debug/41371
739         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
740         ENABLE_CHECKING.
741         (intersect_loc_chains): Walk the s2var's loc_chain together
742         with s1node chain as long as the locations are equal, don't
743         call find_loc_in_1pdv in that case.
744
745         PR debug/42801
746         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
747         (copy_bind_expr): ... instead of here.
748         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
749         if the block hasn't been remapped.
750         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
751         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
752
753 2010-05-25  Richard Guenther  <rguenther@suse.de>
754
755         PR middle-end/44069
756         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
757         out-of-bounds array accesses.
758
759 2010-05-25  Richard Guenther  <rguenther@suse.de>
760
761         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
762         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
763         (run_gcc): Re-organize to make cleanup easier.
764
765 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
766
767         * config/s390/s390.c (optimization_options): Fix and move the
768         flag_prefetch_loop_arrays override ...
769         (override_options): ... here.
770
771 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
772
773         * diagnostic.c: Don't include plugin.h.
774         (diagnostic_report_diagnostic): Don't handle plugins specially
775         here.  Pass context to internal_error callback.
776         * diagnostic.h (struct diagnostic_context): Add context parameter
777         to internal_error callback.
778         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
779         * plugin.h (struct diagnostic_context): Declare.
780         (warn_if_plugins, plugins_internal_error_function): Declare.
781         * toplev.c (general_init): Set global_dc->internal_error.
782         * Makefile.in (diagnostic.o): Update dependencies.
783
784 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
785
786         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
787         * config/rs6000/t-darwin64: New.
788         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
789         build crt2.
790
791 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
792
793         PR 44203
794         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
795         match the original (and intended) behaviour before r159557.  This
796         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
797         in two ways.
798
799 2010-05-25  Richard Guenther  <rguenther@suse.de>
800
801         * doc/invoke.texi: Document -Ofast.
802         * target.h (struct gcc_target): Add handle_ofast.
803         * target-def.h (TARGET_HANDLE_OFAST): Add.
804         (TARGET_INITIALIZER): Adjust.
805         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
806         * common.opt (Ofast): Add.
807
808 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
809
810         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
811         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
812
813 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
814
815         PR target/43610
816         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
817         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
818         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
819         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
820
821 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
822
823         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
824         DW_OP_minus with negated offset instead of DW_OP_plus.
825         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
826
827 2010-05-25  Wei Guozhi  <carrot@google.com>
828
829         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
830         tst instruction and a new alternative.
831         * config/arm/constraints.md (Pu): New constraint.
832
833 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
834
835         * function.c (assign_stack_local_1): Initialize variable
836         to avoid warning when bootstrapping at -O3.
837
838 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
839
840         * configure.ac (all_lang_makefiles): Remove everything related to it.
841         * configure: Regenerate.
842         * Makefile.in: Fix reference to ada Make-lang.in.
843         Remove support for LANG_MAKEFILES.
844
845 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
846             Sandra Loosemore  <sandra@codesourcery.com>
847
848         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
849         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
850         description.  Add arm_neon_fp16_ok.
851         (Add Options): Add arm_neon and arm_neon_fp16.
852
853 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
854
855         * diagnostic.c: Don't include flags.h.
856         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
857         context parameters.  Check flags in the context passed as a parameter.
858         (diagnostic_build_prefix): Add context parameter.  Check
859         show_column flag in context.
860         (diagnostic_action_after_output): Check fatal_errors flag in context.
861         (diagnostic_report_current_module): Check show_column flag in context.
862         (default_diagnostic_starter): Update call to
863         diagnostic_build_prefix.
864         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
865         (emit_diagnostic): Pass context to permissive_error_kind.
866         (permerror): Pass context to permissive_error_kind.
867         * diagnostic.h (struct diagnostic_context): Add show_column,
868         pedantic_errors, permissive and fatal_errors fields.
869         (diagnostic_build_prefix): Update prototype.
870         * langhooks.c
871         * toplev.c (process_options): Set flags in global_dc from
872         flag_show_column, flag_pedantic_errors, flag_permissive,
873         flag_fatal_errors.
874         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
875         to diagnostic_build_prefix.
876         * Makefile.in (diagnostic.o): Update dependencies.
877
878 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
879
880         * config/i386/ia32intrin.h (__crc32q): Define only if
881         __SSE4_2__ is defined.
882
883 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
884
885         PR target/44132
886         PR middle-end/43602
887         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
888         DECL_VISIBILITY_SPECIFIED.
889         (emutls_decl): Set DECL_PRESERVE_P and copy
890         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
891         (emutls_finalize_control_var): New callback.
892         (emutls_finish): Finalize emutls control variables.
893         * toplev.c (compile_file): Move the call to emutls_finish ()
894         before varpool_assemble_pending_decls ().
895
896 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
897
898         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
899         added to the preprocessor condition.
900
901 2010-05-24  Paul Brook  <paul@codesourcery.com>
902
903         * gengtype-lex.l: Add HARD_REG_SET.
904         * expr.c (expand_expr_real_1): Record writes to hard registers.
905         * function.c (rtl_data): Add asm_clobbers.
906         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
907         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
908         Use crtl->asm_clobbers.
909
910 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
911
912         * doc/makefile.texi (Makefile): Mention stages 'profile'
913         and 'feedback' for profiledbootstrap.
914
915 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
916
917         PR target/44245
918         * config/i386/i386.c (def_builtin): Properly check
919         OPTION_MASK_ISA_64BIT.
920
921 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
922
923         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
924         typedefs with different but compatible types.  Allow duplicate
925         typedefs with the same type except for pedantic non-C1X, but give
926         warning for variably modified types.
927         * c-typeck.c (tagged_types_tu_compatible_p,
928         function_types_compatible_p, type_lists_compatible_p,
929         comptypes_internal): Add parameter different_types_p; set
930         *different_types_p for different but compatible types.  All
931         callers changed.
932         (comptypes_check_different_types): New.
933         * c-tree.h (comptypes_check_different_types): Declare.
934
935 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
936
937         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
938         * jump.c: Include basic-block.h.
939         * profile.c: Likewise.
940         * tree-profile.c: Likewise.
941         * coverage.c: Likewise.
942         * basic-block.h (optimize_function_for_size_p): Move to function.h.
943         (optimize_function_for_speed_p): Likewise.
944         * function.h (optimize_function_for_size_p,
945         optimize_function_for_speed_p): Moved here from basic-block.h.
946         * Makefile.in: Update dependencies.
947
948 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
949
950         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
951         before calling make; allow override through $MAKE.
952         * doc/invoke.texi (Optimize Options): Document override.
953
954 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
955
956         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
957         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
958         (rs6000_mode_dependent_address_ptr): Make static.
959         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
960         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
961         Remove.
962
963 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
964
965         PR target/43869
966         * config/i386/i386.c: Make sure that the correct regparm is passed.
967
968 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
969
970         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
971         * sbitmap.c: ...to here to internalize sbitmap element access.
972         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
973         Explain why basic-block.h is included.
974         * function.h: Include tm.h for CUMULATIVE_ARGS.
975         * Makefile.in: Update dependencies.
976
977 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
978
979         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
980         New core types.
981         * sbitmap.h (struct sbitmap_def): Do not typedef here.
982         * sbitmap.c: Include sbitmap.h.
983         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
984         hard-reg-set.h.  Split everything related to regsets out from here...
985         * regset.h: ...to here.  New file.
986         * df.h: Include regset.h and sbitmap.h.
987         * tree-flow.h: Likewise.
988         * cfgloop.h: Likewise.
989         * except.h: Do not include sbitmap.h.  Include hashtab.h.
990         * cgraph.h: Include vec.h and function.h.
991         * reload.h (struct insn_chain): Change types of live_throughout
992         and dead_or_set from regset_head to bitmap_head.
993         (compute_use_by_pseudos): Be defined also if regset.h is not included.
994         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
995         spilled_regs from regset_head to bitmap_head to avoid dependency
996         in regset.h.
997         * sel-sched-ir.h: Include regset.h.
998         * reload.c: Include df.h before reload.h.
999         * caller-save.c: Likewise.
1000         * reload1.c: Likewise.
1001         * ira.c: Likewise.
1002         (mark_elimination): Update type of r to bitmap, consistent with
1003         DF_LR_IN.
1004         * dominance.c: Include bitmap.h.
1005         * modulo-sched.c: Include df.h.
1006         * cfganal.c: Include bitmap.h and sbitmap.h.
1007         * cfgbuild.c: Include sbitmap.h.
1008         * lcm.c: Include sbitmap.h.
1009         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
1010         * domwalk.c: Include sbitmap.h, exclude ggc.h.
1011         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
1012         * cselib.c: Include bitmap.h.
1013         * tree-optimize.c: Include regset.h.
1014         * stmt.c: Include bitmap.h.
1015         * Makefile.in: Update dependencies.
1016
1017 2010-05-22  Jan Hubicka  <jh@suse.cz>
1018
1019         * cgraph.h (struct varpool_node): Add same_comdat_group.
1020         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
1021         pointer.
1022         (output_varpool): Update call of lto_output_varpool_node.
1023         (input_varpool): Read same_comdat_group pointer.
1024         (input_varpool_1): Fixup same_comdat_group pointer.
1025         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
1026         group is needed, all are.
1027         * varpool.c (varpool_remove_node): Remove node from same comdat group
1028         linklist too.
1029         (varpool_analyze_pending_decls): Walk same comdat groups.
1030
1031 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
1032
1033         * rtl.h (union rtunion_def): Remove rt_bit member.
1034         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
1035         * print-rtl (print_rtx): Do not print the member.
1036         * gengtype.c (adjust_field_rtx_def): Do not handle it.
1037         * gengenrtl.c (type_from_format): Likewise.
1038         (accessor_from_format): Likewise.
1039
1040 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
1041
1042         * dbgcnt.c: Include toplev.h instead of errors.h.
1043         * ira-emit.c: Don't include errors.h.
1044         * ira.c: Include toplev.h instead of errors.h.
1045         * lto-compress.c: Include toplev.h instead of errors.h.
1046         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
1047         ira.o, dbgcnt.o): Update dependencies.
1048
1049 2010-05-22  Richard Guenther  <rguenther@suse.de>
1050
1051         * gimple.c (gimple_types_compatible_p): Check type qualifications
1052         before merging pointer to complete and pointer to incomplete type.
1053         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
1054         we use our own resolution algorithm.  The gold linker plugin
1055         doesn't do the job we want it to do here.
1056
1057 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
1058
1059         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
1060         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1061         (sparc_mode_dependent_address_p): New function.
1062
1063 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1064
1065         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
1066
1067         * timevar.c: Do not include any core headers.
1068         (timevar_print): De-i18n-ize.
1069         (print_time): Likewise.
1070         * timevar.h (timevar_push, timevar_pop): Make inline functions.
1071
1072 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
1073
1074         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
1075         langhooks-def.h.
1076         (diagnostic_initialize): Initialize x_data not last_function.
1077         (diagnostic_report_current_function): Move to tree-diagnostic.c.
1078         (default_diagnostic_starter): Call
1079         diagnostic_report_current_module not
1080         diagnostic_report_current_function.
1081         (diagnostic_report_diagnostic): Initialize x_data not
1082         abstract_origin.
1083         (verbatim): Likewise.
1084         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
1085         x_data.
1086         (struct diagnostic_context): Change last_function to x_data.
1087         (diagnostic_auxiliary_data): Replace with
1088         diagnostic_context_auxiliary_data and
1089         diagnostic_info_auxiliary_data.
1090         (diagnostic_last_function_changed, diagnostic_set_last_function,
1091         diagnostic_report_current_function): Move to tree-diagnostic.h.
1092         (print_declaration, dump_generic_node, print_generic_stmt,
1093         print_generic_stmt_indented, print_generic_expr,
1094         print_generic_decl, debug_c_tree, dump_omp_clauses,
1095         print_call_name, debug_generic_expr, debug_generic_stmt,
1096         debug_tree_chain, default_tree_printer): Move to
1097         tree-pretty-print.h.
1098         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
1099         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
1100         gimple-pretty-print.h.
1101         * pretty-print.c: Don't include tree.h
1102         (pp_base_format): Don't handle %K here.
1103         (pp_base_tree_identifier): Move to tree-pretty-print.c.
1104         * pretty-print.h (text_info): Change abstract_origin to x_data.
1105         (pp_tree_identifier, pp_unsupported_tree,
1106         pp_base_tree_identifier): Move to tree-pretty-print.h.
1107         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
1108         tree-pretty-print.h: New files.
1109         * tree-pretty-print.c: Include tree-pretty-print.h.
1110         (percent_K_format): New.  Moved from pretty-print.c.
1111         (pp_base_tree_identifier): Move from pretty-print.c.
1112         * c-objc-common.c: Include tree-pretty-print.h.
1113         (c_tree_printer): Handle %K here.
1114         * langhooks.c: Include tree-diagnostic.h.
1115         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
1116         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
1117         (default_tree_printer): Handle %K using percent_K_format.
1118         (general_init): Use default_tree_diagnostic_starter.
1119         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
1120         (free_lang_data): Use default_tree_diagnostic_starter.
1121         * c-pretty-print.c: Include tree-pretty-print.h.
1122         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1123         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1124         * dwarf2out.c: Include tree-pretty-print.h.
1125         * except.c: Include tree-pretty-print.h.
1126         * gimple-pretty-print.c: Include tree-pretty-print.h and
1127         gimple-pretty-print.h.
1128         * gimplify.c: Include tree-pretty-print.h.
1129         * graphite-poly.c: Include tree-pretty-print.h and
1130         gimple-pretty-print.h.
1131         * ipa-cp.c: Include tree-pretty-print.h.
1132         * ipa-inline.c: Include gimple-pretty-print.h.
1133         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1134         * ipa-pure-const.c: Include gimple-pretty-print.h.
1135         * ipa-struct-reorg.c: Include tree-pretty-print.h and
1136         gimple-pretty-print.h.
1137         * ipa-type-escape.c: Include tree-pretty-print.h.
1138         * print-rtl.c: Include tree-pretty-print.h.
1139         * print-tree.c: Include gimple-pretty-print.h.
1140         * sese.c: Include tree-pretty-print.h.
1141         * tree-affine.c: Include tree-pretty-print.h.
1142         * tree-browser.c: Include tree-pretty-print.h.
1143         * tree-call-cdce.c: Include gimple-pretty-print.h.
1144         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1145         * tree-chrec.c: Include tree-pretty-print.h.
1146         * tree-data-ref.c: Include tree-pretty-print.h and
1147         gimple-pretty-print.h.
1148         * tree-dfa.c: Include tree-pretty-print.h.
1149         * tree-if-conv.c: Include tree-pretty-print.h and
1150         gimple-pretty-print.h.
1151         * tree-inline.c: Include tree-pretty-print.h.
1152         * tree-into-ssa.c: Include tree-pretty-print.h and
1153         gimple-pretty-print.h.
1154         * tree-nrv.c: Include tree-pretty-print.h.
1155         * tree-object-size.c: Include tree-pretty-print.h and
1156         gimple-pretty-print.h.
1157         * tree-outof-ssa.c: Include tree-pretty-print.h and
1158         gimple-pretty-print.h.
1159         * tree-parloops.c: Include tree-pretty-print.h and
1160         gimple-pretty-print.h.
1161         * tree-predcom.c: Include tree-pretty-print.h and
1162         gimple-pretty-print.h.
1163         * tree-scalar-evolution.c: Include tree-pretty-print.h and
1164         gimple-pretty-print.h.
1165         * tree-sra.c: Include tree-pretty-print.h.
1166         * tree-ssa-address.c: Include tree-pretty-print.h.
1167         * tree-ssa-alias.c: Include tree-pretty-print.h.
1168         * tree-ssa-ccp.c: Include tree-pretty-print.h and
1169         gimple-pretty-print.h.
1170         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
1171         * tree-ssa-copy.c: Include tree-pretty-print.h and
1172         gimple-pretty-print.h.
1173         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
1174         * tree-ssa-dce.c: Include tree-pretty-print.h and
1175         gimple-pretty-print.h.
1176         * tree-ssa-dom.c: Include tree-pretty-print.h and
1177         gimple-pretty-print.h.
1178         * tree-ssa-dse.c: Include gimple-pretty-print.h.
1179         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
1180         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
1181         * tree-ssa-live.c: Include tree-pretty-print.h and
1182         gimple-pretty-print.h.
1183         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
1184         gimple-pretty-print.h.
1185         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
1186         gimple-pretty-print.h.
1187         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
1188         gimple-pretty-print.h.
1189         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
1190         gimple-pretty-print.h.
1191         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
1192         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
1193         * tree-ssa-operands.c: Include tree-pretty-print.h and
1194         gimple-pretty-print.h.
1195         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
1196         gimple-pretty-print.h.
1197         * tree-ssa-pre.c: Include tree-pretty-print.h and
1198         gimple-pretty-print.h.
1199         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
1200         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
1201         gimple-pretty-print.h.
1202         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
1203         gimple-pretty-print.h.
1204         * tree-ssa-sink.c: Include gimple-pretty-print.h.
1205         * tree-ssa-ter.c: Include tree-pretty-print.h and
1206         gimple-pretty-print.h.
1207         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
1208         * tree-ssa.c: Include tree-pretty-print.h and
1209         gimple-pretty-print.h.
1210         * tree-stdarg.c: Include gimple-pretty-print.h.
1211         * tree-switch-conversion.c: Include gimple-pretty-print.h.
1212         * tree-tailcall.c: Include tree-pretty-print.h and
1213         gimple-pretty-print.h.
1214         * tree-vect-data-refs.c: Include tree-pretty-print.h and
1215         gimple-pretty-print.h.
1216         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
1217         gimple-pretty-print.h.
1218         * tree-vect-loop.c: Include tree-pretty-print.h and
1219         gimple-pretty-print.h.
1220         * tree-vect-patterns.c: Include gimple-pretty-print.h.
1221         * tree-vect-slp.c: Include tree-pretty-print.h and
1222         gimple-pretty-print.h.
1223         * tree-vect-stmts.c: Include tree-pretty-print.h and
1224         gimple-pretty-print.h.
1225         * tree-vectorizer.c: Include tree-pretty-print.h.
1226         * tree-vrp.c: Include tree-pretty-print.h and
1227         gimple-pretty-print.h.
1228         * value-prof.c: Include tree-pretty-print.h and
1229         gimple-pretty-print.h.
1230         * var-tracking.c: Include tree-pretty-print.h.
1231         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
1232         (tree-diagnostic.o): New dependencies.
1233         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
1234         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
1235         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
1236         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
1237         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
1238         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
1239         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
1240         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
1241         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
1242         tree-ssa-address.o, tree-ssa-loop-niter.o,
1243         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
1244         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
1245         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
1246         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
1247         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
1248         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
1249         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
1250         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
1251         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
1252         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
1253         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
1254         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
1255         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
1256         tree-switch-conversion.o, var-tracking.o, value-prof.o,
1257         cfgexpand.o, pretty-print.o): Update dependencies.
1258
1259 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
1260
1261         * tree-ssa-structalias.c: Remove tm_p.h from include.
1262
1263 2010-05-21  Jeff Law  <law@redhat.com>
1264
1265         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
1266
1267 2010-05-21  Jason Merrill  <jason@redhat.com>
1268
1269         * tree-eh.c (cleanup_is_dead_in): New.
1270         (lower_try_finally): Don't generate a dead cleanup region.
1271         (lower_cleanup): Likewise.
1272
1273 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1274
1275         PR debug/44223
1276         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
1277         unchain each use from the cyclic next_regno_use chain first.
1278
1279 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1280
1281         * real: Do not include gmp.h, mpfr.h, and mpc.h.
1282         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
1283         (real_value_negate, real_value_abs): New prototypes.
1284         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
1285         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
1286         new include file for interface between MPFR and REAL_VALUE_TYPE.
1287         * real.c: Include realmpfr.h.
1288         (real_arithmetic2): Remove legacy function.
1289         (real_value_negate): New.
1290         (real_value_abs): New.
1291         (mfpr_from_real, real_from_mpfr): Move from here...
1292         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
1293         * builtins.c: Include realmpfr.h.
1294         * fold-const.c: Include realmpfr.h.
1295         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
1296         (fold_negate_const): Likewise.
1297         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
1298         * toplev.c: Include realmpfr.h.
1299         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
1300         and real_value_negate.
1301         * fixed-value.c (check_real_for_fixed_mode): Likewise.
1302         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
1303         (vfp3_const_double_index): Likewise.
1304         (arm_print_operand): Likewise.
1305         * Makefile.in: Update dependencies.
1306
1307 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1308
1309         * config/s390/s390.c (override_options): Increase the default
1310         of max-completely-peel-times.
1311
1312 2010-05-21  Julian Brown  <julian@codesourcery.com>
1313             Mark Mitchell  <mark@codesourcery.com>
1314
1315         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
1316         sibling calls for Thumb-1.
1317         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
1318         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
1319         Thumb-2.
1320         (*call_insn, *call_value_insn): Don't use for Thumb-2.
1321         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
1322         for Thumb-2.
1323         (return): New expander.
1324         (*arm_return): New name for ARM return insn.
1325         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
1326
1327 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
1328
1329         * config.gcc (sparc64-*-rtems*): New target.
1330
1331 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1332
1333         * tree.c (build_function_decl_skip_args): Fix grammar.
1334         (build_function_type_list_1): Fix typos, adjust formatting.
1335
1336 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1337
1338         * tree.h: Include real.h and fixed-value.h as basic datatypes.
1339         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
1340         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
1341         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
1342         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
1343         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
1344         tree-pretty-print.c, tree-loop-distribution.c,
1345         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
1346         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
1347         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
1348         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
1349         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
1350         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
1351         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
1352         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
1353         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
1354         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
1355         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
1356         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
1357         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
1358         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
1359         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
1360         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
1361         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
1362         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
1363         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
1364         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
1365         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
1366         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
1367         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
1368         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
1369         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
1370         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
1371         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
1372         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
1373         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
1374         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
1375         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
1376         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
1377         config/score/score7.c, config/score/score.c, config/arm/arm.c,
1378         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
1379         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
1380         config/bfin/bfin.c: Clean up redundant includes.
1381         * Makefile.in: Update accordingly.
1382
1383 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1384
1385         PR middle-end/44204
1386         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
1387         statement has no arguments.
1388
1389 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
1390
1391         PR/44139
1392         * varasm.c (emutls_decl): Merge attributes to new decl.
1393
1394 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1395
1396         PR middle-end/44101
1397         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
1398         around the uniquized constructor if its type requires a conversion.
1399
1400 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1401
1402         PR debug/44205
1403         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
1404         at -O0 goto_locus of any of the incoming edges differs from
1405         goto_locus of outgoing edge, or gimple_location of any of the
1406         labels differs.
1407
1408 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
1409
1410         * ira.c (ira_non_ordered_class_hard_regs): Define.
1411         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
1412         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
1413         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
1414         cost of unaligned hard regs when allocating multi-reg pseudos.
1415
1416 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
1417
1418         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
1419         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
1420         for TARGET_NO_FLOAT.
1421         * config/mips/mips.c (mips_file_start): Expand conditional expression
1422         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
1423         (mips_override_options): Move -mno-float override -msoft-float and
1424         -mhard-float.
1425         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
1426         Condition(TARGET_SUPPORTS_NO_FLOAT).
1427         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
1428         __mips_no_float here.
1429         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
1430         (TARGET_SUPPORTS_NO_FLOAT): Define.
1431         * config/mips/sdemtk.opt: Delete.
1432
1433 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
1434
1435         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
1436
1437 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
1438
1439         PR target/43733
1440         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
1441         * configure: Regenerate.
1442         * config.in: Regenerate.
1443         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
1444         instead of sahf only for 64bit targets.
1445
1446 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1447
1448         PR debug/44178
1449         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
1450         setup_ref_regs for DEBUG_INSNs.
1451
1452 2010-05-20  Jan Hubicka  <jh@suse.cz>
1453
1454         PR middle-end/44197
1455         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
1456
1457 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
1458
1459         PR bootstrap/43870
1460         * df-scan.c (df_ref_compare): Stabilize sort.
1461
1462 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1463
1464         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
1465         argument.  Don't use DW_OP_piece if offset is non-zero,
1466         put offset into second DW_OP_bit_piece argument.
1467         (dw_sra_loc_expr): Adjust callers.  For memory expressions
1468         compute offset.
1469
1470 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
1471
1472         PR target/44202
1473         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
1474         settings for 16-bit-constant "addo" alternative.
1475
1476 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
1477
1478         * config/mips/mips-dsp.md (add<DSPV:mode>3,
1479         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
1480
1481         PR target/43764
1482         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
1483         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
1484         Use it.
1485
1486 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
1487
1488         * diagnostic.c (FLOAT, FFS): Don't undefine.
1489         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
1490         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
1491         include ordering.
1492
1493 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
1494
1495         * combine.c (propagate_for_debug): Call make_compound_operation
1496         on the source value.
1497         (try_combine): When implementing a split chosen by find_split_point,
1498         either copy i2src or set it to null.  Assert that i2src is not null
1499         before substituting into CALL_INSN_FUNCTION_USAGE.
1500
1501 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
1502
1503         * double-int.h (double_int_ior): New function.
1504         * tree.h (build_int_cst_wide_type): Remove.
1505         * tree.c (build_int_cst_wide_type): Remove.
1506         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
1507         of build_int_cst_wide_type.
1508         * stor-layout.c (set_sizetype): (Ditto.).
1509         * dojump.c (do_jump): Use build_int_cstu instead of
1510         build_int_cst_wide_type.
1511
1512 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1513
1514         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
1515         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
1516         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
1517         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
1518         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
1519         propagate the 'data' argument to copy_tree_r.
1520         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
1521         Propagate 'data' argument to walk_tree.
1522         (copy_if_shared): New function.
1523         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
1524         (unmark_visited): New function.
1525         (unshare_body): Call copy_if_shared instead of doing it manually.
1526         (unvisit_body): Call unmark_visited instead of doing it manually.
1527
1528 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
1529
1530         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
1531         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
1532         * hooks.c: Likewise.
1533         * target-def.h (TARGET_FOLD_BUILTIN): Define to
1534         hook_tree_tree_int_treep_bool_null.
1535         * target.h (struct gcc_target): Update signature of fold_builtin
1536         field.
1537         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
1538         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
1539         instead of the call expression.
1540         (fold_builtin_call_array): Pass n and argarray directly.
1541         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
1542         consing a list.
1543         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
1544         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
1545         `i' and use it in place of `arity'.
1546         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
1547         Dereference `args' directly.
1548         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
1549
1550 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1551
1552         * doc/sourcebuild.texi (Effective-Target Keywords): Document
1553         3dnow, sse3, sse2.
1554         (Directives): Document optional dg-require-effective-target
1555         selector.
1556
1557 2010-05-19  Richard Guenther  <rguenther@suse.de>
1558
1559         PR lto/44196
1560         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
1561
1562 2010-05-19  Richard Guenther  <rguenther@suse.de>
1563
1564         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
1565         * common.opt (fwhopr=): New.
1566         * opts.c (common_handle_option): Handle OPT_fwhopr.
1567         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
1568         * collect2.c (main): Match -fwhopr*.
1569         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
1570         Execute ltrans stage in parallel when jobs is bigger than 1.
1571
1572 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1573
1574         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
1575         pentiumpro on Solaris 8/x86 with Sun as.
1576         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
1577         hidden alias bug.
1578         (gcc_cv_as_ix86_quad): Check for .quad directive.
1579         * configure: Regenerate.
1580         * config.in: Regenerate.
1581         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
1582
1583 2010-05-19  Martin Jambor  <mjambor@suse.cz>
1584
1585         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
1586         also for indirect edges.  Actual printing moved...
1587         (ipa_print_node_jump_functions_for_edge): ...here.
1588         (ipa_compute_jump_functions): Renamed to
1589         ipa_compute_jump_functions_for_edge and made static.
1590         (ipa_compute_jump_functions): New function.
1591         (make_edge_direct_to_target): Check if the number of arguments on
1592         the newly direct edge is the same as the number of parametrs of
1593         the callee.
1594         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
1595         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
1596         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
1597         analysis functions unconditionally, call the new
1598         ipa_analyze_params_uses on the node instead of every edge.
1599
1600 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
1601
1602         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
1603         to tree.
1604         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
1605         also checks for a constant int vs.  non-constant but
1606         loop-invariant steps.
1607         (find_or_create_group): Change the sort algorithm to only consider
1608         steps that are constant ints.
1609         (idx_analyze_ref): Adopt code to handle a tree instead of a
1610         HOST_WIDE_INT for step.
1611         (gather_memory_references_ref): Handle tree instead of int and be
1612         prepared to see a NULL_TREE.
1613         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
1614         prefetches if the step cannot be calculated at compile time.
1615         (issue_prefetch_ref): Issue prefetches for non-constant but
1616         loop-invariant steps.
1617
1618 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1619
1620         Revert:
1621         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1622
1623         * tree.h (build_call_list): Remove.
1624         * tree.c (build_call_list): Remove.
1625
1626 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1627
1628         * tree.h (build_call_list): Remove.
1629         * tree.c (build_call_list): Remove.
1630
1631 2010-05-18  Jan Hubicka  <jh@suse.cz>
1632
1633         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
1634
1635 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
1636
1637         PR rtl-optimization/43332
1638         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
1639
1640 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
1641
1642         * tree.h (build_int_cstu): Implement as static inline.
1643         * tree.c (build_int_cstu): Remove function.
1644         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
1645         sign extended.
1646
1647 2010-05-18  Richard Guenther  <rguenther@suse.de>
1648
1649         PR lto/44143
1650         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
1651         (debug): Initialize from -save-temps.
1652         (collect_execute): Print command-line when verbose.
1653         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
1654         for ltrans invocation.  Produce -dumpbase flag again.
1655         (process_args): Remove.
1656         (main): Simplify.
1657         * collect2.c (maybe_run_lto_and_relink): Only pass object
1658         files to lto-wrapper.
1659         * gcc.c (LINK_COMMAND_SPEC): Likewise.
1660
1661 2010-05-18  Jan Hubicka  <jh@suse.cz>
1662
1663         * opts.c (decode_options): Do not disable whopr at ipa_cp.
1664         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
1665
1666 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
1667
1668         PR lto/44184
1669         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
1670         in a GIMPLE_ASM.
1671         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
1672         in a GIMPLE_ASM.
1673
1674 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
1675
1676         PR debug/41371
1677         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
1678         rtx_equal_p inline.
1679
1680 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
1681
1682         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
1683         lto-macho as lto_binary_reader.
1684
1685         * darwin.c (darwin_asm_named_section): Do not add assembler comment
1686         after .section directive; just print it before the directive instead.
1687
1688 2010-05-17  Jan Hubicka  <jh@suse.cz>
1689
1690         * cgraph.c (cgraph_create_virtual_clone): Only check
1691         versionable_function_p when not in wpa and checking is enabled.
1692         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
1693         there are no more functions to materialize.
1694
1695 2010-05-17  Jan Hubicka  <jh@suse.cz>
1696
1697         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
1698         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
1699         New functions.
1700         (output_cgraph): Call output_cgraph_opt_summary.
1701         (input_cgrpah): Call input_cgraph_opt_summary.
1702         (output_cgraph_opt_summary_p, output_node_opt_summary,
1703         input_node_opt_summary, input_cgraph_opt_section): New functions.
1704         * lto-section-in.c (lto_section_name): Add cgraphopt.
1705         * tree-inline.c (tree_function_versioning): Handle parm_num.
1706         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
1707         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
1708
1709 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
1710
1711         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
1712         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
1713         the insn to prefetch ratio heuristic to loops with known trip count.
1714
1715 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
1716
1717         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
1718         (schedule_prefetches): Do not generate a prefetch if the unroll factor
1719         is far from what is required by the prefetch.
1720
1721 2010-05-17  Jan Hubicka  <jh@suse.cz>
1722
1723         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
1724         (ipcp_estimate_growth): Likewise.
1725         (ipcp_const_param_count): Likewise.
1726         (ipcp_insert_stage): Likewise.
1727         * ipa-prop.c (visit_load_for_mod_analysis): New function.
1728         (visit_store_addr_for_mod_analysis): Set used flag.
1729         (ipa_detect_param_modifications): Set used flag for SSE params;
1730         update use of walk_stmt_load_store_addr_ops.
1731         (ipa_print_node_params): Print used flag.
1732         (ipa_write_node_info): Stream used flag.
1733         (ipa_read_node_info): Likewise.
1734         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
1735         (ipa_is_param_used): New function.
1736         (lto_ipa_fixup_call_notes): Remove unused declaration.
1737
1738 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1739
1740         PR target/44074
1741         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
1742         * configure: Regenerate.
1743         * config.in: Regenerate.
1744         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
1745         !HAVE_AS_IX86_REP_LOCK_PREFIX.
1746         Don't emit whitespace.
1747         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
1748         (*rep_movsi): Likewise.
1749         (*rep_movsi_rex64): Likewise.
1750         (*rep_movqi): Likewise.
1751         (*rep_movqi_rex64): Likewise.
1752         (*rep_stosdi_rex64): Likewise.
1753         (*rep_stossi): Likewise.
1754         (*rep_stossi_rex64): Likewise.
1755         (*rep_stosqi): Likewise.
1756         (*rep_stosqi_rex64): Likewise.
1757         (*cmpstrnqi_nz_1): Use {%;} after repz.
1758         (*cmpstrnqi_nz_rex_1): Likewise.
1759         (*cmpstrnqi_1): Likewise.
1760         (*cmpstrnqi_rex_1): Likewise.
1761         (*strlenqi_1): Use {%;} after repnz.
1762         (*strlenqi_rex_1): Likewise.
1763         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
1764         (*sync_compare_and_swap<mode>): Likewise.
1765         (sync_double_compare_and_swap<mode>): Likewise.
1766         (*sync_double_compare_and_swapdi_pic): Likewise.
1767         (sync_old_add<mode>): Likewise.
1768         (sync_add<mode>): Likewise.
1769         (sync_sub<mode>): Likewise.
1770         (sync_<code><mode>): Likewise.
1771
1772 2010-05-17  Martin Jambor  <mjambor@suse.cz>
1773
1774         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
1775         otr_token and polymorphic.
1776         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
1777         (cgraph_clone_edge): Copy the above fields.
1778         * tree.c (get_binfo_at_offset): New function.
1779         * tree.h (get_binfo_at_offset): Declare.
1780         * ipa-prop.h (enum jump_func_type): Added known_type jump function
1781         type, reordered items, updated comments.
1782         (union jump_func_value): Added base_type field, reordered fields.
1783         (enum ipa_lattice_type): Moved down in the file.
1784         (struct ipa_param_descriptor): New field polymorphic.
1785         (ipa_is_param_polymorphic): New function.
1786         * ipa-prop.c: Include gimple.h and gimple-fold.h.
1787         (ipa_print_node_jump_functions): Print known type jump functions.
1788         (compute_complex_pass_through): Renamed to...
1789         (compute_complex_assign_jump_func): this.
1790         (compute_complex_ancestor_jump_func): New function.
1791         (compute_known_type_jump_func): Likewise.
1792         (compute_scalar_jump_functions): Create known type and complex ancestor
1793         jump functions.
1794         (ipa_note_param_call): New parameter polymorphic, set the corresponding
1795         flag in the call note accordingly.
1796         (ipa_analyze_call_uses): Renamed to...
1797         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
1798         variable var only in the block where it is used.
1799         (ipa_analyze_virtual_call_uses): New function.
1800         (ipa_analyze_call_uses): Likewise.
1801         (combine_known_type_and_ancestor_jfs): Likewise.
1802         (update_jump_functions_after_inlining): Implemented handling of a
1803         number of new jump function types combination.
1804         (print_edge_addition_message): Removed.
1805         (make_edge_direct_to_target): New function.
1806         (try_make_edge_direct_simple_call): Likewise.
1807         (try_make_edge_direct_virtual_call): Likewise.
1808         (update_call_notes_after_inlining): Renamed to...
1809         (update_indirect_edges_after_inlining): this.  Moved edge creation for
1810         indirect calls to try_make_edge_direct_simple_call, also calls
1811         try_make_edge_direct_virtual_call for virtual calls.
1812         (ipa_print_node_params): Changed the header message.
1813         (ipa_write_jump_function): Stream also known type jump functions.
1814         (ipa_read_jump_function): Likewise.
1815         (ipa_write_indirect_edge_info): Stream new fields in
1816         cgraph_indirect_call_info.
1817         (ipa_read_indirect_edge_info): Likewise.
1818         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
1819         GIMPLE_FOLD_H.
1820
1821 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1822
1823         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
1824
1825 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1826
1827         * tree.h (CALL_EXPR_ARGS): Delete.
1828         (call_expr_arglist): Delete.
1829         * tree.c (call_expr_arglist): Delete.
1830         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
1831         targetm.fold_builtin.
1832         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
1833         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
1834         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
1835         arglist parameter.  Use CALL_EXPR_ARG.
1836         (picochip_expand_builtin_3op): Likewise.
1837         (picochip_expand_builtin_2opvoid): Likewise.
1838         (picochip_expand_array_get): Likewise.
1839         (picochip_expand_array_put): Likewise.
1840         (picochip_expand_array_testport): Likewise.
1841         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
1842         rather than arglist.
1843         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
1844         CALL_EXPR_ARGS.
1845         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
1846         than TREE_VALUE and TREE_CHAIN.
1847         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
1848         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
1849         the arglist.
1850
1851 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
1852
1853         PR bootstrap/42347
1854         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
1855         to have no fallthru edge.
1856
1857         PR middle-end/44102
1858         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
1859         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
1860         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
1861         add BARRIER after previous bb if needed.
1862
1863 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1864
1865         * tree.c (build_function_type_list_1): Remove bogus assert condition.
1866
1867 2010-05-17  Alan Modra  <amodra@gmail.com>
1868
1869         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
1870         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
1871         with copy_reg rtx param.
1872         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
1873         Correct cases where code for ABI_V4 did not initialise the reg
1874         used to access frame.  Also leave frame_reg_rtx as sp for large
1875         frames that save no regs.
1876
1877 2010-05-17  Martin Jambor  <mjambor@suse.cz>
1878
1879         PR middle-end/44133
1880         * tree-sra.c (create_access_replacement): New parameter rename, mark
1881         the replaement for renaming only when it is true.
1882         (get_access_replacement): Pass true in the rename parameter of
1883         create_access_replacement.
1884         (get_unrenamed_access_replacement): New function.
1885         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
1886         replacement declaration from it.
1887
1888 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
1889
1890         * function.c (try_fit_stack_local, add_frame_space): New static
1891         functions.
1892         (assign_stack_local_1): Use them.  Look for opportunities to use
1893         space previously wasted on alignment.
1894         * function.h (struct frame_space): New.
1895         (struct rtl_data): Add FRAME_SPACE_LIST member.
1896         * reload1.c (something_was_spilled): New static variable.
1897         (alter_reg): Set it.
1898         (reload): Test it in addition to testing if the frame size changed.
1899
1900 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
1901
1902         * config/s390/s390.c: Define sane prefetch settings and activate
1903         flag_prefetch_loop_arrays on -O3.
1904         * config/s390/s390.h: Declare that read can use write prefetch.
1905
1906 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
1907
1908         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
1909         build.
1910
1911 2010-05-16  Jan Hubicka  <jh@suse.cz>
1912
1913         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
1914         function body; do not check stdarg field of struct function.
1915
1916 2010-05-16  Jan Hubicka  <jh@suse.cz>
1917
1918         * cgraph.c (dump_cgraph_node): Dump versionable flag.
1919         * cgraph.h (cgraph_local_info): Add versionable flag.
1920         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
1921         (ipcp_versionable_function_p): Use it.
1922         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
1923         versionable flag.
1924
1925 2010-05-16  Jan Hubicka  <jh@suse.cz>
1926
1927         * cgraph.c (cgraph_clone_node): Take decl argument and insert
1928         clone into hash when it is different from orig.
1929         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
1930         * cgraph.h (cgraph_clone_node): Update prototype.
1931         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
1932         (lto_cgraph_encoder_delete): Delete body map.
1933         (lto_cgraph_encoder_size): Move to header.
1934         (lto_cgraph_encoder_encode_body_p,
1935         lto_set_cgraph_encoder_encode_body): New.
1936         (lto_output_node): Do not take written_decls argument; output clone_of
1937         pointer.
1938         (add_node_to): Add include_body_argument; call
1939         lto_set_cgraph_encoder_encode_body on master of the clone.
1940         (add_references): Update use of add_node_to.
1941         (compute_ltrans_boundary): Likewise.
1942         (output_cgraph): Do not create written_decls bitmap.
1943         (input_node): Take nodes argument; stream in clone_of correctly.
1944         (input_cgraph_1): Update use of input_node.
1945         * lto-streamer-out.c (lto_output): Use encoder info to decide
1946         what bodies to output.
1947         * ipa-inline.c (cgraph_clone_inlined_nodes,
1948         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
1949         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
1950         (lto_cgraph_encoder_size): Define here.
1951         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
1952         Declare.
1953
1954 2010-05-16  Richard Guenther  <rguenther@suse.de>
1955
1956         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
1957         -fipa-type-escape.
1958         * ipa-type-escape.c (gate_type_escape_vars): Run when
1959         -fipa-struct-reorg runs.
1960         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
1961         * common.opt (fipa-type-escape): Remove.
1962
1963 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
1964
1965         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
1966         (decode_options): Likewise.
1967         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
1968
1969 2010-05-16  Jan Hubicka  <jh@suse.cz>
1970
1971         * ipa.c (function_and_variable_visibility): Also bring local all
1972         aliases.
1973
1974 2010-05-16  Richard Guenther  <rguenther@suse.de>
1975
1976         * alias.c (nonoverlapping_memrefs_p): Remove use of
1977         IPA type-escape information.
1978
1979 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
1980
1981         * c-common.c (c_common_reswords): Add _Static_assert for C.
1982         * c-parser.c (c_token_starts_declaration,
1983         c_parser_next_token_starts_declaration,
1984         c_parser_static_assert_declaration_no_semi,
1985         c_parser_static_assert_declaration): New.
1986         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
1987         Handle static assertions if static_assert_ok.
1988         (c_parser_external_declaration, c_parser_declaration_or_fndef,
1989         c_parser_compound_statement_nostart, c_parser_label,
1990         c_parser_for_statement, c_parser_objc_methodprotolist,
1991         c_parser_omp_for_loop): All callers of
1992         c_parser_declaration_or_fndef changed.
1993         (c_parser_struct_declaration): Handle static assertions.
1994         (c_parser_compound_statement_nostart): Use
1995         c_parser_next_token_starts_declaration and
1996         c_token_starts_declaration to detect start of declarations.
1997         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
1998         Likewise.
1999
2000 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
2001
2002         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
2003         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
2004         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2005         TARGET_FUNCTION_VALUE_REGNO_P): Define.
2006         (mmix_function_outgoing_value): Rename to...
2007         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
2008         (mmix_function_value_regno_p): Make static.
2009         (mmix_libcall_value): New function.
2010         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
2011         mmix_function_value_regno_p): Remove declaration.
2012
2013 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
2014
2015         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
2016         BUILT_IN_ALLOCA if stack checking is enabled.
2017
2018 2010-05-16  Richard Guenther  <rguenther@suse.de>
2019
2020         * var-tracking.c (vars_copy_1): Inline ...
2021         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
2022         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
2023         (variable_merge_over_cur): Adjust.  Merge asserts.
2024         (variable_merge_over_src): Likewise.
2025         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
2026         (variable_post_merge_new_vals): Merge asserts.
2027         (variable_post_merge_perm_vals): Likewise.
2028         (find_mem_expr_in_1pdv): Likewise.
2029         (dataflow_set_different_value): Remove.
2030         (onepart_variable_different_p): Merge asserts.
2031         (variable_different_p): Likewise.
2032         (dataflow_set_different_1): Inline ...
2033         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
2034         (emit_notes_for_differences_1): Merge asserts.
2035
2036 2010-05-16  Richard Guenther  <rguenther@suse.de>
2037
2038         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
2039         * optabs.c (libfunc_decl_hash): Likewise.
2040         * varasm.c (emutls_decl): Likewise.
2041
2042 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
2043
2044         * c-decl.c: Don't include gimple.h.
2045         (merge_decls): Do not copy gimple_body.
2046
2047 2010-05-15  Jason Merrill  <jason@redhat.com>
2048
2049         * c.opt: Add -fnothrow-opt.
2050
2051 2010-05-15  Jan Hubicka  <jh@suse.cz>
2052
2053         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
2054         analyzed.
2055         * passes.c (ipa_write_summaries): Write all analyzed nodes.
2056
2057 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
2058
2059         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
2060         * Makefile.in: Add it.
2061         Fix all other Makefile dependencies for changes below.
2062         * tree.h: Include it instead of defining VEC primitives here.
2063         * gimple.h: Likewise.
2064         * rtl.h: Likewise.
2065         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
2066         * except.h: Include vecir.h, break dependence on tree.h.
2067
2068         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
2069         Move from here...
2070         * tree-iterator.c: ...to here.
2071         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
2072
2073         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
2074         tm_p.h.
2075         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
2076         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
2077         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
2078         tree-mudflap.h, and target.h.
2079         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
2080         predict.h, tree-inline.h, gimple.h, and langhooks.h.
2081         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
2082         Add FIXME for why gimple.h is still included (should be unnecessary
2083         since GCC 4.5 gimplification unit-at-a-time).
2084         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
2085         * c-pragma.c: Add FIXME for why function.h needs to be included just
2086         for cfun, at front-end level.
2087         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
2088         Do not include ggc.h, but include vecprim.h for VEC(char).
2089         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
2090         Explain why target.h is included.
2091         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
2092         Explain why gimple.h is included.
2093         * c-ppoutput.c: Do not include tm.h.
2094         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
2095         * c-parses.c: Explain why rtl.h is included, and that this (and only
2096         this) is also why tm.h must be included.
2097         Do not include except.h.
2098         * c-lang.c: Do not include ggc.h.
2099
2100 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
2101
2102         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
2103
2104 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
2105
2106         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
2107         unions by default if those structs and unions have no tags.  Do
2108         not condition anonymous struct and unions handling on flag_iso.
2109         Allow anonymous structs and unions for C1X.
2110         (finish_struct): Do not diagnose lack of named fields when
2111         anonymous structs and unions present for C1X.  Accept flexible
2112         array members in structure with anonymous structs or unions but no
2113         directly named fields.
2114         * doc/extend.texi (Unnamed Fields): Update.
2115
2116 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
2117
2118         * gimple.h (compare_field_offset): Rename into...
2119         (gimple_compare_field_offset): ...this.
2120         * gimple.c (compare_field_offset): Rename into...
2121         (gimple_compare_field_offset): ...this.  Compare the full access if
2122         the offset is self-referential.
2123         (gimple_types_compatible_p): Adjust for above renaming.
2124         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
2125         DECL_NONADDRESSABLE_P flag of fields before merging them.
2126
2127 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
2128
2129         * tree.h (ctor_to_list): Delete.
2130         * tree.c (ctor_to_list): Delete.
2131
2132 2010-05-15  Jan Hubicka  <jh@suse.cz>
2133
2134         * ipa-reference.c: Include toplev.h
2135         (is_proper_for_analysis): Only add to all_module_statics
2136         if it is allocated.
2137         (write_node_summary_p, stream_out_bitmap,
2138         ipa_reference_write_optimization_summary,
2139         ipa_reference_read_optimization_summary): New.
2140         (struct ipa_opt_pass_d pass_ipa_reference): Add
2141         optimization summary streaming.
2142         * lto-cgraph.c (referenced_from_this_partition_p,
2143         reachable_from_this_partition_p): New functions.
2144         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2145         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
2146         * opts.c (decode_options): Enable ipa_reference.
2147         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
2148         * lto-streamer.h (referenced_from_this_partition_p,
2149         reachable_from_this_partition_p): Declare.
2150
2151 2010-05-15  Richard Guenther  <rguenther@suse.de>
2152
2153         PR tree-optimization/44038
2154         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
2155         taking the address of a V_C_E of a constant.
2156
2157 2010-05-14  Jan Hubicka  <jh@suse.cz>
2158
2159         * tree.h (memory_identifier_string): Remove.
2160         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
2161         (ipa_reference_global_vars_info_d): Remove statics_not_read and
2162         statics_not_written.
2163         (ipa_reference_optimization_summary_d): New structure.
2164         (ipa_reference_optimization_summary_t): New type and vector.
2165         (ipa_reference_vars_info_d): Embedd structures instead of using
2166         pointers.
2167         (reference_vars_to_consider): Remove out of GGC space.
2168         (module_statics_escape): Remove.
2169         (global_info_obstack): Rename to ...
2170         (optimization_summary_obstack): ... this one.
2171         (initialization_status_t): Remove.
2172         (memory_identifier_string): Remove.
2173         (get_reference_vars_info): Fix indenting.
2174         (set_reference_vars_info): Likewise.
2175         (get_reference_optimization_summary): New.
2176         (set_reference_optimization_summary): New.
2177         (get_global_reference_vars_info): Remove.
2178         (ipa_reference_get_read_global): Remove.
2179         (ipa_reference_get_written_global): Remove.
2180         (ipa_reference_get_not_read_global): Update.
2181         (ipa_reference_get_not_written_global): Update.
2182         (is_proper_for_analysis): Outlaw addressable.
2183         (propagate_bits): Update for new datastructures.
2184         (analyze_variable): Remove.
2185         (init_function_info): Update for new datastructures.
2186         (clean_function_local_data): Remove.
2187         (clean_function): Remove.
2188         (copy_global_bitmap): Use optimizations_summary_obstack.
2189         (duplicate_node_data): Duplicate optimization summary only.
2190         (remove_node_data): Remove optimization summary only.
2191         (generate_summary): Do not analyze variables; do not compute
2192         module_statics_escape; do not prune solutions by it.
2193         (read_write_all_from_decl): Fix typos in comments.
2194         (propagate): Doscover readonly and nonaddressable first;
2195         update for new datastructures; share global bitmaps.
2196         * ipa-reference.h (ipa_reference_get_read_global,
2197         ipa_reference_get_written_global): Remove.
2198         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
2199         * Makefile.in: Remove ipa-refereference from GT files.
2200
2201 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2202
2203         PR debug/44112
2204         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
2205         for all SYMBOL_REF_DECLs.
2206
2207 2010-05-14  Jan Hubicka  <jh@suse.cz>
2208
2209         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
2210         (varpool_all_refs_explicit_p): New inline function.
2211         * ipa-reference.c: Update comment.
2212         (module_statics_written): Remove.
2213         (get_static_decl): Remove.
2214         (ipa_init): Do not initialize module_statics_written.
2215         (analyze_function): Likewise.
2216         (generate_summary): Likewise; do not compute module_statics_readonly
2217         and do not update variable flags.
2218         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
2219         * ipa.c: Inlucde flags.h
2220         (cgraph_local_node_p): New.
2221         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
2222         promote functions to local.
2223         (ipa_discover_readonly_nonaddressable_vars): New function.
2224         (function_and_variable_visibility): Use cgraph_local_node_p.
2225         * varpool.c (varpool_finalize_decl): Set force_output for
2226         DECL_PRESERVE_P vars.
2227
2228 2010-05-14  Jan Hubicka  <jh@suse.cz>
2229
2230         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
2231
2232 2010-05-14  Richard Guenther  <rguenther@suse.de>
2233
2234         PR tree-optimization/44119
2235         * tree-ssa-pre.c (eliminate): Properly mark replacement of
2236         a PHI node necessary.
2237
2238 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
2239
2240         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
2241
2242 2010-05-14  Jason Merrill  <jason@redhat.com>
2243
2244         PR c++/44127
2245         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
2246         (gimple_call_set_nothrow): New.
2247         * gimple.c (gimple_build_call_from_tree): Call it.
2248         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
2249
2250         PR c++/44127
2251         * gimplify.c (gimplify_seq_add_stmt): No longer static.
2252         * gimple.h: Declare it.
2253         * gimple.c (gimple_build_eh_filter): No ops.
2254
2255 2010-05-14  Jan Hubicka  <jh@suse.cz>
2256
2257         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
2258         nodes already in queue.
2259         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
2260         re-enqueueing node.
2261
2262 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2263
2264         PR debug/44136
2265         * cfgexpand.c (expand_debug_expr): If non-memory op0
2266         has BLKmode, return NULL.
2267
2268 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
2269
2270         * config.gcc: Add support for --with-cpu option for bdver1.
2271         * config/i386/i386.h (TARGET_BDVER1): New macro.
2272         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
2273         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2274         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
2275         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2276         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
2277         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
2278         (processor_type): Add PROCESSOR_BDVER1.
2279         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
2280         processor_type in config/i386/i386.h.
2281         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
2282         movaps <reg, reg> instead of movapd <reg, reg> when replacing
2283         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
2284         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
2285         to emit packed xor instead of packed double/packed integer
2286         xor for SSE and AVX when moving a zero value.
2287         * config/i386/sse.md: Add check for
2288         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
2289         movapd/movdqa for SSE and AVX.
2290         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
2291         single logical operations i.e and, or and xor instead of packed double
2292         logical operations for SSE and AVX.
2293         * config/i386/i386-c.c (ix86_target_macros_internal):
2294         Add PROCESSOR_BDVER1.
2295         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
2296         (has_fma4, has_xop): New.
2297         * config/i386/i386.c (bdver1_cost): New variable.
2298         (m_BDVER1): New macro.
2299         (m_AMD_MULTIPLE): Add m_BDVER1.
2300         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
2301         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
2302         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
2303         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
2304         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
2305         x86_tune_sse_partial_reg_dependency,
2306         x86_tune_sse_unaligned_load_optimal,
2307         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
2308         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
2309         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
2310         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
2311         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
2312         Enable/disable for bdver1.
2313         (processor_target_table): Add bdver1_cost.
2314         (cpu_names): Add bdver1.
2315         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
2316          processor_alias_table.
2317         (ix86_expand_vector_move_misalign): Change.
2318         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
2319         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
2320         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
2321         of movupd/movdqu for SSE and AVX.
2322         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
2323         (ix86_tune_adjust_cost): Add code for bdver1.
2324         (standard_sse_constant_opcode): Add check for
2325         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
2326         of packed double xor for SSE and AVX.
2327
2328 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
2329
2330         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
2331         result to unsigned.
2332
2333 2010-05-14  Tristan Gingold  <gingold@adacore.com>
2334
2335         * toplev.c (default_debug_hooks): Remove this variable.
2336         (process_options): Remove assignments to default_debug_hooks.
2337
2338 2010-05-14  Martin Jambor  <mjambor@suse.cz>
2339
2340         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
2341         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
2342         * langhooks.h (struct lang_hooks_for_decls): Removed field
2343         fold_obj_type_ref.
2344         * tree.c (free_lang_data): Remove assignment to
2345         lang_hooks.fold_obj_type_ref.
2346         * tree.def (OBJ_TYPE_REF): Update comment.
2347
2348 2010-05-14  Richard Guenther  <rguenther@suse.de>
2349
2350         PR tree-optimization/44124
2351         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
2352
2353 2010-05-14  Alan Modra  <amodra@gmail.com>
2354
2355         PR target/44075
2356         * config/rs6000/rs6000.c (struct machine_function): Reorder
2357         fields for better packing.  Add lr_save_state.
2358         (rs6000_ra_ever_killed): Return lr_save_state if set.
2359         (rs6000_emit_eh_reg_restore): Set lr_save_state.
2360
2361 2010-05-13  Jan Hubicka  <jh@suse.cz>
2362
2363         * varpool.c (decide_is_variable_needed): Drop code checking
2364         TREE_SYMBOL_REFERENCED.
2365
2366 2010-05-13  Jan Hubicka  <jh@suse.cz>
2367
2368         * final.c (output_addr_const): Do not call mark_decl_referenced.
2369         * cgraphunit.c (process_function_and_variable_attributes): Use
2370         mark_needed_node dirrectly.
2371         (assemble_thunk): Do not call mark_decl_referenced.
2372
2373 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
2374
2375         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
2376
2377 2010-05-13  Jeff Law  <law@redhat.com>
2378
2379         * ira-conflicts.c (print_allocno_conflicts): New function broken out
2380         from...
2381         (print_conflicts): Call print_allocno_conflicts.
2382
2383 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2384
2385         PR debug/44104
2386         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
2387         if it is NULL.
2388
2389 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
2390
2391         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
2392         t-mingw-w64 or t-mingw-w32 for multilib configuration.
2393         * config/i386/t-mingw-w32: New.
2394         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
2395
2396 2010-05-13  Martin Jambor  <mjambor@suse.cz>
2397
2398         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
2399         gimple-fold.c).
2400         * gimple-fold.c (get_base_binfo_for_type): New function.
2401         (gimple_get_relevant_ref_binfo): Likewise.
2402         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2403         (gimple_fold_obj_type_ref): Likewise.
2404         (fold_gimple_call): Simplify condition for folding virtual calls
2405         and call gimple_fold_obj_type_ref.
2406         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
2407         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2408
2409 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
2410
2411         * config/rs6000/rs6000-protos.h
2412         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
2413         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
2414         (rs6000_debug_mode_dependent_address)
2415         (rs6000_mode_dependent_address_ptr): Likewise.
2416
2417 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2418
2419         PR debug/43983
2420         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
2421         by SRA.
2422         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
2423         * tree-sra.c (create_access_replacement): Call unshare_expr before
2424         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
2425         * dwarf2out.c: Include tree-flow.h.
2426         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
2427         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
2428         Handle DW_OP_bit_piece.
2429         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
2430         construct_piece_list, adjust_piece_list): New functions.
2431         (add_var_loc_to_decl): Handle SRA optimized variables.
2432         Adjust for var_loc_note to loc field renaming.
2433         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
2434         in VAR_LOCATION note.
2435         (new_loc_descr_op_bit_piece): New function.
2436         (dw_sra_loc_expr): New function.
2437         (dw_loc_list): Use it.  Don't handle the last range after the
2438         loop, handle it inside of the loop.  Adjust for var_loc_note
2439         to loc field renaming.
2440         (add_location_or_const_value_attribute): Only special case
2441         single entry loc lists if loc is NOTE_P.  Adjust for
2442         var_loc_note to loc field renaming.
2443         (dwarf2out_var_location): Don't set newloc->var_loc_note
2444         and newloc->next here.
2445
2446 2010-05-12  Jan Hubicka  <jh@suse.cz>
2447
2448         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
2449         flag.
2450         * cgraph.h (cgraph_only_called_directly_p,
2451         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
2452         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
2453         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
2454         (assemble
2455         * ipa.c (cgraph_remove_unreachable_nodes): Use
2456         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
2457         flags.
2458         * tree-inline.c (copy_bb): Check address_taken flag.
2459         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
2460         externally_visible flag.
2461
2462 2010-05-12  Jason Merrill  <jason@redhat.com>
2463
2464         PR bootstrap/44048
2465         PR target/44099
2466         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
2467         * sdbout.c (plain_type_1): Likewise.
2468         * dwarf2out.c (is_base_type): Likewise.
2469         (gen_type_die_with_usage): Likewise.  Generate
2470         DW_TAG_unspecified_type for any LANG_TYPE.
2471
2472 2010-05-12  Jan Hubicka  <jh@suse.cz>
2473
2474         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
2475         indrect edges too.
2476         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
2477         (cgraph_clone_edge): Update.
2478         (cgraph_node_remove_callees): Remove indirect calls too.
2479         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
2480         (cgraph_create_indirect_edge): Update prototype.
2481         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
2482         is_proper_for_analysis.
2483         (add_new_function, visited_nodes, function_insertion_hook_holder,
2484         get_local_reference_vars_info, mark_address_taken, mark_address,
2485         mark_load, mark_store, check_asm_memory_clobber, check_call,
2486         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
2487         (ipa_init): Do not initialize visited_nodes;
2488         function_insertion_hook_holder.
2489         (analyze_variable): Rewrite.
2490         (analyze_function): Rewrite.
2491         (copy_local_bitmap): Remove.
2492         (duplicate_node_dat): Do not duplicate local info.
2493         (generate_summary): Simplify to only walk cgraph.
2494         (write_node_summary_p, ipa_reference_write_summary,
2495         ipa_reference_read_summary): Remove.
2496         (propagate): Do not remove function insertion;
2497         generate summary.
2498         (pass_ipa_reference): NULLify summary handling fields.
2499         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
2500         (input_edge): Input ecf_flags.
2501         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
2502         (update_indirect_edges_after_inlining): Ignore edges with unknown
2503         param.
2504
2505 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
2506
2507         * implicit-zee.c: New file.
2508         * tree-pass.h (pass_implicit_zee): Declare.
2509         * passes.c (init_optimization_passes): Add zee pass.
2510         * common.opt (fzee): New flag.
2511         * timevar.def (TV_ZEE): Define.
2512         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
2513         and beyond.
2514         * Makefile.in (implicit-zee.o): Add new build file.
2515
2516 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2517             Nathan Froyd  <froydnj@codesourcery.com>
2518
2519         * c-common.c (sync_resolve_params): Remove write-only variable.
2520
2521 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
2522
2523         * target.h (struct gcc_target): Add mode_dependent_address_p field.
2524         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2525         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
2526         * targhooks.c (default_mode_dependent_address_p): New function.
2527         * targhooks.h (default_mode_dependent_address_p): Declare function.
2528         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2529         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
2530         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
2531         target hook. Change return type to bool.
2532         * recog.h (mode_dependent_address_p): Change return type to bool.
2533
2534 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2535             Nathan Froyd  <froydnj@codesourcery.com>
2536
2537         * tree-mudflap.c (build_function_type_0, build_function_type_1,
2538         build_function_type_2, build_function_type_3): Remove.
2539         (mudflap_init): Use build_function_type_list.
2540
2541 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2542             Nathan Froyd  <froydnj@codesourcery.com>
2543
2544         * coverage.c (build_fn_info_value): Call build_constructor instead of
2545         build_constructor_from_list.
2546         (build_ctr_info_value): Likewise.
2547         (build_gcov_info): Likewise.
2548
2549 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
2550
2551         * tree.c (build_constructor): Compute TREE_CONSTANT for the
2552         resultant constructor.
2553         (build_constructor_single): Don't set TREE_CONSTANT.
2554         (build_constructor_from_list): Don't compute TREE_CONSTANT.
2555
2556 2010-05-12  Jan Hubicka  <jh@suse.cz>
2557
2558         * cgraph.h (struct varpool_node): Add aux.
2559         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
2560         * varpool.c (varpool_remove_node): Do not remove initializer.
2561         (varpool_reset_queue): Export.
2562         (varpool_finalize_decl): Volatile vars are forced to be output.
2563         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
2564         replaced decl.
2565         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
2566         process_references, varpool_can_remove_if_no_refs): New functions.
2567         (cgraph_remove_unreachable_nodes): Handle variables too.
2568
2569 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2570
2571         PR target/44088
2572         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
2573
2574 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
2575
2576         PR middle-end/44085
2577         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
2578         change value of ORT_TASK.
2579         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
2580         (omp_notice_threadprivate_variable): New function.
2581         (omp_notice_variable): Call it for threadprivate variables.
2582         If enclosing ctx is a task, print enclosing task rather than
2583         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
2584         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
2585         if task has untied clause.
2586
2587         PR debug/42278
2588         * dwarf2out.c (base_type_die): Don't add name attribute here.
2589         (modified_type_die): Instead of sizetype use
2590         its underlying original type.  If a DW_TAG_base_type doesn't
2591         have name added, add __unknown__.
2592         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
2593         always call force_type_die instead.
2594
2595 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
2596
2597         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
2598         for __stack_chk_guard.
2599
2600 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2601
2602         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
2603         don't call start_source_file debug hook here...
2604         (finish_options): ... but here, after outputting predefined and
2605         command line defines and undefs.
2606
2607         PR middle-end/44071
2608         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
2609         no fallthru edge.
2610         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
2611         optimizing away empty bb with no successors, move over its
2612         footer chain to fallthru predecessor.
2613         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
2614         (rtl_split_edge): For asm goto call patch_jump_insn even if
2615         splitting fallthru edge.
2616
2617         PR c++/44059
2618         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
2619         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
2620         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
2621         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
2622         on DW.ref.* decls.
2623
2624         PR c++/44062
2625         * c-parser.c (c_parser_expression): Mark LHS of a comma
2626         expression as read if it is a decl, handled component or
2627         COMPOUND_EXPR with that on the RHS.
2628         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
2629         if it is a decl or handled component.
2630
2631 2010-05-11  Jan Hubicka  <jh@suse.cz>
2632
2633         * lto-symtab.c (lto_symtab_free): New function.
2634         * lto-streamer.h (lto_symtab_free): Declare.
2635
2636 2010-05-11  Jan Hubicka  <jh@suse.cz>
2637
2638         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
2639         that if function is needed it is reachable.
2640         (lto_output_node): See if it the function is reachable or referenced.
2641         (output_cgraph): Update call of lto_output_node.
2642         * lto-streamer.h (reachable_from_other_partition_p): Declare.
2643
2644 2010-05-11  Jan Hubicka  <jh@suse.cz>
2645
2646         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
2647         Mark as used.
2648
2649 2010-05-11  Jan Hubicka  <jh@suse.cz>
2650
2651         PR tree-optimize/44063
2652         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
2653         queue.
2654         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
2655         limits.
2656         (estimate_function_body_sizes): Compute sizes even when disregarding.
2657
2658 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
2659
2660         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
2661
2662 2010-05-11  Jan Hubicka  <jh@suse.cz>
2663
2664         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
2665         into every boundary.
2666
2667 2010-05-11  Jan Hubicka  <jh@suse.cz>
2668
2669         * matrix-reorg.c (matrix_reorg): Rebuild edges.
2670
2671 2010-05-11  Jan Hubicka  <jh@suse.cz>
2672
2673         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
2674         lto_streamer_cache_delete): Put nodes into heap.
2675         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
2676         heap.
2677
2678 2010-05-11  Jan Hubicka  <jh@suse.cz>
2679
2680         * cgraphbuild.c (cgraph_rebuild_references): New.
2681         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
2682         out extern inlines.
2683         * cgraph.h (cgraph_rebuild_references): Declare.
2684         * tree-inline.c (tree_function_versioning): Use it.
2685         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
2686
2687 2010-05-11  Jan Hubicka  <jh@suse.cz>
2688
2689         * cgraph.c: Include ipa-utils.h
2690         (cgraph_create_virtual_clone): Update references.
2691         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
2692
2693 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2694
2695         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
2696         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
2697         cache size.
2698
2699 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2700
2701         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
2702
2703 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2704
2705         * gcc.c (execute): For -### don't quote arguments that
2706         contain just alphanumerics and _/-. characters.
2707         * doc/invoke.texi: Document that change for -###.
2708
2709         PR debug/44023
2710         * df-problems.c (struct dead_debug): Add to_rescan field.
2711         (dead_debug_init): Clear to_rescan field.
2712         (dead_debug_finish): Rescan all debug insns in to_rescan
2713         bitmap and free the bitmap.
2714         (dead_debug_insert_before): Instead of rescanning debug insns
2715         immediately queue their rescanning until dead_debug_finish.
2716         (df_note_bb_compute): After dead_debug_add do continue instead
2717         of break.
2718
2719 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
2720
2721         PR debug/44028
2722         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
2723         clear also INSN_REG_USE_LIST.
2724
2725 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2726
2727         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
2728
2729 2010-05-10  Jan Hubicka  <jh@suse.cz>
2730
2731         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
2732         commited change.
2733
2734 2010-05-10  Jan Hubicka  <jh@suse.cz>
2735
2736         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
2737         Allocate encoders.
2738         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
2739         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
2740         (lto_streamer_cache_create): Init alloc pool.
2741         (lto_streamer_cache_delete): Free alloc pool.
2742         * lto-streamer.h: Include alloc pool.
2743         (lto_streamer_cache_d): Use alloc pool.
2744         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
2745
2746 2010-05-10  Jan Hubicka  <jh@suse.cz>
2747
2748         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
2749         * cgraphbuild.c: Include except.h
2750         (record_type_list, record_eh_tables): New function.
2751         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
2752
2753 2010-05-10  Jan Hubicka  <jh@suse.cz>
2754
2755         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
2756         __frame_dummy_init_array_entry, force_to_data): Attribute as used
2757         rather than unused.
2758
2759 2010-05-10  Michael Matz  <matz@suse.de>
2760
2761         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
2762         (can_reassociate_p): Use FLOAT_TYPE_P.
2763         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
2764         (vect_force_simple_reduction): ... this.
2765         * tree-parloops.c (gather_scalar_reductions): Use
2766         vect_force_simple_reduction.
2767         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
2768         vect_is_simple_reduction, add modify argument, if true rewrite
2769         "a-b" into "a+(-b)".
2770         (vect_is_simple_reduction, vect_force_simple_reduction): New
2771         functions.
2772         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
2773
2774 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
2775             Vladimir Makarov  <vmakarov@redhat.com>
2776
2777         PR rtl-optimization/44012
2778         * ira-build.c (remove_unnecessary_allocnos): Nullify
2779         regno_allocno_map of the removed allocno.
2780
2781 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2782
2783         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
2784         to /dev/null.
2785         * configure: Regenerate.
2786
2787 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2788
2789         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
2790         unused.
2791         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
2792         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
2793         support in Sun ld.
2794         * configure: Regenerate.
2795
2796 2010-05-10  Richard Guenther  <rguenther@suse.de>
2797
2798         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
2799         marked if the entry identifier is marked.
2800
2801 2010-05-10  Richard Guenther  <rguenther@suse.de>
2802
2803         * c-common.c (struct c_common_attributes): Add fnspec attribute.
2804         (handle_fnspec_attribute): New function.
2805         * gimple.h (gimple_call_return_flags): Declare.
2806         (gimple_call_arg_flags): Likewise.
2807         * gimple.c (gimple_call_arg_flags): New function.
2808         (gimple_call_return_flags): Likewise.
2809         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
2810         New argument flags.
2811         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
2812         return value flags.
2813         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
2814         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
2815         main work to ...
2816         (make_heapvar_for): ... this new function.
2817         (handle_rhs_call): Handle fnspec attribute argument specifiers.
2818         (handle_lhs_call): Likewise.
2819         (find_func_aliases): Adjust.
2820
2821 2010-05-10  Richard Guenther  <rguenther@suse.de>
2822
2823         PR tree-optimization/44050
2824         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
2825
2826 2010-05-10  Wei Guozhi  <carrot@google.com>
2827
2828         PR target/42879
2829         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
2830
2831 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
2832
2833         PR c/10676
2834         * c-typeck.c (lookup_field): Take a type directly.  Update
2835         recursive calls.
2836         (build_component_ref): Update call to lookup_field.
2837         (set_init_label): Use lookup_field to find initialized field.
2838         Handle returned list of fields like a sequence of designators.
2839
2840 2010-05-09  Richard Guenther  <rguenther@suse.de>
2841
2842         PR middle-end/44024
2843         * fold-const.c (tree_single_nonzero_warnv_p): Properly
2844         handle &FUNCTION_DECL.
2845
2846 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
2847
2848         PR c/4784
2849         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
2850         structures and unions recursively.
2851         (detect_field_duplicates): Move duplicate detection with a hash to
2852         detect_field_duplicates_hash.  Always use a hash if anonymous
2853         structures or unions are present.
2854         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
2855         give errors.
2856
2857 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2858
2859         PR target/44046
2860         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
2861         detect Atom, Core 2 and Core i7.
2862
2863 2010-05-09  Richard Guenther  <rguenther@suse.de>
2864
2865         * gcc.c (store_arg): Handle temporary file deletion for
2866         joined arguments.
2867
2868 2010-05-09  Richard Guenther  <rguenther@suse.de>
2869
2870         PR middle-end/44043
2871         * ipa-inline.c (estimate_function_body_sizes): Return after
2872         disregarding inline limits.
2873
2874 2010-05-09  Richard Guenther  <rguenther@suse.de>
2875
2876         * gcc.c (store_arg): Revert last change.
2877
2878 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
2879
2880         PR middle-end/28685
2881         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
2882         (optimize_ops_list): Call it.
2883
2884 2010-05-08  Richard Guenther  <rguenther@suse.de>
2885
2886         PR tree-optimization/44030
2887         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
2888         NECESSARY flag if we propagate from a inserted expression.
2889
2890 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2891
2892         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
2893         domain types as equal if they are both PLACEHOLDER_EXPRs.
2894
2895 2010-05-08  Richard Guenther  <rguenther@suse.de>
2896
2897         * lto-wrapper.c (run_gcc): Remove linker output from
2898         command line for LTRANS invocation.
2899
2900 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
2901
2902         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2903         lto-macho as lto_binary_reader.
2904         * target.h (struct gcc_target): New hooks lto_start and lto_end.
2905         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
2906         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
2907         in lto_start and lto_end calls.
2908         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
2909         magic numbers.
2910         (scan_prog_file): Update is_elf_or_coff call.
2911         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
2912
2913         * collect2.c (main): Fix enum comparison.
2914
2915         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
2916         Add prototypes.
2917         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
2918         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
2919         and TARGET_ASM_LTO_END.
2920         * darwin.c: Include obstack.h and lto-streamer.h.
2921         (lto_section_names_offset, lto_section_names_obstack,
2922         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
2923         global variables.
2924         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
2925         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
2926         to a temporary file.
2927         (darwin_asm_lto_end): New function.  Restore asm_out_file.
2928         (darwin_asm_named_section): For LTO sections, replace the name with
2929         the offset of the section name in a string table, and build this
2930         table.
2931         (darwin_file_start): Initialize global vars for LTO support.
2932         (darwin_file_end): If output to asm_out_file was redirected, append it
2933         to the proper asm_out_file here.  Add the section names section.
2934
2935 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
2936
2937         * c-pragma.c (pending_weak_d, pending_weak): New.
2938         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
2939         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
2940         handle_pragma_weak): Update the uses of pending_weaks.
2941
2942 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2943
2944         PR documentation/44016
2945         * doc/standards.texi (Standards): Link to unversioned
2946         cxx0x_status.html page.
2947
2948 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
2949
2950         PR target/43708
2951         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
2952         in addition to TREE_USED, to avoid "set but unused" warnings.
2953
2954 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2955
2956         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
2957         (is_loop_prefetching_profitable): Do not insert prefetches
2958         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
2959         times the prefetch ahead distance.
2960
2961 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2962
2963         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
2964         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
2965         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
2966         the unroll_factor.
2967
2968 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2969
2970         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
2971         a diagnostic info when the insn-to-mem ratio is too small.
2972
2973 2010-05-07  Richard Guenther <rguenther@suse.de>
2974
2975         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
2976         the linker plugin.
2977         (store_arg): Queue temp_filename for deletion instead of
2978         the whole argument.
2979
2980 2010-05-07  Richard Guenther  <rguenther@suse.de>
2981
2982         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
2983         (run_gcc): Handle LTRANS phase invocation.
2984         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
2985
2986 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
2987
2988         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
2989         this is also meaningful on PARM_DECLs and RESULT_DECLs.
2990
2991 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2992
2993         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
2994
2995 2010-05-07  Richard Guenther  <rguenther@suse.de>
2996
2997         PR tree-optimization/44020
2998         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
2999         code when PRE is not yet initialized.
3000
3001 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3002
3003         * config/mips/dbxmdebug.h: Remove.
3004         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
3005
3006 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
3007
3008         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
3009         with null pointer and also warn about ordered comparison of zero with
3010         pointer if -Wextra.
3011
3012 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3013
3014         * graphite-blocking.c
3015         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
3016         * graphite-clast-to-gimple.c
3017         (clast_to_gcc_expression): Same.
3018         (precision_for_value): Same.
3019         (precision_for_interval): Same.
3020         (gcc_type_for_interval): Same.
3021         (graphite_create_new_guard): Same.
3022         (compute_bounds_for_level): Same.
3023         (graphite_create_new_loop_guard): Same.
3024         * graphite-interchange.c
3025         (build_linearized_memory_access): Same.
3026         (pdr_stride_in_loop): Same.
3027         (memory_strides_in_loop_1): Same.
3028         (memory_strides_in_loop): Same.
3029         (extend_scattering): Same.
3030         (psct_scattering_dim_for_loop_depth): Same.
3031         (pbb_number_of_iterations): Same.
3032         * graphite-poly.h
3033         (debug_iteration_domains): Same.
3034         * graphite-ppl.c
3035         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
3036         (ppl_set_inhomogeneous_gmp): Same.
3037         (ppl_strip_loop): Same.
3038         (ppl_lexico_compare_linear_expressions): Same.
3039         (ppl_read_polyhedron_matrix): Same.
3040         (ppl_max_for_le_pointset): Same.
3041         * graphite-ppl.h
3042         (ppl_read_polyhedron_matrix): Same.
3043         (tree_int_to_gmp): Same.
3044         (gmp_cst_to_tree): Same.
3045         (ppl_set_inhomogeneous): Same.
3046         (ppl_set_inhomogeneous_tree): Same.
3047         (ppl_set_coef): Same.
3048         (ppl_set_coef_tree): Same.
3049         * graphite-sese-to-poly.c
3050         (build_pbb_scattering_polyhedrons): Same.
3051         (build_scop_scattering): Same.
3052         (scan_tree_for_params_right_scev): Same.
3053         (scan_tree_for_params): Same.
3054         (find_params_in_bb): Same.
3055         (find_scop_parameters): Same.
3056         (add_upper_bounds_from_estimated_nit): Same.
3057         (build_loop_iteration_domains): Same.
3058         (add_condition_to_domain): Same.
3059         (pdr_add_memory_accesses): Same.
3060
3061 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3062
3063         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
3064         CLooG's value_* macros to their respective mpz_* counterparts.
3065         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
3066         (graphite_create_new_loop_guard): Same.
3067         * graphite-interchange.c (build_linearized_memory_access): Same.
3068         (pdr_stride_in_loop): Same.
3069         (memory_strides_in_loop_1): Same.
3070         (1st_interchange_profitable_p): Same.
3071         * graphite-poly.c (extend_scattering): Same.
3072         (psct_scattering_dim_for_loop_depth): Same.
3073         (pbb_number_of_iterations): Same.
3074         (pbb_number_of_iterations_at_time): Same.
3075         * graphite-poly.h (new_1st_loop): Same.
3076         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
3077         (oppose_constraint): Same.
3078         (insert_constraint_into_matrix): Same.
3079         (ppl_set_inhomogeneous_gmp): Same.
3080         (ppl_set_coef_gmp): Same.
3081         (ppl_strip_loop): Same.
3082         (ppl_lexico_compare_linear_expressions): Same.
3083         (ppl_max_for_le_pointset): Same.
3084         (ppl_min_for_le_pointset): Same.
3085         (ppl_build_realtion): Same.
3086         * graphite-ppl.h (gmp_cst_to_tree): Same.
3087         (ppl_set_inhomogeneous): Same.
3088         (ppl_set_inhomogeneous_tree): Same.
3089         (ppl_set_coef): Same.
3090         (ppl_set_coef_tree): Same.
3091         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
3092         (build_scop_scattering): Same.
3093         (add_value_to_dim): Same.
3094         (scan_tree_for_params_right_scev): Same.
3095         (scan_tree_for_params_int): Same.
3096         (scan_tree_for_params): Same.
3097         (find_params_in_bb): Same.
3098         (find_scop_parameters): Same.
3099         (add_upper_bounds_from_estimated_nit): Same.
3100         (build_loop_iteration_domains): Same.
3101         (create_linear_expr_from_tree): Same.
3102         (add_condition_to_domain): Same.
3103         (pdr_add_memory_accesses): Same.
3104
3105 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
3106             Jason Merrill  <jason@redhat.com>
3107
3108         * c-common.c (c_common_reswords): Add nullptr.
3109         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
3110         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
3111         (gen_type_die_with_usage): Likewise.
3112         * dbxout.c (dbxout_type): Likewise.
3113         * sdbout.c (plain_type_1): Likewise.
3114
3115 2010-05-06  Jason Merrill  <jason@redhat.com>
3116
3117         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
3118         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
3119         ret appropriately.
3120         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
3121
3122         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
3123         stripping WITH_SIZE_EXPR.
3124         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
3125         change.
3126
3127 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3128
3129         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
3130         list of obsolete configurations.
3131         Disabled check for obsolete configurations.
3132         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
3133         Removed support for previous versions.
3134         * config/mips/iris.h: Removed.
3135         * config/mips/iris5.h: Removed.
3136         * config/mips/iris6.h: Merged old iris.h contents.
3137         (TARGET_IRIX): Removed.
3138         (DRIVER_SELF_SPECS): Removed mabi=32.
3139         (IDENT_ASM_OP): Removed undef.
3140         (STARTFILE_SPEC): Removed mabi=32.
3141         (ENDFILE_SPEC): Likewise.
3142         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
3143         (MACHINE_TYPE): Update for IRIX 6.5.
3144         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
3145         TARGET_IRIX by TARGET_IRIX6.
3146         (mips_file_start): Likewise.
3147         (mips_output_external): Remove IRIX 5/6 O32 support.
3148         (mips_output_function_prologue): Likewise.
3149         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
3150         TARGET_IRIX6.
3151         (TARGET_CPU_CPP_BUILTINS): Likewise.
3152         (TARGET_IRIX): Removed.
3153         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
3154         (MULTILIB_DIRNAMES): Removed 32.
3155         (MULTILIB_OSDIRNAMES): Removed ../lib.
3156         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
3157         (Specific, mips-sgi-irix5): Document removal.
3158         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
3159         Remove references to older IRIX 6 releases and the O32 ABI.
3160
3161 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
3162
3163         PR bootstrap/43994
3164         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
3165         instead of DF_REF_REAL_REG.
3166
3167 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
3168
3169         PR target/43888
3170         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
3171         handling to still return true for x64 targets.
3172
3173 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3174
3175         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
3176
3177 2010-05-06  Jan Hubicka  <jh@suse.cz>
3178
3179         PR tree-optimization/43791
3180         * ipa-inline.c (update_caller_keys): Remove bogus
3181         disregard_inline_limits check.
3182
3183 2010-05-06  Michael Matz  <matz@suse.de>
3184
3185         PR tree-optimization/43984
3186         * tree-ssa-pre.c (inserted_phi_names): Remove.
3187         (inserted_exprs): Change to bitmap.
3188         (create_expression_by_pieces): Set bits, don't append to vector.
3189         (insert_into_preds_of_block): Don't handle inserted_phi_names.
3190         (eliminate): Don't look at inserted_phi_names, remove deleted
3191         insns from inserted_exprs.
3192         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
3193         (init_pre, fini_pre): Allocate and free bitmaps.
3194         (execute_pre): Insert insns on edges before elimination.
3195
3196 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3197
3198         * tree.c (initializer_zerop): Handle STRING_CST.
3199
3200 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3201
3202         PR 40989
3203         * doc/invoke.texi (Wimplicit): Document as C only.
3204         * opts.c (common_handle_option): Add argument kind.
3205         (handle_option): Rename as read_cmdline_option. Factor out code to...
3206         (handle_option): ... here. New.
3207         (handle_options): Rename as read_cmdline_options.
3208         (decode_options): Update call.
3209         (set_option): Use option index instead of option pointer. Classify
3210         diagnostics correctly.
3211         (enable_warning_as_error): Call handle_option.
3212         * opts.h (set_option): Update declaration.
3213         (handle_option): Declare.
3214         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
3215         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
3216         * c-opts.c (set_Wimplicit): Delete.
3217         (c_family_lang_mask): New static constant.
3218         (c_common_handle_option): Add argument kind. Use handle_option
3219         instead of set_Wimplicit.
3220         (c_common_post_options): warn_implicit and warn_implicit_int
3221         are disabled by default.
3222         * c-common.c (warn_implicit): Do not define here.
3223         * c-common.h (warn_implicit): Do not declare here.
3224         (c_common_handle_option): Update declaration.
3225         * lto-opts.c (lto_reissue_options): Update call to set_option.
3226
3227 2010-05-06  Richard Guenther  <rguenther@suse.de>
3228
3229         PR tree-optimization/43571
3230         * domwalk.c (walk_dominator_tree): Walk the dominator
3231         sons in more optimal order.
3232
3233 2010-05-06  Richard Guenther  <rguenther@suse.de>
3234
3235         PR tree-optimization/43934
3236         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
3237         (stmt_cost): Likewise.
3238         (extract_true_false_args_from_phi): New helper.
3239         (determine_max_movement): For PHI nodes verify we can hoist them
3240         and compute their cost.
3241         (determine_invariantness_stmt): Handle PHI nodes.
3242         (move_computations_stmt): Likewise.  Hoist PHI nodes in
3243         if-converted form using COND_EXPRs.
3244         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
3245         (tree_ssa_lim): Likewise.
3246         * tree-flow.h (tree_ssa_lim): Adjust prototype.
3247         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
3248
3249 2010-05-06  Richard Guenther  <rguenther@suse.de>
3250
3251         PR tree-optimization/43987
3252         * tree-ssa-structalias.c (could_have_pointers): For possibly
3253         address-taken variables force pointers to be recorded.
3254         (create_variable_info_for_1): Likewise.
3255         (push_fields_onto_fieldstack): Pass in wheter all fields
3256         must have pointers.
3257         (find_func_aliases): Query types instead of vars whether
3258         they contain pointers where appropriate.
3259
3260 2010-05-06  Jan Hubicka  <jh@suse.cz>
3261
3262         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
3263         (record_reference, mark_address, mark_load, mark_store): Record
3264         references.
3265         (record_references_in_initializer): Update call of record_references.
3266         (rebuild_cgraph_edges): Remove all references before rebuiding.
3267         * cgraph.c (cgraph_create_node): Clear ref list.
3268         (cgraph_remove_node): Remove references.
3269         (dump_cgraph_node): Dump references.
3270         (cgraph_clone_node): Clone references.
3271         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
3272         (struct cgraph_node, varpool_node): Add ref_lst.
3273         * ipa-ref.c: New file.
3274         * ipa-ref.h: New file.
3275         * ipa-ref-inline.h: New file.
3276         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
3277         (referenced_from_other_partition_p): New function.
3278         (lto_output_varpool_node): Take set arugment; call
3279         referenced_from_other_partition.
3280         (lto_output_ref): New.
3281         (add_references): New.
3282         (output_refs): New.
3283         (output_cgraph): Compute boundary based on references; output refs.
3284         (output_varpool): Accept cgraph_node_set argument.
3285         (input_ref): New.
3286         (input_refs): New.
3287         (input_cgraph): Call input_refs.
3288         * lto-section-in.c (lto_section_name): Add refs.
3289         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
3290         (ipa-ref.o): New file.
3291         * varpool.c (varpool_node): Clear ipa ref list.
3292         (varpool_remove_node): Remove references.
3293         (dump_varpool_node): Dump references.
3294         (varpool_assemble_decl): Only compile finalized ones.
3295         (varpool_extra_name_alias): Initialize ref list.
3296         * lto-streamer.c (lto-get_section_name): Add .refs section.
3297         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
3298         (referenced_from_other_partition_p): Declared.
3299
3300 2010-05-06  Ira Rosen  <irar@il.ibm.com>
3301
3302         PR tree-optimization/43901
3303         * tree-vect-stmts.c (vectorizable_call): Assert that vector
3304         type is not NULL if it's transformation phase, and return
3305         FALSE if it's analysis.
3306         (vectorizable_conversion, vectorizable_operation,
3307         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
3308
3309 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
3310
3311         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3312         Delete.
3313         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3314         New define.
3315         * config/mips/mips-protos.h
3316         (mips_small_register_classes_for_mode_p): Delete prototype.
3317
3318 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
3319
3320         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
3321         * config/arm/arm.c (multiple_operation_profitable_p,
3322         compute_offset_order): New static functions.
3323         (load_multiple_sequence, store_multiple_sequence): Use them.
3324         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
3325         memory offsets, not register numbers.
3326         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
3327
3328 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
3329
3330         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
3331         (get_pending_sizes, put_pending_size, put_pending_sizes):
3332         Update the uses of pending_sizes.
3333         * c-decl.c (store_parm_decls): Likewise.
3334         * c-tree.h (struct c_arg_info): Likewise.
3335         * tree.h: Update the prototype for get_pending_sizes and
3336         put_pending_sizes.
3337
3338 2010-05-05  Jason Merrill  <jason@redhat.com>
3339
3340         PR debug/43370
3341         * c-common.c (handle_aligned_attribute): Respect
3342         ATTR_FLAG_TYPE_IN_PLACE.
3343
3344         PR testsuite/43758
3345         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
3346         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3347         (TARGET_INITIALIZER): Use it.
3348         * c-common.c (attribute_takes_identifier_p): Call it.
3349         * c-common.h: Update prototype.
3350         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
3351         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3352
3353 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
3354
3355         PR debug/43950
3356         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
3357         DW_ID_down_case for Fortran compilation units.
3358
3359 2010-05-05  Jan Hubicka  <jh@suse.cz>
3360
3361         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
3362         handle aliases.
3363
3364 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
3365
3366         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
3367         a variable-sized RESULT_DECL.
3368
3369 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
3370
3371         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
3372
3373 2010-05-05  Jason Merrill  <jason@redhat.com>
3374
3375         PR c++/43787
3376         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
3377         returns GS_OK.
3378         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
3379
3380 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
3381             Jakub Jelinek  <jakub@redhat.com>
3382
3383         PR debug/43478
3384         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
3385         (dead_debug_init, dead_debug_finish): New functions.
3386         (dead_debug_add, dead_debug_insert_before): Likewise.
3387         (df_note_bb_compute): Initialize a dead_debug object, add dead
3388         debug uses to it, insert debug bind insns before death insns,
3389         reset debug insns that refer to pending uses at the end.
3390         * rtl.h (make_debug_expr_from_rtl): New prototype.
3391         * varasm.c (make_debug_expr_from_rtl): New function.
3392
3393 2010-05-05  Jan Hubicka  <jh@suse.cz>
3394
3395         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
3396         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
3397         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
3398         lto_varpool_encoder_deref, lto_varpool_encoder_size,
3399         lto_varpool_encoder_encode_initializer_p,
3400         lto_set_varpool_encoder_encode_initializer): New functions.
3401         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
3402         call output_varpool.
3403         (input_varpool_node): Do not always set analyzed.
3404         (input_cgraph_1): Return vector of cgraph nodes.
3405         (input_varpool_1): Return vector of varpools.
3406         (input_cgraph): Free the vectors.
3407         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
3408         output only initializers needed.
3409         (lto_output): Only call output_cgraph.
3410         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
3411         * lto-section-out.c (lto_new_out_decl_state): Initialize
3412         state->varpool_node_encoder.
3413         * lto-streamer.h (lto_varpool_encoder_d): New.
3414         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
3415         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
3416         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
3417         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
3418         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
3419         Declare.
3420         (output_varpool, input_varpool): Remove declarations.
3421
3422 2010-05-05  Jan Hubicka  <jh@suse.cz>
3423
3424         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
3425         with body can prevail.
3426
3427 2010-05-05  Jan Hubicka  <jh@suse.cz>
3428
3429         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
3430         size.
3431
3432 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3433
3434         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
3435
3436         * gengtype.h (erro_at_line): Constify pos argument.
3437
3438         * gengtype.c: Include hashtab.h.
3439         (enum gc_used): Document GC_MAYBE_POINTED_TO.
3440         (error_at_line): Constify pos argument.
3441         (do_typedef): Initialize p->opt field.
3442         (get_file_gtfilename): Fix comment typo.
3443         (struct walk_type_data): Constify line field.
3444         (get_output_file_for_structure): New function.
3445         (write_local_func_for_structure): Constify orig_s argument.
3446         Use get_output_file_for_structure.
3447         (write_func_for_structure): Use get_output_file_for_structure.
3448         (INDENT): New define.
3449         (dump_pair, dump_type, dump_type_list, dump_typekind)
3450         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
3451         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
3452         functions.
3453         (seen_types): New variable.
3454         (main): New variable do_dump.  Process "-d" command line option.
3455         Call dump_everything if dump requested.
3456
3457 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
3458
3459         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
3460         in a temporary instead of invoking the macro multiple times.
3461         (track_expr_p): Likewise.
3462
3463 2010-05-04  Neil Vachharajani <nvachhar@google.com>
3464
3465         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
3466         per new semantics.
3467         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
3468         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
3469         conditions for printing notes.
3470         * common.opt (-Wcoverage-mismatch): Allow negative, default to
3471         true, update documentation.
3472         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
3473
3474 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
3475
3476         PR c/43981
3477         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
3478         on dimen.
3479
3480 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3481
3482         PR target/43799
3483         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
3484         (*sse_prologue_save_insn1): Likewise.
3485         (SSE prologue save splitter): Likewise.
3486
3487 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
3488
3489         * tree.c (free_lang_data_in_one_sizepos): New inline function.
3490         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
3491         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
3492         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
3493         all decls.  Call it on DECL_FIELD_OFFSET of fields.
3494         (find_decls_types_r): Follow DECL_VALUE_EXPR.
3495         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
3496
3497 2010-05-04  Martin Jambor  <mjambor@suse.cz>
3498
3499         * tree-sra.c (build_access_from_expr_1): The first parameter type
3500         changed to simple tree.
3501         (build_access_from_expr): Likewise, gsi parameter was eliminated.
3502         (scan_assign_result): Renamed to assignment_mod_result, enum elements
3503         renamed as well.
3504         (build_accesses_from_assign): Removed all parameters except for a
3505         simple gimple statement.  Now returns a simple bool.
3506         (scan_function): All non-analysis parts moved to separate functions
3507         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
3508         parameters and updated both callers.
3509         (sra_modify_expr): Removed parameter data.
3510         (sra_modify_function_body): New function.
3511         (perform_intra_sra): Call sra_modify_function_body to modify the
3512         function body.
3513         (replace_removed_params_ssa_names): Parameter data changed into
3514         adjustments vector.
3515         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
3516         changed the parameter dont_convert to convert with the opposite
3517         meaning.
3518         (sra_ipa_modify_assign): Parameter data changed into adjustments
3519         vector, return value changed to bool.
3520         (ipa_sra_modify_function_body): New function.
3521         (sra_ipa_reset_debug_stmts): Updated a comment.
3522         (modify_function): Use ipa_sra_modify_function_body to modify function
3523         body.
3524
3525 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3526
3527         PR middle-end/43671
3528         * alias.c (true_dependence): Handle the same VALUE in x and mem.
3529         (canon_true_dependence): Likewise.
3530         (write_dependence_p): Likewise.
3531
3532 2010-05-04  Jan Hubicka  <jh@suse.cz>
3533
3534         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
3535         * cgraphbuild.c: Include ipa-utils.h
3536         (record_reference_ctx): New struct.
3537         (record_reference): Simplify to work on initializers; not statements.
3538         (mark_address, mark_load, mark_store): New.
3539         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3540         walk PHI nodes too.
3541         (record_references_in_initializer): Update use of record_reference.
3542         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3543         walk PHI nodes too.
3544
3545 2010-05-04  Jan Hubicka  <jh@suse.cz>
3546
3547         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
3548         node will be removed anyway.
3549         (lto_varpool_replace_node): Allow also unanalyzed nodes;
3550         relink aliases of node into prevailing node.
3551         * varpool.c (varpool_remove_node): Remove aliases properly;
3552         when removing node, remove all its aliases too; remove DECL_INITIAL
3553         of removed node; ggc_free the varpool node.
3554
3555 2010-05-04  Richard Guenther  <rguenther@suse.de>
3556
3557         PR tree-optimization/43879
3558         * tree-ssa-structalias.c (alias_get_name): Use
3559         DECL_ASSEMBLER_NAME if available.
3560         (create_function_info_for): Return the varinfo node.
3561         (ipa_pta_execute): Associate same-body aliases and extra names
3562         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
3563
3564 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
3565
3566         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
3567
3568 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
3569
3570         PR bootstrap/43964
3571         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
3572         only if HONOR_REG_ALLOC_ORDER is not defined.
3573
3574 2010-05-04  Richard Guenther  <rguenther@suse.de>
3575
3576         PR tree-optimization/43949
3577         * tree-vrp.c (extract_range_from_binary_expr): Only handle
3578         TRUNC_MOD_EXPR.
3579
3580 2010-04-26  Jason Merrill  <jason@redhat.com>
3581
3582         * c.opt (-fstrict-enums): New.
3583         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
3584
3585 2010-05-03  David Ung <davidu@mips.com>
3586             James E. Wilson  <wilson@codesourcery.com>
3587
3588         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
3589         emit the trap instruction before the divide for TUNE_74K.
3590
3591 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
3592
3593         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
3594         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
3595         based on the above, for new target hook.
3596
3597         * hooks.c (hook_bool_mode_true): New generic hook.
3598         * hooks.h (hook_bool_mode_true): Add prototype.
3599
3600         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
3601         target hook.
3602         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
3603         target hook, set to hook_bool_mode_false.
3604         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
3605         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
3606         with targetm.small_register_classes_for_mode_p.
3607         (find_reusable_reload): Likewise.
3608         (combine_reloads): Likewise.
3609         * reload1.c (reload_as_needed): Likewise.
3610         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
3611         * ifcvt.c (noce_process_if_block, check_cond_move_block,
3612         dead_or_predicable): Likewise.
3613         * regmove.c (optimize_reg_copy_1): Likewise.
3614         * calls.c (prepare_call_address): Likewise.
3615         (precompute_register_parameters): Likewise.
3616
3617         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
3618         hook definition.
3619         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
3620         implementation of the hook that considers all register classes
3621         small except for SH64.
3622         (sh_override_options): Use the new hook.
3623         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
3624         Add prototype.
3625
3626         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
3627         hook definition.
3628         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
3629         implementation of the hook that considers all register classes
3630         small for THUMB1.
3631         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
3632         Add prototype.
3633
3634         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
3635         hook definition.
3636         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
3637         implementation of the hook that considers all register classes
3638         small for MIPS16.
3639         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
3640         Add prototype.
3641
3642         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
3643         hook definition.
3644         * config/m32c/m32c.h: Likewise.
3645         * config/pdp11/pdp11.h: Likewise.
3646         * config/avr/avr.h: Likewise.
3647         * config/xtensa/xtensa.h: Likewise.
3648         * config/m68hc11/m68hc11.h: Likewise.
3649         * config/mn10300/mn10300.h: Likewise.
3650         * config/mcore/mcore.h: Likewise.
3651         * config/h8300/h8300.h: Likewise.
3652         * config/bfin/bfin.h: Likewise.
3653
3654         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
3655         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
3656
3657 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
3658
3659         * double-int.h (tree_to_double_int): Remove macro.
3660         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
3661         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
3662         (tree_to_double_int): New function.
3663         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
3664         Move ...
3665         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
3666
3667 2010-05-03  Richard Guenther  <rguenther@suse.de>
3668
3669         PR tree-optimization/43971
3670         * tree-ssa-structalias.c (get_constraint_for_1): Fix
3671         constraints in the !flag_delete_null_pointer_checks case.
3672
3673 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
3674
3675         PR debug/43972
3676         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
3677         result mode matches original rtl mode.
3678
3679 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
3680
3681         PR target/43888
3682         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
3683
3684 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3685
3686         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
3687         when processing flag options.
3688
3689 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3690
3691         * gcov-iov.c (main): Change format string placeholder
3692         from %#08x to 0x%08x.
3693         * genchecksum.c (dosum): Change format string placeholder
3694         from %#02x to 0x%02x.
3695
3696 2010-05-02  Richard Guenther  <rguenther@suse.de>
3697
3698         PR tree-optimization/43879
3699         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
3700
3701 2010-05-02  Bruno Haible  <bruno@clisp.org>
3702
3703         * doc/extend.texi (Function Attributes): Fix a typo.
3704
3705 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3706
3707         Revert:
3708         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
3709         placeholder from 0x%x to %#x.
3710         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
3711         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
3712         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
3713         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
3714         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
3715         * config/i386/i386.c (ix86_target_string): Ditto.
3716         * config/i386/i386.c (output_pic_addr_const): Ditto.
3717         (print_operand): Ditto.
3718
3719 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3720
3721         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
3722         placeholder from 0x%x to %#x.
3723         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
3724         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
3725         (ASM_OUTPUT_DEBUG_DATA): Ditto.
3726         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
3727         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
3728         * optc-gen.awk: Ditto.
3729         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
3730         (HOST_WIDE_INT_PRINT_HEX): Ditto.
3731         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
3732         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
3733
3734 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
3735
3736         * target.h (struct calls): Add function_value_regno_p field.
3737         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
3738         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
3739         * targhooks.c (default_function_value_regno_p): New function.
3740         * targhooks.h (default_function_value_regno_p): Declare function.
3741         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
3742         * builtins.c. (apply_result_size): (Ditto.).
3743         * combine.c. (likely_spilled_retval_p): (Ditto.).
3744         * mode-switching.c. Include 'target.h'.
3745         (create_pre_exit): Use function_value_regno_p hook.
3746         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
3747         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
3748         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
3749
3750         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
3751         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
3752         (ix86_function_value_regno_p): Declare as static, change argument
3753         type to const unsigned int.
3754         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
3755
3756 2010-05-01  Richard Guenther  <rguenther@suse.de>
3757
3758         PR tree-optimization/43949
3759         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
3760         types.
3761         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
3762
3763 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
3764
3765         * rtl.h (CONST_DOUBLE_P): Define.
3766         (rtx_to_double_int): Declare.
3767         * emit-rtl.c (rtx_to_double_int): New function.
3768         * dwarf2out.c (insert_double): New function.
3769         (loc_descriptor, add_const_value_attribute): Clean up, use
3770         rtx_to_double_int and insert_double functions.
3771
3772 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
3773
3774         * doc/extend.texi (Inline): Add missing return keyword to examples.
3775         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
3776         "command-line".
3777
3778 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
3779
3780         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
3781         the variable part of the offset as well.  Use highest_pow2_factor for
3782         all alignment checks.
3783
3784 2010-04-30  Richard Guenther  <rguenther@suse.de>
3785
3786         PR tree-optimization/43879
3787         * tree-ssa-structalias.c (type_could_have_pointers): Functions
3788         can have pointers.
3789
3790 2010-04-30  Jan Hubicka  <jh@suse.cz>
3791
3792         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
3793         varpool.
3794         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
3795
3796 2010-04-30  Jan Hubicka  <jh@suse.cz>
3797
3798         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
3799         New.
3800         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
3801         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
3802         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
3803         cgraph_node_set_needs_ltrans_p): Remove.
3804
3805 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
3806
3807         * sdbout.c: Include vec.h, do not include varray.h.
3808         (deferred_global_decls, sdbout_global_decl,
3809         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
3810         * toplev.c: Do not include varray.h.
3811         (dump_memory_report): Do not dump VARRAY statistics.
3812         * gengtype.c (open_base_file): Ignore varray.h.
3813         * Makefile.in: Update for abovementioned changes.
3814         Remove all traces of varray.c and varray.h.
3815         * varray.c: Remove file.
3816         * varray.h: Remove file.
3817
3818 2010-04-30  Jan Hubicka  <jh@suse.cz>
3819
3820         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
3821         references.
3822
3823 2010-04-30  Jan Hubicka  <jh@suse.cz>
3824
3825         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
3826         needed.
3827
3828 2010-04-30  Richard Guenther  <rguenther@suse.de>
3829
3830         * tree-ssa-structalias.c (get_constraint_for_1): Generate
3831         constraints for CONSTRUCTOR.
3832
3833 2010-04-30  Richard Guenther  <rguenther@suse.de>
3834
3835         PR lto/43946
3836         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
3837         first after all lowering passes.
3838
3839 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
3840
3841         * toplev.c: Include varray.h for statistics dumping.
3842         * tree.h: Do not declare varray_head_tag.
3843         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
3844         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
3845         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
3846         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
3847         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
3848         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
3849         c-common.c, c-common.h, reg-stack.c, basic-block.h,
3850         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
3851         include varray.h.
3852         * Makefile.in: Update for abovementioned changes.
3853
3854 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
3855
3856         PR debug/43942
3857         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
3858
3859 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
3860
3861         * config/picochip/picochip.c (picochip_legitimize_address): Define.
3862         Use this function to do machine-specific conversion.
3863         (picochip_legitimize_reload_address): Likewise.
3864         (picochip_legitimate_address_p): Check valid base register only if
3865         strict.
3866         (picochip_check_conditional_copy): Check for modw only if opnd is
3867         register.
3868         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
3869         to call the function in c.
3870         * config/picochip/picochip-protos.h
3871         (picochip_legitimize_reload_address): Define.
3872         * config/picochip/picochip.md (supported_compare1): Define.
3873
3874 2010-04-30  Jan Hubicka  <jh@suse.cz>
3875
3876         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
3877         (cgraph_global_info): Remove inlined.
3878         (LTO_cgraph_tag_names): Remove.
3879         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
3880         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
3881         simplify cgraph tags and document.
3882         (lto_output_node): Use only LTO_cgraph_unavail_node and
3883         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
3884         for_functions_valid, global info, process and output flags.
3885         (input_overwrite_node): Initialize estimated stack size and
3886         estimated growth.  Do not read flags we no longer store.
3887         (input_node): Likewise do not read info no longer stored.
3888         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
3889         flag.
3890
3891 2010-04-30  Richard Guenther  <rguenther@suse.de>
3892
3893         PR tree-optimization/43879
3894         * tree-ssa-structalias.c (get_constraint_for_1): Properly
3895         handle non-zero initializers.
3896
3897 2010-04-30  Richard Guenther  <rguenther@suse.de>
3898
3899         * builtins.c (fold_builtin_1): Delete free (0).
3900
3901 2010-04-29  Jan Hubicka  <jh@suse.cz>
3902
3903         * gengtype.c (open_base_files): Add lto-streamer.h
3904         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
3905         (pass_ipa_cp): GGC collect.
3906         * toplev. (compile_file): Do not output symbols.
3907         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
3908         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
3909         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
3910         * lto-section-in.c: Include ggc.h
3911         (lto_new_in_decl_state): Alloc in GGC.
3912         (lto_delete_in_decl_state): Likewise.
3913         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
3914         Collect.
3915
3916 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
3917
3918         PR target/42895
3919         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
3920         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
3921         (HONOR_REG_ALLOC_ORDER): Describe new macro.
3922         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
3923         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
3924         account only if HONOR_REG_ALLOC_ORDER is not defined.
3925         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
3926         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
3927
3928 2010-04-29  Jon Grant  <04@jguk.org>
3929
3930         * collect2.c (vflag): Change type from int to bool.
3931         (debug): Likewise.
3932         (helpflag): New global bool.
3933         (main): Set vflag and debug with boolean, not integer truth values.
3934         Accept new "--help" option and output usage text if found.
3935         * collect2.h (vflag): Update prototype.
3936         (debug): Likewise.
3937
3938 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3939
3940         PR bootstrap/43936
3941         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
3942
3943 2010-04-29  Richard Guenther  <rguenther@suse.de>
3944
3945         PR bootstrap/43935
3946         * plugin.h (invoke_plugin_callbacks): Annotate arguments
3947         with ATTRIBUTE_UNUSED.
3948
3949 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3950
3951         PR target/43921
3952         * config/i386/i386.c (get_some_local_dynamic_name): Replace
3953         INSN_P with NONDEBUG_INSN_P.
3954         (distance_non_agu_define): Likewise.
3955         (distance_agu_use): Likewise.
3956
3957 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
3958
3959         From Dominique d'Humieres <dominiq@lps.ens.fr>
3960         PR bootstrap/43858
3961         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
3962         test_set.
3963
3964 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
3965
3966         * plugin.h (invoke_plugin_callbacks): New inline function.
3967         * plugin.c (flag_plugin_added): New global flag.
3968         (add_new_plugin): Initialize above flag.
3969         (invoke_plugin_callbacks): Rename to ...
3970         (invoke_plugin_callbacks_full): ... this.
3971
3972 2010-04-28  Jan Hubicka  <jh@suse.cz>
3973
3974         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
3975         (lto_varpool_replace_node): New.
3976         (lto_symtab_resolve_symbols): Resolve varpool nodes.
3977         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
3978         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
3979         * cgraph.h (varpool_node_ptr): New type.
3980         (varpool_node_ptr): New vector.
3981         (varpool_node_set_def): New structure.
3982         (varpool_node_set): New type.
3983         (varpool_node_set): New vector.
3984         (varpool_node_set_element_def): New structure.
3985         (varpool_node_set_element, const_varpool_node_set_element): New types.
3986         (varpool_node_set_iterator): New type.
3987         (varpool_node): Add prev pointers, add used_from_other_partition,
3988         in_other_partition.
3989         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
3990         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
3991         varpool_get_node, varpool_remove_node): Declare.
3992         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
3993         varpool_node_set_size): New inlines.
3994         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
3995         * tree-pass.h (varpool_node_set_def): Forward declare.
3996         (ipa_opt_pass_d): Summary writting takes vnode sets too.
3997         (ipa_write_optimization_summaries): Update prototype.
3998         * ipa-cp.c (ipcp_write_summary): Update.
3999         * ipa-reference.c (ipa_reference_write_summary): Update.
4000         * lto-cgraph.c (lto_output_varpool_node): New static function.
4001         (output_varpool): New function.
4002         (input_varpool_node): New static function.
4003         (input_varpool_1): New function.
4004         (input_cgraph): Input varpool.
4005         * ipa-pure-const.c (pure_const_write_summary): Update.
4006         * lto-streamer-out.c (lto_output): Update, output varpool too.
4007         (write_global_stream): Kill WPA hack.
4008         (produce_asm_for_decls): Update.
4009         (output_alias_pair_p): Handle variables.
4010         (output_unreferenced_globals): Output only needed partition of varpool.
4011         * ipa-inline.c (inline_write_summary): Update.
4012         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
4013         cgraph.
4014         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
4015         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
4016         varpool_node_set_new, varpool_node_set_add,
4017         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
4018         debug_varpool_node_set): New functions.
4019         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
4020         (execute_one_pass): Process new decls too.
4021         (ipa_write_summaries_2): Pass around vsets.
4022         (ipa_write_summaries_1): Likewise.
4023         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
4024         to add.
4025         (ipa_write_optimization_summaries_1): Pass around vsets.
4026         (ipa_write_optimization_summaries): Likewise.
4027         * varpool.c (varpool_get_node): New.
4028         (varpool_node): Update doubly linked lists.
4029         (varpool_remove_node): New.
4030         (dump_varpool_node): More dumping.
4031         (varpool_enqueue_needed_node): Update doubly linked lists.
4032         (decide_is_variable_needed): Kill ltrans hack.
4033         (varpool_finalize_decl): Kill lto hack.
4034         (varpool_assemble_decl): Skip decls in other partitions.
4035         (varpool_assemble_pending_decls): Update doubly linkes lists.
4036         (varpool_empty_needed_queue): Likewise.
4037         (varpool_extra_name_alias): Likewise.
4038         * lto-streamer.c (lto_get_section_name): Add vars section.
4039         * lto-streamer.h (lto_section_type): Update.
4040         (output_varpool, input_varpool): Declare.
4041
4042 2010-04-28  Mike Stump  <mikestump@comcast.net>
4043
4044         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
4045
4046 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4047
4048         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
4049         record or union type with RECORD_OR_UNION_TYPE_P predicate.
4050         (lto_input_ts_type_tree_pointers): Likewise.
4051         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
4052         (lto_output_ts_type_tree_pointers): Likewise.
4053
4054 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4055
4056         Uniquization of constants at the Tree level
4057         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
4058         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
4059         bit to the end.
4060         (tree_output_constant_def): Declare.
4061         * gimplify.c (gimplify_init_constructor): When using block copy, first
4062         uniquize the constant constructor on the RHS.
4063         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
4064         DECL_IN_CONSTANT_POOL flag.
4065         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
4066         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
4067         constant pool.
4068         (assemble_variable): Deal with symbols belonging to the tree constant
4069         pool.
4070         (get_constant_section): Add ALIGN parameter and simplify.
4071         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
4072         (assemble_constant_contents): Use the expression of the VAR_DECL.
4073         (output_constant_def_contents): Use the alignment of the VAR_DECL.
4074         (tree_output_constant_def): New global function.
4075         (mark_constant): Use the expression of the VAR_DECL.
4076         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
4077         its expression.
4078         (output_object_block): Likewise and assemble the expression.
4079
4080 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4081
4082         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
4083         hash_tree, eq_tree): New tree hash table.
4084         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
4085         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
4086         lto_orig_address_remove): Reimplement.
4087
4088 2010-04-28  Xinliang David Li  <davidxl@google.com>
4089
4090         PR c/42643
4091         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
4092         (compute_uninit_opnds_pos): New function.
4093         (is_non_loop_exit_postdominating): New function.
4094         (compute_control_dep_chain): New function.
4095         (find_pdom): New function.
4096         (convert_control_dep_chain_into_preds): New function.
4097         (find_predicates): New function.
4098         (find_control_equiv_block): New function.
4099         (collect_phi_def_edges): New function.
4100         (find_def_preds): New function.
4101         (find_dom): New function.
4102         (dump_predicates): New function.
4103         (get_cmp_code): New function.
4104         (is_value_included_in): New function.
4105         (find_matching_predicate_in_rest_chains): New function.
4106         (use_pred_not_overlap_with_undef_path_pred): New function.
4107         (is_use_properly_guarded): New function.
4108         (normalize_cond_1): New function.
4109         (is_and_or_or): New function.
4110         (normalize_cond): New function.
4111         (is_gcond_subset_of): New function.
4112         (is_subset_of_any): New function.
4113         (is_or_set_subset_of): New function.
4114         (is_and_set_subset_of): New function.
4115         (is_norm_cond_subset_of): New function.
4116         (is_pred_expr_subset_of): New function.
4117         (is_pred_chain_subset_of): New function.
4118         (is_included_in): New function.
4119         (is_superset_of): New function.
4120         (find_uninit_use): New function.
4121         (warn_uninitialized_phi): New function.
4122         (compute_possibly_undefined_names): New function.
4123         (ssa_undefined_value_p): New function.
4124         (execute_late_warn_uninitialized): New function.
4125         * tree-ssa.c (ssa_undefined_value_p): Removed.
4126         (warn_uninit): Changed to extern.
4127         (warn_uninitialized_phi): Removed.
4128         (warn_uninitialized_vars): Changed to extern.
4129         (execute_late_warn_uninitialized): Removed
4130         * tree-flow.h: Add new prototypes.
4131         * timevar.def: Add new time variable.
4132         * Makefile.in: Add new build file.
4133
4134 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
4135
4136         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
4137         type if available.
4138
4139 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4140
4141         PR target/22224
4142         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
4143
4144 2010-04-28  Martin Jambor  <mjambor@suse.cz>
4145
4146         * cgraph.h (struct cgraph_node): New field indirect_calls.
4147         (struct cgraph_indirect_call_info): New type.
4148         (struct cgraph_edge): Removed field indirect_call. New fields
4149         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
4150         (cgraph_create_indirect_edge): Declare.
4151         (cgraph_make_edge_direct): Likewise.
4152         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
4153         * ipa-prop.h (struct ipa_param_call_note): Removed.
4154         (struct ipa_node_params): Removed field param_calls.
4155         (ipa_create_all_structures_for_iinln): Declare.
4156         * cgraph.c: Described indirect edges and uids in initial comment.
4157         (cgraph_add_edge_to_call_site_hash): New function.
4158         (cgraph_edge): Search also among the indirect edges, use
4159         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
4160         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
4161         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
4162         site hash.
4163         (initialize_inline_failed): Assign a reason to indirect edges.
4164         (cgraph_create_edge_1): New function.
4165         (cgraph_create_edge): Moved some functionality to
4166         cgraph_create_edge_1.
4167         (cgraph_create_indirect_edge): New function.
4168         (cgraph_edge_remove_callee): Add an assert checking for
4169         non-indirectness.
4170         (cgraph_edge_remove_caller): Special-case indirect edges.
4171         (cgraph_remove_edge): Likewise.
4172         (cgraph_set_edge_callee): New function.
4173         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
4174         (cgraph_make_edge_direct): New function.
4175         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
4176         the declaration of the call statement matches.
4177         (cgraph_node_remove_callees): Special-case indirect edges.
4178         (cgraph_clone_edge): Likewise.
4179         (cgraph_clone_node): Clone also the indirect edges.
4180         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
4181         indirect_call, dump count of indirect_calls edges.
4182         * ipa-prop.c (iinlining_processed_edges): New variable.
4183         (ipa_note_param_call): Create indirect edges instead of
4184         creating notes.  New parameter node.
4185         (ipa_analyze_call_uses): New parameter node, pass it on to
4186         ipa_note_param_call.
4187         (ipa_analyze_stmt_uses): Likewise.
4188         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
4189         (print_edge_addition_message): Work on edges rather than on notes.
4190         (update_call_notes_after_inlining): Likewise, renamed to
4191         update_indirect_edges_after_inlining.
4192         (ipa_create_all_structures_for_iinln): New function.
4193         (ipa_free_node_params_substructures): Do not free notes.
4194         (ipa_edge_duplication_hook): Propagate bits within
4195         iinlining_processed_edges bitmap.
4196         (ipa_node_duplication_hook): Do not duplicate notes.
4197         (free_all_ipa_structures_after_ipa_cp): Renamed to
4198         ipa_free_all_structures_after_ipa_cp.
4199         (free_all_ipa_structures_after_iinln): Renamed to
4200         ipa_free_all_structures_after_iinln.
4201         (ipa_write_param_call_note): Removed.
4202         (ipa_read_param_call_note): Removed.
4203         (ipa_write_indirect_edge_info): New function.
4204         (ipa_read_indirect_edge_info): Likewise.
4205         (ipa_write_node_info): Do not stream notes, do stream information
4206         in indirect edges.
4207         (ipa_read_node_info): Likewise.
4208         (lto_ipa_fixup_call_notes): Removed.
4209         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
4210         * ipa-inline.c (pass_ipa_inline): Likewise.
4211         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
4212         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
4213         * tree-inline.c (copy_bb): Removed an unnecessary double check for
4214         is_gimple_call.
4215         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
4216         edges.
4217         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
4218         (output_cgraph): Stream also indirect edges.
4219         (lto_output_edge): Added capability to stream indirect edges.
4220         (input_edge): Likewise.
4221         (input_cgraph_1): Likewise.
4222         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
4223         of indirect edges.
4224
4225 2010-04-28  Richard Guenther  <rguenther@suse.de>
4226
4227         PR tree-optimization/43879
4228         PR tree-optimization/43909
4229         * tree-ssa-structalias.c (struct variable_info): Add
4230         only_restrict_pointers flag.
4231         (new_var_info): Initialize it.  Increment stats.total_vars here.
4232         (create_function_info_for): Do not increment stats.total_vars here.
4233         (get_function_part_constraint): Fix build with C++.
4234         (insert_into_field_list): Remove.
4235         (push_fields_onto_fieldstack): Properly merge fields.
4236         (create_variable_info_for): Split and simplify.
4237         (create_variable_info_for_1): New piece.
4238         (intra_create_variable_infos): Properly make restrict constraints
4239         from parameters.
4240
4241 2010-04-28  Richard Guenther  <rguenther@suse.de>
4242
4243         PR c++/43880
4244         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
4245
4246 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4247             Jan Hubicka <hubicka@ucw.cz>
4248
4249         * doc/invoke.texi (-Wsuggest-attribute=const,
4250         -Wsuggest-attribute=pure): Document.
4251         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
4252         (function_always_visible_to_compiler_p,
4253         suggest_attribute, warn_function_pure, warn_function_const):
4254         New functions.
4255         (check_call): Improve debug info.
4256         (analyze_function): Do not check availability.
4257         (add_new_function): Check availability.
4258         (propagate): Output warnings.
4259         (skip_function_for_local_pure_const): New function.
4260         (local_pure_const): Use it; output warnings.
4261         * common.opt (Wsuggest-attribute=const,
4262         Wsuggest-attribute=pure): New.
4263
4264 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
4265
4266         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
4267         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
4268         or DW_CFA_def_cfa_offset{,_sf}.
4269
4270 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
4271
4272         * tree.h: Fix truncated long macros.
4273
4274 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
4275
4276         * collect2.c (TARGET_64BIT): Redefine to target's default.
4277         * tlink.c: Likewise.
4278         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
4279         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
4280         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
4281         for underscoring __USER_LABEL_PREFIX__.
4282         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
4283         (SUB_LINK_ENTRY32): New.
4284         (SUB_LINK_ENTRY64): New.
4285         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
4286         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
4287         (SUB_LINK_ENTRY64): New.
4288         (SUB_LINK_ENTRY): New.
4289         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
4290         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
4291         x64 target is choosen.
4292         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
4293         * configure: Regenerated.
4294         * configure.ac (leading-mingw64-underscores): Option added.
4295
4296 2010-04-27  Jan Hubicka  <jh@suse.cz>
4297
4298         * doc/invoke.texi (-fipa-profile): Document.
4299         * opts.c (decode_options): Enable ipa-profile at -O1.
4300         * timevar.def (TV_IPA_PROFILE): Define.
4301         * common.opt (fipa-profile): Add.
4302         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
4303         flag for clones.
4304         (cgraph_propagate_frequency): Handle only local ones.
4305         * tree-pass.h (pass_ipa_profile): Declare.
4306         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
4307         (pass_ipa_profile): Use TV_IPA_PROFILE.
4308         * ipa.c (ipa_profile): New function.
4309         (gate_ipa_profile): Likewise.
4310         (pass_ipa_profile): New global variable.
4311         * passes.c (pass_ipa_profile): New.
4312
4313 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
4314
4315         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
4316
4317 2010-04-27  Martin Jambor  <mjambor@suse.cz>
4318
4319         PR middle-end/43812
4320         * ipa.c (dissolve_same_comdat_group_list): New function.
4321         (function_and_variable_visibility): Call
4322         dissolve_same_comdat_group_list when comdat group contains external or
4323         newly local nodes.
4324         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
4325         lists are circular and that they contain only DECL_ONE_ONLY nodes.
4326
4327 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
4328
4329         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
4330         (const_hash_1) <VECTOR_CST>: New case.
4331         (compare_constant) <VECTOR_CST>: Likewise.
4332         <ADDR_EXPR>: Deal with LABEL_REFs.
4333         (copy_constant) <VECTOR_CST>: New case.
4334
4335 2010-04-27  Jan Hubicka  <jh@suse.cz>
4336
4337         * cgraph.c (cgraph_propagate_frequency): New function.
4338         * cgraph.h (cgraph_propagate_frequency): Declare.
4339         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
4340         cgraph_propagate_frequency.
4341
4342 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
4343
4344         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
4345
4346 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
4347
4348         PR target/40657
4349         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
4350         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
4351         here to determine which regs to push and how much stack to reserve.
4352
4353 2010-04-27  Jie Zhang  <jie@codesourcery.com>
4354
4355         * doc/gimple.texi (gimple_statement_with_ops): Remove
4356         addresses_taken field.
4357         (gimple_statement_with_memory_ops): Likewise.
4358
4359 2010-04-27  Jan Hubicka  <jh@suse.cz>
4360
4361         * tree-inline.c (eni_inlining_weights): Remove.
4362         (estimate_num_insns): Special case more builtins.
4363
4364 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
4365
4366         PR c/32207
4367         * c-typeck.c (build_binary_op): Move forward check for comparison
4368         pointer with null pointer constant and adjust the diagnostic message.
4369
4370 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
4371
4372         PR lto/42776
4373         * configure.ac (gcc_cv_as_section_has_align): Set if installed
4374         binutils supports extended .section directive needed by LTO, or
4375         warn if older binutils found.
4376         (LTO_BINARY_READER): New AC_SUBST'd variable.
4377         (LTO_USE_LIBELF): Likewise.
4378         * gcc/config.gcc (lto_binary_reader): New target-specific configure
4379         variable.
4380         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
4381         (LTO_USE_LIBELF): Likewise.
4382         * configure: Regenerate.
4383
4384         * collect2.c (is_elf): Rename from this ...
4385         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
4386          object files in addition to ELF-formatted ones.
4387         (scan_prog_file): Caller updated.  Also allow for LTO info marker
4388         symbol to be prefixed or not by an extra underscore.
4389
4390         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
4391         * config/i386/winnt.c: Also #include lto-streamer.h
4392         (i386_pe_asm_named_section): Specify 1-byte section alignment for
4393         LTO named sections.
4394         (i386_pe_asm_output_aligned_decl_common): Add comment.
4395         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
4396
4397 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
4398
4399         PR target/43889
4400         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
4401         Add missing earlyclobber for second alternative.
4402
4403 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
4404
4405         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
4406         bits for artificial defs at the top of the block.
4407         * fwprop.c (single_def_use_enter_block): Don't call it.
4408
4409 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
4410
4411         PR 43715
4412         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
4413         instead of "$gcc_cv_objdump -T".
4414         Use "-undefined dynamic_lookup" on darwin.
4415         * gcc/configure: Regenerate.
4416
4417 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
4418
4419         PR c/43893
4420         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
4421
4422 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
4423
4424         * c-parser.c (struct c_token): Move location field up.
4425         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
4426         (struct c_declspecs): Convert typespec_word, storage_class, and
4427         default_int_p into bitfields.
4428         (struct c_declarator): Move loc field up.
4429
4430 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
4431
4432         * cfgloop.h (struct loop): Move can_be_parallel field up.
4433         * ipa-prop.h (struct ip_node_params): Move bitfields up.
4434         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
4435         down.
4436         (struct iv_cand): Convert pos field into a bitfield.
4437         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
4438         field up.
4439         (struct _stmt_vec_info): Shuffle fields for better packing.
4440
4441 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
4442
4443         * varasm.c (IN_NAMED_SECTION): Remove guard.
4444         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
4445         (IN_NAMED_SECTION_P): ...this.
4446         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
4447         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
4448
4449 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
4450
4451         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
4452         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
4453         of shadowing it.  Fix comments.
4454
4455 2010-04-26  Jan Hubicka  <jh@suse.cz>
4456
4457         * cgraph.c (cgraph_create_node): Set node frequency to normal.
4458         (cgraph_clone_node): Copy function frequency.
4459         * cgraph.h (node_frequency): New enum
4460         (struct cgraph_node): Add.
4461         * final.c (rest_of_clean_state): Update.
4462         * lto-cgraph.c (lto_output_node): Output node frequency.
4463         (input_overwrite_node): Input node frequency.
4464         * tre-ssa-loop-ivopts (computation_cost): Update.
4465         * lto-streamer-out.c (output_function): Do not output function
4466         frequency.
4467         * predict.c (maybe_hot_frequency_p): Update and handle functions
4468         executed once.
4469         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
4470         attribute lookup.
4471         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
4472         (compute_function_frequency): Set noreturn functions to be executed
4473         once.
4474         (choose_function_section): Update.
4475         * lto-streamer-in.c (input_function): Do not input function frequency.
4476         * function.c (allocate_struct_function): Do not initialize function
4477         frequency.
4478         * function.h (function_frequency): Remove.
4479         (struct function): Remove function frequency.
4480         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
4481         (try_update): Update.
4482         * tree-inline.c (initialize_cfun): Do not update function frequency.
4483         * passes.c (pass_init_dump_file): Update.
4484         * i386.c (ix86_compute_frame_layout): Update.
4485         (ix86_pad_returns): Update.
4486
4487 2010-04-26  Jie Zhang  <jie@codesourcery.com>
4488
4489         PR tree-optimization/43833
4490         * tree-vrp.c (range_int_cst_p): New.
4491         (range_int_cst_singleton_p): New.
4492         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
4493         when both operands are constants.  Use range_int_cst_p in
4494         BIT_IOR_EXPR case.
4495
4496 2010-04-26  Jan Hubicka  <jh@suse.cz>
4497
4498         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
4499
4500 2010-04-26  Richard Guenther  <rguenther@suse.de>
4501
4502         PR lto/43080
4503         * gimple.c (gimple_decl_printable_name): Deal gracefully
4504         with a NULL DECL_NAME.
4505
4506 2010-04-26  Richard Guenther  <rguenther@suse.de>
4507
4508         PR lto/42425
4509         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
4510         if emitting debug information and it is either a function
4511         or a namespace decl.
4512
4513 2010-04-26  Ira Rosen  <irar@il.ibm.com>
4514
4515         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
4516         determine if the statement is vectorizable, and a macro to access it.
4517         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
4518         Skip statements that can't be vectorized. If the analysis fails,
4519         mark the statement as unvectorizable if vectorizing basic block.
4520         (vect_compute_data_refs_alignment): Likewise.
4521         (vect_verify_datarefs_alignment): Skip statements marked as
4522         unvectorizable. Add print.
4523         (vect_analyze_group_access): Skip statements that can't be
4524         vectorized. If the analysis fails, mark the statement as
4525         unvectorizable if vectorizing basic block.
4526         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
4527         * tree-vect-stmts.c (vectorizable_store): Fix the number of
4528         generated stmts for SLP.
4529         (new_stmt_vec_info): Initialize the new field.
4530         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
4531         statements marked as unvectorizable.
4532
4533 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
4534
4535         * c-common.c (flag_isoc1x): New.
4536         (flag_isoc99): Update comment.
4537         * c-common.h (flag_isoc1x): New.
4538         (flag_isoc99): Update comment.
4539         * c-cppbuiltin.c (builtin_define_float_constants): Also define
4540         __<type>_DECIMAL_DIG__.
4541         * c-opts.c (set_std_c1x): New.
4542         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
4543         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
4544         * c.opt (-std=c1x, -std=gnu1x): New options.
4545         * doc/cpp.texi: Mention -std=c1x.
4546         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
4547         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
4548         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
4549         * doc/standards.texi: Mention C1X.
4550         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
4551         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
4552         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
4553         Define for C1X.
4554
4555 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
4556
4557         * config/i386/gmon-sol2.c (_mcleanup): Change format string
4558         placeholder from 0x%x to %#x.
4559         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
4560         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
4561         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
4562         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
4563         * config/i386/i386.c (ix86_target_string): Ditto.
4564         (output_pic_addr_const): Ditto.
4565         (print_operand): Ditto.
4566
4567 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
4568
4569         * combine.c (find_split_point): Add third argument.  Use it
4570         to find nested multiply-accumulate instructions.  Adjust calls.
4571         (try_combine): Adjust call to find_split_point.
4572
4573 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
4574
4575         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
4576
4577 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
4578
4579         PR tree-optimization/41442
4580         * fold-const.c (merge_truthop_with_opposite_arm): New function.
4581         (fold_binary_loc): Call it.
4582
4583 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4584
4585         * toplev.c (general_init): Set default for fdiagnostics-show-option.
4586         * opts.c (common_handle_option): Allow disabling it.
4587         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
4588
4589 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
4590
4591         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
4592         between modes if both types are integral.
4593
4594 2010-04-23  Richard Guenther  <rguenther@suse.de>
4595
4596         PR tree-optimization/43572
4597         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
4598
4599 2010-04-23  Richard Guenther  <rguenther@suse.de>
4600
4601         PR lto/43455
4602         * tree-inline.c (tree_can_inline_p): Also check compatibility
4603         of return types.
4604
4605 2010-04-23  Martin Jambor  <mjambor@suse.cz>
4606
4607         PR tree-optimization/43846
4608         * tree-sra.c (struct access): New flag grp_assignment_read.
4609         (build_accesses_from_assign): Set grp_assignment_read.
4610         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
4611         (enum mark_read_status): New type.
4612         (analyze_access_subtree): Propagate grp_assignment_read, create
4613         accesses also if both direct_read and root->grp_assignment_read.
4614
4615 2010-04-23  Martin Jambor  <mjambor@suse.cz>
4616
4617         PR middle-end/43835
4618         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
4619         function does not have type attributes.
4620
4621 2010-04-23  Richard Guenther  <rguenther@suse.de>
4622
4623         PR lto/42653
4624         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
4625         of FUNCTION_DECLs.
4626
4627 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4628
4629         * sese.h (create_if_region_on_edge): Remove.
4630
4631         * sese.c (create_if_region_on_edge): Make static.
4632
4633         * tree-inline.c: Do not include ggc.h.
4634
4635         * expr.c: Do not include ggc.h.
4636
4637         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
4638         dependencies.
4639
4640 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
4641
4642         PR target/43744
4643         * config/sh/sh.c (find_barrier): Don't emit a constant pool
4644         in the middle of insns for casesi_worker_2.
4645
4646 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
4647
4648         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
4649
4650 2010-04-22  Ira Rosen  <irar@il.ibm.com>
4651
4652         PR tree-optimization/43842
4653         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
4654         loop unrolling in update of exit phis. Fix comment.
4655         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
4656         least two reduction statements in the loop before starting SLP
4657         analysis.
4658
4659 2010-04-22  Nick Clifton  <nickc@redhat.com>
4660
4661         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
4662
4663 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
4664
4665         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
4666         to simplify a + ~a.
4667
4668 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4669
4670         * tree-parloops.c (loop_parallel_p): New argument
4671         parloop_obstack.  Pass it down.
4672         (parallelize_loops): New variable parloop_obstack.  Initialize it,
4673         pass it down, free it.
4674
4675         * tree-loop-linear.c (linear_transform_loops): Pass down
4676         lambda_obstack.
4677
4678         * tree-data-ref.h (lambda_compute_access_matrices): New argument
4679         of type struct obstack *.
4680
4681         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
4682         scratch_obstack.  Initialize it, pass down, free it.
4683
4684         * lambda.h (lambda_loop_new): Remove.
4685         (lambda_matrix_new, lambda_matrix_inverse)
4686         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
4687         argument of type struct obstack *.
4688
4689         * lambda-trans.c (lambda_trans_matrix_new): New argument
4690         lambda_obstack.  Pass it down, use obstack allocation for ret.
4691         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
4692         it down.
4693
4694         * lambda-mat.c (lambda_matrix_get_column)
4695         (lambda_matrix_project_to_null): Remove.
4696         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
4697         allocation for mat.
4698         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
4699         lambda_obstack.
4700
4701         * lambda-code.c (lambda_loop_new): New function.
4702         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
4703         (lambda_compute_auxillary_space, lambda_compute_target_space)
4704         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
4705         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
4706         (build_access_matrix): New argument lambda_obstack.  Use obstack
4707         allocation for am.
4708         (lambda_compute_step_signs, lambda_compute_access_matrices): New
4709         argument lambda_obstack.  Pass it down.
4710
4711 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4712
4713         * optabs.h (expand_widening_mult): Declare.
4714
4715 2010-04-22  Richard Guenther  <rguenther@suse.de>
4716
4717         PR tree-optimization/43845
4718         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
4719         lookup the CALL_EXPR function and arguments.
4720
4721 2010-04-22  Nick Clifton  <nickc@redhat.com>
4722
4723         * config/stormy16/stormy16.c
4724         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
4725         * config/stormy16/stormy16.h: Tidy up formatting.
4726         (DONT_USE_BUILTIN_SETJMP): Remove definition.
4727         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
4728         (ineqbranchsi): Delete pattern.
4729         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
4730         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
4731         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
4732         stormy16-lib2-ucmpsi2.c.
4733
4734 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4735
4736         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
4737         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
4738         extra set merge_set_noclobber, and use it to relax the final test
4739         slightly.
4740         * df.h (df_simulate_find_noclobber_defs): Declare.
4741         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
4742         conditional defs.
4743         (df_simulate_find_noclobber_defs): New function.
4744
4745 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
4746
4747         * config/i386/i386.md: Use {} around multi-line preparation statements.
4748
4749 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4750
4751         * c-tree.h (push_init_level, pop_init_level, set_init_index)
4752         (process_init_element): New argument of type struct obstack *.
4753
4754         * c-typeck.c (push_init_level, pop_init_level, set_designator)
4755         (set_init_index, set_init_label, set_nonincremental_init)
4756         (set_nonincremental_init_from_string, find_init_member)
4757         (output_init_element, output_pending_init_elements)
4758         (process_init_element): New argument braced_init_obstack.  Pass it
4759         down.
4760         (push_range_stack, add_pending_init): New argument
4761         braced_init_obstack.  Use obstack allocation.
4762
4763         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
4764         braced_init_obstack.  Pass it down.
4765         (c_parser_braced_init): New variables ret, braced_init_obstack.
4766         Initialize obstack, pass it down and finally free it.
4767
4768 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4769
4770         PR middle-end/29274
4771         * tree-pass.h (pass_optimize_widening_mul): Declare.
4772         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
4773         gate_optimize_widening_mul): New static functions.
4774         (pass_optimize_widening_mul): New.
4775         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
4776         <case MULT_EXPR>: Remove support for widening multiplies.
4777         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
4778         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
4779         simplify_gen_unary rather than directly building extensions.
4780         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
4781         WIDEN_MULT_EXPR.
4782         * expmed.c (expand_widening_mult): New function.
4783         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
4784
4785 2010-04-21  Jan Hubicka  <jh@suse.cz>
4786
4787         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
4788         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
4789         * lto-wpa-fixup.c: Remove.
4790         * Makefile.in (lto-wpa-fixup.o): Remove.
4791         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
4792         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
4793         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
4794
4795 2010-04-21  Jan Hubicka  <jh@suse.cz>
4796
4797         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
4798         add write_optimization_summary, read_optimization_summary.
4799         (ipa_write_summaries_of_cgraph_node_set): Remove.
4800         (ipa_write_optimization_summaries): Declare.
4801         (ipa_read_optimization_summaries): Declare.
4802         * ipa-cp.c (pass_ipa_cp): Update.
4803         * ipa-reference.c (pass_ipa_reference): Update.
4804         * ipa-pure-const.c (pass_ipa_pure_const): Update.
4805         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
4806         Update.
4807         * ipa-inline.c (pass_ipa_inline): Update.
4808         * ipa.c (pass_ipa_whole_program): Update.
4809         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
4810         * passes.c (ipa_write_summaries_1): Do not test wpa.
4811         (ipa_write_optimization_summaries_1): New.
4812         (ipa_write_optimization_summaries): New.
4813         (ipa_read_summaries): Do not test ltrans.
4814         (ipa_read_optimization_summaries_1): New.
4815         (ipa_read_optimization_summaries): New.
4816
4817 2010-04-21  Jan Hubicka  <jh@suse.cz>
4818
4819         * lto-cgraph.c (lto_output_node): Do not output comdat groups
4820         for boundary nodes.
4821         (output_cgraph): Do not arrange comdat groups for boundary nodes.
4822
4823 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4824
4825         PR debug/40040
4826         * dwarf2out.c (add_name_and_src_coords_attributes): Add
4827         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
4828
4829 2010-04-21  Jan Hubicka  <jh@suse.cz>
4830
4831         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
4832
4833 2010-04-21  Jan Hubicka  <jh@suse.cz>
4834
4835         * varpool.c (decide_is_variable_needed): Variable is always needed
4836         during ltrans.
4837
4838 2010-04-21  Jan Hubicka  <jh@suse.cz>
4839
4840         * opts.c (decode_options): Enable pure-const pass for whopr.
4841
4842 2010-04-21  Jan Hubicka  <jh@suse.cz>
4843
4844         * cgraph.c (dump_cgraph_node): Dump also assembler name.
4845         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
4846         at WPA dumping.
4847         (cgraph_decide_inlining): Do not expect callee to be removed in all
4848         cases.
4849
4850 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
4851
4852         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
4853
4854 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
4855
4856         * config/i386/i386.md (x86_shrd): Add athlon_decode and
4857         amdfam10_decode attributes.
4858
4859 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4860
4861         PR middle-end/43570
4862         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
4863         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
4864         (lower_copyprivate_clauses): Use private var in outer
4865         context instead of original var.  Make sure the types
4866         are correct for VLAs.
4867
4868 2010-04-21  Richard Guenther  <rguenther@suse.de>
4869
4870         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
4871         to non-pointer objects.
4872
4873 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4874
4875         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
4876         last chain entry if it starts with the still current label.
4877         (add_location_or_const_value_attribute): Check that
4878         loc_list->first->next is NULL instead of comparing ->first with ->last.
4879         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
4880         to add_var_loc_to_decl.
4881
4882         * dwarf2out.c (output_call_frame_info): For dw_cie_version
4883         >= 4 add also address size and segment size fields into CIE header.
4884
4885         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
4886         long as address size is the same as sizeof (void *) and
4887         segment size is 0.
4888         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
4889         address size or segment size is unexpected, return DW_EH_PE_omit.
4890         (classify_object_over_fdes): If get_cie_encoding returned
4891         DW_EH_PE_omit, return -1.
4892         (init_object): If classify_object_over_fdes returned -1,
4893         pretend there were no FDEs at all.
4894
4895 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
4896
4897         * config/i386/i386.md (bswap<mode>2): Macroize expander from
4898         bswap{si,di}2 using SWI48 mode iterator.
4899         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
4900         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
4901         set modrm attribute of bswap insn to 0 and remove length attribute.
4902         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
4903         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
4904         set mode attribute to <MODE> and remove length attribute.
4905
4906 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
4907
4908         PR rtl-optimization/43520
4909         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
4910         zero available registers.
4911
4912 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4913
4914         * builtins.c (fold_builtin_cproj): Fold more cases.
4915
4916 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4917
4918         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
4919         (fold_builtin_1): Fold builtin cproj.
4920         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
4921         Use ATTR_CONST_NOTHROW_LIST.
4922
4923 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
4924
4925         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
4926         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
4927         ffsi2_no_cmove for !TARGET_CMOVE.
4928         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
4929         (ffssi2): Remove expander.
4930         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
4931         mode iterator.
4932         (ctz<mode>2): Ditto from ctz{si,di}2.
4933         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
4934         mode iterator.
4935         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
4936         mode iterator.
4937
4938 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
4939
4940         * dwarf2out.c (AT_linkage_name): Define.
4941         (clone_as_declaration): Handle DW_AT_linkage_name.
4942         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
4943         of DW_AT_MIPS_linkage_name.
4944         (move_linkage_attr): Likewise.
4945         (dwarf2out_finish): Likewise.
4946
4947 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
4948
4949         PR middle-end/41952
4950         * fold-const.c (fold_comparison): New folding rule.
4951
4952 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
4953
4954         * double-int.h (double_int_setbit): Declare.
4955         * double-int.c (double_int_setbit): New function.
4956         * rtl.h (immed_double_int_const): Declare.
4957         * emit-rtl.c (immed_double_int_const): New function.
4958         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
4959         and immed_double_int_const functions.
4960         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
4961         expand_copysign_bit):  (Ditto.).
4962         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
4963         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
4964         * dojump.c (prefer_and_bit_test): (Ditto.).
4965         * expr.c (convert_modes, reduce_to_bit_field_precision,
4966         const_vector_from_tree): (Ditto.).
4967         * expmed.c (mask_rtx, lshift_value): (Ditto.).
4968
4969 2010-04-20  Jan Hubicka  <jh@suse.cz>
4970
4971         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
4972         (dump_cgraph_node): Dump new flags.
4973         * cgraph.h (struct cgraph_node): Add flags
4974         reachable_from_other_partition and in_other_partition.
4975         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
4976         other partition can not be removed.
4977         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
4978         the other partition must be output; silence sanity checking on
4979         leaking functions bodies from other paritition.
4980         * lto-cgraph.c (reachable_from_other_partition_p): New function.
4981         (lto_output_node): Output new flags; do not sanity check that inline
4982         clones are output; drop lto_forced_extern_inline_p code; do not mock
4983         visibility flags at partition boundaries.
4984         (add_node_to): New function.
4985         (output_cgraph): Use it to sort functions so masters appear before
4986         clones.
4987         (input_overwrite_node): Input new flags.
4988         * passes.c (ipa_write_summaries): Do not call
4989         lto_new_extern_inline_states.
4990         * lto-section-out.c (forced_extern_inline,
4991         lto_new_extern_inline_states lto_delete_extern_inline_states,
4992         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
4993         * lto-streamer.h (lto_new_extern_inline_states,
4994         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
4995         lto_forced_extern_inline_p): Kill.
4996
4997 2010-04-20  Richard Guenther  <rguenther@suse.de>
4998
4999         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
5000         from vars that can have pointers.
5001         (process_constraint): Dump useless constraints.
5002
5003 2010-04-20  Richard Guenther  <rguenther@suse.de>
5004
5005         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
5006         (dump_sa_points_to_info): Remove asserts.
5007         (init_base_vars): nothing_id isn't an escape point nor does it
5008         have pointers.
5009
5010 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
5011
5012         * tree.h (TYPE_REF_IS_RVALUE): Define.
5013         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
5014         should_move_die_to_comdat, prune_unused_types_walk): Handle
5015         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
5016         (modified_type_die, gen_reference_type_die): Emit
5017         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
5018         if TYPE_REF_IS_RVALUE and -gdwarf-4.
5019
5020 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5021
5022         PR target/43635
5023         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
5024         calls for -fpic -m31 if they have been sibcall optimized.
5025
5026 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
5027
5028         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
5029         ar.lc fixed and call-used.
5030
5031         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
5032
5033 2010-04-19  Jan Hubicka  <jh@suse.cz>
5034
5035         * opts.c (decode_options): Disable whpr incompatible passes.
5036         * lto/lto.c (lto_1_to_1_map): Skip clones.
5037         (read_cgraph_and_symbols): Do not mark everything as needed.
5038         (do_whole_program_analysis): Do map only after optimizing;
5039         set proper cgraph_state; use passmanager.
5040
5041 2010-04-19  DJ Delorie  <dj@redhat.com>
5042
5043         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
5044         POINTER_PLUS_EXPR and fix them.
5045
5046 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
5047
5048         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
5049         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
5050         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
5051         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
5052         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
5053         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
5054         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
5055         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
5056         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
5057         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
5058         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
5059
5060 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
5061
5062         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
5063         (check_cond_move_block): Likewise.
5064         (cond_move_process_if_block): Likewise.
5065         (noce_find_if_block): Improve formatting.
5066         (find_if_header): Pass 0 to memset and tweak conditions.
5067         (cond_exec_find_if_block): Fix long lines and tweak conditions.
5068
5069 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
5070
5071         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
5072         for -gdwarf-4.
5073
5074         PR middle-end/43337
5075         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
5076         with non-local decl doesn't need chain.
5077
5078 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
5079
5080         * ira-color.c (allocno_reload_assign): Avoid accumulating
5081         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
5082
5083 2010-04-19  Martin Jambor  <mjambor@suse.cz>
5084
5085         * gimple.h (create_tmp_reg): Declare.
5086         * gimplify.c (create_tmp_reg): New function.
5087         (gimplify_return_expr): Use create_tmp_reg.
5088         (gimplify_omp_atomic): Likewise.
5089         (gimple_regimplify_operands): Likewise.
5090         * tree-dfa.c (make_rename_temp): Likewise.
5091         * tree-predcom.c (predcom_tmp_var): Likewise.
5092         (reassociate_to_the_same_stmt): Likewise.
5093         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
5094         (get_replaced_param_substitute): Likewise.
5095         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
5096         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
5097         * tree-ssa-pre.c (get_representative_for): Likewise.
5098         (create_expression_by_pieces): Likewise.
5099         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
5100         (create_tailcall_accumulator): Likewise.
5101
5102 2010-04-19  Martin Jambor  <mjambor@suse.cz>
5103
5104         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
5105         new_stmt.
5106         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
5107
5108 2010-04-19  Richard Guenther  <rguenther@suse.de>
5109
5110         PR tree-optimization/43796
5111         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
5112         from SCEV in the lattice.
5113         (vrp_visit_phi_node): Dump change.
5114
5115 2010-04-19  Richard Guenther  <rguenther@suse.de>
5116
5117         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
5118         * configure: Re-generated.
5119
5120 2010-04-19  Richard Guenther  <rguenther@suse.de>
5121
5122         PR tree-optimization/43783
5123         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
5124         constant ARRAY_REF operands two and three if possible.
5125
5126 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
5127
5128         PR target/43766
5129         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
5130
5131 2010-04-19  Jie Zhang  <jie@codesourcery.com>
5132
5133         PR target/43662
5134         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
5135
5136 2010-04-19  Ira Rosen  <irar@il.ibm.com>
5137
5138         PR tree-optimization/37027
5139         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
5140         and macro to access it.
5141         (vectorizable_reduction): Add argument.
5142         (vect_get_slp_defs): Likewise.
5143         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
5144         statements for possible use in SLP.
5145         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
5146         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
5147         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
5148         add new argument.
5149         (vectorizable_reduction): Likewise.
5150         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
5151         vect_get_slp_defs.
5152         (vectorizable_type_demotion, vectorizable_type_promotion,
5153         vectorizable_store): Likewise.
5154         (vect_analyze_stmt): Update call to vectorizable_reduction.
5155         (vect_transform_stmt): Likewise.
5156         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
5157         (vect_build_slp_tree): Fix indentation. Check that there are no loads
5158         from different interleaving chains in same node.
5159         (vect_slp_rearrange_stmts): New function.
5160         (vect_supported_load_permutation_p): Allow load permutations for
5161         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
5162         inside SLP nodes if necessary.
5163         (vect_analyze_slp_instance): Handle reductions.
5164         (vect_analyze_slp): Try to build SLP instances originating from groups
5165         of reductions.
5166         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
5167         (vect_get_constant_vectors): Create initial vectors for reductions
5168         according to reduction code. Add new argument.
5169         (vect_get_slp_defs): Add new argument, pass it to
5170         vect_get_constant_vectors.
5171         (vect_schedule_slp_instance): Remove SLP tree root statements.
5172
5173 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
5174
5175         * tree.h (ENUM_IS_SCOPED): Define.
5176         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
5177         for ENUM_IS_SCOPED enums.
5178
5179 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5180
5181         * fold-const.c (fold_comparison): Use ssizetype.
5182         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
5183         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
5184         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
5185         * tree-object-size.c (compute_object_sizes): Use size_type_node.
5186
5187         * tree.h (initialize_sizetypes): Remove parameter.
5188         (build_common_tree_nodes): Remove second parameter.
5189         * stor-layout.c (initialize_sizetypes): Remove parameter.
5190         Always create an unsigned type.
5191         (set_sizetype): Assert that the passed type is unsigned and simplify.
5192         * tree.c (build_common_tree_nodes): Remove second parameter.
5193         Adjust call to initialize_sizetypes.
5194         * c-decl.c (c_init_decl_processing): Remove second argument in call to
5195         build_common_tree_nodes.
5196
5197 2010-04-18  Matthias Klose  <doko@ubuntu.com>
5198
5199         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
5200
5201 2010-04-18  Ira Rosen  <irar@il.ibm.com>
5202
5203         PR tree-optimization/43771
5204         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
5205         load permutation doesn't have gaps.
5206
5207 2010-04-18  Jan Hubicka  <jh@suse.cz>
5208
5209         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
5210         (sse_prologue_save_insn expander): Use new pattern.
5211         (sse_prologue_save_insn1): New pattern and splitter.
5212         (sse_prologue_save_insn): Update to deal also with 64bit aligned
5213         blocks.
5214         * i386.c (setup_incoming_varargs_64): Do not compute jump
5215         destination here.
5216         (ix86_gimplify_va_arg): Update alignment needed.
5217         (ix86_local_alignment): Do not align all local arrays to 128bit.
5218
5219 2010-04-17  Jan Hubicka  <jh@suse.cz>
5220
5221         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
5222
5223 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5224
5225         * arm.md (negdi2): Remove redundant code to force values into a
5226         register.
5227
5228 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5229
5230         * arm/bpabi.S: Add EABI alignment attributes to objects.
5231         * arm/bpabi-v6m.S: Likewise.
5232         * arm/crti.asm: Likewise.
5233         * arm/crtn.asm: Likewise.
5234         * arm/lib1funcs.asm: Likewise.
5235         * arm/libunwind.S: Likewise.
5236
5237 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5238
5239         * arm-protos.h (tune_params): New structure.
5240         * arm.c (current_tune): New variable.
5241         (arm_constant_limit): Delete.
5242         (struct processors): Add pointer to the tune parameters.
5243         (arm_slowmul_tune): New tuning option.
5244         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
5245         (all_cores): Adjust to pick up the tuning model.
5246         (arm_constant_limit): New function.
5247         (arm_override_options): Select the appropriate tuning model.  Delete
5248         initialization of arm_const_limit.
5249         (arm_split_constant): Use the new constant-limit model.
5250         (arm_rtx_costs): Pick up the current tuning model.
5251         * arm.md (is_strongarm, is_xscale): Delete.
5252         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
5253         for Xscale variant architectures.
5254         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
5255
5256 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5257
5258         * config/arm/arm.c (arm_gen_constant): Remove unused variable
5259         can_shift.
5260         (arm_rtx_costs_1): Remove unused variable extra_cost.
5261         (arm_unwind_emit_set): Use variable offset.
5262         (thumb1_output_casesi): Remove unused variable flags.
5263
5264 2010-04-16  Jeff Law  <law@redhat.com>
5265
5266         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
5267         needing assignment rather than doing a two-phase assignment.  Remove
5268         unused variable 'm'.
5269
5270 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5271
5272         PR bootstrap/43767
5273         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
5274
5275 2010-04-16  Doug Kwan  <dougkwan@google.com>
5276
5277         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
5278         (next_operand_entry_id): New static variable.
5279         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
5280         (add_to_ops_vec): Assigned unique ID to operand entry.
5281         (struct oecount_s): New field ID.
5282         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
5283         (undistribute_ops_list): Assign unique IDs to oecounts.
5284         (init_reassoc): reset next_operand_entry_id.
5285
5286 2010-04-16  Doug Kwan  <dougkwan@google.com>
5287
5288         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
5289         missing left parenthesis.
5290
5291 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
5292
5293         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
5294         *btdi_rex64 using SWI48 mode iterator.
5295         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
5296         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
5297         *jcc_btdi_mask_rex64.
5298
5299 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
5300
5301         * double-int.h (tree_to_double_int): Convert to macro.
5302         * double-int.c (tree_to_double_int): Remove.
5303
5304 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5305
5306         PR debug/43762
5307         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
5308         with want_address 2 and in case a single element list might be
5309         possible, call it again with want_address 0.
5310
5311 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
5312
5313         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
5314         case 'W' print operands for HI mode.
5315         * config/h8300/h8300.h (Y0, Y2) : New constraints.
5316         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
5317         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
5318         * config/h8300/predicate.md (bit_register_indirect_operand): New.
5319
5320         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
5321
5322         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
5323         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
5324         #xx:3 and #xx:4 mode.
5325
5326         * config/h8300/h8300.md (inverted load with HImode dest): Add
5327         support for H8300SX.
5328
5329         * config/h8300/predicate.md (bit_operand): Allow immediate values that
5330         satisfy 'U' constraint.
5331
5332 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5333
5334         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
5335         * configure: Regenerate.
5336         * config.in: Regenerate.
5337         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
5338         works.
5339
5340 2010-04-16  Richard Guenther  <rguenther@suse.de>
5341
5342         * tree.h (struct tree_decl_minimal): Move pt_uid ...
5343         (struct tree_decl_common): ... here.
5344         (DECL_PT_UID): Adjust.
5345         (SET_DECL_PT_UID): Likewise.
5346         (DECL_PT_UID_SET_P): Likewise.
5347
5348 2010-04-16  Richard Guenther  <rguenther@suse.de>
5349
5350         PR tree-optimization/43572
5351         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
5352         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
5353         * tree-flow.h (is_call_clobbered): Remove.
5354         * tree-flow-inline.h (is_call_clobbered): Likewise.
5355         * tree-dfa.c (dump_variable): Do not dump call clobber state.
5356         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
5357         (execute_return_slot_opt): Adjust.
5358         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
5359         check for call clobbered vars here.
5360         (find_tail_calls): Move tailcall verification to the
5361         proper place.
5362
5363 2010-04-16  Diego Novillo  <dnovillo@google.com>
5364
5365         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
5366
5367 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5368
5369         PR target/40603
5370         * config/arm/arm.md (cbranchqi4): New pattern.
5371         * config/arm/predicates.md (const0_operand,
5372         cbranchqi4_comparison_operator): New predicates.
5373
5374 2010-04-16  Richard Guenther  <rguenther@suse.de>
5375
5376         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
5377         (dump_gimple_stmt): Likewise.
5378
5379 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5380
5381         * recog.h (struct recog_data): New field is_operator.
5382         (struct insn_operand_data): New field is_operator.
5383         * recog.c (extract_insn): Set recog_data.is_operator.
5384         * genoutput.c (output_operand_data): Emit code to set the
5385         is_operator field.
5386         * reload.c (find_reloads): Use it rather than testing for an
5387         empty constraint string.
5388
5389         PR target/41514
5390         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
5391         If the previous insn is a cbranchsi4_insn with the same arguments,
5392         omit the compare instruction.
5393
5394         * config/arm/arm.md (addsi3_cbranch): If destination is a high
5395         register, inputs must be low registers and we need a low register
5396         scratch.  Handle alternative 2 like alternative 3.
5397
5398 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5399
5400         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
5401         don't call get_addr on both.  If one expression is a VALUE and
5402         the other a REG, check VALUE's locs if the REG isn't among them.
5403
5404 2010-04-16  Christian Bruel  <christian.bruel@st.com>
5405
5406         * config/sh/sh.h (sh_frame_pointer_required): New function.
5407         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
5408         (flag_omit_frame_pointer) Set.
5409         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
5410         (rounded_frame_size): Adjust size with outgoing_args_size.
5411         (sh_set_return_address): Must return from stack pointer.
5412         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
5413         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
5414         (ACCUMULATE_OUTGOING_ARGS): Define.
5415         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
5416         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
5417
5418 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5419
5420         PR target/43471
5421         * config/sh/sh.c (sh_legitimize_reload_address): Use
5422         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
5423         Remove a unneeded check for offset_base.
5424
5425 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
5426
5427         * configure: Regenerated.
5428
5429 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5430
5431         * config/s390/s390.c (s390_call_save_register_used): Switch back
5432         to HARD_REGNO_NREGS.
5433
5434 2010-04-15  Richard Guenther  <rguenther@suse.de>
5435
5436         * alias.c (alias_set_subset_of): Handle alias-set zero
5437         child properly.
5438
5439 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
5440             Julian Brown  <julian@codesourcery.com>
5441
5442         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
5443         alternatives according to use of high and low regs.
5444         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
5445         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
5446         optimizing for size on Thumb-2.
5447
5448 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
5449
5450         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
5451
5452 2010-04-15  Richard Guenther  <rguenther@suse.de>
5453
5454         * tree-ssa-structalias.c (struct variable_info): Add
5455         is_fn_info flag.
5456         (new_var_info): Initialize it.
5457         (dump_constraints): Support printing last added constraints.
5458         (debug_constraints): Adjust.
5459         (dump_constraint_graph): Likewise.
5460         (make_heapvar_for): Check for NULL cfun.
5461         (get_function_part_constraint): New function.
5462         (get_fi_for_callee): Likewise.
5463         (find_func_aliases): Properly implement IPA PTA constraints.
5464         (process_ipa_clobber): New function.
5465         (find_func_clobbers): Likewise.
5466         (insert_into_field_list_sorted): Remove.
5467         (create_function_info_for): Properly allocate vars for IPA mode.
5468         Do not use insert_into_field_list_sorted.
5469         (create_variable_info_for): Properly generate constraints for
5470         global vars in IPA mode.
5471         (dump_solution_for_var): Always dump the solution.
5472         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
5473         (find_what_var_points_to): Adjust.
5474         (pt_solution_set): Change.
5475         (pt_solution_ior_into): New function.
5476         (pt_solution_empty_p): Export.
5477         (pt_solution_includes_global): Adjust.
5478         (pt_solution_includes_1): Likewise.
5479         (pt_solutions_intersect_1): Likewise.
5480         (dump_sa_points_to_info): Check some invariants.
5481         (solve_constraints): Move constraint dumping ...
5482         (compute_points_to_sets): ... here.
5483         (ipa_pta_execute): ... and here.
5484         (compute_may_aliases): Do not re-compute points-to info
5485         locally if IPA info is available.
5486         (ipa_escaped_pt): New global var.
5487         (ipa_pta_execute): Properly implement IPA PTA.
5488         * tree-into-ssa.c (dump_decl_set): Support dumping
5489         decls not in referenced-vars.
5490         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
5491         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
5492         (dump_points_to_solution): Likewise.
5493         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
5494         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
5495         (remap_gimple_stmt): Reset call clobber/use information if necessary.
5496         (copy_decl_to_var): Copy DECL_PT_UID.
5497         (copy_result_decl_to_var): Likewise.
5498         * tree.c (make_node_stat): Initialize DECL_PT_UID.
5499         (copy_node_stat): Copy it.
5500         * tree.h (DECL_PT_UID): New macro.
5501         (SET_DECL_PT_UID): Likewise.
5502         (DECL_PT_UID_SET_P): Likewise.
5503         (struct tree_decl_minimal): Add pt_uid member.
5504         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
5505         (pt_solution_empty_p): Declare.
5506         (pt_solution_set): Adjust.
5507         (ipa_escaped_pt): Declare.
5508         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
5509         * gimple-pretty-print.c (pp_points_to_solution): New function.
5510         (dump_gimple_call): Dump call clobber/use information.
5511         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
5512         * tree-pass.h (TDF_ALIAS): New dump option.
5513         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
5514         * doc/invoke.texi (-fipa-pta): Update documentation.
5515
5516 2010-04-15  Richard Guenther  <rguenther@suse.de>
5517
5518         * Makefile.in (OBJS-common): Add gimple-fold.o.
5519         (gimple-fold.o): New rule.
5520         * tree.h (maybe_fold_offset_to_reference,
5521         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
5522         prototypes ...
5523         * gimple.h: ... here.
5524         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
5525         may_propagate_address_into_dereference): Move prototypes ...
5526         * gimple.h: ... here.
5527         * tree-ssa-ccp.c (get_symbol_constant_value,
5528         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
5529         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
5530         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
5531         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
5532         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
5533         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
5534         gimplify_and_update_call_from_tree): Move ...
5535         * gimple-fold.c: ... here.  New file.
5536         (ccp_fold_builtin): Rename to ...
5537         (gimple_fold_builtin): ... this.
5538         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
5539
5540 2010-04-15  Richard Guenther  <rguenther@suse.de>
5541
5542         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
5543         fit_double_type, force_fit_type_double, add_double_with_sign,
5544         neg_double, mul_double_with_sign, lshift_double, rshift_double,
5545         lrotate_double, rrotate_double, div_and_round_double): Move ...
5546         * double-int.c: ... here.
5547         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
5548         add_double, neg_double, mul_double_with_sign, mul_double,
5549         lshift_double, rshift_double, lrotate_double, rrotate_double,
5550         div_and_round_double): Move prototypes ...
5551         * double-int.h: ... here.
5552
5553 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
5554
5555         PR target/43742
5556         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
5557         matching constraints to ensure inputs match the output.
5558
5559 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5560
5561         PR target/43742
5562         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
5563         in an input-only operand.
5564
5565 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
5566
5567         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
5568         (double_int_not, double_int_lshift, double_int_rshift): Declare.
5569         (double_int_negative_p): Convert to static inline function.
5570         * double-int.c (double_int_lshift, double_int_lshift): New functions.
5571         (double_int_negative_p): Remove.
5572         * tree.h (lshift_double, rshift_double):
5573         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
5574         * fold-const.c (fold_convert_const_int_from_real,
5575         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
5576         (lshift_double): Change type of arith argument to bool.
5577         (rshift_double): Change type of arith argument to bool. Correct
5578         comment.
5579         * expmed.c (mask_rtx, lshift_value): (Ditto.).
5580
5581 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
5582
5583         PR target/21803
5584         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
5585         at the start and end of the then/else blocks, and omit them from the
5586         conversion.
5587         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
5588         argument; all callers changed.  Pass zero to old_insns_match_p instead.
5589         (flow_find_head_matching_sequence): New function.
5590         (old_insns_match_p): Check REG_EH_REGION notes for calls.
5591         * basic-block.h (flow_find_cross_jump,
5592         flow_find_head_matching_sequence): Declare functions.
5593
5594 2010-04-14  Jason Merrill  <jason@redhat.com>
5595
5596         PR c++/36625
5597         * c-common.c (attribute_takes_identifier_p): New fn.
5598         * c-common.h: Declare it.
5599
5600 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5601
5602         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
5603         splitter condition.
5604         (*udivmod<mode>4): Ditto.
5605
5606 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5607
5608         * config/i386/i386.md (maxmin_int): Rename code attribute from
5609         maxminiprefix and update all users.
5610         (maxmin_float): Ditto from maxminfprefix.
5611         (logic): Ditto from logicprefix.
5612         (absneg_mnemonic): Ditto from absnegprefix.
5613         * config/i386/mmx.md: Update all users of maxminiprefix,
5614         maxminfprefix and logicprefix for rename.
5615         * config/i386/sse.md: Ditto.
5616         * config/i386/sync.md (sync_<code><mode>): Update for
5617         logicprefix rename.
5618
5619 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5620
5621         PR 42966
5622         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
5623         warnings converted to errors.
5624
5625 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5626
5627         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
5628         used insn_type variable.
5629         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
5630         to avoid set-but-not-used warning.
5631
5632 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5633
5634         * df-core.c (df_ref_debug): Change format string placeholder
5635         from 0x%x to %#x.
5636         * dwarf2asm.c (dw2_asm_output_data_raw,
5637         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
5638         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
5639         * dwarf2out.c (output_cfi, output_cfi_directive,
5640         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
5641         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
5642         Ditto.
5643         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
5644         * print-rtl.c (print_rtx): Ditto.
5645
5646 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
5647
5648         PR middle-end/42694
5649         * builtins.c (expand_builtin_pow_root): New function to expand pow
5650         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
5651         series of sqrt and cbrt calls under -ffast-math.
5652         (expand_builtin_pow): Call it.
5653
5654 2010-04-14  Michael Matz  <matz@suse.de>
5655
5656         PR tree-optimization/42963
5657         * tree-cfg.c (touched_switch_bbs): New static variable.
5658         (group_case_labels_stmt): New function broken out from ...
5659         (group_case_labels): ... here, use the above.
5660         (start_recording_case_labels): Allocate touched_switch_bbs.
5661         (end_recording_case_labels): Deallocate it, call
5662         group_case_labels_stmt.
5663         (gimple_redirect_edge_and_branch): Remember index of affected BB.
5664
5665 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5666
5667         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
5668         from insn template.
5669
5670 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5671
5672         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
5673
5674 2010-04-13  Jan Hubicka  <jh@suse.cz>
5675
5676         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
5677         of optimized out static functions.
5678         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
5679         cost computation.  Also sanity check for overflows.
5680         (update_caller_keys): Update cgraph_edge_badness call; properly
5681         update fibheap and sanity check that it is up to date.
5682         (add_new_edges_to_heap): Update cgraph_edge_badness.
5683         (cgraph_decide_inlining_of_small_function): Likewise;
5684         add sanity checking that badness in heap is up to date;
5685         improve dumping of reason; Update badness of calls to the
5686         offline copy of function currently inlined; dump badness
5687         of functions not inlined because of unit growth limits.
5688
5689 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
5690
5691         PR middle-end/32628
5692         * c-common.c (pointer_int_sum): Disregard overflow that occured only
5693         because of sign-extension change when converting to sizetype here...
5694         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
5695
5696         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
5697         the folding to constants.  Remove redundant final conversion.
5698         (fold_binary) <associate>: Do not associate if the re-association of
5699         constants alone overflows.
5700         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
5701         to the end of the list.
5702         (multiple_of_p) <COND_EXPR>: New case.
5703
5704 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5705
5706         * opt-functions.awk (opt_sanitized_name): New.
5707         (opt_enum): New.
5708         * optc-gen.awk: Use it
5709         * opth-gen.awk: Use it.
5710
5711 2010-04-13  Martin Jambor  <mjambor@suse.cz>
5712
5713         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
5714         (sra_modify_assign): Delete stmts loading dead data even if racc has no
5715         children.  Call replace_uses_with_default_def_ssa_name to handle
5716         SSA_NAES on lhs.
5717
5718 2010-04-13  Michael Matz  <matz@suse.de>
5719
5720         PR middle-end/43730
5721         * builtins.c (expand_builtin_interclass_mathfn): Also create
5722         a register if the predicate doesn't match.
5723
5724 2010-04-13  Diego Novillo  <dnovillo@google.com>
5725
5726         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
5727         * c-pch.c: Include timevar.h.
5728         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
5729         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
5730         * ggc-common.c: Include timevar.h.
5731         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
5732         * timevar.def (TV_PCH_SAVE): Define.
5733         (TV_PCH_CPP_SAVE): Define.
5734         (TV_PCH_PTR_REALLOC): Define.
5735         (TV_PCH_PTR_SORT): Define.
5736         (TV_PCH_RESTORE): Define.
5737         (TV_PCH_CPP_RESTORE): Define.
5738
5739 2010-04-13  Michael Matz  <matz@suse.de>
5740
5741         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
5742         into MINUS_EXPRs.
5743         (can_reassociate_p): New function.
5744         (break_up_subtract_bb, reassociate_bb): Use it.
5745
5746 2010-04-13  Richard Guenther  <rguenther@suse.de>
5747
5748         PR bootstrap/43737
5749         * builtins.c (c_readstr): Fix assert.
5750
5751 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
5752
5753         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
5754         when generating cltd insn.
5755
5756         (*ashl<mode>3_1): Remove special handling for register operand 2.
5757         (*ashlsi3_1_zext): Ditto.
5758         (*ashlhi3_1): Ditto.
5759         (*ashlhi3_1_lea): Ditto.
5760         (*ashlqi3_1): Ditto.
5761         (*ashlqi3_1_lea): Ditto.
5762         (*<shiftrt_insn><mode>3_1): Ditto.
5763         (*<shiftrt_insn>si3_1_zext): Ditto.
5764         (*<shiftrt_insn>qi3_1_slp): Ditto.
5765         (*<rotate_insn><mode>3_1): Ditto.
5766         (*<rotate_insn>si3_1_zext): Ditto.
5767         (*<rotate_insn>qi3_1_slp): Ditto.
5768
5769 2010-04-13  Richard Guenther  <rguenther@suse.de>
5770
5771         * tree-ssa-structalias.c (callused_id): Remove.
5772         (call_stmt_vars): New.
5773         (get_call_vi): Likewise.
5774         (lookup_call_use_vi): Likewise.
5775         (lookup_call_clobber_vi): Likewise.
5776         (get_call_use_vi): Likewise.
5777         (get_call_clobber_vi): Likewise.
5778         (make_transitive_closure_constraints): Likewise.
5779         (handle_const_call): Adjust to do per-call call-used handling.
5780         (handle_pure_call): Likewise.
5781         (find_what_var_points_to): Remove general callused handling.
5782         (init_base_vars): Likewise.
5783         (init_alias_vars): Initialize call_stmt_vars.
5784         (compute_points_to_sets): Process call-used and call-clobbered
5785         vars for call statements.
5786         (delete_points_to_sets): Free call_stmt_vars.
5787
5788 2010-04-13  Richard Guenther  <rguenther@suse.de>
5789
5790         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
5791         Only add RW dependence for dependence distance zero.
5792         Adjust maximal vectorization factor according to dependences.
5793         Move alignment handling ...
5794         (vect_find_same_alignment_drs): ... here.  New function.
5795         (vect_analyze_data_ref_dependences): Adjust.
5796         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
5797         (vect_analyze_data_refs): Adjust minimal vectorization factor
5798         according to data references.
5799         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
5800         dependences before determining the vectorization factor.
5801         Analyze alignment after determining the vectorization factor.
5802         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
5803         dependences before alignment.
5804         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
5805         Adjust prototype.
5806         (vect_analyze_data_refs): Likewise.
5807         (MAX_VECTORIZATION_FACTOR): New define.
5808
5809 2010-04-13  Duncan Sands  <baldrick@free.fr>
5810
5811         * except.h (lang_eh_type_covers): Remove.
5812         * except.c (lang_eh_type_covers): Likewise.
5813
5814 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5815             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5816
5817         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
5818         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
5819         UNITS_PER_LONG where it is ABI relevant.
5820         (s390_return_addr_rtx): Likewise.
5821         (s390_back_chain_rtx): Likewise.
5822         (s390_frame_area): Likewise.
5823         (s390_frame_info): Likewise.
5824         (s390_initial_elimination_offset): Likewise.
5825         (save_gprs): Likewise.
5826         (s390_emit_prologue): Likewise.
5827         (s390_emit_epilogue): Likewise.
5828         (s390_function_arg_advance): Likewise.
5829         (s390_function_arg): Likewise.
5830         (s390_va_start): Likewise.
5831         (s390_gimplify_va_arg): Likewise.
5832         (s390_function_profiler): Likewise.
5833         (s390_optimize_prologue): Likewise.
5834         (s390_rtx_costs): Likewise.
5835         (s390_secondary_reload): Likewise.
5836         (s390_promote_function_mode): Likewise.
5837         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
5838         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
5839         registers available.
5840         (s390_unwind_word_mode): New function.
5841         (s390_function_value): Split 64 bit values into register pair if
5842         used as return value.
5843         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
5844         function call parameters.  Handle parallels.
5845         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
5846         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
5847         (DWARF_CIE_DATA_ALIGNMENT): New macro.
5848         (s390_expand_setmem): Remove unused variable src_addr.
5849         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
5850         deal with 64 bit registers.
5851         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
5852         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
5853         (UNITS_PER_LONG): New macro.
5854         * libjava/include/s390-signal.h: Define extended ucontext
5855         structure containing the upper halfs of the 64 bit registers.
5856
5857 2010-04-13  Simon Baldwin  <simonb@google.com>
5858
5859         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
5860
5861 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
5862
5863         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
5864         rvalue on the RHS if the LHS is of a non-renamable type.
5865         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
5866
5867 2010-04-13  Matthias Klose  <doko@ubuntu.com>
5868
5869         * gcc.c (cc1_options): Handle -iplugindir before processing
5870         the cc1 spec. Only add -iplugindir once.
5871         (cpp_unique_options): Add -iplugindir option if -fplugin* options
5872         found.
5873         * common.opt (iplugindir): Remove `Separate' property, initialize.
5874         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
5875         option.
5876         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
5877         (distclean): Remove plugin dir.
5878         * doc/invoke.texi: Document -iplugindir.
5879
5880 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
5881
5882         * doc/plugins.texi (Loading Plugins): Document short
5883         -fplugin=foo option.
5884         (Plugin API): Mention default_plugin_dir_name function.
5885
5886         * gcc.c (find_file_spec_function): Add new declaration.
5887         (static_spec_func): Use it for "find-file".
5888         (find_file_spec_function): Add new function.
5889         (cc1_options): Add -iplugindir option if -fplugin* options found.
5890
5891         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
5892
5893         * plugin.c (add_new_plugin): Updated comment, and handle short
5894         plugin name.
5895         (default_plugin_dir_name): Added new function.
5896
5897         * common.opt (iplugindir): New option to set the plugin directory.
5898
5899 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
5900
5901         * config/i386/i386.md (any_rotate): New code iterator.
5902         (rotate_insn): New code attribute.
5903         (rotate): Ditto.
5904         (SWIM124): New mode iterator.
5905         (<rotate_insn>ti3): New expander.
5906         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
5907         any_rotate code iterator.
5908         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
5909         using any_rotate code iterator and SWIM124 mode iterator.
5910         (ix86_rotlti3): New insn_and_split pattern.
5911         (ix86_rotrti3): Ditto.
5912         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
5913         ix86_rotl{di,ti}3 patterns.
5914         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
5915         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
5916         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
5917         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
5918         code iterator and SWI mode iterator.
5919         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
5920         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
5921         code iterator.
5922         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
5923         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
5924         (bswap rotatert splitter): Add splitter.
5925         (bswap splitter): Macroize splitter using any_rotate code iterator.
5926         Add insn predicate to split only for TARGET_USE_XCHGB or when
5927         optimizing function for size.
5928
5929 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5930
5931         * config/pa/pa.c (emit_move_sequence): Remove use of
5932         deleted variable flag_argument_noalias.
5933
5934 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5935
5936         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
5937         configurations.
5938         Add to unsupported targets list.
5939         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
5940         sparc*-sun-solaris2.[567]* from target lists.
5941         * configure: Regenerate.
5942         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
5943         removal.
5944         Remove Solaris 7 patch references.
5945         (Specific, sparc-sun-solaris2.7): Removed.
5946         (sparc-sun-solaris2*): Update Solaris 7 example.
5947         (sparc64-*-solaris2*): Likewise.
5948
5949 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5950
5951         * config.build (alpha*-dec-osf4*): Remove.
5952         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
5953         of obsolete configurations.
5954         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
5955         support.
5956         * config/alpha/t-osf4: Renamed to ...
5957         * config/alpha/t-osf5: ... this.
5958         * config/alpha/osf.h: Renamed to ...
5959         * config/alpha/osf5.h: ... this.
5960         Merged old osf5.h contents.
5961         Update comments.
5962         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
5963         (EXTRA_SPECS): Removed.
5964         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
5965         reflect removal of Tru64 UNIX V4.0/V5.0 support.
5966         Document that.
5967
5968 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5969
5970         * doc/contrib.texi (Contributors, Rainer Orth): Update.
5971
5972 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
5973
5974         PR/43702
5975         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
5976         __thiscall convention.
5977
5978 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5979
5980         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
5981         orig_base.
5982         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
5983
5984 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5985
5986         * function.c (assign_parms_initialize_all): Add unused attribute
5987         to fntype.
5988
5989 2010-04-12  Richard Guenther  <rguenther@suse.de>
5990
5991         * gsstruct.def (GSS_CALL): New.
5992         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
5993         * gimple.h: Include tree-ssa-alias.h.
5994         (struct gimple_statement_call): New.
5995         (union gimple_statement_struct_d): Add gimple_call member.
5996         (gimple_call_reset_alias_info): Declare.
5997         (gimple_call_use_set): New function.
5998         (gimple_call_clobber_set): Likewise.
5999         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
6000         * gimple.c (gimple_call_reset_alias_info): New function.
6001         (gimple_build_call_1): Call it.
6002         * lto-streamer-in.c (input_gimple_stmt): Likewise.
6003         * tree-inline.c (remap_gimple_stmt): Likewise.
6004         (expand_call_inline): Remove callused handling.
6005         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
6006         * tree-dfa.c (dump_variable): Likewise.
6007         * tree-parloops.c (parallelize_loops): Likewise.
6008         * tree-ssa.c (init_tree_ssa): Likewise.
6009         (delete_tree_ssa): Likewise.
6010         * tree-flow-inline.h (is_call_used): Remove.
6011         * tree-flow.h (struct gimple_df): Remove callused member.
6012         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
6013         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
6014         (ref_maybe_used_by_call_p_1): Simplify.
6015         (call_may_clobber_ref_p_1): Likewise.
6016         * tree-ssa-structalias.c (compute_points_to_sets): Set
6017         the call stmt used and clobbered sets.
6018         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
6019         (find_tail_calls): Verify the tail call.
6020
6021 2010-04-12  Richard Guenther  <rguenther@suse.de>
6022
6023         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
6024         single-iteration always-inline inlining.
6025         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
6026         (cgraph_decide_inlining): Do not handle always-inline specially.
6027         (try_inline): Remove always-inline cycle detection special case.
6028         Do not recurse on always-inlines.
6029         (cgraph_early_inlining): Do not iterate if not optimizing.
6030         (cgraph_gate_early_inlining): remove.
6031         (pass_early_inline): Run unconditionally.
6032         (gate_cgraph_decide_inlining): New function.
6033         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
6034         not inlining or optimizing.
6035         (cgraph_decide_inlining_of_small_functions): Also consider
6036         always-inline functions.
6037         (cgraph_default_inline_p): Return true for nodes which should
6038         disregard inline limits.
6039         (estimate_function_body_sizes): Assume zero size and time for
6040         nodes which are marked as disregarding inline limits.
6041         (cgraph_decide_recursive_inlining): Do not perform recursive
6042         inlining on always-inline nodes.
6043
6044 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
6045
6046         PR bootstrap/43699
6047         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
6048         for exprs satisfying handled_component_p.
6049
6050 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
6051
6052         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
6053         non-constant aggregate elements.
6054
6055         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
6056         is a real initialization.
6057
6058 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
6059
6060         PR c/36774
6061         * c-decl.c (start_function): Move forward check for nested function.
6062
6063 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
6064
6065         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
6066         * config/sh/sh.c: Include reload.h.
6067         (sh_legitimize_reload_address): New.
6068         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
6069         sh_legitimize_reload_address.
6070
6071 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
6072
6073         * config/sh/sh.md (*movqi_pop): New insn pattern.
6074         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
6075
6076 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
6077
6078         * config/i386/i386.md (any_shiftrt): New code iterator.
6079         (shiftrt_insn): New code attribute.
6080         (shiftrt): Ditto.
6081         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
6082         using any_shiftrt code iterator.
6083         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
6084         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
6085         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
6086         pattern from corresponding peephole2 patterns.
6087         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
6088         using any_shiftrt code iterator.
6089         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
6090         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
6091         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
6092         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
6093         *{ashr,lshr}<mode>3_cmp_zext.
6094         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
6095
6096 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
6097
6098         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
6099         scratch register.
6100         (*lshr<mode>3_cconly): Ditto.
6101
6102 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
6103
6104         * config/i386/i386.md (lshr<mode>3): Macroize expander from
6105         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
6106         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6107         pattern from *lshr{di,ti}3_1 and corresponding splitters using
6108         DWI mode iterator.
6109         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
6110         from corresponding peephole2 patterns.
6111         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
6112         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
6113         and *lshrdi3_1_rex64 using SWI mode iterator.
6114         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
6115         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
6116         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
6117         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
6118         and *lshrdi3_cmp_rex64 using SWI mode iterator.
6119         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
6120         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
6121         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
6122         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
6123         SWI mode iterator.
6124
6125 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
6126
6127         * config/i386/i386.md (ashr<mode>3): Macroize expander from
6128         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
6129         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6130         pattern from *ashr{di,ti}3_1 and corresponding splitters using
6131         DWI mode iterator.
6132         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
6133         from corresponding peephole2 patterns.
6134         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
6135         (ashrsi3_cvt): Rename from ashrsi3_31.
6136         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
6137         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
6138         and x86_64_shift_adj_3 using SWI48 mode iterator.
6139         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
6140         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
6141         and *ashrdi3_1_rex64 using SWI mode iterator.
6142         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
6143         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
6144         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
6145         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
6146         and *ashrdi3_cmp_rex64 using SWI mode iterator.
6147         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
6148         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
6149         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
6150         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
6151         SWI mode iterator.
6152         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
6153         * config/i386/i386.c (ix86_split_ashr): Update for renamed
6154         x86_shift<mode>_adj_3 expanders.
6155
6156 2010-04-10  Wei Guozhi  <carrot@google.com>
6157
6158         PR target/42601
6159         * config/arm/arm.c (arm_pic_static_addr): New function.
6160         (legitimize_pic_address): Call arm_pic_static_addr when it detects
6161         a static symbol.
6162         (arm_output_addr_const_extra): Output expression for new pattern.
6163         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
6164
6165 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
6166
6167         * ira-costs.c (record_reg_classes): Ignore alternatives that are
6168         not enabled.
6169
6170         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
6171         * web.c: Include "insn-config.h" and "recog.h".
6172         (union_match_dups): New function.
6173         (web_main): Call it.
6174         (union_defs): Don't try to recognize match_dups.
6175
6176         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
6177         if doing so would replace the entire pattern.
6178
6179 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
6180
6181         PR target/43707
6182         PR target/43709
6183         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
6184         and splitter pattern.  Change splitter operand 1 predicate to
6185         nonmemory_operand.
6186
6187 2010-04-09  Martin Jambor  <mjambor@suse.cz>
6188
6189         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
6190         lattices are addresses of CONST_DECLs with the same initial value.
6191         (ipcp_print_all_lattices): Print values of CONST_DECLs.
6192         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
6193
6194 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
6195             Bernd Schmidt  <bernds@codesourcery.com>
6196
6197         * loop-invariant.c (replace_uses): New static function.
6198         (move_invariant_reg): Use it to ensure we can replace the uses.
6199
6200 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
6201
6202         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
6203         function template.
6204         (picochip_override_options): Enable section anchors only above -O1.
6205         (picochip_reorg): Fixed a couple of build warnings.
6206
6207 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6208
6209         * configure.ac (plugin -rdynamic test): Log result.
6210         * configure: Regenerate.
6211         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
6212         (RDYNAMIC_SPEC): Define.
6213         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
6214
6215 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6216
6217         * configure.ac: Determine Sun ld version numbers.
6218         (comdat_group): Restrict GNU ld version checks to gld.
6219         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
6220         (enable_comdat): Support --enable-comdat.
6221         * configure: Regenerate.
6222         * doc/install.texi (Configuration): Document --enable-comdat.
6223
6224 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6225
6226         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
6227         * config/sol2-gld.h: ... here.
6228         * config.gcc (sparc*-*-solaris2*): Reflect this.
6229         (i[34567]86-*-solaris2*): Use it.
6230
6231 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
6232
6233         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
6234         setup_clocks_p.
6235         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
6236
6237 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6238
6239         PR 42965
6240         * diagnostic.c (diagnostic_initialize): Initialize
6241         some_warnings_are_errors.
6242         (diagnostic_finish): New.
6243         (diagnostic_action_after_output): Call it before exiting.
6244         (diagnostic_report_diagnostic): Do not print message here. Set
6245         some_warnings_are_errors.
6246         * diagnostic.h (diagnostic_context): Delete
6247         issue_warnings_are_errors_message. Add some_warnings_are_errors.
6248         (diagnostic_finish): Declare.
6249         * toplev.c (toplev_main): Call it before exit.
6250
6251 2010-04-09  Jason Merrill  <jason@redhat.com>
6252
6253         PR c++/42623
6254         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
6255         for incomplete type.
6256
6257         PR c++/41788
6258         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
6259         based on a warning flag.
6260
6261 2010-04-09  Richard Guenther  <rguenther@suse.de>
6262
6263         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
6264
6265 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
6266
6267         PR bootstrap/43684
6268         * varasm.c (default_assemble_visibility): Wrap vars that are
6269         set, but unused, by targets without GAS.
6270         * config/rs6000/rs6000.c (paired_emit_vector_compare):
6271         Remove set, but unused, vars.
6272         (rs6000_legitimize_tls_address): Likewise.
6273         (altivec_expand_dst_builtin): Likewise.
6274         * config/darwin.c (machopic_classify_symbol): Likewise.
6275         (machopic_indirection_name): Likewise.
6276
6277 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
6278
6279         * config/i386/i386.md (DWI): New mode iterator.
6280         (S): New mode attribute.
6281         (shift_operand): Ditto.
6282         (shift_immediate_operand): Ditto.
6283         (ashl_input_operand): Ditto.
6284         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
6285         using SDWIM mode iterator.
6286         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6287         pattern from *ashl{di,ti}3_1 and corresponding splitters using
6288         DWI mode iterator.
6289         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
6290         from corresponding peephole2 patterns.
6291         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
6292         and x86_64_shift_adj_1 using SWI48 mode iterator.
6293         (x86_shift<mode>_adj_2): Ditto.
6294         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
6295         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
6296         using SWI48 mode iterator.
6297         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
6298         *ashldi3_cmp_rex64 using SWI mode iterator.
6299         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
6300         *ashldi3_cconly_rex64 using SWI mode iterator.
6301         * config/i386/i386.c (ix86_split_ashl): Update for renamed
6302         x86_shift<mode>_adj_{1,2}.
6303         (ix86_split_ashr): Ditto.
6304         (ix86_split_lshr): Ditto.
6305
6306 2010-04-09  Richard Guenther  <rguenther@suse.de>
6307
6308         * target.h (builtin_conversion): Pass in input and output types.
6309         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
6310         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
6311         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
6312         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
6313
6314         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
6315         Handle AVX modes.
6316         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
6317
6318 2010-04-09  Richard Guenther  <rguenther@suse.de>
6319
6320         PR target/43152
6321         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
6322
6323 2010-04-09  Richard Guenther  <rguenther@suse.de>
6324
6325         * tree-vectorizer.h (struct _stmt_vec_info): Document
6326         that vectype is the type of the LHS.
6327         (supportable_widening_operation, supportable_narrowing_operation):
6328         Get both input and output vector types as arguments.
6329         (vect_is_simple_use_1): Declare.
6330         (get_same_sized_vectype): Likewise.
6331         * tree-vect-loop.c (vect_determine_vectorization_factor):
6332         Set STMT_VINFO_VECTYPE to the vector type of the def.
6333         (vectorizable_reduction): Adjust.
6334         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
6335         Adjust.  Specify the output vector type.
6336         (vect_pattern_recog_1): Adjust.
6337         * tree-vect-stmts.c (get_same_sized_vectype): New function.
6338         (vectorizable_call): Adjust.
6339         (vectorizable_conversion): Likewise.
6340         (vectorizable_operation): Likewise.
6341         (vectorizable_type_demotion): Likewise.
6342         (vectorizable_type_promotion): Likewise.
6343         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
6344         the def.
6345         (vect_is_simple_use_1): New function.
6346         (supportable_widening_operation): Get both input and output
6347         vector types.
6348         (supportable_narrowing_operation): Likewise.
6349         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
6350
6351 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
6352
6353         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
6354         __thiscall and _thiscall as predefined macros.
6355         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
6356         thiscall attribute handling.
6357         (ix86_comp_type_attributes): Likewise.
6358         (ix86_function_regparm): Likewise.
6359         (ix86_return_pops_args): Likewise.
6360         (init_cumulative_args): Likewise.
6361         (find_drap_reg): Likewise.
6362         (ix86_static_chain): Likewise.
6363         (x86_this_parameter): Likewise.
6364         (x86_output_mi_thunk): Likewise.
6365         (ix86_attribute_table): Add description for thiscall attribute.
6366         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
6367         * doc/extend.texi: Add documentation for thiscall.
6368
6369 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6370
6371         PR c++/28584
6372         * c.opt (Wint-to-pointer-cast): Available in C++.
6373         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
6374
6375 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
6376
6377         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
6378         * calls.c (expand_call): Pass the function type to aggregate_value_p.
6379         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
6380         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
6381         function type instead.  Reorder and simplify checks.
6382
6383         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
6384
6385 2010-04-08  Jing Yu  <jingyu@google.com>
6386             Zdenek Dvorak  <ook@ucw.cz>
6387
6388         PR tree-optimization/42720
6389         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
6390         loop unswitch conditions here from ...
6391         (tree_unswitch_single_loop): ... here.
6392
6393 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
6394
6395         * tree-if-conv.c: Fix comments and simplify logic.
6396
6397 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
6398
6399         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
6400         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
6401         (main_tree_if_conversion): Update call to tree_if_conversion.
6402
6403 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6404
6405         PR 42485
6406         * doc/invoke.texi (-b,-V): Delete.
6407         * doc/tm.texi: Do not mention -b.
6408         * gcc.c (display_help): Delete -b and -V.
6409         (process_command): Delete -b and -V.
6410         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
6411
6412 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
6413             Wolfgang Gellerich  <gellerich@de.ibm.com>
6414
6415         Implement target hook for loop unrolling
6416         * target.h (loop_unroll_adjust): Add a new target hook function.
6417         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
6418         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
6419         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
6420         (s390_loop_unroll_adjust): Implement the new target hook for s390.
6421         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
6422         target hook.
6423         (decide_unroll_stupid): Likewise.
6424
6425 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6426
6427         PR target/43643
6428         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
6429
6430 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6431
6432         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
6433         (Specific, *-*-solaris2*): Likewise.
6434         Don't prefer Sun as over GNU as.
6435
6436 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
6437
6438         * config/s390/s390.c (override_options): Adjust the z10 defaults
6439         for max-unroll-times, max-completely-peeled-insns
6440         and max-completely-peel-times.
6441
6442 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6443
6444         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
6445         instructions for z10.
6446         (s390_expand_setmem): Likewise.
6447         (s390_expand_cmpmem): Likewise.
6448
6449 2010-04-08  Richard Guenther  <rguenther@suse.de>
6450
6451         PR tree-optimization/43679
6452         * tree-ssa-pre.c (eliminate): Only propagate copies.
6453
6454 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
6455
6456         PR bootstrap/43681
6457         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
6458         set but not used variable warning.
6459
6460 2010-04-08  Wei Guozhi  <carrot@google.com>
6461
6462         PR target/41653
6463         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
6464         (arm_size_rtx_costs): Call the new function when optimized for size.
6465
6466 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
6467
6468         PR debug/43670
6469         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
6470         op0 is not a MEM, just return NULL instead of assertion
6471         failure.
6472         (discover_nonconstant_array_refs): Don't walk debug stmts.
6473
6474 2010-04-08  Doug Kwan  <dougkwan@google.com>
6475
6476         * configure.ac: Recognize gold and do not use its version number
6477         to test ld features.
6478         * configure: Regenerate.
6479
6480 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
6481
6482         PR middle-end/40815
6483         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
6484         (negate_value): Move code to push elements to broken_up_substracts ...
6485         (eliminate_plus_minus_pair): ... here.  Push operands that have no
6486         negative pair to plus_negates.
6487         (repropagate_negates, init_reassoc, fini_reassoc): Update.
6488
6489 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6490
6491         * doc/install.texi (Configuration): Move description of
6492         --enable-lto, --with-libelf*, --enable-gold from Java section to
6493         general section.
6494
6495         * doc/generic.texi (Working with declarations)
6496         (Function Properties, C and C++ Trees): Fix typos.
6497         * doc/sourcebuild.texi (Top Level): Likewise.
6498
6499 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
6500
6501         PR c/18624
6502         * tree.h (DECL_READ_P): Define.
6503         (struct tree_decl_common): Add decl_read_flag.
6504         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
6505         a set but not used warning.
6506         (merge_decls): Merge DECL_READ_P flag.
6507         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
6508         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
6509         * c-common.c (handle_used_attribute, handle_unused_attribute):
6510         Likewise.
6511         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
6512         New prototypes.
6513         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
6514         New functions.
6515         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
6516         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
6517         c_parser_binary_expression, c_parser_cast_expression,
6518         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
6519         Call default_function_array_read_conversion instead of
6520         default_function_array_conversion where needed.
6521         (c_parser_unary_expression, c_parser_conditional_expression,
6522         c_parser_postfix_expression_after_primary, c_parser_initelt):
6523         Likewise.  Call mark_exp_read where needed.
6524         (c_parser_statement_after_labels, c_parser_asm_operands,
6525         c_parser_typeof_specifier, c_parser_sizeof_expression,
6526         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
6527         where needed.
6528         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
6529         New.
6530         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
6531         (warn_unused_but_set_parameter): Default to warn_unused
6532         && extra_warnings.
6533         * doc/invoke.texi: Document -Wunused-but-set-variable and
6534         -Wunused-but-set-parameter.
6535
6536         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
6537         used count variable.
6538         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
6539         when operandN variables aren't used in the body of the expander
6540         or splitter.
6541         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
6542         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
6543         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
6544         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
6545         FOR_EACH_IMM_USE_ON_STMT): Likewise.
6546         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
6547         * tree.c (PROCESS_ARG): Likewise.
6548
6549 2010-04-07  Simon Baldwin  <simonb@google.com>
6550
6551         * diagnostic.h (diagnostic_override_option_index): New macro to
6552         set a diagnostic's option_index.
6553         * c-tree.h (c_cpp_error): Add warning reason argument.
6554         * opts.c (_warning_as_error_callback): New.
6555         (register_warning_as_error_callback): Store callback for
6556         warnings enabled via enable_warning_as_error.
6557         (enable_warning_as_error): Call callback, minor code tidy.
6558         * opts.h (register_warning_as_error_callback): Declare.
6559         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
6560         response to -Werror=.
6561         (c_common_init_options): Register warning_as_error_callback in opts.c.
6562         * common.opt: Add -Wno-cpp option.
6563         * c-common.c (struct reason_option_codes_t): Map cpp warning
6564         reason codes to gcc option indexes.
6565         * (c_option_controlling_cpp_error): New function, lookup the gcc
6566         option index for a cpp warning reason code.
6567         * (c_cpp_error): Add warning reason argument, call
6568         c_option_controlling_cpp_error for diagnostic_override_option_index.
6569         * doc/invoke.texi: Document -Wno-cpp.
6570
6571 2010-04-07  Richard Guenther  <rguenther@suse.de>
6572
6573         * ipa-reference.c (mark_load): Use get_base_address.
6574         (mark_store): Likewise.
6575
6576         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
6577         inserting GIMPLE_NOPs into the IL.
6578         * tree-ssa-structalias.c (get_constraint_for_component_ref):
6579         Explicitly strip handled components and indirect references.
6580
6581         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
6582         folding address expressions.
6583         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
6584         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
6585         operand_equal_p to compare decls.
6586         (ptr_deref_may_alias_decl_p): Likewise.
6587         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
6588         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
6589         Handle reversed comparison ops.
6590         * tree-sra.c (asm_visit_addr): Use get_base_address.
6591         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
6592         * ipa-reference.c (mark_address): Use get_base_address.
6593
6594 2010-04-07  Richard Guenther  <rguenther@suse.de>
6595
6596         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
6597         Propagate constants everywhere.
6598
6599 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
6600
6601         PR debug/43516
6602         * tree.c (MAX_INT_CACHED_PREC): Define.
6603         (nonstandard_integer_type_cache): New array.
6604         (build_nonstandard_integer_type): Cache results for precision
6605         <= MAX_INT_CACHED_PREC.
6606
6607 2010-04-07  Richard Guenther  <rguenther@suse.de>
6608
6609         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
6610         -fargument-noalias-global, -fargument-noalias-anything): Remove.
6611         * common.opt: Likewise.
6612         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
6613         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
6614         (nonoverlapping_memrefs_p): Likewise.
6615         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6616         * opts.c (common_handle_option): Handle OPT_fargument_alias,
6617         OPT_fargument_noalias, OPT_fargument_noalias_anything and
6618         OPT_fargument_noalias_global for backward compatibility.
6619
6620 2010-04-07  Richard Guenther  <rguenther@suse.de>
6621
6622         PR tree-optimization/43270
6623         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
6624         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
6625         * tree-ssa-pre.c (phi_translate_1): Adjust.
6626         (fully_constant_expression): Split out vn_reference handling to ...
6627         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
6628         Fold reads from constant strings.
6629         (vn_reference_lookup): Handle fully constant references.
6630         (vn_reference_lookup_pieces): Likewise.
6631         * Makefile.in (expmed.o-warn): Add -Wno-error.
6632
6633 2010-04-07  Martin Jambor  <mjambor@suse.cz>
6634
6635         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
6636
6637 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
6638
6639         PR driver/41594
6640         * gcc.c: Add -static-libstdc++ to list of recognized options.
6641
6642 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6643
6644         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
6645
6646 2010-04-07  Richard Guenther  <rguenther@suse.de>
6647
6648         PR middle-end/42617
6649         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
6650         bases build simple mem attributes to retain points-to information.
6651
6652 2010-04-07  Richard Guenther  <rguenther@suse.de>
6653
6654         PR middle-end/42617
6655         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
6656         preserve points-to related information.
6657
6658 2010-04-07  Richard Guenther  <rguenther@suse.de>
6659
6660         PR middle-end/42617
6661         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
6662         discard plain indirect references.
6663         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
6664         * tree.c (tree_nop_conversion): Likewise.
6665
6666 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
6667
6668         PR debug/43628
6669         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
6670
6671 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
6672
6673         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
6674         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
6675
6676 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6677
6678         * tree-if-conv.c: Fix indentation and comments.
6679
6680 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6681
6682         * tree-if-conv.c: Sort static functions in topological order.
6683
6684 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6685
6686         * tree-if-conv.c: Fix indentation and comments.
6687
6688 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6689
6690         PR middle-end/43519
6691         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
6692         lang_hooks.types.type_for_size instead of
6693         build_nonstandard_integer_type.
6694         When converting an unsigned type to signed, double its precision.
6695         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
6696         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
6697         (graphite_create_new_loop_guard): When ub + 1 wraps around,
6698         use lb <= ub.
6699
6700 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6701
6702         PR middle-end/43519
6703         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
6704         POINTER_PLUS_EXPR for pointer types.
6705
6706 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6707
6708         PR middle-end/43519
6709         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
6710         * graphite-clast-to-gimple.c: Include langhooks.h.
6711         (max_signed_precision_type): New.
6712         (max_precision_type): Takes two types as arguments.
6713         (precision_for_value): New.
6714         (precision_for_interval): New.
6715         (gcc_type_for_interval): New.
6716         (gcc_type_for_value): New.
6717         (gcc_type_for_clast_term): New.
6718         (gcc_type_for_clast_red): New.
6719         (gcc_type_for_clast_bin): New.
6720         (gcc_type_for_clast_expr): Split up into several functions.
6721         (gcc_type_for_clast_eq): Rewritten.
6722         (compute_bounds_for_level): New.
6723         (compute_type_for_level_1): New.
6724         (compute_type_for_level): New.
6725         (gcc_type_for_cloog_iv): Removed.
6726         (gcc_type_for_iv_of_clast_loop): Rewritten.
6727         (graphite_create_new_loop): Compute the lower and upper bound types
6728         with gcc_type_for_clast_expr.
6729         (graphite_create_new_loop_guard): Same.
6730         (find_cloog_iv_in_expr): Removed.
6731         (compute_cloog_iv_types_1): Removed.
6732         (compute_cloog_iv_types): Removed.
6733         (gloog): Do not call compute_cloog_iv_types.
6734         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
6735         GBB_CLOOG_IV_TYPES.
6736         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
6737         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
6738         (GBB_CLOOG_IV_TYPES): Removed.
6739
6740 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6741
6742         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
6743         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
6744         (detect_commutative_reduction): Same.
6745
6746 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6747
6748         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
6749         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
6750         argument.
6751         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
6752         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
6753         (rewrite_commutative_reductions_out_of_ssa): Same.
6754         * passes.c (execute_function_todo): Call verify_ssa for every pass
6755         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
6756         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
6757         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
6758         with an extra argument.
6759         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
6760         verify_ssa only when the extra argument is true.
6761         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
6762         with an extra argument.
6763         (tree_transform_and_unroll_loop): Same.
6764
6765 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6766
6767         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
6768         for all the passes of the LNO having LOOP_CLOSED_SSA.
6769         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
6770         * tree-loop-distribution.c (pass_loop_distribution): Same.
6771         * tree-pass.h (TODO_verify_loops): Removed.
6772         * tree-ssa-loop.c (pass_tree_loop_init): Same.
6773         (pass_lim): Same.
6774         (pass_tree_unswitch): Same.
6775         (pass_predcom): Same.
6776         (pass_vectorize): Same.
6777         (pass_linear_transform): Same.
6778         (pass_graphite_transforms): Same.
6779         (pass_iv_canon): Same.
6780         (pass_complete_unroll): Same.
6781         (pass_complete_unrolli): Same.
6782         (pass_parallelize_loops): Same.
6783         (pass_loop_prefetch): Same.
6784         (pass_iv_optimize): Same.
6785
6786 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
6787
6788         PR middle-end/32824
6789         * passes.c (init_optimization_passes): Move pass_lim before
6790         pass_copy_prop and pass_dce_loop.
6791
6792 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
6793
6794         PR target/43667
6795         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
6796         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
6797         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
6798         MULTI_* defines for 4 argument vpermil2p* builtins.
6799
6800 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
6801
6802         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
6803         * config/i386/i386.c (x86_maybe_negate_const_int): New.
6804         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
6805         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
6806         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
6807         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
6808         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
6809         Use x86_maybe_negate_const_int to output insn mnemonic.
6810         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
6811         check from instruction predicate.  Update comments.
6812         * config/i386/sync.md (sync_add<mode>): Use
6813         x86_maybe_negate_const_int to output insn mnemonic.
6814
6815 2010-04-06  Jan Hubicka  <jh@suse.cz>
6816
6817         PR tree-optimization/42906
6818         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
6819         IGNORE_SELF argument.  Set visited_control_parents for fully
6820         processed BBs.
6821         (find_obviously_necessary_stmts): Update call of
6822         mark_control_dependent_edges_necessary.
6823         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
6824
6825 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
6826
6827         * config/i386/i386.md: Remove comment about 'e' and 'E'
6828         operand modifier.
6829
6830 2010-04-06  Richard Guenther  <rguenther@suse.de>
6831
6832         PR tree-optimization/43627
6833         * tree-vrp.c (extract_range_from_unary_expr): Widenings
6834         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
6835         not varying.
6836
6837 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
6838
6839         * BASE-VER: Change to 4.6.0.
6840
6841         PR target/43638
6842         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
6843         handling.
6844
6845 2010-04-06  Richard Guenther  <rguenther@suse.de>
6846
6847         PR middle-end/43661
6848         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
6849
6850 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6851
6852         * doc/invoke.texi (Optimize Options): Document that LTO
6853         won't remove object access purely due to incompatible
6854         declarations.
6855
6856 2010-04-04  Matthias Klose  <doko@ubuntu.com>
6857
6858         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
6859         Initialize variable.
6860
6861 2010-04-03  Richard Guenther  <rguenther@suse.de>
6862
6863         PR middle-end/42509
6864         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
6865         require a non-NULL MEM_OFFSET.
6866
6867 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
6868
6869         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
6870         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
6871         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
6872         config/alpha/predicates.md, config/arm/arm.md,
6873         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
6874         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
6875         config/darwin9.h, config/darwin.c, config/darwin.h,
6876         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
6877         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
6878         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
6879         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
6880         config/mips/mips.md, config/mn10300/mn10300.c,
6881         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
6882         config/rs6000/aix.h, config/rs6000/dfp.md,
6883         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
6884         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
6885         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
6886         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
6887         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
6888         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
6889         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
6890         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
6891         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
6892         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
6893         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
6894         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
6895         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
6896         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
6897         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
6898         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
6899         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
6900         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
6901         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
6902         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
6903         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
6904         opt-functions.awk, opth-gen.awk, params.def, passes.c,
6905         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
6906         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
6907         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
6908         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
6909         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
6910         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
6911         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
6912         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
6913         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
6914         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
6915         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
6916         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
6917         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
6918         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
6919
6920 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6921
6922         PR other/43620
6923         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
6924         * aclocal.m4: Regenerate.
6925
6926 2010-04-02  Richard Guenther  <rguenther@suse.de>
6927
6928         PR tree-optimization/43629
6929         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
6930         if we have seen a constant value.
6931
6932 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
6933
6934         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
6935
6936 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
6937
6938         PR target/43469
6939         * arm.c (legitimize_tls_address): Adjust call to
6940         gen_tls_load_dot_plus_four.
6941         (arm_note_pic_base): New function.
6942         (arm_cannot_copy_insn_p): Use it.
6943         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
6944         constraint.
6945
6946 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6947
6948         PR bootstrap/43531
6949
6950         Revert:
6951         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6952
6953         * Makefile.in ($(out_object_file)): Depend on
6954         gt-$(basename $(notdir $(out_file))).h.
6955
6956 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
6957
6958         * config.gcc (lm32-*-rtems*): Add t-lm32.
6959
6960 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
6961
6962         * config.gcc: Add lm32-*-rtems*.
6963         * config/lm32/rtems.h: New file.
6964
6965 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
6966
6967         PR target/42609
6968         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
6969
6970 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
6971
6972         * dwarf2out.c (output_compilation_unit_header): For
6973         -gdwarf-4 use version 4 instead of version 3.
6974         (output_line_info): For version 4 and above emit additional
6975         maximum ops per insn header field.
6976         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
6977
6978         * dwarf2out.c (is_c_family, is_java): Remove.
6979         (lower_bound_default): New function.
6980         (add_bound_info, gen_descr_array_type_die): Use it.
6981
6982 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
6983
6984         PR debug/43325
6985         * dwarf2out.c (gen_variable_die): Allow debug info for variable
6986         re-declaration when it happens in a function.
6987
6988 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
6989
6990         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
6991         (cgraph_remove_function_insertion_hook): Same.
6992         (cgraph_call_function_insertion_hooks): Same.
6993
6994 2010-04-01  Richard Guenther  <rguenther@suse.de>
6995
6996         PR middle-end/43614
6997         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
6998         and TREE_THIS_VOLATILE.
6999         (copy_ref_info): Likewise.
7000         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
7001         * tree.c (build6_stat): Ignore side-effects of all but arg5
7002         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
7003         TARGET_MEM_REF.
7004
7005 2010-04-01  Richard Guenther  <rguenther@suse.de>
7006
7007         PR tree-optimization/43607
7008         * ipa-type-escape.c (check_call): Do not access non-existing
7009         arguments.
7010
7011 2010-04-01  Richard Guenther  <rguenther@suse.de>
7012
7013         PR middle-end/43602
7014         Revert
7015         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
7016                     Jack Howarth <howarth@bromo.med.uc.edu>
7017
7018         * tree-profile.c (tree_init_ic_make_global_vars): Make static
7019         variables TLS.
7020
7021 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7022
7023         * doc/install.texi (Prerequisites): Document libelf usability on
7024         IRIX 5/6 and Solaris 2.
7025         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
7026         Update GNU as, GNU ld requirements.
7027         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
7028         Document Sun Studio compiler download.
7029         Update and simplify as, ld recommendations.
7030         (Specific, *-*-solaris2.7): Note obsoletion, removal.
7031
7032 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7033
7034         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
7035         with_tune_32 to pentium4.
7036
7037 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
7038
7039         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
7040
7041 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7042
7043         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
7044         obsoletion, removal.
7045         Update IDO URL.
7046         Document GNU as requirement.
7047         Update configure requirements.
7048         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
7049         Recomment IRIX 6.5.18+.
7050         Document IDF/IDL requirement.
7051         Document GNU as requirement.
7052         Document GNU ld bootstrap failure.
7053         Remove freeware.sgi.com reference.
7054
7055 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7056
7057         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
7058         UNIX V4.0, V5.0 obsoletion, removal.
7059         Remove --with-gc=simple reference.
7060         Update VM requirements during bootstrap.
7061         Remove -oldas bootstrap description.
7062         Update binutils reference.
7063         Remove comparison failure note.
7064
7065 2010-03-31  Richard Guenther  <rguenther@suse.de>
7066             Zdenek Dvorak  <ook@ucw.cz>
7067             Sebastian Pop  <sebastian.pop@amd.com>
7068
7069         PR middle-end/43464
7070         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
7071         with multiple arguments.
7072         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
7073
7074 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7075
7076         * graphite-dependences.c (print_pddr): Call print_pdr with an
7077         extra argument.
7078         * graphite-poly.c (debug_pdr): Add an extra argument for the
7079         verbosity level.
7080         (print_pdr): Same.
7081         (print_pbb_domain): Same.
7082         (print_pbb): Same.
7083         (print_scop_context): Same.
7084         (print_scop): Same.
7085         (print_cloog): Same.
7086         (debug_pbb_domain): Same.
7087         (debug_pbb): Same.
7088         (print_pdrs): Same.
7089         (debug_pdrs): Same.
7090         (debug_scop_context): Same.
7091         (debug_scop): Same.
7092         (debug_cloog): Same.
7093         (print_scop_params): Same.
7094         (debug_scop_params): Same.
7095         (print_iteration_domain): Same.
7096         (print_iteration_domains): Same.
7097         (debug_iteration_domain): Same.
7098         (debug_iteration_domains): Same.
7099         (print_scattering_function): Same.
7100         (print_scattering_functions): Same.
7101         (debug_scattering_function): Same.
7102         (debug_scattering_functions): Same.
7103         * graphite-poly.h (debug_pdr): Update declaration.
7104         (print_pdr): Same.
7105         (print_pbb_domain): Same.
7106         (print_pbb): Same.
7107         (print_scop_context): Same.
7108         (print_scop): Same.
7109         (print_cloog): Same.
7110         (debug_pbb_domain): Same.
7111         (debug_pbb): Same.
7112         (print_pdrs): Same.
7113         (debug_pdrs): Same.
7114         (debug_scop_context): Same.
7115         (debug_scop): Same.
7116         (debug_cloog): Same.
7117         (print_scop_params): Same.
7118         (debug_scop_params): Same.
7119         (print_iteration_domain): Same.
7120         (print_iteration_domains): Same.
7121         (debug_iteration_domain): Same.
7122         (debug_iteration_domains): Same.
7123         (print_scattering_function): Same.
7124         (print_scattering_functions): Same.
7125         (debug_scattering_function): Same.
7126         (debug_scattering_functions): Same.
7127
7128 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7129
7130         * graphite-poly.c (print_scattering_function_1): New.
7131         (print_scattering_function): Call it.
7132         (print_scop_params): Remove spaces at the end of lines.
7133         (print_cloog): New.
7134         (debug_cloog): New.
7135         * graphite-poly.h (print_cloog): Declared.
7136         (debug_cloog): Declared.
7137
7138 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7139
7140         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
7141         in loop->header.
7142         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
7143         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
7144         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
7145         to switch between adding the IV bump in loop->latch or in loop->header.
7146
7147 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7148
7149         * graphite-poly.c (print_scattering_function): Pretty print following
7150         the scoplib format.
7151         (print_pdr): Same.
7152         (print_pbb_domain): Same.
7153         (dump_gbb_cases): Same.
7154         (dump_gbb_conditions): Same.
7155         (print_pdrs): Same.
7156         (print_pbb): Same.
7157         (print_scop_params): Same.
7158         (print_scop_context): Same.
7159         (print_scop): Same.
7160         (print_pbb_body): New.
7161         (lst_indent_to): New.
7162         (print_lst): Start new lines with a #.
7163         * graphite-poly.h (pbb_bb): New.
7164         (pbb_index): Use pbb_bb.
7165         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
7166         disjuncts.
7167         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
7168
7169 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
7170
7171         * dwarf2out.c (size_of_die): For -gdwarf-4 use
7172         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
7173         and 0 instead of 1 for dw_val_class_flag.
7174         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
7175         dw_val_class_range_list, dw_val_class_loc_list,
7176         dw_val_class_lineptr and dw_val_class_macptr, use
7177         DW_FORM_flag_present for dw_val_class_flag and
7178         DW_FORM_exprloc for dw_val_class_loc.
7179         (output_die): For -gdwarf-4 print dw_val_class_loc
7180         size as uleb128 instead of 1 or 2 bytes and don't print
7181         anything for dw_val_class_flag.
7182
7183         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
7184         instead of cselib_lookup following by tweaking locs->setting_insn.
7185
7186         PR bootstrap/43596
7187         * cselib.c (cselib_process_insn): Clear cselib_current_insn
7188         even before returning from label, setjmp call or volatile asm
7189         handling.
7190
7191 2010-03-31  Richard Guenther  <rguenther@suse.de>
7192
7193         PR middle-end/43600
7194         * cgraphunit.c (cgraph_output_in_order): Do not allocate
7195         temporary data on stack.
7196
7197 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7198
7199         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
7200         (PUSHSECTION_ASM_OP): Remove.
7201         (POPSECTION_ASM_OP): Remove.
7202         (PUSHSECTION_FORMAT): Remove.
7203         * config/sol2.h (PUSHSECTION_FORMAT): Define.
7204         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
7205         * config/sol2.c (solaris_output_init_fini): Use it.
7206
7207 2010-03-31  Jie Zhang  <jie@codesourcery.com>
7208
7209         PR 43574
7210         * opt-functions.awk (var_type_struct): Use signed char type
7211         for simple variables.
7212
7213 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7214
7215         * config/sol2.c: Include output.h.
7216         (solaris_assemble_visibility): New function.
7217         * config/t-sol2 (sol2.o): Add output.h dependency.
7218         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
7219         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
7220         Redefine.
7221
7222 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
7223
7224         PR target/43580
7225         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
7226         V2SImode or XFmode on PRE_DEC.
7227
7228         PR debug/43557
7229         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
7230         BLKmode.
7231
7232 2010-03-31  Jie Zhang  <jie@codesourcery.com>
7233
7234         PR 43562
7235         * reload.h (caller_save_initialized_p): Declare.
7236         * toplev.c (backend_init_target): Don't call
7237         init_caller_save but set caller_save_initialized_p to false.
7238         * caller-save.c (caller_save_initialized_p): Define.
7239         (init_caller_save): Check caller_save_initialized_p.
7240         * ira.c (ira): Call init_caller_save if flag_caller_saves.
7241
7242 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7243
7244         PR target/39048
7245         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
7246         and soft-fp/t-softfp to tmake_file.
7247         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
7248         (LIBGCC2_TF_CEXT): Define.
7249         (TF_SIZE): Define.
7250
7251 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
7252
7253         PR debug/42977
7254         * cselib.c (n_useless_values): Document handling of debug locs.
7255         (n_useless_debug_values, n_debug_values): New variables.
7256         (new_elt_loc_list): Don't add to debug values, keep count.
7257         (promote_debug_loc): New.
7258         (cselib_reset_table): Zero new variables.
7259         (entry_and_rtx_equal_p): Promote debug locs.
7260         (discard_useless_locs): Increment n_useless_debug_values for
7261         debug values.
7262         (remove_useless_values): Adjust n_useless_values and n_debug_values
7263         with n_useless_debug_values.
7264         (add_mem_for_addr): Promote debug locs.
7265         (cselib_lookup_mem): Likewise.
7266         (cselib_lookup_addr): Renamed to...
7267         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
7268         (cselib_log_lookup): ... this.  Turn into...
7269         (cselib_lookup_addr): ... new wrapper.
7270         (cselib_lookup_from_insn): New.
7271         (cselib_invalidate_regno): Increment n_useless_debug_values for
7272         debug values.
7273         (cselib_invalidate_mem): Likewise.
7274         (cselib_process_insn): Take n_deleted and n_debug_values into
7275         account to guard remove_useless_value call.
7276         (cselib_finish): Zero n_useless_debug_values.
7277         * cselib.h (cselib_lookup_from_insn): Declare.
7278         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
7279         (sched_analyze_2): Likewise.
7280
7281 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
7282
7283         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
7284         functions.
7285         (adjust_mems): Replace narrowing SUBREG of expression containing
7286         just PLUS, MINUS, MULT and ASHIFT of registers and constants
7287         with operations in the narrower mode.
7288
7289         PR debug/43593
7290         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
7291         regs_invalidated_by_call instead all call_used_reg_set registers.
7292
7293 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
7294
7295         PR middle-end/43430
7296         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
7297         pointer comparisons with types_compatible_p.
7298         * tree-vect-stmts.c (vectorizable_call): Same.
7299         (vectorizable_condition): Same.
7300
7301 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7302
7303         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
7304         stack check if the mask would be zero.
7305
7306 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
7307             Jack Howarth <howarth@bromo.med.uc.edu>
7308
7309         * tree-profile.c (tree_init_ic_make_global_vars): Make static
7310         variables TLS.
7311
7312 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
7313
7314         PR other/25232
7315         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
7316         and __unordtf2.
7317         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
7318         Include ___unordxf2 and ___unordtf2.
7319         * config/i386/libgcc-glibc.ver: Do not define inheritance from
7320         GCC_4.4.0 here.
7321
7322 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
7323
7324         * config/lm32/t-lm32: New file.
7325         * config.gcc: Use the above file when targetting lm32.
7326
7327 2010-03-28  Duncan Sands  <baldrick@free.fr>
7328
7329         * Makefile.in (PLUGIN_HEADERS): Add except.h.
7330
7331 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
7332
7333         PR middle-end/43431
7334         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
7335         Improve vectorization cost model diagnostic.
7336
7337 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
7338
7339         PR middle-end/43436
7340         * tree-vect-data-refs.c (vect_analyze_data_refs): When
7341         compute_data_dependences_for_loop returns false, early exit
7342         and output an extra diagnostic for the failed data reference
7343         analysis.
7344
7345 2010-03-29  Richard Guenther  <rguenther@suse.de>
7346
7347         PR tree-optimization/43560
7348         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
7349         (can_sm_ref_p): Treat stores to readonly locations as trapping.
7350
7351 2010-03-29  Jie Zhang  <jie@codesourcery.com>
7352
7353         PR 43564
7354         * toplev.c (process_options): Set optimization_default_node
7355         and optimization_current_node.
7356         * opts.c (decode_options): Don't set optimization_default_node
7357         and optimization_current_node.
7358
7359 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
7360
7361         * config/rtems.h: Abandon -qrtems_debug.
7362
7363 2010-03-28  Jan Hubicka  <jh@suse.cz>
7364
7365         PR tree-optimization/43505
7366         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
7367         map should not be copied.
7368
7369 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7370
7371         PR middle-end/41674
7372         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
7373         cdtors, set DECL_PRESERVE_P.
7374         * ipa.c (cgraph_externally_visible_p): Return true if declaration
7375         should be preseved.
7376
7377 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
7378
7379         PR tree-optimization/43528
7380         * stor-layout.c (place_field): Check that constant fits into
7381         unsigned HWI when skipping calculation of MS bitfield layout.
7382
7383 2010-03-27  Jan Hubicka  <jh@suse.cz>
7384
7385         PR middle-end/43391
7386         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
7387         notice_global_symbol work.
7388
7389 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
7390
7391         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
7392         instead of dwarf2out_decl.
7393         (struct var_loc_node): Remove section_label field.
7394         (dwarf2out_function_decl): New function.
7395         (dwarf2out_var_location): Don't set section_label field.
7396         (dwarf2out_begin_function): Don't empty decl_loc_table here.
7397
7398 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
7399
7400         PR tree-optimization/43544
7401         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
7402         First argument for builtin vectorized function hook is now a
7403         tree to be able to distinguish between machine specific and
7404         standard builtins.
7405         * targhooks.c (default_builtin_vectorized_function): Ditto.
7406         * targhooks.h (default_builtin_vectorized_function): Ditto.
7407         * target.h (struct gcc_target): Ditto.
7408         * tree-vect-stmts.c (vectorizable_function): Ditto.
7409         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
7410         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
7411         Ditto.
7412
7413 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
7414
7415         PR c/43381
7416         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
7417         nested binding iff it is a FUNCTION_DECL.
7418         (store_parm_decls_newstyle): Pass nested=true to bind for
7419         FUNCTION_DECLs amongst parameters.
7420
7421 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
7422
7423         * var-tracking.c (vt_expand_loc_callback): Don't run
7424         cselib_expand_value_rtx_cb in dummy mode if
7425         cselib_dummy_expand_value_rtx_cb returned false.
7426
7427         * var-tracking.c (emit_note_insn_var_location): For one part
7428         notes with offset 0, don't add EXPR_LIST around the location.
7429         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
7430         add_location_or_const_value_attribute): Adjust for that change.
7431
7432         PR debug/43540
7433         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
7434         into first operand and location into second.
7435         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
7436         dw_cfi_oprnd_loc for DW_CFA_expression.
7437         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
7438         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
7439         assume first argument is regnum and second argument is location.
7440
7441 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
7442
7443         PR target/42113
7444         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
7445         of scratch register to DImode.  Split to DImode comparison operator.
7446         Use SImode subreg of scratch register in the multiplication.
7447         (*cmp_sadd_sidi): Ditto.
7448         (*cmp_ssub_si): Ditto.
7449         (*cmp_ssub_sidi): Ditto.
7450
7451 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
7452
7453         PR target/43524
7454         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
7455         Remove invalid assert and wrong comment.
7456
7457 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
7458
7459         PR debug/43516
7460         * flags.h (final_insns_dump_p): New extern.
7461         * final.c (final_insns_dump_p): New variable.
7462         (rest_of_clean_state): Set it before -fdump-final-insns=
7463         dumping, clear afterwards.
7464         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
7465         MEM_ALIAS_SET on MEMs.
7466
7467 2010-03-26  David S. Miller  <davem@davemloft.net>
7468
7469         * configure.ac: Fix sparc GOTDATA_OP bug check.
7470         * configure: Rebuild.
7471
7472 2010-03-26  Alan Modra  <amodra@gmail.com>
7473
7474         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
7475
7476 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7477
7478         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
7479         TLS_SECTION_ASM_FLAG.
7480
7481 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
7482
7483         PR bootstrap/43511
7484         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
7485         Clear first_function_block_is_cold.
7486
7487         PR c/43385
7488         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
7489         argument if the argument is truth_value_p.
7490
7491 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
7492
7493         * config/rs6000/constraints.md: Update copyright year for my changes.
7494
7495         PR target/43484
7496         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
7497         used in reg+reg addressing, swap registers.
7498
7499 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
7500
7501         PR debug/43293
7502         * target.h (struct gcc_target): Add code_end hook.
7503         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
7504         if not yet defined.
7505         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
7506         * toplev.c (compile_file): Call targetm.asm_out.code_end
7507         hook before unwind info/debug info output.
7508         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
7509         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
7510         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7511         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
7512         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7513         * config/i386/i386.c (ix86_file_end): Renamed to...
7514         (ix86_code_end): ... this.  Make static.  Don't call
7515         file_end_indicate_exec_stack.  Emit unwind info using
7516         final_start_function/final_end_function.
7517         (darwin_x86_file_end): Remove.
7518         (TARGET_ASM_CODE_END): Define.
7519         * config/i386/i386.h (TARGET_ASM_FILE_END,
7520         NEED_INDICATE_EXEC_STACK): Don't define.
7521         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
7522         (TARGET_ASM_FILE_END): Define to darwin_file_end.
7523         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
7524         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
7525
7526         PR target/43498
7527         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
7528         at the beginning and final_end_function at the end.
7529         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
7530
7531 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7532
7533         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
7534         and Sun as TLS syntax.
7535         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
7536         * configure: Regenerate.
7537         * config.in: Regenerate.
7538         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
7539         (default_elf_asm_named_section): Use it.
7540         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
7541         (i386_output_dwarf_dtprel): Likewise.
7542         (output_addr_const_extra): Likewise.
7543         (output_pic_addr_const): Lowercase @GOTTPOFF.
7544         (output_addr_const_extra): Likewise.
7545         (output_pic_addr_const): Lowercase @GOTNTPOFF.
7546         (output_addr_const_extra): Likewise.
7547         (output_pic_addr_const): Lowercase @INDNTPOFF.
7548         (output_addr_const_extra): Likewise.
7549         (output_pic_addr_const): Lowercase @NTPOFF.
7550         (output_addr_const_extra): Likewise.
7551         (output_pic_addr_const): Lowercase @TPOFF.
7552         (output_addr_const_extra): Likewise.
7553         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
7554         (*tls_global_dynamic_64): Likewise.
7555         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
7556         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
7557
7558         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
7559         (ASM_OUTPUT_TLS_COMMON): Use it.
7560         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
7561
7562         PR target/38118
7563         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
7564         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
7565         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
7566         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
7567         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7568         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
7569
7570 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7571
7572         * config/i386/i386.c (override_options): Don't accept
7573         -mtls-dialect=sun any longer.
7574         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
7575         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
7576         (*tls_local_dynamic_base_32_sun): Likewise.
7577         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7578
7579 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
7580
7581         PR debug/43508
7582         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
7583         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
7584
7585         PR debug/43479
7586         * ira.c (adjust_cleared_regs): New function.
7587         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
7588
7589         PR debug/19192
7590         PR debug/43479
7591         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
7592         from gimple_block.
7593         * expr.c (expand_expr_real): Restore previous
7594         curr_insn_source_location and curr_insn_block after
7595         expand_expr_real_1 call.
7596         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
7597         instead of expand_expr_real_1.
7598
7599 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
7600
7601         PR rtl-optimization/43413
7602         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
7603         hard regs too.
7604
7605 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
7606
7607         PR target/43348
7608         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
7609         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
7610
7611 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
7612
7613         * config/i386/i386.c (ix86_target_string): Add -mfma.
7614         Fix a typo in comment.
7615
7616 2010-03-22  Mike Stump  <mikestump@comcast.net>
7617
7618         PR target/23071
7619         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
7620         Don't overly align based upon packed packed fields.
7621
7622 2010-03-22  Jason Merrill  <jason@redhat.com>
7623
7624         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
7625         Use () rather than [], and move before the element type.
7626
7627 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7628
7629         * doc/configfiles.texi (Configuration Files): Removed
7630         fixinc/Makefile*, intl/Makefile.*.
7631         * doc/makefile.texi: Fixed markup. Abstract from version
7632         control system used.
7633         (Makefile): Removed obsolete gcc/java/parse.y example.
7634         * doc/sourcebuild.texi: Likewise.
7635         (Top Level): Added config, gnattools, libdecnumber, libgcc,
7636         libgomp, libssp.  Removed fastjar.
7637         (Miscellaneous Docs): Clarify location.
7638         Added COPYING3, COPYING3.LIB.
7639         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
7640
7641 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7642
7643         PR target/38085
7644         * config/i386/i386.c (x86_function_profiler)
7645         [!NO_PROFILE_COUNTERS]: Fix typo.
7646         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
7647         instead of callq.
7648
7649 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
7650             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7651
7652         * doc/sourcebuild.texi (Test Directives): Split into six
7653         subsections, with most of the current text in new subsections
7654         Directives, Selectors, and Final Actions.
7655         (Directives): Split list of test directives into multiple
7656         subsubsections.
7657         (Selectors): Describe use and syntax of selectors.
7658         (Effective-Target Keywords): Describe all existing keywords.
7659         (Add Options): Describe features for dg-add-options.
7660         (Require Support): Describe variants of dg-require-support.
7661         (Final Actions): Describe commands to use in dg-final.
7662
7663 2010-03-22  Michael Matz  <matz@suse.de>
7664
7665         PR middle-end/43475
7666         * recog.c (validate_replace_rtx_group): Replace also in
7667         REG_EQUAL and REG_EQUIV notes.
7668
7669 2010-03-22  Richard Guenther  <rguenther@suse.de>
7670
7671         PR tree-optimization/43390
7672         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
7673         sure vector extracts are type correct.
7674
7675 2010-03-22  Richard Guenther  <rguenther@suse.de>
7676
7677         PR middle-end/40106
7678         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
7679         x * sqrt (x) even when optimizing for size if the target
7680         has native support for sqrt.
7681
7682 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
7683
7684         * varasm.c (make_decl_rtl_for_debug): Also clear
7685         flag_mudflap for the duration of make_decl_rtl call.
7686
7687         PR debug/43443
7688         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
7689         locs from preserved VALUEs.
7690
7691 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7692
7693         PR middle-end/42718
7694         * pa.md (movmemsi): Set align to one if zero.
7695         (movmemdi): Likewise.
7696
7697 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
7698
7699         PR target/42321
7700         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
7701         with their corresponding prologue pushes.
7702
7703 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
7704
7705         PR target/43156
7706         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
7707         at the begining or end.
7708         (spu_expand_epilogue): Likewise.
7709
7710 2010-03-20  Richard Guenther  <rguenther@suse.de>
7711
7712         PR rtl-optimization/43438
7713         * combine.c (make_extraction): Properly zero-/sign-extend an
7714         extraction of the low part of a CONST_INT.  Also handle
7715         CONST_DOUBLE.
7716
7717 2010-03-19  Mike Stump  <mikestump@comcast.net>
7718
7719         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
7720         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
7721         (override_options): Use SUBTARGET32_DEFAULT_CPU.
7722
7723 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
7724
7725         PR c/43211
7726         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
7727         an error.
7728
7729 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
7730
7731         PR rtl-optimization/42258
7732         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
7733         use that may match DEF.
7734
7735         PR target/40697
7736         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
7737         the cost of loading the constant rather than assuming
7738         COSTS_N_INSNS (1).
7739         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
7740         outer code is AND, do the same tests as the andsi3 expander and
7741         return COSTS_N_INSNS (1) if and is cheap.
7742
7743         * optabs.c (avoid_expensive_constant): Fix formatting.
7744
7745 2010-03-19  Michael Matz  <matz@suse.de>
7746
7747         PR c++/43116
7748         * attribs.c (decl_attributes): When rebuilding a function pointer
7749         type use the same qualifiers as the original pointer type.
7750
7751 2010-03-19  Martin Jambor  <mjambor@suse.cz>
7752
7753         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
7754         and is_gimple_ip_invariant_address.
7755
7756 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7757
7758         Revert
7759         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7760
7761         * config/arm/arm.c (arm_override_options): Turn off
7762         flag_dwarf2_cfi_asm for AAPCS variants.
7763
7764 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7765
7766         PR target/43399
7767         * config/arm/arm.c (emit_multi_reg_push): Update comments.
7768         Use PRE_MODIFY instead of PRE_DEC.
7769         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
7770         (vfp_emit_fstmd): Likewise.
7771
7772 2010-03-19  Michael Matz  <matz@suse.de>
7773
7774         PR target/43305
7775         * builtins.c (expand_builtin_interclass_mathfn,
7776         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
7777         if that fails.
7778
7779 2010-03-19  Richard Guenther  <rguenther@suse.de>
7780
7781         PR tree-optimization/43415
7782         * tree-ssa-pre.c (phi_translate): Split out worker to ...
7783         (phi_translate_1): ... this.
7784         (phi_translate): Move all caching here.  Cache all NARY
7785         and REFERENCE translations.
7786
7787 2010-03-19  David S. Miller  <davem@davemloft.net>
7788
7789         With help from Eric Botcazou.
7790         * config/sparc/sparc.c: Include dwarf2out.h.
7791         (emit_pic_helper): Delete.
7792         (pic_helper_symbol_name): Delete.
7793         (pic_helper_emitted_p): Delete.
7794         (pic_helper_needed): New.
7795         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
7796         (get_pc_thunk_name): New.
7797         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
7798         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
7799         Set pic_helper_needed to true.  Don't call emit_pic_helper.
7800         (sparc_expand_prologue): Update load_pic_register call.
7801         (sparc_output_mi_thunk): Likewise.
7802         (sparc_file_end): Emit a hidden comdat symbol for the PIC
7803         thunk if possible.  Output CFI information as needed.
7804
7805 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
7806             Jack Howarth <howarth@bromo.med.uc.edu>
7807
7808         PR target/36399
7809         * config/i386/i386.h: Fix ABI on darwin x86-32.
7810
7811 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
7812
7813         * tree.h: Declare make_decl_rtl_for_debug.
7814         * varasm.c (make_decl_rtl_for_debug): New.
7815         * dwarf2out.c (rtl_for_decl_location): Call it.
7816         * cfgexpand.c (expand_debug_expr): Call it.
7817
7818 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
7819
7820         PR bootstrap/43399
7821         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
7822         mem_mode.
7823
7824         PR bootstrap/43403
7825         * var-tracking.c (vt_init_cfa_base): Do nothing if
7826         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
7827
7828 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
7829
7830         PR debug/42873
7831         * var-tracking.c (canonicalize_vars_star): New.
7832         (dataflow_post_merge_adjust): Use it.
7833
7834 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
7835
7836         PR debug/43058
7837         * var-tracking.c (non_suitable_const): New function.
7838         (add_uses): For DEBUG_INSNs with constants, don't record any
7839         value, instead just the constant value itself.
7840         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
7841         is not VAR_LOC_UNKNOWN_P, set var to the constant.
7842         (emit_notes_in_bb): Likewise.
7843         (emit_note_insn_var_location): For onepart variables if
7844         cur_loc is a VOIDmode constant, use DECL_MODE.
7845
7846 2010-03-18  Martin Jambor  <mjambor@suse.cz>
7847
7848         PR middle-end/42450
7849         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
7850         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
7851         all non-clones.  Moved call redirection...
7852         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
7853         (cgraph_materialize_all_clones): Dispose of all
7854         combined_args_to_skip bitmaps.
7855         (verify_cgraph_node): Do not check for edges pointing to wrong
7856         nodes in inline clones.
7857         * tree-inline.c (copy_bb): Call
7858         cgraph_redirect_edge_call_stmt_to_callee.
7859         * ipa.c (cgraph_remove_unreachable_nodes): Call
7860         cgraph_node_remove_callees even when there are used clones.
7861
7862 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
7863
7864         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
7865
7866 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
7867
7868         PR target/43383
7869         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
7870         for 32bit.
7871
7872 2010-03-18  Michael Matz  <matz@suse.de>
7873
7874         PR middle-end/43419
7875         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
7876         into sqrt(x) if we need to preserve signed zeros.
7877
7878 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
7879             Eric Botcazou  <ebotcazou@adacore.com>
7880
7881         PR rtl-optimization/43360
7882         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
7883         note if we don't know its invariant status.
7884
7885 2010-03-18  Michael Matz  <matz@suse.de>
7886
7887         PR tree-optimization/43402
7888         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
7889         PHI chains of ssa names registered for update.
7890
7891 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
7892
7893         PR target/42427
7894         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
7895         non-offsettable and pre_modify update addressing.
7896         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
7897         and "2" alternatives "#".
7898         (*movdd_softfloat32): Make all alternatives "#";
7899         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
7900         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
7901         (*movdf_softfloat32): Make all alternatives "#";
7902         (movdi): Use the new DIFD mode iterator to create a common splitter
7903         for movdi, movdf and movdd patterns.
7904
7905 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
7906
7907         * common.opt (dumpdir): Remove redundant tab.
7908
7909 2010-03-17  Martin Jambor  <mjambor@suse.cz>
7910
7911         PR tree-optimization/43347
7912         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
7913         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
7914
7915 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
7916
7917         PR rtl-optimization/42216
7918         * regrename.c (create_new_chain): New function, broken out from...
7919         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
7920         appending a use to an empty chain.
7921         (build_def_use): Remove previous changes that convert OP_INOUT to
7922         OP_OUT operands; instead detect the case where an OP_INOUT operand
7923         uses a previously untracked register and create an empty chain for it.
7924
7925 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7926
7927         * doc/extend.texi (Function Attributes): Rewrite unfinished
7928         sentence in ms_abi documentation.
7929
7930 2010-03-17  Alan Modra  <amodra@gmail.com>
7931
7932         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
7933         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
7934         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
7935         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
7936
7937 2010-03-16  Richard Henderson  <rth@redhat.com>
7938
7939         PR middle-end/43365
7940         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
7941         (lower_try_finally): Save and restore eh_seq around the expansion
7942         of the try-finally.
7943
7944 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
7945
7946         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
7947         statements before splitting block.
7948
7949 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7950
7951         * doc/sourcebuild.texi (Testsuites): Fix markup.
7952         Use pathnames relative to gcc/testsuite.
7953         (Test Directives): Move description of how timeout is determined.
7954         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
7955         (C Tests): Correct gcc.misc-tests directory.
7956         Framework tests now live in gcc.test-framework.
7957
7958 2010-03-16  Richard Guenther  <rguenther@suse.de>
7959
7960         PR middle-end/43379
7961         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
7962         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
7963
7964 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
7965             Alexandre Oliva  <aoliva@redhat.com>
7966
7967         PR tree-optimization/42917
7968         * lambda-code.c (remove_iv): Skip debug statements.
7969         (lambda_loopnest_to_gcc_loopnest): Likewise.
7970         (not_interesting_stmt): Debug statements are not interesting.
7971
7972 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
7973
7974         PR debug/43051
7975         PR debug/43092
7976         * cselib.c (cselib_preserve_constants,
7977         cfa_base_preserved_val): New static variables.
7978         (preserve_only_constants): New function.
7979         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
7980         clear its REG_VALUES.  If cselib_preserve_constants, don't
7981         empty the whole hash table, but preserve there VALUEs with constants,
7982         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
7983         (cselib_preserve_cfa_base_value): New function.
7984         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
7985         (cselib_init): Change argument to int bitfield.  Set
7986         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
7987         is in it.
7988         (cselib_finish): Clear cselib_preserve_constants and
7989         cfa_base_preserved_val.
7990         * cselib.h (enum cselib_record_what): New enum.
7991         (cselib_init): Change argument to int.
7992         (cselib_preserve_cfa_base_value): New prototype.
7993         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
7994         * dse.c (dse_step1): Likewise.
7995         * cfgcleanup.c (thread_jump): Likewise.
7996         * sched-deps.c (sched_analyze): Likewise.
7997         * gcse.c (local_cprop_pass): Likewise.
7998         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
7999         If FN is non-NULL, call the callback always and whenever it returns
8000         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
8001         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
8002         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
8003         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
8004         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
8005         * var-tracking.c: Include recog.h.
8006         (bb_stack_adjust_offset): Remove.
8007         (vt_stack_adjustments): Don't call it, instead just gather the
8008         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
8009         (adjust_stack_reference): Remove.
8010         (compute_cfa_pointer): New function.
8011         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
8012         (struct adjust_mem_data): New type.
8013         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
8014         functions.
8015         (get_address_mode): New function.
8016         (replace_expr_with_values): Use it.
8017         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
8018         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
8019         (adjust_sets): Remove.
8020         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
8021         Use get_address_mode.
8022         (get_adjusted_src): Remove.
8023         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
8024         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
8025         (add_with_sets): Don't call adjust_sets.
8026         (fp_setter, vt_init_cfa_base): New functions.
8027         (vt_initialize): Change return type to bool.  Move most of pool etc.
8028         initialization to the beginning of the function from end.  Pass
8029         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
8030         If !frame_pointer_needed, call vt_stack_adjustment before mos
8031         vector is filled, call vt_init_cfa_base if argp/framep has been
8032         eliminated to sp.  If frame_pointer_needed and argp/framep has
8033         been eliminated to hard frame pointer, set
8034         hard_frame_pointer_adjustment and call vt_init_cfa_base after
8035         encountering fp setter in the prologue.  For MO_ADJUST, call
8036         log_op_type before pusing the op into mos vector, not afterwards.
8037         Call adjust_insn before cselib_process_insn/add_with_sets,
8038         call cancel_changes (0) afterwards.
8039         (variable_tracking_main_1): Adjust for vt_initialize calling
8040         vt_stack_adjustments and returning whether it succeeded or not.
8041
8042 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
8043
8044         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
8045         debug statements.
8046
8047 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
8048
8049         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
8050         has been set.
8051         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
8052         drap_reg has not been set.
8053
8054 2010-03-15  Michael Matz  <matz@suse.de>
8055
8056         PR middle-end/43300
8057         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
8058         use it to expand block copies.
8059         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
8060         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
8061         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
8062
8063 2010-03-15  Richard Guenther  <rguenther@suse.de>
8064
8065         PR tree-optimization/43367
8066         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
8067         elimination check.
8068
8069 2010-03-15  Richard Guenther  <rguenther@suse.de>
8070
8071         PR tree-optimization/43317
8072         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
8073
8074 2010-03-15  Martin Jambor  <mjambor@suse.cz>
8075
8076         PR tree-optimization/43141
8077         * tree-sra.c (create_abstract_origin): New function.
8078         (modify_function): Call create_abstract_origin.
8079
8080 2010-03-15  Chris Demetriou  <cgd@google.com>
8081
8082         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
8083         wasn't copied.
8084
8085 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8086
8087         PR middle-end/43354
8088         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
8089         call insert_out_of_ssa_copy for default definitions.
8090
8091 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8092
8093         * graphite-clast-to-gimple.c (my_long_long): Defined.
8094         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
8095         * graphite-sese-to-poly.c (my_long_long): Defined.
8096         (scop_ivs_can_be_represented): Use it.
8097
8098 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8099
8100         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
8101         graphite-max-bbs-per-function, and loop-block-tile-size.
8102         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
8103         with "maximum".
8104         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
8105
8106 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8107
8108         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
8109         forward declaration.
8110         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
8111         (add_upper_bounds_from_estimated_nit): New.
8112         (build_loop_iteration_domains): Use it.
8113
8114 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8115
8116         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
8117
8118 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8119
8120         PR middle-end/43306
8121         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
8122         should be an INTEGER_CST.  Also handle CASE_CONVERT.
8123
8124 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8125
8126         * graphite.c (graphite_initialize): To bound the number of bbs per
8127         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
8128         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
8129         * doc/invoke.texi: Document it.
8130
8131 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8132
8133         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
8134         * graphite-sese-to-poly.h (build_poly_scop): Same.
8135
8136 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8137
8138         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
8139         the number of parameters in the scop.  Use as an upper bound
8140         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
8141         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
8142         * doc/invoke.texi: Document it.
8143
8144 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
8145
8146         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
8147         * doc/c-tree.texi: Remove.
8148         * doc/generic.texi: Merge c-tree.texi here.
8149         * doc/gccint.texi (Trees): Remove menu entry.
8150         (c-tree.texi): Remove @include.
8151         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
8152         * doc/languages.texi (Reading RTL): Ditto.
8153
8154 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
8155
8156         PR target/42869
8157         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
8158
8159 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
8160
8161         PR middle-end/42431
8162         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
8163         code added to work around reload clobbering CONST insns.
8164
8165 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
8166
8167         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
8168         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
8169         (cselib_preserve_only_values): Remove retain argument, don't
8170         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
8171         * cselib.h (cselib_preserve_only_values): Remove retain argument.
8172         * var-tracking.c (micro_operation): Move insn field before union.
8173         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
8174         (struct variable_tracking_info_def): Remove n_mos field, change
8175         mos into a vector of micro_operations.
8176         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
8177         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
8178         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
8179         changing into a vector.
8180         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
8181         come before all other uops generated by add_stores.
8182         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
8183         argument removal.
8184         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
8185         a vector.  Run just one pass over the bbs instead of separate counting
8186         and computation phase.
8187         (vt_finalize): Free VTI (bb)->mos vector instead of array.
8188
8189         PR debug/43329
8190         * tree-inline.c (remap_decls): Put old_var rather than origin_var
8191         into *nonlocalized_list vector.
8192         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
8193         even if origin is non-NULL.
8194         (gen_variable_die): Likewise.
8195         (process_scope_var): Don't change origin.
8196         (gen_decl_die): Likewise.
8197         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
8198         before adding new edges instead of after it, fix moving over
8199         debug stmts.
8200
8201 2010-03-11  David S. Miller  <davem@davemloft.net>
8202
8203         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
8204         of four.
8205         * configure: Rebuild.
8206
8207 2010-03-11  Martin Jambor  <mjambor@suse.cz>
8208
8209         PR tree-optimization/43257
8210         * tree.c (assign_assembler_name_if_neeeded): New function.
8211         (free_lang_data_in_cgraph): Assembler name assignment moved to the
8212         above new function.
8213         * tree.h (assign_assembler_name_if_neeeded): Declare.
8214         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
8215         the function if needed.
8216
8217 2010-03-11  Chris Demetriou  <cgd@google.com>
8218
8219         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
8220         include/stdint-gcc.h, and include/stdint.h world-readable.
8221
8222 2010-03-11  Richard Guenther  <rguenther@suse.de>
8223
8224         PR tree-optimization/43255
8225         * tree-vrp.c (process_assert_insertions_for): Do not insert
8226         asserts for trivial conditions.
8227
8228 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8229
8230         PR tree-optimization/43280
8231         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
8232         generation.  Move calculation of size out of the if branch.
8233         (find_bswap): Modify compare number generation.
8234
8235 2010-03-11  Richard Guenther  <rguenther@suse.de>
8236
8237         PR lto/43200
8238         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
8239         (input_gimple_stmt): Fixup handled component types during
8240         operand read.  Also fix up decls in ADDR_EXPRs.
8241
8242 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
8243
8244         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
8245         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
8246
8247 2010-03-10  Jan Hubicka  <jh@suse.cz>
8248
8249         PR c/43288
8250         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
8251         * varasm.c (get_variable_section): Don't do that here...
8252         (make_decl_rtl): ... and here.
8253         (do_assemble_alias): Produce decl RTL.
8254         (assemble_alias): Likewise.
8255
8256 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
8257
8258         PR debug/43290
8259         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
8260         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
8261         of fde->vdrap_reg.
8262         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
8263         (based_loc_descr): Only express drap or vdrap regno based expressions
8264         using DW_OP_fbreg when not optimizing.
8265         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
8266         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
8267         REG_CFA_SET_VDRAP note.
8268
8269 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
8270
8271         PR tree-optimization/43236
8272         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
8273         error in calculation of base address in reverse iteration case.
8274         (generate_builtin): Take number of latch executions if the statement
8275         is in the latch.
8276
8277 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
8278
8279         PR middle-end/42859
8280         * tree-eh.c: Include pointer-set.h.
8281         (lower_eh_dispatch): Filter out duplicate case labels and
8282         remove the unneeded edge when the label is unused.  Return
8283         true when some edges are removed.
8284         (execute_lower_eh_dispatch): When any lowering resulted in
8285         removing an edge, also delete unreachable blocks.
8286
8287 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
8288
8289         PR bootstrap/43287
8290         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
8291         UNSPEC_MACHOPIC_OFFSET.
8292
8293 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
8294
8295         PR target/43294
8296         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
8297         (m68k_delegitimize_address): New function.
8298
8299 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
8300
8301         PR debug/43299
8302         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
8303
8304         PR debug/43299
8305         * var-tracking.c (adjust_sets): New function.
8306         (count_with_sets, add_with_sets): Use it.
8307         (get_adjusted_src): New inline function.
8308         (add_stores): Use it.
8309
8310         PR debug/43304
8311         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
8312         call cselib_dummy_expand_value_rtx_cb instead of
8313         cselib_expand_value_rtx_cb.
8314
8315         PR debug/43293
8316         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
8317         * config/i386/i386.c: Include debug.h and dwarf2out.h.
8318         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
8319         and .cfi_endproc around the pic thunks.
8320         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
8321         all queued unwind info register saves are saved before the call.
8322         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
8323         considered as sp-=4 for unwind info and the pop as sp+=4 which
8324         also clobbers dest, but doesn't actually restore it.
8325
8326         PR debug/43290
8327         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
8328         RTX_FRAME_RELATED_P.
8329
8330 2010-03-09  Jie Zhang  <jie@codesourcery.com>
8331
8332         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
8333         whitespaces in output template.
8334
8335 2010-03-09  Jie Zhang  <jie@codesourcery.com>
8336
8337         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
8338         out array boundary.
8339
8340 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
8341
8342         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
8343         builtins.exp in a separate job.
8344
8345 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8346
8347         * graphite-sese-to-poly.c (add_param_constraints): Use
8348         lower_bound_in_type and upper_bound_in_type.
8349
8350 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8351
8352         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
8353         instead of unsigned_type_node.
8354
8355 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8356             Reza Yazdani  <reza.yazdani@amd.com>
8357
8358         PR middle-end/43065
8359         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
8360         on pointer type parameters.
8361
8362 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
8363
8364         PR middle-end/42644
8365         PR middle-end/42130
8366         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
8367         handle conversions from pointer to integers.
8368         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
8369         induction variable, to be able to work with code generated by CLooG.
8370         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
8371         (build_poly_scop): Bail out if we cannot codegen a loop.
8372
8373 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
8374
8375         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
8376         code generation with gloog_error.
8377
8378 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8379
8380         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
8381         Call fold_convert on all the returned values.
8382         (expand_scalar_variables_expr): Pass to
8383         expand_scalar_variables_ssa_name the type of the resulting expression.
8384
8385 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8386
8387         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
8388         ppl_min_for_le_pointset.
8389         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
8390         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
8391
8392 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8393
8394         * graphite-dependences.c (map_into_dep_poly): Removed.
8395         (dependence_polyhedron_1): Use combine_context_id_scat.
8396
8397 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8398
8399         * graphite-poly.h (struct poly_scattering): Add layout documentation.
8400         (struct poly_bb): Same.
8401         (combine_context_id_scat): New.
8402
8403 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8404
8405         PR middle-end/42326
8406         * sese.c (name_defined_in_loop_p): Return false for default
8407         definitions.
8408
8409 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8410
8411         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
8412         and clean up the logic.
8413
8414 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8415
8416         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
8417         early return.
8418
8419 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
8420
8421         * var-tracking.c (remove_cselib_value_chains): Define only for
8422         ENABLE_CHECKING.
8423         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
8424         delete_slot_part, emit_notes_for_differences_1): Don't call
8425         remove_cselib_value_chains here.
8426         (set_slot_part, emit_notes_for_differences_2): Don't call
8427         add_cselib_value_chains here.
8428         (preserved_values): New vector.
8429         (preserve_value): New function.
8430         (add_uses, add_stores, vt_add_function_parameters): Use it
8431         instead of cselib_preserve_value.
8432         (changed_values_stack): New vector.
8433         (check_changed_vars_0): New function.
8434         (check_changed_vars_1, check_changed_vars_2): Use it.
8435         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
8436         changed_values_stack VALUEs.
8437         (vt_emit_notes): For all preserved_values call
8438         add_cselib_value_chains.  If ENABLE_CHECKING call
8439         remove_cselib_value_chains before verifying value_chains is empty.
8440         Initialize and free changed_values_stack.
8441         (vt_initialize): Initialize preserved_values.
8442         (vt_finalize): Free preserved_values.
8443
8444 2010-03-08  Richard Guenther  <rguenther@suse.de>
8445
8446         PR tree-optimization/43269
8447         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
8448         region detection.
8449
8450 2010-03-08  Martin Jambor  <mjambor@suse.cz>
8451
8452         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
8453         (ipa_is_param_called): Removed.
8454         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
8455         (ipa_print_node_params): Do not print the called flag.
8456         (ipa_write_node_info): Do not stream the called flag.
8457         (ipa_read_node_info): Likewise.
8458
8459 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
8460
8461         PR debug/43176
8462         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
8463         * cselib.c (struct expand_value_data): Add dummy field.
8464         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
8465         dummy to false.
8466         (cselib_dummy_expand_value_rtx_cb): New function.
8467         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
8468         any rtl.
8469         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
8470         * var-tracking.c: Include pointer-set.h.
8471         (variable): Change n_var_parts to char from int.  Add
8472         cur_loc_changed and in_changed_variables fields.
8473         (variable_canonicalize): Remove.
8474         (shared_var_p): New inline function.
8475         (unshare_variable): Maintain cur_loc_changed and
8476         in_changed_variables fields.  If var was in changed_variables,
8477         replace it there with new_var.  Just copy cur_loc instead of
8478         resetting it to something else.
8479         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
8480         (dataflow_set_union): Don't call variable_canonicalize.
8481         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
8482         of their DEBUG_EXPR_TREE_DECLs.
8483         (canonicalize_loc_order_check): Verify that cur_loc is NULL
8484         and in_changed_variables and cur_loc_changed is false.
8485         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
8486         and cur_loc_changed.  Don't update cur_loc here.
8487         (variable_merge_over_src): Don't call variable_canonicalize.
8488         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
8489         removing loc that is equal to cur_loc, clear cur_loc,
8490         set cur_loc_changed and ensure variable_was_changed is called.
8491         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
8492         compare pointers in cur_loc check, if it is equal to loc,
8493         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
8494         (variable_different_p): Remove compare_current_location argument,
8495         don't compare cur_loc.
8496         (dataflow_set_different_1): Adjust variable_different_p caller.
8497         (variable_was_changed): If dv had some var in changed_variables
8498         already, reset in_changed_variables flag for it and propagate
8499         cur_loc_changed over to the new variable.  On empty var
8500         always set cur_loc_changed.  Set in_changed_variables on whatever
8501         var is added to changed_variables.
8502         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
8503         Use shared_var_p.  When removing loc that is equal to cur_loc,
8504         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
8505         end, don't set it to something else, just call variable_was_changed.
8506         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
8507         loc being removed, clear cur_loc and set cur_loc_changed.
8508         Set cur_loc_changed if all locations have been removed.
8509         (struct expand_loc_callback_data): New type.
8510         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
8511         allocated.  Always create SUBREGs if simplify_subreg failed.
8512         Prefer to use cur_loc, when that fails and still in
8513         changed_variables (and seen first time) recompute it.  Set
8514         cur_loc_changed of variables which had to change cur_loc and
8515         compute elcd->cur_loc_changed if any of the subexpressions used
8516         had to change cur_loc.
8517         (vt_expand_loc): Adjust to pass arguments in
8518         expand_loc_callback_data structure.
8519         (vt_expand_loc_dummy): New function.
8520         (emitted_notes): New variable.
8521         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
8522         that weren't used for any other decl in current
8523         emit_notes_for_changes call call vt_expand_loc_dummy to update
8524         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
8525         first loc_chain location if NULL before.  Always use just
8526         cur_loc instead of first loc_chain location.  When cur_loc_changed
8527         is false, when not --enable-checking=rtl just don't emit any note.
8528         When rtl checking, compute the note and assert it is the same
8529         as previous note.  Clear cur_loc_changed and in_changed_variables
8530         at the end before removing from changed_variables.
8531         (check_changed_vars_3): New function.
8532         (emit_notes_for_changes): Traverse changed_vars to call
8533         check_changed_vars_3 on each changed var.
8534         (emit_notes_for_differences_1): Clear cur_loc_changed and
8535         in_changed_variables.  Recompute cur_loc of new_var.
8536         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
8537         (vt_emit_notes): Initialize and destroy emitted_notes.
8538
8539 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
8540
8541         PR rtl-optimization/42220
8542         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
8543         Use verify_reg_tracked to determine if we should use OP_OUT rather
8544         than OP_INOUT.
8545         (build_def_use): If we see an in-out operand for a register that we
8546         know nothing about, treat is an output if possible, fail the block if
8547         not.
8548
8549 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
8550
8551         PR debug/42897
8552         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
8553         permanently.
8554
8555 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
8556
8557         PR debug/42897
8558         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
8559         uses of relevant DEFs that are dead outside the loop too.
8560
8561 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
8562
8563         * var-tracking.c (dataflow_set_merge): Swap src and src2.
8564         Reverted:
8565         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
8566         PR debug/41371
8567         * var-tracking.c (values_to_unmark): New variable.
8568         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
8569         values_to_unmark vector.  Moved body to...
8570         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
8571         instead queue it into values_to_unmark vector.
8572         (vt_find_locations): Free values_to_unmark vector.
8573
8574 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
8575
8576         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
8577         (site.exp): Export them when plugins are enabled.
8578
8579 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
8580
8581         PR middle-end/42326
8582         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
8583         that contain scevs.
8584         (chrec_fold_multiply): Same.
8585
8586 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
8587
8588         PR c/43248
8589         * c-decl.c (build_compound_literal): Return early if init is
8590         an error_mark_node.
8591
8592 2010-03-04  Martin Jambor  <mjambor@suse.cz>
8593
8594         PR tree-optimization/43164
8595         PR tree-optimization/43191
8596         * tree-sra.c (type_consists_of_records_p): Reject records with
8597         zero-size bit-fields at the end.
8598
8599 2010-03-04  Mike Stump  <mikestump@comcast.net>
8600
8601         * Makefile.in (TAGS): Remove *.y.
8602
8603 2010-03-04  Richard Guenther  <rguenther@suse.de>
8604
8605         PR tree-optimization/40761
8606         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
8607         in reverse order.
8608         (my_rev_post_order_compute): New function.
8609         (init_pre): Call it.
8610
8611 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
8612
8613         PR middle-end/43209
8614         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
8615         decrease the cost of an IV candidate when the cost is infinite.
8616
8617 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8618
8619         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
8620         Use '3DNow!' for the extension of that name, ensure normal space
8621         after the string.
8622         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
8623
8624 2010-03-03  Jeff Law  <law@redhat.com>
8625
8626         * PR middle-end/32693
8627         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
8628         than gen_rtx_SUBREG.
8629         (extract_bit_field_1): Likewise.
8630
8631 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
8632
8633         * doc/sourcebuild.texi (Test directives): Document that arguments
8634         include-opts and exclude-opts are now optional for dg-skip-if,
8635         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
8636
8637 2010-03-03  Jason Merrill  <jason@redhat.com>
8638
8639         PR c++/12909
8640         * cgraph.h (varpool_node): Add extra_name field.
8641         * varpool.c (varpool_extra_name_alias): New.
8642         (varpool_assemble_decl): Emit extra name aliases.
8643         (varpool_mark_needed_node): Look past an extra name alias.
8644         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
8645         * lto-streamer-in.c (lto_input_tree): Read it.
8646         * lto-streamer-out.c (output_unreferenced_globals): Write it.
8647
8648 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
8649
8650         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
8651         (sparc*-*-solaris2*): ...this.
8652
8653 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
8654
8655         PR debug/43229
8656         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
8657         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
8658         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
8659         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
8660
8661         PR debug/43237
8662         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
8663         fallthrough to default handling, just with want_address 0 instead of 2.
8664         For single element lists, add_AT_loc directly, otherwise create an
8665         artificial variable DIE and stick location list to it.
8666
8667         PR debug/43177
8668         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
8669         (VAL_EXPR_HAS_REVERSE): Define.
8670         (reverse_op): New function.
8671         (add_stores): For reversible operations add an extra MO_VAL_USE.
8672
8673 2010-03-02  Jason Merrill  <jason@redhat.com>
8674
8675         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
8676
8677 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
8678
8679         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
8680         (sparc64-*-linux*): Likewise.
8681         (sparc64-*-solaris2*): Include assembler files before linker ones.
8682         (sparc-*-solaris2*): Simplify and reorder to match previous case.
8683         * config/sparc/gas.h: Delete.
8684         * config/sparc/sol2-64.h: Add copyright notice.
8685         * config/sparc/sol2-gas-bi.h: Likewise.
8686         * config/sparc/sol2-gld.h: Likewise.
8687         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
8688         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
8689         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
8690         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
8691         (sparc_elf_asm_named_section): Rename into...
8692         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
8693
8694 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
8695
8696         * config/alpha/alpha.c (override_options): Fix -mtune error message.
8697
8698 2010-03-02  Jeff Law  <law@redhat.com>
8699
8700         PR middle-end/42431
8701         * reload1.c (rtx_p, substitute_stack): Declare.
8702         (substitute): Record addresses of changed rtxs.
8703         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
8704         Restore the original rtx when complete.
8705         (reload): Free subsitute_stack when complete.
8706
8707 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
8708
8709         * doc/gccint.texi (menu): Add Testsuites as a chapter.
8710         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
8711         new chapter.
8712         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
8713         LTO Testing, gcov Testing, profopt Testing, compat Testing,
8714         Torture Tests): Change from subsection to section.
8715
8716 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
8717             Steven Bosscher  <steven@gcc.gnu.org>
8718
8719         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
8720         instead of bb.
8721
8722 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
8723
8724         PR middle-end/42640
8725         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
8726         the assignment from the new induction variable to the assignment
8727         of the value from the original loop PHI function.
8728
8729 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
8730             Daniel Jacobowitz  <dan@codesourcery.com>
8731
8732         * doc/sourcebuild.texi (Test directives): Clarify options to
8733         dg-skip-if.
8734
8735 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8736
8737         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
8738         Disable cfi directives unless GCC and gas agree on using read-only
8739         .eh_frame sections for 64-bit.
8740         * configure: Regenerate.
8741
8742 2010-03-01  Richard Guenther  <rguenther@suse.de>
8743
8744         PR tree-optimization/43220
8745         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
8746         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
8747
8748 2010-03-01  Richard Guenther  <rguenther@suse.de>
8749             Martin Jambor  <mjambor@suse.cz>
8750
8751         PR middle-end/41250
8752         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
8753         gimplified parameters.
8754
8755 2010-03-01  Christian Bruel  <christian.bruel@st.com>
8756
8757         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
8758
8759 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
8760
8761         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
8762
8763 2010-03-01  Richard Guenther  <rguenther@suse.de>
8764
8765         PR middle-end/43213
8766         * expr.c (expand_assignment): Use the alias-oracle to tell
8767         if the rhs aliases the result decl.
8768
8769 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8770
8771         PR pch/14940
8772         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
8773         to sol_gt_pch_get_address.
8774         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
8775         64-bit, SPARC and x86.
8776         (sol_gt_pch_get_address): New function.
8777
8778 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
8779
8780         * toplev.h (inform_n, error_n): Declare.
8781         * diagnostic.c (inform_n, error_n): New function.
8782
8783 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
8784
8785         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
8786         has no rtl yet when processing local_decls, queue it and recheck
8787         if deferred stack allocation hasn't assigned it rtl.
8788
8789 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
8790
8791         * config/sh/sh.c (unspec_bbr_uid): New.
8792         (gen_block_redirect): Use it instead of INSN_UID.
8793         (gen_far_branch): Likewise.
8794
8795 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
8796
8797         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
8798         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
8799
8800 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8801
8802         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
8803         (Warning Options): -Wno-conversion-null is valid for
8804         Objective-C++ as well.
8805         * doc/tm.texi (Named Address Spaces): Likewise.
8806         * doc/plugins.texi (Plugins): Replace TABs with spaces.
8807         * doc/tree-ssa.texi (Tree SSA): Likewise.
8808
8809 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8810
8811         PR bootstrap/43202
8812         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
8813         by default.  Don't set the default arch for
8814         i[34567]86-*-darwin*|x86_64-*-darwin*.
8815
8816 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8817
8818         PR bootstrap/43202
8819         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
8820         default.  Set the default 32bit/64bit archs with $with_arch
8821         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
8822
8823 2010-02-27  Richard Guenther  <rguenther@suse.de>
8824
8825         PR tree-optimization/43186
8826         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
8827         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
8828         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
8829         unroller iterations.
8830
8831 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8832
8833         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
8834         required and i[34567]86-*-* targets don't support 64bit ISA.
8835
8836 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
8837
8838         PR ada/43096
8839         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
8840         the same alias set.
8841
8842 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
8843
8844         * config.gcc: Set the default arch at least to Prescott for
8845         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
8846         if SSE math is enabled.
8847
8848 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8849
8850         * diagnostic.c (diagnostic_initialize): Update.
8851         (diagnostic_report_diagnostic): Test inhibit_notes_p for
8852         informative notes.
8853         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
8854         (diagnostic_inhibit_notes): New.
8855         * toplev.c (process_options): inhibit notes with -fcompare-debug.
8856
8857 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8858
8859         PR c/20631
8860         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
8861         * doc/standards.texi: Likewise.
8862         * doc/extend.texi: Likewise.
8863         * doc/trouble.texi: Likewise.
8864         * doc/cppopts.texi: Likewise.
8865         * doc/install.texi: Likewise.
8866         * c.opt (std=c90,std=gnu90): New options.
8867         * c-opts.c (c_common_handle_option): Handle them.
8868
8869 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8870
8871         PR c/24577
8872         * c-decl.c (undeclared_variable): Use an informative note.
8873
8874 2010-02-26  Richard Guenther  <rguenther@suse.de>
8875
8876         PR tree-optimization/43186
8877         * gimple.h (gimple_fold): Remove.
8878         * gimple.c (gimple_fold): Remove.  Inline into single user ...
8879         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
8880         Try harder for conditions.
8881
8882 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
8883
8884         PR debug/43190
8885         * function.c (used_types_insert): Don't skip through named pointer
8886         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
8887         and it is different from the main variant's type.
8888
8889 2010-02-26  Nick Clifton  <nickc@redhat.com>
8890
8891         * config/rx/rx.md (sminsi3): Remove bogus alternative.
8892
8893 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
8894
8895         * config.gcc: Support --with-fpmath=sse for x86.
8896
8897         * config/i386/ssemath.h: New.
8898
8899         * doc/install.texi (--with-fpmath=sse): Documented.
8900
8901 2010-02-26  Richard Guenther  <rguenther@suse.de>
8902
8903         PR tree-optimization/43188
8904         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
8905         vector types of over-aligned element type.
8906
8907 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
8908
8909         PR target/43175
8910         * config/i386/i386.c (expand_vec_perm_blend): Use correct
8911         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
8912
8913 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
8914
8915         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
8916
8917 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
8918
8919         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
8920         * var-tracking.c: Include diagnostic.h.
8921         (debug_dv): New function.
8922         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
8923
8924         PR debug/43160
8925         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
8926         (add_value_chain, add_value_chains, remove_value_chain,
8927         remove_value_chains): Handle DEBUG_EXPRs.
8928         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
8929
8930         PR debug/43161
8931         * regcprop.c (struct queued_debug_insn_change): New type.
8932         (struct value_data_entry): Add debug_insn_changes field.
8933         (struct value_data): Add n_debug_insn_changes field.
8934         (debug_insn_changes_pool): New variable.
8935         (free_debug_insn_changes, apply_debug_insn_changes,
8936         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
8937         (kill_value_one_regno): Call free_debug_insn_changes if needed.
8938         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
8939         fields.
8940         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
8941         changes for them.
8942         (copyprop_hardreg_forward_1): Don't call apply_change_group for
8943         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
8944         changes, call cprop_find_used_regs via note_stores.
8945         (copyprop_hardreg_forward): When copying vd from predecessor
8946         which has any queued DEBUG_INSN changes, make sure the pointers are
8947         cleared.  At the end call df_analyze and then if there are any
8948         DEBUG_INSN changes queued at the end of some basic block for still
8949         live registers, apply them.
8950         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
8951
8952 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
8953
8954         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
8955         (arm*-*-*): Ditto.
8956
8957 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
8958
8959         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
8960         targets.  Set the default with_cpu/with_arch from arch/cpu.
8961         Allow x86-64 and native for with_cpu/with_arch.
8962
8963 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
8964
8965         * ebitmap.c: Change calls to verify_popcount with calls to
8966         sbitmap_verify_popcount.
8967         (ebitmap_clear_bit): Fixed map->cacheindex test and
8968         map>cache update when bit clearing results in an empty
8969         element.
8970
8971 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
8972
8973         PR target/43154
8974         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
8975         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
8976         and support both V2DF and V2DI modes.
8977         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
8978         support both V2DF and V2DI modes.
8979         (general): Delete trailing whitespace from a few patterns.
8980
8981         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8982         V2DF/V2DI interleave high/low builtins.
8983
8984         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
8985         new VSX builtins.
8986
8987         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
8988         interleave high/low functions.
8989
8990 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
8991
8992         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
8993         #pragma extern_prefix.
8994
8995 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
8996
8997         PR debug/43166
8998         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
8999         BLKmode, assert op0 is a MEM and just adjust its mode.
9000
9001         PR debug/43165
9002         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
9003         if bitpos isn't multiple of mode's bitsize.
9004
9005 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9006
9007         * c.opt (-ftemplate-depth=): New.
9008         (-ftemplate-depth-): Deprecate.
9009         * optc-gen.awk: Handle -ftemplate-depth=.
9010         * opth-gen.awk: Likewise.
9011         * c-opts.c (c_common_handle_option): Likewise.
9012         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
9013
9014 2010-02-24  Jason Merrill  <jason@redhat.com>
9015
9016         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
9017
9018 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9019
9020         * cfg.c (alloc_aux_for_block): Remove inline.
9021         (alloc_aux_for_edge): Likewise.
9022
9023 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9024
9025         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
9026
9027 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9028
9029         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
9030         * config/i386/sol2-gas.h: New file.
9031         * config.gcc (i[34567]86-*-solaris2*): Use it.
9032
9033 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9034
9035         PR c/43128
9036         * c-typeck.c (ep_convert_and_check): New.
9037         (build_conditional_expr): Use it.
9038         (build_binary_op): Likewise.
9039
9040 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
9041
9042         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
9043
9044         PR debug/43150
9045         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
9046         bounds even for -O+.
9047         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
9048         expr needs to have DECL_NAME set.
9049
9050 2010-02-24  Nick Clifton  <nickc@redhat.com>
9051
9052         * config/mep/mep.c: Include gimple.h.
9053         (mep_function_uses_sp): Delete unused function.
9054         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
9055         parameters.  Use unsigned integers to count args.  Return a
9056         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
9057
9058 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
9059
9060         PR target/43107
9061         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
9062         greater or equal to nelt instead of 2 * nelt.
9063         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
9064         with nelt - 1.
9065
9066 2010-02-23  Jason Merrill  <jason@redhat.com>
9067
9068         PR debug/42800
9069         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
9070         in cfun->local_decls even if they have register types.
9071
9072         PR c++/42837
9073         * stor-layout.c (place_field): Don't warn about unnecessary
9074         DECL_PACKED if the type is packed.
9075
9076 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
9077
9078         PR target/43139
9079         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
9080         GOTOFF relocs, even when the base reg isn't pic pointer.
9081
9082 2010-02-23  Michael Matz  <matz@suse.de>
9083
9084         PR debug/43077
9085         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
9086         (expand_gimple_basic_block): Generate and use debug temps if there
9087         are debug uses left after the last real use of TERed ssa names.
9088         Unlink debug immediate uses when they are expanded.
9089
9090 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9091
9092         PR 43123
9093         * config/i386/i386.c (override_options): Reorganise to provide
9094         better error messages.
9095
9096 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9097
9098         PR middle-end/43083
9099         * graphite-scop-detection.c (create_single_exit_edge): Move
9100         the call to find_single_exit_edge to....
9101         (create_sese_edges): ...here.  Don't handle multiple edges
9102         exiting the function.
9103         (build_graphite_scops): Don't handle multiple edges
9104         exiting the function.
9105
9106 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9107
9108         PR middle-end/43097
9109         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
9110         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
9111
9112 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9113
9114         PR middle-end/43026
9115         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
9116
9117 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9118
9119         PR c++/43126
9120         * c-typeck.c (convert_arguments): Print declaration location.
9121         * c-common.c (validate_nargs): Rename as
9122         builtin_function_validate_nargs.
9123         (check_builtin_function_arguments): Update.
9124
9125 2010-02-22  Richard Guenther  <rguenther@suse.de>
9126
9127         PR lto/43045
9128         * tree-inline.c (declare_return_variable): Use the type of
9129         the call stmt lhs if available.
9130
9131 2010-02-22  Duncan Sands  <baldrick@free.fr>
9132
9133         * passes.c (register_pass): Always consider all pass lists when
9134         ref_pass_instance_number is zero.
9135
9136 2010-02-22  Richard Guenther  <rguenther@suse.de>
9137
9138         PR tree-optimization/42749
9139         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
9140         parameter.  Do arithmetic in the original type.
9141         (update_accumulator_with_ops): Likewise.
9142         (adjust_accumulator_values): Adjust.
9143
9144 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9145
9146         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
9147         (QI to BLKmode splitter): New splitter.
9148
9149 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
9150
9151         * config/i386/i386.c (initial_ix86_tune_features): Turn on
9152         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
9153
9154 2010-02-22  Richard Guenther  <rguenther@suse.de>
9155
9156         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
9157
9158 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
9159
9160         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
9161         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
9162         ($(T)crti.o, $(T)crtn.o): Remove rules.
9163
9164 2010-02-21  Tobias Burnus  <burnus@net-b.de>
9165
9166         PR fortran/35259
9167         * doc/invoke.texi (-fassociative-math): Document that this
9168         option is automatically enabled for Fortran.
9169
9170 2010-02-20  David S. Miller  <davem@davemloft.net>
9171
9172         * configure.ac: Test if linker and assembler properly support
9173         GOTDATA_OP relocations.
9174         * configure: Rebuild.
9175         * config.in: Likewise.
9176         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
9177         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
9178         (movsi_high_pic): Likewise.
9179         (movdi_lo_sum_pic): Likewise.
9180         (movdi_high_pic): Likewise.
9181         (movsi_pic_gotdata_op): New pattern.
9182         (movdi_pic_gotdata_op): Likewise.
9183         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
9184         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
9185
9186 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
9187
9188         PR target/43067
9189         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
9190         attribute to ssemul.
9191         (xop_mulv2div2di3_high): Ditto.
9192
9193 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9194
9195         PR c++/35669
9196         * c.opt (Wconversion-null): New option.
9197         * doc/invoke.texi (Wconversion-null): Document.
9198
9199 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9200
9201         * common.opt (Wlarger-than-): Add Undocumented.
9202
9203 2010-02-19  Mike Stump  <mikestump@comcast.net>
9204
9205         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
9206
9207 2010-02-19  Jason Merrill  <jason@redhat.com>
9208
9209         PR target/40332
9210         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
9211         * configure: Likewise.
9212
9213 2010-02-20  Alan Modra  <amodra@gmail.com>
9214
9215         PR middle-end/42344
9216         * cgraph.h (cgraph_make_decl_local): Declare.
9217         * cgraph.c (cgraph_make_decl_local): New function.
9218         (cgraph_make_node_local): Use it.
9219         * cgraphunit.c (cgraph_function_versioning): Likewise.
9220         * ipa.c (function_and_variable_visibility): Likewise.
9221
9222 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9223
9224         PR bootstrap/43121
9225         * except.c (sjlj_emit_function_enter): Don't call
9226         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
9227         directly.
9228         * rtl.h (add_reg_br_prob_note): Remove prototype.
9229
9230 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9231
9232         PR 41779
9233         * c-common.c (conversion_warning): Remove widening conversions
9234         before checking the conversion of integers to reals.
9235
9236 2010-02-19  Mike Stump  <mikestump@comcast.net>
9237
9238         PR middle-end/43125
9239         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
9240
9241         PR objc/43061
9242         * cgraphunit.c (process_function_and_variable_attributes): Check
9243         DECL_PRESERVE_P instead of looking up attribute "used".
9244         * ipa-pure-const.c (check_decl): Likewise.
9245         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
9246         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
9247         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
9248         instead of attribute "used".
9249         * config/sol2-c.c (solaris_pragma_init): Likewise.
9250         (solaris_pragma_fini): Likewise.
9251
9252 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9253
9254         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
9255         Use XCNEW instead of xcalloc.
9256         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
9257         XNEW instead of xmalloc.
9258         (get_fields): Use XNEWVEC instead of xmalloc.
9259
9260         PR debug/43084
9261         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
9262         populate vars array.
9263         (create_new_general_access): For debug stmts just reset value.
9264         (get_stmt_accesses): For accesses within debug stmts just record them
9265         using add_access_to_acc_sites instead of preventing the peeling or
9266         counting them as accesses.
9267
9268         PR middle-end/42233
9269         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
9270
9271 2010-02-19  Richard Guenther  <rguenther@suse.de>
9272
9273         PR tree-optimization/42916
9274         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
9275         instructions.
9276
9277 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
9278
9279         * configure.ac: Replace all uses of changequote in macro arguments
9280         with proper quoting.
9281
9282 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9283
9284         PR middle-end/42233
9285         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
9286
9287 2010-02-19  Richard Guenther  <rguenther@suse.de>
9288
9289         PR tree-optimization/42944
9290         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
9291         test for aliasing with errno.
9292
9293 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9294
9295         PR middle-end/42233
9296         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
9297         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
9298         * dojump.c: Include output.h.
9299         (inv): New inline function.
9300         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
9301         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
9302         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
9303         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
9304         argument, pass it down to other calls.
9305         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
9306         add REG_BR_PROB note to the conditional jump.
9307         * cfgexpand.c (add_reg_br_prob_note): Removed.
9308         (expand_gimple_cond): Don't call it, add the probability
9309         as last argument to jumpif_1/jumpifnot_1.
9310         * Makefile.in (dojump.o): Depend on output.h.
9311         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
9312         callers.
9313         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
9314         * stmt.c (do_jump_if_equal): Likewise.
9315         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
9316         * loop-unswitch.c (compare_and_jump_seq): Likewise.
9317         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
9318         Likewise.
9319         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
9320         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
9321         jumpifnot_1 callers.
9322         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
9323         callers.
9324         (store_expr): Adjust jumpifnot caller.
9325         (store_constructor): Adjust jumpif caller.
9326
9327         PR middle-end/42233
9328         * gimplify.c (gimple_boolify): For __builtin_expect call
9329         gimple_boolify also on its first argument.
9330
9331 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
9332
9333         * configure.ac (gnu-unique-object): Wrap regexps using [] in
9334         changequote block.
9335         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
9336         * configure: Regenerated.
9337
9338 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9339
9340         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
9341         lang_hooks.types_compatible_p instead of comptypes.
9342
9343 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
9344
9345         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
9346         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
9347         if __prefer_thumb__ is defined.
9348
9349 2010-02-18  Martin Jambor  <mjambor@suse.cz>
9350
9351         PR tree-optimization/43066
9352         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
9353         array with zero-sized element type.
9354
9355 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
9356
9357         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
9358         rtx, allocate struct var_loc_node here and return it to the
9359         caller, and only if it is actually needed.
9360         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
9361         move it earlier and return immediately if it returns NULL.
9362
9363 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
9364
9365         * config/sparc/gas.h: New file.  Restore
9366         TARGET_ASM_NAMED_SECTION to its ELF default.
9367         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
9368         check !HAVE_GNU_AS.
9369         * config/sparc/sparc.c (sparc_elf_asm_named_section):
9370         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
9371         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
9372         after sparc/sysv4.h.
9373
9374 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
9375
9376         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
9377
9378 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
9379
9380         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
9381         patterns from predicated pattern.
9382
9383 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
9384
9385         PR target/43103
9386         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
9387         for insn mnemonic suffix.
9388
9389 2010-02-17  Richard Guenther  <rguenther@suse.de>
9390
9391         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
9392         to loop PHI nodes.
9393
9394 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
9395
9396         PR debug/42918
9397         * caller-save.c (save_call_clobbered_regs): If BB ends with
9398         a DEBUG_INSN, move any notes in between last real insn and the last
9399         DEBUG_INSN after the last DEBUG_INSN.
9400
9401 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
9402
9403         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
9404         Fix return type.  Fix argument type.  Explain meaning of return value.
9405
9406 2010-02-16  Richard Guenther  <rguenther@suse.de>
9407
9408         PR tree-optimization/41043
9409         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
9410         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
9411         statements ...
9412         (vrp_visit_phi_node): ... but only for loop PHI nodes.
9413
9414 2010-02-16  Ira Rosen  <irar@il.ibm.com>
9415
9416         PR tree-optimization/43074
9417         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
9418         * tree-vect-loop.c (vect_analyze_loop_operations): Add
9419         vectorizable cycles in hybrid SLP check.
9420         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
9421
9422 2010-02-16  Richard Guenther  <rguenther@suse.de>
9423
9424         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
9425         (true_dependence): If memrefs_conflict_p computes must-alias
9426         trust it.  Move TBAA check after offset-based disambiguation.
9427         (canon_true_dependence): Likewise.
9428
9429 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
9430
9431         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
9432         * doc/invoke.texi: Document it.
9433         * var-tracking.c: Include toplev.h and params.h.
9434         (vt_find_locations): Return bool indicating success.  Compute
9435         hash sizes unconditionally.  Check new parameter, report.
9436         (variable_tracking_main_1): Check vt_find_locations results and
9437         retry.  Renamed from...
9438         (variable_tracking_main): ... this.  New wrapper to preserve
9439         flag_var_tracking_assignments.
9440         * Makefile.in (var-tracking.o): Adjust dependencies.
9441
9442 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
9443             Jakub Jelinek <jakub@redhat.com>
9444
9445         PR target/42854
9446         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
9447         if weak_import attribute is present.
9448         * config/darwin.c (machopic_select_section): Likewise.
9449
9450 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
9451
9452         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
9453         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
9454         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
9455         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
9456
9457         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
9458         types.
9459
9460         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
9461         Fix argument types.
9462
9463         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
9464         Rewrite text to refer to the names.
9465
9466 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
9467
9468         * config/i386/i386-builtin-types.def
9469         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
9470         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
9471         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
9472         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
9473         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
9474         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
9475         IX86_BUILTIN_VPERMIL2PS256.
9476         (MULTI_ARG_4_DF2_DI_I): Defined.
9477         (MULTI_ARG_4_DF2_DI_I1): Defined.
9478         (MULTI_ARG_4_SF2_SI_I): Defined.
9479         (MULTI_ARG_4_SF2_SI_I1): Defined.
9480         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
9481         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
9482         __builtin_ia32_vpermil2ps256.
9483         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9484         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9485         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
9486         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9487         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9488         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
9489         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
9490         CODE_FOR_xop_vpermil2v8sf3.
9491         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
9492         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
9493         * config/i386/xopintrin.h (_mm_permute2_pd): New.
9494         (_mm256_permute2_pd): New.
9495         (_mm_permute2_ps): New.
9496         (_mm256_permute2_ps): New.
9497
9498 2010-02-15  Nick Clifton  <nickc@redhat.com>
9499
9500         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
9501         boolean parameters.  Use emit_jump_insn when emitting a pop
9502         instruction containing a return insn.
9503         (push): Use 'true' rather than '1' as second parameter to F.
9504         (h8300_expand_prologue): Likewise.
9505         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
9506         (h8300_expand_epilogue): Likewise.
9507
9508 2010-02-15  Richard Guenther  <rguenther@suse.de>
9509
9510         PR middle-end/43068
9511         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
9512         if that is zero.
9513
9514 2010-02-15  Nick Clifton  <nickc@redhat.com>
9515
9516         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
9517         delta.
9518
9519 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
9520
9521         * intl.c (fake_ngettext): New function.
9522         * intl.h (fake_ngettext): Declare.
9523         (ngettext): Define macro.
9524         * collect2.c (notice_translated): New function.
9525         (main): Use notice_translated and ngettext.
9526         * collect2.h (notice_translated): Declare.
9527
9528 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
9529
9530         * reorg.c (delete_computation): Comment fixes.
9531         * caller-save.c (setup_save_areas): Idem.
9532         * sel-sched-dump.c (dump_lv_set): Idem.
9533         * rtl.def: Idem.
9534
9535 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9536
9537         * config/s390/s390.c (s390_sched_init): New function.
9538         (TARGET_SCHED_INIT): Target hook defined.
9539
9540 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
9541             Jack Howarth  <howarth@bromo.med.uc.edu>
9542             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
9543
9544         PR target/42982
9545         Partial revert of unintended change in fix for PR41605.
9546         * config/darwin.h: Fix typo.
9547         * config/darwin9.h: Same.
9548
9549 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
9550
9551         * c-pch.c (pch_init): Clear v.
9552
9553 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9554
9555         PR middle-end/42930
9556         * graphite-scop-detection.c (graphite_can_represent_scev): Call
9557         graphite_can_represent_init for MULT_EXPR.
9558
9559 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9560
9561         PR middle-end/42914
9562         PR middle-end/42530
9563         * graphite-sese-to-poly.c (remove_phi): New.
9564         (translate_scalar_reduction_to_array): Call remove_phi.
9565
9566 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9567
9568         PR middle-end/42771
9569         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
9570         * graphite-clast-to-gimple.h (gloog): Update declaration.
9571         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
9572         * graphite-poly.h (struct poly_bb): Add missing comments.
9573         (struct scop): Add poly_scop_p field.
9574         (POLY_SCOP_P): New.
9575         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
9576         * graphite.c (graphite_transform_loops): Build the polyhedral
9577         representation for each scop before code generation.
9578         * sese.c (rename_variables_in_operand): Removed.
9579         (rename_variables_in_expr): Return the renamed expression.
9580         (rename_sese_parameters): New.
9581         * sese.h (rename_sese_parameters): Declared.
9582
9583 2010-02-11  Richard Guenther  <rguenther@suse.de>
9584
9585         PR tree-optimization/42998
9586         * tree-ssa-pre.c (create_expression_by_pieces): Treat
9587         POINTER_PLUS_EXPR properly.
9588
9589 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9590             Changpeng Fang  <changpeng.fang@amd.com>
9591
9592         PR middle-end/40886
9593         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
9594         the cost of an IV candidate when the IV is used in a test against zero.
9595
9596         * gcc.dg/tree-ssa/ivopts-3.c: New.
9597
9598 2010-02-11  Richard Guenther  <rguenther@suse.de>
9599
9600         PR lto/41664
9601         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
9602         pointer-vs-decl case by swapping refs.  Handle some cases
9603         of pointer-vs-decl disambiguations more conservatively.
9604         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
9605         to false after expanding.
9606
9607 2010-02-11  Richard Guenther  <rguenther@suse.de>
9608
9609         PR driver/43021
9610         * gcc.c (process_command): Handle LTO file@offset case more
9611         appropriately.
9612
9613 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
9614
9615         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
9616         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
9617         of DEBUG_INSNs.
9618         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
9619
9620         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
9621         if MEM's mode size isn't DWARF2_ADDR_SIZE.
9622         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
9623         Optimize eq/ne comparisons when both arguments are known to be
9624         zero-extended.
9625         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
9626         Don't mask operands unnecessarily if they are known to be already
9627         zero-extended.
9628
9629 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
9630
9631         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
9632         instead of loop.
9633
9634 2010-02-10  Richard Guenther  <rguenther@suse.de>
9635
9636         PR tree-optimization/43017
9637         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
9638         for wrapping signed arithmetic.
9639
9640 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
9641
9642         PR debug/43010
9643         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
9644         if no debug info should be emitted for it.
9645
9646 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
9647
9648         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
9649         note when flag_exceptions is set.
9650
9651 2010-02-10  Duncan Sands  <baldrick@free.fr>
9652
9653         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
9654
9655 2010-02-10  Richard Guenther  <rguenther@suse.de>
9656
9657         PR c/43007
9658         * tree.c (get_unwidened): Handle constants.
9659         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
9660
9661 2010-02-10  Martin Jambor  <mjambor@suse.cz>
9662
9663         PR lto/42985
9664         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
9665         check for variable argument counts independently.
9666
9667 2010-02-10  Christian Bruel  <christian.bruel@st.com>
9668
9669         PR target/42841
9670         * config/sh/sh.c (find_barrier): Increase length for non delayed
9671         conditional branches.
9672
9673 2010-02-10  Christian Bruel  <christian.bruel@st.com>
9674
9675         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
9676
9677 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
9678
9679         * builtins.c (set_builtin_user_assembler_name): Also handle
9680         ffs if int is smaller than word.
9681
9682 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
9683
9684         PR middle-end/42973
9685         * ira-conflicts.c (get_dup): Remove.
9686         (process_reg_shuffles): Add new parameter.  Use it as an
9687         additional guard for copy generation.
9688         (add_insn_allocno_copies): Rewrite.
9689
9690 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
9691
9692         * common.opt (fsched2-use-traces): Preserved for backward
9693         compatibility.
9694         * doc/invoke.texi: Remove the documentation about option
9695         -fsched2-use-traces.
9696         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
9697         flag_sched2_use_traces.
9698         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
9699         the backward compatibility flag section.
9700
9701 2010-02-09  Richard Guenther  <rguenther@suse.de>
9702
9703         PR tree-optimization/43008
9704         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
9705         make HEAP variables initialized from global memory if they
9706         are not known builtin functions.
9707         (find_func_aliases): Adjust.
9708
9709 2010-02-09  Richard Guenther  <rguenther@suse.de>
9710
9711         PR tree-optimization/43000
9712         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
9713         arithmetic manually.
9714
9715 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
9716
9717         PR tree-optimization/42931
9718         * tree-loop-linear.c (try_interchange_loops): Don't call
9719         double_int_mul if estimated_loop_iterations failed.
9720
9721 2010-02-08  Martin Jambor  <mjambor@suse.cz>
9722
9723         PR middle-end/42898
9724         * tree-sra.c (build_accesses_from_assign): Do not mark in
9725         should_scalarize_away_bitmap if stmt has volatile ops.
9726         (sra_modify_assign): Do not process assigns piecemeal if if stmt
9727         has volatile ops.
9728
9729 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
9730
9731         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
9732
9733 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
9734
9735         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
9736         before the pattern.
9737
9738 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
9739
9740         PR middle-end/42946
9741         * df-core.c (df_finish_pass): Change type of saved_flags to int.
9742
9743 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
9744
9745         PR middle-end/42988
9746         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
9747         to unknown_dependence.
9748         (graphite_legal_transform_dr): Handle the unknown_dependence.
9749         (graphite_carried_dependence_level_k): Same.
9750
9751 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
9752
9753         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
9754
9755 2010-02-07  Richard Guenther  <rguenther@suse.de>
9756
9757         PR middle-end/42991
9758         * expr.c (get_inner_reference): Always initialize *pbitsize.
9759
9760 2010-02-07  Richard Guenther  <rguenther@suse.de>
9761
9762         PR middle-end/42956
9763         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
9764         new ARRAY_REFs on variable size element or minimal index arrays.
9765         Complete.
9766         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
9767         gimple_fold_indirect_ref.
9768
9769 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
9770
9771         PR target/42957
9772         * arm.c (arm_override_options): Just return if the user has specified
9773         an invalid fpu name.
9774
9775 2010-02-03  Jason Merrill  <jason@redhat.com>
9776
9777         PR c++/42870
9778         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
9779         i386_pe_maybe_record_exported_symbol.
9780
9781 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
9782
9783         PR target/42924
9784         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
9785         (pa_delegitimize_address): New function.
9786
9787 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
9788
9789         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
9790         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
9791
9792 2010-02-05  Richard Guenther  <rguenther@suse.de>
9793
9794         PR lto/42762
9795         * lto-streamer-in.c (get_resolution): Deal with references
9796         to undefined functions.
9797
9798 2010-02-05  Richard Guenther  <rguenther@suse.de>
9799
9800         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
9801         (fold_const_aggregate_ref): Likewise.
9802         (ccp_fold_stmt): Substitute loads.
9803         (maybe_fold_reference): Verify types before substituting.
9804         Unshare properly.
9805         (fold_gimple_assign): Unshare properly.
9806         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
9807
9808 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
9809
9810         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
9811         for rs6000_gen_cell_microcode.
9812
9813 2010-02-04  Richard Guenther  <rguenther@suse.de>
9814
9815         PR rtl-optimization/42952
9816         * dse.c (const_or_frame_p): Remove MEM handling.
9817
9818 2010-02-04  Nick Clifton  <nickc@redhat.com>
9819
9820         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
9821         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
9822         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
9823         (mn10300_asm_output_mi_thunk): New function.
9824         (mn10300_can_output_mu_thunk): New function.
9825         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
9826         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
9827         (FUNCTION_ARG): Delete incorrect comment.
9828
9829 2010-02-03  Jason Merrill  <jason@redhat.com>
9830
9831         PR c++/40138
9832         * fold-const.c (operand_equal_p): Handle erroneous types.
9833
9834 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
9835
9836         * config/h8300/h8300.md (can_delay): Fix attibute condition.
9837
9838 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
9839
9840         PR rtl-optimization/42941
9841         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
9842         of xmalloc.
9843
9844 2010-02-03  Jason Merrill  <jason@redhat.com>
9845
9846         PR c++/35652
9847         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
9848
9849 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
9850
9851         PR debug/42896
9852         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
9853         (cselib_reset_table): Renamed from...
9854         (cselib_reset_table_with_next_value): ... this.
9855         (cselib_get_next_uid): Renamed from...
9856         (cselib_get_next_unknown_value): ... this.
9857         * cselib.c (next_uid): Renamed from...
9858         (next_unknown_value): ... this.
9859         (cselib_clear_table): Adjust.
9860         (cselib_reset_table): Adjust.  Renamed from...
9861         (cselib_reset_table_with_next_value): ... this.
9862         (cselib_get_next_uid): Adjust.  Renamed from...
9863         (cselib_get_next_unknown_value): ... this.
9864         (get_value_hash): Use hash.
9865         (cselib_hash_rtx): Likewise.
9866         (new_cselib_val): Adjust.  Set and dump uid.
9867         (cselib_lookup_mem): Pass next_uid as hash.
9868         (cselib_subst_to_values): Likewise.
9869         (cselib_log_lookup): Dump uid.
9870         (cselib_lookup): Pass next_uid as hash.  Adjust.
9871         (cselib_process_insn): Adjust.
9872         (cselib_init): Initialize next_uid.
9873         (cselib_finish): Adjust.
9874         (dump_cselib_table): Likewise.
9875         * dse.c (canon_address): Dump value uid.
9876         * print-rtl.c (print_rtx): Print value uid.
9877         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
9878         (dvuid): New type.
9879         (dv_uid): New function, sort of renamed from...
9880         (dv_htab_hash): ... this, reimplemented in terms of it and...
9881         (dv_uid2hash): ... this.  New.
9882         (variable_htab_eq): Drop excess assertions.
9883         (tie_break_pointers): Removed.
9884         (canon_value_cmp): Compare uids.
9885         (variable_post_merge_New_vals): Print uids.
9886         (vt_add_function_parameters): Adjust.
9887         (vt_initialize): Reset table.  Adjust.
9888
9889 2010-02-03  Richard Guenther  <rguenther@suse.de>
9890
9891         PR tree-optimization/42944
9892         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
9893         (call_may_clobber_ref_p_1): Likewise.  Properly handle
9894         malloc and calloc clobbering errno.
9895
9896 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
9897
9898         * doc/invoke.texi: Fix name of sched1 dump.
9899
9900         * opts.c (decode_options): Set flag_tree_switch_conversion
9901         only conditionally on optimize >= 2.
9902
9903         * gcse.c: Assorted comment fixes in pass description.
9904
9905 2010-02-03  Anthony Green  <green@moxielogic.com>
9906
9907         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
9908         nop padding in order to maintain alignment of storage location of
9909         target function address.
9910         (moxie_trampoline_init): Store target function address at newly
9911         aligned location.
9912         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
9913         to 32.
9914         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
9915
9916 2010-02-03  Richard Guenther  <rguenther@suse.de>
9917
9918         PR middle-end/42927
9919         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
9920
9921 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9922
9923         * config.gcc: Reenable check for obsolete targets.
9924         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
9925         mips-sgi-irix6.[0-4]*.
9926
9927 2010-02-02  Nick Clifton  <nickc@redhat.com>
9928
9929         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
9930         constant size of 4 as being the same as 0.
9931         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
9932         can take values in the range 0..4.
9933
9934 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
9935
9936         PR java/41991
9937         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
9938         as _darwin10_Unwind_FindEnclosingFunction().
9939         * libgcc-libsystem.ver: New.
9940
9941 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
9942
9943         PR target/41399
9944         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
9945         implicitly set registers.
9946
9947 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
9948
9949         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
9950         (arm_override_options): Allow automatic selection of the thread
9951         pointer register if thumb2.
9952         (legitimize_pic_address): Improve code sequences for Thumb2.
9953         (arm_call_tls_get_addr): Likewise.
9954         (legitimize_tls_address): Likewise.
9955         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
9956         (pic_load_addr_32bit): ... this.  New named pattern.
9957         * thumb2.md (pic_load_addr_thumb2): Delete.
9958         (pic_load_dot_plus_four): Delete.
9959         (tls_load_dot_plus_four): New named pattern.
9960
9961 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9962
9963         PR libgomp/29986
9964         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
9965         Document fix for TLS bug.
9966
9967 2010-01-31  Richard Guenther  <rguenther@suse.de>
9968
9969         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
9970         conservatively correct.
9971
9972 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9973
9974         PR target/42850
9975         Revert:
9976         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9977
9978         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
9979
9980 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9981
9982         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
9983
9984 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
9985
9986         * config.gcc: Adjust order of makefile fragments for mingw targets.
9987
9988 2010-01-31  Richard Guenther  <rguenther@suse.de>
9989
9990         PR middle-end/42898
9991         * gimplify.c (gimplify_init_constructor): For volatile LHS
9992         initialize a temporary.
9993
9994 2010-01-31  Matthias Klose  <doko@ubuntu.com>
9995
9996         * configure.ac: Fix __stack_chk_fail check for cross builds configured
9997         --with-headers
9998         * configure: Regenerate.
9999
10000 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
10001
10002         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
10003         the same alias set and their sizes different constantness.
10004         (aliasing_component_refs_p): Revert 2009-10-24 change.
10005
10006 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10007
10008         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
10009         unused.
10010
10011 2010-01-29  Richard Guenther  <rguenther@suse.de>
10012
10013         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
10014         Assert we successfully updated the call.
10015
10016 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
10017
10018         PR rtl-optimization/42889
10019         * df.h (df_set_bb_dirty_nonlr): New prototype.
10020         * df-core.c (df_set_bb_dirty_nonlr): New function.
10021         * df-scan.c (df_insn_rescan): Call it instead of
10022         df_set_bb_dirty for DEBUG_INSNs.
10023
10024 2010-01-29  Richard Guenther  <rguenther@suse.de>
10025
10026         PR middle-end/37448
10027         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
10028         quadratic behavior in most cases.
10029
10030 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
10031
10032         PR target/42891
10033         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
10034         in the call to gen_x86_movsicc_0_m1.
10035
10036 2010-01-28  Richard Guenther  <rguenther@suse.de>
10037
10038         PR tree-optimization/42871
10039         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
10040
10041 2010-01-28  Richard Guenther  <rguenther@suse.de>
10042
10043         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
10044         into call arguments.
10045
10046 2010-01-28  Richard Guenther  <rguenther@suse.de>
10047
10048         PR middle-end/42883
10049         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
10050         the forwarder if the destination is an EH landing pad.
10051
10052 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
10053
10054         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
10055         block list passed to gimple_duplicate_sese_tail.
10056         (parallelize_loops): Avoid parallelization when the function
10057         has_nonlocal_label.
10058         Avoid parallelization when the preheader is IRREDUCIBLE.
10059         Try to optimize when estimated_loop_iterations_int is unresolved.
10060         Add the loop's location to the dump file.
10061         * tree-cfg.c (add_phi_args_after_redirect): Remove.
10062         (gimple_duplicate_sese_tail): Remove the check for the latch.
10063         Redirect nexits to the exit block.
10064         Remove handling of the incoming edges to the latch.
10065         Redirect the backedge from the copied latch to the exit bb.
10066
10067 2010-01-28  Michael Matz  <matz@suse.de>
10068
10069         PR target/42881
10070         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
10071         Wrap force_reg into a sequence, emit it before user.
10072
10073 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
10074
10075         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
10076         (arm_rev): New.
10077         (arm_legacy_rev): Likewise.
10078         (thumb_legacy_rev): Likewise.
10079
10080 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
10081
10082         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
10083         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
10084         on MEM's address failed, try avoid_constant_pool_reference and
10085         recurse if it returned something different.
10086         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
10087         address, try avoid_constant_pool_reference and recurse if it
10088         returned something different.
10089         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
10090         address and avoid_constant_pool_reference returned something
10091         different, don't set have_address.
10092
10093 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
10094
10095         PR debug/42861
10096         * var-tracking.c (val_store): Add modified argument, obey it.
10097         Adjust callers.
10098         (count_uses): Move down logging of main.
10099         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
10100         don't need resolution.
10101         (emit_notes_in_bb): Likewise.
10102
10103 2010-01-27  Richard Guenther  <rguenther@suse.de>
10104
10105         PR middle-end/42878
10106         * tree-inline.c (remap_decl): Delay remapping of SSA name
10107         default definitions until we need them.
10108
10109 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
10110
10111         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
10112         (rs6000_delegitimize_address): New function.
10113
10114         * config/s390/s390.c (s390_delegitimize_address): Call
10115         delegitimize_mem_from_attrs.
10116
10117         PR middle-end/42874
10118         * tree-inline.c (cannot_copy_type_1): Removed.
10119         (copy_forbidden): Don't forbid copying of functions containing
10120         records/unions with variable length fields.
10121
10122 2010-01-27  Christian Bruel  <christian.bruel@st.com>
10123
10124         Revert:
10125         PR target/42841
10126         * config/sh/sh.c (find_barrier): Increase length for non delayed
10127         conditional branches.
10128
10129 2010-01-27  Matthias Klose  <doko@ubuntu.com>
10130
10131         * configure.ac (gnu-unique-object): Fix ldd version check.
10132         * configure: Regenerate.
10133
10134 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10135
10136         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
10137         HAVE_GNU_AS value.
10138         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
10139         Test for HAVE_GNU_AS value.
10140
10141 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10142
10143         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
10144         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
10145         INT64_TYPE): Define.
10146         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
10147         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10148         INT_LEAST64_TYPE): Define.
10149         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
10150         UINT_LEAST64_TYPE): Define.
10151         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
10152         INT_FAST64_TYPE): Define.
10153         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10154         UINT_FAST64_TYPE): Define.
10155         (INTMAX_TYPE, UINTMAX_TYPE): Define.
10156         (INTPTR_TYPE, UINTPTR_TYPE): Define.
10157         (SIG_ATOMIC_TYPE): Define.
10158
10159 2010-01-26  Richard Guenther  <rguenther@suse.de>
10160
10161         * df-scan.c (df_scan_set_bb_info): Remove assert.
10162         (df_insn_rescan_debug_internal): Merge asserts.
10163         (df_install_ref): Likewise.
10164         (df_mark_reg): Use bitmap_set_range.
10165         (df_hard_reg_used_p): Remove assert.
10166         (df_hard_reg_used_count): Likewise.
10167
10168 2010-01-26  Richard Guenther  <rguenther@suse.de>
10169
10170         PR rtl-optimization/42685
10171         * web.c (web_main): Ignore DEBUG_INSNs.
10172
10173 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
10174
10175         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
10176
10177         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
10178         Fix types of fndecl and arglist parameters.
10179
10180 2010-01-26  Richard Guenther  <rguenther@suse.de>
10181
10182         PR middle-end/42806
10183         * tree-eh.c (unsplit_eh): Skip debug insns.
10184
10185 2010-01-26  Richard Guenther  <rguenther@suse.de>
10186
10187         PR tree-optimization/42250
10188         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
10189
10190 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
10191
10192         PR fortran/42866
10193         * omp-low.c (expand_omp_sections): Only use single_pred if
10194         l2_bb is single_pred_p.
10195
10196 2010-01-25  Christian Bruel  <christian.bruel@st.com>
10197
10198         PR target/42841
10199         * config/sh/sh.c (find_barrier): Increase length for non delayed
10200         conditional branches.
10201         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
10202
10203 2010-01-24  David S. Miller  <davem@davemloft.net>
10204
10205         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
10206         define if not using GAS.
10207         * config/sparc/sparc.c (sparc_elf_asm_named_section):
10208         Likewise.  Delete SECTION_MERGE code, which is only applicable
10209         when using GAS.
10210
10211 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
10212
10213         PR c++/42748
10214         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
10215         mangling of va_list in system headers.
10216
10217 2010-01-23  Toon Moene  <toon@moene.org>
10218
10219         * tree-predcom.c (combine_chains): Return NULL, not false.
10220
10221 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
10222
10223         * tree-loop-distribution.c (distribute_loop): Fix declaration and
10224         initialization of variable res to agree with return type.
10225
10226 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
10227
10228         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
10229         * tree-sra.c: Add include of expr.h.
10230
10231 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
10232
10233         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
10234         insert the debug stmt on the single non-EH edge from the stmt.
10235
10236 2010-01-22  Richard Henderson  <rth@redhat.com>
10237
10238         PR tree-opt/42833
10239         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
10240         the RHS until after generate_subtree_copies has insertted its
10241         code before the current statement.
10242
10243 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
10244
10245         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
10246
10247         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
10248
10249 2010-01-21  Martin Jambor  <mjambor@suse.cz>
10250
10251         PR tree-optimization/42585
10252         * tree-sra.c (struct access): New field grp_total_scalarization.
10253         (dump_access): Dump the new field.
10254         (should_scalarize_away_bitmap): New variable.
10255         (cannot_scalarize_away_bitmap): Likewise.
10256         (sra_initialize): Allocate new bitmaps.
10257         (sra_deinitialize): Free new bitmaps.
10258         (create_access_1): New function.
10259         (create_access): Parts moved to create_access_1.
10260         (type_consists_of_records_p): New function.
10261         (completely_scalarize_record): Likewise.
10262         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
10263         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
10264         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
10265         access.
10266         (analyze_all_variable_accesses): Completely scalarize small eligible
10267         records.
10268
10269 2010-01-21  Martin Jambor  <mjambor@suse.cz>
10270
10271         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
10272
10273 2010-01-21  Andrew Haley  <aph@redhat.com>
10274
10275         * gcc.c (process_command): Move lang_specific_driver before
10276         setting cc_libexec_prefix.
10277
10278 2010-01-21  Richard Guenther  <rguenther@suse.de>
10279
10280         PR middle-end/19988
10281         * fold-const.c (negate_expr_p): Pretend only negative
10282         real constants are easily negatable.
10283
10284 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
10285             Jason Merrill  <jason@redhat.com>
10286
10287         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
10288         (TYPE_TRANSPARENT_AGGR): this, for union and record.
10289         * calls.c (initialize argument_information): Handle it.
10290         * c-common.c (handle_transparent_union_attribute): Use new name.
10291         * c-decl.c (finish_struct): Ditto.
10292         * c-typeck.c (type_lists_compatible_p): Ditto.
10293         (convert_for_assignment): Use new name and also handle record.
10294         * function.c (aggregate_value_p): Handle it.
10295         (pass_by_reference): Ditto.
10296         (assign_parm_data_types): Ditto.
10297         * print-tree.c (print_node): Ditto.
10298         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
10299         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
10300         * tree.c (first_field): New fn.
10301
10302 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
10303
10304         PR target/42818
10305         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
10306         even when linking statically, for now.
10307
10308 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
10309
10310         PR debug/42715
10311         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
10312         without a cselib val.
10313         (count_uses): Accept MO_VAL_SET with no val on stores.
10314         (add_stores): Likewise.
10315
10316 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10317
10318         * var-tracking.c (check_value_val): Add a compile time assertion.
10319         (dv_is_decl_p): Simplify.
10320         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
10321         gcc_assert if ENABLE_CHECKING.
10322
10323 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
10324
10325         PR debug/42782
10326         * var-tracking.c: Include tree-flow.h.
10327         (mem_dies_at_call): New.
10328         (dataflow_set_preserve_mem_locs): Use it.
10329         (dataflow_set_remove_mem_locs): Likewise.
10330         (dump_var): Renamed from dump_variable.  Adjust all callers.
10331         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
10332         * Makefile.in (var-tracking.o): Adjust deps.
10333
10334 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
10335
10336         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
10337
10338 2010-01-20  Richard Guenther  <rguenther@suse.de>
10339
10340         PR tree-optimization/42717
10341         * tree-ssa-dce.c (get_live_post_dom): Remove.
10342         (forward_edge_to_pdom): Take an arbitrary edge to copy
10343         degenerate PHI args from.
10344         (remove_dead_stmt): Use the first post-dominator even if it
10345         does not contain live statements as redirection destination.
10346
10347 2010-01-20  Richard Guenther  <rguenther@suse.de>
10348
10349         * tree-inline.c (estimate_num_insns): Handle EH builtins.
10350
10351 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10352
10353         * sel-sched.c (create_speculation_check): Remove set but not used
10354         variable twin.
10355         (try_transformation_cache): Remove set but not used variable ds.
10356         (calculate_privileged_insns): Remove set but not used variables
10357         cur_insn and min_spec_insn.
10358         (find_best_expr): Remove set but not used variable avail_n.
10359         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
10360         variable e.
10361         * cgraphunit.c (assemble_thunk): Remove set but not used variable
10362         false_label.
10363         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
10364         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
10365         new_scop_exit_edge.
10366
10367 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
10368
10369         PR bootstrap/42786
10370         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
10371         cpu types.  Add support for *-sse3 cpu types.
10372         (x86_64-*-*): Ditto.
10373
10374 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10375
10376         PR middle-end/42803
10377         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
10378         argument, call initializer_constant_valid_p_1 instead of
10379         initializer_constant_valid_p, pass CACHE to it, return NULL
10380         immediately if first call returns NULL.
10381         (initializer_constant_valid_p_1): New function.
10382         (initializer_constant_valid_p): Use it.
10383
10384 2010-01-20  Thomas Quinot  <quinot@adacore.com>
10385
10386         * tree.def (PLACEHOLDER_EXPR): Fix comment.
10387
10388 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10389
10390         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
10391         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
10392         (loc_list_from_tree): Don't handle unsigned division.  Handle
10393         signed modulo using DW_OP_{over,over,div,mul,minus}.
10394         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
10395         modulo instead of signed.
10396
10397 2010-01-20  DJ Delorie  <dj@redhat.com>
10398
10399         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
10400         (Fpa): Pass it
10401         (h8300_emit_stack_adjustment): Propogate it.
10402         (push): Pass it.
10403         (h8300_expand_prologue): Likewise.
10404         (h8300_expand_epilogue): Likewise.
10405
10406 2010-01-19  Michael Matz  <matz@suse.de>
10407
10408         PR tree-optimization/41783
10409         * tree-data-ref.c (toplevel): Include flags.h.
10410         (dump_data_dependence_relation):  Also dump the inputs if the
10411         result will be unknown.
10412         (split_constant_offset_1): Look through some conversions.
10413         * tree-predcom.c (determine_roots_comp): Restart a new chain if
10414         the offset from last element is too large.
10415         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
10416         (reassociate_to_the_same_stmt): Handle vector registers.
10417         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
10418         (e.g. conversions).
10419         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
10420         wide_prolog_niters argument, emit widening instructions.
10421         (vect_do_peeling_for_alignment): Adjust caller, use widened
10422         variant of the iteration cound.
10423         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
10424
10425 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10426
10427         PR target/38697
10428         * config/arm/neon-testgen.m (emit_automatics): New parameter
10429         features. Adjust for Fixed_return_reg feature.
10430         (test_intrinsic): Call emit_automatics with new feature.
10431         * config/arm/neon.ml: Update copyright years.
10432         (features): New Fixed_return_reg feature.
10433         (ops): Update feature for Vget_low.
10434
10435 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
10436
10437         PR tree-optimization/42719
10438         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
10439         stmt uses.
10440
10441         PR debug/42728
10442         * fwprop.c (all_uses_available_at): Return false if def_set dest
10443         is a REG that is used in def_insn.
10444
10445 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
10446
10447         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
10448
10449         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
10450         Add argument names.
10451
10452         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
10453
10454         * target.h (struct gcc_target) <secondary_reload>: Change type
10455         of last argument to secondary_reload_info *.
10456
10457 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
10458
10459         PR target/42774
10460         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
10461         memory references with unaligned offsets.  Remove CQImode handling.
10462         (unaligned_memory_operand): Return 1 for memory references with
10463         unaligned offsets.  Remove CQImode handling.
10464
10465 2010-01-18  Richard Guenther  <rguenther@suse.de>
10466
10467         PR middle-end/39954
10468         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
10469         builtin calls.
10470
10471 2010-01-18  Richard Guenther  <rguenther@suse.de>
10472
10473         PR tree-optimization/42781
10474         * tree-ssa-structalias.c (find_what_var_points_to): Skip
10475         restrict processing only if the original variable was artificial.
10476
10477 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
10478
10479         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
10480         find number of popped argument bytes.
10481
10482         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
10483         Fix the text that describes the return value for invalid insns.
10484
10485         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
10486
10487         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
10488         Clarify what 'cost of the -dependence' is.  Fix quoting.
10489
10490         * toplev.c (default_get_pch_validity): Rename argument to "sz".
10491         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
10492
10493 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
10494
10495         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
10496         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
10497
10498 2010-01-17  Richard Guenther  <rguenther@suse.de>
10499
10500         PR middle-end/42248
10501         * function.c (split_complex_args): Take a VEC to modify.
10502         (assign_parms_augmented_arg_list): Build a VEC instead of
10503         a chain of PARM_DECLs.
10504         (assign_parms_unsplit_complex): Take a VEC of arguments.
10505         Do not fixup unmodified parms.
10506         (assign_parms): Deal with the VEC.
10507         (gimplify_parameters): Likewise.
10508
10509 2010-01-17  Richard Guenther  <rguenther@suse.de>
10510
10511         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
10512         node existence check.
10513         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
10514         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
10515         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
10516         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
10517         (gimple_execute_on_growing_pred): Likewise.
10518
10519 2010-01-17  Richard Guenther  <rguenther@suse.de>
10520
10521         PR tree-optimization/42773
10522         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
10523         (compute_antic_aux): Likewise.
10524         (compute_partial_antic_aux): Likewise.
10525
10526 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
10527
10528         PR debug/42767
10529         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
10530         and US_TRUNCATE.
10531
10532 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
10533
10534         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
10535         appearance.
10536
10537         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
10538         Fix markup for strict argument.
10539
10540         (TARGET_SCHED_REORDER2): Fix argument types.
10541
10542         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
10543         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
10544
10545         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
10546         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
10547
10548         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
10549         Add argument name.
10550
10551         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
10552         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
10553         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
10554         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
10555         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
10556
10557         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
10558
10559         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
10560
10561         (TARGET_ASM_RELOC_RW_MASK): Add return type.
10562         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
10563
10564         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
10565
10566         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
10567         Use prototype.
10568
10569         (TARGET_ASM_NAMED_SECTION): Fix argument list.
10570
10571         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
10572         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
10573
10574         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
10575
10576         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
10577
10578         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
10579         referring to it.  Fix language.
10580
10581         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
10582
10583         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
10584
10585         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
10586
10587         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
10588
10589         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
10590         '@var{stream}.  Remove stray 'and'.
10591
10592         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
10593
10594         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
10595
10596         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
10597
10598         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
10599         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
10600
10601         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
10602         Fix description of return value.
10603         Rename argument "sz" to "len."
10604
10605         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
10606         Clarify meaning of 'true' return value.
10607
10608         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
10609
10610         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
10611         rep_mode versus mode_rep.
10612
10613         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
10614
10615         (TARGET_BUILTIN_DECL): Fix name.
10616
10617         (TARGET_COMMUTATIVE_P): Fix type of first argument.
10618
10619         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
10620
10621         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
10622
10623         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
10624
10625         (TARGET_RELAXED_ORDERING): Use @deftypevr.
10626
10627         (TARGET_GET_DRAP_RTX): Note that this is a hook.
10628         Clarify language.
10629
10630         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
10631         Rename argument tm_fn to md_fn.
10632
10633         (TARGET_OPTION_PRINT): Fix argument list.
10634
10635 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
10636
10637         PR target/42664
10638         * config/i386/i386.c (ix86_fixup_binary_operands):
10639         Revert FMA4 fixup of operands.
10640
10641 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10642
10643         PR gcc/42525
10644         * Makefile.in (write_entries_to_file, install-plugin):
10645         Use \012 instead of \n with tr.
10646
10647 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
10648
10649         * configure.ac (HAVE_AS_REF): New C macro.
10650         * configure: Regenerate.
10651         * config.in: Likewise.
10652         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
10653         if HAVE_AS_REF.
10654         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
10655         if HAVE_AS_REF.
10656
10657 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
10658
10659         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
10660
10661         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
10662
10663         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
10664
10665         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
10666
10667         (TARGET_IN_SMALL_DATA_P): Fix argument type.
10668
10669         (TARGET_BINDS_LOCAL_P): Fix argument type.
10670
10671         (TARGET_ASM_FILE_END): Use prototype.
10672
10673         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
10674
10675         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
10676
10677         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
10678
10679         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
10680
10681         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
10682         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
10683
10684         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
10685         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
10686
10687         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
10688         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
10689         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
10690         (TARGET_ADDR_SPACE_CONVERT): Likewise.
10691
10692         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
10693
10694         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
10695
10696         (TARGET_INIT_BUILTINS): Use prototype.
10697
10698         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
10699         Put 'const char *' in braces.  Fix parameter types.
10700         (TARGET_INVALID_CONVERSION): Fix parameter types.
10701         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
10702         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
10703
10704         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
10705         Fix argument type.
10706
10707         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
10708
10709         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
10710
10711 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
10712
10713         * doc/tm.texi (TARGET_HELP): Fix return type.
10714
10715         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
10716         in braces.  Fix argument types.
10717
10718         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
10719
10720         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
10721
10722         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
10723
10724         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
10725         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
10726
10727         (TARGET_MANGLE_TYPE): Fix argument types.
10728
10729         (TARGET_IRA_COVER_CLASSES): Use prototype.
10730
10731         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
10732
10733         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
10734
10735         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
10736
10737         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
10738
10739         (TARGET_CALLEE_COPIES): Fix argument types.
10740
10741         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
10742
10743         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
10744
10745         (TARGET_FUNCTION_VALUE): Fix argument types.
10746
10747         (TARGET_RETURN_IN_MSB): Fix argument type.
10748
10749         (TARGET_RETURN_IN_MEMORY): Fix argument types.
10750
10751         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
10752
10753         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
10754
10755         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
10756         agree with return type.
10757
10758         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
10759
10760 2010-01-15  Jing Yu  <jingyu@google.com>
10761
10762         PR rtl-optimization/42691
10763         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
10764         a pseudo to a constant and are merged, and adjust comments.
10765
10766 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
10767
10768         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
10769
10770 2010-01-15  Richard Guenther  <rguenther@suse.de>
10771
10772         PR middle-end/42739
10773         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
10774         labels of computed or non-local gotos to the destination.
10775         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
10776         landing pad label is the first label.
10777
10778 2010-01-15  Richard Guenther  <rguenther@suse.de>
10779
10780         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
10781
10782 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
10783
10784         PR target/42747
10785         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
10786         to allow generation of the xssqrtdp instruction on power7.
10787         (sqrtdf2_fpr): Ditto.
10788
10789 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10790
10791         PR middle-end/42674
10792         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
10793         functions with noreturn attribute.
10794
10795         PR c++/42608
10796         * varasm.c (declare_weak): Add weak attribute to decl if it
10797         doesn't have one already.
10798         (assemble_external): Only add decls to weak_decls if they also
10799         have weak attribute.
10800
10801 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
10802
10803         * var-tracking.c (var_reg_delete): Don't delete the association
10804         between REGs and values or one-part variables if the register
10805         isn't clobbered.
10806
10807 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10808
10809         PR debug/42657
10810         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
10811         because its first operand is a non-localized variable.
10812
10813 2010-01-14  Martin Jambor  <mjambor@suse.cz>
10814
10815         PR tree-optimization/42706
10816         * tree-sra.c (encountered_recursive_call): New variable.
10817         (encountered_unchangable_recursive_call): Likewise.
10818         (sra_initialize): Initialize both new variables.
10819         (callsite_has_enough_arguments_p): New function.
10820         (scan_function): Call decl and flags check only for IPA-SRA, check
10821         whether there is a recursive call and whether it has enough arguments.
10822         (all_callers_have_enough_arguments_p): New function.
10823         (convert_callers): Look for recursive calls only when
10824         encountered_recursive_call is set.
10825         (ipa_early_sra): Bail out either if
10826         !all_callers_have_enough_arguments_p or
10827         encountered_unchangable_recursive_call.
10828
10829 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10830
10831         * sel-sched.c: Add 2010 to copyright years.
10832         * sel-sched-ir.c: Likewise.
10833         * sel-sched-ir.h: Likewise.
10834
10835 2010-01-14  Martin Jambor  <mjambor@suse.cz>
10836
10837         PR tree-optimization/42714
10838         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
10839         constructors specially.
10840
10841 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10842
10843         * config/i386/drivers-i386.c (detect_caches_intel):
10844         Add l2sizekb parameter and fill in.
10845         (host_detect_local_cpu): Add l2sizekb, fill in.
10846         Add Atom small cache heuristic.
10847
10848 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10849
10850         * config/i386/drivers-i386.c (detect_caches_cpuid4):
10851         Add level3 parameter and fill in.
10852         (detect_caches_intel): Handle level3 cache.
10853
10854 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10855
10856         * config/i386/drivers-i386.c (host_detect_local_cpu):
10857         Fix core duo detection.
10858
10859 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10860
10861         * config/i386/drivers-i386.c (host_detect_local_cpu):
10862         Fix Atom detection.
10863
10864 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10865
10866         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
10867         (rs6000_variable_issue_1): this.  Use...
10868         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
10869
10870 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10871
10872         * sel-sched-ir.c (sel_restore_other_notes): Rename to
10873         sel_restore_notes.  Update all callers.  Call reemit_notes
10874         for all insns.
10875
10876 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10877
10878         PR rtl-optimization/42246
10879         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
10880         loops.
10881
10882 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10883
10884         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
10885         all successors is the same as number of successors in current region.
10886
10887 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10888
10889         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
10890         to rename is not separable.  Otherwise check that its LHS is not NULL.
10891
10892 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10893
10894         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
10895
10896 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10897
10898         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
10899         available registers when failed to discover LHS register class.
10900         Fix indentation.  Update comment.
10901
10902 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10903             Alexander Monakov  <amonakov@ispras.ru>
10904
10905         PR rtl-optimization/42389
10906         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
10907         to can_issue_more.
10908         (advance_state_on_fence): Likewise.
10909         (sel_target_adjust_priority): Print debug output only when
10910         sched_verbose >= 4, not 2.
10911         (get_expr_cost): Do not issue all unique insns on the next cycle.
10912         (fill_insns): Initialize can_issue_more from the value saved
10913         with the fence.
10914         * sel-sched-ir.c (flist_add): New parameter issue_more.
10915         Init FENCE_ISSUE_MORE with it.
10916         (merge_fences): Likewise.
10917         (init_fences): Update call to flist_add.
10918         (add_to_fences, add_clean_fence_to_fences)
10919         (add_dirty_fence_to_fences): Likewise.
10920         (move_fence_to_fences): Update call to merge_fences.
10921         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
10922         sched groups.
10923         * sel-sched-ir.h (struct _fence): New field issue_more.
10924         (FENCE_ISSUE_MORE): New accessor macro.
10925
10926 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10927
10928         PR rtl-optimization/42388
10929         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
10930         that have no predecessors nor successors.  Do not call move_bb_info
10931         for empty blocks outside of current region.
10932
10933 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10934
10935         PR rtl-optimization/42294
10936         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
10937         * sel-sched.c (move_exprs_to_boundary): Transitively add all
10938         originators' originators.
10939
10940 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10941
10942         PR rtl-optimization/39453
10943         PR rtl-optimization/42246
10944         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
10945         for pipelining_p.
10946         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
10947
10948 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10949             Alexander Monakov  <amonakov@ispras.ru>
10950
10951         PR middle-end/42245
10952         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
10953         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
10954         argument.  Update all callers.
10955         (tidy_control_flow): ... and here.  Recompute topological order
10956         of basic blocks in region if necessary.
10957         (sel_redirect_edge_and_branch): Change return type.  Return true
10958         if topological order might have been invalidated.
10959         (purge_empty_blocks): Export and move from...
10960         * sel-sched.c (purge_empty_blocks): ... here.
10961         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
10962         (maybe_tidy_empty_bb): Delete prototype.
10963         (purge_empty_blocks): Declare.
10964
10965 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
10966
10967         PR rtl-optimization/42249
10968         * sel-sched.c (try_replace_dest_reg): When chosen register
10969         and original register is the same, do not bail out early, but
10970         still check all original insns for validity of replacing destination
10971         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
10972         in this case.
10973
10974 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10975
10976         PR c/42721
10977         Port from no-undefined-overflow branch:
10978         2009-03-09  Richard Guenther  <rguenther@suse.de>
10979
10980         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
10981
10982 2010-01-14  Richard Guenther  <rguenther@suse.de>
10983
10984         PR lto/42665
10985         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
10986
10987 2010-01-14  Ira Rosen  <irar@il.ibm.com>
10988
10989         PR tree-optimization/42709
10990         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
10991         as scalar type in creation of constant vector operand.
10992
10993 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10994
10995         PR testsuite/42414
10996         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
10997         (check-parallel-%): Match `testsuite' directory component only
10998         at the end.
10999
11000 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
11001
11002         PR translation/39521
11003         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
11004         strings with _().
11005
11006 2010-01-13  Richard Guenther  <rguenther@suse.de>
11007
11008         PR tree-optimization/42730
11009         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
11010         offset zero.
11011
11012 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
11013
11014         PR target/pr42542
11015         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
11016         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
11017         them signed.
11018
11019 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
11020
11021         * config/bfin/libgcc-bfin.ver: Regenerate based on current
11022         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
11023         ___umulsi3_highpart.
11024
11025         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
11026         rather than schedule_insns if the pass is enabled.
11027
11028 2010-01-13  Martin Jambor  <mjambor@suse.cz>
11029
11030         PR tree-optimization/42704
11031         * tree-sra.c (sra_modify_assign): Do not delete assignments to
11032         SSA_NAMEs.
11033
11034 2010-01-13  Martin Jambor  <mjambor@suse.cz>
11035
11036         PR tree-optimization/42703
11037         * tree-sra.c (analyze_access_subtree): Check that we can build a
11038         reference to the original data within the aggregate.
11039
11040 2010-01-13  Richard Guenther  <rguenther@suse.de>
11041
11042         PR tree-optimization/42705
11043         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
11044
11045 2010-01-13  Richard Guenther  <rguenther@suse.de>
11046
11047         PR middle-end/42716
11048         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
11049
11050 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
11051
11052         PR debug/41371
11053         * var-tracking.c (values_to_unmark): New variable.
11054         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
11055         values_to_unmark vector.  Moved body to...
11056         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
11057         instead queue it into values_to_unmark vector.
11058         (vt_find_locations): Free values_to_unmark vector.
11059
11060 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
11061
11062         * config/s390/s390.c (override_options): Set
11063         default of max-pending-list-length to 256
11064
11065 2010-01-13  Richard Guenther  <rguenther@suse.de>
11066
11067         PR lto/42678
11068         * tree-pass.h (PROP_gimple_lcx): New.
11069         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
11070         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
11071         before the final cleanup_eh.
11072         (dump_properties): Dump PROP_gimple_lcx.
11073         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
11074         (tree_lower_complex_O0): Remove.
11075         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
11076         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
11077         tree_lower_complex, schedule TODO_update_ssa.
11078         * lto-streamer-out.c (output_function): Stream the functions
11079         properties.
11080         * lto-streamer-in.c (input_function): Likewise.
11081         (lto_read_body): Do not override them here.
11082
11083 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
11084
11085         PR c/42708
11086         * c-typeck.c (build_c_cast): Fold value cast to union type before
11087         wrapping it in a CONSTRUCTOR.
11088
11089 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
11090
11091         PR rtl-optimization/42699
11092         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
11093         involved.
11094
11095 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11096
11097         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
11098         SUBTARGET_WARN_UNUSED_SPEC): Move ...
11099         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
11100         SUBTARGET_WARN_UNUSED_SPEC): ... here
11101         * config/mips/iris5.h (LIBGCC_SPEC): Define.
11102
11103 2010-01-12  Julian Brown  <julian@codesourcery.com>
11104
11105         * config/arm/neon-schedgen.ml (Utils): Don't try to
11106         open missing module.
11107         (find_with_result): New.
11108
11109 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
11110
11111         PR debug/42662
11112         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
11113         sharing when canonicalizing ({lt,ge}u (plus a b) b).
11114
11115         PR tree-optimization/42645
11116         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
11117         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
11118         decl_map, set processing_debug_stmt to -1 and return name without
11119         any remapping.
11120
11121 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
11122
11123         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
11124         binutils version, and reword target configuration description.
11125
11126 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
11127
11128         * config/avr/avr.h (LINKER_NAME): Remove.
11129
11130 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
11131
11132         PR target/42416
11133         * config/rs6000/rs6000.c (rs6000_override_options): On targets
11134         that support VSX, warn for -mno-altivec if vsx is not disabled,
11135         and disable vsx.
11136
11137 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
11138             Shujing Zhao  <pearly.zhao@oracle.com>
11139
11140         PR translation/42469
11141         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
11142         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
11143         character between option name and help text.
11144         * c.opt (imultilib): Likewise.
11145
11146 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
11147
11148         * lto-streamer-out.c (output_unreferenced_globals): Output static
11149         variables.
11150
11151 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
11152
11153         PR rtl-optimization/42621
11154         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
11155         optimizing for size.
11156         (duplicate_computed_gotos): Remove now-redundant check.
11157
11158 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
11159
11160         PR target/37454
11161         * configure.ac: Save and restore LDFLAGS and LIBS
11162         * configure: Regenerate.
11163
11164 2010-01-10  Richard Guenther  <rguenther@suse.de>
11165
11166         PR middle-end/42667
11167         * builtins.c (fold_builtin_strlen): Add type argument and
11168         convert the resulting length to it.
11169         (fold_builtin_1): Adjust.
11170
11171 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
11172
11173         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
11174         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
11175         1 insn.
11176         (num_insns_constant_wide): Adjust for that change.
11177
11178 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11179
11180         PR debug/42631
11181         * web.c (union_defs): Add used argument, to combine uses of
11182         uninitialized regs.
11183         (entry_register): Adjust type and tests of used argument.
11184         (web_main): Widen used for new use.  Pass it to union_defs.
11185         * df.h (union_defs): Adjust prototype.
11186
11187 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11188
11189         PR debug/42630
11190         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
11191         uses in new incoming argument.  Free body.
11192         (reset_debug_uses_in_loop): New.
11193         (analyze_insn_to_expand_var): Call the latter if the former found
11194         anything.  Fix whitespace.  Reject invalid dest overlaps before
11195         going through all insns in the loop.
11196
11197 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11198
11199         PR debug/42629
11200         * haifa-sched.c (dying_use_p): Debug insns don't count.
11201
11202 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11203
11204         PR middle-end/42363
11205         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
11206         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
11207         (verify_gimple_call): Reject LHS in noreturn calls.
11208
11209 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11210
11211         PR debug/42604
11212         PR debug/42395
11213         * tree-vect-loop-manip.c (adjust_info): New type.
11214         (adjust_vec): New pointer to vector.
11215         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
11216         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
11217         (slpeel_update_phis_for_duplicate_loop): Use them.
11218         (slpeel_update_phi_nodes_for_guard1): Likewise.
11219         (slpeel_update_phi_nodes_for_guard2): Likewise.
11220         (slpeel_tree_peel_loop_to_edge): Likewise.
11221         (vect_update_ivs_after_vectorizer): Likewise.
11222
11223 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11224
11225         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
11226         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
11227
11228 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11229
11230         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
11231         bogus uninitialized warning.
11232
11233 2010-01-09  Richard Guenther  <rguenther@suse.de>
11234
11235         PR middle-end/42512
11236         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
11237         the evolution is compatible with the initial condition.
11238
11239 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
11240
11241         * gcc.c (process_command): Update copyright notice dates.
11242         * gcov.c (print_version): Likewise.
11243         * gcov-dump.c (print_version): Likewise.
11244         * mips-tfile.c (main): Likewise.
11245         * mips-tdump.c (main): Likewise.
11246
11247 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
11248
11249         PR target/41885
11250         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
11251         (rotlhi3): Delete.
11252         (rotlhi3_8): Delete.
11253         (rotlsi3): Delete.
11254         (rotlsi3_8): Delete.
11255         (rotlsi3_16): Delete.
11256         (rotlsi3_24): Delete.
11257         (rotl<mode>3): New.
11258         (*rotw<mode>3): New.
11259         (*rotb<mode>3): New.
11260         * config/avr/avr.c (avr_rotate_bytes): New function.
11261         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
11262
11263 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
11264
11265         PR target/37454
11266         * configure.ac: Modify -rdynamic check.
11267         * configure: Regenerate.
11268
11269 2010-01-08  DJ Delorie  <dj@redhat.com>
11270
11271         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
11272         register popping order.
11273
11274 2010-01-08  Richard Guenther  <rguenther@suse.de>
11275
11276         PR lto/42528
11277         * c.opt (fsigned-char): Also let LTO handle this option.
11278         (funsigned-char): Likewise.
11279
11280 2010-01-07  Richard Guenther  <rguenther@suse.de>
11281
11282         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
11283         (gimple_op): Likewise.
11284         (gimple_op_ptr): Likewise.
11285         (gimple_assign_set_lhs): Remove gcc_assert.
11286         (gimple_assign_set_rhs1): Likewise.
11287         (gimple_assign_set_rhs2): Likewise.
11288         (gimple_call_set_lhs): Likewise.
11289         (gimple_call_set_fn): Likewise.
11290         (gimple_call_set_fndecl): Likewise.
11291         (gimple_call_fndecl): Likewise.
11292         (gimple_call_return_type): Likewise.
11293         (gimple_call_set_chain): Likewise.
11294         (gimple_call_num_args): Likewise.
11295         (gimple_call_set_arg): Likewise.
11296         (gimple_cond_set_code): Likewise.
11297         (gimple_cond_set_lhs): Likewise.
11298         (gimple_cond_set_rhs): Likewise.
11299         (gimple_cond_set_true_label): Likewise.
11300         (gimple_cond_set_false_label): Likewise.
11301         (gimple_label_set_label): Likewise.
11302         (gimple_goto_set_dest): Likewise.
11303         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
11304         (gimple_debug_bind_get_value): Likewise.
11305         (gimple_debug_bind_get_value_ptr): Likewise.
11306         (gimple_debug_bind_set_var): Likewise.
11307         (gimple_debug_bind_set_value): Likewise.
11308         (gimple_debug_bind_reset_value): Likewise.
11309         (gimple_debug_bind_has_value_p): Likewise.
11310         (gimple_return_retval_ptr): Remove gcc_assert.
11311         (gimple_return_retval): Likewise.
11312         (gimple_return_set_retval): Likewise.
11313         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
11314         (safe_referenced_var_iterator): Remove.
11315         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
11316         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
11317         (fill_referenced_var_vec): Remove.
11318         (first_readonly_imm_use): Remove redundant gcc_assert.
11319         (phi_arg_index_from_use): Combine gcc_asserts.
11320         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
11321         (first_imm_use_stmt): Remove redundant gcc_assert.
11322         * tree-cfg.c (verify_gimple_call): Verify function and chain
11323         operands.  Verify arguments.
11324         (verify_types_in_gimple_stmt): Verify condition code and labels.
11325
11326 2010-01-07  Richard Guenther  <rguenther@suse.de>
11327
11328         PR tree-optimization/42641
11329         * sese.c (rename_map_elt_info): Use the SSA name version, do
11330         not hash pointers.
11331
11332 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
11333
11334         PR tree-optimization/42625
11335         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
11336         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
11337
11338 2010-01-07  Duncan Sands  <baldrick@free.fr>
11339
11340         * Makefile.in (PLUGIN_HEADERS): Add version.h.
11341
11342 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
11343
11344         PR target/42511
11345         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
11346         note itself is not function_invariant_p.
11347
11348 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
11349
11350         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
11351         Do not add the DF_NOTE problem.
11352         * store-motion.c (execute_rtl_store_motion): Likewise.
11353
11354 2010-01-07  Martin Jambor  <mjambor@suse.cz>
11355
11356         PR tree-optimization/42157
11357         * tree-sra.c (compare_access_positions): Stabilize sort if both
11358         accesses have integer types, return zero immediately if they are the
11359         same.
11360
11361 2010-01-06  Richard Henderson  <rth@redhat.com>
11362
11363         PR middle-end/41883
11364         * haifa-sched.c (add_to_note_list): Merge into ...
11365         (concat_note_lists): ... here, and ...
11366         (unlink_other_notes, rm_other_notes): Merge into...
11367         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
11368         NOTE_INSN_EPILOGUE_BEG.
11369
11370 2010-01-06  Richard Guenther  <rguenther@suse.de>
11371
11372         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
11373         not inline regular functions into always-inline functions.
11374
11375 2010-01-06  Nick Clifton  <nickc@redhat.com>
11376
11377         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
11378         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
11379         used together.
11380         (OVERRIDE_OPTIONS): Delete.
11381         (OPTIMIZATION_OPTIONS): Define.
11382         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
11383         * config/rx/rx.c (rx_handle_option): Issue an error message if
11384         -mcpu=rx200 and -fpu are used together.
11385         (rx_set_optimization_options): New function.  Issue an error
11386         message if an optimization attribute attempts to reset the FPU/
11387         math optimization pairing.
11388         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
11389         * config/rx/rx.opt: Set the default to 32-bit doubles.
11390         * config/rx/t-rx: Add multilibs for -nofpu option.
11391         * doc/invoke.texi: Update documentation of RX options.
11392
11393 2010-01-06  Richard Guenther  <rguenther@suse.de>
11394
11395         * tree-ssa-pre.c (name_to_id): New global.
11396         (alloc_expression_id): Simplify SSA name handling.
11397         (lookup_expression_id): Likewise.
11398         (init_pre): Zero name_to_id.
11399         (fini_pre): Free it.
11400
11401 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
11402
11403         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
11404
11405 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
11406
11407         PR target/42542
11408         * config/i386/sse.md (smaxv2di3): New.
11409         (umaxv2di3): Likewise.
11410         (sminv2di3): Likewise.
11411         (uminv2di3): Likewise.
11412
11413 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
11414
11415         PR target/42564
11416         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
11417         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
11418         (legitimize_tls_address): Likewise.
11419         (sparc_tls_referenced_p): Likewise.
11420         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
11421         and adjust calls to legitimize_pic_address.
11422         (legitimate_constant_p) Use sparc_tls_referenced_p.
11423         (legitimate_pic_operand_p): Likewise.
11424         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
11425         (sparc_tls_symbol_ref_1): Delete.
11426         (sparc_tls_referenced_p): Make static, recognize specific patterns.
11427         (legitimize_tls_address): Make static, handle CONST patterns.
11428         (legitimize_pic_address): Make static, remove unused parameter and
11429         adjust recursive calls.
11430         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
11431         and adjust call to legitimize_pic_address.
11432         (sparc_output_mi_thunk): Likewise.
11433
11434 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
11435             H.J. Lu  <hongjiu.lu@intel.com>
11436
11437         PR target/42542
11438         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
11439         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
11440         operands to make them signed.
11441
11442         Revert:
11443         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11444
11445         PR target/42542
11446         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11447         GTU to GT for V4SI and V2DI.
11448
11449         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11450         (umin<mode>3): Removed.
11451         (uminv8hi3): New.
11452         (uminv4si3): Likewise.
11453
11454 2010-01-05  Martin Jambor  <mjambor@suse.cz>
11455
11456         PR tree-optimization/42462
11457         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
11458         current_function_decl to helper functions and macros.
11459
11460 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11461
11462         PR bootstrap/41771
11463         * flags.h: Don't include real.h.
11464         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
11465         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
11466         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
11467         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
11468         * dominance.c: Update copyright.
11469         * gimple.c (walk_gimple_op): Remove inline.
11470         * tree-ssa-reassoc.c: Include real.h.
11471         * Makefile.in (FLAGS_H): Remove $(REAL_H).
11472         (tree-ssa-reassoc.o): Depend on $(REAL_H).
11473
11474 2010-01-05  Nick Clifton  <nickc@redhat.com>
11475
11476         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
11477         register to push into the stack frame when the accumulator has to
11478         be saved during interrupts.
11479
11480 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
11481
11482         * doc/invoke.texi: Remove the documentation about option
11483         -Wunreachable-code.
11484         * common.opt (Wunreachable-code):  Preserved for backward
11485         compatibility.
11486         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
11487         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
11488         the backward compatibility flag section.
11489
11490 2010-01-05  Richard Guenther  <rguenther@suse.de>
11491
11492         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
11493
11494 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
11495
11496         PR other/42611
11497         * cfgexpand.c (expand_one_var): Diagnose too large variables.
11498
11499         PR tree-optimization/42508
11500         * tree-sra.c (convert_callers): Check for recursive call
11501         by comparing cgraph nodes instead of decls.
11502         (modify_function): Call ipa_modify_formal_parameters also
11503         on all same_body aliases.
11504
11505         * cgraphunit.c (cgraph_materialize_all_clones): Compare
11506         cgraph nodes when checking for same_body aliases.
11507
11508 2010-01-05  Richard Guenther  <rguenther@suse.de>
11509
11510         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
11511         allocation and lookup.
11512         (get_or_alloc_expr_for_constant): Likewise.
11513         (phi_translate): Sink allocation.
11514
11515 2010-01-04  Richard Guenther  <rguenther@suse.de>
11516
11517         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
11518         a new entry only if needed.
11519         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
11520         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
11521         hashtable lookup.
11522         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
11523         the result array.
11524         (phi_translate): Handle CONSTANTs early.
11525
11526 2010-01-04  Martin Jambor  <mjambor@suse.cz>
11527
11528         PR tree-optimization/42398
11529         * tree-sra.c (struct access): Removed flag grp_different_types.
11530         (dump_access): Do not dump the removed flag.
11531         (sort_and_splice_var_accesses): Do not set the removed flag.
11532         (sra_modify_expr): Check for type compatibility directly.
11533
11534 2010-01-04  Martin Jambor  <mjambor@suse.cz>
11535
11536         PR tree-optimization/42366
11537         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
11538         edges with variable number of parameters.
11539         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
11540         flag instead of asserting it.
11541         (ipa_read_node_info): Read uses_analysis_done flag.
11542
11543 2010-01-04  Richard Guenther  <rguenther@suse.de>
11544
11545         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
11546         iterative_hash_* as intended.
11547         (vn_reference_compute_hash): Likewise.  Simplify hashing
11548         SSA names.
11549         (vn_reference_lookup_2): Likewise.
11550         (vn_nary_op_compute_hash): Likewise.
11551         (vn_phi_compute_hash): Likewise.
11552         (expressions_equal_p): Remove strange code.
11553         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
11554         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
11555         (bitmap_insert_into_set_1): Take value-id as parameter.
11556         (add_to_value): Pass it.
11557         (bitmap_insert_into_set): Likewise.
11558         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
11559
11560 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
11561
11562         PR driver/42442
11563         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
11564         (do_self_spec): For switches with SWITCH_IGNORE set set also
11565         SWITCH_IGNORE_PERMANENTLY.
11566         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
11567         of SWITCH_IGNORE.
11568
11569 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
11570
11571         * lto-streamer-out.c (output_unreferenced_globals): Output the full
11572         tree of an unreferenced global var.
11573
11574 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11575
11576         PR target/42542
11577         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11578         GTU to GT for V4SI and V2DI.
11579
11580         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11581         (umin<mode>3): Removed.
11582         (uminv8hi3): New.
11583         (uminv4si3): Likewise.
11584
11585 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11586
11587         PR lto/42581
11588         * collect2.c (main): Turn on trace in collect2 if -v is passed
11589         to gcc with LTO.
11590
11591 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
11592
11593         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
11594         description of expression operand.
11595
11596 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
11597
11598         * configure.ac: Add install-html to target_list for Make-hooks.
11599         * configure: Regenerate.
11600         * fortran/Make-lang.in (F95_HTMLFILES): New.
11601         (fortran.html): Use it.
11602         (fortran.install-html): New.
11603         * Makefile.in (install-html): Add lang.install-html.
11604         * java/Make-lang.in (JAVA_HTMLFILES): New.
11605         (java.html): Use it.
11606         (java.install-html): New.
11607         * objc/Make-lang.in (objc.install-html): New.
11608         * objcp/Make-lang.in (obj-c++.install-html): New.
11609         * cp/Make-lang.in (c++.install-html): New.
11610         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
11611         * lto/Make-lang.in (lto.install-html): New.
11612
11613 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
11614
11615         PR lto/42520
11616         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
11617
11618 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
11619
11620         PR rtl-optimization/41862
11621         * store-motion.c (store_killed_in_insn, compute_store_table,
11622         remove_reachable_equiv_notes, replace_store_insn,
11623         build_store_vectors): Ignore all DEBUG_INSNs.
11624
11625 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
11626
11627         PR lto/41564
11628         * common.opt: Add dumpdir.
11629
11630         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
11631         isn't specified.
11632         (option_map): Add --dumpdir.
11633
11634         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
11635
11636         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
11637
11638         * opts.c (decode_options): Try dump_dir_name first if
11639         dump_base_name isn't an absolute path.
11640         (common_handle_option): Handle OPT_dumpdir.
11641
11642         * toplev.c (dump_dir_name): New.
11643         (print_switch_values): Also ignore -dumpdir.
11644
11645         * toplev.h (dump_dir_name): New.
11646
11647 2010-01-03  Richard Guenther  <rguenther@suse.de>
11648
11649         PR tree-optimization/42589
11650         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
11651         double-word expansion of bswap32.
11652
11653 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
11654
11655         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
11656         with BLOCK_FOR_INSN.
11657         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
11658         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
11659         noce_process_if_block): Likewise.
11660         * gcse.c (compute_local_properties, insert_expr_in_table,
11661         insert_set_in_table, canon_list_insert, find_avail_set,
11662         pre_insert_copy_insn): Likewise.
11663
11664         * basic-block.h (BLOCK_NUM): Move from here...
11665         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
11666
11667 2010-01-03  Richard Guenther  <rguenther@suse.de>
11668
11669         PR tree-optimization/42438
11670         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
11671         contains_may_not_return_call flag.
11672         (BB_MAY_NOTRETURN): New.
11673         (valid_in_sets): Trapping nary operations are not valid
11674         in blocks that may not return.
11675         (insert_into_preds_of_block): Remove check for trapping expressions.
11676         (compute_avail): Compute also BB_MAY_NOTRETURN.
11677
11678 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
11679
11680         * doc/invoke.texi: Add 2010 to copyright years.
11681
11682 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
11683
11684         * config/sparc/sparc.c: Fix formatting nits.
11685
11686 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
11687             Alexander Monakov  <amonakov@ispras.ru>
11688
11689         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
11690
11691 2010-01-02  Richard Guenther  <rguenther@suse.de>
11692
11693         PR middle-end/42577
11694         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
11695         (simplify_switch_using_ranges): Mark to be removed edges
11696         as non-executable.
11697
11698 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11699
11700         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
11701
11702         * collect2.c (scan_libraries): Add missing argument in call to
11703         scan_prog_file.
11704
11705 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
11706
11707         PR target/42448
11708         * config/alpha/predicates.md (aligned_memory_operand): Return false
11709         for CQImode.
11710         (unaligned_memory_operand): Return true for CQImode.
11711         * config/alpha/alpha.c (get_aligned_mem): Assert that location
11712         doesn not cross aligned SImode word boundary.
11713
11714 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
11715
11716         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
11717         Remove.
11718         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
11719         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
11720
11721 2010-01-02  Richard Guenther  <rguenther@suse.de>
11722
11723         PR lto/41597
11724         * toplev.c (compile_file): Emit LTO marker properly.  Change
11725         it to __gnu_lto_v1.
11726         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
11727
11728 2010-01-01  Richard Guenther  <rguenther@suse.de>
11729
11730         PR debug/42455
11731         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
11732
11733 2010-01-01  Richard Guenther  <rguenther@suse.de>
11734
11735         PR c/42570
11736         * c-decl.c (grokdeclarator): For zero-size arrays force
11737         structural equality checks as layout_type does.
11738
11739 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
11740
11741         * builtins.c: Update copyright to 2010.
11742
11743 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
11744
11745         PR lto/42531
11746         * lto-streamer-out.c (produce_asm): Revert the last change.
11747         (copy_function): Likewise.
11748
11749         * lto-streamer.c (lto_get_section_name): Skip any leading
11750         asterisk in name.
11751
11752 2010-01-01  Richard Guenther  <rguenther@suse.de>
11753
11754         PR middle-end/42559
11755         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
11756         for LABEL_DECLs.
11757
11758 \f
11759 Copyright (C) 2010 Free Software Foundation, Inc.
11760
11761 Copying and distribution of this file, with or without modification,
11762 are permitted in any medium without royalty provided the copyright
11763 notice and this notice are preserved.
11764
11765         PR bootstrap/44299
11766         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
11767         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
11768
11769 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
11770
11771         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
11772         toplev.h.
11773         * diagnostic.c: Don't include toplev.h.
11774         (progname): Define.  Moved from toplev.c.
11775         (seen_error): New function.
11776         * diagnostic.h: Include diagnostic-core.h.
11777         (diagnostic_t, emit_diagnostic): Don't declare here.
11778         * toplev.c (progname): Move to toplev.c.
11779         (emit_debug_global_declarations, compile_file, finalize,
11780         do_compile, toplev_main): Use seen_error.
11781         * toplev.h: Include diagnostic-core.h.
11782         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
11783         internal_error, warning, warning_at, error, error_n, error_at,
11784         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
11785         verbatim, fnotice, progname): Move to diagnostic-core.h.
11786         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
11787         (expand_builtin_expect): Use seen_error.
11788         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
11789         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
11790         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
11791         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
11792         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
11793         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
11794         errorcount for errors.
11795         * c-opts.c (c_common_finish): Use seen_error.
11796         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
11797         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
11798         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
11799         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
11800         (get_coverage_counts): Use seen_error.
11801         * dwarf2out.c (dwarf2out_finish): Use seen_error.
11802         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
11803         gimplify_body): Use seen_error.
11804         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
11805         * ipa-pure-const.c (gate_pure_const): Use seen_error.
11806         * ipa-reference.c (gate_reference): Use seen_error.
11807         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
11808         * lambda-code.c: Include diagnostic-core.h instead of
11809         diagnostic.h.
11810         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
11811         * lto-compress.c: Include diagnostic-core.h instead of
11812         diagnostic.h.
11813         * lto-section-in.c: Include diagnostic-core.h instead of
11814         diagnostic.h.
11815         * lto-streamer-out.c: Include diagnostic-core.h instead of
11816         diagnostic.h.
11817         * lto-streamer.c: Include diagnostic-core.h instead of
11818         diagnostic.h.
11819         (gate_lto_out): Use seen_error.
11820         * matrix-reorg.c: Include diagnostic-core.h instead of
11821         diagnostic.h.
11822         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
11823         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
11824         (gate_expand_omp, lower_omp_1): Use seen_error.
11825         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
11826         (rest_of_decl_compilation, rest_of_type_compilation,
11827         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
11828         * tree-cfg.c (label_to_block_fn): Use seen_error.
11829         * tree-inline.c (optimize_inline_calls): Use seen_error.
11830         * tree-mudflap.c (mudflap_finish_file): Use
11831         seen_error.
11832         * tree-optimize.c (gate_all_optimizations,
11833         gate_all_early_local_passes, gate_all_early_optimizations): Use
11834         seen_error.
11835         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
11836         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
11837         (varpool_remove_unreferenced_decls,
11838         varpool_assemble_pending_decls): Use seen_error.
11839         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
11840         (TOPLEV_H, DIAGNOSTIC_H): Update.
11841         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
11842         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
11843         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
11844         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
11845         coverage.o, lambda-code.o): Update dependencies.
11846
11847 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
11848
11849         PR c++/44188
11850         * c-common.c (is_typedef_decl): Move this definition ...
11851         * tree.c (is_typedef_decl): ... here.
11852         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
11853         * c-common.h (is_typedef_decl): Move this declaration ...
11854         * tree.h (is_typedef_decl): ... here.
11855         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
11856         * dwarf2out.c (is_naming_typedef_decl): New function.
11857         (gen_tagged_type_die): Split out of ...
11858         (gen_type_die_with_usage): ... this function. When an anonymous
11859         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
11860         is emitted for the typedef.
11861         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
11862         anonymous tagged types.
11863
11864 2010-05-27  Jason Merrill  <jason@redhat.com>
11865
11866         * print-tree.c (debug_vec_tree): New fn.
11867         (print_vec_tree): New fn.
11868         * tree.h: Declare them.
11869         * gdbinit.in (pvt): New command.
11870
11871         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
11872
11873         * gdbinit.in (pdd): New command.
11874
11875 2010-05-27  Jan Hubicka  <jh@suse.cz>
11876
11877         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
11878         (update_caller_keys): Return early if there are no callers;
11879         only update fibheap when decresing the key.
11880         (update_callee_keys): Avoid recursion.
11881         (decide_inlining_of_small_functions): When badness does not match;
11882         re-insert into fibheap.
11883
11884 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
11885
11886         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
11887         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
11888         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
11889         (ALL_HOST_OBJS): Now a union of the above two.
11890         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
11891         all files in ALL_HOST_FRONTEND_OBJS.
11892         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
11893
11894         * c-common.c: Pretend to be a backend file by undefining
11895         IN_GCC_FRONTEND (still need rtl.h here).
11896
11897 2010-05-27  Jan Hubicka  <jh@suse.cz>
11898
11899         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
11900         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
11901
11902 2010-05-27  Jan Hubicka  <jh@suse.cz>
11903
11904         * sched-ebb.c: Rename struct deps to struct deps_desc.
11905         * ddg.c: Likewise.
11906         * sel-sched-ir.c: Likewise.
11907         * sched-deps.c: Likewise.
11908         * sched-int.h: Likewise.
11909         * sched-rgn.c: Likewise.
11910
11911 2010-05-27  Jon Beniston <jon@beniston.com>
11912
11913         PR 43726
11914         * config/lm32/lm32.h: Remove definition of 
11915         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
11916
11917 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
11918
11919         PR lto/44230
11920         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
11921
11922 2010-05-27  Richard Guenther  <rguenther@suse.de>
11923
11924         PR tree-optimization/44284
11925         * tree-vect-stmts.c (vectorizable_assignment): Handle
11926         sign-changing conversions as simple copy.
11927
11928 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11929
11930         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
11931         Bionic C library.
11932         (__gthread_active_p): Check for pthread_create if compiling against
11933         Bionic C library.
11934
11935 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11936
11937         Support compilation for Android platform.  Reimplement -mandroid.
11938
11939         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
11940         (*android*): Set ANDROID_DEFAULT.
11941         (arm*-*-linux*): Include linux-android.h.
11942         (arm*-*-eabi*): Don't include previous -mandroid implementation.
11943         * config/arm/eabi.h: Remove, move Android-specific parts ...
11944         * config/linux-android.h: ... here.  New file.
11945         * config/arm/eabi.opt: Rename to ...
11946         * config/linux-android.opt: ... this.
11947         (mandroid): Allow -mno-android option.  Initialize based on
11948         ANDROID_DEFAULT.
11949         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
11950         Move logic to corresponding LINUX_TARGET_* macros.
11951         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
11952         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
11953         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
11954         Android definitions.
11955         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
11956         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
11957         Document.
11958
11959 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11960
11961         Add support for Bionic C library
11962
11963         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
11964         macro.
11965         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
11966         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
11967
11968         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
11969         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
11970         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
11971         to support multiple C libraries.  Handle Bionic.
11972         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
11973         (BIONIC_DYNAMIC_LINKER64): Define.
11974         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
11975         Update.
11976         (TARGET_HAS_SINCOS): Enable for Bionic.
11977
11978         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
11979         the last option specified on command line take effect.
11980         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
11981         (mbionic): New.
11982         (mglibc, muclibc): Update.
11983
11984         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
11985         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
11986         DEFAULT_LIBC.
11987
11988         * doc/invoke.texi (-mglibc, -muclibc): Update.
11989         (-mbionic): Document.
11990
11991 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11992
11993         * c-common.h (c_register_addr_space): Add prototype.
11994         (ADDR_SPACE_KEYWORD): Remove.
11995         * c-common.c (c_register_addr_space): New function.
11996         (c_addr_space_name): Reimplement.
11997         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
11998
11999         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
12000         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
12001
12002         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
12003         Remove TARGET_ADDR_SPACE_KEYWORDS.
12004
12005 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
12006
12007         * input.c: New file.
12008         * input.h (main_input_filename): Move declaration to toplev.h.
12009         * toplev.c (input_location, line_table): Move to input.c
12010         * toplev.h (main_input_filename): Move declaration from input.h.
12011         * tree.c (expand_location): Move to input.c.
12012         * Makefile.in (OBJS-common): Add input.o.
12013         (input.o): Add dependencies.
12014
12015 2010-05-27  Richard Guenther  <rguenther@suse.de>
12016
12017         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
12018         for non-existant files.
12019         (fork_execute): Mark args_name file as deleted.
12020
12021 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
12022
12023         PR bootstrp/44287
12024         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
12025         (narrow_signed_type): Likewise.
12026
12027 2010-05-26  Jan Hubicka  <jh@suse.cz>
12028
12029         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
12030         edge only when checking is enabled; check using former_clone_of;
12031         check inline clones too.
12032         (cgraph_materialize_clone): Record former_clone_of pointer.
12033         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
12034         combining redirections; dump args_to_skip bitmap
12035         (cgraph_materialize_all_clones): Do no redirection here.
12036         * ipa-inline.c (inline_transform): Do redirection here.
12037         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
12038         cheking only).
12039
12040 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12041
12042         * config/avr/avr-c.c: Do not include regs.h.
12043         Include cpplib.h for cpp_define and tree.h for c-common.h.
12044         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
12045         * config/avr/t-avr: Fix dependencies for avr-c.o.
12046
12047 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12048
12049         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
12050         string instead of SYMBOL_REF rtx.
12051         * rtl.h (set_stack_check_libfunc): Move prototype from here...
12052         * libfuncs.h: ...to here.  Adjust for explow.c change.
12053
12054 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
12055
12056         * pretty-print.c: Don't include ggc.h.
12057         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
12058         (identifier_to_locale): Use them for allocation.
12059         * pretty-print.h (identifier_to_locale_alloc,
12060         identifier_to_locale_free): Declare.
12061         * toplev.c (alloc_for_identifier_to_locale): New.
12062         (general_init): Set identifier_to_locale_alloc and
12063         identifier_to_locale_free.
12064         * Makefile.in (pretty-print.o): Update dependencies.
12065
12066 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
12067
12068         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
12069         pointer types if they have different alignment or mode.
12070
12071 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
12072
12073         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
12074         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
12075         * config/sparc/sparc-protos.h (function_value): Remove declaration.
12076         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
12077         sparc_function_value_regno_p): New functions.
12078         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12079         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12080         (function_value): Rename to...
12081         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
12082         argument to 'outgoing'.
12083         (function_arg_record_value, function_arg_union_value,
12084         function_arg_vector_value): Update comment.
12085
12086 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
12087
12088         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
12089         (fde_needed_for_eh_p): New predicate.
12090         (output_call_frame_info): Use it throughout to decide whether FDEs
12091         are needed for EH purpose.
12092         (dwarf2out_begin_prologue): Reorder assignments.
12093
12094 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12095
12096         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
12097         special case loop->header.
12098         (is_predicated): New.
12099         (if_convertible_loop_p): Call it.
12100
12101 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12102
12103         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
12104         iterator in parameter.  Do not generate code during the analysis.
12105         (tree_if_convert_cond_stmt): Removed.
12106         (tree_if_convert_stmt): Removed.
12107         (predicate_bbs): New.
12108         (if_convertible_loop_p): Call predicate_bbs.
12109         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
12110         now contains all the analysis part.
12111
12112 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12113
12114         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
12115         statements in the analysis part.
12116         (tree_if_convert_stmt): Update comment.
12117         (remove_conditions_and_labels): New.
12118         (combine_blocks): Call remove_conditions_and_labels.
12119         (tree_if_conversion): Update comment.
12120
12121 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12122
12123         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
12124         than 2 predecessors or more than 2 successors.
12125
12126 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12127
12128         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
12129         of loops in which the data dependence analysis fails.
12130
12131 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12132
12133         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
12134         CDI_POST_DOMINATORS.
12135         (tree_if_conversion): Same.
12136
12137 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12138
12139         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
12140
12141 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12142
12143         * tree-if-conv.c: Update copyright years.  Fix comments.
12144         Fix indentation.
12145
12146 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
12147
12148         * builtin-types.def (BT_INT128): New primitive type.
12149         (BT_UINT128): Likewise.
12150         * c-common.c (c_common_r): Add __int128 keyword.
12151         (c_common_type_for_size): Handle __int128.
12152         (c_common_type_for_mode): Likewise.
12153         (c_common_signed_or_unsigned_type): Likewise.
12154         (c_common_nodes_and_builtins): Add builtin type
12155         if target supports 128-bit integer scalar.
12156         * c-common.h (enum rid): Add RID_INT128.
12157         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
12158         if target supports 128-bit integer scalar.
12159         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
12160         (finish_declspecs): Likewise.
12161         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
12162         (c_token_starts_declspecs): Likewise.
12163         (c_parser_declspecs): Likewise.
12164         (c_parser_attributes): Likewise.
12165         (c_parser_objc_selector): Likewise.
12166         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
12167         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
12168         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
12169         * tree.c (make_or_reuse_type): Likewise.
12170         (make_unsigned_type): Likewise.
12171         (build_common_tree_nodes_2): Likewise.
12172         * tree.h (enum integer_type_kind): Add itk_int128 and
12173         itk_unsigned_int128.
12174         (int128_integer_type_node): New define.
12175         (int128_unsigned_type_node): New define.
12176         * doc/extend.texi: Add documentation about __int128 type.
12177
12178 2010-05-26  Richard Guenther  <rguenther@suse.de>
12179
12180         * tree-ssa-sccvn.c (copy_nary): Adjust.
12181         (copy_phis): Rename to ...
12182         (copy_phi): ... this.  Adjust.
12183         (copy_references): Rename to ...
12184         (copy_reference): ... this.  Adjust.
12185         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
12186         result into the valid table.
12187
12188 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12189
12190         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
12191         insn-config.h, insn-codes.h, recog.h, and optabs.h.
12192
12193 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12194
12195         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
12196
12197 2010-05-26  Richard Guenther  <rguenther@suse.de>
12198
12199         * opts.c (common_handle_option): Handle OPT_Ofast.
12200
12201 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
12202
12203         * diagnostic.c: Don't include opts.h.
12204         (permissive_error_option): Define.
12205         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
12206         for classify_diagnostic.  Don't use memset for
12207         classify_diagnostic.  Initialize new and recently added fields.
12208         (diagnostic_classify_diagnostic): Use context->n_opts instead of
12209         N_OPTS.
12210         (diagnostic_report_diagnostic): Pass context parameter to
12211         diagnostic_report_warnings_p.  Use option_enabled and option_name
12212         hooks from context.
12213         (emit_diagnostic): Use permissive_error_option.
12214         (permerror): Likewise.
12215         * diagnostic.h: Don't include options.h.
12216         (struct diagnostic_context): Add n_opts, opt_permissive,
12217         inhibit_warnings, warn_system_headers, option_enabled and
12218         option_name fields.  Change classify_diagnostic to a pointer.
12219         * opts-diagnostic.h: New file.
12220         * opts.c: Include opts-diagnostic.h.
12221         (common_handle_option): Set global_dc fields for -Wfatal-errors,
12222         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
12223         (option_name): New function.
12224         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
12225         (c_common_handle_option): Set global_dc->permissive for
12226         -fpermissive.
12227         * c-common.c (c_cpp_error): Save and restore
12228         global_dc->warn_system_headers, not variable warn_system_headers.
12229         * toplev.c: Include opts-diagnostic.h.
12230         (general_init): Update call to diagnostic_initialize.  Set
12231         global_dc->show_column, global_dc->option_enabled and
12232         global_dc->option_name.
12233         (process_options): Don't set global_dc fields here.
12234         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
12235         (diagnostic.o, opts.o, toplev.o): Update dependencies.
12236
12237 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
12238
12239         * config/picochip/picochip.md (movsi): Split a movsi from a
12240         const after reload.
12241
12242 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12243
12244         * ggc-zone.c: Update copyright year.
12245         (poison_region): Mark memory for Valgrind as undefined before
12246         memset () call and inaccessible afterwards.
12247         (ggc_pch_total_size): Change type of i to int.
12248
12249 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12250
12251         * ggc-common.c (ggc_free_overhead): Allow empty slot.
12252
12253 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12254
12255         * ggc-common.c: Update copyright year.
12256         (ggc_rlimit_bound): Remove prototype.  Compile only if
12257         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
12258         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
12259         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
12260         (ggc_min_heapsize_heuristic): Likewise.
12261
12262 2010-05-26  Richard Guenther  <rguenther@suse.de>
12263
12264         PR rtl-optimization/44164
12265         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
12266         no-common access-path disambiguation.
12267         (indirect_ref_may_alias_decl_p): Adjust.
12268         (indirect_refs_may_alias_p): Likewise.
12269         (refs_may_alias_p_1): Likewise.
12270
12271 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12272
12273         * c-typeck.c: Do not include expr.h.
12274
12275 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12276
12277         * rtl.h (decl_default_tls_model): Move prototype from here...
12278         * output.h: ...to here.
12279         * c-decl.c: Do not include rtl.h.
12280         * c-pragma.c: Likewise.
12281         * c-parser.c: Likewise.
12282         * c-gimplify.c: Likewise.  And also not hard-reg-set.
12283         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
12284         FIXME note for it.  Add a FIXME note for expr.h.
12285         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
12286         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
12287         defined.
12288
12289 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
12290
12291         PR target/44199
12292         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
12293         or total_size is larger than red zone size for non-V4 ABI, emit a
12294         stack_tie resp. frame_tie insn before stack pointer restore.
12295         * config/rs6000/rs6000.md (frame_tie): New insn.
12296
12297 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
12298
12299         * function.h (struct function): Add can_throw_non_call_exceptions bit.
12300         * lto-streamer-in.c (input_function): Stream it in.
12301         * lto-streamer-out.c (output_function): Stream it out.
12302         * function.c (allocate_struct_function): Set it.
12303         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
12304         for flag_non_call_exceptions.
12305         * cfgbuild.c (control_flow_insn_p): Likewise.
12306         (make_edges): Likewise.
12307         * cfgexpand.c (expand_stack_alignment): Likewise.
12308         * combine.c (distribute_notes): Likewise.
12309         * cse.c (cse_extended_basic_block): Likewise.
12310         * except.c (insn_could_throw_p): Likewise.
12311         * gcse.c (simple_mem): Likewise.
12312         * ipa-pure-const.c (check_call): Likewise.
12313         (check_stmt ): Likewise.
12314         * lower-subreg.c (lower-subreg.c): Likewise.
12315         * optabs.c (emit_libcall_block): Likewise.
12316         (prepare_cmp_insn): Likewise.
12317         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
12318         * postreload.c (rest_of_handle_postreload): Likewise.
12319         * reload1.c (reload_as_needed): Likewise.
12320         (emit_input_reload_insns): Likewise.
12321         (emit_output_reload_insns): Likewise.
12322         (fixup_abnormal_edges): Likewise.
12323         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
12324         * store-motion.c (find_moveable_store): Likewise.
12325         * tree-eh.c (stmt_could_throw_p): Likewise.
12326         (tree_could_throw_p): Likewise.
12327         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
12328         * config/arm/arm.c (arm_expand_prologue): Likewise.
12329         (thumb1_expand_prologue): Likewise.
12330         * config/rx/rx.md (cbranchsf4): Likewise.
12331         (cmpsf): Likewise.
12332         * config/s390/s390.c (s390_emit_prologue): Likewise.
12333         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
12334         (inline_forbidden_into_p): New predicate.
12335         (expand_call_inline): Use it to forbid inlining.
12336         (tree_can_inline_p): Likewise.
12337
12338 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
12339
12340         * config/i386/i386-c.c: Do not include rtl.h.
12341         * config/i386/t-i386: Update dependencies.
12342
12343 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
12344
12345         * attribs.c: Do not include rtl.h.
12346         * Makefile.in: Update dependencies.
12347
12348 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
12349
12350         * double-int.h (double_int_and): New.
12351         * combine.c (try_combine): Clean up, use double_int_* and
12352         immed_double_int_const functions.
12353
12354 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12355
12356         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
12357         stderr to /dev/null instead of grep -q.
12358         * configure: Regenerate.
12359
12360 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
12361
12362         * Makefile.in (EXCEPT_H): Fix typo.
12363
12364 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
12365
12366         * ira-build.c (update_conflict_hard_reg_costs): New.
12367         (ira_build): Call update_conflict_hard_reg_costs.
12368
12369 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
12370
12371         PR debug/41371
12372         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
12373         ENABLE_CHECKING.
12374         (intersect_loc_chains): Walk the s2var's loc_chain together
12375         with s1node chain as long as the locations are equal, don't
12376         call find_loc_in_1pdv in that case.
12377
12378         PR debug/42801
12379         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
12380         (copy_bind_expr): ... instead of here.
12381         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
12382         if the block hasn't been remapped.
12383         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
12384         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
12385
12386 2010-05-25  Richard Guenther  <rguenther@suse.de>
12387
12388         PR middle-end/44069
12389         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
12390         out-of-bounds array accesses.
12391
12392 2010-05-25  Richard Guenther  <rguenther@suse.de>
12393
12394         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
12395         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
12396         (run_gcc): Re-organize to make cleanup easier.
12397
12398 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12399
12400         * config/s390/s390.c (optimization_options): Fix and move the
12401         flag_prefetch_loop_arrays override ...
12402         (override_options): ... here.
12403
12404 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
12405
12406         * diagnostic.c: Don't include plugin.h.
12407         (diagnostic_report_diagnostic): Don't handle plugins specially
12408         here.  Pass context to internal_error callback.
12409         * diagnostic.h (struct diagnostic_context): Add context parameter
12410         to internal_error callback.
12411         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
12412         * plugin.h (struct diagnostic_context): Declare.
12413         (warn_if_plugins, plugins_internal_error_function): Declare.
12414         * toplev.c (general_init): Set global_dc->internal_error.
12415         * Makefile.in (diagnostic.o): Update dependencies.
12416
12417 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
12418
12419         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
12420         * config/rs6000/t-darwin64: New.
12421         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
12422         build crt2.
12423
12424 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
12425
12426         PR 44203
12427         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
12428         match the original (and intended) behaviour before r159557.  This
12429         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
12430         in two ways.
12431
12432 2010-05-25  Richard Guenther  <rguenther@suse.de>
12433
12434         * doc/invoke.texi: Document -Ofast.
12435         * target.h (struct gcc_target): Add handle_ofast.
12436         * target-def.h (TARGET_HANDLE_OFAST): Add.
12437         (TARGET_INITIALIZER): Adjust.
12438         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
12439         * common.opt (Ofast): Add.
12440
12441 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
12442
12443         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
12444         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
12445
12446 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
12447
12448         PR target/43610
12449         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
12450         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
12451         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
12452         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
12453
12454 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
12455
12456         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
12457         DW_OP_minus with negated offset instead of DW_OP_plus.
12458         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
12459
12460 2010-05-25  Wei Guozhi  <carrot@google.com>
12461
12462         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
12463         tst instruction and a new alternative.
12464         * config/arm/constraints.md (Pu): New constraint.
12465
12466 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
12467
12468         * function.c (assign_stack_local_1): Initialize variable
12469         to avoid warning when bootstrapping at -O3.
12470
12471 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
12472
12473         * configure.ac (all_lang_makefiles): Remove everything related to it.
12474         * configure: Regenerate.
12475         * Makefile.in: Fix reference to ada Make-lang.in.
12476         Remove support for LANG_MAKEFILES.
12477
12478 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
12479             Sandra Loosemore  <sandra@codesourcery.com>
12480
12481         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
12482         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
12483         description.  Add arm_neon_fp16_ok.
12484         (Add Options): Add arm_neon and arm_neon_fp16.
12485
12486 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
12487
12488         * diagnostic.c: Don't include flags.h.
12489         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
12490         context parameters.  Check flags in the context passed as a parameter.
12491         (diagnostic_build_prefix): Add context parameter.  Check
12492         show_column flag in context.
12493         (diagnostic_action_after_output): Check fatal_errors flag in context.
12494         (diagnostic_report_current_module): Check show_column flag in context.
12495         (default_diagnostic_starter): Update call to
12496         diagnostic_build_prefix.
12497         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
12498         (emit_diagnostic): Pass context to permissive_error_kind.
12499         (permerror): Pass context to permissive_error_kind.
12500         * diagnostic.h (struct diagnostic_context): Add show_column,
12501         pedantic_errors, permissive and fatal_errors fields.
12502         (diagnostic_build_prefix): Update prototype.
12503         * langhooks.c
12504         * toplev.c (process_options): Set flags in global_dc from
12505         flag_show_column, flag_pedantic_errors, flag_permissive,
12506         flag_fatal_errors.
12507         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
12508         to diagnostic_build_prefix.
12509         * Makefile.in (diagnostic.o): Update dependencies.
12510
12511 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
12512
12513         * config/i386/ia32intrin.h (__crc32q): Define only if
12514         __SSE4_2__ is defined.
12515
12516 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
12517
12518         PR target/44132
12519         PR middle-end/43602
12520         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
12521         DECL_VISIBILITY_SPECIFIED.
12522         (emutls_decl): Set DECL_PRESERVE_P and copy
12523         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
12524         (emutls_finalize_control_var): New callback.
12525         (emutls_finish): Finalize emutls control variables.
12526         * toplev.c (compile_file): Move the call to emutls_finish ()
12527         before varpool_assemble_pending_decls ().
12528
12529 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
12530
12531         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
12532         added to the preprocessor condition.
12533
12534 2010-05-24  Paul Brook  <paul@codesourcery.com>
12535
12536         * gengtype-lex.l: Add HARD_REG_SET.
12537         * expr.c (expand_expr_real_1): Record writes to hard registers.
12538         * function.c (rtl_data): Add asm_clobbers.
12539         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
12540         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
12541         Use crtl->asm_clobbers.
12542
12543 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12544
12545         * doc/makefile.texi (Makefile): Mention stages 'profile'
12546         and 'feedback' for profiledbootstrap.
12547
12548 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
12549
12550         PR target/44245
12551         * config/i386/i386.c (def_builtin): Properly check
12552         OPTION_MASK_ISA_64BIT.
12553
12554 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
12555
12556         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
12557         typedefs with different but compatible types.  Allow duplicate
12558         typedefs with the same type except for pedantic non-C1X, but give
12559         warning for variably modified types.
12560         * c-typeck.c (tagged_types_tu_compatible_p,
12561         function_types_compatible_p, type_lists_compatible_p,
12562         comptypes_internal): Add parameter different_types_p; set
12563         *different_types_p for different but compatible types.  All
12564         callers changed.
12565         (comptypes_check_different_types): New.
12566         * c-tree.h (comptypes_check_different_types): Declare.
12567
12568 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
12569
12570         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
12571         * jump.c: Include basic-block.h.
12572         * profile.c: Likewise.
12573         * tree-profile.c: Likewise.
12574         * coverage.c: Likewise.
12575         * basic-block.h (optimize_function_for_size_p): Move to function.h.
12576         (optimize_function_for_speed_p): Likewise.
12577         * function.h (optimize_function_for_size_p,
12578         optimize_function_for_speed_p): Moved here from basic-block.h.
12579         * Makefile.in: Update dependencies.
12580
12581 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12582
12583         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
12584         before calling make; allow override through $MAKE.
12585         * doc/invoke.texi (Optimize Options): Document override.
12586
12587 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
12588
12589         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
12590         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12591         (rs6000_mode_dependent_address_ptr): Make static.
12592         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12593         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
12594         Remove.
12595
12596 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
12597
12598         PR target/43869
12599         * config/i386/i386.c: Make sure that the correct regparm is passed.
12600
12601 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
12602
12603         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
12604         * sbitmap.c: ...to here to internalize sbitmap element access.
12605         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
12606         Explain why basic-block.h is included.
12607         * function.h: Include tm.h for CUMULATIVE_ARGS.
12608         * Makefile.in: Update dependencies.
12609
12610 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
12611
12612         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
12613         New core types.
12614         * sbitmap.h (struct sbitmap_def): Do not typedef here.
12615         * sbitmap.c: Include sbitmap.h.
12616         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
12617         hard-reg-set.h.  Split everything related to regsets out from here...
12618         * regset.h: ...to here.  New file.
12619         * df.h: Include regset.h and sbitmap.h.
12620         * tree-flow.h: Likewise.
12621         * cfgloop.h: Likewise.
12622         * except.h: Do not include sbitmap.h.  Include hashtab.h.
12623         * cgraph.h: Include vec.h and function.h.
12624         * reload.h (struct insn_chain): Change types of live_throughout
12625         and dead_or_set from regset_head to bitmap_head.
12626         (compute_use_by_pseudos): Be defined also if regset.h is not included.
12627         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
12628         spilled_regs from regset_head to bitmap_head to avoid dependency
12629         in regset.h.
12630         * sel-sched-ir.h: Include regset.h.
12631         * reload.c: Include df.h before reload.h.
12632         * caller-save.c: Likewise.
12633         * reload1.c: Likewise.
12634         * ira.c: Likewise.
12635         (mark_elimination): Update type of r to bitmap, consistent with
12636         DF_LR_IN.
12637         * dominance.c: Include bitmap.h.
12638         * modulo-sched.c: Include df.h.
12639         * cfganal.c: Include bitmap.h and sbitmap.h.
12640         * cfgbuild.c: Include sbitmap.h.
12641         * lcm.c: Include sbitmap.h.
12642         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
12643         * domwalk.c: Include sbitmap.h, exclude ggc.h.
12644         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
12645         * cselib.c: Include bitmap.h.
12646         * tree-optimize.c: Include regset.h.
12647         * stmt.c: Include bitmap.h.
12648         * Makefile.in: Update dependencies.
12649
12650 2010-05-22  Jan Hubicka  <jh@suse.cz>
12651
12652         * cgraph.h (struct varpool_node): Add same_comdat_group.
12653         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
12654         pointer.
12655         (output_varpool): Update call of lto_output_varpool_node.
12656         (input_varpool): Read same_comdat_group pointer.
12657         (input_varpool_1): Fixup same_comdat_group pointer.
12658         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
12659         group is needed, all are.
12660         * varpool.c (varpool_remove_node): Remove node from same comdat group
12661         linklist too.
12662         (varpool_analyze_pending_decls): Walk same comdat groups.
12663
12664 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
12665
12666         * rtl.h (union rtunion_def): Remove rt_bit member.
12667         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
12668         * print-rtl (print_rtx): Do not print the member.
12669         * gengtype.c (adjust_field_rtx_def): Do not handle it.
12670         * gengenrtl.c (type_from_format): Likewise.
12671         (accessor_from_format): Likewise.
12672
12673 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
12674
12675         * dbgcnt.c: Include toplev.h instead of errors.h.
12676         * ira-emit.c: Don't include errors.h.
12677         * ira.c: Include toplev.h instead of errors.h.
12678         * lto-compress.c: Include toplev.h instead of errors.h.
12679         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
12680         ira.o, dbgcnt.o): Update dependencies.
12681
12682 2010-05-22  Richard Guenther  <rguenther@suse.de>
12683
12684         * gimple.c (gimple_types_compatible_p): Check type qualifications
12685         before merging pointer to complete and pointer to incomplete type.
12686         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
12687         we use our own resolution algorithm.  The gold linker plugin
12688         doesn't do the job we want it to do here.
12689
12690 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
12691
12692         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12693         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12694         (sparc_mode_dependent_address_p): New function.
12695
12696 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
12697
12698         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
12699
12700         * timevar.c: Do not include any core headers.
12701         (timevar_print): De-i18n-ize.
12702         (print_time): Likewise.
12703         * timevar.h (timevar_push, timevar_pop): Make inline functions.
12704
12705 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
12706
12707         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
12708         langhooks-def.h.
12709         (diagnostic_initialize): Initialize x_data not last_function.
12710         (diagnostic_report_current_function): Move to tree-diagnostic.c.
12711         (default_diagnostic_starter): Call
12712         diagnostic_report_current_module not
12713         diagnostic_report_current_function.
12714         (diagnostic_report_diagnostic): Initialize x_data not
12715         abstract_origin.
12716         (verbatim): Likewise.
12717         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
12718         x_data.
12719         (struct diagnostic_context): Change last_function to x_data.
12720         (diagnostic_auxiliary_data): Replace with
12721         diagnostic_context_auxiliary_data and
12722         diagnostic_info_auxiliary_data.
12723         (diagnostic_last_function_changed, diagnostic_set_last_function,
12724         diagnostic_report_current_function): Move to tree-diagnostic.h.
12725         (print_declaration, dump_generic_node, print_generic_stmt,
12726         print_generic_stmt_indented, print_generic_expr,
12727         print_generic_decl, debug_c_tree, dump_omp_clauses,
12728         print_call_name, debug_generic_expr, debug_generic_stmt,
12729         debug_tree_chain, default_tree_printer): Move to
12730         tree-pretty-print.h.
12731         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
12732         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
12733         gimple-pretty-print.h.
12734         * pretty-print.c: Don't include tree.h
12735         (pp_base_format): Don't handle %K here.
12736         (pp_base_tree_identifier): Move to tree-pretty-print.c.
12737         * pretty-print.h (text_info): Change abstract_origin to x_data.
12738         (pp_tree_identifier, pp_unsupported_tree,
12739         pp_base_tree_identifier): Move to tree-pretty-print.h.
12740         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
12741         tree-pretty-print.h: New files.
12742         * tree-pretty-print.c: Include tree-pretty-print.h.
12743         (percent_K_format): New.  Moved from pretty-print.c.
12744         (pp_base_tree_identifier): Move from pretty-print.c.
12745         * c-objc-common.c: Include tree-pretty-print.h.
12746         (c_tree_printer): Handle %K here.
12747         * langhooks.c: Include tree-diagnostic.h.
12748         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
12749         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
12750         (default_tree_printer): Handle %K using percent_K_format.
12751         (general_init): Use default_tree_diagnostic_starter.
12752         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
12753         (free_lang_data): Use default_tree_diagnostic_starter.
12754         * c-pretty-print.c: Include tree-pretty-print.h.
12755         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12756         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12757         * dwarf2out.c: Include tree-pretty-print.h.
12758         * except.c: Include tree-pretty-print.h.
12759         * gimple-pretty-print.c: Include tree-pretty-print.h and
12760         gimple-pretty-print.h.
12761         * gimplify.c: Include tree-pretty-print.h.
12762         * graphite-poly.c: Include tree-pretty-print.h and
12763         gimple-pretty-print.h.
12764         * ipa-cp.c: Include tree-pretty-print.h.
12765         * ipa-inline.c: Include gimple-pretty-print.h.
12766         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12767         * ipa-pure-const.c: Include gimple-pretty-print.h.
12768         * ipa-struct-reorg.c: Include tree-pretty-print.h and
12769         gimple-pretty-print.h.
12770         * ipa-type-escape.c: Include tree-pretty-print.h.
12771         * print-rtl.c: Include tree-pretty-print.h.
12772         * print-tree.c: Include gimple-pretty-print.h.
12773         * sese.c: Include tree-pretty-print.h.
12774         * tree-affine.c: Include tree-pretty-print.h.
12775         * tree-browser.c: Include tree-pretty-print.h.
12776         * tree-call-cdce.c: Include gimple-pretty-print.h.
12777         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12778         * tree-chrec.c: Include tree-pretty-print.h.
12779         * tree-data-ref.c: Include tree-pretty-print.h and
12780         gimple-pretty-print.h.
12781         * tree-dfa.c: Include tree-pretty-print.h.
12782         * tree-if-conv.c: Include tree-pretty-print.h and
12783         gimple-pretty-print.h.
12784         * tree-inline.c: Include tree-pretty-print.h.
12785         * tree-into-ssa.c: Include tree-pretty-print.h and
12786         gimple-pretty-print.h.
12787         * tree-nrv.c: Include tree-pretty-print.h.
12788         * tree-object-size.c: Include tree-pretty-print.h and
12789         gimple-pretty-print.h.
12790         * tree-outof-ssa.c: Include tree-pretty-print.h and
12791         gimple-pretty-print.h.
12792         * tree-parloops.c: Include tree-pretty-print.h and
12793         gimple-pretty-print.h.
12794         * tree-predcom.c: Include tree-pretty-print.h and
12795         gimple-pretty-print.h.
12796         * tree-scalar-evolution.c: Include tree-pretty-print.h and
12797         gimple-pretty-print.h.
12798         * tree-sra.c: Include tree-pretty-print.h.
12799         * tree-ssa-address.c: Include tree-pretty-print.h.
12800         * tree-ssa-alias.c: Include tree-pretty-print.h.
12801         * tree-ssa-ccp.c: Include tree-pretty-print.h and
12802         gimple-pretty-print.h.
12803         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
12804         * tree-ssa-copy.c: Include tree-pretty-print.h and
12805         gimple-pretty-print.h.
12806         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
12807         * tree-ssa-dce.c: Include tree-pretty-print.h and
12808         gimple-pretty-print.h.
12809         * tree-ssa-dom.c: Include tree-pretty-print.h and
12810         gimple-pretty-print.h.
12811         * tree-ssa-dse.c: Include gimple-pretty-print.h.
12812         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
12813         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
12814         * tree-ssa-live.c: Include tree-pretty-print.h and
12815         gimple-pretty-print.h.
12816         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
12817         gimple-pretty-print.h.
12818         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
12819         gimple-pretty-print.h.
12820         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
12821         gimple-pretty-print.h.
12822         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
12823         gimple-pretty-print.h.
12824         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
12825         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
12826         * tree-ssa-operands.c: Include tree-pretty-print.h and
12827         gimple-pretty-print.h.
12828         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
12829         gimple-pretty-print.h.
12830         * tree-ssa-pre.c: Include tree-pretty-print.h and
12831         gimple-pretty-print.h.
12832         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
12833         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
12834         gimple-pretty-print.h.
12835         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
12836         gimple-pretty-print.h.
12837         * tree-ssa-sink.c: Include gimple-pretty-print.h.
12838         * tree-ssa-ter.c: Include tree-pretty-print.h and
12839         gimple-pretty-print.h.
12840         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
12841         * tree-ssa.c: Include tree-pretty-print.h and
12842         gimple-pretty-print.h.
12843         * tree-stdarg.c: Include gimple-pretty-print.h.
12844         * tree-switch-conversion.c: Include gimple-pretty-print.h.
12845         * tree-tailcall.c: Include tree-pretty-print.h and
12846         gimple-pretty-print.h.
12847         * tree-vect-data-refs.c: Include tree-pretty-print.h and
12848         gimple-pretty-print.h.
12849         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
12850         gimple-pretty-print.h.
12851         * tree-vect-loop.c: Include tree-pretty-print.h and
12852         gimple-pretty-print.h.
12853         * tree-vect-patterns.c: Include gimple-pretty-print.h.
12854         * tree-vect-slp.c: Include tree-pretty-print.h and
12855         gimple-pretty-print.h.
12856         * tree-vect-stmts.c: Include tree-pretty-print.h and
12857         gimple-pretty-print.h.
12858         * tree-vectorizer.c: Include tree-pretty-print.h.
12859         * tree-vrp.c: Include tree-pretty-print.h and
12860         gimple-pretty-print.h.
12861         * value-prof.c: Include tree-pretty-print.h and
12862         gimple-pretty-print.h.
12863         * var-tracking.c: Include tree-pretty-print.h.
12864         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
12865         (tree-diagnostic.o): New dependencies.
12866         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
12867         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
12868         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
12869         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
12870         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
12871         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
12872         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
12873         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
12874         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
12875         tree-ssa-address.o, tree-ssa-loop-niter.o,
12876         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
12877         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
12878         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
12879         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
12880         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
12881         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
12882         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
12883         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
12884         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
12885         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
12886         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
12887         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
12888         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
12889         tree-switch-conversion.o, var-tracking.o, value-prof.o,
12890         cfgexpand.o, pretty-print.o): Update dependencies.
12891
12892 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
12893
12894         * tree-ssa-structalias.c: Remove tm_p.h from include.
12895
12896 2010-05-21  Jeff Law  <law@redhat.com>
12897
12898         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
12899
12900 2010-05-21  Jason Merrill  <jason@redhat.com>
12901
12902         * tree-eh.c (cleanup_is_dead_in): New.
12903         (lower_try_finally): Don't generate a dead cleanup region.
12904         (lower_cleanup): Likewise.
12905
12906 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
12907
12908         PR debug/44223
12909         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
12910         unchain each use from the cyclic next_regno_use chain first.
12911
12912 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
12913
12914         * real: Do not include gmp.h, mpfr.h, and mpc.h.
12915         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
12916         (real_value_negate, real_value_abs): New prototypes.
12917         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
12918         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
12919         new include file for interface between MPFR and REAL_VALUE_TYPE.
12920         * real.c: Include realmpfr.h.
12921         (real_arithmetic2): Remove legacy function.
12922         (real_value_negate): New.
12923         (real_value_abs): New.
12924         (mfpr_from_real, real_from_mpfr): Move from here...
12925         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
12926         * builtins.c: Include realmpfr.h.
12927         * fold-const.c: Include realmpfr.h.
12928         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
12929         (fold_negate_const): Likewise.
12930         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
12931         * toplev.c: Include realmpfr.h.
12932         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
12933         and real_value_negate.
12934         * fixed-value.c (check_real_for_fixed_mode): Likewise.
12935         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
12936         (vfp3_const_double_index): Likewise.
12937         (arm_print_operand): Likewise.
12938         * Makefile.in: Update dependencies.
12939
12940 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12941
12942         * config/s390/s390.c (override_options): Increase the default
12943         of max-completely-peel-times.
12944
12945 2010-05-21  Julian Brown  <julian@codesourcery.com>
12946             Mark Mitchell  <mark@codesourcery.com>
12947
12948         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
12949         sibling calls for Thumb-1.
12950         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
12951         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
12952         Thumb-2.
12953         (*call_insn, *call_value_insn): Don't use for Thumb-2.
12954         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
12955         for Thumb-2.
12956         (return): New expander.
12957         (*arm_return): New name for ARM return insn.
12958         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
12959
12960 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
12961
12962         * config.gcc (sparc64-*-rtems*): New target.
12963
12964 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
12965
12966         * tree.c (build_function_decl_skip_args): Fix grammar.
12967         (build_function_type_list_1): Fix typos, adjust formatting.
12968
12969 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
12970
12971         * tree.h: Include real.h and fixed-value.h as basic datatypes.
12972         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
12973         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
12974         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
12975         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
12976         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
12977         tree-pretty-print.c, tree-loop-distribution.c,
12978         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
12979         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
12980         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
12981         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
12982         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
12983         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
12984         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
12985         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
12986         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
12987         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
12988         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
12989         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
12990         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
12991         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
12992         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
12993         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
12994         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
12995         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
12996         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
12997         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
12998         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
12999         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
13000         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
13001         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
13002         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
13003         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
13004         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
13005         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
13006         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
13007         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
13008         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
13009         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
13010         config/score/score7.c, config/score/score.c, config/arm/arm.c,
13011         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
13012         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
13013         config/bfin/bfin.c: Clean up redundant includes.
13014         * Makefile.in: Update accordingly.
13015
13016 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
13017
13018         PR middle-end/44204
13019         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
13020         statement has no arguments.
13021
13022 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
13023
13024         PR/44139
13025         * varasm.c (emutls_decl): Merge attributes to new decl.
13026
13027 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
13028
13029         PR middle-end/44101
13030         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
13031         around the uniquized constructor if its type requires a conversion.
13032
13033 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
13034
13035         PR debug/44205
13036         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
13037         at -O0 goto_locus of any of the incoming edges differs from
13038         goto_locus of outgoing edge, or gimple_location of any of the
13039         labels differs.
13040
13041 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
13042
13043         * ira.c (ira_non_ordered_class_hard_regs): Define.
13044         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
13045         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
13046         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
13047         cost of unaligned hard regs when allocating multi-reg pseudos.
13048
13049 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
13050
13051         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
13052         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
13053         for TARGET_NO_FLOAT.
13054         * config/mips/mips.c (mips_file_start): Expand conditional expression
13055         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
13056         (mips_override_options): Move -mno-float override -msoft-float and
13057         -mhard-float.
13058         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
13059         Condition(TARGET_SUPPORTS_NO_FLOAT).
13060         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
13061         __mips_no_float here.
13062         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
13063         (TARGET_SUPPORTS_NO_FLOAT): Define.
13064         * config/mips/sdemtk.opt: Delete.
13065
13066 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
13067
13068         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
13069
13070 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
13071
13072         PR target/43733
13073         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
13074         * configure: Regenerate.
13075         * config.in: Regenerate.
13076         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
13077         instead of sahf only for 64bit targets.
13078
13079 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
13080
13081         PR debug/44178
13082         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
13083         setup_ref_regs for DEBUG_INSNs.
13084
13085 2010-05-20  Jan Hubicka  <jh@suse.cz>
13086
13087         PR middle-end/44197
13088         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
13089
13090 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
13091
13092         PR bootstrap/43870
13093         * df-scan.c (df_ref_compare): Stabilize sort.
13094
13095 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
13096
13097         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
13098         argument.  Don't use DW_OP_piece if offset is non-zero,
13099         put offset into second DW_OP_bit_piece argument.
13100         (dw_sra_loc_expr): Adjust callers.  For memory expressions
13101         compute offset.
13102
13103 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
13104
13105         PR target/44202
13106         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
13107         settings for 16-bit-constant "addo" alternative.
13108
13109 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
13110
13111         * config/mips/mips-dsp.md (add<DSPV:mode>3,
13112         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
13113
13114         PR target/43764
13115         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
13116         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
13117         Use it.
13118
13119 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
13120
13121         * diagnostic.c (FLOAT, FFS): Don't undefine.
13122         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
13123         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
13124         include ordering.
13125
13126 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
13127
13128         * combine.c (propagate_for_debug): Call make_compound_operation
13129         on the source value.
13130         (try_combine): When implementing a split chosen by find_split_point,
13131         either copy i2src or set it to null.  Assert that i2src is not null
13132         before substituting into CALL_INSN_FUNCTION_USAGE.
13133
13134 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
13135
13136         * double-int.h (double_int_ior): New function.
13137         * tree.h (build_int_cst_wide_type): Remove.
13138         * tree.c (build_int_cst_wide_type): Remove.
13139         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
13140         of build_int_cst_wide_type.
13141         * stor-layout.c (set_sizetype): (Ditto.).
13142         * dojump.c (do_jump): Use build_int_cstu instead of
13143         build_int_cst_wide_type.
13144
13145 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
13146
13147         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
13148         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
13149         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
13150         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
13151         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
13152         propagate the 'data' argument to copy_tree_r.
13153         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
13154         Propagate 'data' argument to walk_tree.
13155         (copy_if_shared): New function.
13156         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
13157         (unmark_visited): New function.
13158         (unshare_body): Call copy_if_shared instead of doing it manually.
13159         (unvisit_body): Call unmark_visited instead of doing it manually.
13160
13161 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
13162
13163         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
13164         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
13165         * hooks.c: Likewise.
13166         * target-def.h (TARGET_FOLD_BUILTIN): Define to
13167         hook_tree_tree_int_treep_bool_null.
13168         * target.h (struct gcc_target): Update signature of fold_builtin
13169         field.
13170         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
13171         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
13172         instead of the call expression.
13173         (fold_builtin_call_array): Pass n and argarray directly.
13174         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
13175         consing a list.
13176         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
13177         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
13178         `i' and use it in place of `arity'.
13179         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
13180         Dereference `args' directly.
13181         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
13182
13183 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13184
13185         * doc/sourcebuild.texi (Effective-Target Keywords): Document
13186         3dnow, sse3, sse2.
13187         (Directives): Document optional dg-require-effective-target
13188         selector.
13189
13190 2010-05-19  Richard Guenther  <rguenther@suse.de>
13191
13192         PR lto/44196
13193         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
13194
13195 2010-05-19  Richard Guenther  <rguenther@suse.de>
13196
13197         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
13198         * common.opt (fwhopr=): New.
13199         * opts.c (common_handle_option): Handle OPT_fwhopr.
13200         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
13201         * collect2.c (main): Match -fwhopr*.
13202         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
13203         Execute ltrans stage in parallel when jobs is bigger than 1.
13204
13205 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13206
13207         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
13208         pentiumpro on Solaris 8/x86 with Sun as.
13209         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
13210         hidden alias bug.
13211         (gcc_cv_as_ix86_quad): Check for .quad directive.
13212         * configure: Regenerate.
13213         * config.in: Regenerate.
13214         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
13215
13216 2010-05-19  Martin Jambor  <mjambor@suse.cz>
13217
13218         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
13219         also for indirect edges.  Actual printing moved...
13220         (ipa_print_node_jump_functions_for_edge): ...here.
13221         (ipa_compute_jump_functions): Renamed to
13222         ipa_compute_jump_functions_for_edge and made static.
13223         (ipa_compute_jump_functions): New function.
13224         (make_edge_direct_to_target): Check if the number of arguments on
13225         the newly direct edge is the same as the number of parametrs of
13226         the callee.
13227         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
13228         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
13229         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
13230         analysis functions unconditionally, call the new
13231         ipa_analyze_params_uses on the node instead of every edge.
13232
13233 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
13234
13235         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
13236         to tree.
13237         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
13238         also checks for a constant int vs.  non-constant but
13239         loop-invariant steps.
13240         (find_or_create_group): Change the sort algorithm to only consider
13241         steps that are constant ints.
13242         (idx_analyze_ref): Adopt code to handle a tree instead of a
13243         HOST_WIDE_INT for step.
13244         (gather_memory_references_ref): Handle tree instead of int and be
13245         prepared to see a NULL_TREE.
13246         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
13247         prefetches if the step cannot be calculated at compile time.
13248         (issue_prefetch_ref): Issue prefetches for non-constant but
13249         loop-invariant steps.
13250
13251 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
13252
13253         Revert:
13254         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
13255
13256         * tree.h (build_call_list): Remove.
13257         * tree.c (build_call_list): Remove.
13258
13259 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
13260
13261         * tree.h (build_call_list): Remove.
13262         * tree.c (build_call_list): Remove.
13263
13264 2010-05-18  Jan Hubicka  <jh@suse.cz>
13265
13266         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
13267
13268 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
13269
13270         PR rtl-optimization/43332
13271         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
13272
13273 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
13274
13275         * tree.h (build_int_cstu): Implement as static inline.
13276         * tree.c (build_int_cstu): Remove function.
13277         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
13278         sign extended.
13279
13280 2010-05-18  Richard Guenther  <rguenther@suse.de>
13281
13282         PR lto/44143
13283         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
13284         (debug): Initialize from -save-temps.
13285         (collect_execute): Print command-line when verbose.
13286         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
13287         for ltrans invocation.  Produce -dumpbase flag again.
13288         (process_args): Remove.
13289         (main): Simplify.
13290         * collect2.c (maybe_run_lto_and_relink): Only pass object
13291         files to lto-wrapper.
13292         * gcc.c (LINK_COMMAND_SPEC): Likewise.
13293
13294 2010-05-18  Jan Hubicka  <jh@suse.cz>
13295
13296         * opts.c (decode_options): Do not disable whopr at ipa_cp.
13297         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
13298
13299 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
13300
13301         PR lto/44184
13302         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
13303         in a GIMPLE_ASM.
13304         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
13305         in a GIMPLE_ASM.
13306
13307 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
13308
13309         PR debug/41371
13310         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
13311         rtx_equal_p inline.
13312
13313 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
13314
13315         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
13316         lto-macho as lto_binary_reader.
13317
13318         * darwin.c (darwin_asm_named_section): Do not add assembler comment
13319         after .section directive; just print it before the directive instead.
13320
13321 2010-05-17  Jan Hubicka  <jh@suse.cz>
13322
13323         * cgraph.c (cgraph_create_virtual_clone): Only check
13324         versionable_function_p when not in wpa and checking is enabled.
13325         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
13326         there are no more functions to materialize.
13327
13328 2010-05-17  Jan Hubicka  <jh@suse.cz>
13329
13330         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
13331         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
13332         New functions.
13333         (output_cgraph): Call output_cgraph_opt_summary.
13334         (input_cgrpah): Call input_cgraph_opt_summary.
13335         (output_cgraph_opt_summary_p, output_node_opt_summary,
13336         input_node_opt_summary, input_cgraph_opt_section): New functions.
13337         * lto-section-in.c (lto_section_name): Add cgraphopt.
13338         * tree-inline.c (tree_function_versioning): Handle parm_num.
13339         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
13340         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
13341
13342 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
13343
13344         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
13345         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
13346         the insn to prefetch ratio heuristic to loops with known trip count.
13347
13348 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
13349
13350         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
13351         (schedule_prefetches): Do not generate a prefetch if the unroll factor
13352         is far from what is required by the prefetch.
13353
13354 2010-05-17  Jan Hubicka  <jh@suse.cz>
13355
13356         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
13357         (ipcp_estimate_growth): Likewise.
13358         (ipcp_const_param_count): Likewise.
13359         (ipcp_insert_stage): Likewise.
13360         * ipa-prop.c (visit_load_for_mod_analysis): New function.
13361         (visit_store_addr_for_mod_analysis): Set used flag.
13362         (ipa_detect_param_modifications): Set used flag for SSE params;
13363         update use of walk_stmt_load_store_addr_ops.
13364         (ipa_print_node_params): Print used flag.
13365         (ipa_write_node_info): Stream used flag.
13366         (ipa_read_node_info): Likewise.
13367         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
13368         (ipa_is_param_used): New function.
13369         (lto_ipa_fixup_call_notes): Remove unused declaration.
13370
13371 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13372
13373         PR target/44074
13374         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
13375         * configure: Regenerate.
13376         * config.in: Regenerate.
13377         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
13378         !HAVE_AS_IX86_REP_LOCK_PREFIX.
13379         Don't emit whitespace.
13380         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
13381         (*rep_movsi): Likewise.
13382         (*rep_movsi_rex64): Likewise.
13383         (*rep_movqi): Likewise.
13384         (*rep_movqi_rex64): Likewise.
13385         (*rep_stosdi_rex64): Likewise.
13386         (*rep_stossi): Likewise.
13387         (*rep_stossi_rex64): Likewise.
13388         (*rep_stosqi): Likewise.
13389         (*rep_stosqi_rex64): Likewise.
13390         (*cmpstrnqi_nz_1): Use {%;} after repz.
13391         (*cmpstrnqi_nz_rex_1): Likewise.
13392         (*cmpstrnqi_1): Likewise.
13393         (*cmpstrnqi_rex_1): Likewise.
13394         (*strlenqi_1): Use {%;} after repnz.
13395         (*strlenqi_rex_1): Likewise.
13396         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
13397         (*sync_compare_and_swap<mode>): Likewise.
13398         (sync_double_compare_and_swap<mode>): Likewise.
13399         (*sync_double_compare_and_swapdi_pic): Likewise.
13400         (sync_old_add<mode>): Likewise.
13401         (sync_add<mode>): Likewise.
13402         (sync_sub<mode>): Likewise.
13403         (sync_<code><mode>): Likewise.
13404
13405 2010-05-17  Martin Jambor  <mjambor@suse.cz>
13406
13407         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
13408         otr_token and polymorphic.
13409         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
13410         (cgraph_clone_edge): Copy the above fields.
13411         * tree.c (get_binfo_at_offset): New function.
13412         * tree.h (get_binfo_at_offset): Declare.
13413         * ipa-prop.h (enum jump_func_type): Added known_type jump function
13414         type, reordered items, updated comments.
13415         (union jump_func_value): Added base_type field, reordered fields.
13416         (enum ipa_lattice_type): Moved down in the file.
13417         (struct ipa_param_descriptor): New field polymorphic.
13418         (ipa_is_param_polymorphic): New function.
13419         * ipa-prop.c: Include gimple.h and gimple-fold.h.
13420         (ipa_print_node_jump_functions): Print known type jump functions.
13421         (compute_complex_pass_through): Renamed to...
13422         (compute_complex_assign_jump_func): this.
13423         (compute_complex_ancestor_jump_func): New function.
13424         (compute_known_type_jump_func): Likewise.
13425         (compute_scalar_jump_functions): Create known type and complex ancestor
13426         jump functions.
13427         (ipa_note_param_call): New parameter polymorphic, set the corresponding
13428         flag in the call note accordingly.
13429         (ipa_analyze_call_uses): Renamed to...
13430         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
13431         variable var only in the block where it is used.
13432         (ipa_analyze_virtual_call_uses): New function.
13433         (ipa_analyze_call_uses): Likewise.
13434         (combine_known_type_and_ancestor_jfs): Likewise.
13435         (update_jump_functions_after_inlining): Implemented handling of a
13436         number of new jump function types combination.
13437         (print_edge_addition_message): Removed.
13438         (make_edge_direct_to_target): New function.
13439         (try_make_edge_direct_simple_call): Likewise.
13440         (try_make_edge_direct_virtual_call): Likewise.
13441         (update_call_notes_after_inlining): Renamed to...
13442         (update_indirect_edges_after_inlining): this.  Moved edge creation for
13443         indirect calls to try_make_edge_direct_simple_call, also calls
13444         try_make_edge_direct_virtual_call for virtual calls.
13445         (ipa_print_node_params): Changed the header message.
13446         (ipa_write_jump_function): Stream also known type jump functions.
13447         (ipa_read_jump_function): Likewise.
13448         (ipa_write_indirect_edge_info): Stream new fields in
13449         cgraph_indirect_call_info.
13450         (ipa_read_indirect_edge_info): Likewise.
13451         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
13452         GIMPLE_FOLD_H.
13453
13454 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13455
13456         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
13457
13458 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
13459
13460         * tree.h (CALL_EXPR_ARGS): Delete.
13461         (call_expr_arglist): Delete.
13462         * tree.c (call_expr_arglist): Delete.
13463         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
13464         targetm.fold_builtin.
13465         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
13466         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
13467         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
13468         arglist parameter.  Use CALL_EXPR_ARG.
13469         (picochip_expand_builtin_3op): Likewise.
13470         (picochip_expand_builtin_2opvoid): Likewise.
13471         (picochip_expand_array_get): Likewise.
13472         (picochip_expand_array_put): Likewise.
13473         (picochip_expand_array_testport): Likewise.
13474         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
13475         rather than arglist.
13476         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
13477         CALL_EXPR_ARGS.
13478         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
13479         than TREE_VALUE and TREE_CHAIN.
13480         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
13481         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
13482         the arglist.
13483
13484 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
13485
13486         PR bootstrap/42347
13487         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
13488         to have no fallthru edge.
13489
13490         PR middle-end/44102
13491         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
13492         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
13493         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
13494         add BARRIER after previous bb if needed.
13495
13496 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
13497
13498         * tree.c (build_function_type_list_1): Remove bogus assert condition.
13499
13500 2010-05-17  Alan Modra  <amodra@gmail.com>
13501
13502         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
13503         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
13504         with copy_reg rtx param.
13505         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
13506         Correct cases where code for ABI_V4 did not initialise the reg
13507         used to access frame.  Also leave frame_reg_rtx as sp for large
13508         frames that save no regs.
13509
13510 2010-05-17  Martin Jambor  <mjambor@suse.cz>
13511
13512         PR middle-end/44133
13513         * tree-sra.c (create_access_replacement): New parameter rename, mark
13514         the replaement for renaming only when it is true.
13515         (get_access_replacement): Pass true in the rename parameter of
13516         create_access_replacement.
13517         (get_unrenamed_access_replacement): New function.
13518         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
13519         replacement declaration from it.
13520
13521 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
13522
13523         * function.c (try_fit_stack_local, add_frame_space): New static
13524         functions.
13525         (assign_stack_local_1): Use them.  Look for opportunities to use
13526         space previously wasted on alignment.
13527         * function.h (struct frame_space): New.
13528         (struct rtl_data): Add FRAME_SPACE_LIST member.
13529         * reload1.c (something_was_spilled): New static variable.
13530         (alter_reg): Set it.
13531         (reload): Test it in addition to testing if the frame size changed.
13532
13533 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
13534
13535         * config/s390/s390.c: Define sane prefetch settings and activate
13536         flag_prefetch_loop_arrays on -O3.
13537         * config/s390/s390.h: Declare that read can use write prefetch.
13538
13539 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
13540
13541         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
13542         build.
13543
13544 2010-05-16  Jan Hubicka  <jh@suse.cz>
13545
13546         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
13547         function body; do not check stdarg field of struct function.
13548
13549 2010-05-16  Jan Hubicka  <jh@suse.cz>
13550
13551         * cgraph.c (dump_cgraph_node): Dump versionable flag.
13552         * cgraph.h (cgraph_local_info): Add versionable flag.
13553         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
13554         (ipcp_versionable_function_p): Use it.
13555         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
13556         versionable flag.
13557
13558 2010-05-16  Jan Hubicka  <jh@suse.cz>
13559
13560         * cgraph.c (cgraph_clone_node): Take decl argument and insert
13561         clone into hash when it is different from orig.
13562         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
13563         * cgraph.h (cgraph_clone_node): Update prototype.
13564         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
13565         (lto_cgraph_encoder_delete): Delete body map.
13566         (lto_cgraph_encoder_size): Move to header.
13567         (lto_cgraph_encoder_encode_body_p,
13568         lto_set_cgraph_encoder_encode_body): New.
13569         (lto_output_node): Do not take written_decls argument; output clone_of
13570         pointer.
13571         (add_node_to): Add include_body_argument; call
13572         lto_set_cgraph_encoder_encode_body on master of the clone.
13573         (add_references): Update use of add_node_to.
13574         (compute_ltrans_boundary): Likewise.
13575         (output_cgraph): Do not create written_decls bitmap.
13576         (input_node): Take nodes argument; stream in clone_of correctly.
13577         (input_cgraph_1): Update use of input_node.
13578         * lto-streamer-out.c (lto_output): Use encoder info to decide
13579         what bodies to output.
13580         * ipa-inline.c (cgraph_clone_inlined_nodes,
13581         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
13582         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
13583         (lto_cgraph_encoder_size): Define here.
13584         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
13585         Declare.
13586
13587 2010-05-16  Richard Guenther  <rguenther@suse.de>
13588
13589         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
13590         -fipa-type-escape.
13591         * ipa-type-escape.c (gate_type_escape_vars): Run when
13592         -fipa-struct-reorg runs.
13593         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
13594         * common.opt (fipa-type-escape): Remove.
13595
13596 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
13597
13598         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
13599         (decode_options): Likewise.
13600         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
13601
13602 2010-05-16  Jan Hubicka  <jh@suse.cz>
13603
13604         * ipa.c (function_and_variable_visibility): Also bring local all
13605         aliases.
13606
13607 2010-05-16  Richard Guenther  <rguenther@suse.de>
13608
13609         * alias.c (nonoverlapping_memrefs_p): Remove use of
13610         IPA type-escape information.
13611
13612 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
13613
13614         * c-common.c (c_common_reswords): Add _Static_assert for C.
13615         * c-parser.c (c_token_starts_declaration,
13616         c_parser_next_token_starts_declaration,
13617         c_parser_static_assert_declaration_no_semi,
13618         c_parser_static_assert_declaration): New.
13619         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
13620         Handle static assertions if static_assert_ok.
13621         (c_parser_external_declaration, c_parser_declaration_or_fndef,
13622         c_parser_compound_statement_nostart, c_parser_label,
13623         c_parser_for_statement, c_parser_objc_methodprotolist,
13624         c_parser_omp_for_loop): All callers of
13625         c_parser_declaration_or_fndef changed.
13626         (c_parser_struct_declaration): Handle static assertions.
13627         (c_parser_compound_statement_nostart): Use
13628         c_parser_next_token_starts_declaration and
13629         c_token_starts_declaration to detect start of declarations.
13630         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
13631         Likewise.
13632
13633 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
13634
13635         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
13636         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
13637         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
13638         TARGET_FUNCTION_VALUE_REGNO_P): Define.
13639         (mmix_function_outgoing_value): Rename to...
13640         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
13641         (mmix_function_value_regno_p): Make static.
13642         (mmix_libcall_value): New function.
13643         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
13644         mmix_function_value_regno_p): Remove declaration.
13645
13646 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
13647
13648         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
13649         BUILT_IN_ALLOCA if stack checking is enabled.
13650
13651 2010-05-16  Richard Guenther  <rguenther@suse.de>
13652
13653         * var-tracking.c (vars_copy_1): Inline ...
13654         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
13655         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
13656         (variable_merge_over_cur): Adjust.  Merge asserts.
13657         (variable_merge_over_src): Likewise.
13658         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
13659         (variable_post_merge_new_vals): Merge asserts.
13660         (variable_post_merge_perm_vals): Likewise.
13661         (find_mem_expr_in_1pdv): Likewise.
13662         (dataflow_set_different_value): Remove.
13663         (onepart_variable_different_p): Merge asserts.
13664         (variable_different_p): Likewise.
13665         (dataflow_set_different_1): Inline ...
13666         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
13667         (emit_notes_for_differences_1): Merge asserts.
13668
13669 2010-05-16  Richard Guenther  <rguenther@suse.de>
13670
13671         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
13672         * optabs.c (libfunc_decl_hash): Likewise.
13673         * varasm.c (emutls_decl): Likewise.
13674
13675 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
13676
13677         * c-decl.c: Don't include gimple.h.
13678         (merge_decls): Do not copy gimple_body.
13679
13680 2010-05-15  Jason Merrill  <jason@redhat.com>
13681
13682         * c.opt: Add -fnothrow-opt.
13683
13684 2010-05-15  Jan Hubicka  <jh@suse.cz>
13685
13686         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
13687         analyzed.
13688         * passes.c (ipa_write_summaries): Write all analyzed nodes.
13689
13690 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
13691
13692         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
13693         * Makefile.in: Add it.
13694         Fix all other Makefile dependencies for changes below.
13695         * tree.h: Include it instead of defining VEC primitives here.
13696         * gimple.h: Likewise.
13697         * rtl.h: Likewise.
13698         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
13699         * except.h: Include vecir.h, break dependence on tree.h.
13700
13701         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
13702         Move from here...
13703         * tree-iterator.c: ...to here.
13704         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
13705
13706         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
13707         tm_p.h.
13708         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
13709         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
13710         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
13711         tree-mudflap.h, and target.h.
13712         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
13713         predict.h, tree-inline.h, gimple.h, and langhooks.h.
13714         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
13715         Add FIXME for why gimple.h is still included (should be unnecessary
13716         since GCC 4.5 gimplification unit-at-a-time).
13717         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
13718         * c-pragma.c: Add FIXME for why function.h needs to be included just
13719         for cfun, at front-end level.
13720         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
13721         Do not include ggc.h, but include vecprim.h for VEC(char).
13722         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
13723         Explain why target.h is included.
13724         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
13725         Explain why gimple.h is included.
13726         * c-ppoutput.c: Do not include tm.h.
13727         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
13728         * c-parses.c: Explain why rtl.h is included, and that this (and only
13729         this) is also why tm.h must be included.
13730         Do not include except.h.
13731         * c-lang.c: Do not include ggc.h.
13732
13733 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
13734
13735         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
13736
13737 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
13738
13739         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
13740         unions by default if those structs and unions have no tags.  Do
13741         not condition anonymous struct and unions handling on flag_iso.
13742         Allow anonymous structs and unions for C1X.
13743         (finish_struct): Do not diagnose lack of named fields when
13744         anonymous structs and unions present for C1X.  Accept flexible
13745         array members in structure with anonymous structs or unions but no
13746         directly named fields.
13747         * doc/extend.texi (Unnamed Fields): Update.
13748
13749 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
13750
13751         * gimple.h (compare_field_offset): Rename into...
13752         (gimple_compare_field_offset): ...this.
13753         * gimple.c (compare_field_offset): Rename into...
13754         (gimple_compare_field_offset): ...this.  Compare the full access if
13755         the offset is self-referential.
13756         (gimple_types_compatible_p): Adjust for above renaming.
13757         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
13758         DECL_NONADDRESSABLE_P flag of fields before merging them.
13759
13760 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
13761
13762         * tree.h (ctor_to_list): Delete.
13763         * tree.c (ctor_to_list): Delete.
13764
13765 2010-05-15  Jan Hubicka  <jh@suse.cz>
13766
13767         * ipa-reference.c: Include toplev.h
13768         (is_proper_for_analysis): Only add to all_module_statics
13769         if it is allocated.
13770         (write_node_summary_p, stream_out_bitmap,
13771         ipa_reference_write_optimization_summary,
13772         ipa_reference_read_optimization_summary): New.
13773         (struct ipa_opt_pass_d pass_ipa_reference): Add
13774         optimization summary streaming.
13775         * lto-cgraph.c (referenced_from_this_partition_p,
13776         reachable_from_this_partition_p): New functions.
13777         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
13778         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
13779         * opts.c (decode_options): Enable ipa_reference.
13780         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
13781         * lto-streamer.h (referenced_from_this_partition_p,
13782         reachable_from_this_partition_p): Declare.
13783
13784 2010-05-15  Richard Guenther  <rguenther@suse.de>
13785
13786         PR tree-optimization/44038
13787         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
13788         taking the address of a V_C_E of a constant.
13789
13790 2010-05-14  Jan Hubicka  <jh@suse.cz>
13791
13792         * tree.h (memory_identifier_string): Remove.
13793         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
13794         (ipa_reference_global_vars_info_d): Remove statics_not_read and
13795         statics_not_written.
13796         (ipa_reference_optimization_summary_d): New structure.
13797         (ipa_reference_optimization_summary_t): New type and vector.
13798         (ipa_reference_vars_info_d): Embedd structures instead of using
13799         pointers.
13800         (reference_vars_to_consider): Remove out of GGC space.
13801         (module_statics_escape): Remove.
13802         (global_info_obstack): Rename to ...
13803         (optimization_summary_obstack): ... this one.
13804         (initialization_status_t): Remove.
13805         (memory_identifier_string): Remove.
13806         (get_reference_vars_info): Fix indenting.
13807         (set_reference_vars_info): Likewise.
13808         (get_reference_optimization_summary): New.
13809         (set_reference_optimization_summary): New.
13810         (get_global_reference_vars_info): Remove.
13811         (ipa_reference_get_read_global): Remove.
13812         (ipa_reference_get_written_global): Remove.
13813         (ipa_reference_get_not_read_global): Update.
13814         (ipa_reference_get_not_written_global): Update.
13815         (is_proper_for_analysis): Outlaw addressable.
13816         (propagate_bits): Update for new datastructures.
13817         (analyze_variable): Remove.
13818         (init_function_info): Update for new datastructures.
13819         (clean_function_local_data): Remove.
13820         (clean_function): Remove.
13821         (copy_global_bitmap): Use optimizations_summary_obstack.
13822         (duplicate_node_data): Duplicate optimization summary only.
13823         (remove_node_data): Remove optimization summary only.
13824         (generate_summary): Do not analyze variables; do not compute
13825         module_statics_escape; do not prune solutions by it.
13826         (read_write_all_from_decl): Fix typos in comments.
13827         (propagate): Doscover readonly and nonaddressable first;
13828         update for new datastructures; share global bitmaps.
13829         * ipa-reference.h (ipa_reference_get_read_global,
13830         ipa_reference_get_written_global): Remove.
13831         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
13832         * Makefile.in: Remove ipa-refereference from GT files.
13833
13834 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
13835
13836         PR debug/44112
13837         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
13838         for all SYMBOL_REF_DECLs.
13839
13840 2010-05-14  Jan Hubicka  <jh@suse.cz>
13841
13842         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
13843         (varpool_all_refs_explicit_p): New inline function.
13844         * ipa-reference.c: Update comment.
13845         (module_statics_written): Remove.
13846         (get_static_decl): Remove.
13847         (ipa_init): Do not initialize module_statics_written.
13848         (analyze_function): Likewise.
13849         (generate_summary): Likewise; do not compute module_statics_readonly
13850         and do not update variable flags.
13851         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
13852         * ipa.c: Inlucde flags.h
13853         (cgraph_local_node_p): New.
13854         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
13855         promote functions to local.
13856         (ipa_discover_readonly_nonaddressable_vars): New function.
13857         (function_and_variable_visibility): Use cgraph_local_node_p.
13858         * varpool.c (varpool_finalize_decl): Set force_output for
13859         DECL_PRESERVE_P vars.
13860
13861 2010-05-14  Jan Hubicka  <jh@suse.cz>
13862
13863         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
13864
13865 2010-05-14  Richard Guenther  <rguenther@suse.de>
13866
13867         PR tree-optimization/44119
13868         * tree-ssa-pre.c (eliminate): Properly mark replacement of
13869         a PHI node necessary.
13870
13871 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
13872
13873         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
13874
13875 2010-05-14  Jason Merrill  <jason@redhat.com>
13876
13877         PR c++/44127
13878         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
13879         (gimple_call_set_nothrow): New.
13880         * gimple.c (gimple_build_call_from_tree): Call it.
13881         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
13882
13883         PR c++/44127
13884         * gimplify.c (gimplify_seq_add_stmt): No longer static.
13885         * gimple.h: Declare it.
13886         * gimple.c (gimple_build_eh_filter): No ops.
13887
13888 2010-05-14  Jan Hubicka  <jh@suse.cz>
13889
13890         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
13891         nodes already in queue.
13892         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
13893         re-enqueueing node.
13894
13895 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
13896
13897         PR debug/44136
13898         * cfgexpand.c (expand_debug_expr): If non-memory op0
13899         has BLKmode, return NULL.
13900
13901 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
13902
13903         * config.gcc: Add support for --with-cpu option for bdver1.
13904         * config/i386/i386.h (TARGET_BDVER1): New macro.
13905         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
13906         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
13907         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
13908         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
13909         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
13910         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
13911         (processor_type): Add PROCESSOR_BDVER1.
13912         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
13913         processor_type in config/i386/i386.h.
13914         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
13915         movaps <reg, reg> instead of movapd <reg, reg> when replacing
13916         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
13917         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
13918         to emit packed xor instead of packed double/packed integer
13919         xor for SSE and AVX when moving a zero value.
13920         * config/i386/sse.md: Add check for
13921         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
13922         movapd/movdqa for SSE and AVX.
13923         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
13924         single logical operations i.e and, or and xor instead of packed double
13925         logical operations for SSE and AVX.
13926         * config/i386/i386-c.c (ix86_target_macros_internal):
13927         Add PROCESSOR_BDVER1.
13928         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
13929         (has_fma4, has_xop): New.
13930         * config/i386/i386.c (bdver1_cost): New variable.
13931         (m_BDVER1): New macro.
13932         (m_AMD_MULTIPLE): Add m_BDVER1.
13933         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
13934         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
13935         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
13936         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
13937         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
13938         x86_tune_sse_partial_reg_dependency,
13939         x86_tune_sse_unaligned_load_optimal,
13940         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
13941         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
13942         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
13943         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
13944         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
13945         Enable/disable for bdver1.
13946         (processor_target_table): Add bdver1_cost.
13947         (cpu_names): Add bdver1.
13948         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
13949          processor_alias_table.
13950         (ix86_expand_vector_move_misalign): Change.
13951         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
13952         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
13953         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
13954         of movupd/movdqu for SSE and AVX.
13955         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
13956         (ix86_tune_adjust_cost): Add code for bdver1.
13957         (standard_sse_constant_opcode): Add check for
13958         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
13959         of packed double xor for SSE and AVX.
13960
13961 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
13962
13963         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
13964         result to unsigned.
13965
13966 2010-05-14  Tristan Gingold  <gingold@adacore.com>
13967
13968         * toplev.c (default_debug_hooks): Remove this variable.
13969         (process_options): Remove assignments to default_debug_hooks.
13970
13971 2010-05-14  Martin Jambor  <mjambor@suse.cz>
13972
13973         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
13974         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
13975         * langhooks.h (struct lang_hooks_for_decls): Removed field
13976         fold_obj_type_ref.
13977         * tree.c (free_lang_data): Remove assignment to
13978         lang_hooks.fold_obj_type_ref.
13979         * tree.def (OBJ_TYPE_REF): Update comment.
13980
13981 2010-05-14  Richard Guenther  <rguenther@suse.de>
13982
13983         PR tree-optimization/44124
13984         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
13985
13986 2010-05-14  Alan Modra  <amodra@gmail.com>
13987
13988         PR target/44075
13989         * config/rs6000/rs6000.c (struct machine_function): Reorder
13990         fields for better packing.  Add lr_save_state.
13991         (rs6000_ra_ever_killed): Return lr_save_state if set.
13992         (rs6000_emit_eh_reg_restore): Set lr_save_state.
13993
13994 2010-05-13  Jan Hubicka  <jh@suse.cz>
13995
13996         * varpool.c (decide_is_variable_needed): Drop code checking
13997         TREE_SYMBOL_REFERENCED.
13998
13999 2010-05-13  Jan Hubicka  <jh@suse.cz>
14000
14001         * final.c (output_addr_const): Do not call mark_decl_referenced.
14002         * cgraphunit.c (process_function_and_variable_attributes): Use
14003         mark_needed_node dirrectly.
14004         (assemble_thunk): Do not call mark_decl_referenced.
14005
14006 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
14007
14008         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
14009
14010 2010-05-13  Jeff Law  <law@redhat.com>
14011
14012         * ira-conflicts.c (print_allocno_conflicts): New function broken out
14013         from...
14014         (print_conflicts): Call print_allocno_conflicts.
14015
14016 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
14017
14018         PR debug/44104
14019         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
14020         if it is NULL.
14021
14022 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
14023
14024         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
14025         t-mingw-w64 or t-mingw-w32 for multilib configuration.
14026         * config/i386/t-mingw-w32: New.
14027         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
14028
14029 2010-05-13  Martin Jambor  <mjambor@suse.cz>
14030
14031         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
14032         gimple-fold.c).
14033         * gimple-fold.c (get_base_binfo_for_type): New function.
14034         (gimple_get_relevant_ref_binfo): Likewise.
14035         (gimple_fold_obj_type_ref_known_binfo): Likewise.
14036         (gimple_fold_obj_type_ref): Likewise.
14037         (fold_gimple_call): Simplify condition for folding virtual calls
14038         and call gimple_fold_obj_type_ref.
14039         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
14040         (gimple_fold_obj_type_ref_known_binfo): Likewise.
14041
14042 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
14043
14044         * config/rs6000/rs6000-protos.h
14045         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
14046         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
14047         (rs6000_debug_mode_dependent_address)
14048         (rs6000_mode_dependent_address_ptr): Likewise.
14049
14050 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
14051
14052         PR debug/43983
14053         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
14054         by SRA.
14055         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
14056         * tree-sra.c (create_access_replacement): Call unshare_expr before
14057         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
14058         * dwarf2out.c: Include tree-flow.h.
14059         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
14060         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
14061         Handle DW_OP_bit_piece.
14062         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
14063         construct_piece_list, adjust_piece_list): New functions.
14064         (add_var_loc_to_decl): Handle SRA optimized variables.
14065         Adjust for var_loc_note to loc field renaming.
14066         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
14067         in VAR_LOCATION note.
14068         (new_loc_descr_op_bit_piece): New function.
14069         (dw_sra_loc_expr): New function.
14070         (dw_loc_list): Use it.  Don't handle the last range after the
14071         loop, handle it inside of the loop.  Adjust for var_loc_note
14072         to loc field renaming.
14073         (add_location_or_const_value_attribute): Only special case
14074         single entry loc lists if loc is NOTE_P.  Adjust for
14075         var_loc_note to loc field renaming.
14076         (dwarf2out_var_location): Don't set newloc->var_loc_note
14077         and newloc->next here.
14078
14079 2010-05-12  Jan Hubicka  <jh@suse.cz>
14080
14081         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
14082         flag.
14083         * cgraph.h (cgraph_only_called_directly_p,
14084         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
14085         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
14086         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
14087         (assemble
14088         * ipa.c (cgraph_remove_unreachable_nodes): Use
14089         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
14090         flags.
14091         * tree-inline.c (copy_bb): Check address_taken flag.
14092         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
14093         externally_visible flag.
14094
14095 2010-05-12  Jason Merrill  <jason@redhat.com>
14096
14097         PR bootstrap/44048
14098         PR target/44099
14099         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
14100         * sdbout.c (plain_type_1): Likewise.
14101         * dwarf2out.c (is_base_type): Likewise.
14102         (gen_type_die_with_usage): Likewise.  Generate
14103         DW_TAG_unspecified_type for any LANG_TYPE.
14104
14105 2010-05-12  Jan Hubicka  <jh@suse.cz>
14106
14107         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
14108         indrect edges too.
14109         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
14110         (cgraph_clone_edge): Update.
14111         (cgraph_node_remove_callees): Remove indirect calls too.
14112         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
14113         (cgraph_create_indirect_edge): Update prototype.
14114         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
14115         is_proper_for_analysis.
14116         (add_new_function, visited_nodes, function_insertion_hook_holder,
14117         get_local_reference_vars_info, mark_address_taken, mark_address,
14118         mark_load, mark_store, check_asm_memory_clobber, check_call,
14119         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
14120         (ipa_init): Do not initialize visited_nodes;
14121         function_insertion_hook_holder.
14122         (analyze_variable): Rewrite.
14123         (analyze_function): Rewrite.
14124         (copy_local_bitmap): Remove.
14125         (duplicate_node_dat): Do not duplicate local info.
14126         (generate_summary): Simplify to only walk cgraph.
14127         (write_node_summary_p, ipa_reference_write_summary,
14128         ipa_reference_read_summary): Remove.
14129         (propagate): Do not remove function insertion;
14130         generate summary.
14131         (pass_ipa_reference): NULLify summary handling fields.
14132         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
14133         (input_edge): Input ecf_flags.
14134         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
14135         (update_indirect_edges_after_inlining): Ignore edges with unknown
14136         param.
14137
14138 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
14139
14140         * implicit-zee.c: New file.
14141         * tree-pass.h (pass_implicit_zee): Declare.
14142         * passes.c (init_optimization_passes): Add zee pass.
14143         * common.opt (fzee): New flag.
14144         * timevar.def (TV_ZEE): Define.
14145         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
14146         and beyond.
14147         * Makefile.in (implicit-zee.o): Add new build file.
14148
14149 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
14150             Nathan Froyd  <froydnj@codesourcery.com>
14151
14152         * c-common.c (sync_resolve_params): Remove write-only variable.
14153
14154 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
14155
14156         * target.h (struct gcc_target): Add mode_dependent_address_p field.
14157         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
14158         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
14159         * targhooks.c (default_mode_dependent_address_p): New function.
14160         * targhooks.h (default_mode_dependent_address_p): Declare function.
14161         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
14162         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
14163         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
14164         target hook. Change return type to bool.
14165         * recog.h (mode_dependent_address_p): Change return type to bool.
14166
14167 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
14168             Nathan Froyd  <froydnj@codesourcery.com>
14169
14170         * tree-mudflap.c (build_function_type_0, build_function_type_1,
14171         build_function_type_2, build_function_type_3): Remove.
14172         (mudflap_init): Use build_function_type_list.
14173
14174 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
14175             Nathan Froyd  <froydnj@codesourcery.com>
14176
14177         * coverage.c (build_fn_info_value): Call build_constructor instead of
14178         build_constructor_from_list.
14179         (build_ctr_info_value): Likewise.
14180         (build_gcov_info): Likewise.
14181
14182 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
14183
14184         * tree.c (build_constructor): Compute TREE_CONSTANT for the
14185         resultant constructor.
14186         (build_constructor_single): Don't set TREE_CONSTANT.
14187         (build_constructor_from_list): Don't compute TREE_CONSTANT.
14188
14189 2010-05-12  Jan Hubicka  <jh@suse.cz>
14190
14191         * cgraph.h (struct varpool_node): Add aux.
14192         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
14193         * varpool.c (varpool_remove_node): Do not remove initializer.
14194         (varpool_reset_queue): Export.
14195         (varpool_finalize_decl): Volatile vars are forced to be output.
14196         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
14197         replaced decl.
14198         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
14199         process_references, varpool_can_remove_if_no_refs): New functions.
14200         (cgraph_remove_unreachable_nodes): Handle variables too.
14201
14202 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
14203
14204         PR target/44088
14205         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
14206
14207 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
14208
14209         PR middle-end/44085
14210         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
14211         change value of ORT_TASK.
14212         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
14213         (omp_notice_threadprivate_variable): New function.
14214         (omp_notice_variable): Call it for threadprivate variables.
14215         If enclosing ctx is a task, print enclosing task rather than
14216         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
14217         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
14218         if task has untied clause.
14219
14220         PR debug/42278
14221         * dwarf2out.c (base_type_die): Don't add name attribute here.
14222         (modified_type_die): Instead of sizetype use
14223         its underlying original type.  If a DW_TAG_base_type doesn't
14224         have name added, add __unknown__.
14225         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
14226         always call force_type_die instead.
14227
14228 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
14229
14230         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
14231         for __stack_chk_guard.
14232
14233 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
14234
14235         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
14236         don't call start_source_file debug hook here...
14237         (finish_options): ... but here, after outputting predefined and
14238         command line defines and undefs.
14239
14240         PR middle-end/44071
14241         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
14242         no fallthru edge.
14243         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
14244         optimizing away empty bb with no successors, move over its
14245         footer chain to fallthru predecessor.
14246         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
14247         (rtl_split_edge): For asm goto call patch_jump_insn even if
14248         splitting fallthru edge.
14249
14250         PR c++/44059
14251         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
14252         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
14253         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
14254         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
14255         on DW.ref.* decls.
14256
14257         PR c++/44062
14258         * c-parser.c (c_parser_expression): Mark LHS of a comma
14259         expression as read if it is a decl, handled component or
14260         COMPOUND_EXPR with that on the RHS.
14261         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
14262         if it is a decl or handled component.
14263
14264 2010-05-11  Jan Hubicka  <jh@suse.cz>
14265
14266         * lto-symtab.c (lto_symtab_free): New function.
14267         * lto-streamer.h (lto_symtab_free): Declare.
14268
14269 2010-05-11  Jan Hubicka  <jh@suse.cz>
14270
14271         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
14272         that if function is needed it is reachable.
14273         (lto_output_node): See if it the function is reachable or referenced.
14274         (output_cgraph): Update call of lto_output_node.
14275         * lto-streamer.h (reachable_from_other_partition_p): Declare.
14276
14277 2010-05-11  Jan Hubicka  <jh@suse.cz>
14278
14279         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
14280         Mark as used.
14281
14282 2010-05-11  Jan Hubicka  <jh@suse.cz>
14283
14284         PR tree-optimize/44063
14285         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
14286         queue.
14287         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
14288         limits.
14289         (estimate_function_body_sizes): Compute sizes even when disregarding.
14290
14291 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
14292
14293         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
14294
14295 2010-05-11  Jan Hubicka  <jh@suse.cz>
14296
14297         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
14298         into every boundary.
14299
14300 2010-05-11  Jan Hubicka  <jh@suse.cz>
14301
14302         * matrix-reorg.c (matrix_reorg): Rebuild edges.
14303
14304 2010-05-11  Jan Hubicka  <jh@suse.cz>
14305
14306         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
14307         lto_streamer_cache_delete): Put nodes into heap.
14308         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
14309         heap.
14310
14311 2010-05-11  Jan Hubicka  <jh@suse.cz>
14312
14313         * cgraphbuild.c (cgraph_rebuild_references): New.
14314         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
14315         out extern inlines.
14316         * cgraph.h (cgraph_rebuild_references): Declare.
14317         * tree-inline.c (tree_function_versioning): Use it.
14318         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
14319
14320 2010-05-11  Jan Hubicka  <jh@suse.cz>
14321
14322         * cgraph.c: Include ipa-utils.h
14323         (cgraph_create_virtual_clone): Update references.
14324         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
14325
14326 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
14327
14328         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
14329         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
14330         cache size.
14331
14332 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
14333
14334         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
14335
14336 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
14337
14338         * gcc.c (execute): For -### don't quote arguments that
14339         contain just alphanumerics and _/-. characters.
14340         * doc/invoke.texi: Document that change for -###.
14341
14342         PR debug/44023
14343         * df-problems.c (struct dead_debug): Add to_rescan field.
14344         (dead_debug_init): Clear to_rescan field.
14345         (dead_debug_finish): Rescan all debug insns in to_rescan
14346         bitmap and free the bitmap.
14347         (dead_debug_insert_before): Instead of rescanning debug insns
14348         immediately queue their rescanning until dead_debug_finish.
14349         (df_note_bb_compute): After dead_debug_add do continue instead
14350         of break.
14351
14352 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
14353
14354         PR debug/44028
14355         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
14356         clear also INSN_REG_USE_LIST.
14357
14358 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14359
14360         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
14361
14362 2010-05-10  Jan Hubicka  <jh@suse.cz>
14363
14364         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
14365         commited change.
14366
14367 2010-05-10  Jan Hubicka  <jh@suse.cz>
14368
14369         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
14370         Allocate encoders.
14371         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
14372         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
14373         (lto_streamer_cache_create): Init alloc pool.
14374         (lto_streamer_cache_delete): Free alloc pool.
14375         * lto-streamer.h: Include alloc pool.
14376         (lto_streamer_cache_d): Use alloc pool.
14377         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
14378
14379 2010-05-10  Jan Hubicka  <jh@suse.cz>
14380
14381         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
14382         * cgraphbuild.c: Include except.h
14383         (record_type_list, record_eh_tables): New function.
14384         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
14385
14386 2010-05-10  Jan Hubicka  <jh@suse.cz>
14387
14388         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
14389         __frame_dummy_init_array_entry, force_to_data): Attribute as used
14390         rather than unused.
14391
14392 2010-05-10  Michael Matz  <matz@suse.de>
14393
14394         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
14395         (can_reassociate_p): Use FLOAT_TYPE_P.
14396         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
14397         (vect_force_simple_reduction): ... this.
14398         * tree-parloops.c (gather_scalar_reductions): Use
14399         vect_force_simple_reduction.
14400         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
14401         vect_is_simple_reduction, add modify argument, if true rewrite
14402         "a-b" into "a+(-b)".
14403         (vect_is_simple_reduction, vect_force_simple_reduction): New
14404         functions.
14405         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
14406
14407 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
14408             Vladimir Makarov  <vmakarov@redhat.com>
14409
14410         PR rtl-optimization/44012
14411         * ira-build.c (remove_unnecessary_allocnos): Nullify
14412         regno_allocno_map of the removed allocno.
14413
14414 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14415
14416         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
14417         to /dev/null.
14418         * configure: Regenerate.
14419
14420 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14421
14422         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
14423         unused.
14424         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
14425         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
14426         support in Sun ld.
14427         * configure: Regenerate.
14428
14429 2010-05-10  Richard Guenther  <rguenther@suse.de>
14430
14431         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
14432         marked if the entry identifier is marked.
14433
14434 2010-05-10  Richard Guenther  <rguenther@suse.de>
14435
14436         * c-common.c (struct c_common_attributes): Add fnspec attribute.
14437         (handle_fnspec_attribute): New function.
14438         * gimple.h (gimple_call_return_flags): Declare.
14439         (gimple_call_arg_flags): Likewise.
14440         * gimple.c (gimple_call_arg_flags): New function.
14441         (gimple_call_return_flags): Likewise.
14442         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
14443         New argument flags.
14444         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
14445         return value flags.
14446         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
14447         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
14448         main work to ...
14449         (make_heapvar_for): ... this new function.
14450         (handle_rhs_call): Handle fnspec attribute argument specifiers.
14451         (handle_lhs_call): Likewise.
14452         (find_func_aliases): Adjust.
14453
14454 2010-05-10  Richard Guenther  <rguenther@suse.de>
14455
14456         PR tree-optimization/44050
14457         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
14458
14459 2010-05-10  Wei Guozhi  <carrot@google.com>
14460
14461         PR target/42879
14462         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
14463
14464 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
14465
14466         PR c/10676
14467         * c-typeck.c (lookup_field): Take a type directly.  Update
14468         recursive calls.
14469         (build_component_ref): Update call to lookup_field.
14470         (set_init_label): Use lookup_field to find initialized field.
14471         Handle returned list of fields like a sequence of designators.
14472
14473 2010-05-09  Richard Guenther  <rguenther@suse.de>
14474
14475         PR middle-end/44024
14476         * fold-const.c (tree_single_nonzero_warnv_p): Properly
14477         handle &FUNCTION_DECL.
14478
14479 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
14480
14481         PR c/4784
14482         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
14483         structures and unions recursively.
14484         (detect_field_duplicates): Move duplicate detection with a hash to
14485         detect_field_duplicates_hash.  Always use a hash if anonymous
14486         structures or unions are present.
14487         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
14488         give errors.
14489
14490 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
14491
14492         PR target/44046
14493         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
14494         detect Atom, Core 2 and Core i7.
14495
14496 2010-05-09  Richard Guenther  <rguenther@suse.de>
14497
14498         * gcc.c (store_arg): Handle temporary file deletion for
14499         joined arguments.
14500
14501 2010-05-09  Richard Guenther  <rguenther@suse.de>
14502
14503         PR middle-end/44043
14504         * ipa-inline.c (estimate_function_body_sizes): Return after
14505         disregarding inline limits.
14506
14507 2010-05-09  Richard Guenther  <rguenther@suse.de>
14508
14509         * gcc.c (store_arg): Revert last change.
14510
14511 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
14512
14513         PR middle-end/28685
14514         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
14515         (optimize_ops_list): Call it.
14516
14517 2010-05-08  Richard Guenther  <rguenther@suse.de>
14518
14519         PR tree-optimization/44030
14520         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
14521         NECESSARY flag if we propagate from a inserted expression.
14522
14523 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
14524
14525         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
14526         domain types as equal if they are both PLACEHOLDER_EXPRs.
14527
14528 2010-05-08  Richard Guenther  <rguenther@suse.de>
14529
14530         * lto-wrapper.c (run_gcc): Remove linker output from
14531         command line for LTRANS invocation.
14532
14533 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
14534
14535         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
14536         lto-macho as lto_binary_reader.
14537         * target.h (struct gcc_target): New hooks lto_start and lto_end.
14538         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
14539         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
14540         in lto_start and lto_end calls.
14541         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
14542         magic numbers.
14543         (scan_prog_file): Update is_elf_or_coff call.
14544         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
14545
14546         * collect2.c (main): Fix enum comparison.
14547
14548         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
14549         Add prototypes.
14550         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
14551         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
14552         and TARGET_ASM_LTO_END.
14553         * darwin.c: Include obstack.h and lto-streamer.h.
14554         (lto_section_names_offset, lto_section_names_obstack,
14555         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
14556         global variables.
14557         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
14558         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
14559         to a temporary file.
14560         (darwin_asm_lto_end): New function.  Restore asm_out_file.
14561         (darwin_asm_named_section): For LTO sections, replace the name with
14562         the offset of the section name in a string table, and build this
14563         table.
14564         (darwin_file_start): Initialize global vars for LTO support.
14565         (darwin_file_end): If output to asm_out_file was redirected, append it
14566         to the proper asm_out_file here.  Add the section names section.
14567
14568 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
14569
14570         * c-pragma.c (pending_weak_d, pending_weak): New.
14571         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
14572         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
14573         handle_pragma_weak): Update the uses of pending_weaks.
14574
14575 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14576
14577         PR documentation/44016
14578         * doc/standards.texi (Standards): Link to unversioned
14579         cxx0x_status.html page.
14580
14581 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
14582
14583         PR target/43708
14584         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
14585         in addition to TREE_USED, to avoid "set but unused" warnings.
14586
14587 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
14588
14589         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
14590         (is_loop_prefetching_profitable): Do not insert prefetches
14591         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
14592         times the prefetch ahead distance.
14593
14594 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
14595
14596         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
14597         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
14598         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
14599         the unroll_factor.
14600
14601 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
14602
14603         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
14604         a diagnostic info when the insn-to-mem ratio is too small.
14605
14606 2010-05-07  Richard Guenther <rguenther@suse.de>
14607
14608         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
14609         the linker plugin.
14610         (store_arg): Queue temp_filename for deletion instead of
14611         the whole argument.
14612
14613 2010-05-07  Richard Guenther  <rguenther@suse.de>
14614
14615         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
14616         (run_gcc): Handle LTRANS phase invocation.
14617         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
14618
14619 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
14620
14621         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
14622         this is also meaningful on PARM_DECLs and RESULT_DECLs.
14623
14624 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14625
14626         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
14627
14628 2010-05-07  Richard Guenther  <rguenther@suse.de>
14629
14630         PR tree-optimization/44020
14631         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
14632         code when PRE is not yet initialized.
14633
14634 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14635
14636         * config/mips/dbxmdebug.h: Remove.
14637         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
14638
14639 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
14640
14641         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
14642         with null pointer and also warn about ordered comparison of zero with
14643         pointer if -Wextra.
14644
14645 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14646
14647         * graphite-blocking.c
14648         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
14649         * graphite-clast-to-gimple.c
14650         (clast_to_gcc_expression): Same.
14651         (precision_for_value): Same.
14652         (precision_for_interval): Same.
14653         (gcc_type_for_interval): Same.
14654         (graphite_create_new_guard): Same.
14655         (compute_bounds_for_level): Same.
14656         (graphite_create_new_loop_guard): Same.
14657         * graphite-interchange.c
14658         (build_linearized_memory_access): Same.
14659         (pdr_stride_in_loop): Same.
14660         (memory_strides_in_loop_1): Same.
14661         (memory_strides_in_loop): Same.
14662         (extend_scattering): Same.
14663         (psct_scattering_dim_for_loop_depth): Same.
14664         (pbb_number_of_iterations): Same.
14665         * graphite-poly.h
14666         (debug_iteration_domains): Same.
14667         * graphite-ppl.c
14668         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14669         (ppl_set_inhomogeneous_gmp): Same.
14670         (ppl_strip_loop): Same.
14671         (ppl_lexico_compare_linear_expressions): Same.
14672         (ppl_read_polyhedron_matrix): Same.
14673         (ppl_max_for_le_pointset): Same.
14674         * graphite-ppl.h
14675         (ppl_read_polyhedron_matrix): Same.
14676         (tree_int_to_gmp): Same.
14677         (gmp_cst_to_tree): Same.
14678         (ppl_set_inhomogeneous): Same.
14679         (ppl_set_inhomogeneous_tree): Same.
14680         (ppl_set_coef): Same.
14681         (ppl_set_coef_tree): Same.
14682         * graphite-sese-to-poly.c
14683         (build_pbb_scattering_polyhedrons): Same.
14684         (build_scop_scattering): Same.
14685         (scan_tree_for_params_right_scev): Same.
14686         (scan_tree_for_params): Same.
14687         (find_params_in_bb): Same.
14688         (find_scop_parameters): Same.
14689         (add_upper_bounds_from_estimated_nit): Same.
14690         (build_loop_iteration_domains): Same.
14691         (add_condition_to_domain): Same.
14692         (pdr_add_memory_accesses): Same.
14693
14694 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14695
14696         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
14697         CLooG's value_* macros to their respective mpz_* counterparts.
14698         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
14699         (graphite_create_new_loop_guard): Same.
14700         * graphite-interchange.c (build_linearized_memory_access): Same.
14701         (pdr_stride_in_loop): Same.
14702         (memory_strides_in_loop_1): Same.
14703         (1st_interchange_profitable_p): Same.
14704         * graphite-poly.c (extend_scattering): Same.
14705         (psct_scattering_dim_for_loop_depth): Same.
14706         (pbb_number_of_iterations): Same.
14707         (pbb_number_of_iterations_at_time): Same.
14708         * graphite-poly.h (new_1st_loop): Same.
14709         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
14710         (oppose_constraint): Same.
14711         (insert_constraint_into_matrix): Same.
14712         (ppl_set_inhomogeneous_gmp): Same.
14713         (ppl_set_coef_gmp): Same.
14714         (ppl_strip_loop): Same.
14715         (ppl_lexico_compare_linear_expressions): Same.
14716         (ppl_max_for_le_pointset): Same.
14717         (ppl_min_for_le_pointset): Same.
14718         (ppl_build_realtion): Same.
14719         * graphite-ppl.h (gmp_cst_to_tree): Same.
14720         (ppl_set_inhomogeneous): Same.
14721         (ppl_set_inhomogeneous_tree): Same.
14722         (ppl_set_coef): Same.
14723         (ppl_set_coef_tree): Same.
14724         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
14725         (build_scop_scattering): Same.
14726         (add_value_to_dim): Same.
14727         (scan_tree_for_params_right_scev): Same.
14728         (scan_tree_for_params_int): Same.
14729         (scan_tree_for_params): Same.
14730         (find_params_in_bb): Same.
14731         (find_scop_parameters): Same.
14732         (add_upper_bounds_from_estimated_nit): Same.
14733         (build_loop_iteration_domains): Same.
14734         (create_linear_expr_from_tree): Same.
14735         (add_condition_to_domain): Same.
14736         (pdr_add_memory_accesses): Same.
14737
14738 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
14739             Jason Merrill  <jason@redhat.com>
14740
14741         * c-common.c (c_common_reswords): Add nullptr.
14742         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
14743         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
14744         (gen_type_die_with_usage): Likewise.
14745         * dbxout.c (dbxout_type): Likewise.
14746         * sdbout.c (plain_type_1): Likewise.
14747
14748 2010-05-06  Jason Merrill  <jason@redhat.com>
14749
14750         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
14751         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
14752         ret appropriately.
14753         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
14754
14755         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
14756         stripping WITH_SIZE_EXPR.
14757         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
14758         change.
14759
14760 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14761
14762         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
14763         list of obsolete configurations.
14764         Disabled check for obsolete configurations.
14765         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
14766         Removed support for previous versions.
14767         * config/mips/iris.h: Removed.
14768         * config/mips/iris5.h: Removed.
14769         * config/mips/iris6.h: Merged old iris.h contents.
14770         (TARGET_IRIX): Removed.
14771         (DRIVER_SELF_SPECS): Removed mabi=32.
14772         (IDENT_ASM_OP): Removed undef.
14773         (STARTFILE_SPEC): Removed mabi=32.
14774         (ENDFILE_SPEC): Likewise.
14775         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
14776         (MACHINE_TYPE): Update for IRIX 6.5.
14777         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
14778         TARGET_IRIX by TARGET_IRIX6.
14779         (mips_file_start): Likewise.
14780         (mips_output_external): Remove IRIX 5/6 O32 support.
14781         (mips_output_function_prologue): Likewise.
14782         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
14783         TARGET_IRIX6.
14784         (TARGET_CPU_CPP_BUILTINS): Likewise.
14785         (TARGET_IRIX): Removed.
14786         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
14787         (MULTILIB_DIRNAMES): Removed 32.
14788         (MULTILIB_OSDIRNAMES): Removed ../lib.
14789         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
14790         (Specific, mips-sgi-irix5): Document removal.
14791         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
14792         Remove references to older IRIX 6 releases and the O32 ABI.
14793
14794 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
14795
14796         PR bootstrap/43994
14797         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
14798         instead of DF_REF_REAL_REG.
14799
14800 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
14801
14802         PR target/43888
14803         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
14804         handling to still return true for x64 targets.
14805
14806 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
14807
14808         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
14809
14810 2010-05-06  Jan Hubicka  <jh@suse.cz>
14811
14812         PR tree-optimization/43791
14813         * ipa-inline.c (update_caller_keys): Remove bogus
14814         disregard_inline_limits check.
14815
14816 2010-05-06  Michael Matz  <matz@suse.de>
14817
14818         PR tree-optimization/43984
14819         * tree-ssa-pre.c (inserted_phi_names): Remove.
14820         (inserted_exprs): Change to bitmap.
14821         (create_expression_by_pieces): Set bits, don't append to vector.
14822         (insert_into_preds_of_block): Don't handle inserted_phi_names.
14823         (eliminate): Don't look at inserted_phi_names, remove deleted
14824         insns from inserted_exprs.
14825         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
14826         (init_pre, fini_pre): Allocate and free bitmaps.
14827         (execute_pre): Insert insns on edges before elimination.
14828
14829 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
14830
14831         * tree.c (initializer_zerop): Handle STRING_CST.
14832
14833 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14834
14835         PR 40989
14836         * doc/invoke.texi (Wimplicit): Document as C only.
14837         * opts.c (common_handle_option): Add argument kind.
14838         (handle_option): Rename as read_cmdline_option. Factor out code to...
14839         (handle_option): ... here. New.
14840         (handle_options): Rename as read_cmdline_options.
14841         (decode_options): Update call.
14842         (set_option): Use option index instead of option pointer. Classify
14843         diagnostics correctly.
14844         (enable_warning_as_error): Call handle_option.
14845         * opts.h (set_option): Update declaration.
14846         (handle_option): Declare.
14847         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
14848         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
14849         * c-opts.c (set_Wimplicit): Delete.
14850         (c_family_lang_mask): New static constant.
14851         (c_common_handle_option): Add argument kind. Use handle_option
14852         instead of set_Wimplicit.
14853         (c_common_post_options): warn_implicit and warn_implicit_int
14854         are disabled by default.
14855         * c-common.c (warn_implicit): Do not define here.
14856         * c-common.h (warn_implicit): Do not declare here.
14857         (c_common_handle_option): Update declaration.
14858         * lto-opts.c (lto_reissue_options): Update call to set_option.
14859
14860 2010-05-06  Richard Guenther  <rguenther@suse.de>
14861
14862         PR tree-optimization/43571
14863         * domwalk.c (walk_dominator_tree): Walk the dominator
14864         sons in more optimal order.
14865
14866 2010-05-06  Richard Guenther  <rguenther@suse.de>
14867
14868         PR tree-optimization/43934
14869         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
14870         (stmt_cost): Likewise.
14871         (extract_true_false_args_from_phi): New helper.
14872         (determine_max_movement): For PHI nodes verify we can hoist them
14873         and compute their cost.
14874         (determine_invariantness_stmt): Handle PHI nodes.
14875         (move_computations_stmt): Likewise.  Hoist PHI nodes in
14876         if-converted form using COND_EXPRs.
14877         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
14878         (tree_ssa_lim): Likewise.
14879         * tree-flow.h (tree_ssa_lim): Adjust prototype.
14880         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
14881
14882 2010-05-06  Richard Guenther  <rguenther@suse.de>
14883
14884         PR tree-optimization/43987
14885         * tree-ssa-structalias.c (could_have_pointers): For possibly
14886         address-taken variables force pointers to be recorded.
14887         (create_variable_info_for_1): Likewise.
14888         (push_fields_onto_fieldstack): Pass in wheter all fields
14889         must have pointers.
14890         (find_func_aliases): Query types instead of vars whether
14891         they contain pointers where appropriate.
14892
14893 2010-05-06  Jan Hubicka  <jh@suse.cz>
14894
14895         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
14896         (record_reference, mark_address, mark_load, mark_store): Record
14897         references.
14898         (record_references_in_initializer): Update call of record_references.
14899         (rebuild_cgraph_edges): Remove all references before rebuiding.
14900         * cgraph.c (cgraph_create_node): Clear ref list.
14901         (cgraph_remove_node): Remove references.
14902         (dump_cgraph_node): Dump references.
14903         (cgraph_clone_node): Clone references.
14904         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
14905         (struct cgraph_node, varpool_node): Add ref_lst.
14906         * ipa-ref.c: New file.
14907         * ipa-ref.h: New file.
14908         * ipa-ref-inline.h: New file.
14909         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
14910         (referenced_from_other_partition_p): New function.
14911         (lto_output_varpool_node): Take set arugment; call
14912         referenced_from_other_partition.
14913         (lto_output_ref): New.
14914         (add_references): New.
14915         (output_refs): New.
14916         (output_cgraph): Compute boundary based on references; output refs.
14917         (output_varpool): Accept cgraph_node_set argument.
14918         (input_ref): New.
14919         (input_refs): New.
14920         (input_cgraph): Call input_refs.
14921         * lto-section-in.c (lto_section_name): Add refs.
14922         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
14923         (ipa-ref.o): New file.
14924         * varpool.c (varpool_node): Clear ipa ref list.
14925         (varpool_remove_node): Remove references.
14926         (dump_varpool_node): Dump references.
14927         (varpool_assemble_decl): Only compile finalized ones.
14928         (varpool_extra_name_alias): Initialize ref list.
14929         * lto-streamer.c (lto-get_section_name): Add .refs section.
14930         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
14931         (referenced_from_other_partition_p): Declared.
14932
14933 2010-05-06  Ira Rosen  <irar@il.ibm.com>
14934
14935         PR tree-optimization/43901
14936         * tree-vect-stmts.c (vectorizable_call): Assert that vector
14937         type is not NULL if it's transformation phase, and return
14938         FALSE if it's analysis.
14939         (vectorizable_conversion, vectorizable_operation,
14940         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
14941
14942 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
14943
14944         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
14945         Delete.
14946         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
14947         New define.
14948         * config/mips/mips-protos.h
14949         (mips_small_register_classes_for_mode_p): Delete prototype.
14950
14951 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
14952
14953         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
14954         * config/arm/arm.c (multiple_operation_profitable_p,
14955         compute_offset_order): New static functions.
14956         (load_multiple_sequence, store_multiple_sequence): Use them.
14957         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
14958         memory offsets, not register numbers.
14959         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
14960
14961 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
14962
14963         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
14964         (get_pending_sizes, put_pending_size, put_pending_sizes):
14965         Update the uses of pending_sizes.
14966         * c-decl.c (store_parm_decls): Likewise.
14967         * c-tree.h (struct c_arg_info): Likewise.
14968         * tree.h: Update the prototype for get_pending_sizes and
14969         put_pending_sizes.
14970
14971 2010-05-05  Jason Merrill  <jason@redhat.com>
14972
14973         PR debug/43370
14974         * c-common.c (handle_aligned_attribute): Respect
14975         ATTR_FLAG_TYPE_IN_PLACE.
14976
14977         PR testsuite/43758
14978         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
14979         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
14980         (TARGET_INITIALIZER): Use it.
14981         * c-common.c (attribute_takes_identifier_p): Call it.
14982         * c-common.h: Update prototype.
14983         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
14984         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
14985
14986 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
14987
14988         PR debug/43950
14989         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
14990         DW_ID_down_case for Fortran compilation units.
14991
14992 2010-05-05  Jan Hubicka  <jh@suse.cz>
14993
14994         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
14995         handle aliases.
14996
14997 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
14998
14999         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
15000         a variable-sized RESULT_DECL.
15001
15002 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
15003
15004         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
15005
15006 2010-05-05  Jason Merrill  <jason@redhat.com>
15007
15008         PR c++/43787
15009         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
15010         returns GS_OK.
15011         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
15012
15013 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
15014             Jakub Jelinek  <jakub@redhat.com>
15015
15016         PR debug/43478
15017         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
15018         (dead_debug_init, dead_debug_finish): New functions.
15019         (dead_debug_add, dead_debug_insert_before): Likewise.
15020         (df_note_bb_compute): Initialize a dead_debug object, add dead
15021         debug uses to it, insert debug bind insns before death insns,
15022         reset debug insns that refer to pending uses at the end.
15023         * rtl.h (make_debug_expr_from_rtl): New prototype.
15024         * varasm.c (make_debug_expr_from_rtl): New function.
15025
15026 2010-05-05  Jan Hubicka  <jh@suse.cz>
15027
15028         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
15029         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
15030         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
15031         lto_varpool_encoder_deref, lto_varpool_encoder_size,
15032         lto_varpool_encoder_encode_initializer_p,
15033         lto_set_varpool_encoder_encode_initializer): New functions.
15034         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
15035         call output_varpool.
15036         (input_varpool_node): Do not always set analyzed.
15037         (input_cgraph_1): Return vector of cgraph nodes.
15038         (input_varpool_1): Return vector of varpools.
15039         (input_cgraph): Free the vectors.
15040         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
15041         output only initializers needed.
15042         (lto_output): Only call output_cgraph.
15043         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
15044         * lto-section-out.c (lto_new_out_decl_state): Initialize
15045         state->varpool_node_encoder.
15046         * lto-streamer.h (lto_varpool_encoder_d): New.
15047         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
15048         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
15049         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
15050         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
15051         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
15052         Declare.
15053         (output_varpool, input_varpool): Remove declarations.
15054
15055 2010-05-05  Jan Hubicka  <jh@suse.cz>
15056
15057         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
15058         with body can prevail.
15059
15060 2010-05-05  Jan Hubicka  <jh@suse.cz>
15061
15062         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
15063         size.
15064
15065 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
15066
15067         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
15068
15069         * gengtype.h (erro_at_line): Constify pos argument.
15070
15071         * gengtype.c: Include hashtab.h.
15072         (enum gc_used): Document GC_MAYBE_POINTED_TO.
15073         (error_at_line): Constify pos argument.
15074         (do_typedef): Initialize p->opt field.
15075         (get_file_gtfilename): Fix comment typo.
15076         (struct walk_type_data): Constify line field.
15077         (get_output_file_for_structure): New function.
15078         (write_local_func_for_structure): Constify orig_s argument.
15079         Use get_output_file_for_structure.
15080         (write_func_for_structure): Use get_output_file_for_structure.
15081         (INDENT): New define.
15082         (dump_pair, dump_type, dump_type_list, dump_typekind)
15083         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
15084         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
15085         functions.
15086         (seen_types): New variable.
15087         (main): New variable do_dump.  Process "-d" command line option.
15088         Call dump_everything if dump requested.
15089
15090 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
15091
15092         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
15093         in a temporary instead of invoking the macro multiple times.
15094         (track_expr_p): Likewise.
15095
15096 2010-05-04  Neil Vachharajani <nvachhar@google.com>
15097
15098         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
15099         per new semantics.
15100         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
15101         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
15102         conditions for printing notes.
15103         * common.opt (-Wcoverage-mismatch): Allow negative, default to
15104         true, update documentation.
15105         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
15106
15107 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
15108
15109         PR c/43981
15110         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
15111         on dimen.
15112
15113 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
15114
15115         PR target/43799
15116         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
15117         (*sse_prologue_save_insn1): Likewise.
15118         (SSE prologue save splitter): Likewise.
15119
15120 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
15121
15122         * tree.c (free_lang_data_in_one_sizepos): New inline function.
15123         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
15124         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
15125         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
15126         all decls.  Call it on DECL_FIELD_OFFSET of fields.
15127         (find_decls_types_r): Follow DECL_VALUE_EXPR.
15128         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
15129
15130 2010-05-04  Martin Jambor  <mjambor@suse.cz>
15131
15132         * tree-sra.c (build_access_from_expr_1): The first parameter type
15133         changed to simple tree.
15134         (build_access_from_expr): Likewise, gsi parameter was eliminated.
15135         (scan_assign_result): Renamed to assignment_mod_result, enum elements
15136         renamed as well.
15137         (build_accesses_from_assign): Removed all parameters except for a
15138         simple gimple statement.  Now returns a simple bool.
15139         (scan_function): All non-analysis parts moved to separate functions
15140         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
15141         parameters and updated both callers.
15142         (sra_modify_expr): Removed parameter data.
15143         (sra_modify_function_body): New function.
15144         (perform_intra_sra): Call sra_modify_function_body to modify the
15145         function body.
15146         (replace_removed_params_ssa_names): Parameter data changed into
15147         adjustments vector.
15148         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
15149         changed the parameter dont_convert to convert with the opposite
15150         meaning.
15151         (sra_ipa_modify_assign): Parameter data changed into adjustments
15152         vector, return value changed to bool.
15153         (ipa_sra_modify_function_body): New function.
15154         (sra_ipa_reset_debug_stmts): Updated a comment.
15155         (modify_function): Use ipa_sra_modify_function_body to modify function
15156         body.
15157
15158 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
15159
15160         PR middle-end/43671
15161         * alias.c (true_dependence): Handle the same VALUE in x and mem.
15162         (canon_true_dependence): Likewise.
15163         (write_dependence_p): Likewise.
15164
15165 2010-05-04  Jan Hubicka  <jh@suse.cz>
15166
15167         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
15168         * cgraphbuild.c: Include ipa-utils.h
15169         (record_reference_ctx): New struct.
15170         (record_reference): Simplify to work on initializers; not statements.
15171         (mark_address, mark_load, mark_store): New.
15172         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
15173         walk PHI nodes too.
15174         (record_references_in_initializer): Update use of record_reference.
15175         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
15176         walk PHI nodes too.
15177
15178 2010-05-04  Jan Hubicka  <jh@suse.cz>
15179
15180         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
15181         node will be removed anyway.
15182         (lto_varpool_replace_node): Allow also unanalyzed nodes;
15183         relink aliases of node into prevailing node.
15184         * varpool.c (varpool_remove_node): Remove aliases properly;
15185         when removing node, remove all its aliases too; remove DECL_INITIAL
15186         of removed node; ggc_free the varpool node.
15187
15188 2010-05-04  Richard Guenther  <rguenther@suse.de>
15189
15190         PR tree-optimization/43879
15191         * tree-ssa-structalias.c (alias_get_name): Use
15192         DECL_ASSEMBLER_NAME if available.
15193         (create_function_info_for): Return the varinfo node.
15194         (ipa_pta_execute): Associate same-body aliases and extra names
15195         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
15196
15197 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
15198
15199         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
15200
15201 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
15202
15203         PR bootstrap/43964
15204         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
15205         only if HONOR_REG_ALLOC_ORDER is not defined.
15206
15207 2010-05-04  Richard Guenther  <rguenther@suse.de>
15208
15209         PR tree-optimization/43949
15210         * tree-vrp.c (extract_range_from_binary_expr): Only handle
15211         TRUNC_MOD_EXPR.
15212
15213 2010-04-26  Jason Merrill  <jason@redhat.com>
15214
15215         * c.opt (-fstrict-enums): New.
15216         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
15217
15218 2010-05-03  David Ung <davidu@mips.com>
15219             James E. Wilson  <wilson@codesourcery.com>
15220
15221         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
15222         emit the trap instruction before the divide for TUNE_74K.
15223
15224 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
15225
15226         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
15227         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
15228         based on the above, for new target hook.
15229
15230         * hooks.c (hook_bool_mode_true): New generic hook.
15231         * hooks.h (hook_bool_mode_true): Add prototype.
15232
15233         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
15234         target hook.
15235         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
15236         target hook, set to hook_bool_mode_false.
15237         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
15238         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
15239         with targetm.small_register_classes_for_mode_p.
15240         (find_reusable_reload): Likewise.
15241         (combine_reloads): Likewise.
15242         * reload1.c (reload_as_needed): Likewise.
15243         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
15244         * ifcvt.c (noce_process_if_block, check_cond_move_block,
15245         dead_or_predicable): Likewise.
15246         * regmove.c (optimize_reg_copy_1): Likewise.
15247         * calls.c (prepare_call_address): Likewise.
15248         (precompute_register_parameters): Likewise.
15249
15250         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
15251         hook definition.
15252         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
15253         implementation of the hook that considers all register classes
15254         small except for SH64.
15255         (sh_override_options): Use the new hook.
15256         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
15257         Add prototype.
15258
15259         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
15260         hook definition.
15261         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
15262         implementation of the hook that considers all register classes
15263         small for THUMB1.
15264         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
15265         Add prototype.
15266
15267         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
15268         hook definition.
15269         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
15270         implementation of the hook that considers all register classes
15271         small for MIPS16.
15272         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
15273         Add prototype.
15274
15275         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
15276         hook definition.
15277         * config/m32c/m32c.h: Likewise.
15278         * config/pdp11/pdp11.h: Likewise.
15279         * config/avr/avr.h: Likewise.
15280         * config/xtensa/xtensa.h: Likewise.
15281         * config/m68hc11/m68hc11.h: Likewise.
15282         * config/mn10300/mn10300.h: Likewise.
15283         * config/mcore/mcore.h: Likewise.
15284         * config/h8300/h8300.h: Likewise.
15285         * config/bfin/bfin.h: Likewise.
15286
15287         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
15288         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
15289
15290 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
15291
15292         * double-int.h (tree_to_double_int): Remove macro.
15293         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
15294         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
15295         (tree_to_double_int): New function.
15296         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
15297         Move ...
15298         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
15299
15300 2010-05-03  Richard Guenther  <rguenther@suse.de>
15301
15302         PR tree-optimization/43971
15303         * tree-ssa-structalias.c (get_constraint_for_1): Fix
15304         constraints in the !flag_delete_null_pointer_checks case.
15305
15306 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
15307
15308         PR debug/43972
15309         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
15310         result mode matches original rtl mode.
15311
15312 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
15313
15314         PR target/43888
15315         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
15316
15317 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15318
15319         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
15320         when processing flag options.
15321
15322 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15323
15324         * gcov-iov.c (main): Change format string placeholder
15325         from %#08x to 0x%08x.
15326         * genchecksum.c (dosum): Change format string placeholder
15327         from %#02x to 0x%02x.
15328
15329 2010-05-02  Richard Guenther  <rguenther@suse.de>
15330
15331         PR tree-optimization/43879
15332         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
15333
15334 2010-05-02  Bruno Haible  <bruno@clisp.org>
15335
15336         * doc/extend.texi (Function Attributes): Fix a typo.
15337
15338 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15339
15340         Revert:
15341         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
15342         placeholder from 0x%x to %#x.
15343         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
15344         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
15345         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
15346         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
15347         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
15348         * config/i386/i386.c (ix86_target_string): Ditto.
15349         * config/i386/i386.c (output_pic_addr_const): Ditto.
15350         (print_operand): Ditto.
15351
15352 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15353
15354         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
15355         placeholder from 0x%x to %#x.
15356         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
15357         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
15358         (ASM_OUTPUT_DEBUG_DATA): Ditto.
15359         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
15360         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
15361         * optc-gen.awk: Ditto.
15362         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
15363         (HOST_WIDE_INT_PRINT_HEX): Ditto.
15364         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
15365         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
15366
15367 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
15368
15369         * target.h (struct calls): Add function_value_regno_p field.
15370         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
15371         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
15372         * targhooks.c (default_function_value_regno_p): New function.
15373         * targhooks.h (default_function_value_regno_p): Declare function.
15374         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
15375         * builtins.c. (apply_result_size): (Ditto.).
15376         * combine.c. (likely_spilled_retval_p): (Ditto.).
15377         * mode-switching.c. Include 'target.h'.
15378         (create_pre_exit): Use function_value_regno_p hook.
15379         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
15380         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
15381         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
15382
15383         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
15384         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
15385         (ix86_function_value_regno_p): Declare as static, change argument
15386         type to const unsigned int.
15387         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
15388
15389 2010-05-01  Richard Guenther  <rguenther@suse.de>
15390
15391         PR tree-optimization/43949
15392         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
15393         types.
15394         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
15395
15396 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
15397
15398         * rtl.h (CONST_DOUBLE_P): Define.
15399         (rtx_to_double_int): Declare.
15400         * emit-rtl.c (rtx_to_double_int): New function.
15401         * dwarf2out.c (insert_double): New function.
15402         (loc_descriptor, add_const_value_attribute): Clean up, use
15403         rtx_to_double_int and insert_double functions.
15404
15405 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
15406
15407         * doc/extend.texi (Inline): Add missing return keyword to examples.
15408         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
15409         "command-line".
15410
15411 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
15412
15413         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
15414         the variable part of the offset as well.  Use highest_pow2_factor for
15415         all alignment checks.
15416
15417 2010-04-30  Richard Guenther  <rguenther@suse.de>
15418
15419         PR tree-optimization/43879
15420         * tree-ssa-structalias.c (type_could_have_pointers): Functions
15421         can have pointers.
15422
15423 2010-04-30  Jan Hubicka  <jh@suse.cz>
15424
15425         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
15426         varpool.
15427         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
15428
15429 2010-04-30  Jan Hubicka  <jh@suse.cz>
15430
15431         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
15432         New.
15433         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
15434         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
15435         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
15436         cgraph_node_set_needs_ltrans_p): Remove.
15437
15438 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
15439
15440         * sdbout.c: Include vec.h, do not include varray.h.
15441         (deferred_global_decls, sdbout_global_decl,
15442         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
15443         * toplev.c: Do not include varray.h.
15444         (dump_memory_report): Do not dump VARRAY statistics.
15445         * gengtype.c (open_base_file): Ignore varray.h.
15446         * Makefile.in: Update for abovementioned changes.
15447         Remove all traces of varray.c and varray.h.
15448         * varray.c: Remove file.
15449         * varray.h: Remove file.
15450
15451 2010-04-30  Jan Hubicka  <jh@suse.cz>
15452
15453         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
15454         references.
15455
15456 2010-04-30  Jan Hubicka  <jh@suse.cz>
15457
15458         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
15459         needed.
15460
15461 2010-04-30  Richard Guenther  <rguenther@suse.de>
15462
15463         * tree-ssa-structalias.c (get_constraint_for_1): Generate
15464         constraints for CONSTRUCTOR.
15465
15466 2010-04-30  Richard Guenther  <rguenther@suse.de>
15467
15468         PR lto/43946
15469         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
15470         first after all lowering passes.
15471
15472 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
15473
15474         * toplev.c: Include varray.h for statistics dumping.
15475         * tree.h: Do not declare varray_head_tag.
15476         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
15477         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
15478         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
15479         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
15480         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
15481         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
15482         c-common.c, c-common.h, reg-stack.c, basic-block.h,
15483         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
15484         include varray.h.
15485         * Makefile.in: Update for abovementioned changes.
15486
15487 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
15488
15489         PR debug/43942
15490         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
15491
15492 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
15493
15494         * config/picochip/picochip.c (picochip_legitimize_address): Define.
15495         Use this function to do machine-specific conversion.
15496         (picochip_legitimize_reload_address): Likewise.
15497         (picochip_legitimate_address_p): Check valid base register only if
15498         strict.
15499         (picochip_check_conditional_copy): Check for modw only if opnd is
15500         register.
15501         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
15502         to call the function in c.
15503         * config/picochip/picochip-protos.h
15504         (picochip_legitimize_reload_address): Define.
15505         * config/picochip/picochip.md (supported_compare1): Define.
15506
15507 2010-04-30  Jan Hubicka  <jh@suse.cz>
15508
15509         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
15510         (cgraph_global_info): Remove inlined.
15511         (LTO_cgraph_tag_names): Remove.
15512         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
15513         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
15514         simplify cgraph tags and document.
15515         (lto_output_node): Use only LTO_cgraph_unavail_node and
15516         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
15517         for_functions_valid, global info, process and output flags.
15518         (input_overwrite_node): Initialize estimated stack size and
15519         estimated growth.  Do not read flags we no longer store.
15520         (input_node): Likewise do not read info no longer stored.
15521         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
15522         flag.
15523
15524 2010-04-30  Richard Guenther  <rguenther@suse.de>
15525
15526         PR tree-optimization/43879
15527         * tree-ssa-structalias.c (get_constraint_for_1): Properly
15528         handle non-zero initializers.
15529
15530 2010-04-30  Richard Guenther  <rguenther@suse.de>
15531
15532         * builtins.c (fold_builtin_1): Delete free (0).
15533
15534 2010-04-29  Jan Hubicka  <jh@suse.cz>
15535
15536         * gengtype.c (open_base_files): Add lto-streamer.h
15537         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
15538         (pass_ipa_cp): GGC collect.
15539         * toplev. (compile_file): Do not output symbols.
15540         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
15541         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
15542         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
15543         * lto-section-in.c: Include ggc.h
15544         (lto_new_in_decl_state): Alloc in GGC.
15545         (lto_delete_in_decl_state): Likewise.
15546         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
15547         Collect.
15548
15549 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
15550
15551         PR target/42895
15552         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
15553         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
15554         (HONOR_REG_ALLOC_ORDER): Describe new macro.
15555         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
15556         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
15557         account only if HONOR_REG_ALLOC_ORDER is not defined.
15558         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
15559         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
15560
15561 2010-04-29  Jon Grant  <04@jguk.org>
15562
15563         * collect2.c (vflag): Change type from int to bool.
15564         (debug): Likewise.
15565         (helpflag): New global bool.
15566         (main): Set vflag and debug with boolean, not integer truth values.
15567         Accept new "--help" option and output usage text if found.
15568         * collect2.h (vflag): Update prototype.
15569         (debug): Likewise.
15570
15571 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
15572
15573         PR bootstrap/43936
15574         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
15575
15576 2010-04-29  Richard Guenther  <rguenther@suse.de>
15577
15578         PR bootstrap/43935
15579         * plugin.h (invoke_plugin_callbacks): Annotate arguments
15580         with ATTRIBUTE_UNUSED.
15581
15582 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
15583
15584         PR target/43921
15585         * config/i386/i386.c (get_some_local_dynamic_name): Replace
15586         INSN_P with NONDEBUG_INSN_P.
15587         (distance_non_agu_define): Likewise.
15588         (distance_agu_use): Likewise.
15589
15590 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
15591
15592         From Dominique d'Humieres <dominiq@lps.ens.fr>
15593         PR bootstrap/43858
15594         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
15595         test_set.
15596
15597 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
15598
15599         * plugin.h (invoke_plugin_callbacks): New inline function.
15600         * plugin.c (flag_plugin_added): New global flag.
15601         (add_new_plugin): Initialize above flag.
15602         (invoke_plugin_callbacks): Rename to ...
15603         (invoke_plugin_callbacks_full): ... this.
15604
15605 2010-04-28  Jan Hubicka  <jh@suse.cz>
15606
15607         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
15608         (lto_varpool_replace_node): New.
15609         (lto_symtab_resolve_symbols): Resolve varpool nodes.
15610         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
15611         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
15612         * cgraph.h (varpool_node_ptr): New type.
15613         (varpool_node_ptr): New vector.
15614         (varpool_node_set_def): New structure.
15615         (varpool_node_set): New type.
15616         (varpool_node_set): New vector.
15617         (varpool_node_set_element_def): New structure.
15618         (varpool_node_set_element, const_varpool_node_set_element): New types.
15619         (varpool_node_set_iterator): New type.
15620         (varpool_node): Add prev pointers, add used_from_other_partition,
15621         in_other_partition.
15622         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
15623         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
15624         varpool_get_node, varpool_remove_node): Declare.
15625         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
15626         varpool_node_set_size): New inlines.
15627         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
15628         * tree-pass.h (varpool_node_set_def): Forward declare.
15629         (ipa_opt_pass_d): Summary writting takes vnode sets too.
15630         (ipa_write_optimization_summaries): Update prototype.
15631         * ipa-cp.c (ipcp_write_summary): Update.
15632         * ipa-reference.c (ipa_reference_write_summary): Update.
15633         * lto-cgraph.c (lto_output_varpool_node): New static function.
15634         (output_varpool): New function.
15635         (input_varpool_node): New static function.
15636         (input_varpool_1): New function.
15637         (input_cgraph): Input varpool.
15638         * ipa-pure-const.c (pure_const_write_summary): Update.
15639         * lto-streamer-out.c (lto_output): Update, output varpool too.
15640         (write_global_stream): Kill WPA hack.
15641         (produce_asm_for_decls): Update.
15642         (output_alias_pair_p): Handle variables.
15643         (output_unreferenced_globals): Output only needed partition of varpool.
15644         * ipa-inline.c (inline_write_summary): Update.
15645         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
15646         cgraph.
15647         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
15648         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
15649         varpool_node_set_new, varpool_node_set_add,
15650         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
15651         debug_varpool_node_set): New functions.
15652         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
15653         (execute_one_pass): Process new decls too.
15654         (ipa_write_summaries_2): Pass around vsets.
15655         (ipa_write_summaries_1): Likewise.
15656         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
15657         to add.
15658         (ipa_write_optimization_summaries_1): Pass around vsets.
15659         (ipa_write_optimization_summaries): Likewise.
15660         * varpool.c (varpool_get_node): New.
15661         (varpool_node): Update doubly linked lists.
15662         (varpool_remove_node): New.
15663         (dump_varpool_node): More dumping.
15664         (varpool_enqueue_needed_node): Update doubly linked lists.
15665         (decide_is_variable_needed): Kill ltrans hack.
15666         (varpool_finalize_decl): Kill lto hack.
15667         (varpool_assemble_decl): Skip decls in other partitions.
15668         (varpool_assemble_pending_decls): Update doubly linkes lists.
15669         (varpool_empty_needed_queue): Likewise.
15670         (varpool_extra_name_alias): Likewise.
15671         * lto-streamer.c (lto_get_section_name): Add vars section.
15672         * lto-streamer.h (lto_section_type): Update.
15673         (output_varpool, input_varpool): Declare.
15674
15675 2010-04-28  Mike Stump  <mikestump@comcast.net>
15676
15677         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
15678
15679 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
15680
15681         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
15682         record or union type with RECORD_OR_UNION_TYPE_P predicate.
15683         (lto_input_ts_type_tree_pointers): Likewise.
15684         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
15685         (lto_output_ts_type_tree_pointers): Likewise.
15686
15687 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
15688
15689         Uniquization of constants at the Tree level
15690         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
15691         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
15692         bit to the end.
15693         (tree_output_constant_def): Declare.
15694         * gimplify.c (gimplify_init_constructor): When using block copy, first
15695         uniquize the constant constructor on the RHS.
15696         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
15697         DECL_IN_CONSTANT_POOL flag.
15698         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
15699         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
15700         constant pool.
15701         (assemble_variable): Deal with symbols belonging to the tree constant
15702         pool.
15703         (get_constant_section): Add ALIGN parameter and simplify.
15704         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
15705         (assemble_constant_contents): Use the expression of the VAR_DECL.
15706         (output_constant_def_contents): Use the alignment of the VAR_DECL.
15707         (tree_output_constant_def): New global function.
15708         (mark_constant): Use the expression of the VAR_DECL.
15709         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
15710         its expression.
15711         (output_object_block): Likewise and assemble the expression.
15712
15713 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
15714
15715         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
15716         hash_tree, eq_tree): New tree hash table.
15717         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
15718         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
15719         lto_orig_address_remove): Reimplement.
15720
15721 2010-04-28  Xinliang David Li  <davidxl@google.com>
15722
15723         PR c/42643
15724         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
15725         (compute_uninit_opnds_pos): New function.
15726         (is_non_loop_exit_postdominating): New function.
15727         (compute_control_dep_chain): New function.
15728         (find_pdom): New function.
15729         (convert_control_dep_chain_into_preds): New function.
15730         (find_predicates): New function.
15731         (find_control_equiv_block): New function.
15732         (collect_phi_def_edges): New function.
15733         (find_def_preds): New function.
15734         (find_dom): New function.
15735         (dump_predicates): New function.
15736         (get_cmp_code): New function.
15737         (is_value_included_in): New function.
15738         (find_matching_predicate_in_rest_chains): New function.
15739         (use_pred_not_overlap_with_undef_path_pred): New function.
15740         (is_use_properly_guarded): New function.
15741         (normalize_cond_1): New function.
15742         (is_and_or_or): New function.
15743         (normalize_cond): New function.
15744         (is_gcond_subset_of): New function.
15745         (is_subset_of_any): New function.
15746         (is_or_set_subset_of): New function.
15747         (is_and_set_subset_of): New function.
15748         (is_norm_cond_subset_of): New function.
15749         (is_pred_expr_subset_of): New function.
15750         (is_pred_chain_subset_of): New function.
15751         (is_included_in): New function.
15752         (is_superset_of): New function.
15753         (find_uninit_use): New function.
15754         (warn_uninitialized_phi): New function.
15755         (compute_possibly_undefined_names): New function.
15756         (ssa_undefined_value_p): New function.
15757         (execute_late_warn_uninitialized): New function.
15758         * tree-ssa.c (ssa_undefined_value_p): Removed.
15759         (warn_uninit): Changed to extern.
15760         (warn_uninitialized_phi): Removed.
15761         (warn_uninitialized_vars): Changed to extern.
15762         (execute_late_warn_uninitialized): Removed
15763         * tree-flow.h: Add new prototypes.
15764         * timevar.def: Add new time variable.
15765         * Makefile.in: Add new build file.
15766
15767 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
15768
15769         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
15770         type if available.
15771
15772 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15773
15774         PR target/22224
15775         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
15776
15777 2010-04-28  Martin Jambor  <mjambor@suse.cz>
15778
15779         * cgraph.h (struct cgraph_node): New field indirect_calls.
15780         (struct cgraph_indirect_call_info): New type.
15781         (struct cgraph_edge): Removed field indirect_call. New fields
15782         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
15783         (cgraph_create_indirect_edge): Declare.
15784         (cgraph_make_edge_direct): Likewise.
15785         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
15786         * ipa-prop.h (struct ipa_param_call_note): Removed.
15787         (struct ipa_node_params): Removed field param_calls.
15788         (ipa_create_all_structures_for_iinln): Declare.
15789         * cgraph.c: Described indirect edges and uids in initial comment.
15790         (cgraph_add_edge_to_call_site_hash): New function.
15791         (cgraph_edge): Search also among the indirect edges, use
15792         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
15793         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
15794         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
15795         site hash.
15796         (initialize_inline_failed): Assign a reason to indirect edges.
15797         (cgraph_create_edge_1): New function.
15798         (cgraph_create_edge): Moved some functionality to
15799         cgraph_create_edge_1.
15800         (cgraph_create_indirect_edge): New function.
15801         (cgraph_edge_remove_callee): Add an assert checking for
15802         non-indirectness.
15803         (cgraph_edge_remove_caller): Special-case indirect edges.
15804         (cgraph_remove_edge): Likewise.
15805         (cgraph_set_edge_callee): New function.
15806         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
15807         (cgraph_make_edge_direct): New function.
15808         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
15809         the declaration of the call statement matches.
15810         (cgraph_node_remove_callees): Special-case indirect edges.
15811         (cgraph_clone_edge): Likewise.
15812         (cgraph_clone_node): Clone also the indirect edges.
15813         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
15814         indirect_call, dump count of indirect_calls edges.
15815         * ipa-prop.c (iinlining_processed_edges): New variable.
15816         (ipa_note_param_call): Create indirect edges instead of
15817         creating notes.  New parameter node.
15818         (ipa_analyze_call_uses): New parameter node, pass it on to
15819         ipa_note_param_call.
15820         (ipa_analyze_stmt_uses): Likewise.
15821         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
15822         (print_edge_addition_message): Work on edges rather than on notes.
15823         (update_call_notes_after_inlining): Likewise, renamed to
15824         update_indirect_edges_after_inlining.
15825         (ipa_create_all_structures_for_iinln): New function.
15826         (ipa_free_node_params_substructures): Do not free notes.
15827         (ipa_edge_duplication_hook): Propagate bits within
15828         iinlining_processed_edges bitmap.
15829         (ipa_node_duplication_hook): Do not duplicate notes.
15830         (free_all_ipa_structures_after_ipa_cp): Renamed to
15831         ipa_free_all_structures_after_ipa_cp.
15832         (free_all_ipa_structures_after_iinln): Renamed to
15833         ipa_free_all_structures_after_iinln.
15834         (ipa_write_param_call_note): Removed.
15835         (ipa_read_param_call_note): Removed.
15836         (ipa_write_indirect_edge_info): New function.
15837         (ipa_read_indirect_edge_info): Likewise.
15838         (ipa_write_node_info): Do not stream notes, do stream information
15839         in indirect edges.
15840         (ipa_read_node_info): Likewise.
15841         (lto_ipa_fixup_call_notes): Removed.
15842         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
15843         * ipa-inline.c (pass_ipa_inline): Likewise.
15844         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
15845         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
15846         * tree-inline.c (copy_bb): Removed an unnecessary double check for
15847         is_gimple_call.
15848         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
15849         edges.
15850         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
15851         (output_cgraph): Stream also indirect edges.
15852         (lto_output_edge): Added capability to stream indirect edges.
15853         (input_edge): Likewise.
15854         (input_cgraph_1): Likewise.
15855         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
15856         of indirect edges.
15857
15858 2010-04-28  Richard Guenther  <rguenther@suse.de>
15859
15860         PR tree-optimization/43879
15861         PR tree-optimization/43909
15862         * tree-ssa-structalias.c (struct variable_info): Add
15863         only_restrict_pointers flag.
15864         (new_var_info): Initialize it.  Increment stats.total_vars here.
15865         (create_function_info_for): Do not increment stats.total_vars here.
15866         (get_function_part_constraint): Fix build with C++.
15867         (insert_into_field_list): Remove.
15868         (push_fields_onto_fieldstack): Properly merge fields.
15869         (create_variable_info_for): Split and simplify.
15870         (create_variable_info_for_1): New piece.
15871         (intra_create_variable_infos): Properly make restrict constraints
15872         from parameters.
15873
15874 2010-04-28  Richard Guenther  <rguenther@suse.de>
15875
15876         PR c++/43880
15877         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
15878
15879 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15880             Jan Hubicka <hubicka@ucw.cz>
15881
15882         * doc/invoke.texi (-Wsuggest-attribute=const,
15883         -Wsuggest-attribute=pure): Document.
15884         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
15885         (function_always_visible_to_compiler_p,
15886         suggest_attribute, warn_function_pure, warn_function_const):
15887         New functions.
15888         (check_call): Improve debug info.
15889         (analyze_function): Do not check availability.
15890         (add_new_function): Check availability.
15891         (propagate): Output warnings.
15892         (skip_function_for_local_pure_const): New function.
15893         (local_pure_const): Use it; output warnings.
15894         * common.opt (Wsuggest-attribute=const,
15895         Wsuggest-attribute=pure): New.
15896
15897 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
15898
15899         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
15900         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
15901         or DW_CFA_def_cfa_offset{,_sf}.
15902
15903 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
15904
15905         * tree.h: Fix truncated long macros.
15906
15907 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
15908
15909         * collect2.c (TARGET_64BIT): Redefine to target's default.
15910         * tlink.c: Likewise.
15911         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
15912         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
15913         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
15914         for underscoring __USER_LABEL_PREFIX__.
15915         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
15916         (SUB_LINK_ENTRY32): New.
15917         (SUB_LINK_ENTRY64): New.
15918         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
15919         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
15920         (SUB_LINK_ENTRY64): New.
15921         (SUB_LINK_ENTRY): New.
15922         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
15923         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
15924         x64 target is choosen.
15925         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
15926         * configure: Regenerated.
15927         * configure.ac (leading-mingw64-underscores): Option added.
15928
15929 2010-04-27  Jan Hubicka  <jh@suse.cz>
15930
15931         * doc/invoke.texi (-fipa-profile): Document.
15932         * opts.c (decode_options): Enable ipa-profile at -O1.
15933         * timevar.def (TV_IPA_PROFILE): Define.
15934         * common.opt (fipa-profile): Add.
15935         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
15936         flag for clones.
15937         (cgraph_propagate_frequency): Handle only local ones.
15938         * tree-pass.h (pass_ipa_profile): Declare.
15939         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
15940         (pass_ipa_profile): Use TV_IPA_PROFILE.
15941         * ipa.c (ipa_profile): New function.
15942         (gate_ipa_profile): Likewise.
15943         (pass_ipa_profile): New global variable.
15944         * passes.c (pass_ipa_profile): New.
15945
15946 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
15947
15948         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
15949
15950 2010-04-27  Martin Jambor  <mjambor@suse.cz>
15951
15952         PR middle-end/43812
15953         * ipa.c (dissolve_same_comdat_group_list): New function.
15954         (function_and_variable_visibility): Call
15955         dissolve_same_comdat_group_list when comdat group contains external or
15956         newly local nodes.
15957         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
15958         lists are circular and that they contain only DECL_ONE_ONLY nodes.
15959
15960 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
15961
15962         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
15963         (const_hash_1) <VECTOR_CST>: New case.
15964         (compare_constant) <VECTOR_CST>: Likewise.
15965         <ADDR_EXPR>: Deal with LABEL_REFs.
15966         (copy_constant) <VECTOR_CST>: New case.
15967
15968 2010-04-27  Jan Hubicka  <jh@suse.cz>
15969
15970         * cgraph.c (cgraph_propagate_frequency): New function.
15971         * cgraph.h (cgraph_propagate_frequency): Declare.
15972         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
15973         cgraph_propagate_frequency.
15974
15975 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
15976
15977         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
15978
15979 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
15980
15981         PR target/40657
15982         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
15983         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
15984         here to determine which regs to push and how much stack to reserve.
15985
15986 2010-04-27  Jie Zhang  <jie@codesourcery.com>
15987
15988         * doc/gimple.texi (gimple_statement_with_ops): Remove
15989         addresses_taken field.
15990         (gimple_statement_with_memory_ops): Likewise.
15991
15992 2010-04-27  Jan Hubicka  <jh@suse.cz>
15993
15994         * tree-inline.c (eni_inlining_weights): Remove.
15995         (estimate_num_insns): Special case more builtins.
15996
15997 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
15998
15999         PR c/32207
16000         * c-typeck.c (build_binary_op): Move forward check for comparison
16001         pointer with null pointer constant and adjust the diagnostic message.
16002
16003 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
16004
16005         PR lto/42776
16006         * configure.ac (gcc_cv_as_section_has_align): Set if installed
16007         binutils supports extended .section directive needed by LTO, or
16008         warn if older binutils found.
16009         (LTO_BINARY_READER): New AC_SUBST'd variable.
16010         (LTO_USE_LIBELF): Likewise.
16011         * gcc/config.gcc (lto_binary_reader): New target-specific configure
16012         variable.
16013         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
16014         (LTO_USE_LIBELF): Likewise.
16015         * configure: Regenerate.
16016
16017         * collect2.c (is_elf): Rename from this ...
16018         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
16019          object files in addition to ELF-formatted ones.
16020         (scan_prog_file): Caller updated.  Also allow for LTO info marker
16021         symbol to be prefixed or not by an extra underscore.
16022
16023         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
16024         * config/i386/winnt.c: Also #include lto-streamer.h
16025         (i386_pe_asm_named_section): Specify 1-byte section alignment for
16026         LTO named sections.
16027         (i386_pe_asm_output_aligned_decl_common): Add comment.
16028         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
16029
16030 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
16031
16032         PR target/43889
16033         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
16034         Add missing earlyclobber for second alternative.
16035
16036 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
16037
16038         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
16039         bits for artificial defs at the top of the block.
16040         * fwprop.c (single_def_use_enter_block): Don't call it.
16041
16042 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
16043
16044         PR 43715
16045         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
16046         instead of "$gcc_cv_objdump -T".
16047         Use "-undefined dynamic_lookup" on darwin.
16048         * gcc/configure: Regenerate.
16049
16050 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
16051
16052         PR c/43893
16053         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
16054
16055 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
16056
16057         * c-parser.c (struct c_token): Move location field up.
16058         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
16059         (struct c_declspecs): Convert typespec_word, storage_class, and
16060         default_int_p into bitfields.
16061         (struct c_declarator): Move loc field up.
16062
16063 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
16064
16065         * cfgloop.h (struct loop): Move can_be_parallel field up.
16066         * ipa-prop.h (struct ip_node_params): Move bitfields up.
16067         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
16068         down.
16069         (struct iv_cand): Convert pos field into a bitfield.
16070         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
16071         field up.
16072         (struct _stmt_vec_info): Shuffle fields for better packing.
16073
16074 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
16075
16076         * varasm.c (IN_NAMED_SECTION): Remove guard.
16077         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
16078         (IN_NAMED_SECTION_P): ...this.
16079         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
16080         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
16081
16082 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
16083
16084         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
16085         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
16086         of shadowing it.  Fix comments.
16087
16088 2010-04-26  Jan Hubicka  <jh@suse.cz>
16089
16090         * cgraph.c (cgraph_create_node): Set node frequency to normal.
16091         (cgraph_clone_node): Copy function frequency.
16092         * cgraph.h (node_frequency): New enum
16093         (struct cgraph_node): Add.
16094         * final.c (rest_of_clean_state): Update.
16095         * lto-cgraph.c (lto_output_node): Output node frequency.
16096         (input_overwrite_node): Input node frequency.
16097         * tre-ssa-loop-ivopts (computation_cost): Update.
16098         * lto-streamer-out.c (output_function): Do not output function
16099         frequency.
16100         * predict.c (maybe_hot_frequency_p): Update and handle functions
16101         executed once.
16102         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
16103         attribute lookup.
16104         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
16105         (compute_function_frequency): Set noreturn functions to be executed
16106         once.
16107         (choose_function_section): Update.
16108         * lto-streamer-in.c (input_function): Do not input function frequency.
16109         * function.c (allocate_struct_function): Do not initialize function
16110         frequency.
16111         * function.h (function_frequency): Remove.
16112         (struct function): Remove function frequency.
16113         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
16114         (try_update): Update.
16115         * tree-inline.c (initialize_cfun): Do not update function frequency.
16116         * passes.c (pass_init_dump_file): Update.
16117         * i386.c (ix86_compute_frame_layout): Update.
16118         (ix86_pad_returns): Update.
16119
16120 2010-04-26  Jie Zhang  <jie@codesourcery.com>
16121
16122         PR tree-optimization/43833
16123         * tree-vrp.c (range_int_cst_p): New.
16124         (range_int_cst_singleton_p): New.
16125         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
16126         when both operands are constants.  Use range_int_cst_p in
16127         BIT_IOR_EXPR case.
16128
16129 2010-04-26  Jan Hubicka  <jh@suse.cz>
16130
16131         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
16132
16133 2010-04-26  Richard Guenther  <rguenther@suse.de>
16134
16135         PR lto/43080
16136         * gimple.c (gimple_decl_printable_name): Deal gracefully
16137         with a NULL DECL_NAME.
16138
16139 2010-04-26  Richard Guenther  <rguenther@suse.de>
16140
16141         PR lto/42425
16142         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
16143         if emitting debug information and it is either a function
16144         or a namespace decl.
16145
16146 2010-04-26  Ira Rosen  <irar@il.ibm.com>
16147
16148         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
16149         determine if the statement is vectorizable, and a macro to access it.
16150         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
16151         Skip statements that can't be vectorized. If the analysis fails,
16152         mark the statement as unvectorizable if vectorizing basic block.
16153         (vect_compute_data_refs_alignment): Likewise.
16154         (vect_verify_datarefs_alignment): Skip statements marked as
16155         unvectorizable. Add print.
16156         (vect_analyze_group_access): Skip statements that can't be
16157         vectorized. If the analysis fails, mark the statement as
16158         unvectorizable if vectorizing basic block.
16159         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
16160         * tree-vect-stmts.c (vectorizable_store): Fix the number of
16161         generated stmts for SLP.
16162         (new_stmt_vec_info): Initialize the new field.
16163         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
16164         statements marked as unvectorizable.
16165
16166 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
16167
16168         * c-common.c (flag_isoc1x): New.
16169         (flag_isoc99): Update comment.
16170         * c-common.h (flag_isoc1x): New.
16171         (flag_isoc99): Update comment.
16172         * c-cppbuiltin.c (builtin_define_float_constants): Also define
16173         __<type>_DECIMAL_DIG__.
16174         * c-opts.c (set_std_c1x): New.
16175         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
16176         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
16177         * c.opt (-std=c1x, -std=gnu1x): New options.
16178         * doc/cpp.texi: Mention -std=c1x.
16179         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
16180         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
16181         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
16182         * doc/standards.texi: Mention C1X.
16183         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
16184         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
16185         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
16186         Define for C1X.
16187
16188 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
16189
16190         * config/i386/gmon-sol2.c (_mcleanup): Change format string
16191         placeholder from 0x%x to %#x.
16192         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
16193         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
16194         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
16195         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
16196         * config/i386/i386.c (ix86_target_string): Ditto.
16197         (output_pic_addr_const): Ditto.
16198         (print_operand): Ditto.
16199
16200 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
16201
16202         * combine.c (find_split_point): Add third argument.  Use it
16203         to find nested multiply-accumulate instructions.  Adjust calls.
16204         (try_combine): Adjust call to find_split_point.
16205
16206 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
16207
16208         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
16209
16210 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
16211
16212         PR tree-optimization/41442
16213         * fold-const.c (merge_truthop_with_opposite_arm): New function.
16214         (fold_binary_loc): Call it.
16215
16216 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16217
16218         * toplev.c (general_init): Set default for fdiagnostics-show-option.
16219         * opts.c (common_handle_option): Allow disabling it.
16220         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
16221
16222 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
16223
16224         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
16225         between modes if both types are integral.
16226
16227 2010-04-23  Richard Guenther  <rguenther@suse.de>
16228
16229         PR tree-optimization/43572
16230         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
16231
16232 2010-04-23  Richard Guenther  <rguenther@suse.de>
16233
16234         PR lto/43455
16235         * tree-inline.c (tree_can_inline_p): Also check compatibility
16236         of return types.
16237
16238 2010-04-23  Martin Jambor  <mjambor@suse.cz>
16239
16240         PR tree-optimization/43846
16241         * tree-sra.c (struct access): New flag grp_assignment_read.
16242         (build_accesses_from_assign): Set grp_assignment_read.
16243         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
16244         (enum mark_read_status): New type.
16245         (analyze_access_subtree): Propagate grp_assignment_read, create
16246         accesses also if both direct_read and root->grp_assignment_read.
16247
16248 2010-04-23  Martin Jambor  <mjambor@suse.cz>
16249
16250         PR middle-end/43835
16251         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
16252         function does not have type attributes.
16253
16254 2010-04-23  Richard Guenther  <rguenther@suse.de>
16255
16256         PR lto/42653
16257         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
16258         of FUNCTION_DECLs.
16259
16260 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16261
16262         * sese.h (create_if_region_on_edge): Remove.
16263
16264         * sese.c (create_if_region_on_edge): Make static.
16265
16266         * tree-inline.c: Do not include ggc.h.
16267
16268         * expr.c: Do not include ggc.h.
16269
16270         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
16271         dependencies.
16272
16273 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
16274
16275         PR target/43744
16276         * config/sh/sh.c (find_barrier): Don't emit a constant pool
16277         in the middle of insns for casesi_worker_2.
16278
16279 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
16280
16281         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
16282
16283 2010-04-22  Ira Rosen  <irar@il.ibm.com>
16284
16285         PR tree-optimization/43842
16286         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
16287         loop unrolling in update of exit phis. Fix comment.
16288         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
16289         least two reduction statements in the loop before starting SLP
16290         analysis.
16291
16292 2010-04-22  Nick Clifton  <nickc@redhat.com>
16293
16294         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
16295
16296 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
16297
16298         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
16299         to simplify a + ~a.
16300
16301 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16302
16303         * tree-parloops.c (loop_parallel_p): New argument
16304         parloop_obstack.  Pass it down.
16305         (parallelize_loops): New variable parloop_obstack.  Initialize it,
16306         pass it down, free it.
16307
16308         * tree-loop-linear.c (linear_transform_loops): Pass down
16309         lambda_obstack.
16310
16311         * tree-data-ref.h (lambda_compute_access_matrices): New argument
16312         of type struct obstack *.
16313
16314         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
16315         scratch_obstack.  Initialize it, pass down, free it.
16316
16317         * lambda.h (lambda_loop_new): Remove.
16318         (lambda_matrix_new, lambda_matrix_inverse)
16319         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
16320         argument of type struct obstack *.
16321
16322         * lambda-trans.c (lambda_trans_matrix_new): New argument
16323         lambda_obstack.  Pass it down, use obstack allocation for ret.
16324         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
16325         it down.
16326
16327         * lambda-mat.c (lambda_matrix_get_column)
16328         (lambda_matrix_project_to_null): Remove.
16329         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
16330         allocation for mat.
16331         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
16332         lambda_obstack.
16333
16334         * lambda-code.c (lambda_loop_new): New function.
16335         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
16336         (lambda_compute_auxillary_space, lambda_compute_target_space)
16337         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
16338         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
16339         (build_access_matrix): New argument lambda_obstack.  Use obstack
16340         allocation for am.
16341         (lambda_compute_step_signs, lambda_compute_access_matrices): New
16342         argument lambda_obstack.  Pass it down.
16343
16344 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
16345
16346         * optabs.h (expand_widening_mult): Declare.
16347
16348 2010-04-22  Richard Guenther  <rguenther@suse.de>
16349
16350         PR tree-optimization/43845
16351         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
16352         lookup the CALL_EXPR function and arguments.
16353
16354 2010-04-22  Nick Clifton  <nickc@redhat.com>
16355
16356         * config/stormy16/stormy16.c
16357         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
16358         * config/stormy16/stormy16.h: Tidy up formatting.
16359         (DONT_USE_BUILTIN_SETJMP): Remove definition.
16360         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
16361         (ineqbranchsi): Delete pattern.
16362         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
16363         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
16364         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
16365         stormy16-lib2-ucmpsi2.c.
16366
16367 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
16368
16369         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
16370         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
16371         extra set merge_set_noclobber, and use it to relax the final test
16372         slightly.
16373         * df.h (df_simulate_find_noclobber_defs): Declare.
16374         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
16375         conditional defs.
16376         (df_simulate_find_noclobber_defs): New function.
16377
16378 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
16379
16380         * config/i386/i386.md: Use {} around multi-line preparation statements.
16381
16382 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16383
16384         * c-tree.h (push_init_level, pop_init_level, set_init_index)
16385         (process_init_element): New argument of type struct obstack *.
16386
16387         * c-typeck.c (push_init_level, pop_init_level, set_designator)
16388         (set_init_index, set_init_label, set_nonincremental_init)
16389         (set_nonincremental_init_from_string, find_init_member)
16390         (output_init_element, output_pending_init_elements)
16391         (process_init_element): New argument braced_init_obstack.  Pass it
16392         down.
16393         (push_range_stack, add_pending_init): New argument
16394         braced_init_obstack.  Use obstack allocation.
16395
16396         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
16397         braced_init_obstack.  Pass it down.
16398         (c_parser_braced_init): New variables ret, braced_init_obstack.
16399         Initialize obstack, pass it down and finally free it.
16400
16401 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
16402
16403         PR middle-end/29274
16404         * tree-pass.h (pass_optimize_widening_mul): Declare.
16405         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
16406         gate_optimize_widening_mul): New static functions.
16407         (pass_optimize_widening_mul): New.
16408         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
16409         <case MULT_EXPR>: Remove support for widening multiplies.
16410         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
16411         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
16412         simplify_gen_unary rather than directly building extensions.
16413         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
16414         WIDEN_MULT_EXPR.
16415         * expmed.c (expand_widening_mult): New function.
16416         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
16417
16418 2010-04-21  Jan Hubicka  <jh@suse.cz>
16419
16420         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
16421         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
16422         * lto-wpa-fixup.c: Remove.
16423         * Makefile.in (lto-wpa-fixup.o): Remove.
16424         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
16425         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
16426         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
16427
16428 2010-04-21  Jan Hubicka  <jh@suse.cz>
16429
16430         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
16431         add write_optimization_summary, read_optimization_summary.
16432         (ipa_write_summaries_of_cgraph_node_set): Remove.
16433         (ipa_write_optimization_summaries): Declare.
16434         (ipa_read_optimization_summaries): Declare.
16435         * ipa-cp.c (pass_ipa_cp): Update.
16436         * ipa-reference.c (pass_ipa_reference): Update.
16437         * ipa-pure-const.c (pass_ipa_pure_const): Update.
16438         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
16439         Update.
16440         * ipa-inline.c (pass_ipa_inline): Update.
16441         * ipa.c (pass_ipa_whole_program): Update.
16442         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
16443         * passes.c (ipa_write_summaries_1): Do not test wpa.
16444         (ipa_write_optimization_summaries_1): New.
16445         (ipa_write_optimization_summaries): New.
16446         (ipa_read_summaries): Do not test ltrans.
16447         (ipa_read_optimization_summaries_1): New.
16448         (ipa_read_optimization_summaries): New.
16449
16450 2010-04-21  Jan Hubicka  <jh@suse.cz>
16451
16452         * lto-cgraph.c (lto_output_node): Do not output comdat groups
16453         for boundary nodes.
16454         (output_cgraph): Do not arrange comdat groups for boundary nodes.
16455
16456 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
16457
16458         PR debug/40040
16459         * dwarf2out.c (add_name_and_src_coords_attributes): Add
16460         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
16461
16462 2010-04-21  Jan Hubicka  <jh@suse.cz>
16463
16464         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
16465
16466 2010-04-21  Jan Hubicka  <jh@suse.cz>
16467
16468         * varpool.c (decide_is_variable_needed): Variable is always needed
16469         during ltrans.
16470
16471 2010-04-21  Jan Hubicka  <jh@suse.cz>
16472
16473         * opts.c (decode_options): Enable pure-const pass for whopr.
16474
16475 2010-04-21  Jan Hubicka  <jh@suse.cz>
16476
16477         * cgraph.c (dump_cgraph_node): Dump also assembler name.
16478         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
16479         at WPA dumping.
16480         (cgraph_decide_inlining): Do not expect callee to be removed in all
16481         cases.
16482
16483 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
16484
16485         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
16486
16487 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
16488
16489         * config/i386/i386.md (x86_shrd): Add athlon_decode and
16490         amdfam10_decode attributes.
16491
16492 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
16493
16494         PR middle-end/43570
16495         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
16496         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
16497         (lower_copyprivate_clauses): Use private var in outer
16498         context instead of original var.  Make sure the types
16499         are correct for VLAs.
16500
16501 2010-04-21  Richard Guenther  <rguenther@suse.de>
16502
16503         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
16504         to non-pointer objects.
16505
16506 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
16507
16508         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
16509         last chain entry if it starts with the still current label.
16510         (add_location_or_const_value_attribute): Check that
16511         loc_list->first->next is NULL instead of comparing ->first with ->last.
16512         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
16513         to add_var_loc_to_decl.
16514
16515         * dwarf2out.c (output_call_frame_info): For dw_cie_version
16516         >= 4 add also address size and segment size fields into CIE header.
16517
16518         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
16519         long as address size is the same as sizeof (void *) and
16520         segment size is 0.
16521         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
16522         address size or segment size is unexpected, return DW_EH_PE_omit.
16523         (classify_object_over_fdes): If get_cie_encoding returned
16524         DW_EH_PE_omit, return -1.
16525         (init_object): If classify_object_over_fdes returned -1,
16526         pretend there were no FDEs at all.
16527
16528 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
16529
16530         * config/i386/i386.md (bswap<mode>2): Macroize expander from
16531         bswap{si,di}2 using SWI48 mode iterator.
16532         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
16533         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
16534         set modrm attribute of bswap insn to 0 and remove length attribute.
16535         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
16536         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
16537         set mode attribute to <MODE> and remove length attribute.
16538
16539 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
16540
16541         PR rtl-optimization/43520
16542         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
16543         zero available registers.
16544
16545 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16546
16547         * builtins.c (fold_builtin_cproj): Fold more cases.
16548
16549 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16550
16551         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
16552         (fold_builtin_1): Fold builtin cproj.
16553         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
16554         Use ATTR_CONST_NOTHROW_LIST.
16555
16556 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
16557
16558         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
16559         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
16560         ffsi2_no_cmove for !TARGET_CMOVE.
16561         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
16562         (ffssi2): Remove expander.
16563         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
16564         mode iterator.
16565         (ctz<mode>2): Ditto from ctz{si,di}2.
16566         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
16567         mode iterator.
16568         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
16569         mode iterator.
16570
16571 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
16572
16573         * dwarf2out.c (AT_linkage_name): Define.
16574         (clone_as_declaration): Handle DW_AT_linkage_name.
16575         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
16576         of DW_AT_MIPS_linkage_name.
16577         (move_linkage_attr): Likewise.
16578         (dwarf2out_finish): Likewise.
16579
16580 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
16581
16582         PR middle-end/41952
16583         * fold-const.c (fold_comparison): New folding rule.
16584
16585 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
16586
16587         * double-int.h (double_int_setbit): Declare.
16588         * double-int.c (double_int_setbit): New function.
16589         * rtl.h (immed_double_int_const): Declare.
16590         * emit-rtl.c (immed_double_int_const): New function.
16591         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
16592         and immed_double_int_const functions.
16593         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
16594         expand_copysign_bit):  (Ditto.).
16595         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
16596         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
16597         * dojump.c (prefer_and_bit_test): (Ditto.).
16598         * expr.c (convert_modes, reduce_to_bit_field_precision,
16599         const_vector_from_tree): (Ditto.).
16600         * expmed.c (mask_rtx, lshift_value): (Ditto.).
16601
16602 2010-04-20  Jan Hubicka  <jh@suse.cz>
16603
16604         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
16605         (dump_cgraph_node): Dump new flags.
16606         * cgraph.h (struct cgraph_node): Add flags
16607         reachable_from_other_partition and in_other_partition.
16608         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
16609         other partition can not be removed.
16610         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
16611         the other partition must be output; silence sanity checking on
16612         leaking functions bodies from other paritition.
16613         * lto-cgraph.c (reachable_from_other_partition_p): New function.
16614         (lto_output_node): Output new flags; do not sanity check that inline
16615         clones are output; drop lto_forced_extern_inline_p code; do not mock
16616         visibility flags at partition boundaries.
16617         (add_node_to): New function.
16618         (output_cgraph): Use it to sort functions so masters appear before
16619         clones.
16620         (input_overwrite_node): Input new flags.
16621         * passes.c (ipa_write_summaries): Do not call
16622         lto_new_extern_inline_states.
16623         * lto-section-out.c (forced_extern_inline,
16624         lto_new_extern_inline_states lto_delete_extern_inline_states,
16625         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
16626         * lto-streamer.h (lto_new_extern_inline_states,
16627         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
16628         lto_forced_extern_inline_p): Kill.
16629
16630 2010-04-20  Richard Guenther  <rguenther@suse.de>
16631
16632         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
16633         from vars that can have pointers.
16634         (process_constraint): Dump useless constraints.
16635
16636 2010-04-20  Richard Guenther  <rguenther@suse.de>
16637
16638         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
16639         (dump_sa_points_to_info): Remove asserts.
16640         (init_base_vars): nothing_id isn't an escape point nor does it
16641         have pointers.
16642
16643 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
16644
16645         * tree.h (TYPE_REF_IS_RVALUE): Define.
16646         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
16647         should_move_die_to_comdat, prune_unused_types_walk): Handle
16648         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
16649         (modified_type_die, gen_reference_type_die): Emit
16650         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
16651         if TYPE_REF_IS_RVALUE and -gdwarf-4.
16652
16653 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16654
16655         PR target/43635
16656         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
16657         calls for -fpic -m31 if they have been sibcall optimized.
16658
16659 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
16660
16661         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
16662         ar.lc fixed and call-used.
16663
16664         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
16665
16666 2010-04-19  Jan Hubicka  <jh@suse.cz>
16667
16668         * opts.c (decode_options): Disable whpr incompatible passes.
16669         * lto/lto.c (lto_1_to_1_map): Skip clones.
16670         (read_cgraph_and_symbols): Do not mark everything as needed.
16671         (do_whole_program_analysis): Do map only after optimizing;
16672         set proper cgraph_state; use passmanager.
16673
16674 2010-04-19  DJ Delorie  <dj@redhat.com>
16675
16676         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
16677         POINTER_PLUS_EXPR and fix them.
16678
16679 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
16680
16681         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
16682         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
16683         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
16684         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
16685         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
16686         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
16687         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
16688         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
16689         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
16690         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
16691         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
16692
16693 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
16694
16695         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
16696         (check_cond_move_block): Likewise.
16697         (cond_move_process_if_block): Likewise.
16698         (noce_find_if_block): Improve formatting.
16699         (find_if_header): Pass 0 to memset and tweak conditions.
16700         (cond_exec_find_if_block): Fix long lines and tweak conditions.
16701
16702 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
16703
16704         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
16705         for -gdwarf-4.
16706
16707         PR middle-end/43337
16708         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
16709         with non-local decl doesn't need chain.
16710
16711 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
16712
16713         * ira-color.c (allocno_reload_assign): Avoid accumulating
16714         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
16715
16716 2010-04-19  Martin Jambor  <mjambor@suse.cz>
16717
16718         * gimple.h (create_tmp_reg): Declare.
16719         * gimplify.c (create_tmp_reg): New function.
16720         (gimplify_return_expr): Use create_tmp_reg.
16721         (gimplify_omp_atomic): Likewise.
16722         (gimple_regimplify_operands): Likewise.
16723         * tree-dfa.c (make_rename_temp): Likewise.
16724         * tree-predcom.c (predcom_tmp_var): Likewise.
16725         (reassociate_to_the_same_stmt): Likewise.
16726         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
16727         (get_replaced_param_substitute): Likewise.
16728         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
16729         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
16730         * tree-ssa-pre.c (get_representative_for): Likewise.
16731         (create_expression_by_pieces): Likewise.
16732         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
16733         (create_tailcall_accumulator): Likewise.
16734
16735 2010-04-19  Martin Jambor  <mjambor@suse.cz>
16736
16737         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
16738         new_stmt.
16739         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
16740
16741 2010-04-19  Richard Guenther  <rguenther@suse.de>
16742
16743         PR tree-optimization/43796
16744         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
16745         from SCEV in the lattice.
16746         (vrp_visit_phi_node): Dump change.
16747
16748 2010-04-19  Richard Guenther  <rguenther@suse.de>
16749
16750         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
16751         * configure: Re-generated.
16752
16753 2010-04-19  Richard Guenther  <rguenther@suse.de>
16754
16755         PR tree-optimization/43783
16756         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
16757         constant ARRAY_REF operands two and three if possible.
16758
16759 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
16760
16761         PR target/43766
16762         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
16763
16764 2010-04-19  Jie Zhang  <jie@codesourcery.com>
16765
16766         PR target/43662
16767         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
16768
16769 2010-04-19  Ira Rosen  <irar@il.ibm.com>
16770
16771         PR tree-optimization/37027
16772         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
16773         and macro to access it.
16774         (vectorizable_reduction): Add argument.
16775         (vect_get_slp_defs): Likewise.
16776         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
16777         statements for possible use in SLP.
16778         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
16779         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
16780         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
16781         add new argument.
16782         (vectorizable_reduction): Likewise.
16783         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
16784         vect_get_slp_defs.
16785         (vectorizable_type_demotion, vectorizable_type_promotion,
16786         vectorizable_store): Likewise.
16787         (vect_analyze_stmt): Update call to vectorizable_reduction.
16788         (vect_transform_stmt): Likewise.
16789         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
16790         (vect_build_slp_tree): Fix indentation. Check that there are no loads
16791         from different interleaving chains in same node.
16792         (vect_slp_rearrange_stmts): New function.
16793         (vect_supported_load_permutation_p): Allow load permutations for
16794         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
16795         inside SLP nodes if necessary.
16796         (vect_analyze_slp_instance): Handle reductions.
16797         (vect_analyze_slp): Try to build SLP instances originating from groups
16798         of reductions.
16799         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
16800         (vect_get_constant_vectors): Create initial vectors for reductions
16801         according to reduction code. Add new argument.
16802         (vect_get_slp_defs): Add new argument, pass it to
16803         vect_get_constant_vectors.
16804         (vect_schedule_slp_instance): Remove SLP tree root statements.
16805
16806 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
16807
16808         * tree.h (ENUM_IS_SCOPED): Define.
16809         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
16810         for ENUM_IS_SCOPED enums.
16811
16812 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
16813
16814         * fold-const.c (fold_comparison): Use ssizetype.
16815         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
16816         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
16817         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
16818         * tree-object-size.c (compute_object_sizes): Use size_type_node.
16819
16820         * tree.h (initialize_sizetypes): Remove parameter.
16821         (build_common_tree_nodes): Remove second parameter.
16822         * stor-layout.c (initialize_sizetypes): Remove parameter.
16823         Always create an unsigned type.
16824         (set_sizetype): Assert that the passed type is unsigned and simplify.
16825         * tree.c (build_common_tree_nodes): Remove second parameter.
16826         Adjust call to initialize_sizetypes.
16827         * c-decl.c (c_init_decl_processing): Remove second argument in call to
16828         build_common_tree_nodes.
16829
16830 2010-04-18  Matthias Klose  <doko@ubuntu.com>
16831
16832         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
16833
16834 2010-04-18  Ira Rosen  <irar@il.ibm.com>
16835
16836         PR tree-optimization/43771
16837         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
16838         load permutation doesn't have gaps.
16839
16840 2010-04-18  Jan Hubicka  <jh@suse.cz>
16841
16842         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
16843         (sse_prologue_save_insn expander): Use new pattern.
16844         (sse_prologue_save_insn1): New pattern and splitter.
16845         (sse_prologue_save_insn): Update to deal also with 64bit aligned
16846         blocks.
16847         * i386.c (setup_incoming_varargs_64): Do not compute jump
16848         destination here.
16849         (ix86_gimplify_va_arg): Update alignment needed.
16850         (ix86_local_alignment): Do not align all local arrays to 128bit.
16851
16852 2010-04-17  Jan Hubicka  <jh@suse.cz>
16853
16854         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
16855
16856 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
16857
16858         * arm.md (negdi2): Remove redundant code to force values into a
16859         register.
16860
16861 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
16862
16863         * arm/bpabi.S: Add EABI alignment attributes to objects.
16864         * arm/bpabi-v6m.S: Likewise.
16865         * arm/crti.asm: Likewise.
16866         * arm/crtn.asm: Likewise.
16867         * arm/lib1funcs.asm: Likewise.
16868         * arm/libunwind.S: Likewise.
16869
16870 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
16871
16872         * arm-protos.h (tune_params): New structure.
16873         * arm.c (current_tune): New variable.
16874         (arm_constant_limit): Delete.
16875         (struct processors): Add pointer to the tune parameters.
16876         (arm_slowmul_tune): New tuning option.
16877         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
16878         (all_cores): Adjust to pick up the tuning model.
16879         (arm_constant_limit): New function.
16880         (arm_override_options): Select the appropriate tuning model.  Delete
16881         initialization of arm_const_limit.
16882         (arm_split_constant): Use the new constant-limit model.
16883         (arm_rtx_costs): Pick up the current tuning model.
16884         * arm.md (is_strongarm, is_xscale): Delete.
16885         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
16886         for Xscale variant architectures.
16887         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
16888
16889 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16890
16891         * config/arm/arm.c (arm_gen_constant): Remove unused variable
16892         can_shift.
16893         (arm_rtx_costs_1): Remove unused variable extra_cost.
16894         (arm_unwind_emit_set): Use variable offset.
16895         (thumb1_output_casesi): Remove unused variable flags.
16896
16897 2010-04-16  Jeff Law  <law@redhat.com>
16898
16899         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
16900         needing assignment rather than doing a two-phase assignment.  Remove
16901         unused variable 'm'.
16902
16903 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
16904
16905         PR bootstrap/43767
16906         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
16907
16908 2010-04-16  Doug Kwan  <dougkwan@google.com>
16909
16910         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
16911         (next_operand_entry_id): New static variable.
16912         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
16913         (add_to_ops_vec): Assigned unique ID to operand entry.
16914         (struct oecount_s): New field ID.
16915         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
16916         (undistribute_ops_list): Assign unique IDs to oecounts.
16917         (init_reassoc): reset next_operand_entry_id.
16918
16919 2010-04-16  Doug Kwan  <dougkwan@google.com>
16920
16921         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
16922         missing left parenthesis.
16923
16924 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
16925
16926         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
16927         *btdi_rex64 using SWI48 mode iterator.
16928         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
16929         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
16930         *jcc_btdi_mask_rex64.
16931
16932 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
16933
16934         * double-int.h (tree_to_double_int): Convert to macro.
16935         * double-int.c (tree_to_double_int): Remove.
16936
16937 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
16938
16939         PR debug/43762
16940         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
16941         with want_address 2 and in case a single element list might be
16942         possible, call it again with want_address 0.
16943
16944 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
16945
16946         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
16947         case 'W' print operands for HI mode.
16948         * config/h8300/h8300.h (Y0, Y2) : New constraints.
16949         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
16950         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
16951         * config/h8300/predicate.md (bit_register_indirect_operand): New.
16952
16953         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
16954
16955         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
16956         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
16957         #xx:3 and #xx:4 mode.
16958
16959         * config/h8300/h8300.md (inverted load with HImode dest): Add
16960         support for H8300SX.
16961
16962         * config/h8300/predicate.md (bit_operand): Allow immediate values that
16963         satisfy 'U' constraint.
16964
16965 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16966
16967         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
16968         * configure: Regenerate.
16969         * config.in: Regenerate.
16970         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
16971         works.
16972
16973 2010-04-16  Richard Guenther  <rguenther@suse.de>
16974
16975         * tree.h (struct tree_decl_minimal): Move pt_uid ...
16976         (struct tree_decl_common): ... here.
16977         (DECL_PT_UID): Adjust.
16978         (SET_DECL_PT_UID): Likewise.
16979         (DECL_PT_UID_SET_P): Likewise.
16980
16981 2010-04-16  Richard Guenther  <rguenther@suse.de>
16982
16983         PR tree-optimization/43572
16984         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
16985         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
16986         * tree-flow.h (is_call_clobbered): Remove.
16987         * tree-flow-inline.h (is_call_clobbered): Likewise.
16988         * tree-dfa.c (dump_variable): Do not dump call clobber state.
16989         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
16990         (execute_return_slot_opt): Adjust.
16991         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
16992         check for call clobbered vars here.
16993         (find_tail_calls): Move tailcall verification to the
16994         proper place.
16995
16996 2010-04-16  Diego Novillo  <dnovillo@google.com>
16997
16998         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
16999
17000 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
17001
17002         PR target/40603
17003         * config/arm/arm.md (cbranchqi4): New pattern.
17004         * config/arm/predicates.md (const0_operand,
17005         cbranchqi4_comparison_operator): New predicates.
17006
17007 2010-04-16  Richard Guenther  <rguenther@suse.de>
17008
17009         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
17010         (dump_gimple_stmt): Likewise.
17011
17012 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
17013
17014         * recog.h (struct recog_data): New field is_operator.
17015         (struct insn_operand_data): New field is_operator.
17016         * recog.c (extract_insn): Set recog_data.is_operator.
17017         * genoutput.c (output_operand_data): Emit code to set the
17018         is_operator field.
17019         * reload.c (find_reloads): Use it rather than testing for an
17020         empty constraint string.
17021
17022         PR target/41514
17023         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
17024         If the previous insn is a cbranchsi4_insn with the same arguments,
17025         omit the compare instruction.
17026
17027         * config/arm/arm.md (addsi3_cbranch): If destination is a high
17028         register, inputs must be low registers and we need a low register
17029         scratch.  Handle alternative 2 like alternative 3.
17030
17031 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
17032
17033         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
17034         don't call get_addr on both.  If one expression is a VALUE and
17035         the other a REG, check VALUE's locs if the REG isn't among them.
17036
17037 2010-04-16  Christian Bruel  <christian.bruel@st.com>
17038
17039         * config/sh/sh.h (sh_frame_pointer_required): New function.
17040         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
17041         (flag_omit_frame_pointer) Set.
17042         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
17043         (rounded_frame_size): Adjust size with outgoing_args_size.
17044         (sh_set_return_address): Must return from stack pointer.
17045         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
17046         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
17047         (ACCUMULATE_OUTGOING_ARGS): Define.
17048         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
17049         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
17050
17051 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
17052
17053         PR target/43471
17054         * config/sh/sh.c (sh_legitimize_reload_address): Use
17055         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
17056         Remove a unneeded check for offset_base.
17057
17058 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
17059
17060         * configure: Regenerated.
17061
17062 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17063
17064         * config/s390/s390.c (s390_call_save_register_used): Switch back
17065         to HARD_REGNO_NREGS.
17066
17067 2010-04-15  Richard Guenther  <rguenther@suse.de>
17068
17069         * alias.c (alias_set_subset_of): Handle alias-set zero
17070         child properly.
17071
17072 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
17073             Julian Brown  <julian@codesourcery.com>
17074
17075         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
17076         alternatives according to use of high and low regs.
17077         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
17078         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
17079         optimizing for size on Thumb-2.
17080
17081 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
17082
17083         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
17084
17085 2010-04-15  Richard Guenther  <rguenther@suse.de>
17086
17087         * tree-ssa-structalias.c (struct variable_info): Add
17088         is_fn_info flag.
17089         (new_var_info): Initialize it.
17090         (dump_constraints): Support printing last added constraints.
17091         (debug_constraints): Adjust.
17092         (dump_constraint_graph): Likewise.
17093         (make_heapvar_for): Check for NULL cfun.
17094         (get_function_part_constraint): New function.
17095         (get_fi_for_callee): Likewise.
17096         (find_func_aliases): Properly implement IPA PTA constraints.
17097         (process_ipa_clobber): New function.
17098         (find_func_clobbers): Likewise.
17099         (insert_into_field_list_sorted): Remove.
17100         (create_function_info_for): Properly allocate vars for IPA mode.
17101         Do not use insert_into_field_list_sorted.
17102         (create_variable_info_for): Properly generate constraints for
17103         global vars in IPA mode.
17104         (dump_solution_for_var): Always dump the solution.
17105         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
17106         (find_what_var_points_to): Adjust.
17107         (pt_solution_set): Change.
17108         (pt_solution_ior_into): New function.
17109         (pt_solution_empty_p): Export.
17110         (pt_solution_includes_global): Adjust.
17111         (pt_solution_includes_1): Likewise.
17112         (pt_solutions_intersect_1): Likewise.
17113         (dump_sa_points_to_info): Check some invariants.
17114         (solve_constraints): Move constraint dumping ...
17115         (compute_points_to_sets): ... here.
17116         (ipa_pta_execute): ... and here.
17117         (compute_may_aliases): Do not re-compute points-to info
17118         locally if IPA info is available.
17119         (ipa_escaped_pt): New global var.
17120         (ipa_pta_execute): Properly implement IPA PTA.
17121         * tree-into-ssa.c (dump_decl_set): Support dumping
17122         decls not in referenced-vars.
17123         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
17124         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
17125         (dump_points_to_solution): Likewise.
17126         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
17127         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
17128         (remap_gimple_stmt): Reset call clobber/use information if necessary.
17129         (copy_decl_to_var): Copy DECL_PT_UID.
17130         (copy_result_decl_to_var): Likewise.
17131         * tree.c (make_node_stat): Initialize DECL_PT_UID.
17132         (copy_node_stat): Copy it.
17133         * tree.h (DECL_PT_UID): New macro.
17134         (SET_DECL_PT_UID): Likewise.
17135         (DECL_PT_UID_SET_P): Likewise.
17136         (struct tree_decl_minimal): Add pt_uid member.
17137         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
17138         (pt_solution_empty_p): Declare.
17139         (pt_solution_set): Adjust.
17140         (ipa_escaped_pt): Declare.
17141         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
17142         * gimple-pretty-print.c (pp_points_to_solution): New function.
17143         (dump_gimple_call): Dump call clobber/use information.
17144         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
17145         * tree-pass.h (TDF_ALIAS): New dump option.
17146         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
17147         * doc/invoke.texi (-fipa-pta): Update documentation.
17148
17149 2010-04-15  Richard Guenther  <rguenther@suse.de>
17150
17151         * Makefile.in (OBJS-common): Add gimple-fold.o.
17152         (gimple-fold.o): New rule.
17153         * tree.h (maybe_fold_offset_to_reference,
17154         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
17155         prototypes ...
17156         * gimple.h: ... here.
17157         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
17158         may_propagate_address_into_dereference): Move prototypes ...
17159         * gimple.h: ... here.
17160         * tree-ssa-ccp.c (get_symbol_constant_value,
17161         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
17162         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
17163         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
17164         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
17165         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
17166         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
17167         gimplify_and_update_call_from_tree): Move ...
17168         * gimple-fold.c: ... here.  New file.
17169         (ccp_fold_builtin): Rename to ...
17170         (gimple_fold_builtin): ... this.
17171         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
17172
17173 2010-04-15  Richard Guenther  <rguenther@suse.de>
17174
17175         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
17176         fit_double_type, force_fit_type_double, add_double_with_sign,
17177         neg_double, mul_double_with_sign, lshift_double, rshift_double,
17178         lrotate_double, rrotate_double, div_and_round_double): Move ...
17179         * double-int.c: ... here.
17180         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
17181         add_double, neg_double, mul_double_with_sign, mul_double,
17182         lshift_double, rshift_double, lrotate_double, rrotate_double,
17183         div_and_round_double): Move prototypes ...
17184         * double-int.h: ... here.
17185
17186 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
17187
17188         PR target/43742
17189         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
17190         matching constraints to ensure inputs match the output.
17191
17192 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
17193
17194         PR target/43742
17195         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
17196         in an input-only operand.
17197
17198 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
17199
17200         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
17201         (double_int_not, double_int_lshift, double_int_rshift): Declare.
17202         (double_int_negative_p): Convert to static inline function.
17203         * double-int.c (double_int_lshift, double_int_lshift): New functions.
17204         (double_int_negative_p): Remove.
17205         * tree.h (lshift_double, rshift_double):
17206         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
17207         * fold-const.c (fold_convert_const_int_from_real,
17208         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
17209         (lshift_double): Change type of arith argument to bool.
17210         (rshift_double): Change type of arith argument to bool. Correct
17211         comment.
17212         * expmed.c (mask_rtx, lshift_value): (Ditto.).
17213
17214 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
17215
17216         PR target/21803
17217         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
17218         at the start and end of the then/else blocks, and omit them from the
17219         conversion.
17220         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
17221         argument; all callers changed.  Pass zero to old_insns_match_p instead.
17222         (flow_find_head_matching_sequence): New function.
17223         (old_insns_match_p): Check REG_EH_REGION notes for calls.
17224         * basic-block.h (flow_find_cross_jump,
17225         flow_find_head_matching_sequence): Declare functions.
17226
17227 2010-04-14  Jason Merrill  <jason@redhat.com>
17228
17229         PR c++/36625
17230         * c-common.c (attribute_takes_identifier_p): New fn.
17231         * c-common.h: Declare it.
17232
17233 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17234
17235         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
17236         splitter condition.
17237         (*udivmod<mode>4): Ditto.
17238
17239 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17240
17241         * config/i386/i386.md (maxmin_int): Rename code attribute from
17242         maxminiprefix and update all users.
17243         (maxmin_float): Ditto from maxminfprefix.
17244         (logic): Ditto from logicprefix.
17245         (absneg_mnemonic): Ditto from absnegprefix.
17246         * config/i386/mmx.md: Update all users of maxminiprefix,
17247         maxminfprefix and logicprefix for rename.
17248         * config/i386/sse.md: Ditto.
17249         * config/i386/sync.md (sync_<code><mode>): Update for
17250         logicprefix rename.
17251
17252 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17253
17254         PR 42966
17255         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
17256         warnings converted to errors.
17257
17258 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17259
17260         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
17261         used insn_type variable.
17262         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
17263         to avoid set-but-not-used warning.
17264
17265 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17266
17267         * df-core.c (df_ref_debug): Change format string placeholder
17268         from 0x%x to %#x.
17269         * dwarf2asm.c (dw2_asm_output_data_raw,
17270         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
17271         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
17272         * dwarf2out.c (output_cfi, output_cfi_directive,
17273         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
17274         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
17275         Ditto.
17276         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
17277         * print-rtl.c (print_rtx): Ditto.
17278
17279 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
17280
17281         PR middle-end/42694
17282         * builtins.c (expand_builtin_pow_root): New function to expand pow
17283         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
17284         series of sqrt and cbrt calls under -ffast-math.
17285         (expand_builtin_pow): Call it.
17286
17287 2010-04-14  Michael Matz  <matz@suse.de>
17288
17289         PR tree-optimization/42963
17290         * tree-cfg.c (touched_switch_bbs): New static variable.
17291         (group_case_labels_stmt): New function broken out from ...
17292         (group_case_labels): ... here, use the above.
17293         (start_recording_case_labels): Allocate touched_switch_bbs.
17294         (end_recording_case_labels): Deallocate it, call
17295         group_case_labels_stmt.
17296         (gimple_redirect_edge_and_branch): Remember index of affected BB.
17297
17298 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17299
17300         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
17301         from insn template.
17302
17303 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17304
17305         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
17306
17307 2010-04-13  Jan Hubicka  <jh@suse.cz>
17308
17309         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
17310         of optimized out static functions.
17311         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
17312         cost computation.  Also sanity check for overflows.
17313         (update_caller_keys): Update cgraph_edge_badness call; properly
17314         update fibheap and sanity check that it is up to date.
17315         (add_new_edges_to_heap): Update cgraph_edge_badness.
17316         (cgraph_decide_inlining_of_small_function): Likewise;
17317         add sanity checking that badness in heap is up to date;
17318         improve dumping of reason; Update badness of calls to the
17319         offline copy of function currently inlined; dump badness
17320         of functions not inlined because of unit growth limits.
17321
17322 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
17323
17324         PR middle-end/32628
17325         * c-common.c (pointer_int_sum): Disregard overflow that occured only
17326         because of sign-extension change when converting to sizetype here...
17327         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
17328
17329         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
17330         the folding to constants.  Remove redundant final conversion.
17331         (fold_binary) <associate>: Do not associate if the re-association of
17332         constants alone overflows.
17333         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
17334         to the end of the list.
17335         (multiple_of_p) <COND_EXPR>: New case.
17336
17337 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17338
17339         * opt-functions.awk (opt_sanitized_name): New.
17340         (opt_enum): New.
17341         * optc-gen.awk: Use it
17342         * opth-gen.awk: Use it.
17343
17344 2010-04-13  Martin Jambor  <mjambor@suse.cz>
17345
17346         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
17347         (sra_modify_assign): Delete stmts loading dead data even if racc has no
17348         children.  Call replace_uses_with_default_def_ssa_name to handle
17349         SSA_NAES on lhs.
17350
17351 2010-04-13  Michael Matz  <matz@suse.de>
17352
17353         PR middle-end/43730
17354         * builtins.c (expand_builtin_interclass_mathfn): Also create
17355         a register if the predicate doesn't match.
17356
17357 2010-04-13  Diego Novillo  <dnovillo@google.com>
17358
17359         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
17360         * c-pch.c: Include timevar.h.
17361         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
17362         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
17363         * ggc-common.c: Include timevar.h.
17364         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
17365         * timevar.def (TV_PCH_SAVE): Define.
17366         (TV_PCH_CPP_SAVE): Define.
17367         (TV_PCH_PTR_REALLOC): Define.
17368         (TV_PCH_PTR_SORT): Define.
17369         (TV_PCH_RESTORE): Define.
17370         (TV_PCH_CPP_RESTORE): Define.
17371
17372 2010-04-13  Michael Matz  <matz@suse.de>
17373
17374         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
17375         into MINUS_EXPRs.
17376         (can_reassociate_p): New function.
17377         (break_up_subtract_bb, reassociate_bb): Use it.
17378
17379 2010-04-13  Richard Guenther  <rguenther@suse.de>
17380
17381         PR bootstrap/43737
17382         * builtins.c (c_readstr): Fix assert.
17383
17384 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
17385
17386         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
17387         when generating cltd insn.
17388
17389         (*ashl<mode>3_1): Remove special handling for register operand 2.
17390         (*ashlsi3_1_zext): Ditto.
17391         (*ashlhi3_1): Ditto.
17392         (*ashlhi3_1_lea): Ditto.
17393         (*ashlqi3_1): Ditto.
17394         (*ashlqi3_1_lea): Ditto.
17395         (*<shiftrt_insn><mode>3_1): Ditto.
17396         (*<shiftrt_insn>si3_1_zext): Ditto.
17397         (*<shiftrt_insn>qi3_1_slp): Ditto.
17398         (*<rotate_insn><mode>3_1): Ditto.
17399         (*<rotate_insn>si3_1_zext): Ditto.
17400         (*<rotate_insn>qi3_1_slp): Ditto.
17401
17402 2010-04-13  Richard Guenther  <rguenther@suse.de>
17403
17404         * tree-ssa-structalias.c (callused_id): Remove.
17405         (call_stmt_vars): New.
17406         (get_call_vi): Likewise.
17407         (lookup_call_use_vi): Likewise.
17408         (lookup_call_clobber_vi): Likewise.
17409         (get_call_use_vi): Likewise.
17410         (get_call_clobber_vi): Likewise.
17411         (make_transitive_closure_constraints): Likewise.
17412         (handle_const_call): Adjust to do per-call call-used handling.
17413         (handle_pure_call): Likewise.
17414         (find_what_var_points_to): Remove general callused handling.
17415         (init_base_vars): Likewise.
17416         (init_alias_vars): Initialize call_stmt_vars.
17417         (compute_points_to_sets): Process call-used and call-clobbered
17418         vars for call statements.
17419         (delete_points_to_sets): Free call_stmt_vars.
17420
17421 2010-04-13  Richard Guenther  <rguenther@suse.de>
17422
17423         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
17424         Only add RW dependence for dependence distance zero.
17425         Adjust maximal vectorization factor according to dependences.
17426         Move alignment handling ...
17427         (vect_find_same_alignment_drs): ... here.  New function.
17428         (vect_analyze_data_ref_dependences): Adjust.
17429         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
17430         (vect_analyze_data_refs): Adjust minimal vectorization factor
17431         according to data references.
17432         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
17433         dependences before determining the vectorization factor.
17434         Analyze alignment after determining the vectorization factor.
17435         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
17436         dependences before alignment.
17437         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
17438         Adjust prototype.
17439         (vect_analyze_data_refs): Likewise.
17440         (MAX_VECTORIZATION_FACTOR): New define.
17441
17442 2010-04-13  Duncan Sands  <baldrick@free.fr>
17443
17444         * except.h (lang_eh_type_covers): Remove.
17445         * except.c (lang_eh_type_covers): Likewise.
17446
17447 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17448             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17449
17450         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
17451         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
17452         UNITS_PER_LONG where it is ABI relevant.
17453         (s390_return_addr_rtx): Likewise.
17454         (s390_back_chain_rtx): Likewise.
17455         (s390_frame_area): Likewise.
17456         (s390_frame_info): Likewise.
17457         (s390_initial_elimination_offset): Likewise.
17458         (save_gprs): Likewise.
17459         (s390_emit_prologue): Likewise.
17460         (s390_emit_epilogue): Likewise.
17461         (s390_function_arg_advance): Likewise.
17462         (s390_function_arg): Likewise.
17463         (s390_va_start): Likewise.
17464         (s390_gimplify_va_arg): Likewise.
17465         (s390_function_profiler): Likewise.
17466         (s390_optimize_prologue): Likewise.
17467         (s390_rtx_costs): Likewise.
17468         (s390_secondary_reload): Likewise.
17469         (s390_promote_function_mode): Likewise.
17470         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
17471         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
17472         registers available.
17473         (s390_unwind_word_mode): New function.
17474         (s390_function_value): Split 64 bit values into register pair if
17475         used as return value.
17476         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
17477         function call parameters.  Handle parallels.
17478         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
17479         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
17480         (DWARF_CIE_DATA_ALIGNMENT): New macro.
17481         (s390_expand_setmem): Remove unused variable src_addr.
17482         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
17483         deal with 64 bit registers.
17484         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
17485         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
17486         (UNITS_PER_LONG): New macro.
17487         * libjava/include/s390-signal.h: Define extended ucontext
17488         structure containing the upper halfs of the 64 bit registers.
17489
17490 2010-04-13  Simon Baldwin  <simonb@google.com>
17491
17492         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
17493
17494 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
17495
17496         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
17497         rvalue on the RHS if the LHS is of a non-renamable type.
17498         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
17499
17500 2010-04-13  Matthias Klose  <doko@ubuntu.com>
17501
17502         * gcc.c (cc1_options): Handle -iplugindir before processing
17503         the cc1 spec. Only add -iplugindir once.
17504         (cpp_unique_options): Add -iplugindir option if -fplugin* options
17505         found.
17506         * common.opt (iplugindir): Remove `Separate' property, initialize.
17507         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
17508         option.
17509         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
17510         (distclean): Remove plugin dir.
17511         * doc/invoke.texi: Document -iplugindir.
17512
17513 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
17514
17515         * doc/plugins.texi (Loading Plugins): Document short
17516         -fplugin=foo option.
17517         (Plugin API): Mention default_plugin_dir_name function.
17518
17519         * gcc.c (find_file_spec_function): Add new declaration.
17520         (static_spec_func): Use it for "find-file".
17521         (find_file_spec_function): Add new function.
17522         (cc1_options): Add -iplugindir option if -fplugin* options found.
17523
17524         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
17525
17526         * plugin.c (add_new_plugin): Updated comment, and handle short
17527         plugin name.
17528         (default_plugin_dir_name): Added new function.
17529
17530         * common.opt (iplugindir): New option to set the plugin directory.
17531
17532 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
17533
17534         * config/i386/i386.md (any_rotate): New code iterator.
17535         (rotate_insn): New code attribute.
17536         (rotate): Ditto.
17537         (SWIM124): New mode iterator.
17538         (<rotate_insn>ti3): New expander.
17539         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
17540         any_rotate code iterator.
17541         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
17542         using any_rotate code iterator and SWIM124 mode iterator.
17543         (ix86_rotlti3): New insn_and_split pattern.
17544         (ix86_rotrti3): Ditto.
17545         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
17546         ix86_rotl{di,ti}3 patterns.
17547         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
17548         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
17549         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
17550         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
17551         code iterator and SWI mode iterator.
17552         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
17553         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
17554         code iterator.
17555         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
17556         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
17557         (bswap rotatert splitter): Add splitter.
17558         (bswap splitter): Macroize splitter using any_rotate code iterator.
17559         Add insn predicate to split only for TARGET_USE_XCHGB or when
17560         optimizing function for size.
17561
17562 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
17563
17564         * config/pa/pa.c (emit_move_sequence): Remove use of
17565         deleted variable flag_argument_noalias.
17566
17567 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17568
17569         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
17570         configurations.
17571         Add to unsupported targets list.
17572         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
17573         sparc*-sun-solaris2.[567]* from target lists.
17574         * configure: Regenerate.
17575         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
17576         removal.
17577         Remove Solaris 7 patch references.
17578         (Specific, sparc-sun-solaris2.7): Removed.
17579         (sparc-sun-solaris2*): Update Solaris 7 example.
17580         (sparc64-*-solaris2*): Likewise.
17581
17582 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17583
17584         * config.build (alpha*-dec-osf4*): Remove.
17585         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
17586         of obsolete configurations.
17587         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
17588         support.
17589         * config/alpha/t-osf4: Renamed to ...
17590         * config/alpha/t-osf5: ... this.
17591         * config/alpha/osf.h: Renamed to ...
17592         * config/alpha/osf5.h: ... this.
17593         Merged old osf5.h contents.
17594         Update comments.
17595         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
17596         (EXTRA_SPECS): Removed.
17597         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
17598         reflect removal of Tru64 UNIX V4.0/V5.0 support.
17599         Document that.
17600
17601 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17602
17603         * doc/contrib.texi (Contributors, Rainer Orth): Update.
17604
17605 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
17606
17607         PR/43702
17608         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
17609         __thiscall convention.
17610
17611 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
17612
17613         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
17614         orig_base.
17615         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
17616
17617 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
17618
17619         * function.c (assign_parms_initialize_all): Add unused attribute
17620         to fntype.
17621
17622 2010-04-12  Richard Guenther  <rguenther@suse.de>
17623
17624         * gsstruct.def (GSS_CALL): New.
17625         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
17626         * gimple.h: Include tree-ssa-alias.h.
17627         (struct gimple_statement_call): New.
17628         (union gimple_statement_struct_d): Add gimple_call member.
17629         (gimple_call_reset_alias_info): Declare.
17630         (gimple_call_use_set): New function.
17631         (gimple_call_clobber_set): Likewise.
17632         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
17633         * gimple.c (gimple_call_reset_alias_info): New function.
17634         (gimple_build_call_1): Call it.
17635         * lto-streamer-in.c (input_gimple_stmt): Likewise.
17636         * tree-inline.c (remap_gimple_stmt): Likewise.
17637         (expand_call_inline): Remove callused handling.
17638         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
17639         * tree-dfa.c (dump_variable): Likewise.
17640         * tree-parloops.c (parallelize_loops): Likewise.
17641         * tree-ssa.c (init_tree_ssa): Likewise.
17642         (delete_tree_ssa): Likewise.
17643         * tree-flow-inline.h (is_call_used): Remove.
17644         * tree-flow.h (struct gimple_df): Remove callused member.
17645         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
17646         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
17647         (ref_maybe_used_by_call_p_1): Simplify.
17648         (call_may_clobber_ref_p_1): Likewise.
17649         * tree-ssa-structalias.c (compute_points_to_sets): Set
17650         the call stmt used and clobbered sets.
17651         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
17652         (find_tail_calls): Verify the tail call.
17653
17654 2010-04-12  Richard Guenther  <rguenther@suse.de>
17655
17656         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
17657         single-iteration always-inline inlining.
17658         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
17659         (cgraph_decide_inlining): Do not handle always-inline specially.
17660         (try_inline): Remove always-inline cycle detection special case.
17661         Do not recurse on always-inlines.
17662         (cgraph_early_inlining): Do not iterate if not optimizing.
17663         (cgraph_gate_early_inlining): remove.
17664         (pass_early_inline): Run unconditionally.
17665         (gate_cgraph_decide_inlining): New function.
17666         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
17667         not inlining or optimizing.
17668         (cgraph_decide_inlining_of_small_functions): Also consider
17669         always-inline functions.
17670         (cgraph_default_inline_p): Return true for nodes which should
17671         disregard inline limits.
17672         (estimate_function_body_sizes): Assume zero size and time for
17673         nodes which are marked as disregarding inline limits.
17674         (cgraph_decide_recursive_inlining): Do not perform recursive
17675         inlining on always-inline nodes.
17676
17677 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
17678
17679         PR bootstrap/43699
17680         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
17681         for exprs satisfying handled_component_p.
17682
17683 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
17684
17685         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
17686         non-constant aggregate elements.
17687
17688         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
17689         is a real initialization.
17690
17691 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
17692
17693         PR c/36774
17694         * c-decl.c (start_function): Move forward check for nested function.
17695
17696 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
17697
17698         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
17699         * config/sh/sh.c: Include reload.h.
17700         (sh_legitimize_reload_address): New.
17701         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
17702         sh_legitimize_reload_address.
17703
17704 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
17705
17706         * config/sh/sh.md (*movqi_pop): New insn pattern.
17707         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
17708
17709 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
17710
17711         * config/i386/i386.md (any_shiftrt): New code iterator.
17712         (shiftrt_insn): New code attribute.
17713         (shiftrt): Ditto.
17714         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
17715         using any_shiftrt code iterator.
17716         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
17717         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
17718         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
17719         pattern from corresponding peephole2 patterns.
17720         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
17721         using any_shiftrt code iterator.
17722         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
17723         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
17724         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
17725         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
17726         *{ashr,lshr}<mode>3_cmp_zext.
17727         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
17728
17729 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
17730
17731         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
17732         scratch register.
17733         (*lshr<mode>3_cconly): Ditto.
17734
17735 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
17736
17737         * config/i386/i386.md (lshr<mode>3): Macroize expander from
17738         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
17739         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
17740         pattern from *lshr{di,ti}3_1 and corresponding splitters using
17741         DWI mode iterator.
17742         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
17743         from corresponding peephole2 patterns.
17744         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
17745         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
17746         and *lshrdi3_1_rex64 using SWI mode iterator.
17747         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
17748         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
17749         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
17750         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
17751         and *lshrdi3_cmp_rex64 using SWI mode iterator.
17752         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
17753         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
17754         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
17755         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
17756         SWI mode iterator.
17757
17758 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
17759
17760         * config/i386/i386.md (ashr<mode>3): Macroize expander from
17761         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
17762         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
17763         pattern from *ashr{di,ti}3_1 and corresponding splitters using
17764         DWI mode iterator.
17765         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
17766         from corresponding peephole2 patterns.
17767         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
17768         (ashrsi3_cvt): Rename from ashrsi3_31.
17769         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
17770         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
17771         and x86_64_shift_adj_3 using SWI48 mode iterator.
17772         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
17773         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
17774         and *ashrdi3_1_rex64 using SWI mode iterator.
17775         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
17776         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
17777         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
17778         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
17779         and *ashrdi3_cmp_rex64 using SWI mode iterator.
17780         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
17781         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
17782         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
17783         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
17784         SWI mode iterator.
17785         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
17786         * config/i386/i386.c (ix86_split_ashr): Update for renamed
17787         x86_shift<mode>_adj_3 expanders.
17788
17789 2010-04-10  Wei Guozhi  <carrot@google.com>
17790
17791         PR target/42601
17792         * config/arm/arm.c (arm_pic_static_addr): New function.
17793         (legitimize_pic_address): Call arm_pic_static_addr when it detects
17794         a static symbol.
17795         (arm_output_addr_const_extra): Output expression for new pattern.
17796         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
17797
17798 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
17799
17800         * ira-costs.c (record_reg_classes): Ignore alternatives that are
17801         not enabled.
17802
17803         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
17804         * web.c: Include "insn-config.h" and "recog.h".
17805         (union_match_dups): New function.
17806         (web_main): Call it.
17807         (union_defs): Don't try to recognize match_dups.
17808
17809         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
17810         if doing so would replace the entire pattern.
17811
17812 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
17813
17814         PR target/43707
17815         PR target/43709
17816         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
17817         and splitter pattern.  Change splitter operand 1 predicate to
17818         nonmemory_operand.
17819
17820 2010-04-09  Martin Jambor  <mjambor@suse.cz>
17821
17822         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
17823         lattices are addresses of CONST_DECLs with the same initial value.
17824         (ipcp_print_all_lattices): Print values of CONST_DECLs.
17825         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
17826
17827 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
17828             Bernd Schmidt  <bernds@codesourcery.com>
17829
17830         * loop-invariant.c (replace_uses): New static function.
17831         (move_invariant_reg): Use it to ensure we can replace the uses.
17832
17833 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
17834
17835         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
17836         function template.
17837         (picochip_override_options): Enable section anchors only above -O1.
17838         (picochip_reorg): Fixed a couple of build warnings.
17839
17840 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17841
17842         * configure.ac (plugin -rdynamic test): Log result.
17843         * configure: Regenerate.
17844         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
17845         (RDYNAMIC_SPEC): Define.
17846         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
17847
17848 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17849
17850         * configure.ac: Determine Sun ld version numbers.
17851         (comdat_group): Restrict GNU ld version checks to gld.
17852         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
17853         (enable_comdat): Support --enable-comdat.
17854         * configure: Regenerate.
17855         * doc/install.texi (Configuration): Document --enable-comdat.
17856
17857 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17858
17859         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
17860         * config/sol2-gld.h: ... here.
17861         * config.gcc (sparc*-*-solaris2*): Reflect this.
17862         (i[34567]86-*-solaris2*): Use it.
17863
17864 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
17865
17866         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
17867         setup_clocks_p.
17868         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
17869
17870 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17871
17872         PR 42965
17873         * diagnostic.c (diagnostic_initialize): Initialize
17874         some_warnings_are_errors.
17875         (diagnostic_finish): New.
17876         (diagnostic_action_after_output): Call it before exiting.
17877         (diagnostic_report_diagnostic): Do not print message here. Set
17878         some_warnings_are_errors.
17879         * diagnostic.h (diagnostic_context): Delete
17880         issue_warnings_are_errors_message. Add some_warnings_are_errors.
17881         (diagnostic_finish): Declare.
17882         * toplev.c (toplev_main): Call it before exit.
17883
17884 2010-04-09  Jason Merrill  <jason@redhat.com>
17885
17886         PR c++/42623
17887         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
17888         for incomplete type.
17889
17890         PR c++/41788
17891         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
17892         based on a warning flag.
17893
17894 2010-04-09  Richard Guenther  <rguenther@suse.de>
17895
17896         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
17897
17898 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
17899
17900         PR bootstrap/43684
17901         * varasm.c (default_assemble_visibility): Wrap vars that are
17902         set, but unused, by targets without GAS.
17903         * config/rs6000/rs6000.c (paired_emit_vector_compare):
17904         Remove set, but unused, vars.
17905         (rs6000_legitimize_tls_address): Likewise.
17906         (altivec_expand_dst_builtin): Likewise.
17907         * config/darwin.c (machopic_classify_symbol): Likewise.
17908         (machopic_indirection_name): Likewise.
17909
17910 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
17911
17912         * config/i386/i386.md (DWI): New mode iterator.
17913         (S): New mode attribute.
17914         (shift_operand): Ditto.
17915         (shift_immediate_operand): Ditto.
17916         (ashl_input_operand): Ditto.
17917         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
17918         using SDWIM mode iterator.
17919         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
17920         pattern from *ashl{di,ti}3_1 and corresponding splitters using
17921         DWI mode iterator.
17922         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
17923         from corresponding peephole2 patterns.
17924         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
17925         and x86_64_shift_adj_1 using SWI48 mode iterator.
17926         (x86_shift<mode>_adj_2): Ditto.
17927         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
17928         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
17929         using SWI48 mode iterator.
17930         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
17931         *ashldi3_cmp_rex64 using SWI mode iterator.
17932         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
17933         *ashldi3_cconly_rex64 using SWI mode iterator.
17934         * config/i386/i386.c (ix86_split_ashl): Update for renamed
17935         x86_shift<mode>_adj_{1,2}.
17936         (ix86_split_ashr): Ditto.
17937         (ix86_split_lshr): Ditto.
17938
17939 2010-04-09  Richard Guenther  <rguenther@suse.de>
17940
17941         * target.h (builtin_conversion): Pass in input and output types.
17942         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
17943         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
17944         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
17945         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
17946
17947         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
17948         Handle AVX modes.
17949         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
17950
17951 2010-04-09  Richard Guenther  <rguenther@suse.de>
17952
17953         PR target/43152
17954         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
17955
17956 2010-04-09  Richard Guenther  <rguenther@suse.de>
17957
17958         * tree-vectorizer.h (struct _stmt_vec_info): Document
17959         that vectype is the type of the LHS.
17960         (supportable_widening_operation, supportable_narrowing_operation):
17961         Get both input and output vector types as arguments.
17962         (vect_is_simple_use_1): Declare.
17963         (get_same_sized_vectype): Likewise.
17964         * tree-vect-loop.c (vect_determine_vectorization_factor):
17965         Set STMT_VINFO_VECTYPE to the vector type of the def.
17966         (vectorizable_reduction): Adjust.
17967         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
17968         Adjust.  Specify the output vector type.
17969         (vect_pattern_recog_1): Adjust.
17970         * tree-vect-stmts.c (get_same_sized_vectype): New function.
17971         (vectorizable_call): Adjust.
17972         (vectorizable_conversion): Likewise.
17973         (vectorizable_operation): Likewise.
17974         (vectorizable_type_demotion): Likewise.
17975         (vectorizable_type_promotion): Likewise.
17976         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
17977         the def.
17978         (vect_is_simple_use_1): New function.
17979         (supportable_widening_operation): Get both input and output
17980         vector types.
17981         (supportable_narrowing_operation): Likewise.
17982         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
17983
17984 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
17985
17986         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
17987         __thiscall and _thiscall as predefined macros.
17988         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
17989         thiscall attribute handling.
17990         (ix86_comp_type_attributes): Likewise.
17991         (ix86_function_regparm): Likewise.
17992         (ix86_return_pops_args): Likewise.
17993         (init_cumulative_args): Likewise.
17994         (find_drap_reg): Likewise.
17995         (ix86_static_chain): Likewise.
17996         (x86_this_parameter): Likewise.
17997         (x86_output_mi_thunk): Likewise.
17998         (ix86_attribute_table): Add description for thiscall attribute.
17999         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
18000         * doc/extend.texi: Add documentation for thiscall.
18001
18002 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18003
18004         PR c++/28584
18005         * c.opt (Wint-to-pointer-cast): Available in C++.
18006         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
18007
18008 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
18009
18010         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
18011         * calls.c (expand_call): Pass the function type to aggregate_value_p.
18012         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
18013         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
18014         function type instead.  Reorder and simplify checks.
18015
18016         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
18017
18018 2010-04-08  Jing Yu  <jingyu@google.com>
18019             Zdenek Dvorak  <ook@ucw.cz>
18020
18021         PR tree-optimization/42720
18022         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
18023         loop unswitch conditions here from ...
18024         (tree_unswitch_single_loop): ... here.
18025
18026 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
18027
18028         * tree-if-conv.c: Fix comments and simplify logic.
18029
18030 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
18031
18032         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
18033         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
18034         (main_tree_if_conversion): Update call to tree_if_conversion.
18035
18036 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18037
18038         PR 42485
18039         * doc/invoke.texi (-b,-V): Delete.
18040         * doc/tm.texi: Do not mention -b.
18041         * gcc.c (display_help): Delete -b and -V.
18042         (process_command): Delete -b and -V.
18043         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
18044
18045 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
18046             Wolfgang Gellerich  <gellerich@de.ibm.com>
18047
18048         Implement target hook for loop unrolling
18049         * target.h (loop_unroll_adjust): Add a new target hook function.
18050         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
18051         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
18052         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
18053         (s390_loop_unroll_adjust): Implement the new target hook for s390.
18054         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
18055         target hook.
18056         (decide_unroll_stupid): Likewise.
18057
18058 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18059
18060         PR target/43643
18061         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
18062
18063 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18064
18065         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
18066         (Specific, *-*-solaris2*): Likewise.
18067         Don't prefer Sun as over GNU as.
18068
18069 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
18070
18071         * config/s390/s390.c (override_options): Adjust the z10 defaults
18072         for max-unroll-times, max-completely-peeled-insns
18073         and max-completely-peel-times.
18074
18075 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18076
18077         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
18078         instructions for z10.
18079         (s390_expand_setmem): Likewise.
18080         (s390_expand_cmpmem): Likewise.
18081
18082 2010-04-08  Richard Guenther  <rguenther@suse.de>
18083
18084         PR tree-optimization/43679
18085         * tree-ssa-pre.c (eliminate): Only propagate copies.
18086
18087 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
18088
18089         PR bootstrap/43681
18090         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
18091         set but not used variable warning.
18092
18093 2010-04-08  Wei Guozhi  <carrot@google.com>
18094
18095         PR target/41653
18096         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
18097         (arm_size_rtx_costs): Call the new function when optimized for size.
18098
18099 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
18100
18101         PR debug/43670
18102         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
18103         op0 is not a MEM, just return NULL instead of assertion
18104         failure.
18105         (discover_nonconstant_array_refs): Don't walk debug stmts.
18106
18107 2010-04-08  Doug Kwan  <dougkwan@google.com>
18108
18109         * configure.ac: Recognize gold and do not use its version number
18110         to test ld features.
18111         * configure: Regenerate.
18112
18113 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
18114
18115         PR middle-end/40815
18116         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
18117         (negate_value): Move code to push elements to broken_up_substracts ...
18118         (eliminate_plus_minus_pair): ... here.  Push operands that have no
18119         negative pair to plus_negates.
18120         (repropagate_negates, init_reassoc, fini_reassoc): Update.
18121
18122 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18123
18124         * doc/install.texi (Configuration): Move description of
18125         --enable-lto, --with-libelf*, --enable-gold from Java section to
18126         general section.
18127
18128         * doc/generic.texi (Working with declarations)
18129         (Function Properties, C and C++ Trees): Fix typos.
18130         * doc/sourcebuild.texi (Top Level): Likewise.
18131
18132 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
18133
18134         PR c/18624
18135         * tree.h (DECL_READ_P): Define.
18136         (struct tree_decl_common): Add decl_read_flag.
18137         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
18138         a set but not used warning.
18139         (merge_decls): Merge DECL_READ_P flag.
18140         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
18141         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
18142         * c-common.c (handle_used_attribute, handle_unused_attribute):
18143         Likewise.
18144         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
18145         New prototypes.
18146         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
18147         New functions.
18148         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
18149         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
18150         c_parser_binary_expression, c_parser_cast_expression,
18151         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
18152         Call default_function_array_read_conversion instead of
18153         default_function_array_conversion where needed.
18154         (c_parser_unary_expression, c_parser_conditional_expression,
18155         c_parser_postfix_expression_after_primary, c_parser_initelt):
18156         Likewise.  Call mark_exp_read where needed.
18157         (c_parser_statement_after_labels, c_parser_asm_operands,
18158         c_parser_typeof_specifier, c_parser_sizeof_expression,
18159         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
18160         where needed.
18161         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
18162         New.
18163         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
18164         (warn_unused_but_set_parameter): Default to warn_unused
18165         && extra_warnings.
18166         * doc/invoke.texi: Document -Wunused-but-set-variable and
18167         -Wunused-but-set-parameter.
18168
18169         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
18170         used count variable.
18171         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
18172         when operandN variables aren't used in the body of the expander
18173         or splitter.
18174         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
18175         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
18176         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
18177         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
18178         FOR_EACH_IMM_USE_ON_STMT): Likewise.
18179         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
18180         * tree.c (PROCESS_ARG): Likewise.
18181
18182 2010-04-07  Simon Baldwin  <simonb@google.com>
18183
18184         * diagnostic.h (diagnostic_override_option_index): New macro to
18185         set a diagnostic's option_index.
18186         * c-tree.h (c_cpp_error): Add warning reason argument.
18187         * opts.c (_warning_as_error_callback): New.
18188         (register_warning_as_error_callback): Store callback for
18189         warnings enabled via enable_warning_as_error.
18190         (enable_warning_as_error): Call callback, minor code tidy.
18191         * opts.h (register_warning_as_error_callback): Declare.
18192         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
18193         response to -Werror=.
18194         (c_common_init_options): Register warning_as_error_callback in opts.c.
18195         * common.opt: Add -Wno-cpp option.
18196         * c-common.c (struct reason_option_codes_t): Map cpp warning
18197         reason codes to gcc option indexes.
18198         * (c_option_controlling_cpp_error): New function, lookup the gcc
18199         option index for a cpp warning reason code.
18200         * (c_cpp_error): Add warning reason argument, call
18201         c_option_controlling_cpp_error for diagnostic_override_option_index.
18202         * doc/invoke.texi: Document -Wno-cpp.
18203
18204 2010-04-07  Richard Guenther  <rguenther@suse.de>
18205
18206         * ipa-reference.c (mark_load): Use get_base_address.
18207         (mark_store): Likewise.
18208
18209         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
18210         inserting GIMPLE_NOPs into the IL.
18211         * tree-ssa-structalias.c (get_constraint_for_component_ref):
18212         Explicitly strip handled components and indirect references.
18213
18214         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
18215         folding address expressions.
18216         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
18217         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
18218         operand_equal_p to compare decls.
18219         (ptr_deref_may_alias_decl_p): Likewise.
18220         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
18221         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
18222         Handle reversed comparison ops.
18223         * tree-sra.c (asm_visit_addr): Use get_base_address.
18224         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
18225         * ipa-reference.c (mark_address): Use get_base_address.
18226
18227 2010-04-07  Richard Guenther  <rguenther@suse.de>
18228
18229         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
18230         Propagate constants everywhere.
18231
18232 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
18233
18234         PR debug/43516
18235         * tree.c (MAX_INT_CACHED_PREC): Define.
18236         (nonstandard_integer_type_cache): New array.
18237         (build_nonstandard_integer_type): Cache results for precision
18238         <= MAX_INT_CACHED_PREC.
18239
18240 2010-04-07  Richard Guenther  <rguenther@suse.de>
18241
18242         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
18243         -fargument-noalias-global, -fargument-noalias-anything): Remove.
18244         * common.opt: Likewise.
18245         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
18246         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
18247         (nonoverlapping_memrefs_p): Likewise.
18248         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
18249         * opts.c (common_handle_option): Handle OPT_fargument_alias,
18250         OPT_fargument_noalias, OPT_fargument_noalias_anything and
18251         OPT_fargument_noalias_global for backward compatibility.
18252
18253 2010-04-07  Richard Guenther  <rguenther@suse.de>
18254
18255         PR tree-optimization/43270
18256         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
18257         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
18258         * tree-ssa-pre.c (phi_translate_1): Adjust.
18259         (fully_constant_expression): Split out vn_reference handling to ...
18260         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
18261         Fold reads from constant strings.
18262         (vn_reference_lookup): Handle fully constant references.
18263         (vn_reference_lookup_pieces): Likewise.
18264         * Makefile.in (expmed.o-warn): Add -Wno-error.
18265
18266 2010-04-07  Martin Jambor  <mjambor@suse.cz>
18267
18268         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
18269
18270 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
18271
18272         PR driver/41594
18273         * gcc.c: Add -static-libstdc++ to list of recognized options.
18274
18275 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18276
18277         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
18278
18279 2010-04-07  Richard Guenther  <rguenther@suse.de>
18280
18281         PR middle-end/42617
18282         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
18283         bases build simple mem attributes to retain points-to information.
18284
18285 2010-04-07  Richard Guenther  <rguenther@suse.de>
18286
18287         PR middle-end/42617
18288         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
18289         preserve points-to related information.
18290
18291 2010-04-07  Richard Guenther  <rguenther@suse.de>
18292
18293         PR middle-end/42617
18294         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
18295         discard plain indirect references.
18296         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
18297         * tree.c (tree_nop_conversion): Likewise.
18298
18299 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
18300
18301         PR debug/43628
18302         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
18303
18304 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
18305
18306         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
18307         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
18308
18309 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
18310
18311         * tree-if-conv.c: Fix indentation and comments.
18312
18313 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
18314
18315         * tree-if-conv.c: Sort static functions in topological order.
18316
18317 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
18318
18319         * tree-if-conv.c: Fix indentation and comments.
18320
18321 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18322
18323         PR middle-end/43519
18324         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
18325         lang_hooks.types.type_for_size instead of
18326         build_nonstandard_integer_type.
18327         When converting an unsigned type to signed, double its precision.
18328         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
18329         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
18330         (graphite_create_new_loop_guard): When ub + 1 wraps around,
18331         use lb <= ub.
18332
18333 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18334
18335         PR middle-end/43519
18336         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
18337         POINTER_PLUS_EXPR for pointer types.
18338
18339 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18340
18341         PR middle-end/43519
18342         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
18343         * graphite-clast-to-gimple.c: Include langhooks.h.
18344         (max_signed_precision_type): New.
18345         (max_precision_type): Takes two types as arguments.
18346         (precision_for_value): New.
18347         (precision_for_interval): New.
18348         (gcc_type_for_interval): New.
18349         (gcc_type_for_value): New.
18350         (gcc_type_for_clast_term): New.
18351         (gcc_type_for_clast_red): New.
18352         (gcc_type_for_clast_bin): New.
18353         (gcc_type_for_clast_expr): Split up into several functions.
18354         (gcc_type_for_clast_eq): Rewritten.
18355         (compute_bounds_for_level): New.
18356         (compute_type_for_level_1): New.
18357         (compute_type_for_level): New.
18358         (gcc_type_for_cloog_iv): Removed.
18359         (gcc_type_for_iv_of_clast_loop): Rewritten.
18360         (graphite_create_new_loop): Compute the lower and upper bound types
18361         with gcc_type_for_clast_expr.
18362         (graphite_create_new_loop_guard): Same.
18363         (find_cloog_iv_in_expr): Removed.
18364         (compute_cloog_iv_types_1): Removed.
18365         (compute_cloog_iv_types): Removed.
18366         (gloog): Do not call compute_cloog_iv_types.
18367         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
18368         GBB_CLOOG_IV_TYPES.
18369         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
18370         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
18371         (GBB_CLOOG_IV_TYPES): Removed.
18372
18373 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18374
18375         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
18376         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
18377         (detect_commutative_reduction): Same.
18378
18379 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18380
18381         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
18382         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
18383         argument.
18384         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
18385         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
18386         (rewrite_commutative_reductions_out_of_ssa): Same.
18387         * passes.c (execute_function_todo): Call verify_ssa for every pass
18388         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
18389         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
18390         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
18391         with an extra argument.
18392         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
18393         verify_ssa only when the extra argument is true.
18394         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
18395         with an extra argument.
18396         (tree_transform_and_unroll_loop): Same.
18397
18398 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18399
18400         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
18401         for all the passes of the LNO having LOOP_CLOSED_SSA.
18402         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
18403         * tree-loop-distribution.c (pass_loop_distribution): Same.
18404         * tree-pass.h (TODO_verify_loops): Removed.
18405         * tree-ssa-loop.c (pass_tree_loop_init): Same.
18406         (pass_lim): Same.
18407         (pass_tree_unswitch): Same.
18408         (pass_predcom): Same.
18409         (pass_vectorize): Same.
18410         (pass_linear_transform): Same.
18411         (pass_graphite_transforms): Same.
18412         (pass_iv_canon): Same.
18413         (pass_complete_unroll): Same.
18414         (pass_complete_unrolli): Same.
18415         (pass_parallelize_loops): Same.
18416         (pass_loop_prefetch): Same.
18417         (pass_iv_optimize): Same.
18418
18419 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
18420
18421         PR middle-end/32824
18422         * passes.c (init_optimization_passes): Move pass_lim before
18423         pass_copy_prop and pass_dce_loop.
18424
18425 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
18426
18427         PR target/43667
18428         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
18429         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
18430         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
18431         MULTI_* defines for 4 argument vpermil2p* builtins.
18432
18433 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
18434
18435         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
18436         * config/i386/i386.c (x86_maybe_negate_const_int): New.
18437         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
18438         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
18439         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
18440         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
18441         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
18442         Use x86_maybe_negate_const_int to output insn mnemonic.
18443         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
18444         check from instruction predicate.  Update comments.
18445         * config/i386/sync.md (sync_add<mode>): Use
18446         x86_maybe_negate_const_int to output insn mnemonic.
18447
18448 2010-04-06  Jan Hubicka  <jh@suse.cz>
18449
18450         PR tree-optimization/42906
18451         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
18452         IGNORE_SELF argument.  Set visited_control_parents for fully
18453         processed BBs.
18454         (find_obviously_necessary_stmts): Update call of
18455         mark_control_dependent_edges_necessary.
18456         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
18457
18458 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
18459
18460         * config/i386/i386.md: Remove comment about 'e' and 'E'
18461         operand modifier.
18462
18463 2010-04-06  Richard Guenther  <rguenther@suse.de>
18464
18465         PR tree-optimization/43627
18466         * tree-vrp.c (extract_range_from_unary_expr): Widenings
18467         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
18468         not varying.
18469
18470 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
18471
18472         * BASE-VER: Change to 4.6.0.
18473
18474         PR target/43638
18475         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
18476         handling.
18477
18478 2010-04-06  Richard Guenther  <rguenther@suse.de>
18479
18480         PR middle-end/43661
18481         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
18482
18483 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18484
18485         * doc/invoke.texi (Optimize Options): Document that LTO
18486         won't remove object access purely due to incompatible
18487         declarations.
18488
18489 2010-04-04  Matthias Klose  <doko@ubuntu.com>
18490
18491         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
18492         Initialize variable.
18493
18494 2010-04-03  Richard Guenther  <rguenther@suse.de>
18495
18496         PR middle-end/42509
18497         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
18498         require a non-NULL MEM_OFFSET.
18499
18500 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
18501
18502         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
18503         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
18504         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
18505         config/alpha/predicates.md, config/arm/arm.md,
18506         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
18507         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
18508         config/darwin9.h, config/darwin.c, config/darwin.h,
18509         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
18510         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
18511         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
18512         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
18513         config/mips/mips.md, config/mn10300/mn10300.c,
18514         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
18515         config/rs6000/aix.h, config/rs6000/dfp.md,
18516         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
18517         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
18518         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
18519         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
18520         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
18521         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
18522         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
18523         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
18524         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
18525         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
18526         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
18527         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
18528         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
18529         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
18530         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
18531         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
18532         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
18533         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
18534         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
18535         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
18536         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
18537         opt-functions.awk, opth-gen.awk, params.def, passes.c,
18538         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
18539         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
18540         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
18541         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
18542         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
18543         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
18544         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
18545         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
18546         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
18547         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
18548         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
18549         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
18550         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
18551         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
18552
18553 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18554
18555         PR other/43620
18556         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
18557         * aclocal.m4: Regenerate.
18558
18559 2010-04-02  Richard Guenther  <rguenther@suse.de>
18560
18561         PR tree-optimization/43629
18562         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
18563         if we have seen a constant value.
18564
18565 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
18566
18567         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
18568
18569 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
18570
18571         PR target/43469
18572         * arm.c (legitimize_tls_address): Adjust call to
18573         gen_tls_load_dot_plus_four.
18574         (arm_note_pic_base): New function.
18575         (arm_cannot_copy_insn_p): Use it.
18576         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
18577         constraint.
18578
18579 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18580
18581         PR bootstrap/43531
18582
18583         Revert:
18584         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18585
18586         * Makefile.in ($(out_object_file)): Depend on
18587         gt-$(basename $(notdir $(out_file))).h.
18588
18589 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
18590
18591         * config.gcc (lm32-*-rtems*): Add t-lm32.
18592
18593 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
18594
18595         * config.gcc: Add lm32-*-rtems*.
18596         * config/lm32/rtems.h: New file.
18597
18598 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
18599
18600         PR target/42609
18601         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
18602
18603 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
18604
18605         * dwarf2out.c (output_compilation_unit_header): For
18606         -gdwarf-4 use version 4 instead of version 3.
18607         (output_line_info): For version 4 and above emit additional
18608         maximum ops per insn header field.
18609         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
18610
18611         * dwarf2out.c (is_c_family, is_java): Remove.
18612         (lower_bound_default): New function.
18613         (add_bound_info, gen_descr_array_type_die): Use it.
18614
18615 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
18616
18617         PR debug/43325
18618         * dwarf2out.c (gen_variable_die): Allow debug info for variable
18619         re-declaration when it happens in a function.
18620
18621 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
18622
18623         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
18624         (cgraph_remove_function_insertion_hook): Same.
18625         (cgraph_call_function_insertion_hooks): Same.
18626
18627 2010-04-01  Richard Guenther  <rguenther@suse.de>
18628
18629         PR middle-end/43614
18630         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
18631         and TREE_THIS_VOLATILE.
18632         (copy_ref_info): Likewise.
18633         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
18634         * tree.c (build6_stat): Ignore side-effects of all but arg5
18635         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
18636         TARGET_MEM_REF.
18637
18638 2010-04-01  Richard Guenther  <rguenther@suse.de>
18639
18640         PR tree-optimization/43607
18641         * ipa-type-escape.c (check_call): Do not access non-existing
18642         arguments.
18643
18644 2010-04-01  Richard Guenther  <rguenther@suse.de>
18645
18646         PR middle-end/43602
18647         Revert
18648         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
18649                     Jack Howarth <howarth@bromo.med.uc.edu>
18650
18651         * tree-profile.c (tree_init_ic_make_global_vars): Make static
18652         variables TLS.
18653
18654 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18655
18656         * doc/install.texi (Prerequisites): Document libelf usability on
18657         IRIX 5/6 and Solaris 2.
18658         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
18659         Update GNU as, GNU ld requirements.
18660         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
18661         Document Sun Studio compiler download.
18662         Update and simplify as, ld recommendations.
18663         (Specific, *-*-solaris2.7): Note obsoletion, removal.
18664
18665 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18666
18667         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
18668         with_tune_32 to pentium4.
18669
18670 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
18671
18672         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
18673
18674 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18675
18676         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
18677         obsoletion, removal.
18678         Update IDO URL.
18679         Document GNU as requirement.
18680         Update configure requirements.
18681         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
18682         Recomment IRIX 6.5.18+.
18683         Document IDF/IDL requirement.
18684         Document GNU as requirement.
18685         Document GNU ld bootstrap failure.
18686         Remove freeware.sgi.com reference.
18687
18688 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18689
18690         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
18691         UNIX V4.0, V5.0 obsoletion, removal.
18692         Remove --with-gc=simple reference.
18693         Update VM requirements during bootstrap.
18694         Remove -oldas bootstrap description.
18695         Update binutils reference.
18696         Remove comparison failure note.
18697
18698 2010-03-31  Richard Guenther  <rguenther@suse.de>
18699             Zdenek Dvorak  <ook@ucw.cz>
18700             Sebastian Pop  <sebastian.pop@amd.com>
18701
18702         PR middle-end/43464
18703         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
18704         with multiple arguments.
18705         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
18706
18707 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18708
18709         * graphite-dependences.c (print_pddr): Call print_pdr with an
18710         extra argument.
18711         * graphite-poly.c (debug_pdr): Add an extra argument for the
18712         verbosity level.
18713         (print_pdr): Same.
18714         (print_pbb_domain): Same.
18715         (print_pbb): Same.
18716         (print_scop_context): Same.
18717         (print_scop): Same.
18718         (print_cloog): Same.
18719         (debug_pbb_domain): Same.
18720         (debug_pbb): Same.
18721         (print_pdrs): Same.
18722         (debug_pdrs): Same.
18723         (debug_scop_context): Same.
18724         (debug_scop): Same.
18725         (debug_cloog): Same.
18726         (print_scop_params): Same.
18727         (debug_scop_params): Same.
18728         (print_iteration_domain): Same.
18729         (print_iteration_domains): Same.
18730         (debug_iteration_domain): Same.
18731         (debug_iteration_domains): Same.
18732         (print_scattering_function): Same.
18733         (print_scattering_functions): Same.
18734         (debug_scattering_function): Same.
18735         (debug_scattering_functions): Same.
18736         * graphite-poly.h (debug_pdr): Update declaration.
18737         (print_pdr): Same.
18738         (print_pbb_domain): Same.
18739         (print_pbb): Same.
18740         (print_scop_context): Same.
18741         (print_scop): Same.
18742         (print_cloog): Same.
18743         (debug_pbb_domain): Same.
18744         (debug_pbb): Same.
18745         (print_pdrs): Same.
18746         (debug_pdrs): Same.
18747         (debug_scop_context): Same.
18748         (debug_scop): Same.
18749         (debug_cloog): Same.
18750         (print_scop_params): Same.
18751         (debug_scop_params): Same.
18752         (print_iteration_domain): Same.
18753         (print_iteration_domains): Same.
18754         (debug_iteration_domain): Same.
18755         (debug_iteration_domains): Same.
18756         (print_scattering_function): Same.
18757         (print_scattering_functions): Same.
18758         (debug_scattering_function): Same.
18759         (debug_scattering_functions): Same.
18760
18761 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18762
18763         * graphite-poly.c (print_scattering_function_1): New.
18764         (print_scattering_function): Call it.
18765         (print_scop_params): Remove spaces at the end of lines.
18766         (print_cloog): New.
18767         (debug_cloog): New.
18768         * graphite-poly.h (print_cloog): Declared.
18769         (debug_cloog): Declared.
18770
18771 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18772
18773         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
18774         in loop->header.
18775         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
18776         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
18777         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
18778         to switch between adding the IV bump in loop->latch or in loop->header.
18779
18780 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18781
18782         * graphite-poly.c (print_scattering_function): Pretty print following
18783         the scoplib format.
18784         (print_pdr): Same.
18785         (print_pbb_domain): Same.
18786         (dump_gbb_cases): Same.
18787         (dump_gbb_conditions): Same.
18788         (print_pdrs): Same.
18789         (print_pbb): Same.
18790         (print_scop_params): Same.
18791         (print_scop_context): Same.
18792         (print_scop): Same.
18793         (print_pbb_body): New.
18794         (lst_indent_to): New.
18795         (print_lst): Start new lines with a #.
18796         * graphite-poly.h (pbb_bb): New.
18797         (pbb_index): Use pbb_bb.
18798         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
18799         disjuncts.
18800         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
18801
18802 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
18803
18804         * dwarf2out.c (size_of_die): For -gdwarf-4 use
18805         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
18806         and 0 instead of 1 for dw_val_class_flag.
18807         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
18808         dw_val_class_range_list, dw_val_class_loc_list,
18809         dw_val_class_lineptr and dw_val_class_macptr, use
18810         DW_FORM_flag_present for dw_val_class_flag and
18811         DW_FORM_exprloc for dw_val_class_loc.
18812         (output_die): For -gdwarf-4 print dw_val_class_loc
18813         size as uleb128 instead of 1 or 2 bytes and don't print
18814         anything for dw_val_class_flag.
18815
18816         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
18817         instead of cselib_lookup following by tweaking locs->setting_insn.
18818
18819         PR bootstrap/43596
18820         * cselib.c (cselib_process_insn): Clear cselib_current_insn
18821         even before returning from label, setjmp call or volatile asm
18822         handling.
18823
18824 2010-03-31  Richard Guenther  <rguenther@suse.de>
18825
18826         PR middle-end/43600
18827         * cgraphunit.c (cgraph_output_in_order): Do not allocate
18828         temporary data on stack.
18829
18830 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18831
18832         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
18833         (PUSHSECTION_ASM_OP): Remove.
18834         (POPSECTION_ASM_OP): Remove.
18835         (PUSHSECTION_FORMAT): Remove.
18836         * config/sol2.h (PUSHSECTION_FORMAT): Define.
18837         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
18838         * config/sol2.c (solaris_output_init_fini): Use it.
18839
18840 2010-03-31  Jie Zhang  <jie@codesourcery.com>
18841
18842         PR 43574
18843         * opt-functions.awk (var_type_struct): Use signed char type
18844         for simple variables.
18845
18846 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18847
18848         * config/sol2.c: Include output.h.
18849         (solaris_assemble_visibility): New function.
18850         * config/t-sol2 (sol2.o): Add output.h dependency.
18851         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
18852         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
18853         Redefine.
18854
18855 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
18856
18857         PR target/43580
18858         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
18859         V2SImode or XFmode on PRE_DEC.
18860
18861         PR debug/43557
18862         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
18863         BLKmode.
18864
18865 2010-03-31  Jie Zhang  <jie@codesourcery.com>
18866
18867         PR 43562
18868         * reload.h (caller_save_initialized_p): Declare.
18869         * toplev.c (backend_init_target): Don't call
18870         init_caller_save but set caller_save_initialized_p to false.
18871         * caller-save.c (caller_save_initialized_p): Define.
18872         (init_caller_save): Check caller_save_initialized_p.
18873         * ira.c (ira): Call init_caller_save if flag_caller_saves.
18874
18875 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18876
18877         PR target/39048
18878         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
18879         and soft-fp/t-softfp to tmake_file.
18880         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
18881         (LIBGCC2_TF_CEXT): Define.
18882         (TF_SIZE): Define.
18883
18884 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
18885
18886         PR debug/42977
18887         * cselib.c (n_useless_values): Document handling of debug locs.
18888         (n_useless_debug_values, n_debug_values): New variables.
18889         (new_elt_loc_list): Don't add to debug values, keep count.
18890         (promote_debug_loc): New.
18891         (cselib_reset_table): Zero new variables.
18892         (entry_and_rtx_equal_p): Promote debug locs.
18893         (discard_useless_locs): Increment n_useless_debug_values for
18894         debug values.
18895         (remove_useless_values): Adjust n_useless_values and n_debug_values
18896         with n_useless_debug_values.
18897         (add_mem_for_addr): Promote debug locs.
18898         (cselib_lookup_mem): Likewise.
18899         (cselib_lookup_addr): Renamed to...
18900         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
18901         (cselib_log_lookup): ... this.  Turn into...
18902         (cselib_lookup_addr): ... new wrapper.
18903         (cselib_lookup_from_insn): New.
18904         (cselib_invalidate_regno): Increment n_useless_debug_values for
18905         debug values.
18906         (cselib_invalidate_mem): Likewise.
18907         (cselib_process_insn): Take n_deleted and n_debug_values into
18908         account to guard remove_useless_value call.
18909         (cselib_finish): Zero n_useless_debug_values.
18910         * cselib.h (cselib_lookup_from_insn): Declare.
18911         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
18912         (sched_analyze_2): Likewise.
18913
18914 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
18915
18916         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
18917         functions.
18918         (adjust_mems): Replace narrowing SUBREG of expression containing
18919         just PLUS, MINUS, MULT and ASHIFT of registers and constants
18920         with operations in the narrower mode.
18921
18922         PR debug/43593
18923         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
18924         regs_invalidated_by_call instead all call_used_reg_set registers.
18925
18926 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
18927
18928         PR middle-end/43430
18929         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
18930         pointer comparisons with types_compatible_p.
18931         * tree-vect-stmts.c (vectorizable_call): Same.
18932         (vectorizable_condition): Same.
18933
18934 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18935
18936         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
18937         stack check if the mask would be zero.
18938
18939 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
18940             Jack Howarth <howarth@bromo.med.uc.edu>
18941
18942         * tree-profile.c (tree_init_ic_make_global_vars): Make static
18943         variables TLS.
18944
18945 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
18946
18947         PR other/25232
18948         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
18949         and __unordtf2.
18950         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
18951         Include ___unordxf2 and ___unordtf2.
18952         * config/i386/libgcc-glibc.ver: Do not define inheritance from
18953         GCC_4.4.0 here.
18954
18955 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
18956
18957         * config/lm32/t-lm32: New file.
18958         * config.gcc: Use the above file when targetting lm32.
18959
18960 2010-03-28  Duncan Sands  <baldrick@free.fr>
18961
18962         * Makefile.in (PLUGIN_HEADERS): Add except.h.
18963
18964 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
18965
18966         PR middle-end/43431
18967         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
18968         Improve vectorization cost model diagnostic.
18969
18970 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
18971
18972         PR middle-end/43436
18973         * tree-vect-data-refs.c (vect_analyze_data_refs): When
18974         compute_data_dependences_for_loop returns false, early exit
18975         and output an extra diagnostic for the failed data reference
18976         analysis.
18977
18978 2010-03-29  Richard Guenther  <rguenther@suse.de>
18979
18980         PR tree-optimization/43560
18981         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
18982         (can_sm_ref_p): Treat stores to readonly locations as trapping.
18983
18984 2010-03-29  Jie Zhang  <jie@codesourcery.com>
18985
18986         PR 43564
18987         * toplev.c (process_options): Set optimization_default_node
18988         and optimization_current_node.
18989         * opts.c (decode_options): Don't set optimization_default_node
18990         and optimization_current_node.
18991
18992 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
18993
18994         * config/rtems.h: Abandon -qrtems_debug.
18995
18996 2010-03-28  Jan Hubicka  <jh@suse.cz>
18997
18998         PR tree-optimization/43505
18999         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
19000         map should not be copied.
19001
19002 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19003
19004         PR middle-end/41674
19005         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
19006         cdtors, set DECL_PRESERVE_P.
19007         * ipa.c (cgraph_externally_visible_p): Return true if declaration
19008         should be preseved.
19009
19010 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
19011
19012         PR tree-optimization/43528
19013         * stor-layout.c (place_field): Check that constant fits into
19014         unsigned HWI when skipping calculation of MS bitfield layout.
19015
19016 2010-03-27  Jan Hubicka  <jh@suse.cz>
19017
19018         PR middle-end/43391
19019         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
19020         notice_global_symbol work.
19021
19022 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
19023
19024         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
19025         instead of dwarf2out_decl.
19026         (struct var_loc_node): Remove section_label field.
19027         (dwarf2out_function_decl): New function.
19028         (dwarf2out_var_location): Don't set section_label field.
19029         (dwarf2out_begin_function): Don't empty decl_loc_table here.
19030
19031 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
19032
19033         PR tree-optimization/43544
19034         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
19035         First argument for builtin vectorized function hook is now a
19036         tree to be able to distinguish between machine specific and
19037         standard builtins.
19038         * targhooks.c (default_builtin_vectorized_function): Ditto.
19039         * targhooks.h (default_builtin_vectorized_function): Ditto.
19040         * target.h (struct gcc_target): Ditto.
19041         * tree-vect-stmts.c (vectorizable_function): Ditto.
19042         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
19043         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
19044         Ditto.
19045
19046 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
19047
19048         PR c/43381
19049         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
19050         nested binding iff it is a FUNCTION_DECL.
19051         (store_parm_decls_newstyle): Pass nested=true to bind for
19052         FUNCTION_DECLs amongst parameters.
19053
19054 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
19055
19056         * var-tracking.c (vt_expand_loc_callback): Don't run
19057         cselib_expand_value_rtx_cb in dummy mode if
19058         cselib_dummy_expand_value_rtx_cb returned false.
19059
19060         * var-tracking.c (emit_note_insn_var_location): For one part
19061         notes with offset 0, don't add EXPR_LIST around the location.
19062         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
19063         add_location_or_const_value_attribute): Adjust for that change.
19064
19065         PR debug/43540
19066         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
19067         into first operand and location into second.
19068         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
19069         dw_cfi_oprnd_loc for DW_CFA_expression.
19070         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
19071         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
19072         assume first argument is regnum and second argument is location.
19073
19074 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
19075
19076         PR target/42113
19077         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
19078         of scratch register to DImode.  Split to DImode comparison operator.
19079         Use SImode subreg of scratch register in the multiplication.
19080         (*cmp_sadd_sidi): Ditto.
19081         (*cmp_ssub_si): Ditto.
19082         (*cmp_ssub_sidi): Ditto.
19083
19084 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
19085
19086         PR target/43524
19087         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
19088         Remove invalid assert and wrong comment.
19089
19090 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
19091
19092         PR debug/43516
19093         * flags.h (final_insns_dump_p): New extern.
19094         * final.c (final_insns_dump_p): New variable.
19095         (rest_of_clean_state): Set it before -fdump-final-insns=
19096         dumping, clear afterwards.
19097         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
19098         MEM_ALIAS_SET on MEMs.
19099
19100 2010-03-26  David S. Miller  <davem@davemloft.net>
19101
19102         * configure.ac: Fix sparc GOTDATA_OP bug check.
19103         * configure: Rebuild.
19104
19105 2010-03-26  Alan Modra  <amodra@gmail.com>
19106
19107         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
19108
19109 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19110
19111         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
19112         TLS_SECTION_ASM_FLAG.
19113
19114 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
19115
19116         PR bootstrap/43511
19117         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
19118         Clear first_function_block_is_cold.
19119
19120         PR c/43385
19121         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
19122         argument if the argument is truth_value_p.
19123
19124 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
19125
19126         * config/rs6000/constraints.md: Update copyright year for my changes.
19127
19128         PR target/43484
19129         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
19130         used in reg+reg addressing, swap registers.
19131
19132 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
19133
19134         PR debug/43293
19135         * target.h (struct gcc_target): Add code_end hook.
19136         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
19137         if not yet defined.
19138         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
19139         * toplev.c (compile_file): Call targetm.asm_out.code_end
19140         hook before unwind info/debug info output.
19141         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
19142         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
19143         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
19144         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
19145         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
19146         * config/i386/i386.c (ix86_file_end): Renamed to...
19147         (ix86_code_end): ... this.  Make static.  Don't call
19148         file_end_indicate_exec_stack.  Emit unwind info using
19149         final_start_function/final_end_function.
19150         (darwin_x86_file_end): Remove.
19151         (TARGET_ASM_CODE_END): Define.
19152         * config/i386/i386.h (TARGET_ASM_FILE_END,
19153         NEED_INDICATE_EXEC_STACK): Don't define.
19154         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
19155         (TARGET_ASM_FILE_END): Define to darwin_file_end.
19156         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
19157         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
19158
19159         PR target/43498
19160         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
19161         at the beginning and final_end_function at the end.
19162         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
19163
19164 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19165
19166         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
19167         and Sun as TLS syntax.
19168         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
19169         * configure: Regenerate.
19170         * config.in: Regenerate.
19171         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
19172         (default_elf_asm_named_section): Use it.
19173         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
19174         (i386_output_dwarf_dtprel): Likewise.
19175         (output_addr_const_extra): Likewise.
19176         (output_pic_addr_const): Lowercase @GOTTPOFF.
19177         (output_addr_const_extra): Likewise.
19178         (output_pic_addr_const): Lowercase @GOTNTPOFF.
19179         (output_addr_const_extra): Likewise.
19180         (output_pic_addr_const): Lowercase @INDNTPOFF.
19181         (output_addr_const_extra): Likewise.
19182         (output_pic_addr_const): Lowercase @NTPOFF.
19183         (output_addr_const_extra): Likewise.
19184         (output_pic_addr_const): Lowercase @TPOFF.
19185         (output_addr_const_extra): Likewise.
19186         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
19187         (*tls_global_dynamic_64): Likewise.
19188         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
19189         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
19190
19191         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
19192         (ASM_OUTPUT_TLS_COMMON): Use it.
19193         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
19194
19195         PR target/38118
19196         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
19197         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
19198         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
19199         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
19200         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
19201         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
19202
19203 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19204
19205         * config/i386/i386.c (override_options): Don't accept
19206         -mtls-dialect=sun any longer.
19207         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
19208         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
19209         (*tls_local_dynamic_base_32_sun): Likewise.
19210         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
19211
19212 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
19213
19214         PR debug/43508
19215         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
19216         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
19217
19218         PR debug/43479
19219         * ira.c (adjust_cleared_regs): New function.
19220         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
19221
19222         PR debug/19192
19223         PR debug/43479
19224         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
19225         from gimple_block.
19226         * expr.c (expand_expr_real): Restore previous
19227         curr_insn_source_location and curr_insn_block after
19228         expand_expr_real_1 call.
19229         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
19230         instead of expand_expr_real_1.
19231
19232 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
19233
19234         PR rtl-optimization/43413
19235         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
19236         hard regs too.
19237
19238 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
19239
19240         PR target/43348
19241         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
19242         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
19243
19244 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
19245
19246         * config/i386/i386.c (ix86_target_string): Add -mfma.
19247         Fix a typo in comment.
19248
19249 2010-03-22  Mike Stump  <mikestump@comcast.net>
19250
19251         PR target/23071
19252         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
19253         Don't overly align based upon packed packed fields.
19254
19255 2010-03-22  Jason Merrill  <jason@redhat.com>
19256
19257         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
19258         Use () rather than [], and move before the element type.
19259
19260 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19261
19262         * doc/configfiles.texi (Configuration Files): Removed
19263         fixinc/Makefile*, intl/Makefile.*.
19264         * doc/makefile.texi: Fixed markup. Abstract from version
19265         control system used.
19266         (Makefile): Removed obsolete gcc/java/parse.y example.
19267         * doc/sourcebuild.texi: Likewise.
19268         (Top Level): Added config, gnattools, libdecnumber, libgcc,
19269         libgomp, libssp.  Removed fastjar.
19270         (Miscellaneous Docs): Clarify location.
19271         Added COPYING3, COPYING3.LIB.
19272         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
19273
19274 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19275
19276         PR target/38085
19277         * config/i386/i386.c (x86_function_profiler)
19278         [!NO_PROFILE_COUNTERS]: Fix typo.
19279         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
19280         instead of callq.
19281
19282 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
19283             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19284
19285         * doc/sourcebuild.texi (Test Directives): Split into six
19286         subsections, with most of the current text in new subsections
19287         Directives, Selectors, and Final Actions.
19288         (Directives): Split list of test directives into multiple
19289         subsubsections.
19290         (Selectors): Describe use and syntax of selectors.
19291         (Effective-Target Keywords): Describe all existing keywords.
19292         (Add Options): Describe features for dg-add-options.
19293         (Require Support): Describe variants of dg-require-support.
19294         (Final Actions): Describe commands to use in dg-final.
19295
19296 2010-03-22  Michael Matz  <matz@suse.de>
19297
19298         PR middle-end/43475
19299         * recog.c (validate_replace_rtx_group): Replace also in
19300         REG_EQUAL and REG_EQUIV notes.
19301
19302 2010-03-22  Richard Guenther  <rguenther@suse.de>
19303
19304         PR tree-optimization/43390
19305         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
19306         sure vector extracts are type correct.
19307
19308 2010-03-22  Richard Guenther  <rguenther@suse.de>
19309
19310         PR middle-end/40106
19311         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
19312         x * sqrt (x) even when optimizing for size if the target
19313         has native support for sqrt.
19314
19315 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
19316
19317         * varasm.c (make_decl_rtl_for_debug): Also clear
19318         flag_mudflap for the duration of make_decl_rtl call.
19319
19320         PR debug/43443
19321         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
19322         locs from preserved VALUEs.
19323
19324 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19325
19326         PR middle-end/42718
19327         * pa.md (movmemsi): Set align to one if zero.
19328         (movmemdi): Likewise.
19329
19330 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
19331
19332         PR target/42321
19333         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
19334         with their corresponding prologue pushes.
19335
19336 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
19337
19338         PR target/43156
19339         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
19340         at the begining or end.
19341         (spu_expand_epilogue): Likewise.
19342
19343 2010-03-20  Richard Guenther  <rguenther@suse.de>
19344
19345         PR rtl-optimization/43438
19346         * combine.c (make_extraction): Properly zero-/sign-extend an
19347         extraction of the low part of a CONST_INT.  Also handle
19348         CONST_DOUBLE.
19349
19350 2010-03-19  Mike Stump  <mikestump@comcast.net>
19351
19352         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
19353         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
19354         (override_options): Use SUBTARGET32_DEFAULT_CPU.
19355
19356 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
19357
19358         PR c/43211
19359         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
19360         an error.
19361
19362 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
19363
19364         PR rtl-optimization/42258
19365         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
19366         use that may match DEF.
19367
19368         PR target/40697
19369         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
19370         the cost of loading the constant rather than assuming
19371         COSTS_N_INSNS (1).
19372         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
19373         outer code is AND, do the same tests as the andsi3 expander and
19374         return COSTS_N_INSNS (1) if and is cheap.
19375
19376         * optabs.c (avoid_expensive_constant): Fix formatting.
19377
19378 2010-03-19  Michael Matz  <matz@suse.de>
19379
19380         PR c++/43116
19381         * attribs.c (decl_attributes): When rebuilding a function pointer
19382         type use the same qualifiers as the original pointer type.
19383
19384 2010-03-19  Martin Jambor  <mjambor@suse.cz>
19385
19386         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
19387         and is_gimple_ip_invariant_address.
19388
19389 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19390
19391         Revert
19392         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19393
19394         * config/arm/arm.c (arm_override_options): Turn off
19395         flag_dwarf2_cfi_asm for AAPCS variants.
19396
19397 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19398
19399         PR target/43399
19400         * config/arm/arm.c (emit_multi_reg_push): Update comments.
19401         Use PRE_MODIFY instead of PRE_DEC.
19402         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
19403         (vfp_emit_fstmd): Likewise.
19404
19405 2010-03-19  Michael Matz  <matz@suse.de>
19406
19407         PR target/43305
19408         * builtins.c (expand_builtin_interclass_mathfn,
19409         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
19410         if that fails.
19411
19412 2010-03-19  Richard Guenther  <rguenther@suse.de>
19413
19414         PR tree-optimization/43415
19415         * tree-ssa-pre.c (phi_translate): Split out worker to ...
19416         (phi_translate_1): ... this.
19417         (phi_translate): Move all caching here.  Cache all NARY
19418         and REFERENCE translations.
19419
19420 2010-03-19  David S. Miller  <davem@davemloft.net>
19421
19422         With help from Eric Botcazou.
19423         * config/sparc/sparc.c: Include dwarf2out.h.
19424         (emit_pic_helper): Delete.
19425         (pic_helper_symbol_name): Delete.
19426         (pic_helper_emitted_p): Delete.
19427         (pic_helper_needed): New.
19428         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
19429         (get_pc_thunk_name): New.
19430         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
19431         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
19432         Set pic_helper_needed to true.  Don't call emit_pic_helper.
19433         (sparc_expand_prologue): Update load_pic_register call.
19434         (sparc_output_mi_thunk): Likewise.
19435         (sparc_file_end): Emit a hidden comdat symbol for the PIC
19436         thunk if possible.  Output CFI information as needed.
19437
19438 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
19439             Jack Howarth <howarth@bromo.med.uc.edu>
19440
19441         PR target/36399
19442         * config/i386/i386.h: Fix ABI on darwin x86-32.
19443
19444 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
19445
19446         * tree.h: Declare make_decl_rtl_for_debug.
19447         * varasm.c (make_decl_rtl_for_debug): New.
19448         * dwarf2out.c (rtl_for_decl_location): Call it.
19449         * cfgexpand.c (expand_debug_expr): Call it.
19450
19451 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
19452
19453         PR bootstrap/43399
19454         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
19455         mem_mode.
19456
19457         PR bootstrap/43403
19458         * var-tracking.c (vt_init_cfa_base): Do nothing if
19459         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
19460
19461 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
19462
19463         PR debug/42873
19464         * var-tracking.c (canonicalize_vars_star): New.
19465         (dataflow_post_merge_adjust): Use it.
19466
19467 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
19468
19469         PR debug/43058
19470         * var-tracking.c (non_suitable_const): New function.
19471         (add_uses): For DEBUG_INSNs with constants, don't record any
19472         value, instead just the constant value itself.
19473         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
19474         is not VAR_LOC_UNKNOWN_P, set var to the constant.
19475         (emit_notes_in_bb): Likewise.
19476         (emit_note_insn_var_location): For onepart variables if
19477         cur_loc is a VOIDmode constant, use DECL_MODE.
19478
19479 2010-03-18  Martin Jambor  <mjambor@suse.cz>
19480
19481         PR middle-end/42450
19482         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
19483         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
19484         all non-clones.  Moved call redirection...
19485         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
19486         (cgraph_materialize_all_clones): Dispose of all
19487         combined_args_to_skip bitmaps.
19488         (verify_cgraph_node): Do not check for edges pointing to wrong
19489         nodes in inline clones.
19490         * tree-inline.c (copy_bb): Call
19491         cgraph_redirect_edge_call_stmt_to_callee.
19492         * ipa.c (cgraph_remove_unreachable_nodes): Call
19493         cgraph_node_remove_callees even when there are used clones.
19494
19495 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
19496
19497         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
19498
19499 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
19500
19501         PR target/43383
19502         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
19503         for 32bit.
19504
19505 2010-03-18  Michael Matz  <matz@suse.de>
19506
19507         PR middle-end/43419
19508         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
19509         into sqrt(x) if we need to preserve signed zeros.
19510
19511 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
19512             Eric Botcazou  <ebotcazou@adacore.com>
19513
19514         PR rtl-optimization/43360
19515         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
19516         note if we don't know its invariant status.
19517
19518 2010-03-18  Michael Matz  <matz@suse.de>
19519
19520         PR tree-optimization/43402
19521         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
19522         PHI chains of ssa names registered for update.
19523
19524 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
19525
19526         PR target/42427
19527         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
19528         non-offsettable and pre_modify update addressing.
19529         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
19530         and "2" alternatives "#".
19531         (*movdd_softfloat32): Make all alternatives "#";
19532         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
19533         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
19534         (*movdf_softfloat32): Make all alternatives "#";
19535         (movdi): Use the new DIFD mode iterator to create a common splitter
19536         for movdi, movdf and movdd patterns.
19537
19538 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
19539
19540         * common.opt (dumpdir): Remove redundant tab.
19541
19542 2010-03-17  Martin Jambor  <mjambor@suse.cz>
19543
19544         PR tree-optimization/43347
19545         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
19546         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
19547
19548 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
19549
19550         PR rtl-optimization/42216
19551         * regrename.c (create_new_chain): New function, broken out from...
19552         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
19553         appending a use to an empty chain.
19554         (build_def_use): Remove previous changes that convert OP_INOUT to
19555         OP_OUT operands; instead detect the case where an OP_INOUT operand
19556         uses a previously untracked register and create an empty chain for it.
19557
19558 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19559
19560         * doc/extend.texi (Function Attributes): Rewrite unfinished
19561         sentence in ms_abi documentation.
19562
19563 2010-03-17  Alan Modra  <amodra@gmail.com>
19564
19565         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
19566         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
19567         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
19568         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
19569
19570 2010-03-16  Richard Henderson  <rth@redhat.com>
19571
19572         PR middle-end/43365
19573         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
19574         (lower_try_finally): Save and restore eh_seq around the expansion
19575         of the try-finally.
19576
19577 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
19578
19579         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
19580         statements before splitting block.
19581
19582 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19583
19584         * doc/sourcebuild.texi (Testsuites): Fix markup.
19585         Use pathnames relative to gcc/testsuite.
19586         (Test Directives): Move description of how timeout is determined.
19587         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
19588         (C Tests): Correct gcc.misc-tests directory.
19589         Framework tests now live in gcc.test-framework.
19590
19591 2010-03-16  Richard Guenther  <rguenther@suse.de>
19592
19593         PR middle-end/43379
19594         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
19595         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
19596
19597 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
19598             Alexandre Oliva  <aoliva@redhat.com>
19599
19600         PR tree-optimization/42917
19601         * lambda-code.c (remove_iv): Skip debug statements.
19602         (lambda_loopnest_to_gcc_loopnest): Likewise.
19603         (not_interesting_stmt): Debug statements are not interesting.
19604
19605 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
19606
19607         PR debug/43051
19608         PR debug/43092
19609         * cselib.c (cselib_preserve_constants,
19610         cfa_base_preserved_val): New static variables.
19611         (preserve_only_constants): New function.
19612         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
19613         clear its REG_VALUES.  If cselib_preserve_constants, don't
19614         empty the whole hash table, but preserve there VALUEs with constants,
19615         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
19616         (cselib_preserve_cfa_base_value): New function.
19617         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
19618         (cselib_init): Change argument to int bitfield.  Set
19619         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
19620         is in it.
19621         (cselib_finish): Clear cselib_preserve_constants and
19622         cfa_base_preserved_val.
19623         * cselib.h (enum cselib_record_what): New enum.
19624         (cselib_init): Change argument to int.
19625         (cselib_preserve_cfa_base_value): New prototype.
19626         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
19627         * dse.c (dse_step1): Likewise.
19628         * cfgcleanup.c (thread_jump): Likewise.
19629         * sched-deps.c (sched_analyze): Likewise.
19630         * gcse.c (local_cprop_pass): Likewise.
19631         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
19632         If FN is non-NULL, call the callback always and whenever it returns
19633         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
19634         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
19635         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
19636         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
19637         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
19638         * var-tracking.c: Include recog.h.
19639         (bb_stack_adjust_offset): Remove.
19640         (vt_stack_adjustments): Don't call it, instead just gather the
19641         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
19642         (adjust_stack_reference): Remove.
19643         (compute_cfa_pointer): New function.
19644         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
19645         (struct adjust_mem_data): New type.
19646         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
19647         functions.
19648         (get_address_mode): New function.
19649         (replace_expr_with_values): Use it.
19650         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
19651         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
19652         (adjust_sets): Remove.
19653         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
19654         Use get_address_mode.
19655         (get_adjusted_src): Remove.
19656         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
19657         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
19658         (add_with_sets): Don't call adjust_sets.
19659         (fp_setter, vt_init_cfa_base): New functions.
19660         (vt_initialize): Change return type to bool.  Move most of pool etc.
19661         initialization to the beginning of the function from end.  Pass
19662         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
19663         If !frame_pointer_needed, call vt_stack_adjustment before mos
19664         vector is filled, call vt_init_cfa_base if argp/framep has been
19665         eliminated to sp.  If frame_pointer_needed and argp/framep has
19666         been eliminated to hard frame pointer, set
19667         hard_frame_pointer_adjustment and call vt_init_cfa_base after
19668         encountering fp setter in the prologue.  For MO_ADJUST, call
19669         log_op_type before pusing the op into mos vector, not afterwards.
19670         Call adjust_insn before cselib_process_insn/add_with_sets,
19671         call cancel_changes (0) afterwards.
19672         (variable_tracking_main_1): Adjust for vt_initialize calling
19673         vt_stack_adjustments and returning whether it succeeded or not.
19674
19675 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
19676
19677         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
19678         debug statements.
19679
19680 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
19681
19682         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
19683         has been set.
19684         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
19685         drap_reg has not been set.
19686
19687 2010-03-15  Michael Matz  <matz@suse.de>
19688
19689         PR middle-end/43300
19690         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
19691         use it to expand block copies.
19692         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
19693         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
19694         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
19695
19696 2010-03-15  Richard Guenther  <rguenther@suse.de>
19697
19698         PR tree-optimization/43367
19699         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
19700         elimination check.
19701
19702 2010-03-15  Richard Guenther  <rguenther@suse.de>
19703
19704         PR tree-optimization/43317
19705         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
19706
19707 2010-03-15  Martin Jambor  <mjambor@suse.cz>
19708
19709         PR tree-optimization/43141
19710         * tree-sra.c (create_abstract_origin): New function.
19711         (modify_function): Call create_abstract_origin.
19712
19713 2010-03-15  Chris Demetriou  <cgd@google.com>
19714
19715         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
19716         wasn't copied.
19717
19718 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19719
19720         PR middle-end/43354
19721         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
19722         call insert_out_of_ssa_copy for default definitions.
19723
19724 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19725
19726         * graphite-clast-to-gimple.c (my_long_long): Defined.
19727         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
19728         * graphite-sese-to-poly.c (my_long_long): Defined.
19729         (scop_ivs_can_be_represented): Use it.
19730
19731 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19732
19733         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
19734         graphite-max-bbs-per-function, and loop-block-tile-size.
19735         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
19736         with "maximum".
19737         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
19738
19739 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19740
19741         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
19742         forward declaration.
19743         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
19744         (add_upper_bounds_from_estimated_nit): New.
19745         (build_loop_iteration_domains): Use it.
19746
19747 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19748
19749         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
19750
19751 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19752
19753         PR middle-end/43306
19754         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
19755         should be an INTEGER_CST.  Also handle CASE_CONVERT.
19756
19757 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19758
19759         * graphite.c (graphite_initialize): To bound the number of bbs per
19760         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
19761         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
19762         * doc/invoke.texi: Document it.
19763
19764 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19765
19766         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
19767         * graphite-sese-to-poly.h (build_poly_scop): Same.
19768
19769 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19770
19771         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
19772         the number of parameters in the scop.  Use as an upper bound
19773         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
19774         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
19775         * doc/invoke.texi: Document it.
19776
19777 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
19778
19779         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
19780         * doc/c-tree.texi: Remove.
19781         * doc/generic.texi: Merge c-tree.texi here.
19782         * doc/gccint.texi (Trees): Remove menu entry.
19783         (c-tree.texi): Remove @include.
19784         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
19785         * doc/languages.texi (Reading RTL): Ditto.
19786
19787 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
19788
19789         PR target/42869
19790         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
19791
19792 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
19793
19794         PR middle-end/42431
19795         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
19796         code added to work around reload clobbering CONST insns.
19797
19798 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
19799
19800         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
19801         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
19802         (cselib_preserve_only_values): Remove retain argument, don't
19803         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
19804         * cselib.h (cselib_preserve_only_values): Remove retain argument.
19805         * var-tracking.c (micro_operation): Move insn field before union.
19806         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
19807         (struct variable_tracking_info_def): Remove n_mos field, change
19808         mos into a vector of micro_operations.
19809         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
19810         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
19811         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
19812         changing into a vector.
19813         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
19814         come before all other uops generated by add_stores.
19815         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
19816         argument removal.
19817         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
19818         a vector.  Run just one pass over the bbs instead of separate counting
19819         and computation phase.
19820         (vt_finalize): Free VTI (bb)->mos vector instead of array.
19821
19822         PR debug/43329
19823         * tree-inline.c (remap_decls): Put old_var rather than origin_var
19824         into *nonlocalized_list vector.
19825         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
19826         even if origin is non-NULL.
19827         (gen_variable_die): Likewise.
19828         (process_scope_var): Don't change origin.
19829         (gen_decl_die): Likewise.
19830         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
19831         before adding new edges instead of after it, fix moving over
19832         debug stmts.
19833
19834 2010-03-11  David S. Miller  <davem@davemloft.net>
19835
19836         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
19837         of four.
19838         * configure: Rebuild.
19839
19840 2010-03-11  Martin Jambor  <mjambor@suse.cz>
19841
19842         PR tree-optimization/43257
19843         * tree.c (assign_assembler_name_if_neeeded): New function.
19844         (free_lang_data_in_cgraph): Assembler name assignment moved to the
19845         above new function.
19846         * tree.h (assign_assembler_name_if_neeeded): Declare.
19847         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
19848         the function if needed.
19849
19850 2010-03-11  Chris Demetriou  <cgd@google.com>
19851
19852         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
19853         include/stdint-gcc.h, and include/stdint.h world-readable.
19854
19855 2010-03-11  Richard Guenther  <rguenther@suse.de>
19856
19857         PR tree-optimization/43255
19858         * tree-vrp.c (process_assert_insertions_for): Do not insert
19859         asserts for trivial conditions.
19860
19861 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19862
19863         PR tree-optimization/43280
19864         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
19865         generation.  Move calculation of size out of the if branch.
19866         (find_bswap): Modify compare number generation.
19867
19868 2010-03-11  Richard Guenther  <rguenther@suse.de>
19869
19870         PR lto/43200
19871         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
19872         (input_gimple_stmt): Fixup handled component types during
19873         operand read.  Also fix up decls in ADDR_EXPRs.
19874
19875 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
19876
19877         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
19878         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
19879
19880 2010-03-10  Jan Hubicka  <jh@suse.cz>
19881
19882         PR c/43288
19883         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
19884         * varasm.c (get_variable_section): Don't do that here...
19885         (make_decl_rtl): ... and here.
19886         (do_assemble_alias): Produce decl RTL.
19887         (assemble_alias): Likewise.
19888
19889 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
19890
19891         PR debug/43290
19892         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
19893         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
19894         of fde->vdrap_reg.
19895         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
19896         (based_loc_descr): Only express drap or vdrap regno based expressions
19897         using DW_OP_fbreg when not optimizing.
19898         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
19899         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
19900         REG_CFA_SET_VDRAP note.
19901
19902 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
19903
19904         PR tree-optimization/43236
19905         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
19906         error in calculation of base address in reverse iteration case.
19907         (generate_builtin): Take number of latch executions if the statement
19908         is in the latch.
19909
19910 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
19911
19912         PR middle-end/42859
19913         * tree-eh.c: Include pointer-set.h.
19914         (lower_eh_dispatch): Filter out duplicate case labels and
19915         remove the unneeded edge when the label is unused.  Return
19916         true when some edges are removed.
19917         (execute_lower_eh_dispatch): When any lowering resulted in
19918         removing an edge, also delete unreachable blocks.
19919
19920 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
19921
19922         PR bootstrap/43287
19923         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
19924         UNSPEC_MACHOPIC_OFFSET.
19925
19926 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
19927
19928         PR target/43294
19929         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
19930         (m68k_delegitimize_address): New function.
19931
19932 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
19933
19934         PR debug/43299
19935         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
19936
19937         PR debug/43299
19938         * var-tracking.c (adjust_sets): New function.
19939         (count_with_sets, add_with_sets): Use it.
19940         (get_adjusted_src): New inline function.
19941         (add_stores): Use it.
19942
19943         PR debug/43304
19944         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
19945         call cselib_dummy_expand_value_rtx_cb instead of
19946         cselib_expand_value_rtx_cb.
19947
19948         PR debug/43293
19949         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
19950         * config/i386/i386.c: Include debug.h and dwarf2out.h.
19951         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
19952         and .cfi_endproc around the pic thunks.
19953         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
19954         all queued unwind info register saves are saved before the call.
19955         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
19956         considered as sp-=4 for unwind info and the pop as sp+=4 which
19957         also clobbers dest, but doesn't actually restore it.
19958
19959         PR debug/43290
19960         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
19961         RTX_FRAME_RELATED_P.
19962
19963 2010-03-09  Jie Zhang  <jie@codesourcery.com>
19964
19965         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
19966         whitespaces in output template.
19967
19968 2010-03-09  Jie Zhang  <jie@codesourcery.com>
19969
19970         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
19971         out array boundary.
19972
19973 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
19974
19975         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
19976         builtins.exp in a separate job.
19977
19978 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19979
19980         * graphite-sese-to-poly.c (add_param_constraints): Use
19981         lower_bound_in_type and upper_bound_in_type.
19982
19983 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19984
19985         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
19986         instead of unsigned_type_node.
19987
19988 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19989             Reza Yazdani  <reza.yazdani@amd.com>
19990
19991         PR middle-end/43065
19992         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
19993         on pointer type parameters.
19994
19995 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
19996
19997         PR middle-end/42644
19998         PR middle-end/42130
19999         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
20000         handle conversions from pointer to integers.
20001         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
20002         induction variable, to be able to work with code generated by CLooG.
20003         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
20004         (build_poly_scop): Bail out if we cannot codegen a loop.
20005
20006 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
20007
20008         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
20009         code generation with gloog_error.
20010
20011 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20012
20013         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
20014         Call fold_convert on all the returned values.
20015         (expand_scalar_variables_expr): Pass to
20016         expand_scalar_variables_ssa_name the type of the resulting expression.
20017
20018 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20019
20020         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
20021         ppl_min_for_le_pointset.
20022         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
20023         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
20024
20025 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20026
20027         * graphite-dependences.c (map_into_dep_poly): Removed.
20028         (dependence_polyhedron_1): Use combine_context_id_scat.
20029
20030 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20031
20032         * graphite-poly.h (struct poly_scattering): Add layout documentation.
20033         (struct poly_bb): Same.
20034         (combine_context_id_scat): New.
20035
20036 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20037
20038         PR middle-end/42326
20039         * sese.c (name_defined_in_loop_p): Return false for default
20040         definitions.
20041
20042 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20043
20044         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
20045         and clean up the logic.
20046
20047 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20048
20049         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
20050         early return.
20051
20052 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
20053
20054         * var-tracking.c (remove_cselib_value_chains): Define only for
20055         ENABLE_CHECKING.
20056         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
20057         delete_slot_part, emit_notes_for_differences_1): Don't call
20058         remove_cselib_value_chains here.
20059         (set_slot_part, emit_notes_for_differences_2): Don't call
20060         add_cselib_value_chains here.
20061         (preserved_values): New vector.
20062         (preserve_value): New function.
20063         (add_uses, add_stores, vt_add_function_parameters): Use it
20064         instead of cselib_preserve_value.
20065         (changed_values_stack): New vector.
20066         (check_changed_vars_0): New function.
20067         (check_changed_vars_1, check_changed_vars_2): Use it.
20068         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
20069         changed_values_stack VALUEs.
20070         (vt_emit_notes): For all preserved_values call
20071         add_cselib_value_chains.  If ENABLE_CHECKING call
20072         remove_cselib_value_chains before verifying value_chains is empty.
20073         Initialize and free changed_values_stack.
20074         (vt_initialize): Initialize preserved_values.
20075         (vt_finalize): Free preserved_values.
20076
20077 2010-03-08  Richard Guenther  <rguenther@suse.de>
20078
20079         PR tree-optimization/43269
20080         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
20081         region detection.
20082
20083 2010-03-08  Martin Jambor  <mjambor@suse.cz>
20084
20085         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
20086         (ipa_is_param_called): Removed.
20087         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
20088         (ipa_print_node_params): Do not print the called flag.
20089         (ipa_write_node_info): Do not stream the called flag.
20090         (ipa_read_node_info): Likewise.
20091
20092 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
20093
20094         PR debug/43176
20095         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
20096         * cselib.c (struct expand_value_data): Add dummy field.
20097         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
20098         dummy to false.
20099         (cselib_dummy_expand_value_rtx_cb): New function.
20100         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
20101         any rtl.
20102         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
20103         * var-tracking.c: Include pointer-set.h.
20104         (variable): Change n_var_parts to char from int.  Add
20105         cur_loc_changed and in_changed_variables fields.
20106         (variable_canonicalize): Remove.
20107         (shared_var_p): New inline function.
20108         (unshare_variable): Maintain cur_loc_changed and
20109         in_changed_variables fields.  If var was in changed_variables,
20110         replace it there with new_var.  Just copy cur_loc instead of
20111         resetting it to something else.
20112         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
20113         (dataflow_set_union): Don't call variable_canonicalize.
20114         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
20115         of their DEBUG_EXPR_TREE_DECLs.
20116         (canonicalize_loc_order_check): Verify that cur_loc is NULL
20117         and in_changed_variables and cur_loc_changed is false.
20118         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
20119         and cur_loc_changed.  Don't update cur_loc here.
20120         (variable_merge_over_src): Don't call variable_canonicalize.
20121         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
20122         removing loc that is equal to cur_loc, clear cur_loc,
20123         set cur_loc_changed and ensure variable_was_changed is called.
20124         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
20125         compare pointers in cur_loc check, if it is equal to loc,
20126         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
20127         (variable_different_p): Remove compare_current_location argument,
20128         don't compare cur_loc.
20129         (dataflow_set_different_1): Adjust variable_different_p caller.
20130         (variable_was_changed): If dv had some var in changed_variables
20131         already, reset in_changed_variables flag for it and propagate
20132         cur_loc_changed over to the new variable.  On empty var
20133         always set cur_loc_changed.  Set in_changed_variables on whatever
20134         var is added to changed_variables.
20135         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
20136         Use shared_var_p.  When removing loc that is equal to cur_loc,
20137         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
20138         end, don't set it to something else, just call variable_was_changed.
20139         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
20140         loc being removed, clear cur_loc and set cur_loc_changed.
20141         Set cur_loc_changed if all locations have been removed.
20142         (struct expand_loc_callback_data): New type.
20143         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
20144         allocated.  Always create SUBREGs if simplify_subreg failed.
20145         Prefer to use cur_loc, when that fails and still in
20146         changed_variables (and seen first time) recompute it.  Set
20147         cur_loc_changed of variables which had to change cur_loc and
20148         compute elcd->cur_loc_changed if any of the subexpressions used
20149         had to change cur_loc.
20150         (vt_expand_loc): Adjust to pass arguments in
20151         expand_loc_callback_data structure.
20152         (vt_expand_loc_dummy): New function.
20153         (emitted_notes): New variable.
20154         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
20155         that weren't used for any other decl in current
20156         emit_notes_for_changes call call vt_expand_loc_dummy to update
20157         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
20158         first loc_chain location if NULL before.  Always use just
20159         cur_loc instead of first loc_chain location.  When cur_loc_changed
20160         is false, when not --enable-checking=rtl just don't emit any note.
20161         When rtl checking, compute the note and assert it is the same
20162         as previous note.  Clear cur_loc_changed and in_changed_variables
20163         at the end before removing from changed_variables.
20164         (check_changed_vars_3): New function.
20165         (emit_notes_for_changes): Traverse changed_vars to call
20166         check_changed_vars_3 on each changed var.
20167         (emit_notes_for_differences_1): Clear cur_loc_changed and
20168         in_changed_variables.  Recompute cur_loc of new_var.
20169         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
20170         (vt_emit_notes): Initialize and destroy emitted_notes.
20171
20172 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
20173
20174         PR rtl-optimization/42220
20175         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
20176         Use verify_reg_tracked to determine if we should use OP_OUT rather
20177         than OP_INOUT.
20178         (build_def_use): If we see an in-out operand for a register that we
20179         know nothing about, treat is an output if possible, fail the block if
20180         not.
20181
20182 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
20183
20184         PR debug/42897
20185         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
20186         permanently.
20187
20188 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
20189
20190         PR debug/42897
20191         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
20192         uses of relevant DEFs that are dead outside the loop too.
20193
20194 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
20195
20196         * var-tracking.c (dataflow_set_merge): Swap src and src2.
20197         Reverted:
20198         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
20199         PR debug/41371
20200         * var-tracking.c (values_to_unmark): New variable.
20201         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
20202         values_to_unmark vector.  Moved body to...
20203         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
20204         instead queue it into values_to_unmark vector.
20205         (vt_find_locations): Free values_to_unmark vector.
20206
20207 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
20208
20209         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
20210         (site.exp): Export them when plugins are enabled.
20211
20212 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
20213
20214         PR middle-end/42326
20215         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
20216         that contain scevs.
20217         (chrec_fold_multiply): Same.
20218
20219 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
20220
20221         PR c/43248
20222         * c-decl.c (build_compound_literal): Return early if init is
20223         an error_mark_node.
20224
20225 2010-03-04  Martin Jambor  <mjambor@suse.cz>
20226
20227         PR tree-optimization/43164
20228         PR tree-optimization/43191
20229         * tree-sra.c (type_consists_of_records_p): Reject records with
20230         zero-size bit-fields at the end.
20231
20232 2010-03-04  Mike Stump  <mikestump@comcast.net>
20233
20234         * Makefile.in (TAGS): Remove *.y.
20235
20236 2010-03-04  Richard Guenther  <rguenther@suse.de>
20237
20238         PR tree-optimization/40761
20239         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
20240         in reverse order.
20241         (my_rev_post_order_compute): New function.
20242         (init_pre): Call it.
20243
20244 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
20245
20246         PR middle-end/43209
20247         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
20248         decrease the cost of an IV candidate when the cost is infinite.
20249
20250 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20251
20252         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
20253         Use '3DNow!' for the extension of that name, ensure normal space
20254         after the string.
20255         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
20256
20257 2010-03-03  Jeff Law  <law@redhat.com>
20258
20259         * PR middle-end/32693
20260         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
20261         than gen_rtx_SUBREG.
20262         (extract_bit_field_1): Likewise.
20263
20264 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
20265
20266         * doc/sourcebuild.texi (Test directives): Document that arguments
20267         include-opts and exclude-opts are now optional for dg-skip-if,
20268         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
20269
20270 2010-03-03  Jason Merrill  <jason@redhat.com>
20271
20272         PR c++/12909
20273         * cgraph.h (varpool_node): Add extra_name field.
20274         * varpool.c (varpool_extra_name_alias): New.
20275         (varpool_assemble_decl): Emit extra name aliases.
20276         (varpool_mark_needed_node): Look past an extra name alias.
20277         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
20278         * lto-streamer-in.c (lto_input_tree): Read it.
20279         * lto-streamer-out.c (output_unreferenced_globals): Write it.
20280
20281 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
20282
20283         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
20284         (sparc*-*-solaris2*): ...this.
20285
20286 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
20287
20288         PR debug/43229
20289         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
20290         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
20291         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
20292         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
20293
20294         PR debug/43237
20295         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
20296         fallthrough to default handling, just with want_address 0 instead of 2.
20297         For single element lists, add_AT_loc directly, otherwise create an
20298         artificial variable DIE and stick location list to it.
20299
20300         PR debug/43177
20301         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
20302         (VAL_EXPR_HAS_REVERSE): Define.
20303         (reverse_op): New function.
20304         (add_stores): For reversible operations add an extra MO_VAL_USE.
20305
20306 2010-03-02  Jason Merrill  <jason@redhat.com>
20307
20308         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
20309
20310 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
20311
20312         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
20313         (sparc64-*-linux*): Likewise.
20314         (sparc64-*-solaris2*): Include assembler files before linker ones.
20315         (sparc-*-solaris2*): Simplify and reorder to match previous case.
20316         * config/sparc/gas.h: Delete.
20317         * config/sparc/sol2-64.h: Add copyright notice.
20318         * config/sparc/sol2-gas-bi.h: Likewise.
20319         * config/sparc/sol2-gld.h: Likewise.
20320         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
20321         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
20322         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
20323         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
20324         (sparc_elf_asm_named_section): Rename into...
20325         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
20326
20327 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
20328
20329         * config/alpha/alpha.c (override_options): Fix -mtune error message.
20330
20331 2010-03-02  Jeff Law  <law@redhat.com>
20332
20333         PR middle-end/42431
20334         * reload1.c (rtx_p, substitute_stack): Declare.
20335         (substitute): Record addresses of changed rtxs.
20336         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
20337         Restore the original rtx when complete.
20338         (reload): Free subsitute_stack when complete.
20339
20340 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
20341
20342         * doc/gccint.texi (menu): Add Testsuites as a chapter.
20343         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
20344         new chapter.
20345         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
20346         LTO Testing, gcov Testing, profopt Testing, compat Testing,
20347         Torture Tests): Change from subsection to section.
20348
20349 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
20350             Steven Bosscher  <steven@gcc.gnu.org>
20351
20352         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
20353         instead of bb.
20354
20355 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
20356
20357         PR middle-end/42640
20358         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
20359         the assignment from the new induction variable to the assignment
20360         of the value from the original loop PHI function.
20361
20362 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
20363             Daniel Jacobowitz  <dan@codesourcery.com>
20364
20365         * doc/sourcebuild.texi (Test directives): Clarify options to
20366         dg-skip-if.
20367
20368 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20369
20370         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
20371         Disable cfi directives unless GCC and gas agree on using read-only
20372         .eh_frame sections for 64-bit.
20373         * configure: Regenerate.
20374
20375 2010-03-01  Richard Guenther  <rguenther@suse.de>
20376
20377         PR tree-optimization/43220
20378         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
20379         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
20380
20381 2010-03-01  Richard Guenther  <rguenther@suse.de>
20382             Martin Jambor  <mjambor@suse.cz>
20383
20384         PR middle-end/41250
20385         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
20386         gimplified parameters.
20387
20388 2010-03-01  Christian Bruel  <christian.bruel@st.com>
20389
20390         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
20391
20392 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
20393
20394         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
20395
20396 2010-03-01  Richard Guenther  <rguenther@suse.de>
20397
20398         PR middle-end/43213
20399         * expr.c (expand_assignment): Use the alias-oracle to tell
20400         if the rhs aliases the result decl.
20401
20402 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20403
20404         PR pch/14940
20405         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
20406         to sol_gt_pch_get_address.
20407         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
20408         64-bit, SPARC and x86.
20409         (sol_gt_pch_get_address): New function.
20410
20411 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
20412
20413         * toplev.h (inform_n, error_n): Declare.
20414         * diagnostic.c (inform_n, error_n): New function.
20415
20416 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
20417
20418         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
20419         has no rtl yet when processing local_decls, queue it and recheck
20420         if deferred stack allocation hasn't assigned it rtl.
20421
20422 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
20423
20424         * config/sh/sh.c (unspec_bbr_uid): New.
20425         (gen_block_redirect): Use it instead of INSN_UID.
20426         (gen_far_branch): Likewise.
20427
20428 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
20429
20430         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
20431         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
20432
20433 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20434
20435         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
20436         (Warning Options): -Wno-conversion-null is valid for
20437         Objective-C++ as well.
20438         * doc/tm.texi (Named Address Spaces): Likewise.
20439         * doc/plugins.texi (Plugins): Replace TABs with spaces.
20440         * doc/tree-ssa.texi (Tree SSA): Likewise.
20441
20442 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
20443
20444         PR bootstrap/43202
20445         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
20446         by default.  Don't set the default arch for
20447         i[34567]86-*-darwin*|x86_64-*-darwin*.
20448
20449 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
20450
20451         PR bootstrap/43202
20452         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
20453         default.  Set the default 32bit/64bit archs with $with_arch
20454         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
20455
20456 2010-02-27  Richard Guenther  <rguenther@suse.de>
20457
20458         PR tree-optimization/43186
20459         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
20460         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
20461         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
20462         unroller iterations.
20463
20464 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
20465
20466         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
20467         required and i[34567]86-*-* targets don't support 64bit ISA.
20468
20469 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
20470
20471         PR ada/43096
20472         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
20473         the same alias set.
20474
20475 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
20476
20477         * config.gcc: Set the default arch at least to Prescott for
20478         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
20479         if SSE math is enabled.
20480
20481 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20482
20483         * diagnostic.c (diagnostic_initialize): Update.
20484         (diagnostic_report_diagnostic): Test inhibit_notes_p for
20485         informative notes.
20486         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
20487         (diagnostic_inhibit_notes): New.
20488         * toplev.c (process_options): inhibit notes with -fcompare-debug.
20489
20490 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20491
20492         PR c/20631
20493         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
20494         * doc/standards.texi: Likewise.
20495         * doc/extend.texi: Likewise.
20496         * doc/trouble.texi: Likewise.
20497         * doc/cppopts.texi: Likewise.
20498         * doc/install.texi: Likewise.
20499         * c.opt (std=c90,std=gnu90): New options.
20500         * c-opts.c (c_common_handle_option): Handle them.
20501
20502 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20503
20504         PR c/24577
20505         * c-decl.c (undeclared_variable): Use an informative note.
20506
20507 2010-02-26  Richard Guenther  <rguenther@suse.de>
20508
20509         PR tree-optimization/43186
20510         * gimple.h (gimple_fold): Remove.
20511         * gimple.c (gimple_fold): Remove.  Inline into single user ...
20512         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
20513         Try harder for conditions.
20514
20515 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
20516
20517         PR debug/43190
20518         * function.c (used_types_insert): Don't skip through named pointer
20519         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
20520         and it is different from the main variant's type.
20521
20522 2010-02-26  Nick Clifton  <nickc@redhat.com>
20523
20524         * config/rx/rx.md (sminsi3): Remove bogus alternative.
20525
20526 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
20527
20528         * config.gcc: Support --with-fpmath=sse for x86.
20529
20530         * config/i386/ssemath.h: New.
20531
20532         * doc/install.texi (--with-fpmath=sse): Documented.
20533
20534 2010-02-26  Richard Guenther  <rguenther@suse.de>
20535
20536         PR tree-optimization/43188
20537         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
20538         vector types of over-aligned element type.
20539
20540 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
20541
20542         PR target/43175
20543         * config/i386/i386.c (expand_vec_perm_blend): Use correct
20544         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
20545
20546 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
20547
20548         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
20549
20550 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
20551
20552         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
20553         * var-tracking.c: Include diagnostic.h.
20554         (debug_dv): New function.
20555         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
20556
20557         PR debug/43160
20558         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
20559         (add_value_chain, add_value_chains, remove_value_chain,
20560         remove_value_chains): Handle DEBUG_EXPRs.
20561         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
20562
20563         PR debug/43161
20564         * regcprop.c (struct queued_debug_insn_change): New type.
20565         (struct value_data_entry): Add debug_insn_changes field.
20566         (struct value_data): Add n_debug_insn_changes field.
20567         (debug_insn_changes_pool): New variable.
20568         (free_debug_insn_changes, apply_debug_insn_changes,
20569         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
20570         (kill_value_one_regno): Call free_debug_insn_changes if needed.
20571         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
20572         fields.
20573         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
20574         changes for them.
20575         (copyprop_hardreg_forward_1): Don't call apply_change_group for
20576         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
20577         changes, call cprop_find_used_regs via note_stores.
20578         (copyprop_hardreg_forward): When copying vd from predecessor
20579         which has any queued DEBUG_INSN changes, make sure the pointers are
20580         cleared.  At the end call df_analyze and then if there are any
20581         DEBUG_INSN changes queued at the end of some basic block for still
20582         live registers, apply them.
20583         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
20584
20585 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
20586
20587         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
20588         (arm*-*-*): Ditto.
20589
20590 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
20591
20592         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
20593         targets.  Set the default with_cpu/with_arch from arch/cpu.
20594         Allow x86-64 and native for with_cpu/with_arch.
20595
20596 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
20597
20598         * ebitmap.c: Change calls to verify_popcount with calls to
20599         sbitmap_verify_popcount.
20600         (ebitmap_clear_bit): Fixed map->cacheindex test and
20601         map>cache update when bit clearing results in an empty
20602         element.
20603
20604 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
20605
20606         PR target/43154
20607         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
20608         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
20609         and support both V2DF and V2DI modes.
20610         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
20611         support both V2DF and V2DI modes.
20612         (general): Delete trailing whitespace from a few patterns.
20613
20614         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20615         V2DF/V2DI interleave high/low builtins.
20616
20617         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
20618         new VSX builtins.
20619
20620         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
20621         interleave high/low functions.
20622
20623 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
20624
20625         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
20626         #pragma extern_prefix.
20627
20628 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
20629
20630         PR debug/43166
20631         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
20632         BLKmode, assert op0 is a MEM and just adjust its mode.
20633
20634         PR debug/43165
20635         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
20636         if bitpos isn't multiple of mode's bitsize.
20637
20638 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20639
20640         * c.opt (-ftemplate-depth=): New.
20641         (-ftemplate-depth-): Deprecate.
20642         * optc-gen.awk: Handle -ftemplate-depth=.
20643         * opth-gen.awk: Likewise.
20644         * c-opts.c (c_common_handle_option): Likewise.
20645         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
20646
20647 2010-02-24  Jason Merrill  <jason@redhat.com>
20648
20649         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
20650
20651 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20652
20653         * cfg.c (alloc_aux_for_block): Remove inline.
20654         (alloc_aux_for_edge): Likewise.
20655
20656 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20657
20658         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
20659
20660 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20661
20662         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
20663         * config/i386/sol2-gas.h: New file.
20664         * config.gcc (i[34567]86-*-solaris2*): Use it.
20665
20666 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20667
20668         PR c/43128
20669         * c-typeck.c (ep_convert_and_check): New.
20670         (build_conditional_expr): Use it.
20671         (build_binary_op): Likewise.
20672
20673 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
20674
20675         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
20676
20677         PR debug/43150
20678         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
20679         bounds even for -O+.
20680         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
20681         expr needs to have DECL_NAME set.
20682
20683 2010-02-24  Nick Clifton  <nickc@redhat.com>
20684
20685         * config/mep/mep.c: Include gimple.h.
20686         (mep_function_uses_sp): Delete unused function.
20687         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
20688         parameters.  Use unsigned integers to count args.  Return a
20689         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
20690
20691 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
20692
20693         PR target/43107
20694         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
20695         greater or equal to nelt instead of 2 * nelt.
20696         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
20697         with nelt - 1.
20698
20699 2010-02-23  Jason Merrill  <jason@redhat.com>
20700
20701         PR debug/42800
20702         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
20703         in cfun->local_decls even if they have register types.
20704
20705         PR c++/42837
20706         * stor-layout.c (place_field): Don't warn about unnecessary
20707         DECL_PACKED if the type is packed.
20708
20709 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
20710
20711         PR target/43139
20712         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
20713         GOTOFF relocs, even when the base reg isn't pic pointer.
20714
20715 2010-02-23  Michael Matz  <matz@suse.de>
20716
20717         PR debug/43077
20718         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
20719         (expand_gimple_basic_block): Generate and use debug temps if there
20720         are debug uses left after the last real use of TERed ssa names.
20721         Unlink debug immediate uses when they are expanded.
20722
20723 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20724
20725         PR 43123
20726         * config/i386/i386.c (override_options): Reorganise to provide
20727         better error messages.
20728
20729 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
20730
20731         PR middle-end/43083
20732         * graphite-scop-detection.c (create_single_exit_edge): Move
20733         the call to find_single_exit_edge to....
20734         (create_sese_edges): ...here.  Don't handle multiple edges
20735         exiting the function.
20736         (build_graphite_scops): Don't handle multiple edges
20737         exiting the function.
20738
20739 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
20740
20741         PR middle-end/43097
20742         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
20743         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
20744
20745 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
20746
20747         PR middle-end/43026
20748         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
20749
20750 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20751
20752         PR c++/43126
20753         * c-typeck.c (convert_arguments): Print declaration location.
20754         * c-common.c (validate_nargs): Rename as
20755         builtin_function_validate_nargs.
20756         (check_builtin_function_arguments): Update.
20757
20758 2010-02-22  Richard Guenther  <rguenther@suse.de>
20759
20760         PR lto/43045
20761         * tree-inline.c (declare_return_variable): Use the type of
20762         the call stmt lhs if available.
20763
20764 2010-02-22  Duncan Sands  <baldrick@free.fr>
20765
20766         * passes.c (register_pass): Always consider all pass lists when
20767         ref_pass_instance_number is zero.
20768
20769 2010-02-22  Richard Guenther  <rguenther@suse.de>
20770
20771         PR tree-optimization/42749
20772         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
20773         parameter.  Do arithmetic in the original type.
20774         (update_accumulator_with_ops): Likewise.
20775         (adjust_accumulator_values): Adjust.
20776
20777 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20778
20779         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
20780         (QI to BLKmode splitter): New splitter.
20781
20782 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
20783
20784         * config/i386/i386.c (initial_ix86_tune_features): Turn on
20785         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
20786
20787 2010-02-22  Richard Guenther  <rguenther@suse.de>
20788
20789         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
20790
20791 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
20792
20793         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
20794         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
20795         ($(T)crti.o, $(T)crtn.o): Remove rules.
20796
20797 2010-02-21  Tobias Burnus  <burnus@net-b.de>
20798
20799         PR fortran/35259
20800         * doc/invoke.texi (-fassociative-math): Document that this
20801         option is automatically enabled for Fortran.
20802
20803 2010-02-20  David S. Miller  <davem@davemloft.net>
20804
20805         * configure.ac: Test if linker and assembler properly support
20806         GOTDATA_OP relocations.
20807         * configure: Rebuild.
20808         * config.in: Likewise.
20809         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
20810         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
20811         (movsi_high_pic): Likewise.
20812         (movdi_lo_sum_pic): Likewise.
20813         (movdi_high_pic): Likewise.
20814         (movsi_pic_gotdata_op): New pattern.
20815         (movdi_pic_gotdata_op): Likewise.
20816         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
20817         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
20818
20819 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
20820
20821         PR target/43067
20822         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
20823         attribute to ssemul.
20824         (xop_mulv2div2di3_high): Ditto.
20825
20826 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20827
20828         PR c++/35669
20829         * c.opt (Wconversion-null): New option.
20830         * doc/invoke.texi (Wconversion-null): Document.
20831
20832 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20833
20834         * common.opt (Wlarger-than-): Add Undocumented.
20835
20836 2010-02-19  Mike Stump  <mikestump@comcast.net>
20837
20838         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
20839
20840 2010-02-19  Jason Merrill  <jason@redhat.com>
20841
20842         PR target/40332
20843         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
20844         * configure: Likewise.
20845
20846 2010-02-20  Alan Modra  <amodra@gmail.com>
20847
20848         PR middle-end/42344
20849         * cgraph.h (cgraph_make_decl_local): Declare.
20850         * cgraph.c (cgraph_make_decl_local): New function.
20851         (cgraph_make_node_local): Use it.
20852         * cgraphunit.c (cgraph_function_versioning): Likewise.
20853         * ipa.c (function_and_variable_visibility): Likewise.
20854
20855 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20856
20857         PR bootstrap/43121
20858         * except.c (sjlj_emit_function_enter): Don't call
20859         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
20860         directly.
20861         * rtl.h (add_reg_br_prob_note): Remove prototype.
20862
20863 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20864
20865         PR 41779
20866         * c-common.c (conversion_warning): Remove widening conversions
20867         before checking the conversion of integers to reals.
20868
20869 2010-02-19  Mike Stump  <mikestump@comcast.net>
20870
20871         PR middle-end/43125
20872         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
20873
20874         PR objc/43061
20875         * cgraphunit.c (process_function_and_variable_attributes): Check
20876         DECL_PRESERVE_P instead of looking up attribute "used".
20877         * ipa-pure-const.c (check_decl): Likewise.
20878         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
20879         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
20880         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
20881         instead of attribute "used".
20882         * config/sol2-c.c (solaris_pragma_init): Likewise.
20883         (solaris_pragma_fini): Likewise.
20884
20885 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20886
20887         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
20888         Use XCNEW instead of xcalloc.
20889         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
20890         XNEW instead of xmalloc.
20891         (get_fields): Use XNEWVEC instead of xmalloc.
20892
20893         PR debug/43084
20894         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
20895         populate vars array.
20896         (create_new_general_access): For debug stmts just reset value.
20897         (get_stmt_accesses): For accesses within debug stmts just record them
20898         using add_access_to_acc_sites instead of preventing the peeling or
20899         counting them as accesses.
20900
20901         PR middle-end/42233
20902         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
20903
20904 2010-02-19  Richard Guenther  <rguenther@suse.de>
20905
20906         PR tree-optimization/42916
20907         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
20908         instructions.
20909
20910 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
20911
20912         * configure.ac: Replace all uses of changequote in macro arguments
20913         with proper quoting.
20914
20915 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20916
20917         PR middle-end/42233
20918         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
20919
20920 2010-02-19  Richard Guenther  <rguenther@suse.de>
20921
20922         PR tree-optimization/42944
20923         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
20924         test for aliasing with errno.
20925
20926 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20927
20928         PR middle-end/42233
20929         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
20930         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
20931         * dojump.c: Include output.h.
20932         (inv): New inline function.
20933         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
20934         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
20935         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
20936         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
20937         argument, pass it down to other calls.
20938         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
20939         add REG_BR_PROB note to the conditional jump.
20940         * cfgexpand.c (add_reg_br_prob_note): Removed.
20941         (expand_gimple_cond): Don't call it, add the probability
20942         as last argument to jumpif_1/jumpifnot_1.
20943         * Makefile.in (dojump.o): Depend on output.h.
20944         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
20945         callers.
20946         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
20947         * stmt.c (do_jump_if_equal): Likewise.
20948         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
20949         * loop-unswitch.c (compare_and_jump_seq): Likewise.
20950         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
20951         Likewise.
20952         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
20953         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
20954         jumpifnot_1 callers.
20955         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
20956         callers.
20957         (store_expr): Adjust jumpifnot caller.
20958         (store_constructor): Adjust jumpif caller.
20959
20960         PR middle-end/42233
20961         * gimplify.c (gimple_boolify): For __builtin_expect call
20962         gimple_boolify also on its first argument.
20963
20964 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
20965
20966         * configure.ac (gnu-unique-object): Wrap regexps using [] in
20967         changequote block.
20968         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
20969         * configure: Regenerated.
20970
20971 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20972
20973         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
20974         lang_hooks.types_compatible_p instead of comptypes.
20975
20976 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
20977
20978         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
20979         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
20980         if __prefer_thumb__ is defined.
20981
20982 2010-02-18  Martin Jambor  <mjambor@suse.cz>
20983
20984         PR tree-optimization/43066
20985         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
20986         array with zero-sized element type.
20987
20988 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
20989
20990         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
20991         rtx, allocate struct var_loc_node here and return it to the
20992         caller, and only if it is actually needed.
20993         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
20994         move it earlier and return immediately if it returns NULL.
20995
20996 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
20997
20998         * config/sparc/gas.h: New file.  Restore
20999         TARGET_ASM_NAMED_SECTION to its ELF default.
21000         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
21001         check !HAVE_GNU_AS.
21002         * config/sparc/sparc.c (sparc_elf_asm_named_section):
21003         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
21004         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
21005         after sparc/sysv4.h.
21006
21007 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
21008
21009         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
21010
21011 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
21012
21013         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
21014         patterns from predicated pattern.
21015
21016 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
21017
21018         PR target/43103
21019         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
21020         for insn mnemonic suffix.
21021
21022 2010-02-17  Richard Guenther  <rguenther@suse.de>
21023
21024         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
21025         to loop PHI nodes.
21026
21027 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
21028
21029         PR debug/42918
21030         * caller-save.c (save_call_clobbered_regs): If BB ends with
21031         a DEBUG_INSN, move any notes in between last real insn and the last
21032         DEBUG_INSN after the last DEBUG_INSN.
21033
21034 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
21035
21036         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
21037         Fix return type.  Fix argument type.  Explain meaning of return value.
21038
21039 2010-02-16  Richard Guenther  <rguenther@suse.de>
21040
21041         PR tree-optimization/41043
21042         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
21043         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
21044         statements ...
21045         (vrp_visit_phi_node): ... but only for loop PHI nodes.
21046
21047 2010-02-16  Ira Rosen  <irar@il.ibm.com>
21048
21049         PR tree-optimization/43074
21050         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
21051         * tree-vect-loop.c (vect_analyze_loop_operations): Add
21052         vectorizable cycles in hybrid SLP check.
21053         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
21054
21055 2010-02-16  Richard Guenther  <rguenther@suse.de>
21056
21057         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
21058         (true_dependence): If memrefs_conflict_p computes must-alias
21059         trust it.  Move TBAA check after offset-based disambiguation.
21060         (canon_true_dependence): Likewise.
21061
21062 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
21063
21064         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
21065         * doc/invoke.texi: Document it.
21066         * var-tracking.c: Include toplev.h and params.h.
21067         (vt_find_locations): Return bool indicating success.  Compute
21068         hash sizes unconditionally.  Check new parameter, report.
21069         (variable_tracking_main_1): Check vt_find_locations results and
21070         retry.  Renamed from...
21071         (variable_tracking_main): ... this.  New wrapper to preserve
21072         flag_var_tracking_assignments.
21073         * Makefile.in (var-tracking.o): Adjust dependencies.
21074
21075 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
21076             Jakub Jelinek <jakub@redhat.com>
21077
21078         PR target/42854
21079         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
21080         if weak_import attribute is present.
21081         * config/darwin.c (machopic_select_section): Likewise.
21082
21083 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
21084
21085         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
21086         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
21087         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
21088         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
21089
21090         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
21091         types.
21092
21093         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
21094         Fix argument types.
21095
21096         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
21097         Rewrite text to refer to the names.
21098
21099 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
21100
21101         * config/i386/i386-builtin-types.def
21102         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
21103         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
21104         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
21105         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
21106         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
21107         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
21108         IX86_BUILTIN_VPERMIL2PS256.
21109         (MULTI_ARG_4_DF2_DI_I): Defined.
21110         (MULTI_ARG_4_DF2_DI_I1): Defined.
21111         (MULTI_ARG_4_SF2_SI_I): Defined.
21112         (MULTI_ARG_4_SF2_SI_I1): Defined.
21113         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
21114         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
21115         __builtin_ia32_vpermil2ps256.
21116         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
21117         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
21118         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
21119         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
21120         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
21121         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
21122         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
21123         CODE_FOR_xop_vpermil2v8sf3.
21124         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
21125         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
21126         * config/i386/xopintrin.h (_mm_permute2_pd): New.
21127         (_mm256_permute2_pd): New.
21128         (_mm_permute2_ps): New.
21129         (_mm256_permute2_ps): New.
21130
21131 2010-02-15  Nick Clifton  <nickc@redhat.com>
21132
21133         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
21134         boolean parameters.  Use emit_jump_insn when emitting a pop
21135         instruction containing a return insn.
21136         (push): Use 'true' rather than '1' as second parameter to F.
21137         (h8300_expand_prologue): Likewise.
21138         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
21139         (h8300_expand_epilogue): Likewise.
21140
21141 2010-02-15  Richard Guenther  <rguenther@suse.de>
21142
21143         PR middle-end/43068
21144         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
21145         if that is zero.
21146
21147 2010-02-15  Nick Clifton  <nickc@redhat.com>
21148
21149         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
21150         delta.
21151
21152 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
21153
21154         * intl.c (fake_ngettext): New function.
21155         * intl.h (fake_ngettext): Declare.
21156         (ngettext): Define macro.
21157         * collect2.c (notice_translated): New function.
21158         (main): Use notice_translated and ngettext.
21159         * collect2.h (notice_translated): Declare.
21160
21161 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
21162
21163         * reorg.c (delete_computation): Comment fixes.
21164         * caller-save.c (setup_save_areas): Idem.
21165         * sel-sched-dump.c (dump_lv_set): Idem.
21166         * rtl.def: Idem.
21167
21168 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21169
21170         * config/s390/s390.c (s390_sched_init): New function.
21171         (TARGET_SCHED_INIT): Target hook defined.
21172
21173 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
21174             Jack Howarth  <howarth@bromo.med.uc.edu>
21175             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
21176
21177         PR target/42982
21178         Partial revert of unintended change in fix for PR41605.
21179         * config/darwin.h: Fix typo.
21180         * config/darwin9.h: Same.
21181
21182 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
21183
21184         * c-pch.c (pch_init): Clear v.
21185
21186 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21187
21188         PR middle-end/42930
21189         * graphite-scop-detection.c (graphite_can_represent_scev): Call
21190         graphite_can_represent_init for MULT_EXPR.
21191
21192 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21193
21194         PR middle-end/42914
21195         PR middle-end/42530
21196         * graphite-sese-to-poly.c (remove_phi): New.
21197         (translate_scalar_reduction_to_array): Call remove_phi.
21198
21199 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21200
21201         PR middle-end/42771
21202         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
21203         * graphite-clast-to-gimple.h (gloog): Update declaration.
21204         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
21205         * graphite-poly.h (struct poly_bb): Add missing comments.
21206         (struct scop): Add poly_scop_p field.
21207         (POLY_SCOP_P): New.
21208         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
21209         * graphite.c (graphite_transform_loops): Build the polyhedral
21210         representation for each scop before code generation.
21211         * sese.c (rename_variables_in_operand): Removed.
21212         (rename_variables_in_expr): Return the renamed expression.
21213         (rename_sese_parameters): New.
21214         * sese.h (rename_sese_parameters): Declared.
21215
21216 2010-02-11  Richard Guenther  <rguenther@suse.de>
21217
21218         PR tree-optimization/42998
21219         * tree-ssa-pre.c (create_expression_by_pieces): Treat
21220         POINTER_PLUS_EXPR properly.
21221
21222 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21223             Changpeng Fang  <changpeng.fang@amd.com>
21224
21225         PR middle-end/40886
21226         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
21227         the cost of an IV candidate when the IV is used in a test against zero.
21228
21229         * gcc.dg/tree-ssa/ivopts-3.c: New.
21230
21231 2010-02-11  Richard Guenther  <rguenther@suse.de>
21232
21233         PR lto/41664
21234         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
21235         pointer-vs-decl case by swapping refs.  Handle some cases
21236         of pointer-vs-decl disambiguations more conservatively.
21237         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
21238         to false after expanding.
21239
21240 2010-02-11  Richard Guenther  <rguenther@suse.de>
21241
21242         PR driver/43021
21243         * gcc.c (process_command): Handle LTO file@offset case more
21244         appropriately.
21245
21246 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
21247
21248         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
21249         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
21250         of DEBUG_INSNs.
21251         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
21252
21253         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
21254         if MEM's mode size isn't DWARF2_ADDR_SIZE.
21255         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
21256         Optimize eq/ne comparisons when both arguments are known to be
21257         zero-extended.
21258         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
21259         Don't mask operands unnecessarily if they are known to be already
21260         zero-extended.
21261
21262 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
21263
21264         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
21265         instead of loop.
21266
21267 2010-02-10  Richard Guenther  <rguenther@suse.de>
21268
21269         PR tree-optimization/43017
21270         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
21271         for wrapping signed arithmetic.
21272
21273 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
21274
21275         PR debug/43010
21276         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
21277         if no debug info should be emitted for it.
21278
21279 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
21280
21281         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
21282         note when flag_exceptions is set.
21283
21284 2010-02-10  Duncan Sands  <baldrick@free.fr>
21285
21286         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
21287
21288 2010-02-10  Richard Guenther  <rguenther@suse.de>
21289
21290         PR c/43007
21291         * tree.c (get_unwidened): Handle constants.
21292         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
21293
21294 2010-02-10  Martin Jambor  <mjambor@suse.cz>
21295
21296         PR lto/42985
21297         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
21298         check for variable argument counts independently.
21299
21300 2010-02-10  Christian Bruel  <christian.bruel@st.com>
21301
21302         PR target/42841
21303         * config/sh/sh.c (find_barrier): Increase length for non delayed
21304         conditional branches.
21305
21306 2010-02-10  Christian Bruel  <christian.bruel@st.com>
21307
21308         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
21309
21310 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
21311
21312         * builtins.c (set_builtin_user_assembler_name): Also handle
21313         ffs if int is smaller than word.
21314
21315 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
21316
21317         PR middle-end/42973
21318         * ira-conflicts.c (get_dup): Remove.
21319         (process_reg_shuffles): Add new parameter.  Use it as an
21320         additional guard for copy generation.
21321         (add_insn_allocno_copies): Rewrite.
21322
21323 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
21324
21325         * common.opt (fsched2-use-traces): Preserved for backward
21326         compatibility.
21327         * doc/invoke.texi: Remove the documentation about option
21328         -fsched2-use-traces.
21329         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
21330         flag_sched2_use_traces.
21331         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
21332         the backward compatibility flag section.
21333
21334 2010-02-09  Richard Guenther  <rguenther@suse.de>
21335
21336         PR tree-optimization/43008
21337         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
21338         make HEAP variables initialized from global memory if they
21339         are not known builtin functions.
21340         (find_func_aliases): Adjust.
21341
21342 2010-02-09  Richard Guenther  <rguenther@suse.de>
21343
21344         PR tree-optimization/43000
21345         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
21346         arithmetic manually.
21347
21348 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
21349
21350         PR tree-optimization/42931
21351         * tree-loop-linear.c (try_interchange_loops): Don't call
21352         double_int_mul if estimated_loop_iterations failed.
21353
21354 2010-02-08  Martin Jambor  <mjambor@suse.cz>
21355
21356         PR middle-end/42898
21357         * tree-sra.c (build_accesses_from_assign): Do not mark in
21358         should_scalarize_away_bitmap if stmt has volatile ops.
21359         (sra_modify_assign): Do not process assigns piecemeal if if stmt
21360         has volatile ops.
21361
21362 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
21363
21364         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
21365
21366 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
21367
21368         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
21369         before the pattern.
21370
21371 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
21372
21373         PR middle-end/42946
21374         * df-core.c (df_finish_pass): Change type of saved_flags to int.
21375
21376 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
21377
21378         PR middle-end/42988
21379         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
21380         to unknown_dependence.
21381         (graphite_legal_transform_dr): Handle the unknown_dependence.
21382         (graphite_carried_dependence_level_k): Same.
21383
21384 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
21385
21386         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
21387
21388 2010-02-07  Richard Guenther  <rguenther@suse.de>
21389
21390         PR middle-end/42991
21391         * expr.c (get_inner_reference): Always initialize *pbitsize.
21392
21393 2010-02-07  Richard Guenther  <rguenther@suse.de>
21394
21395         PR middle-end/42956
21396         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
21397         new ARRAY_REFs on variable size element or minimal index arrays.
21398         Complete.
21399         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
21400         gimple_fold_indirect_ref.
21401
21402 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
21403
21404         PR target/42957
21405         * arm.c (arm_override_options): Just return if the user has specified
21406         an invalid fpu name.
21407
21408 2010-02-03  Jason Merrill  <jason@redhat.com>
21409
21410         PR c++/42870
21411         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
21412         i386_pe_maybe_record_exported_symbol.
21413
21414 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
21415
21416         PR target/42924
21417         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
21418         (pa_delegitimize_address): New function.
21419
21420 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
21421
21422         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
21423         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
21424
21425 2010-02-05  Richard Guenther  <rguenther@suse.de>
21426
21427         PR lto/42762
21428         * lto-streamer-in.c (get_resolution): Deal with references
21429         to undefined functions.
21430
21431 2010-02-05  Richard Guenther  <rguenther@suse.de>
21432
21433         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
21434         (fold_const_aggregate_ref): Likewise.
21435         (ccp_fold_stmt): Substitute loads.
21436         (maybe_fold_reference): Verify types before substituting.
21437         Unshare properly.
21438         (fold_gimple_assign): Unshare properly.
21439         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
21440
21441 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
21442
21443         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
21444         for rs6000_gen_cell_microcode.
21445
21446 2010-02-04  Richard Guenther  <rguenther@suse.de>
21447
21448         PR rtl-optimization/42952
21449         * dse.c (const_or_frame_p): Remove MEM handling.
21450
21451 2010-02-04  Nick Clifton  <nickc@redhat.com>
21452
21453         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
21454         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
21455         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
21456         (mn10300_asm_output_mi_thunk): New function.
21457         (mn10300_can_output_mu_thunk): New function.
21458         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
21459         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
21460         (FUNCTION_ARG): Delete incorrect comment.
21461
21462 2010-02-03  Jason Merrill  <jason@redhat.com>
21463
21464         PR c++/40138
21465         * fold-const.c (operand_equal_p): Handle erroneous types.
21466
21467 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
21468
21469         * config/h8300/h8300.md (can_delay): Fix attibute condition.
21470
21471 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
21472
21473         PR rtl-optimization/42941
21474         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
21475         of xmalloc.
21476
21477 2010-02-03  Jason Merrill  <jason@redhat.com>
21478
21479         PR c++/35652
21480         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
21481
21482 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
21483
21484         PR debug/42896
21485         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
21486         (cselib_reset_table): Renamed from...
21487         (cselib_reset_table_with_next_value): ... this.
21488         (cselib_get_next_uid): Renamed from...
21489         (cselib_get_next_unknown_value): ... this.
21490         * cselib.c (next_uid): Renamed from...
21491         (next_unknown_value): ... this.
21492         (cselib_clear_table): Adjust.
21493         (cselib_reset_table): Adjust.  Renamed from...
21494         (cselib_reset_table_with_next_value): ... this.
21495         (cselib_get_next_uid): Adjust.  Renamed from...
21496         (cselib_get_next_unknown_value): ... this.
21497         (get_value_hash): Use hash.
21498         (cselib_hash_rtx): Likewise.
21499         (new_cselib_val): Adjust.  Set and dump uid.
21500         (cselib_lookup_mem): Pass next_uid as hash.
21501         (cselib_subst_to_values): Likewise.
21502         (cselib_log_lookup): Dump uid.
21503         (cselib_lookup): Pass next_uid as hash.  Adjust.
21504         (cselib_process_insn): Adjust.
21505         (cselib_init): Initialize next_uid.
21506         (cselib_finish): Adjust.
21507         (dump_cselib_table): Likewise.
21508         * dse.c (canon_address): Dump value uid.
21509         * print-rtl.c (print_rtx): Print value uid.
21510         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
21511         (dvuid): New type.
21512         (dv_uid): New function, sort of renamed from...
21513         (dv_htab_hash): ... this, reimplemented in terms of it and...
21514         (dv_uid2hash): ... this.  New.
21515         (variable_htab_eq): Drop excess assertions.
21516         (tie_break_pointers): Removed.
21517         (canon_value_cmp): Compare uids.
21518         (variable_post_merge_New_vals): Print uids.
21519         (vt_add_function_parameters): Adjust.
21520         (vt_initialize): Reset table.  Adjust.
21521
21522 2010-02-03  Richard Guenther  <rguenther@suse.de>
21523
21524         PR tree-optimization/42944
21525         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
21526         (call_may_clobber_ref_p_1): Likewise.  Properly handle
21527         malloc and calloc clobbering errno.
21528
21529 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
21530
21531         * doc/invoke.texi: Fix name of sched1 dump.
21532
21533         * opts.c (decode_options): Set flag_tree_switch_conversion
21534         only conditionally on optimize >= 2.
21535
21536         * gcse.c: Assorted comment fixes in pass description.
21537
21538 2010-02-03  Anthony Green  <green@moxielogic.com>
21539
21540         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
21541         nop padding in order to maintain alignment of storage location of
21542         target function address.
21543         (moxie_trampoline_init): Store target function address at newly
21544         aligned location.
21545         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
21546         to 32.
21547         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
21548
21549 2010-02-03  Richard Guenther  <rguenther@suse.de>
21550
21551         PR middle-end/42927
21552         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
21553
21554 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21555
21556         * config.gcc: Reenable check for obsolete targets.
21557         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
21558         mips-sgi-irix6.[0-4]*.
21559
21560 2010-02-02  Nick Clifton  <nickc@redhat.com>
21561
21562         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
21563         constant size of 4 as being the same as 0.
21564         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
21565         can take values in the range 0..4.
21566
21567 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
21568
21569         PR java/41991
21570         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
21571         as _darwin10_Unwind_FindEnclosingFunction().
21572         * libgcc-libsystem.ver: New.
21573
21574 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
21575
21576         PR target/41399
21577         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
21578         implicitly set registers.
21579
21580 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
21581
21582         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
21583         (arm_override_options): Allow automatic selection of the thread
21584         pointer register if thumb2.
21585         (legitimize_pic_address): Improve code sequences for Thumb2.
21586         (arm_call_tls_get_addr): Likewise.
21587         (legitimize_tls_address): Likewise.
21588         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
21589         (pic_load_addr_32bit): ... this.  New named pattern.
21590         * thumb2.md (pic_load_addr_thumb2): Delete.
21591         (pic_load_dot_plus_four): Delete.
21592         (tls_load_dot_plus_four): New named pattern.
21593
21594 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21595
21596         PR libgomp/29986
21597         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
21598         Document fix for TLS bug.
21599
21600 2010-01-31  Richard Guenther  <rguenther@suse.de>
21601
21602         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
21603         conservatively correct.
21604
21605 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21606
21607         PR target/42850
21608         Revert:
21609         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21610
21611         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
21612
21613 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21614
21615         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
21616
21617 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
21618
21619         * config.gcc: Adjust order of makefile fragments for mingw targets.
21620
21621 2010-01-31  Richard Guenther  <rguenther@suse.de>
21622
21623         PR middle-end/42898
21624         * gimplify.c (gimplify_init_constructor): For volatile LHS
21625         initialize a temporary.
21626
21627 2010-01-31  Matthias Klose  <doko@ubuntu.com>
21628
21629         * configure.ac: Fix __stack_chk_fail check for cross builds configured
21630         --with-headers
21631         * configure: Regenerate.
21632
21633 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
21634
21635         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
21636         the same alias set and their sizes different constantness.
21637         (aliasing_component_refs_p): Revert 2009-10-24 change.
21638
21639 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21640
21641         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
21642         unused.
21643
21644 2010-01-29  Richard Guenther  <rguenther@suse.de>
21645
21646         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
21647         Assert we successfully updated the call.
21648
21649 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
21650
21651         PR rtl-optimization/42889
21652         * df.h (df_set_bb_dirty_nonlr): New prototype.
21653         * df-core.c (df_set_bb_dirty_nonlr): New function.
21654         * df-scan.c (df_insn_rescan): Call it instead of
21655         df_set_bb_dirty for DEBUG_INSNs.
21656
21657 2010-01-29  Richard Guenther  <rguenther@suse.de>
21658
21659         PR middle-end/37448
21660         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
21661         quadratic behavior in most cases.
21662
21663 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
21664
21665         PR target/42891
21666         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
21667         in the call to gen_x86_movsicc_0_m1.
21668
21669 2010-01-28  Richard Guenther  <rguenther@suse.de>
21670
21671         PR tree-optimization/42871
21672         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
21673
21674 2010-01-28  Richard Guenther  <rguenther@suse.de>
21675
21676         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
21677         into call arguments.
21678
21679 2010-01-28  Richard Guenther  <rguenther@suse.de>
21680
21681         PR middle-end/42883
21682         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
21683         the forwarder if the destination is an EH landing pad.
21684
21685 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
21686
21687         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
21688         block list passed to gimple_duplicate_sese_tail.
21689         (parallelize_loops): Avoid parallelization when the function
21690         has_nonlocal_label.
21691         Avoid parallelization when the preheader is IRREDUCIBLE.
21692         Try to optimize when estimated_loop_iterations_int is unresolved.
21693         Add the loop's location to the dump file.
21694         * tree-cfg.c (add_phi_args_after_redirect): Remove.
21695         (gimple_duplicate_sese_tail): Remove the check for the latch.
21696         Redirect nexits to the exit block.
21697         Remove handling of the incoming edges to the latch.
21698         Redirect the backedge from the copied latch to the exit bb.
21699
21700 2010-01-28  Michael Matz  <matz@suse.de>
21701
21702         PR target/42881
21703         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
21704         Wrap force_reg into a sequence, emit it before user.
21705
21706 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
21707
21708         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
21709         (arm_rev): New.
21710         (arm_legacy_rev): Likewise.
21711         (thumb_legacy_rev): Likewise.
21712
21713 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
21714
21715         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
21716         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
21717         on MEM's address failed, try avoid_constant_pool_reference and
21718         recurse if it returned something different.
21719         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
21720         address, try avoid_constant_pool_reference and recurse if it
21721         returned something different.
21722         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
21723         address and avoid_constant_pool_reference returned something
21724         different, don't set have_address.
21725
21726 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
21727
21728         PR debug/42861
21729         * var-tracking.c (val_store): Add modified argument, obey it.
21730         Adjust callers.
21731         (count_uses): Move down logging of main.
21732         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
21733         don't need resolution.
21734         (emit_notes_in_bb): Likewise.
21735
21736 2010-01-27  Richard Guenther  <rguenther@suse.de>
21737
21738         PR middle-end/42878
21739         * tree-inline.c (remap_decl): Delay remapping of SSA name
21740         default definitions until we need them.
21741
21742 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
21743
21744         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
21745         (rs6000_delegitimize_address): New function.
21746
21747         * config/s390/s390.c (s390_delegitimize_address): Call
21748         delegitimize_mem_from_attrs.
21749
21750         PR middle-end/42874
21751         * tree-inline.c (cannot_copy_type_1): Removed.
21752         (copy_forbidden): Don't forbid copying of functions containing
21753         records/unions with variable length fields.
21754
21755 2010-01-27  Christian Bruel  <christian.bruel@st.com>
21756
21757         Revert:
21758         PR target/42841
21759         * config/sh/sh.c (find_barrier): Increase length for non delayed
21760         conditional branches.
21761
21762 2010-01-27  Matthias Klose  <doko@ubuntu.com>
21763
21764         * configure.ac (gnu-unique-object): Fix ldd version check.
21765         * configure: Regenerate.
21766
21767 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21768
21769         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
21770         HAVE_GNU_AS value.
21771         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
21772         Test for HAVE_GNU_AS value.
21773
21774 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21775
21776         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
21777         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
21778         INT64_TYPE): Define.
21779         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
21780         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
21781         INT_LEAST64_TYPE): Define.
21782         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
21783         UINT_LEAST64_TYPE): Define.
21784         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
21785         INT_FAST64_TYPE): Define.
21786         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
21787         UINT_FAST64_TYPE): Define.
21788         (INTMAX_TYPE, UINTMAX_TYPE): Define.
21789         (INTPTR_TYPE, UINTPTR_TYPE): Define.
21790         (SIG_ATOMIC_TYPE): Define.
21791
21792 2010-01-26  Richard Guenther  <rguenther@suse.de>
21793
21794         * df-scan.c (df_scan_set_bb_info): Remove assert.
21795         (df_insn_rescan_debug_internal): Merge asserts.
21796         (df_install_ref): Likewise.
21797         (df_mark_reg): Use bitmap_set_range.
21798         (df_hard_reg_used_p): Remove assert.
21799         (df_hard_reg_used_count): Likewise.
21800
21801 2010-01-26  Richard Guenther  <rguenther@suse.de>
21802
21803         PR rtl-optimization/42685
21804         * web.c (web_main): Ignore DEBUG_INSNs.
21805
21806 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
21807
21808         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
21809
21810         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
21811         Fix types of fndecl and arglist parameters.
21812
21813 2010-01-26  Richard Guenther  <rguenther@suse.de>
21814
21815         PR middle-end/42806
21816         * tree-eh.c (unsplit_eh): Skip debug insns.
21817
21818 2010-01-26  Richard Guenther  <rguenther@suse.de>
21819
21820         PR tree-optimization/42250
21821         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
21822
21823 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
21824
21825         PR fortran/42866
21826         * omp-low.c (expand_omp_sections): Only use single_pred if
21827         l2_bb is single_pred_p.
21828
21829 2010-01-25  Christian Bruel  <christian.bruel@st.com>
21830
21831         PR target/42841
21832         * config/sh/sh.c (find_barrier): Increase length for non delayed
21833         conditional branches.
21834         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
21835
21836 2010-01-24  David S. Miller  <davem@davemloft.net>
21837
21838         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
21839         define if not using GAS.
21840         * config/sparc/sparc.c (sparc_elf_asm_named_section):
21841         Likewise.  Delete SECTION_MERGE code, which is only applicable
21842         when using GAS.
21843
21844 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
21845
21846         PR c++/42748
21847         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
21848         mangling of va_list in system headers.
21849
21850 2010-01-23  Toon Moene  <toon@moene.org>
21851
21852         * tree-predcom.c (combine_chains): Return NULL, not false.
21853
21854 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
21855
21856         * tree-loop-distribution.c (distribute_loop): Fix declaration and
21857         initialization of variable res to agree with return type.
21858
21859 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
21860
21861         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
21862         * tree-sra.c: Add include of expr.h.
21863
21864 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
21865
21866         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
21867         insert the debug stmt on the single non-EH edge from the stmt.
21868
21869 2010-01-22  Richard Henderson  <rth@redhat.com>
21870
21871         PR tree-opt/42833
21872         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
21873         the RHS until after generate_subtree_copies has insertted its
21874         code before the current statement.
21875
21876 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
21877
21878         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
21879
21880         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
21881
21882 2010-01-21  Martin Jambor  <mjambor@suse.cz>
21883
21884         PR tree-optimization/42585
21885         * tree-sra.c (struct access): New field grp_total_scalarization.
21886         (dump_access): Dump the new field.
21887         (should_scalarize_away_bitmap): New variable.
21888         (cannot_scalarize_away_bitmap): Likewise.
21889         (sra_initialize): Allocate new bitmaps.
21890         (sra_deinitialize): Free new bitmaps.
21891         (create_access_1): New function.
21892         (create_access): Parts moved to create_access_1.
21893         (type_consists_of_records_p): New function.
21894         (completely_scalarize_record): Likewise.
21895         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
21896         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
21897         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
21898         access.
21899         (analyze_all_variable_accesses): Completely scalarize small eligible
21900         records.
21901
21902 2010-01-21  Martin Jambor  <mjambor@suse.cz>
21903
21904         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
21905
21906 2010-01-21  Andrew Haley  <aph@redhat.com>
21907
21908         * gcc.c (process_command): Move lang_specific_driver before
21909         setting cc_libexec_prefix.
21910
21911 2010-01-21  Richard Guenther  <rguenther@suse.de>
21912
21913         PR middle-end/19988
21914         * fold-const.c (negate_expr_p): Pretend only negative
21915         real constants are easily negatable.
21916
21917 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
21918             Jason Merrill  <jason@redhat.com>
21919
21920         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
21921         (TYPE_TRANSPARENT_AGGR): this, for union and record.
21922         * calls.c (initialize argument_information): Handle it.
21923         * c-common.c (handle_transparent_union_attribute): Use new name.
21924         * c-decl.c (finish_struct): Ditto.
21925         * c-typeck.c (type_lists_compatible_p): Ditto.
21926         (convert_for_assignment): Use new name and also handle record.
21927         * function.c (aggregate_value_p): Handle it.
21928         (pass_by_reference): Ditto.
21929         (assign_parm_data_types): Ditto.
21930         * print-tree.c (print_node): Ditto.
21931         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
21932         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
21933         * tree.c (first_field): New fn.
21934
21935 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
21936
21937         PR target/42818
21938         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
21939         even when linking statically, for now.
21940
21941 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
21942
21943         PR debug/42715
21944         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
21945         without a cselib val.
21946         (count_uses): Accept MO_VAL_SET with no val on stores.
21947         (add_stores): Likewise.
21948
21949 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
21950
21951         * var-tracking.c (check_value_val): Add a compile time assertion.
21952         (dv_is_decl_p): Simplify.
21953         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
21954         gcc_assert if ENABLE_CHECKING.
21955
21956 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
21957
21958         PR debug/42782
21959         * var-tracking.c: Include tree-flow.h.
21960         (mem_dies_at_call): New.
21961         (dataflow_set_preserve_mem_locs): Use it.
21962         (dataflow_set_remove_mem_locs): Likewise.
21963         (dump_var): Renamed from dump_variable.  Adjust all callers.
21964         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
21965         * Makefile.in (var-tracking.o): Adjust deps.
21966
21967 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
21968
21969         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
21970
21971 2010-01-20  Richard Guenther  <rguenther@suse.de>
21972
21973         PR tree-optimization/42717
21974         * tree-ssa-dce.c (get_live_post_dom): Remove.
21975         (forward_edge_to_pdom): Take an arbitrary edge to copy
21976         degenerate PHI args from.
21977         (remove_dead_stmt): Use the first post-dominator even if it
21978         does not contain live statements as redirection destination.
21979
21980 2010-01-20  Richard Guenther  <rguenther@suse.de>
21981
21982         * tree-inline.c (estimate_num_insns): Handle EH builtins.
21983
21984 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
21985
21986         * sel-sched.c (create_speculation_check): Remove set but not used
21987         variable twin.
21988         (try_transformation_cache): Remove set but not used variable ds.
21989         (calculate_privileged_insns): Remove set but not used variables
21990         cur_insn and min_spec_insn.
21991         (find_best_expr): Remove set but not used variable avail_n.
21992         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
21993         variable e.
21994         * cgraphunit.c (assemble_thunk): Remove set but not used variable
21995         false_label.
21996         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
21997         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
21998         new_scop_exit_edge.
21999
22000 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
22001
22002         PR bootstrap/42786
22003         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
22004         cpu types.  Add support for *-sse3 cpu types.
22005         (x86_64-*-*): Ditto.
22006
22007 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
22008
22009         PR middle-end/42803
22010         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
22011         argument, call initializer_constant_valid_p_1 instead of
22012         initializer_constant_valid_p, pass CACHE to it, return NULL
22013         immediately if first call returns NULL.
22014         (initializer_constant_valid_p_1): New function.
22015         (initializer_constant_valid_p): Use it.
22016
22017 2010-01-20  Thomas Quinot  <quinot@adacore.com>
22018
22019         * tree.def (PLACEHOLDER_EXPR): Fix comment.
22020
22021 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
22022
22023         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
22024         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
22025         (loc_list_from_tree): Don't handle unsigned division.  Handle
22026         signed modulo using DW_OP_{over,over,div,mul,minus}.
22027         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
22028         modulo instead of signed.
22029
22030 2010-01-20  DJ Delorie  <dj@redhat.com>
22031
22032         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
22033         (Fpa): Pass it
22034         (h8300_emit_stack_adjustment): Propogate it.
22035         (push): Pass it.
22036         (h8300_expand_prologue): Likewise.
22037         (h8300_expand_epilogue): Likewise.
22038
22039 2010-01-19  Michael Matz  <matz@suse.de>
22040
22041         PR tree-optimization/41783
22042         * tree-data-ref.c (toplevel): Include flags.h.
22043         (dump_data_dependence_relation):  Also dump the inputs if the
22044         result will be unknown.
22045         (split_constant_offset_1): Look through some conversions.
22046         * tree-predcom.c (determine_roots_comp): Restart a new chain if
22047         the offset from last element is too large.
22048         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
22049         (reassociate_to_the_same_stmt): Handle vector registers.
22050         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
22051         (e.g. conversions).
22052         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
22053         wide_prolog_niters argument, emit widening instructions.
22054         (vect_do_peeling_for_alignment): Adjust caller, use widened
22055         variant of the iteration cound.
22056         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
22057
22058 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22059
22060         PR target/38697
22061         * config/arm/neon-testgen.m (emit_automatics): New parameter
22062         features. Adjust for Fixed_return_reg feature.
22063         (test_intrinsic): Call emit_automatics with new feature.
22064         * config/arm/neon.ml: Update copyright years.
22065         (features): New Fixed_return_reg feature.
22066         (ops): Update feature for Vget_low.
22067
22068 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
22069
22070         PR tree-optimization/42719
22071         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
22072         stmt uses.
22073
22074         PR debug/42728
22075         * fwprop.c (all_uses_available_at): Return false if def_set dest
22076         is a REG that is used in def_insn.
22077
22078 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
22079
22080         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
22081
22082         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
22083         Add argument names.
22084
22085         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
22086
22087         * target.h (struct gcc_target) <secondary_reload>: Change type
22088         of last argument to secondary_reload_info *.
22089
22090 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
22091
22092         PR target/42774
22093         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
22094         memory references with unaligned offsets.  Remove CQImode handling.
22095         (unaligned_memory_operand): Return 1 for memory references with
22096         unaligned offsets.  Remove CQImode handling.
22097
22098 2010-01-18  Richard Guenther  <rguenther@suse.de>
22099
22100         PR middle-end/39954
22101         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
22102         builtin calls.
22103
22104 2010-01-18  Richard Guenther  <rguenther@suse.de>
22105
22106         PR tree-optimization/42781
22107         * tree-ssa-structalias.c (find_what_var_points_to): Skip
22108         restrict processing only if the original variable was artificial.
22109
22110 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
22111
22112         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
22113         find number of popped argument bytes.
22114
22115         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
22116         Fix the text that describes the return value for invalid insns.
22117
22118         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
22119
22120         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
22121         Clarify what 'cost of the -dependence' is.  Fix quoting.
22122
22123         * toplev.c (default_get_pch_validity): Rename argument to "sz".
22124         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
22125
22126 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
22127
22128         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
22129         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
22130
22131 2010-01-17  Richard Guenther  <rguenther@suse.de>
22132
22133         PR middle-end/42248
22134         * function.c (split_complex_args): Take a VEC to modify.
22135         (assign_parms_augmented_arg_list): Build a VEC instead of
22136         a chain of PARM_DECLs.
22137         (assign_parms_unsplit_complex): Take a VEC of arguments.
22138         Do not fixup unmodified parms.
22139         (assign_parms): Deal with the VEC.
22140         (gimplify_parameters): Likewise.
22141
22142 2010-01-17  Richard Guenther  <rguenther@suse.de>
22143
22144         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
22145         node existence check.
22146         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
22147         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
22148         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
22149         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
22150         (gimple_execute_on_growing_pred): Likewise.
22151
22152 2010-01-17  Richard Guenther  <rguenther@suse.de>
22153
22154         PR tree-optimization/42773
22155         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
22156         (compute_antic_aux): Likewise.
22157         (compute_partial_antic_aux): Likewise.
22158
22159 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
22160
22161         PR debug/42767
22162         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
22163         and US_TRUNCATE.
22164
22165 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
22166
22167         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
22168         appearance.
22169
22170         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
22171         Fix markup for strict argument.
22172
22173         (TARGET_SCHED_REORDER2): Fix argument types.
22174
22175         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
22176         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
22177
22178         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
22179         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
22180
22181         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
22182         Add argument name.
22183
22184         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
22185         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
22186         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
22187         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
22188         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
22189
22190         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
22191
22192         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
22193
22194         (TARGET_ASM_RELOC_RW_MASK): Add return type.
22195         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
22196
22197         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
22198
22199         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
22200         Use prototype.
22201
22202         (TARGET_ASM_NAMED_SECTION): Fix argument list.
22203
22204         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
22205         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
22206
22207         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
22208
22209         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
22210
22211         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
22212         referring to it.  Fix language.
22213
22214         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
22215
22216         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
22217
22218         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
22219
22220         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
22221
22222         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
22223         '@var{stream}.  Remove stray 'and'.
22224
22225         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
22226
22227         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
22228
22229         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
22230
22231         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
22232         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
22233
22234         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
22235         Fix description of return value.
22236         Rename argument "sz" to "len."
22237
22238         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
22239         Clarify meaning of 'true' return value.
22240
22241         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
22242
22243         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
22244         rep_mode versus mode_rep.
22245
22246         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
22247
22248         (TARGET_BUILTIN_DECL): Fix name.
22249
22250         (TARGET_COMMUTATIVE_P): Fix type of first argument.
22251
22252         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
22253
22254         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
22255
22256         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
22257
22258         (TARGET_RELAXED_ORDERING): Use @deftypevr.
22259
22260         (TARGET_GET_DRAP_RTX): Note that this is a hook.
22261         Clarify language.
22262
22263         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
22264         Rename argument tm_fn to md_fn.
22265
22266         (TARGET_OPTION_PRINT): Fix argument list.
22267
22268 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
22269
22270         PR target/42664
22271         * config/i386/i386.c (ix86_fixup_binary_operands):
22272         Revert FMA4 fixup of operands.
22273
22274 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22275
22276         PR gcc/42525
22277         * Makefile.in (write_entries_to_file, install-plugin):
22278         Use \012 instead of \n with tr.
22279
22280 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
22281
22282         * configure.ac (HAVE_AS_REF): New C macro.
22283         * configure: Regenerate.
22284         * config.in: Likewise.
22285         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
22286         if HAVE_AS_REF.
22287         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
22288         if HAVE_AS_REF.
22289
22290 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
22291
22292         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
22293
22294         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
22295
22296         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
22297
22298         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
22299
22300         (TARGET_IN_SMALL_DATA_P): Fix argument type.
22301
22302         (TARGET_BINDS_LOCAL_P): Fix argument type.
22303
22304         (TARGET_ASM_FILE_END): Use prototype.
22305
22306         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
22307
22308         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
22309
22310         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
22311
22312         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
22313
22314         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
22315         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
22316
22317         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
22318         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
22319
22320         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
22321         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
22322         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
22323         (TARGET_ADDR_SPACE_CONVERT): Likewise.
22324
22325         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
22326
22327         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
22328
22329         (TARGET_INIT_BUILTINS): Use prototype.
22330
22331         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
22332         Put 'const char *' in braces.  Fix parameter types.
22333         (TARGET_INVALID_CONVERSION): Fix parameter types.
22334         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
22335         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
22336
22337         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
22338         Fix argument type.
22339
22340         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
22341
22342         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
22343
22344 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
22345
22346         * doc/tm.texi (TARGET_HELP): Fix return type.
22347
22348         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
22349         in braces.  Fix argument types.
22350
22351         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
22352
22353         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
22354
22355         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
22356
22357         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
22358         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
22359
22360         (TARGET_MANGLE_TYPE): Fix argument types.
22361
22362         (TARGET_IRA_COVER_CLASSES): Use prototype.
22363
22364         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
22365
22366         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
22367
22368         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
22369
22370         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
22371
22372         (TARGET_CALLEE_COPIES): Fix argument types.
22373
22374         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
22375
22376         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
22377
22378         (TARGET_FUNCTION_VALUE): Fix argument types.
22379
22380         (TARGET_RETURN_IN_MSB): Fix argument type.
22381
22382         (TARGET_RETURN_IN_MEMORY): Fix argument types.
22383
22384         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
22385
22386         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
22387
22388         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
22389         agree with return type.
22390
22391         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
22392
22393 2010-01-15  Jing Yu  <jingyu@google.com>
22394
22395         PR rtl-optimization/42691
22396         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
22397         a pseudo to a constant and are merged, and adjust comments.
22398
22399 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
22400
22401         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
22402
22403 2010-01-15  Richard Guenther  <rguenther@suse.de>
22404
22405         PR middle-end/42739
22406         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
22407         labels of computed or non-local gotos to the destination.
22408         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
22409         landing pad label is the first label.
22410
22411 2010-01-15  Richard Guenther  <rguenther@suse.de>
22412
22413         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
22414
22415 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
22416
22417         PR target/42747
22418         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
22419         to allow generation of the xssqrtdp instruction on power7.
22420         (sqrtdf2_fpr): Ditto.
22421
22422 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
22423
22424         PR middle-end/42674
22425         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
22426         functions with noreturn attribute.
22427
22428         PR c++/42608
22429         * varasm.c (declare_weak): Add weak attribute to decl if it
22430         doesn't have one already.
22431         (assemble_external): Only add decls to weak_decls if they also
22432         have weak attribute.
22433
22434 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
22435
22436         * var-tracking.c (var_reg_delete): Don't delete the association
22437         between REGs and values or one-part variables if the register
22438         isn't clobbered.
22439
22440 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
22441
22442         PR debug/42657
22443         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
22444         because its first operand is a non-localized variable.
22445
22446 2010-01-14  Martin Jambor  <mjambor@suse.cz>
22447
22448         PR tree-optimization/42706
22449         * tree-sra.c (encountered_recursive_call): New variable.
22450         (encountered_unchangable_recursive_call): Likewise.
22451         (sra_initialize): Initialize both new variables.
22452         (callsite_has_enough_arguments_p): New function.
22453         (scan_function): Call decl and flags check only for IPA-SRA, check
22454         whether there is a recursive call and whether it has enough arguments.
22455         (all_callers_have_enough_arguments_p): New function.
22456         (convert_callers): Look for recursive calls only when
22457         encountered_recursive_call is set.
22458         (ipa_early_sra): Bail out either if
22459         !all_callers_have_enough_arguments_p or
22460         encountered_unchangable_recursive_call.
22461
22462 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22463
22464         * sel-sched.c: Add 2010 to copyright years.
22465         * sel-sched-ir.c: Likewise.
22466         * sel-sched-ir.h: Likewise.
22467
22468 2010-01-14  Martin Jambor  <mjambor@suse.cz>
22469
22470         PR tree-optimization/42714
22471         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
22472         constructors specially.
22473
22474 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22475
22476         * config/i386/drivers-i386.c (detect_caches_intel):
22477         Add l2sizekb parameter and fill in.
22478         (host_detect_local_cpu): Add l2sizekb, fill in.
22479         Add Atom small cache heuristic.
22480
22481 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22482
22483         * config/i386/drivers-i386.c (detect_caches_cpuid4):
22484         Add level3 parameter and fill in.
22485         (detect_caches_intel): Handle level3 cache.
22486
22487 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22488
22489         * config/i386/drivers-i386.c (host_detect_local_cpu):
22490         Fix core duo detection.
22491
22492 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22493
22494         * config/i386/drivers-i386.c (host_detect_local_cpu):
22495         Fix Atom detection.
22496
22497 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22498
22499         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
22500         (rs6000_variable_issue_1): this.  Use...
22501         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
22502
22503 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22504
22505         * sel-sched-ir.c (sel_restore_other_notes): Rename to
22506         sel_restore_notes.  Update all callers.  Call reemit_notes
22507         for all insns.
22508
22509 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22510
22511         PR rtl-optimization/42246
22512         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
22513         loops.
22514
22515 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22516
22517         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
22518         all successors is the same as number of successors in current region.
22519
22520 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22521
22522         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
22523         to rename is not separable.  Otherwise check that its LHS is not NULL.
22524
22525 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22526
22527         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
22528
22529 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22530
22531         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
22532         available registers when failed to discover LHS register class.
22533         Fix indentation.  Update comment.
22534
22535 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22536             Alexander Monakov  <amonakov@ispras.ru>
22537
22538         PR rtl-optimization/42389
22539         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
22540         to can_issue_more.
22541         (advance_state_on_fence): Likewise.
22542         (sel_target_adjust_priority): Print debug output only when
22543         sched_verbose >= 4, not 2.
22544         (get_expr_cost): Do not issue all unique insns on the next cycle.
22545         (fill_insns): Initialize can_issue_more from the value saved
22546         with the fence.
22547         * sel-sched-ir.c (flist_add): New parameter issue_more.
22548         Init FENCE_ISSUE_MORE with it.
22549         (merge_fences): Likewise.
22550         (init_fences): Update call to flist_add.
22551         (add_to_fences, add_clean_fence_to_fences)
22552         (add_dirty_fence_to_fences): Likewise.
22553         (move_fence_to_fences): Update call to merge_fences.
22554         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
22555         sched groups.
22556         * sel-sched-ir.h (struct _fence): New field issue_more.
22557         (FENCE_ISSUE_MORE): New accessor macro.
22558
22559 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22560
22561         PR rtl-optimization/42388
22562         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
22563         that have no predecessors nor successors.  Do not call move_bb_info
22564         for empty blocks outside of current region.
22565
22566 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22567
22568         PR rtl-optimization/42294
22569         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
22570         * sel-sched.c (move_exprs_to_boundary): Transitively add all
22571         originators' originators.
22572
22573 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22574
22575         PR rtl-optimization/39453
22576         PR rtl-optimization/42246
22577         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
22578         for pipelining_p.
22579         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
22580
22581 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22582             Alexander Monakov  <amonakov@ispras.ru>
22583
22584         PR middle-end/42245
22585         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
22586         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
22587         argument.  Update all callers.
22588         (tidy_control_flow): ... and here.  Recompute topological order
22589         of basic blocks in region if necessary.
22590         (sel_redirect_edge_and_branch): Change return type.  Return true
22591         if topological order might have been invalidated.
22592         (purge_empty_blocks): Export and move from...
22593         * sel-sched.c (purge_empty_blocks): ... here.
22594         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
22595         (maybe_tidy_empty_bb): Delete prototype.
22596         (purge_empty_blocks): Declare.
22597
22598 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
22599
22600         PR rtl-optimization/42249
22601         * sel-sched.c (try_replace_dest_reg): When chosen register
22602         and original register is the same, do not bail out early, but
22603         still check all original insns for validity of replacing destination
22604         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
22605         in this case.
22606
22607 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
22608
22609         PR c/42721
22610         Port from no-undefined-overflow branch:
22611         2009-03-09  Richard Guenther  <rguenther@suse.de>
22612
22613         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
22614
22615 2010-01-14  Richard Guenther  <rguenther@suse.de>
22616
22617         PR lto/42665
22618         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
22619
22620 2010-01-14  Ira Rosen  <irar@il.ibm.com>
22621
22622         PR tree-optimization/42709
22623         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
22624         as scalar type in creation of constant vector operand.
22625
22626 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22627
22628         PR testsuite/42414
22629         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
22630         (check-parallel-%): Match `testsuite' directory component only
22631         at the end.
22632
22633 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
22634
22635         PR translation/39521
22636         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
22637         strings with _().
22638
22639 2010-01-13  Richard Guenther  <rguenther@suse.de>
22640
22641         PR tree-optimization/42730
22642         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
22643         offset zero.
22644
22645 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
22646
22647         PR target/pr42542
22648         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
22649         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
22650         them signed.
22651
22652 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
22653
22654         * config/bfin/libgcc-bfin.ver: Regenerate based on current
22655         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
22656         ___umulsi3_highpart.
22657
22658         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
22659         rather than schedule_insns if the pass is enabled.
22660
22661 2010-01-13  Martin Jambor  <mjambor@suse.cz>
22662
22663         PR tree-optimization/42704
22664         * tree-sra.c (sra_modify_assign): Do not delete assignments to
22665         SSA_NAMEs.
22666
22667 2010-01-13  Martin Jambor  <mjambor@suse.cz>
22668
22669         PR tree-optimization/42703
22670         * tree-sra.c (analyze_access_subtree): Check that we can build a
22671         reference to the original data within the aggregate.
22672
22673 2010-01-13  Richard Guenther  <rguenther@suse.de>
22674
22675         PR tree-optimization/42705
22676         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
22677
22678 2010-01-13  Richard Guenther  <rguenther@suse.de>
22679
22680         PR middle-end/42716
22681         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
22682
22683 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
22684
22685         PR debug/41371
22686         * var-tracking.c (values_to_unmark): New variable.
22687         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
22688         values_to_unmark vector.  Moved body to...
22689         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
22690         instead queue it into values_to_unmark vector.
22691         (vt_find_locations): Free values_to_unmark vector.
22692
22693 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
22694
22695         * config/s390/s390.c (override_options): Set
22696         default of max-pending-list-length to 256
22697
22698 2010-01-13  Richard Guenther  <rguenther@suse.de>
22699
22700         PR lto/42678
22701         * tree-pass.h (PROP_gimple_lcx): New.
22702         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
22703         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
22704         before the final cleanup_eh.
22705         (dump_properties): Dump PROP_gimple_lcx.
22706         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
22707         (tree_lower_complex_O0): Remove.
22708         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
22709         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
22710         tree_lower_complex, schedule TODO_update_ssa.
22711         * lto-streamer-out.c (output_function): Stream the functions
22712         properties.
22713         * lto-streamer-in.c (input_function): Likewise.
22714         (lto_read_body): Do not override them here.
22715
22716 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
22717
22718         PR c/42708
22719         * c-typeck.c (build_c_cast): Fold value cast to union type before
22720         wrapping it in a CONSTRUCTOR.
22721
22722 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
22723
22724         PR rtl-optimization/42699
22725         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
22726         involved.
22727
22728 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22729
22730         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
22731         SUBTARGET_WARN_UNUSED_SPEC): Move ...
22732         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
22733         SUBTARGET_WARN_UNUSED_SPEC): ... here
22734         * config/mips/iris5.h (LIBGCC_SPEC): Define.
22735
22736 2010-01-12  Julian Brown  <julian@codesourcery.com>
22737
22738         * config/arm/neon-schedgen.ml (Utils): Don't try to
22739         open missing module.
22740         (find_with_result): New.
22741
22742 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
22743
22744         PR debug/42662
22745         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
22746         sharing when canonicalizing ({lt,ge}u (plus a b) b).
22747
22748         PR tree-optimization/42645
22749         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
22750         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
22751         decl_map, set processing_debug_stmt to -1 and return name without
22752         any remapping.
22753
22754 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
22755
22756         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
22757         binutils version, and reword target configuration description.
22758
22759 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
22760
22761         * config/avr/avr.h (LINKER_NAME): Remove.
22762
22763 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
22764
22765         PR target/42416
22766         * config/rs6000/rs6000.c (rs6000_override_options): On targets
22767         that support VSX, warn for -mno-altivec if vsx is not disabled,
22768         and disable vsx.
22769
22770 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
22771             Shujing Zhao  <pearly.zhao@oracle.com>
22772
22773         PR translation/42469
22774         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
22775         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
22776         character between option name and help text.
22777         * c.opt (imultilib): Likewise.
22778
22779 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
22780
22781         * lto-streamer-out.c (output_unreferenced_globals): Output static
22782         variables.
22783
22784 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
22785
22786         PR rtl-optimization/42621
22787         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
22788         optimizing for size.
22789         (duplicate_computed_gotos): Remove now-redundant check.
22790
22791 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
22792
22793         PR target/37454
22794         * configure.ac: Save and restore LDFLAGS and LIBS
22795         * configure: Regenerate.
22796
22797 2010-01-10  Richard Guenther  <rguenther@suse.de>
22798
22799         PR middle-end/42667
22800         * builtins.c (fold_builtin_strlen): Add type argument and
22801         convert the resulting length to it.
22802         (fold_builtin_1): Adjust.
22803
22804 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
22805
22806         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
22807         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
22808         1 insn.
22809         (num_insns_constant_wide): Adjust for that change.
22810
22811 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22812
22813         PR debug/42631
22814         * web.c (union_defs): Add used argument, to combine uses of
22815         uninitialized regs.
22816         (entry_register): Adjust type and tests of used argument.
22817         (web_main): Widen used for new use.  Pass it to union_defs.
22818         * df.h (union_defs): Adjust prototype.
22819
22820 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22821
22822         PR debug/42630
22823         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
22824         uses in new incoming argument.  Free body.
22825         (reset_debug_uses_in_loop): New.
22826         (analyze_insn_to_expand_var): Call the latter if the former found
22827         anything.  Fix whitespace.  Reject invalid dest overlaps before
22828         going through all insns in the loop.
22829
22830 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22831
22832         PR debug/42629
22833         * haifa-sched.c (dying_use_p): Debug insns don't count.
22834
22835 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22836
22837         PR middle-end/42363
22838         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
22839         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
22840         (verify_gimple_call): Reject LHS in noreturn calls.
22841
22842 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22843
22844         PR debug/42604
22845         PR debug/42395
22846         * tree-vect-loop-manip.c (adjust_info): New type.
22847         (adjust_vec): New pointer to vector.
22848         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
22849         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
22850         (slpeel_update_phis_for_duplicate_loop): Use them.
22851         (slpeel_update_phi_nodes_for_guard1): Likewise.
22852         (slpeel_update_phi_nodes_for_guard2): Likewise.
22853         (slpeel_tree_peel_loop_to_edge): Likewise.
22854         (vect_update_ivs_after_vectorizer): Likewise.
22855
22856 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22857
22858         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
22859         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
22860
22861 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22862
22863         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
22864         bogus uninitialized warning.
22865
22866 2010-01-09  Richard Guenther  <rguenther@suse.de>
22867
22868         PR middle-end/42512
22869         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
22870         the evolution is compatible with the initial condition.
22871
22872 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
22873
22874         * gcc.c (process_command): Update copyright notice dates.
22875         * gcov.c (print_version): Likewise.
22876         * gcov-dump.c (print_version): Likewise.
22877         * mips-tfile.c (main): Likewise.
22878         * mips-tdump.c (main): Likewise.
22879
22880 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
22881
22882         PR target/41885
22883         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
22884         (rotlhi3): Delete.
22885         (rotlhi3_8): Delete.
22886         (rotlsi3): Delete.
22887         (rotlsi3_8): Delete.
22888         (rotlsi3_16): Delete.
22889         (rotlsi3_24): Delete.
22890         (rotl<mode>3): New.
22891         (*rotw<mode>3): New.
22892         (*rotb<mode>3): New.
22893         * config/avr/avr.c (avr_rotate_bytes): New function.
22894         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
22895
22896 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
22897
22898         PR target/37454
22899         * configure.ac: Modify -rdynamic check.
22900         * configure: Regenerate.
22901
22902 2010-01-08  DJ Delorie  <dj@redhat.com>
22903
22904         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
22905         register popping order.
22906
22907 2010-01-08  Richard Guenther  <rguenther@suse.de>
22908
22909         PR lto/42528
22910         * c.opt (fsigned-char): Also let LTO handle this option.
22911         (funsigned-char): Likewise.
22912
22913 2010-01-07  Richard Guenther  <rguenther@suse.de>
22914
22915         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
22916         (gimple_op): Likewise.
22917         (gimple_op_ptr): Likewise.
22918         (gimple_assign_set_lhs): Remove gcc_assert.
22919         (gimple_assign_set_rhs1): Likewise.
22920         (gimple_assign_set_rhs2): Likewise.
22921         (gimple_call_set_lhs): Likewise.
22922         (gimple_call_set_fn): Likewise.
22923         (gimple_call_set_fndecl): Likewise.
22924         (gimple_call_fndecl): Likewise.
22925         (gimple_call_return_type): Likewise.
22926         (gimple_call_set_chain): Likewise.
22927         (gimple_call_num_args): Likewise.
22928         (gimple_call_set_arg): Likewise.
22929         (gimple_cond_set_code): Likewise.
22930         (gimple_cond_set_lhs): Likewise.
22931         (gimple_cond_set_rhs): Likewise.
22932         (gimple_cond_set_true_label): Likewise.
22933         (gimple_cond_set_false_label): Likewise.
22934         (gimple_label_set_label): Likewise.
22935         (gimple_goto_set_dest): Likewise.
22936         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
22937         (gimple_debug_bind_get_value): Likewise.
22938         (gimple_debug_bind_get_value_ptr): Likewise.
22939         (gimple_debug_bind_set_var): Likewise.
22940         (gimple_debug_bind_set_value): Likewise.
22941         (gimple_debug_bind_reset_value): Likewise.
22942         (gimple_debug_bind_has_value_p): Likewise.
22943         (gimple_return_retval_ptr): Remove gcc_assert.
22944         (gimple_return_retval): Likewise.
22945         (gimple_return_set_retval): Likewise.
22946         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
22947         (safe_referenced_var_iterator): Remove.
22948         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
22949         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
22950         (fill_referenced_var_vec): Remove.
22951         (first_readonly_imm_use): Remove redundant gcc_assert.
22952         (phi_arg_index_from_use): Combine gcc_asserts.
22953         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
22954         (first_imm_use_stmt): Remove redundant gcc_assert.
22955         * tree-cfg.c (verify_gimple_call): Verify function and chain
22956         operands.  Verify arguments.
22957         (verify_types_in_gimple_stmt): Verify condition code and labels.
22958
22959 2010-01-07  Richard Guenther  <rguenther@suse.de>
22960
22961         PR tree-optimization/42641
22962         * sese.c (rename_map_elt_info): Use the SSA name version, do
22963         not hash pointers.
22964
22965 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
22966
22967         PR tree-optimization/42625
22968         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
22969         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
22970
22971 2010-01-07  Duncan Sands  <baldrick@free.fr>
22972
22973         * Makefile.in (PLUGIN_HEADERS): Add version.h.
22974
22975 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
22976
22977         PR target/42511
22978         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
22979         note itself is not function_invariant_p.
22980
22981 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
22982
22983         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
22984         Do not add the DF_NOTE problem.
22985         * store-motion.c (execute_rtl_store_motion): Likewise.
22986
22987 2010-01-07  Martin Jambor  <mjambor@suse.cz>
22988
22989         PR tree-optimization/42157
22990         * tree-sra.c (compare_access_positions): Stabilize sort if both
22991         accesses have integer types, return zero immediately if they are the
22992         same.
22993
22994 2010-01-06  Richard Henderson  <rth@redhat.com>
22995
22996         PR middle-end/41883
22997         * haifa-sched.c (add_to_note_list): Merge into ...
22998         (concat_note_lists): ... here, and ...
22999         (unlink_other_notes, rm_other_notes): Merge into...
23000         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
23001         NOTE_INSN_EPILOGUE_BEG.
23002
23003 2010-01-06  Richard Guenther  <rguenther@suse.de>
23004
23005         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
23006         not inline regular functions into always-inline functions.
23007
23008 2010-01-06  Nick Clifton  <nickc@redhat.com>
23009
23010         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
23011         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
23012         used together.
23013         (OVERRIDE_OPTIONS): Delete.
23014         (OPTIMIZATION_OPTIONS): Define.
23015         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
23016         * config/rx/rx.c (rx_handle_option): Issue an error message if
23017         -mcpu=rx200 and -fpu are used together.
23018         (rx_set_optimization_options): New function.  Issue an error
23019         message if an optimization attribute attempts to reset the FPU/
23020         math optimization pairing.
23021         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
23022         * config/rx/rx.opt: Set the default to 32-bit doubles.
23023         * config/rx/t-rx: Add multilibs for -nofpu option.
23024         * doc/invoke.texi: Update documentation of RX options.
23025
23026 2010-01-06  Richard Guenther  <rguenther@suse.de>
23027
23028         * tree-ssa-pre.c (name_to_id): New global.
23029         (alloc_expression_id): Simplify SSA name handling.
23030         (lookup_expression_id): Likewise.
23031         (init_pre): Zero name_to_id.
23032         (fini_pre): Free it.
23033
23034 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
23035
23036         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
23037
23038 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
23039
23040         PR target/42542
23041         * config/i386/sse.md (smaxv2di3): New.
23042         (umaxv2di3): Likewise.
23043         (sminv2di3): Likewise.
23044         (uminv2di3): Likewise.
23045
23046 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
23047
23048         PR target/42564
23049         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
23050         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
23051         (legitimize_tls_address): Likewise.
23052         (sparc_tls_referenced_p): Likewise.
23053         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
23054         and adjust calls to legitimize_pic_address.
23055         (legitimate_constant_p) Use sparc_tls_referenced_p.
23056         (legitimate_pic_operand_p): Likewise.
23057         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
23058         (sparc_tls_symbol_ref_1): Delete.
23059         (sparc_tls_referenced_p): Make static, recognize specific patterns.
23060         (legitimize_tls_address): Make static, handle CONST patterns.
23061         (legitimize_pic_address): Make static, remove unused parameter and
23062         adjust recursive calls.
23063         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
23064         and adjust call to legitimize_pic_address.
23065         (sparc_output_mi_thunk): Likewise.
23066
23067 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
23068             H.J. Lu  <hongjiu.lu@intel.com>
23069
23070         PR target/42542
23071         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
23072         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
23073         operands to make them signed.
23074
23075         Revert:
23076         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
23077
23078         PR target/42542
23079         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
23080         GTU to GT for V4SI and V2DI.
23081
23082         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
23083         (umin<mode>3): Removed.
23084         (uminv8hi3): New.
23085         (uminv4si3): Likewise.
23086
23087 2010-01-05  Martin Jambor  <mjambor@suse.cz>
23088
23089         PR tree-optimization/42462
23090         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
23091         current_function_decl to helper functions and macros.
23092
23093 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23094
23095         PR bootstrap/41771
23096         * flags.h: Don't include real.h.
23097         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
23098         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
23099         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
23100         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
23101         * dominance.c: Update copyright.
23102         * gimple.c (walk_gimple_op): Remove inline.
23103         * tree-ssa-reassoc.c: Include real.h.
23104         * Makefile.in (FLAGS_H): Remove $(REAL_H).
23105         (tree-ssa-reassoc.o): Depend on $(REAL_H).
23106
23107 2010-01-05  Nick Clifton  <nickc@redhat.com>
23108
23109         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
23110         register to push into the stack frame when the accumulator has to
23111         be saved during interrupts.
23112
23113 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
23114
23115         * doc/invoke.texi: Remove the documentation about option
23116         -Wunreachable-code.
23117         * common.opt (Wunreachable-code):  Preserved for backward
23118         compatibility.
23119         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
23120         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
23121         the backward compatibility flag section.
23122
23123 2010-01-05  Richard Guenther  <rguenther@suse.de>
23124
23125         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
23126
23127 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
23128
23129         PR other/42611
23130         * cfgexpand.c (expand_one_var): Diagnose too large variables.
23131
23132         PR tree-optimization/42508
23133         * tree-sra.c (convert_callers): Check for recursive call
23134         by comparing cgraph nodes instead of decls.
23135         (modify_function): Call ipa_modify_formal_parameters also
23136         on all same_body aliases.
23137
23138         * cgraphunit.c (cgraph_materialize_all_clones): Compare
23139         cgraph nodes when checking for same_body aliases.
23140
23141 2010-01-05  Richard Guenther  <rguenther@suse.de>
23142
23143         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
23144         allocation and lookup.
23145         (get_or_alloc_expr_for_constant): Likewise.
23146         (phi_translate): Sink allocation.
23147
23148 2010-01-04  Richard Guenther  <rguenther@suse.de>
23149
23150         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
23151         a new entry only if needed.
23152         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
23153         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
23154         hashtable lookup.
23155         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
23156         the result array.
23157         (phi_translate): Handle CONSTANTs early.
23158
23159 2010-01-04  Martin Jambor  <mjambor@suse.cz>
23160
23161         PR tree-optimization/42398
23162         * tree-sra.c (struct access): Removed flag grp_different_types.
23163         (dump_access): Do not dump the removed flag.
23164         (sort_and_splice_var_accesses): Do not set the removed flag.
23165         (sra_modify_expr): Check for type compatibility directly.
23166
23167 2010-01-04  Martin Jambor  <mjambor@suse.cz>
23168
23169         PR tree-optimization/42366
23170         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
23171         edges with variable number of parameters.
23172         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
23173         flag instead of asserting it.
23174         (ipa_read_node_info): Read uses_analysis_done flag.
23175
23176 2010-01-04  Richard Guenther  <rguenther@suse.de>
23177
23178         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
23179         iterative_hash_* as intended.
23180         (vn_reference_compute_hash): Likewise.  Simplify hashing
23181         SSA names.
23182         (vn_reference_lookup_2): Likewise.
23183         (vn_nary_op_compute_hash): Likewise.
23184         (vn_phi_compute_hash): Likewise.
23185         (expressions_equal_p): Remove strange code.
23186         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
23187         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
23188         (bitmap_insert_into_set_1): Take value-id as parameter.
23189         (add_to_value): Pass it.
23190         (bitmap_insert_into_set): Likewise.
23191         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
23192
23193 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
23194
23195         PR driver/42442
23196         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
23197         (do_self_spec): For switches with SWITCH_IGNORE set set also
23198         SWITCH_IGNORE_PERMANENTLY.
23199         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
23200         of SWITCH_IGNORE.
23201
23202 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
23203
23204         * lto-streamer-out.c (output_unreferenced_globals): Output the full
23205         tree of an unreferenced global var.
23206
23207 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
23208
23209         PR target/42542
23210         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
23211         GTU to GT for V4SI and V2DI.
23212
23213         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
23214         (umin<mode>3): Removed.
23215         (uminv8hi3): New.
23216         (uminv4si3): Likewise.
23217
23218 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
23219
23220         PR lto/42581
23221         * collect2.c (main): Turn on trace in collect2 if -v is passed
23222         to gcc with LTO.
23223
23224 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
23225
23226         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
23227         description of expression operand.
23228
23229 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
23230
23231         * configure.ac: Add install-html to target_list for Make-hooks.
23232         * configure: Regenerate.
23233         * fortran/Make-lang.in (F95_HTMLFILES): New.
23234         (fortran.html): Use it.
23235         (fortran.install-html): New.
23236         * Makefile.in (install-html): Add lang.install-html.
23237         * java/Make-lang.in (JAVA_HTMLFILES): New.
23238         (java.html): Use it.
23239         (java.install-html): New.
23240         * objc/Make-lang.in (objc.install-html): New.
23241         * objcp/Make-lang.in (obj-c++.install-html): New.
23242         * cp/Make-lang.in (c++.install-html): New.
23243         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
23244         * lto/Make-lang.in (lto.install-html): New.
23245
23246 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
23247
23248         PR lto/42520
23249         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
23250
23251 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
23252
23253         PR rtl-optimization/41862
23254         * store-motion.c (store_killed_in_insn, compute_store_table,
23255         remove_reachable_equiv_notes, replace_store_insn,
23256         build_store_vectors): Ignore all DEBUG_INSNs.
23257
23258 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
23259
23260         PR lto/41564
23261         * common.opt: Add dumpdir.
23262
23263         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
23264         isn't specified.
23265         (option_map): Add --dumpdir.
23266
23267         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
23268
23269         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
23270
23271         * opts.c (decode_options): Try dump_dir_name first if
23272         dump_base_name isn't an absolute path.
23273         (common_handle_option): Handle OPT_dumpdir.
23274
23275         * toplev.c (dump_dir_name): New.
23276         (print_switch_values): Also ignore -dumpdir.
23277
23278         * toplev.h (dump_dir_name): New.
23279
23280 2010-01-03  Richard Guenther  <rguenther@suse.de>
23281
23282         PR tree-optimization/42589
23283         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
23284         double-word expansion of bswap32.
23285
23286 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
23287
23288         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
23289         with BLOCK_FOR_INSN.
23290         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
23291         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
23292         noce_process_if_block): Likewise.
23293         * gcse.c (compute_local_properties, insert_expr_in_table,
23294         insert_set_in_table, canon_list_insert, find_avail_set,
23295         pre_insert_copy_insn): Likewise.
23296
23297         * basic-block.h (BLOCK_NUM): Move from here...
23298         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
23299
23300 2010-01-03  Richard Guenther  <rguenther@suse.de>
23301
23302         PR tree-optimization/42438
23303         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
23304         contains_may_not_return_call flag.
23305         (BB_MAY_NOTRETURN): New.
23306         (valid_in_sets): Trapping nary operations are not valid
23307         in blocks that may not return.
23308         (insert_into_preds_of_block): Remove check for trapping expressions.
23309         (compute_avail): Compute also BB_MAY_NOTRETURN.
23310
23311 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
23312
23313         * doc/invoke.texi: Add 2010 to copyright years.
23314
23315 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
23316
23317         * config/sparc/sparc.c: Fix formatting nits.
23318
23319 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
23320             Alexander Monakov  <amonakov@ispras.ru>
23321
23322         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
23323
23324 2010-01-02  Richard Guenther  <rguenther@suse.de>
23325
23326         PR middle-end/42577
23327         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
23328         (simplify_switch_using_ranges): Mark to be removed edges
23329         as non-executable.
23330
23331 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23332
23333         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
23334
23335         * collect2.c (scan_libraries): Add missing argument in call to
23336         scan_prog_file.
23337
23338 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
23339
23340         PR target/42448
23341         * config/alpha/predicates.md (aligned_memory_operand): Return false
23342         for CQImode.
23343         (unaligned_memory_operand): Return true for CQImode.
23344         * config/alpha/alpha.c (get_aligned_mem): Assert that location
23345         doesn not cross aligned SImode word boundary.
23346
23347 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
23348
23349         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
23350         Remove.
23351         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
23352         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
23353
23354 2010-01-02  Richard Guenther  <rguenther@suse.de>
23355
23356         PR lto/41597
23357         * toplev.c (compile_file): Emit LTO marker properly.  Change
23358         it to __gnu_lto_v1.
23359         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
23360
23361 2010-01-01  Richard Guenther  <rguenther@suse.de>
23362
23363         PR debug/42455
23364         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
23365
23366 2010-01-01  Richard Guenther  <rguenther@suse.de>
23367
23368         PR c/42570
23369         * c-decl.c (grokdeclarator): For zero-size arrays force
23370         structural equality checks as layout_type does.
23371
23372 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
23373
23374         * builtins.c: Update copyright to 2010.
23375
23376 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
23377
23378         PR lto/42531
23379         * lto-streamer-out.c (produce_asm): Revert the last change.
23380         (copy_function): Likewise.
23381
23382         * lto-streamer.c (lto_get_section_name): Skip any leading
23383         asterisk in name.
23384
23385 2010-01-01  Richard Guenther  <rguenther@suse.de>
23386
23387         PR middle-end/42559
23388         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
23389         for LABEL_DECLs.
23390
23391 \f
23392 Copyright (C) 2010 Free Software Foundation, Inc.
23393
23394 Copying and distribution of this file, with or without modification,
23395 are permitted in any medium without royalty provided the copyright
23396 notice and this notice are preserved.