OSDN Git Service

PR driver/15303
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
2
3         PR driver/15303
4         * gcc.c (inform, warning, inform): New functions.
5         (fatal_ice): Rename to internal_error; change cmsgid parameter to
6         gmsgid.  All callers changed.
7         (notice): Rename to fnotice; add parameter fp.  All callers
8         changed.
9         (fatal_error): Rename to fatal_signal.  All users changed.
10         (fatal): Rename to fatal_error; change cmsgid parameter to
11         gmsgid.  All callers changed.
12         (process_command): Use warning instead of error for warnings.
13         (end_going_arg): Don't use _() around argument of error.
14         (do_spec_1): Use inform for message from %n specs.  Use warning
15         instead of error for warnings.
16         (main): Use inform for comparison messages.  Use warning for
17         message about unused linker input.
18         (error): Increment error_count.  Print "error: ".
19         * gcc.h (fatal): Change to fatal_error.
20         (warning): Declare.
21         * config/darwin-driver.c (darwin_default_min_version): Use warning
22         instead of fprintf for warnings.
23         * cppspec.c (lang_specific_driver): Use fatal_error instead of
24         fatal.
25
26 2010-05-28  Julian Brown  <julian@codesourcery.com>
27
28         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
29         (*thumb2_addsi3_compare0_scratch): New.
30         * config/arm/constraints.md (Pv): New.
31         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
32         for ARM mode only.
33         (*addsi3_compare0_scratch): Likewise.
34
35 2010-05-28  Jan Hubicka  <jh@suse.cz>
36
37         * ipa-reference.c (add_static_var): Remove redundant all_module_statics check.
38         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis only
39         on local statics.
40
41 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
42
43         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
44
45 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
46
47         PR bootstrap/44314
48         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
49         (OPTION_GLIBC): Define.
50
51 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
52
53         PR debug/41048
54         * dwarf2out.c (double_int_type_size_in_bits): New function.
55         (round_up_to_align): Change first argument and return value to
56         double_int.
57         (field_byte_offset): Work internally on double_ints.
58
59         PR target/43636
60         * builtins.c (expand_movstr): Use a temporary pseudo instead
61         of target even when target is not NULL and not const0_rtx, but
62         fails movstr predicate.
63         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
64
65 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
66
67         * final.c (rest_of_clean_state): Use %m in errors instead of
68         strerror (errno).
69         * gengtype.c (read_input_list, close_output_files): Use xstrerror
70         instead of strerror.
71         * toplev.c (process_options): Use %m in errors instead of strerror
72         (errno).
73         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
74         (errno).
75
76 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
77
78         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
79         (ix86_canonical_va_list_type): Make static.  Add declaration.
80         (ix86_enum_va_list): Make static.  Reindent.
81         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
82         (ix86_canonical_va_list_type): Ditto.
83         (ix86_enum_va_list): Ditto.
84
85 2010-05-28  Richard Guenther  <rguenther@suse.de>
86
87         * lto-wrapper.c (run_gcc): With -save-temps generate a
88         user-visible ltrans filename.  Fixup ltrans unit numbering.
89
90 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
91
92         * c-common.c (c_common_nodes_and_builtins): Replace use
93         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
94         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
95         to ix86_enum_va_list.
96         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
97         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
98         (TARGET_ENUM_VA_LIST_P): Add hook description.
99         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
100         * target.h (gcc_target): Add enum_va_list hook.
101
102         PR bootstrap/44299
103         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
104         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
105         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
106
107 2010-05-28  Alan Modra  <amodra@gmail.com>
108
109         PR target/44266
110         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
111         emit_library_call machinery to set up __tls_get_addr calls.
112
113 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
114
115         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
116
117 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
118
119         revert fix for PR c++/44188
120         * c-common.c (is_typedef_decl): Revert the moving of  this
121         definition ...
122         * tree.c (is_typedef_decl): ... here.
123         (typdef_variant_p): Revert the moving of this  definition
124         here from gcc/cp/tree.c.
125         * c-common.h (is_typedef_decl): Revert the moving of this
126         declaration ...
127         * tree.h (is_typedef_decl): ... here.
128         (typedef_variant_p): Revert the moving of this  declaration here
129         from gcc/cp/cp-tree.h
130         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
131         (gen_tagged_type_die): Revert the splitting out of ...
132         (gen_type_die_with_usage): ... this function. Revert the anonymous
133         tagged type handling.
134         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
135         typedefs naming anonymous tagged types.
136
137
138 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
139
140         * config/rs6000/rs6000-modes.def (PSImode): Delete.
141
142 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
143
144         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
145         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
146         throughout.
147         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
148         "xer" to "ca".
149         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
150         XER_REGS to CA_REGS throughout.
151         * config/rs6000/rs6000.h: Same.
152         (ADDITIONAL_REGISTER_NAMES): Add "xer".
153         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
154         that mode_iterator "P" is the size for arithmetic carries as well.
155         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
156
157 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
158
159         PR bootstrap/44255
160         * combine.c (struct rtx_subst_pair): Define unconditionally.
161         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
162         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
163         Call make_compound_operation on pair->to.
164         (propagate_for_debug): Don't call make_compound_operation here.
165         Always use simplify_replace_fn_rtx.
166
167 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
168
169         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
170         * config/xtensa/xtensa.c (override_options): Check
171           TARGET_FORCE_NO_PIC and set flag_pic.
172         * config/xtensa/xtensa.opt: Document -mforce-no-pic
173
174 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
175
176         PR bootstrap/44299
177         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
178         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
179
180 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
181
182         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
183         toplev.h.
184         * diagnostic.c: Don't include toplev.h.
185         (progname): Define.  Moved from toplev.c.
186         (seen_error): New function.
187         * diagnostic.h: Include diagnostic-core.h.
188         (diagnostic_t, emit_diagnostic): Don't declare here.
189         * toplev.c (progname): Move to toplev.c.
190         (emit_debug_global_declarations, compile_file, finalize,
191         do_compile, toplev_main): Use seen_error.
192         * toplev.h: Include diagnostic-core.h.
193         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
194         internal_error, warning, warning_at, error, error_n, error_at,
195         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
196         verbatim, fnotice, progname): Move to diagnostic-core.h.
197         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
198         (expand_builtin_expect): Use seen_error.
199         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
200         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
201         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
202         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
203         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
204         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
205         errorcount for errors.
206         * c-opts.c (c_common_finish): Use seen_error.
207         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
208         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
209         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
210         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
211         (get_coverage_counts): Use seen_error.
212         * dwarf2out.c (dwarf2out_finish): Use seen_error.
213         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
214         gimplify_body): Use seen_error.
215         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
216         * ipa-pure-const.c (gate_pure_const): Use seen_error.
217         * ipa-reference.c (gate_reference): Use seen_error.
218         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
219         * lambda-code.c: Include diagnostic-core.h instead of
220         diagnostic.h.
221         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
222         * lto-compress.c: Include diagnostic-core.h instead of
223         diagnostic.h.
224         * lto-section-in.c: Include diagnostic-core.h instead of
225         diagnostic.h.
226         * lto-streamer-out.c: Include diagnostic-core.h instead of
227         diagnostic.h.
228         * lto-streamer.c: Include diagnostic-core.h instead of
229         diagnostic.h.
230         (gate_lto_out): Use seen_error.
231         * matrix-reorg.c: Include diagnostic-core.h instead of
232         diagnostic.h.
233         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
234         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
235         (gate_expand_omp, lower_omp_1): Use seen_error.
236         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
237         (rest_of_decl_compilation, rest_of_type_compilation,
238         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
239         * tree-cfg.c (label_to_block_fn): Use seen_error.
240         * tree-inline.c (optimize_inline_calls): Use seen_error.
241         * tree-mudflap.c (mudflap_finish_file): Use
242         seen_error.
243         * tree-optimize.c (gate_all_optimizations,
244         gate_all_early_local_passes, gate_all_early_optimizations): Use
245         seen_error.
246         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
247         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
248         (varpool_remove_unreferenced_decls,
249         varpool_assemble_pending_decls): Use seen_error.
250         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
251         (TOPLEV_H, DIAGNOSTIC_H): Update.
252         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
253         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
254         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
255         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
256         coverage.o, lambda-code.o): Update dependencies.
257
258 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
259
260         PR c++/44188
261         * c-common.c (is_typedef_decl): Move this definition ...
262         * tree.c (is_typedef_decl): ... here.
263         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
264         * c-common.h (is_typedef_decl): Move this declaration ...
265         * tree.h (is_typedef_decl): ... here.
266         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
267         * dwarf2out.c (is_naming_typedef_decl): New function.
268         (gen_tagged_type_die): Split out of ...
269         (gen_type_die_with_usage): ... this function. When an anonymous
270         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
271         is emitted for the typedef.
272         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
273         anonymous tagged types.
274
275 2010-05-27  Jason Merrill  <jason@redhat.com>
276
277         * print-tree.c (debug_vec_tree): New fn.
278         (print_vec_tree): New fn.
279         * tree.h: Declare them.
280         * gdbinit.in (pvt): New command.
281
282         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
283
284         * gdbinit.in (pdd): New command.
285
286 2010-05-27  Jan Hubicka  <jh@suse.cz>
287
288         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
289         (update_caller_keys): Return early if there are no callers;
290         only update fibheap when decresing the key.
291         (update_callee_keys): Avoid recursion.
292         (decide_inlining_of_small_functions): When badness does not match;
293         re-insert into fibheap.
294
295 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
296
297         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
298         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
299         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
300         (ALL_HOST_OBJS): Now a union of the above two.
301         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
302         all files in ALL_HOST_FRONTEND_OBJS.
303         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
304
305         * c-common.c: Pretend to be a backend file by undefining
306         IN_GCC_FRONTEND (still need rtl.h here).
307
308 2010-05-27  Jan Hubicka  <jh@suse.cz>
309
310         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
311         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
312
313 2010-05-27  Jan Hubicka  <jh@suse.cz>
314
315         * sched-ebb.c: Rename struct deps to struct deps_desc.
316         * ddg.c: Likewise.
317         * sel-sched-ir.c: Likewise.
318         * sched-deps.c: Likewise.
319         * sched-int.h: Likewise.
320         * sched-rgn.c: Likewise.
321
322 2010-05-27  Jon Beniston <jon@beniston.com>
323
324         PR 43726
325         * config/lm32/lm32.h: Remove definition of 
326         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
327
328 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
329
330         PR lto/44230
331         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
332
333 2010-05-27  Richard Guenther  <rguenther@suse.de>
334
335         PR tree-optimization/44284
336         * tree-vect-stmts.c (vectorizable_assignment): Handle
337         sign-changing conversions as simple copy.
338
339 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
340
341         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
342         Bionic C library.
343         (__gthread_active_p): Check for pthread_create if compiling against
344         Bionic C library.
345
346 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
347
348         Support compilation for Android platform.  Reimplement -mandroid.
349
350         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
351         (*android*): Set ANDROID_DEFAULT.
352         (arm*-*-linux*): Include linux-android.h.
353         (arm*-*-eabi*): Don't include previous -mandroid implementation.
354         * config/arm/eabi.h: Remove, move Android-specific parts ...
355         * config/linux-android.h: ... here.  New file.
356         * config/arm/eabi.opt: Rename to ...
357         * config/linux-android.opt: ... this.
358         (mandroid): Allow -mno-android option.  Initialize based on
359         ANDROID_DEFAULT.
360         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
361         Move logic to corresponding LINUX_TARGET_* macros.
362         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
363         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
364         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
365         Android definitions.
366         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
367         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
368         Document.
369
370 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
371
372         Add support for Bionic C library
373
374         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
375         macro.
376         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
377         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
378
379         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
380         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
381         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
382         to support multiple C libraries.  Handle Bionic.
383         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
384         (BIONIC_DYNAMIC_LINKER64): Define.
385         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
386         Update.
387         (TARGET_HAS_SINCOS): Enable for Bionic.
388
389         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
390         the last option specified on command line take effect.
391         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
392         (mbionic): New.
393         (mglibc, muclibc): Update.
394
395         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
396         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
397         DEFAULT_LIBC.
398
399         * doc/invoke.texi (-mglibc, -muclibc): Update.
400         (-mbionic): Document.
401
402 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
403
404         * c-common.h (c_register_addr_space): Add prototype.
405         (ADDR_SPACE_KEYWORD): Remove.
406         * c-common.c (c_register_addr_space): New function.
407         (c_addr_space_name): Reimplement.
408         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
409
410         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
411         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
412
413         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
414         Remove TARGET_ADDR_SPACE_KEYWORDS.
415
416 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
417
418         * input.c: New file.
419         * input.h (main_input_filename): Move declaration to toplev.h.
420         * toplev.c (input_location, line_table): Move to input.c
421         * toplev.h (main_input_filename): Move declaration from input.h.
422         * tree.c (expand_location): Move to input.c.
423         * Makefile.in (OBJS-common): Add input.o.
424         (input.o): Add dependencies.
425
426 2010-05-27  Richard Guenther  <rguenther@suse.de>
427
428         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
429         for non-existant files.
430         (fork_execute): Mark args_name file as deleted.
431
432 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
433
434         PR bootstrp/44287
435         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
436         (narrow_signed_type): Likewise.
437
438 2010-05-26  Jan Hubicka  <jh@suse.cz>
439
440         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
441         edge only when checking is enabled; check using former_clone_of;
442         check inline clones too.
443         (cgraph_materialize_clone): Record former_clone_of pointer.
444         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
445         combining redirections; dump args_to_skip bitmap
446         (cgraph_materialize_all_clones): Do no redirection here.
447         * ipa-inline.c (inline_transform): Do redirection here.
448         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
449         cheking only).
450
451 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
452
453         * config/avr/avr-c.c: Do not include regs.h.
454         Include cpplib.h for cpp_define and tree.h for c-common.h.
455         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
456         * config/avr/t-avr: Fix dependencies for avr-c.o.
457
458 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
459
460         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
461         string instead of SYMBOL_REF rtx.
462         * rtl.h (set_stack_check_libfunc): Move prototype from here...
463         * libfuncs.h: ...to here.  Adjust for explow.c change.
464
465 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
466
467         * pretty-print.c: Don't include ggc.h.
468         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
469         (identifier_to_locale): Use them for allocation.
470         * pretty-print.h (identifier_to_locale_alloc,
471         identifier_to_locale_free): Declare.
472         * toplev.c (alloc_for_identifier_to_locale): New.
473         (general_init): Set identifier_to_locale_alloc and
474         identifier_to_locale_free.
475         * Makefile.in (pretty-print.o): Update dependencies.
476
477 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
478
479         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
480         pointer types if they have different alignment or mode.
481
482 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
483
484         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
485         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
486         * config/sparc/sparc-protos.h (function_value): Remove declaration.
487         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
488         sparc_function_value_regno_p): New functions.
489         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
490         TARGET_FUNCTION_VALUE_REGNO_P): Define.
491         (function_value): Rename to...
492         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
493         argument to 'outgoing'.
494         (function_arg_record_value, function_arg_union_value,
495         function_arg_vector_value): Update comment.
496
497 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
498
499         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
500         (fde_needed_for_eh_p): New predicate.
501         (output_call_frame_info): Use it throughout to decide whether FDEs
502         are needed for EH purpose.
503         (dwarf2out_begin_prologue): Reorder assignments.
504
505 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
506
507         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
508         special case loop->header.
509         (is_predicated): New.
510         (if_convertible_loop_p): Call it.
511
512 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
513
514         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
515         iterator in parameter.  Do not generate code during the analysis.
516         (tree_if_convert_cond_stmt): Removed.
517         (tree_if_convert_stmt): Removed.
518         (predicate_bbs): New.
519         (if_convertible_loop_p): Call predicate_bbs.
520         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
521         now contains all the analysis part.
522
523 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
524
525         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
526         statements in the analysis part.
527         (tree_if_convert_stmt): Update comment.
528         (remove_conditions_and_labels): New.
529         (combine_blocks): Call remove_conditions_and_labels.
530         (tree_if_conversion): Update comment.
531
532 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
533
534         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
535         than 2 predecessors or more than 2 successors.
536
537 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
538
539         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
540         of loops in which the data dependence analysis fails.
541
542 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
543
544         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
545         CDI_POST_DOMINATORS.
546         (tree_if_conversion): Same.
547
548 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
549
550         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
551
552 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
553
554         * tree-if-conv.c: Update copyright years.  Fix comments.
555         Fix indentation.
556
557 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
558
559         * builtin-types.def (BT_INT128): New primitive type.
560         (BT_UINT128): Likewise.
561         * c-common.c (c_common_r): Add __int128 keyword.
562         (c_common_type_for_size): Handle __int128.
563         (c_common_type_for_mode): Likewise.
564         (c_common_signed_or_unsigned_type): Likewise.
565         (c_common_nodes_and_builtins): Add builtin type
566         if target supports 128-bit integer scalar.
567         * c-common.h (enum rid): Add RID_INT128.
568         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
569         if target supports 128-bit integer scalar.
570         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
571         (finish_declspecs): Likewise.
572         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
573         (c_token_starts_declspecs): Likewise.
574         (c_parser_declspecs): Likewise.
575         (c_parser_attributes): Likewise.
576         (c_parser_objc_selector): Likewise.
577         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
578         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
579         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
580         * tree.c (make_or_reuse_type): Likewise.
581         (make_unsigned_type): Likewise.
582         (build_common_tree_nodes_2): Likewise.
583         * tree.h (enum integer_type_kind): Add itk_int128 and
584         itk_unsigned_int128.
585         (int128_integer_type_node): New define.
586         (int128_unsigned_type_node): New define.
587         * doc/extend.texi: Add documentation about __int128 type.
588
589 2010-05-26  Richard Guenther  <rguenther@suse.de>
590
591         * tree-ssa-sccvn.c (copy_nary): Adjust.
592         (copy_phis): Rename to ...
593         (copy_phi): ... this.  Adjust.
594         (copy_references): Rename to ...
595         (copy_reference): ... this.  Adjust.
596         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
597         result into the valid table.
598
599 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
600
601         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
602         insn-config.h, insn-codes.h, recog.h, and optabs.h.
603
604 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
605
606         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
607
608 2010-05-26  Richard Guenther  <rguenther@suse.de>
609
610         * opts.c (common_handle_option): Handle OPT_Ofast.
611
612 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
613
614         * diagnostic.c: Don't include opts.h.
615         (permissive_error_option): Define.
616         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
617         for classify_diagnostic.  Don't use memset for
618         classify_diagnostic.  Initialize new and recently added fields.
619         (diagnostic_classify_diagnostic): Use context->n_opts instead of
620         N_OPTS.
621         (diagnostic_report_diagnostic): Pass context parameter to
622         diagnostic_report_warnings_p.  Use option_enabled and option_name
623         hooks from context.
624         (emit_diagnostic): Use permissive_error_option.
625         (permerror): Likewise.
626         * diagnostic.h: Don't include options.h.
627         (struct diagnostic_context): Add n_opts, opt_permissive,
628         inhibit_warnings, warn_system_headers, option_enabled and
629         option_name fields.  Change classify_diagnostic to a pointer.
630         * opts-diagnostic.h: New file.
631         * opts.c: Include opts-diagnostic.h.
632         (common_handle_option): Set global_dc fields for -Wfatal-errors,
633         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
634         (option_name): New function.
635         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
636         (c_common_handle_option): Set global_dc->permissive for
637         -fpermissive.
638         * c-common.c (c_cpp_error): Save and restore
639         global_dc->warn_system_headers, not variable warn_system_headers.
640         * toplev.c: Include opts-diagnostic.h.
641         (general_init): Update call to diagnostic_initialize.  Set
642         global_dc->show_column, global_dc->option_enabled and
643         global_dc->option_name.
644         (process_options): Don't set global_dc fields here.
645         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
646         (diagnostic.o, opts.o, toplev.o): Update dependencies.
647
648 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
649
650         * config/picochip/picochip.md (movsi): Split a movsi from a
651         const after reload.
652
653 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
654
655         * ggc-zone.c: Update copyright year.
656         (poison_region): Mark memory for Valgrind as undefined before
657         memset () call and inaccessible afterwards.
658         (ggc_pch_total_size): Change type of i to int.
659
660 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
661
662         * ggc-common.c (ggc_free_overhead): Allow empty slot.
663
664 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
665
666         * ggc-common.c: Update copyright year.
667         (ggc_rlimit_bound): Remove prototype.  Compile only if
668         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
669         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
670         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
671         (ggc_min_heapsize_heuristic): Likewise.
672
673 2010-05-26  Richard Guenther  <rguenther@suse.de>
674
675         PR rtl-optimization/44164
676         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
677         no-common access-path disambiguation.
678         (indirect_ref_may_alias_decl_p): Adjust.
679         (indirect_refs_may_alias_p): Likewise.
680         (refs_may_alias_p_1): Likewise.
681
682 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
683
684         * c-typeck.c: Do not include expr.h.
685
686 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
687
688         * rtl.h (decl_default_tls_model): Move prototype from here...
689         * output.h: ...to here.
690         * c-decl.c: Do not include rtl.h.
691         * c-pragma.c: Likewise.
692         * c-parser.c: Likewise.
693         * c-gimplify.c: Likewise.  And also not hard-reg-set.
694         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
695         FIXME note for it.  Add a FIXME note for expr.h.
696         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
697         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
698         defined.
699
700 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
701
702         PR target/44199
703         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
704         or total_size is larger than red zone size for non-V4 ABI, emit a
705         stack_tie resp. frame_tie insn before stack pointer restore.
706         * config/rs6000/rs6000.md (frame_tie): New insn.
707
708 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
709
710         * function.h (struct function): Add can_throw_non_call_exceptions bit.
711         * lto-streamer-in.c (input_function): Stream it in.
712         * lto-streamer-out.c (output_function): Stream it out.
713         * function.c (allocate_struct_function): Set it.
714         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
715         for flag_non_call_exceptions.
716         * cfgbuild.c (control_flow_insn_p): Likewise.
717         (make_edges): Likewise.
718         * cfgexpand.c (expand_stack_alignment): Likewise.
719         * combine.c (distribute_notes): Likewise.
720         * cse.c (cse_extended_basic_block): Likewise.
721         * except.c (insn_could_throw_p): Likewise.
722         * gcse.c (simple_mem): Likewise.
723         * ipa-pure-const.c (check_call): Likewise.
724         (check_stmt ): Likewise.
725         * lower-subreg.c (lower-subreg.c): Likewise.
726         * optabs.c (emit_libcall_block): Likewise.
727         (prepare_cmp_insn): Likewise.
728         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
729         * postreload.c (rest_of_handle_postreload): Likewise.
730         * reload1.c (reload_as_needed): Likewise.
731         (emit_input_reload_insns): Likewise.
732         (emit_output_reload_insns): Likewise.
733         (fixup_abnormal_edges): Likewise.
734         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
735         * store-motion.c (find_moveable_store): Likewise.
736         * tree-eh.c (stmt_could_throw_p): Likewise.
737         (tree_could_throw_p): Likewise.
738         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
739         * config/arm/arm.c (arm_expand_prologue): Likewise.
740         (thumb1_expand_prologue): Likewise.
741         * config/rx/rx.md (cbranchsf4): Likewise.
742         (cmpsf): Likewise.
743         * config/s390/s390.c (s390_emit_prologue): Likewise.
744         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
745         (inline_forbidden_into_p): New predicate.
746         (expand_call_inline): Use it to forbid inlining.
747         (tree_can_inline_p): Likewise.
748
749 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
750
751         * config/i386/i386-c.c: Do not include rtl.h.
752         * config/i386/t-i386: Update dependencies.
753
754 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
755
756         * attribs.c: Do not include rtl.h.
757         * Makefile.in: Update dependencies.
758
759 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
760
761         * double-int.h (double_int_and): New.
762         * combine.c (try_combine): Clean up, use double_int_* and
763         immed_double_int_const functions.
764
765 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
766
767         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
768         stderr to /dev/null instead of grep -q.
769         * configure: Regenerate.
770
771 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
772
773         * Makefile.in (EXCEPT_H): Fix typo.
774
775 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
776
777         * ira-build.c (update_conflict_hard_reg_costs): New.
778         (ira_build): Call update_conflict_hard_reg_costs.
779
780 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
781
782         PR debug/41371
783         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
784         ENABLE_CHECKING.
785         (intersect_loc_chains): Walk the s2var's loc_chain together
786         with s1node chain as long as the locations are equal, don't
787         call find_loc_in_1pdv in that case.
788
789         PR debug/42801
790         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
791         (copy_bind_expr): ... instead of here.
792         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
793         if the block hasn't been remapped.
794         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
795         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
796
797 2010-05-25  Richard Guenther  <rguenther@suse.de>
798
799         PR middle-end/44069
800         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
801         out-of-bounds array accesses.
802
803 2010-05-25  Richard Guenther  <rguenther@suse.de>
804
805         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
806         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
807         (run_gcc): Re-organize to make cleanup easier.
808
809 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
810
811         * config/s390/s390.c (optimization_options): Fix and move the
812         flag_prefetch_loop_arrays override ...
813         (override_options): ... here.
814
815 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
816
817         * diagnostic.c: Don't include plugin.h.
818         (diagnostic_report_diagnostic): Don't handle plugins specially
819         here.  Pass context to internal_error callback.
820         * diagnostic.h (struct diagnostic_context): Add context parameter
821         to internal_error callback.
822         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
823         * plugin.h (struct diagnostic_context): Declare.
824         (warn_if_plugins, plugins_internal_error_function): Declare.
825         * toplev.c (general_init): Set global_dc->internal_error.
826         * Makefile.in (diagnostic.o): Update dependencies.
827
828 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
829
830         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
831         * config/rs6000/t-darwin64: New.
832         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
833         build crt2.
834
835 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
836
837         PR 44203
838         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
839         match the original (and intended) behaviour before r159557.  This
840         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
841         in two ways.
842
843 2010-05-25  Richard Guenther  <rguenther@suse.de>
844
845         * doc/invoke.texi: Document -Ofast.
846         * target.h (struct gcc_target): Add handle_ofast.
847         * target-def.h (TARGET_HANDLE_OFAST): Add.
848         (TARGET_INITIALIZER): Adjust.
849         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
850         * common.opt (Ofast): Add.
851
852 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
853
854         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
855         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
856
857 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
858
859         PR target/43610
860         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
861         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
862         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
863         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
864
865 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
866
867         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
868         DW_OP_minus with negated offset instead of DW_OP_plus.
869         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
870
871 2010-05-25  Wei Guozhi  <carrot@google.com>
872
873         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
874         tst instruction and a new alternative.
875         * config/arm/constraints.md (Pu): New constraint.
876
877 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
878
879         * function.c (assign_stack_local_1): Initialize variable
880         to avoid warning when bootstrapping at -O3.
881
882 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
883
884         * configure.ac (all_lang_makefiles): Remove everything related to it.
885         * configure: Regenerate.
886         * Makefile.in: Fix reference to ada Make-lang.in.
887         Remove support for LANG_MAKEFILES.
888
889 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
890             Sandra Loosemore  <sandra@codesourcery.com>
891
892         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
893         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
894         description.  Add arm_neon_fp16_ok.
895         (Add Options): Add arm_neon and arm_neon_fp16.
896
897 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
898
899         * diagnostic.c: Don't include flags.h.
900         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
901         context parameters.  Check flags in the context passed as a parameter.
902         (diagnostic_build_prefix): Add context parameter.  Check
903         show_column flag in context.
904         (diagnostic_action_after_output): Check fatal_errors flag in context.
905         (diagnostic_report_current_module): Check show_column flag in context.
906         (default_diagnostic_starter): Update call to
907         diagnostic_build_prefix.
908         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
909         (emit_diagnostic): Pass context to permissive_error_kind.
910         (permerror): Pass context to permissive_error_kind.
911         * diagnostic.h (struct diagnostic_context): Add show_column,
912         pedantic_errors, permissive and fatal_errors fields.
913         (diagnostic_build_prefix): Update prototype.
914         * langhooks.c
915         * toplev.c (process_options): Set flags in global_dc from
916         flag_show_column, flag_pedantic_errors, flag_permissive,
917         flag_fatal_errors.
918         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
919         to diagnostic_build_prefix.
920         * Makefile.in (diagnostic.o): Update dependencies.
921
922 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
923
924         * config/i386/ia32intrin.h (__crc32q): Define only if
925         __SSE4_2__ is defined.
926
927 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
928
929         PR target/44132
930         PR middle-end/43602
931         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
932         DECL_VISIBILITY_SPECIFIED.
933         (emutls_decl): Set DECL_PRESERVE_P and copy
934         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
935         (emutls_finalize_control_var): New callback.
936         (emutls_finish): Finalize emutls control variables.
937         * toplev.c (compile_file): Move the call to emutls_finish ()
938         before varpool_assemble_pending_decls ().
939
940 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
941
942         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
943         added to the preprocessor condition.
944
945 2010-05-24  Paul Brook  <paul@codesourcery.com>
946
947         * gengtype-lex.l: Add HARD_REG_SET.
948         * expr.c (expand_expr_real_1): Record writes to hard registers.
949         * function.c (rtl_data): Add asm_clobbers.
950         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
951         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
952         Use crtl->asm_clobbers.
953
954 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
955
956         * doc/makefile.texi (Makefile): Mention stages 'profile'
957         and 'feedback' for profiledbootstrap.
958
959 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
960
961         PR target/44245
962         * config/i386/i386.c (def_builtin): Properly check
963         OPTION_MASK_ISA_64BIT.
964
965 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
966
967         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
968         typedefs with different but compatible types.  Allow duplicate
969         typedefs with the same type except for pedantic non-C1X, but give
970         warning for variably modified types.
971         * c-typeck.c (tagged_types_tu_compatible_p,
972         function_types_compatible_p, type_lists_compatible_p,
973         comptypes_internal): Add parameter different_types_p; set
974         *different_types_p for different but compatible types.  All
975         callers changed.
976         (comptypes_check_different_types): New.
977         * c-tree.h (comptypes_check_different_types): Declare.
978
979 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
980
981         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
982         * jump.c: Include basic-block.h.
983         * profile.c: Likewise.
984         * tree-profile.c: Likewise.
985         * coverage.c: Likewise.
986         * basic-block.h (optimize_function_for_size_p): Move to function.h.
987         (optimize_function_for_speed_p): Likewise.
988         * function.h (optimize_function_for_size_p,
989         optimize_function_for_speed_p): Moved here from basic-block.h.
990         * Makefile.in: Update dependencies.
991
992 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
993
994         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
995         before calling make; allow override through $MAKE.
996         * doc/invoke.texi (Optimize Options): Document override.
997
998 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
999
1000         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
1001         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1002         (rs6000_mode_dependent_address_ptr): Make static.
1003         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
1004         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
1005         Remove.
1006
1007 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
1008
1009         PR target/43869
1010         * config/i386/i386.c: Make sure that the correct regparm is passed.
1011
1012 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
1013
1014         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
1015         * sbitmap.c: ...to here to internalize sbitmap element access.
1016         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
1017         Explain why basic-block.h is included.
1018         * function.h: Include tm.h for CUMULATIVE_ARGS.
1019         * Makefile.in: Update dependencies.
1020
1021 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
1022
1023         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
1024         New core types.
1025         * sbitmap.h (struct sbitmap_def): Do not typedef here.
1026         * sbitmap.c: Include sbitmap.h.
1027         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
1028         hard-reg-set.h.  Split everything related to regsets out from here...
1029         * regset.h: ...to here.  New file.
1030         * df.h: Include regset.h and sbitmap.h.
1031         * tree-flow.h: Likewise.
1032         * cfgloop.h: Likewise.
1033         * except.h: Do not include sbitmap.h.  Include hashtab.h.
1034         * cgraph.h: Include vec.h and function.h.
1035         * reload.h (struct insn_chain): Change types of live_throughout
1036         and dead_or_set from regset_head to bitmap_head.
1037         (compute_use_by_pseudos): Be defined also if regset.h is not included.
1038         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
1039         spilled_regs from regset_head to bitmap_head to avoid dependency
1040         in regset.h.
1041         * sel-sched-ir.h: Include regset.h.
1042         * reload.c: Include df.h before reload.h.
1043         * caller-save.c: Likewise.
1044         * reload1.c: Likewise.
1045         * ira.c: Likewise.
1046         (mark_elimination): Update type of r to bitmap, consistent with
1047         DF_LR_IN.
1048         * dominance.c: Include bitmap.h.
1049         * modulo-sched.c: Include df.h.
1050         * cfganal.c: Include bitmap.h and sbitmap.h.
1051         * cfgbuild.c: Include sbitmap.h.
1052         * lcm.c: Include sbitmap.h.
1053         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
1054         * domwalk.c: Include sbitmap.h, exclude ggc.h.
1055         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
1056         * cselib.c: Include bitmap.h.
1057         * tree-optimize.c: Include regset.h.
1058         * stmt.c: Include bitmap.h.
1059         * Makefile.in: Update dependencies.
1060
1061 2010-05-22  Jan Hubicka  <jh@suse.cz>
1062
1063         * cgraph.h (struct varpool_node): Add same_comdat_group.
1064         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
1065         pointer.
1066         (output_varpool): Update call of lto_output_varpool_node.
1067         (input_varpool): Read same_comdat_group pointer.
1068         (input_varpool_1): Fixup same_comdat_group pointer.
1069         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
1070         group is needed, all are.
1071         * varpool.c (varpool_remove_node): Remove node from same comdat group
1072         linklist too.
1073         (varpool_analyze_pending_decls): Walk same comdat groups.
1074
1075 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
1076
1077         * rtl.h (union rtunion_def): Remove rt_bit member.
1078         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
1079         * print-rtl (print_rtx): Do not print the member.
1080         * gengtype.c (adjust_field_rtx_def): Do not handle it.
1081         * gengenrtl.c (type_from_format): Likewise.
1082         (accessor_from_format): Likewise.
1083
1084 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
1085
1086         * dbgcnt.c: Include toplev.h instead of errors.h.
1087         * ira-emit.c: Don't include errors.h.
1088         * ira.c: Include toplev.h instead of errors.h.
1089         * lto-compress.c: Include toplev.h instead of errors.h.
1090         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
1091         ira.o, dbgcnt.o): Update dependencies.
1092
1093 2010-05-22  Richard Guenther  <rguenther@suse.de>
1094
1095         * gimple.c (gimple_types_compatible_p): Check type qualifications
1096         before merging pointer to complete and pointer to incomplete type.
1097         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
1098         we use our own resolution algorithm.  The gold linker plugin
1099         doesn't do the job we want it to do here.
1100
1101 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
1102
1103         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
1104         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1105         (sparc_mode_dependent_address_p): New function.
1106
1107 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1108
1109         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
1110
1111         * timevar.c: Do not include any core headers.
1112         (timevar_print): De-i18n-ize.
1113         (print_time): Likewise.
1114         * timevar.h (timevar_push, timevar_pop): Make inline functions.
1115
1116 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
1117
1118         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
1119         langhooks-def.h.
1120         (diagnostic_initialize): Initialize x_data not last_function.
1121         (diagnostic_report_current_function): Move to tree-diagnostic.c.
1122         (default_diagnostic_starter): Call
1123         diagnostic_report_current_module not
1124         diagnostic_report_current_function.
1125         (diagnostic_report_diagnostic): Initialize x_data not
1126         abstract_origin.
1127         (verbatim): Likewise.
1128         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
1129         x_data.
1130         (struct diagnostic_context): Change last_function to x_data.
1131         (diagnostic_auxiliary_data): Replace with
1132         diagnostic_context_auxiliary_data and
1133         diagnostic_info_auxiliary_data.
1134         (diagnostic_last_function_changed, diagnostic_set_last_function,
1135         diagnostic_report_current_function): Move to tree-diagnostic.h.
1136         (print_declaration, dump_generic_node, print_generic_stmt,
1137         print_generic_stmt_indented, print_generic_expr,
1138         print_generic_decl, debug_c_tree, dump_omp_clauses,
1139         print_call_name, debug_generic_expr, debug_generic_stmt,
1140         debug_tree_chain, default_tree_printer): Move to
1141         tree-pretty-print.h.
1142         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
1143         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
1144         gimple-pretty-print.h.
1145         * pretty-print.c: Don't include tree.h
1146         (pp_base_format): Don't handle %K here.
1147         (pp_base_tree_identifier): Move to tree-pretty-print.c.
1148         * pretty-print.h (text_info): Change abstract_origin to x_data.
1149         (pp_tree_identifier, pp_unsupported_tree,
1150         pp_base_tree_identifier): Move to tree-pretty-print.h.
1151         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
1152         tree-pretty-print.h: New files.
1153         * tree-pretty-print.c: Include tree-pretty-print.h.
1154         (percent_K_format): New.  Moved from pretty-print.c.
1155         (pp_base_tree_identifier): Move from pretty-print.c.
1156         * c-objc-common.c: Include tree-pretty-print.h.
1157         (c_tree_printer): Handle %K here.
1158         * langhooks.c: Include tree-diagnostic.h.
1159         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
1160         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
1161         (default_tree_printer): Handle %K using percent_K_format.
1162         (general_init): Use default_tree_diagnostic_starter.
1163         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
1164         (free_lang_data): Use default_tree_diagnostic_starter.
1165         * c-pretty-print.c: Include tree-pretty-print.h.
1166         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1167         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1168         * dwarf2out.c: Include tree-pretty-print.h.
1169         * except.c: Include tree-pretty-print.h.
1170         * gimple-pretty-print.c: Include tree-pretty-print.h and
1171         gimple-pretty-print.h.
1172         * gimplify.c: Include tree-pretty-print.h.
1173         * graphite-poly.c: Include tree-pretty-print.h and
1174         gimple-pretty-print.h.
1175         * ipa-cp.c: Include tree-pretty-print.h.
1176         * ipa-inline.c: Include gimple-pretty-print.h.
1177         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1178         * ipa-pure-const.c: Include gimple-pretty-print.h.
1179         * ipa-struct-reorg.c: Include tree-pretty-print.h and
1180         gimple-pretty-print.h.
1181         * ipa-type-escape.c: Include tree-pretty-print.h.
1182         * print-rtl.c: Include tree-pretty-print.h.
1183         * print-tree.c: Include gimple-pretty-print.h.
1184         * sese.c: Include tree-pretty-print.h.
1185         * tree-affine.c: Include tree-pretty-print.h.
1186         * tree-browser.c: Include tree-pretty-print.h.
1187         * tree-call-cdce.c: Include gimple-pretty-print.h.
1188         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1189         * tree-chrec.c: Include tree-pretty-print.h.
1190         * tree-data-ref.c: Include tree-pretty-print.h and
1191         gimple-pretty-print.h.
1192         * tree-dfa.c: Include tree-pretty-print.h.
1193         * tree-if-conv.c: Include tree-pretty-print.h and
1194         gimple-pretty-print.h.
1195         * tree-inline.c: Include tree-pretty-print.h.
1196         * tree-into-ssa.c: Include tree-pretty-print.h and
1197         gimple-pretty-print.h.
1198         * tree-nrv.c: Include tree-pretty-print.h.
1199         * tree-object-size.c: Include tree-pretty-print.h and
1200         gimple-pretty-print.h.
1201         * tree-outof-ssa.c: Include tree-pretty-print.h and
1202         gimple-pretty-print.h.
1203         * tree-parloops.c: Include tree-pretty-print.h and
1204         gimple-pretty-print.h.
1205         * tree-predcom.c: Include tree-pretty-print.h and
1206         gimple-pretty-print.h.
1207         * tree-scalar-evolution.c: Include tree-pretty-print.h and
1208         gimple-pretty-print.h.
1209         * tree-sra.c: Include tree-pretty-print.h.
1210         * tree-ssa-address.c: Include tree-pretty-print.h.
1211         * tree-ssa-alias.c: Include tree-pretty-print.h.
1212         * tree-ssa-ccp.c: Include tree-pretty-print.h and
1213         gimple-pretty-print.h.
1214         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
1215         * tree-ssa-copy.c: Include tree-pretty-print.h and
1216         gimple-pretty-print.h.
1217         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
1218         * tree-ssa-dce.c: Include tree-pretty-print.h and
1219         gimple-pretty-print.h.
1220         * tree-ssa-dom.c: Include tree-pretty-print.h and
1221         gimple-pretty-print.h.
1222         * tree-ssa-dse.c: Include gimple-pretty-print.h.
1223         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
1224         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
1225         * tree-ssa-live.c: Include tree-pretty-print.h and
1226         gimple-pretty-print.h.
1227         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
1228         gimple-pretty-print.h.
1229         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
1230         gimple-pretty-print.h.
1231         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
1232         gimple-pretty-print.h.
1233         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
1234         gimple-pretty-print.h.
1235         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
1236         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
1237         * tree-ssa-operands.c: Include tree-pretty-print.h and
1238         gimple-pretty-print.h.
1239         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
1240         gimple-pretty-print.h.
1241         * tree-ssa-pre.c: Include tree-pretty-print.h and
1242         gimple-pretty-print.h.
1243         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
1244         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
1245         gimple-pretty-print.h.
1246         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
1247         gimple-pretty-print.h.
1248         * tree-ssa-sink.c: Include gimple-pretty-print.h.
1249         * tree-ssa-ter.c: Include tree-pretty-print.h and
1250         gimple-pretty-print.h.
1251         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
1252         * tree-ssa.c: Include tree-pretty-print.h and
1253         gimple-pretty-print.h.
1254         * tree-stdarg.c: Include gimple-pretty-print.h.
1255         * tree-switch-conversion.c: Include gimple-pretty-print.h.
1256         * tree-tailcall.c: Include tree-pretty-print.h and
1257         gimple-pretty-print.h.
1258         * tree-vect-data-refs.c: Include tree-pretty-print.h and
1259         gimple-pretty-print.h.
1260         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
1261         gimple-pretty-print.h.
1262         * tree-vect-loop.c: Include tree-pretty-print.h and
1263         gimple-pretty-print.h.
1264         * tree-vect-patterns.c: Include gimple-pretty-print.h.
1265         * tree-vect-slp.c: Include tree-pretty-print.h and
1266         gimple-pretty-print.h.
1267         * tree-vect-stmts.c: Include tree-pretty-print.h and
1268         gimple-pretty-print.h.
1269         * tree-vectorizer.c: Include tree-pretty-print.h.
1270         * tree-vrp.c: Include tree-pretty-print.h and
1271         gimple-pretty-print.h.
1272         * value-prof.c: Include tree-pretty-print.h and
1273         gimple-pretty-print.h.
1274         * var-tracking.c: Include tree-pretty-print.h.
1275         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
1276         (tree-diagnostic.o): New dependencies.
1277         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
1278         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
1279         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
1280         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
1281         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
1282         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
1283         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
1284         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
1285         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
1286         tree-ssa-address.o, tree-ssa-loop-niter.o,
1287         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
1288         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
1289         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
1290         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
1291         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
1292         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
1293         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
1294         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
1295         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
1296         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
1297         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
1298         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
1299         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
1300         tree-switch-conversion.o, var-tracking.o, value-prof.o,
1301         cfgexpand.o, pretty-print.o): Update dependencies.
1302
1303 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
1304
1305         * tree-ssa-structalias.c: Remove tm_p.h from include.
1306
1307 2010-05-21  Jeff Law  <law@redhat.com>
1308
1309         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
1310
1311 2010-05-21  Jason Merrill  <jason@redhat.com>
1312
1313         * tree-eh.c (cleanup_is_dead_in): New.
1314         (lower_try_finally): Don't generate a dead cleanup region.
1315         (lower_cleanup): Likewise.
1316
1317 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1318
1319         PR debug/44223
1320         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
1321         unchain each use from the cyclic next_regno_use chain first.
1322
1323 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1324
1325         * real: Do not include gmp.h, mpfr.h, and mpc.h.
1326         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
1327         (real_value_negate, real_value_abs): New prototypes.
1328         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
1329         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
1330         new include file for interface between MPFR and REAL_VALUE_TYPE.
1331         * real.c: Include realmpfr.h.
1332         (real_arithmetic2): Remove legacy function.
1333         (real_value_negate): New.
1334         (real_value_abs): New.
1335         (mfpr_from_real, real_from_mpfr): Move from here...
1336         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
1337         * builtins.c: Include realmpfr.h.
1338         * fold-const.c: Include realmpfr.h.
1339         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
1340         (fold_negate_const): Likewise.
1341         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
1342         * toplev.c: Include realmpfr.h.
1343         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
1344         and real_value_negate.
1345         * fixed-value.c (check_real_for_fixed_mode): Likewise.
1346         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
1347         (vfp3_const_double_index): Likewise.
1348         (arm_print_operand): Likewise.
1349         * Makefile.in: Update dependencies.
1350
1351 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1352
1353         * config/s390/s390.c (override_options): Increase the default
1354         of max-completely-peel-times.
1355
1356 2010-05-21  Julian Brown  <julian@codesourcery.com>
1357             Mark Mitchell  <mark@codesourcery.com>
1358
1359         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
1360         sibling calls for Thumb-1.
1361         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
1362         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
1363         Thumb-2.
1364         (*call_insn, *call_value_insn): Don't use for Thumb-2.
1365         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
1366         for Thumb-2.
1367         (return): New expander.
1368         (*arm_return): New name for ARM return insn.
1369         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
1370
1371 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
1372
1373         * config.gcc (sparc64-*-rtems*): New target.
1374
1375 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1376
1377         * tree.c (build_function_decl_skip_args): Fix grammar.
1378         (build_function_type_list_1): Fix typos, adjust formatting.
1379
1380 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1381
1382         * tree.h: Include real.h and fixed-value.h as basic datatypes.
1383         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
1384         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
1385         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
1386         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
1387         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
1388         tree-pretty-print.c, tree-loop-distribution.c,
1389         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
1390         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
1391         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
1392         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
1393         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
1394         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
1395         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
1396         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
1397         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
1398         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
1399         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
1400         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
1401         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
1402         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
1403         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
1404         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
1405         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
1406         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
1407         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
1408         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
1409         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
1410         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
1411         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
1412         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
1413         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
1414         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
1415         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
1416         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
1417         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
1418         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
1419         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
1420         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
1421         config/score/score7.c, config/score/score.c, config/arm/arm.c,
1422         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
1423         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
1424         config/bfin/bfin.c: Clean up redundant includes.
1425         * Makefile.in: Update accordingly.
1426
1427 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1428
1429         PR middle-end/44204
1430         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
1431         statement has no arguments.
1432
1433 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
1434
1435         PR/44139
1436         * varasm.c (emutls_decl): Merge attributes to new decl.
1437
1438 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1439
1440         PR middle-end/44101
1441         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
1442         around the uniquized constructor if its type requires a conversion.
1443
1444 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1445
1446         PR debug/44205
1447         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
1448         at -O0 goto_locus of any of the incoming edges differs from
1449         goto_locus of outgoing edge, or gimple_location of any of the
1450         labels differs.
1451
1452 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
1453
1454         * ira.c (ira_non_ordered_class_hard_regs): Define.
1455         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
1456         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
1457         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
1458         cost of unaligned hard regs when allocating multi-reg pseudos.
1459
1460 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
1461
1462         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
1463         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
1464         for TARGET_NO_FLOAT.
1465         * config/mips/mips.c (mips_file_start): Expand conditional expression
1466         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
1467         (mips_override_options): Move -mno-float override -msoft-float and
1468         -mhard-float.
1469         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
1470         Condition(TARGET_SUPPORTS_NO_FLOAT).
1471         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
1472         __mips_no_float here.
1473         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
1474         (TARGET_SUPPORTS_NO_FLOAT): Define.
1475         * config/mips/sdemtk.opt: Delete.
1476
1477 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
1478
1479         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
1480
1481 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
1482
1483         PR target/43733
1484         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
1485         * configure: Regenerate.
1486         * config.in: Regenerate.
1487         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
1488         instead of sahf only for 64bit targets.
1489
1490 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1491
1492         PR debug/44178
1493         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
1494         setup_ref_regs for DEBUG_INSNs.
1495
1496 2010-05-20  Jan Hubicka  <jh@suse.cz>
1497
1498         PR middle-end/44197
1499         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
1500
1501 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
1502
1503         PR bootstrap/43870
1504         * df-scan.c (df_ref_compare): Stabilize sort.
1505
1506 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1507
1508         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
1509         argument.  Don't use DW_OP_piece if offset is non-zero,
1510         put offset into second DW_OP_bit_piece argument.
1511         (dw_sra_loc_expr): Adjust callers.  For memory expressions
1512         compute offset.
1513
1514 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
1515
1516         PR target/44202
1517         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
1518         settings for 16-bit-constant "addo" alternative.
1519
1520 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
1521
1522         * config/mips/mips-dsp.md (add<DSPV:mode>3,
1523         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
1524
1525         PR target/43764
1526         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
1527         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
1528         Use it.
1529
1530 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
1531
1532         * diagnostic.c (FLOAT, FFS): Don't undefine.
1533         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
1534         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
1535         include ordering.
1536
1537 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
1538
1539         * combine.c (propagate_for_debug): Call make_compound_operation
1540         on the source value.
1541         (try_combine): When implementing a split chosen by find_split_point,
1542         either copy i2src or set it to null.  Assert that i2src is not null
1543         before substituting into CALL_INSN_FUNCTION_USAGE.
1544
1545 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
1546
1547         * double-int.h (double_int_ior): New function.
1548         * tree.h (build_int_cst_wide_type): Remove.
1549         * tree.c (build_int_cst_wide_type): Remove.
1550         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
1551         of build_int_cst_wide_type.
1552         * stor-layout.c (set_sizetype): (Ditto.).
1553         * dojump.c (do_jump): Use build_int_cstu instead of
1554         build_int_cst_wide_type.
1555
1556 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1557
1558         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
1559         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
1560         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
1561         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
1562         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
1563         propagate the 'data' argument to copy_tree_r.
1564         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
1565         Propagate 'data' argument to walk_tree.
1566         (copy_if_shared): New function.
1567         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
1568         (unmark_visited): New function.
1569         (unshare_body): Call copy_if_shared instead of doing it manually.
1570         (unvisit_body): Call unmark_visited instead of doing it manually.
1571
1572 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
1573
1574         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
1575         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
1576         * hooks.c: Likewise.
1577         * target-def.h (TARGET_FOLD_BUILTIN): Define to
1578         hook_tree_tree_int_treep_bool_null.
1579         * target.h (struct gcc_target): Update signature of fold_builtin
1580         field.
1581         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
1582         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
1583         instead of the call expression.
1584         (fold_builtin_call_array): Pass n and argarray directly.
1585         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
1586         consing a list.
1587         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
1588         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
1589         `i' and use it in place of `arity'.
1590         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
1591         Dereference `args' directly.
1592         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
1593
1594 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1595
1596         * doc/sourcebuild.texi (Effective-Target Keywords): Document
1597         3dnow, sse3, sse2.
1598         (Directives): Document optional dg-require-effective-target
1599         selector.
1600
1601 2010-05-19  Richard Guenther  <rguenther@suse.de>
1602
1603         PR lto/44196
1604         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
1605
1606 2010-05-19  Richard Guenther  <rguenther@suse.de>
1607
1608         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
1609         * common.opt (fwhopr=): New.
1610         * opts.c (common_handle_option): Handle OPT_fwhopr.
1611         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
1612         * collect2.c (main): Match -fwhopr*.
1613         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
1614         Execute ltrans stage in parallel when jobs is bigger than 1.
1615
1616 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1617
1618         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
1619         pentiumpro on Solaris 8/x86 with Sun as.
1620         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
1621         hidden alias bug.
1622         (gcc_cv_as_ix86_quad): Check for .quad directive.
1623         * configure: Regenerate.
1624         * config.in: Regenerate.
1625         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
1626
1627 2010-05-19  Martin Jambor  <mjambor@suse.cz>
1628
1629         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
1630         also for indirect edges.  Actual printing moved...
1631         (ipa_print_node_jump_functions_for_edge): ...here.
1632         (ipa_compute_jump_functions): Renamed to
1633         ipa_compute_jump_functions_for_edge and made static.
1634         (ipa_compute_jump_functions): New function.
1635         (make_edge_direct_to_target): Check if the number of arguments on
1636         the newly direct edge is the same as the number of parametrs of
1637         the callee.
1638         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
1639         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
1640         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
1641         analysis functions unconditionally, call the new
1642         ipa_analyze_params_uses on the node instead of every edge.
1643
1644 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
1645
1646         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
1647         to tree.
1648         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
1649         also checks for a constant int vs.  non-constant but
1650         loop-invariant steps.
1651         (find_or_create_group): Change the sort algorithm to only consider
1652         steps that are constant ints.
1653         (idx_analyze_ref): Adopt code to handle a tree instead of a
1654         HOST_WIDE_INT for step.
1655         (gather_memory_references_ref): Handle tree instead of int and be
1656         prepared to see a NULL_TREE.
1657         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
1658         prefetches if the step cannot be calculated at compile time.
1659         (issue_prefetch_ref): Issue prefetches for non-constant but
1660         loop-invariant steps.
1661
1662 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1663
1664         Revert:
1665         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1666
1667         * tree.h (build_call_list): Remove.
1668         * tree.c (build_call_list): Remove.
1669
1670 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1671
1672         * tree.h (build_call_list): Remove.
1673         * tree.c (build_call_list): Remove.
1674
1675 2010-05-18  Jan Hubicka  <jh@suse.cz>
1676
1677         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
1678
1679 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
1680
1681         PR rtl-optimization/43332
1682         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
1683
1684 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
1685
1686         * tree.h (build_int_cstu): Implement as static inline.
1687         * tree.c (build_int_cstu): Remove function.
1688         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
1689         sign extended.
1690
1691 2010-05-18  Richard Guenther  <rguenther@suse.de>
1692
1693         PR lto/44143
1694         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
1695         (debug): Initialize from -save-temps.
1696         (collect_execute): Print command-line when verbose.
1697         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
1698         for ltrans invocation.  Produce -dumpbase flag again.
1699         (process_args): Remove.
1700         (main): Simplify.
1701         * collect2.c (maybe_run_lto_and_relink): Only pass object
1702         files to lto-wrapper.
1703         * gcc.c (LINK_COMMAND_SPEC): Likewise.
1704
1705 2010-05-18  Jan Hubicka  <jh@suse.cz>
1706
1707         * opts.c (decode_options): Do not disable whopr at ipa_cp.
1708         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
1709
1710 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
1711
1712         PR lto/44184
1713         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
1714         in a GIMPLE_ASM.
1715         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
1716         in a GIMPLE_ASM.
1717
1718 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
1719
1720         PR debug/41371
1721         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
1722         rtx_equal_p inline.
1723
1724 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
1725
1726         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
1727         lto-macho as lto_binary_reader.
1728
1729         * darwin.c (darwin_asm_named_section): Do not add assembler comment
1730         after .section directive; just print it before the directive instead.
1731
1732 2010-05-17  Jan Hubicka  <jh@suse.cz>
1733
1734         * cgraph.c (cgraph_create_virtual_clone): Only check
1735         versionable_function_p when not in wpa and checking is enabled.
1736         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
1737         there are no more functions to materialize.
1738
1739 2010-05-17  Jan Hubicka  <jh@suse.cz>
1740
1741         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
1742         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
1743         New functions.
1744         (output_cgraph): Call output_cgraph_opt_summary.
1745         (input_cgrpah): Call input_cgraph_opt_summary.
1746         (output_cgraph_opt_summary_p, output_node_opt_summary,
1747         input_node_opt_summary, input_cgraph_opt_section): New functions.
1748         * lto-section-in.c (lto_section_name): Add cgraphopt.
1749         * tree-inline.c (tree_function_versioning): Handle parm_num.
1750         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
1751         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
1752
1753 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
1754
1755         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
1756         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
1757         the insn to prefetch ratio heuristic to loops with known trip count.
1758
1759 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
1760
1761         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
1762         (schedule_prefetches): Do not generate a prefetch if the unroll factor
1763         is far from what is required by the prefetch.
1764
1765 2010-05-17  Jan Hubicka  <jh@suse.cz>
1766
1767         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
1768         (ipcp_estimate_growth): Likewise.
1769         (ipcp_const_param_count): Likewise.
1770         (ipcp_insert_stage): Likewise.
1771         * ipa-prop.c (visit_load_for_mod_analysis): New function.
1772         (visit_store_addr_for_mod_analysis): Set used flag.
1773         (ipa_detect_param_modifications): Set used flag for SSE params;
1774         update use of walk_stmt_load_store_addr_ops.
1775         (ipa_print_node_params): Print used flag.
1776         (ipa_write_node_info): Stream used flag.
1777         (ipa_read_node_info): Likewise.
1778         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
1779         (ipa_is_param_used): New function.
1780         (lto_ipa_fixup_call_notes): Remove unused declaration.
1781
1782 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1783
1784         PR target/44074
1785         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
1786         * configure: Regenerate.
1787         * config.in: Regenerate.
1788         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
1789         !HAVE_AS_IX86_REP_LOCK_PREFIX.
1790         Don't emit whitespace.
1791         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
1792         (*rep_movsi): Likewise.
1793         (*rep_movsi_rex64): Likewise.
1794         (*rep_movqi): Likewise.
1795         (*rep_movqi_rex64): Likewise.
1796         (*rep_stosdi_rex64): Likewise.
1797         (*rep_stossi): Likewise.
1798         (*rep_stossi_rex64): Likewise.
1799         (*rep_stosqi): Likewise.
1800         (*rep_stosqi_rex64): Likewise.
1801         (*cmpstrnqi_nz_1): Use {%;} after repz.
1802         (*cmpstrnqi_nz_rex_1): Likewise.
1803         (*cmpstrnqi_1): Likewise.
1804         (*cmpstrnqi_rex_1): Likewise.
1805         (*strlenqi_1): Use {%;} after repnz.
1806         (*strlenqi_rex_1): Likewise.
1807         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
1808         (*sync_compare_and_swap<mode>): Likewise.
1809         (sync_double_compare_and_swap<mode>): Likewise.
1810         (*sync_double_compare_and_swapdi_pic): Likewise.
1811         (sync_old_add<mode>): Likewise.
1812         (sync_add<mode>): Likewise.
1813         (sync_sub<mode>): Likewise.
1814         (sync_<code><mode>): Likewise.
1815
1816 2010-05-17  Martin Jambor  <mjambor@suse.cz>
1817
1818         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
1819         otr_token and polymorphic.
1820         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
1821         (cgraph_clone_edge): Copy the above fields.
1822         * tree.c (get_binfo_at_offset): New function.
1823         * tree.h (get_binfo_at_offset): Declare.
1824         * ipa-prop.h (enum jump_func_type): Added known_type jump function
1825         type, reordered items, updated comments.
1826         (union jump_func_value): Added base_type field, reordered fields.
1827         (enum ipa_lattice_type): Moved down in the file.
1828         (struct ipa_param_descriptor): New field polymorphic.
1829         (ipa_is_param_polymorphic): New function.
1830         * ipa-prop.c: Include gimple.h and gimple-fold.h.
1831         (ipa_print_node_jump_functions): Print known type jump functions.
1832         (compute_complex_pass_through): Renamed to...
1833         (compute_complex_assign_jump_func): this.
1834         (compute_complex_ancestor_jump_func): New function.
1835         (compute_known_type_jump_func): Likewise.
1836         (compute_scalar_jump_functions): Create known type and complex ancestor
1837         jump functions.
1838         (ipa_note_param_call): New parameter polymorphic, set the corresponding
1839         flag in the call note accordingly.
1840         (ipa_analyze_call_uses): Renamed to...
1841         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
1842         variable var only in the block where it is used.
1843         (ipa_analyze_virtual_call_uses): New function.
1844         (ipa_analyze_call_uses): Likewise.
1845         (combine_known_type_and_ancestor_jfs): Likewise.
1846         (update_jump_functions_after_inlining): Implemented handling of a
1847         number of new jump function types combination.
1848         (print_edge_addition_message): Removed.
1849         (make_edge_direct_to_target): New function.
1850         (try_make_edge_direct_simple_call): Likewise.
1851         (try_make_edge_direct_virtual_call): Likewise.
1852         (update_call_notes_after_inlining): Renamed to...
1853         (update_indirect_edges_after_inlining): this.  Moved edge creation for
1854         indirect calls to try_make_edge_direct_simple_call, also calls
1855         try_make_edge_direct_virtual_call for virtual calls.
1856         (ipa_print_node_params): Changed the header message.
1857         (ipa_write_jump_function): Stream also known type jump functions.
1858         (ipa_read_jump_function): Likewise.
1859         (ipa_write_indirect_edge_info): Stream new fields in
1860         cgraph_indirect_call_info.
1861         (ipa_read_indirect_edge_info): Likewise.
1862         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
1863         GIMPLE_FOLD_H.
1864
1865 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1866
1867         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
1868
1869 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1870
1871         * tree.h (CALL_EXPR_ARGS): Delete.
1872         (call_expr_arglist): Delete.
1873         * tree.c (call_expr_arglist): Delete.
1874         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
1875         targetm.fold_builtin.
1876         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
1877         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
1878         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
1879         arglist parameter.  Use CALL_EXPR_ARG.
1880         (picochip_expand_builtin_3op): Likewise.
1881         (picochip_expand_builtin_2opvoid): Likewise.
1882         (picochip_expand_array_get): Likewise.
1883         (picochip_expand_array_put): Likewise.
1884         (picochip_expand_array_testport): Likewise.
1885         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
1886         rather than arglist.
1887         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
1888         CALL_EXPR_ARGS.
1889         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
1890         than TREE_VALUE and TREE_CHAIN.
1891         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
1892         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
1893         the arglist.
1894
1895 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
1896
1897         PR bootstrap/42347
1898         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
1899         to have no fallthru edge.
1900
1901         PR middle-end/44102
1902         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
1903         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
1904         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
1905         add BARRIER after previous bb if needed.
1906
1907 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1908
1909         * tree.c (build_function_type_list_1): Remove bogus assert condition.
1910
1911 2010-05-17  Alan Modra  <amodra@gmail.com>
1912
1913         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
1914         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
1915         with copy_reg rtx param.
1916         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
1917         Correct cases where code for ABI_V4 did not initialise the reg
1918         used to access frame.  Also leave frame_reg_rtx as sp for large
1919         frames that save no regs.
1920
1921 2010-05-17  Martin Jambor  <mjambor@suse.cz>
1922
1923         PR middle-end/44133
1924         * tree-sra.c (create_access_replacement): New parameter rename, mark
1925         the replaement for renaming only when it is true.
1926         (get_access_replacement): Pass true in the rename parameter of
1927         create_access_replacement.
1928         (get_unrenamed_access_replacement): New function.
1929         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
1930         replacement declaration from it.
1931
1932 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
1933
1934         * function.c (try_fit_stack_local, add_frame_space): New static
1935         functions.
1936         (assign_stack_local_1): Use them.  Look for opportunities to use
1937         space previously wasted on alignment.
1938         * function.h (struct frame_space): New.
1939         (struct rtl_data): Add FRAME_SPACE_LIST member.
1940         * reload1.c (something_was_spilled): New static variable.
1941         (alter_reg): Set it.
1942         (reload): Test it in addition to testing if the frame size changed.
1943
1944 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
1945
1946         * config/s390/s390.c: Define sane prefetch settings and activate
1947         flag_prefetch_loop_arrays on -O3.
1948         * config/s390/s390.h: Declare that read can use write prefetch.
1949
1950 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
1951
1952         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
1953         build.
1954
1955 2010-05-16  Jan Hubicka  <jh@suse.cz>
1956
1957         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
1958         function body; do not check stdarg field of struct function.
1959
1960 2010-05-16  Jan Hubicka  <jh@suse.cz>
1961
1962         * cgraph.c (dump_cgraph_node): Dump versionable flag.
1963         * cgraph.h (cgraph_local_info): Add versionable flag.
1964         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
1965         (ipcp_versionable_function_p): Use it.
1966         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
1967         versionable flag.
1968
1969 2010-05-16  Jan Hubicka  <jh@suse.cz>
1970
1971         * cgraph.c (cgraph_clone_node): Take decl argument and insert
1972         clone into hash when it is different from orig.
1973         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
1974         * cgraph.h (cgraph_clone_node): Update prototype.
1975         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
1976         (lto_cgraph_encoder_delete): Delete body map.
1977         (lto_cgraph_encoder_size): Move to header.
1978         (lto_cgraph_encoder_encode_body_p,
1979         lto_set_cgraph_encoder_encode_body): New.
1980         (lto_output_node): Do not take written_decls argument; output clone_of
1981         pointer.
1982         (add_node_to): Add include_body_argument; call
1983         lto_set_cgraph_encoder_encode_body on master of the clone.
1984         (add_references): Update use of add_node_to.
1985         (compute_ltrans_boundary): Likewise.
1986         (output_cgraph): Do not create written_decls bitmap.
1987         (input_node): Take nodes argument; stream in clone_of correctly.
1988         (input_cgraph_1): Update use of input_node.
1989         * lto-streamer-out.c (lto_output): Use encoder info to decide
1990         what bodies to output.
1991         * ipa-inline.c (cgraph_clone_inlined_nodes,
1992         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
1993         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
1994         (lto_cgraph_encoder_size): Define here.
1995         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
1996         Declare.
1997
1998 2010-05-16  Richard Guenther  <rguenther@suse.de>
1999
2000         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
2001         -fipa-type-escape.
2002         * ipa-type-escape.c (gate_type_escape_vars): Run when
2003         -fipa-struct-reorg runs.
2004         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
2005         * common.opt (fipa-type-escape): Remove.
2006
2007 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
2008
2009         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
2010         (decode_options): Likewise.
2011         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
2012
2013 2010-05-16  Jan Hubicka  <jh@suse.cz>
2014
2015         * ipa.c (function_and_variable_visibility): Also bring local all
2016         aliases.
2017
2018 2010-05-16  Richard Guenther  <rguenther@suse.de>
2019
2020         * alias.c (nonoverlapping_memrefs_p): Remove use of
2021         IPA type-escape information.
2022
2023 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
2024
2025         * c-common.c (c_common_reswords): Add _Static_assert for C.
2026         * c-parser.c (c_token_starts_declaration,
2027         c_parser_next_token_starts_declaration,
2028         c_parser_static_assert_declaration_no_semi,
2029         c_parser_static_assert_declaration): New.
2030         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
2031         Handle static assertions if static_assert_ok.
2032         (c_parser_external_declaration, c_parser_declaration_or_fndef,
2033         c_parser_compound_statement_nostart, c_parser_label,
2034         c_parser_for_statement, c_parser_objc_methodprotolist,
2035         c_parser_omp_for_loop): All callers of
2036         c_parser_declaration_or_fndef changed.
2037         (c_parser_struct_declaration): Handle static assertions.
2038         (c_parser_compound_statement_nostart): Use
2039         c_parser_next_token_starts_declaration and
2040         c_token_starts_declaration to detect start of declarations.
2041         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
2042         Likewise.
2043
2044 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
2045
2046         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
2047         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
2048         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2049         TARGET_FUNCTION_VALUE_REGNO_P): Define.
2050         (mmix_function_outgoing_value): Rename to...
2051         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
2052         (mmix_function_value_regno_p): Make static.
2053         (mmix_libcall_value): New function.
2054         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
2055         mmix_function_value_regno_p): Remove declaration.
2056
2057 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
2058
2059         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
2060         BUILT_IN_ALLOCA if stack checking is enabled.
2061
2062 2010-05-16  Richard Guenther  <rguenther@suse.de>
2063
2064         * var-tracking.c (vars_copy_1): Inline ...
2065         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
2066         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
2067         (variable_merge_over_cur): Adjust.  Merge asserts.
2068         (variable_merge_over_src): Likewise.
2069         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
2070         (variable_post_merge_new_vals): Merge asserts.
2071         (variable_post_merge_perm_vals): Likewise.
2072         (find_mem_expr_in_1pdv): Likewise.
2073         (dataflow_set_different_value): Remove.
2074         (onepart_variable_different_p): Merge asserts.
2075         (variable_different_p): Likewise.
2076         (dataflow_set_different_1): Inline ...
2077         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
2078         (emit_notes_for_differences_1): Merge asserts.
2079
2080 2010-05-16  Richard Guenther  <rguenther@suse.de>
2081
2082         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
2083         * optabs.c (libfunc_decl_hash): Likewise.
2084         * varasm.c (emutls_decl): Likewise.
2085
2086 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
2087
2088         * c-decl.c: Don't include gimple.h.
2089         (merge_decls): Do not copy gimple_body.
2090
2091 2010-05-15  Jason Merrill  <jason@redhat.com>
2092
2093         * c.opt: Add -fnothrow-opt.
2094
2095 2010-05-15  Jan Hubicka  <jh@suse.cz>
2096
2097         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
2098         analyzed.
2099         * passes.c (ipa_write_summaries): Write all analyzed nodes.
2100
2101 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
2102
2103         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
2104         * Makefile.in: Add it.
2105         Fix all other Makefile dependencies for changes below.
2106         * tree.h: Include it instead of defining VEC primitives here.
2107         * gimple.h: Likewise.
2108         * rtl.h: Likewise.
2109         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
2110         * except.h: Include vecir.h, break dependence on tree.h.
2111
2112         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
2113         Move from here...
2114         * tree-iterator.c: ...to here.
2115         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
2116
2117         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
2118         tm_p.h.
2119         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
2120         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
2121         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
2122         tree-mudflap.h, and target.h.
2123         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
2124         predict.h, tree-inline.h, gimple.h, and langhooks.h.
2125         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
2126         Add FIXME for why gimple.h is still included (should be unnecessary
2127         since GCC 4.5 gimplification unit-at-a-time).
2128         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
2129         * c-pragma.c: Add FIXME for why function.h needs to be included just
2130         for cfun, at front-end level.
2131         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
2132         Do not include ggc.h, but include vecprim.h for VEC(char).
2133         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
2134         Explain why target.h is included.
2135         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
2136         Explain why gimple.h is included.
2137         * c-ppoutput.c: Do not include tm.h.
2138         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
2139         * c-parses.c: Explain why rtl.h is included, and that this (and only
2140         this) is also why tm.h must be included.
2141         Do not include except.h.
2142         * c-lang.c: Do not include ggc.h.
2143
2144 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
2145
2146         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
2147
2148 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
2149
2150         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
2151         unions by default if those structs and unions have no tags.  Do
2152         not condition anonymous struct and unions handling on flag_iso.
2153         Allow anonymous structs and unions for C1X.
2154         (finish_struct): Do not diagnose lack of named fields when
2155         anonymous structs and unions present for C1X.  Accept flexible
2156         array members in structure with anonymous structs or unions but no
2157         directly named fields.
2158         * doc/extend.texi (Unnamed Fields): Update.
2159
2160 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
2161
2162         * gimple.h (compare_field_offset): Rename into...
2163         (gimple_compare_field_offset): ...this.
2164         * gimple.c (compare_field_offset): Rename into...
2165         (gimple_compare_field_offset): ...this.  Compare the full access if
2166         the offset is self-referential.
2167         (gimple_types_compatible_p): Adjust for above renaming.
2168         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
2169         DECL_NONADDRESSABLE_P flag of fields before merging them.
2170
2171 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
2172
2173         * tree.h (ctor_to_list): Delete.
2174         * tree.c (ctor_to_list): Delete.
2175
2176 2010-05-15  Jan Hubicka  <jh@suse.cz>
2177
2178         * ipa-reference.c: Include toplev.h
2179         (is_proper_for_analysis): Only add to all_module_statics
2180         if it is allocated.
2181         (write_node_summary_p, stream_out_bitmap,
2182         ipa_reference_write_optimization_summary,
2183         ipa_reference_read_optimization_summary): New.
2184         (struct ipa_opt_pass_d pass_ipa_reference): Add
2185         optimization summary streaming.
2186         * lto-cgraph.c (referenced_from_this_partition_p,
2187         reachable_from_this_partition_p): New functions.
2188         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2189         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
2190         * opts.c (decode_options): Enable ipa_reference.
2191         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
2192         * lto-streamer.h (referenced_from_this_partition_p,
2193         reachable_from_this_partition_p): Declare.
2194
2195 2010-05-15  Richard Guenther  <rguenther@suse.de>
2196
2197         PR tree-optimization/44038
2198         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
2199         taking the address of a V_C_E of a constant.
2200
2201 2010-05-14  Jan Hubicka  <jh@suse.cz>
2202
2203         * tree.h (memory_identifier_string): Remove.
2204         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
2205         (ipa_reference_global_vars_info_d): Remove statics_not_read and
2206         statics_not_written.
2207         (ipa_reference_optimization_summary_d): New structure.
2208         (ipa_reference_optimization_summary_t): New type and vector.
2209         (ipa_reference_vars_info_d): Embedd structures instead of using
2210         pointers.
2211         (reference_vars_to_consider): Remove out of GGC space.
2212         (module_statics_escape): Remove.
2213         (global_info_obstack): Rename to ...
2214         (optimization_summary_obstack): ... this one.
2215         (initialization_status_t): Remove.
2216         (memory_identifier_string): Remove.
2217         (get_reference_vars_info): Fix indenting.
2218         (set_reference_vars_info): Likewise.
2219         (get_reference_optimization_summary): New.
2220         (set_reference_optimization_summary): New.
2221         (get_global_reference_vars_info): Remove.
2222         (ipa_reference_get_read_global): Remove.
2223         (ipa_reference_get_written_global): Remove.
2224         (ipa_reference_get_not_read_global): Update.
2225         (ipa_reference_get_not_written_global): Update.
2226         (is_proper_for_analysis): Outlaw addressable.
2227         (propagate_bits): Update for new datastructures.
2228         (analyze_variable): Remove.
2229         (init_function_info): Update for new datastructures.
2230         (clean_function_local_data): Remove.
2231         (clean_function): Remove.
2232         (copy_global_bitmap): Use optimizations_summary_obstack.
2233         (duplicate_node_data): Duplicate optimization summary only.
2234         (remove_node_data): Remove optimization summary only.
2235         (generate_summary): Do not analyze variables; do not compute
2236         module_statics_escape; do not prune solutions by it.
2237         (read_write_all_from_decl): Fix typos in comments.
2238         (propagate): Doscover readonly and nonaddressable first;
2239         update for new datastructures; share global bitmaps.
2240         * ipa-reference.h (ipa_reference_get_read_global,
2241         ipa_reference_get_written_global): Remove.
2242         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
2243         * Makefile.in: Remove ipa-refereference from GT files.
2244
2245 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2246
2247         PR debug/44112
2248         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
2249         for all SYMBOL_REF_DECLs.
2250
2251 2010-05-14  Jan Hubicka  <jh@suse.cz>
2252
2253         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
2254         (varpool_all_refs_explicit_p): New inline function.
2255         * ipa-reference.c: Update comment.
2256         (module_statics_written): Remove.
2257         (get_static_decl): Remove.
2258         (ipa_init): Do not initialize module_statics_written.
2259         (analyze_function): Likewise.
2260         (generate_summary): Likewise; do not compute module_statics_readonly
2261         and do not update variable flags.
2262         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
2263         * ipa.c: Inlucde flags.h
2264         (cgraph_local_node_p): New.
2265         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
2266         promote functions to local.
2267         (ipa_discover_readonly_nonaddressable_vars): New function.
2268         (function_and_variable_visibility): Use cgraph_local_node_p.
2269         * varpool.c (varpool_finalize_decl): Set force_output for
2270         DECL_PRESERVE_P vars.
2271
2272 2010-05-14  Jan Hubicka  <jh@suse.cz>
2273
2274         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
2275
2276 2010-05-14  Richard Guenther  <rguenther@suse.de>
2277
2278         PR tree-optimization/44119
2279         * tree-ssa-pre.c (eliminate): Properly mark replacement of
2280         a PHI node necessary.
2281
2282 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
2283
2284         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
2285
2286 2010-05-14  Jason Merrill  <jason@redhat.com>
2287
2288         PR c++/44127
2289         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
2290         (gimple_call_set_nothrow): New.
2291         * gimple.c (gimple_build_call_from_tree): Call it.
2292         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
2293
2294         PR c++/44127
2295         * gimplify.c (gimplify_seq_add_stmt): No longer static.
2296         * gimple.h: Declare it.
2297         * gimple.c (gimple_build_eh_filter): No ops.
2298
2299 2010-05-14  Jan Hubicka  <jh@suse.cz>
2300
2301         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
2302         nodes already in queue.
2303         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
2304         re-enqueueing node.
2305
2306 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
2307
2308         PR debug/44136
2309         * cfgexpand.c (expand_debug_expr): If non-memory op0
2310         has BLKmode, return NULL.
2311
2312 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
2313
2314         * config.gcc: Add support for --with-cpu option for bdver1.
2315         * config/i386/i386.h (TARGET_BDVER1): New macro.
2316         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
2317         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2318         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
2319         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2320         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
2321         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
2322         (processor_type): Add PROCESSOR_BDVER1.
2323         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
2324         processor_type in config/i386/i386.h.
2325         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
2326         movaps <reg, reg> instead of movapd <reg, reg> when replacing
2327         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
2328         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
2329         to emit packed xor instead of packed double/packed integer
2330         xor for SSE and AVX when moving a zero value.
2331         * config/i386/sse.md: Add check for
2332         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
2333         movapd/movdqa for SSE and AVX.
2334         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
2335         single logical operations i.e and, or and xor instead of packed double
2336         logical operations for SSE and AVX.
2337         * config/i386/i386-c.c (ix86_target_macros_internal):
2338         Add PROCESSOR_BDVER1.
2339         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
2340         (has_fma4, has_xop): New.
2341         * config/i386/i386.c (bdver1_cost): New variable.
2342         (m_BDVER1): New macro.
2343         (m_AMD_MULTIPLE): Add m_BDVER1.
2344         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
2345         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
2346         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
2347         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
2348         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
2349         x86_tune_sse_partial_reg_dependency,
2350         x86_tune_sse_unaligned_load_optimal,
2351         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
2352         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
2353         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
2354         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
2355         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
2356         Enable/disable for bdver1.
2357         (processor_target_table): Add bdver1_cost.
2358         (cpu_names): Add bdver1.
2359         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
2360          processor_alias_table.
2361         (ix86_expand_vector_move_misalign): Change.
2362         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
2363         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
2364         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
2365         of movupd/movdqu for SSE and AVX.
2366         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
2367         (ix86_tune_adjust_cost): Add code for bdver1.
2368         (standard_sse_constant_opcode): Add check for
2369         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
2370         of packed double xor for SSE and AVX.
2371
2372 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
2373
2374         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
2375         result to unsigned.
2376
2377 2010-05-14  Tristan Gingold  <gingold@adacore.com>
2378
2379         * toplev.c (default_debug_hooks): Remove this variable.
2380         (process_options): Remove assignments to default_debug_hooks.
2381
2382 2010-05-14  Martin Jambor  <mjambor@suse.cz>
2383
2384         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
2385         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
2386         * langhooks.h (struct lang_hooks_for_decls): Removed field
2387         fold_obj_type_ref.
2388         * tree.c (free_lang_data): Remove assignment to
2389         lang_hooks.fold_obj_type_ref.
2390         * tree.def (OBJ_TYPE_REF): Update comment.
2391
2392 2010-05-14  Richard Guenther  <rguenther@suse.de>
2393
2394         PR tree-optimization/44124
2395         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
2396
2397 2010-05-14  Alan Modra  <amodra@gmail.com>
2398
2399         PR target/44075
2400         * config/rs6000/rs6000.c (struct machine_function): Reorder
2401         fields for better packing.  Add lr_save_state.
2402         (rs6000_ra_ever_killed): Return lr_save_state if set.
2403         (rs6000_emit_eh_reg_restore): Set lr_save_state.
2404
2405 2010-05-13  Jan Hubicka  <jh@suse.cz>
2406
2407         * varpool.c (decide_is_variable_needed): Drop code checking
2408         TREE_SYMBOL_REFERENCED.
2409
2410 2010-05-13  Jan Hubicka  <jh@suse.cz>
2411
2412         * final.c (output_addr_const): Do not call mark_decl_referenced.
2413         * cgraphunit.c (process_function_and_variable_attributes): Use
2414         mark_needed_node dirrectly.
2415         (assemble_thunk): Do not call mark_decl_referenced.
2416
2417 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
2418
2419         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
2420
2421 2010-05-13  Jeff Law  <law@redhat.com>
2422
2423         * ira-conflicts.c (print_allocno_conflicts): New function broken out
2424         from...
2425         (print_conflicts): Call print_allocno_conflicts.
2426
2427 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2428
2429         PR debug/44104
2430         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
2431         if it is NULL.
2432
2433 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
2434
2435         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
2436         t-mingw-w64 or t-mingw-w32 for multilib configuration.
2437         * config/i386/t-mingw-w32: New.
2438         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
2439
2440 2010-05-13  Martin Jambor  <mjambor@suse.cz>
2441
2442         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
2443         gimple-fold.c).
2444         * gimple-fold.c (get_base_binfo_for_type): New function.
2445         (gimple_get_relevant_ref_binfo): Likewise.
2446         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2447         (gimple_fold_obj_type_ref): Likewise.
2448         (fold_gimple_call): Simplify condition for folding virtual calls
2449         and call gimple_fold_obj_type_ref.
2450         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
2451         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2452
2453 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
2454
2455         * config/rs6000/rs6000-protos.h
2456         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
2457         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
2458         (rs6000_debug_mode_dependent_address)
2459         (rs6000_mode_dependent_address_ptr): Likewise.
2460
2461 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2462
2463         PR debug/43983
2464         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
2465         by SRA.
2466         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
2467         * tree-sra.c (create_access_replacement): Call unshare_expr before
2468         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
2469         * dwarf2out.c: Include tree-flow.h.
2470         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
2471         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
2472         Handle DW_OP_bit_piece.
2473         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
2474         construct_piece_list, adjust_piece_list): New functions.
2475         (add_var_loc_to_decl): Handle SRA optimized variables.
2476         Adjust for var_loc_note to loc field renaming.
2477         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
2478         in VAR_LOCATION note.
2479         (new_loc_descr_op_bit_piece): New function.
2480         (dw_sra_loc_expr): New function.
2481         (dw_loc_list): Use it.  Don't handle the last range after the
2482         loop, handle it inside of the loop.  Adjust for var_loc_note
2483         to loc field renaming.
2484         (add_location_or_const_value_attribute): Only special case
2485         single entry loc lists if loc is NOTE_P.  Adjust for
2486         var_loc_note to loc field renaming.
2487         (dwarf2out_var_location): Don't set newloc->var_loc_note
2488         and newloc->next here.
2489
2490 2010-05-12  Jan Hubicka  <jh@suse.cz>
2491
2492         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
2493         flag.
2494         * cgraph.h (cgraph_only_called_directly_p,
2495         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
2496         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
2497         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
2498         (assemble
2499         * ipa.c (cgraph_remove_unreachable_nodes): Use
2500         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
2501         flags.
2502         * tree-inline.c (copy_bb): Check address_taken flag.
2503         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
2504         externally_visible flag.
2505
2506 2010-05-12  Jason Merrill  <jason@redhat.com>
2507
2508         PR bootstrap/44048
2509         PR target/44099
2510         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
2511         * sdbout.c (plain_type_1): Likewise.
2512         * dwarf2out.c (is_base_type): Likewise.
2513         (gen_type_die_with_usage): Likewise.  Generate
2514         DW_TAG_unspecified_type for any LANG_TYPE.
2515
2516 2010-05-12  Jan Hubicka  <jh@suse.cz>
2517
2518         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
2519         indrect edges too.
2520         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
2521         (cgraph_clone_edge): Update.
2522         (cgraph_node_remove_callees): Remove indirect calls too.
2523         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
2524         (cgraph_create_indirect_edge): Update prototype.
2525         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
2526         is_proper_for_analysis.
2527         (add_new_function, visited_nodes, function_insertion_hook_holder,
2528         get_local_reference_vars_info, mark_address_taken, mark_address,
2529         mark_load, mark_store, check_asm_memory_clobber, check_call,
2530         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
2531         (ipa_init): Do not initialize visited_nodes;
2532         function_insertion_hook_holder.
2533         (analyze_variable): Rewrite.
2534         (analyze_function): Rewrite.
2535         (copy_local_bitmap): Remove.
2536         (duplicate_node_dat): Do not duplicate local info.
2537         (generate_summary): Simplify to only walk cgraph.
2538         (write_node_summary_p, ipa_reference_write_summary,
2539         ipa_reference_read_summary): Remove.
2540         (propagate): Do not remove function insertion;
2541         generate summary.
2542         (pass_ipa_reference): NULLify summary handling fields.
2543         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
2544         (input_edge): Input ecf_flags.
2545         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
2546         (update_indirect_edges_after_inlining): Ignore edges with unknown
2547         param.
2548
2549 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
2550
2551         * implicit-zee.c: New file.
2552         * tree-pass.h (pass_implicit_zee): Declare.
2553         * passes.c (init_optimization_passes): Add zee pass.
2554         * common.opt (fzee): New flag.
2555         * timevar.def (TV_ZEE): Define.
2556         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
2557         and beyond.
2558         * Makefile.in (implicit-zee.o): Add new build file.
2559
2560 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2561             Nathan Froyd  <froydnj@codesourcery.com>
2562
2563         * c-common.c (sync_resolve_params): Remove write-only variable.
2564
2565 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
2566
2567         * target.h (struct gcc_target): Add mode_dependent_address_p field.
2568         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2569         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
2570         * targhooks.c (default_mode_dependent_address_p): New function.
2571         * targhooks.h (default_mode_dependent_address_p): Declare function.
2572         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2573         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
2574         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
2575         target hook. Change return type to bool.
2576         * recog.h (mode_dependent_address_p): Change return type to bool.
2577
2578 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2579             Nathan Froyd  <froydnj@codesourcery.com>
2580
2581         * tree-mudflap.c (build_function_type_0, build_function_type_1,
2582         build_function_type_2, build_function_type_3): Remove.
2583         (mudflap_init): Use build_function_type_list.
2584
2585 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2586             Nathan Froyd  <froydnj@codesourcery.com>
2587
2588         * coverage.c (build_fn_info_value): Call build_constructor instead of
2589         build_constructor_from_list.
2590         (build_ctr_info_value): Likewise.
2591         (build_gcov_info): Likewise.
2592
2593 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
2594
2595         * tree.c (build_constructor): Compute TREE_CONSTANT for the
2596         resultant constructor.
2597         (build_constructor_single): Don't set TREE_CONSTANT.
2598         (build_constructor_from_list): Don't compute TREE_CONSTANT.
2599
2600 2010-05-12  Jan Hubicka  <jh@suse.cz>
2601
2602         * cgraph.h (struct varpool_node): Add aux.
2603         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
2604         * varpool.c (varpool_remove_node): Do not remove initializer.
2605         (varpool_reset_queue): Export.
2606         (varpool_finalize_decl): Volatile vars are forced to be output.
2607         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
2608         replaced decl.
2609         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
2610         process_references, varpool_can_remove_if_no_refs): New functions.
2611         (cgraph_remove_unreachable_nodes): Handle variables too.
2612
2613 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2614
2615         PR target/44088
2616         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
2617
2618 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
2619
2620         PR middle-end/44085
2621         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
2622         change value of ORT_TASK.
2623         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
2624         (omp_notice_threadprivate_variable): New function.
2625         (omp_notice_variable): Call it for threadprivate variables.
2626         If enclosing ctx is a task, print enclosing task rather than
2627         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
2628         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
2629         if task has untied clause.
2630
2631         PR debug/42278
2632         * dwarf2out.c (base_type_die): Don't add name attribute here.
2633         (modified_type_die): Instead of sizetype use
2634         its underlying original type.  If a DW_TAG_base_type doesn't
2635         have name added, add __unknown__.
2636         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
2637         always call force_type_die instead.
2638
2639 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
2640
2641         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
2642         for __stack_chk_guard.
2643
2644 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2645
2646         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
2647         don't call start_source_file debug hook here...
2648         (finish_options): ... but here, after outputting predefined and
2649         command line defines and undefs.
2650
2651         PR middle-end/44071
2652         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
2653         no fallthru edge.
2654         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
2655         optimizing away empty bb with no successors, move over its
2656         footer chain to fallthru predecessor.
2657         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
2658         (rtl_split_edge): For asm goto call patch_jump_insn even if
2659         splitting fallthru edge.
2660
2661         PR c++/44059
2662         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
2663         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
2664         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
2665         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
2666         on DW.ref.* decls.
2667
2668         PR c++/44062
2669         * c-parser.c (c_parser_expression): Mark LHS of a comma
2670         expression as read if it is a decl, handled component or
2671         COMPOUND_EXPR with that on the RHS.
2672         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
2673         if it is a decl or handled component.
2674
2675 2010-05-11  Jan Hubicka  <jh@suse.cz>
2676
2677         * lto-symtab.c (lto_symtab_free): New function.
2678         * lto-streamer.h (lto_symtab_free): Declare.
2679
2680 2010-05-11  Jan Hubicka  <jh@suse.cz>
2681
2682         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
2683         that if function is needed it is reachable.
2684         (lto_output_node): See if it the function is reachable or referenced.
2685         (output_cgraph): Update call of lto_output_node.
2686         * lto-streamer.h (reachable_from_other_partition_p): Declare.
2687
2688 2010-05-11  Jan Hubicka  <jh@suse.cz>
2689
2690         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
2691         Mark as used.
2692
2693 2010-05-11  Jan Hubicka  <jh@suse.cz>
2694
2695         PR tree-optimize/44063
2696         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
2697         queue.
2698         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
2699         limits.
2700         (estimate_function_body_sizes): Compute sizes even when disregarding.
2701
2702 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
2703
2704         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
2705
2706 2010-05-11  Jan Hubicka  <jh@suse.cz>
2707
2708         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
2709         into every boundary.
2710
2711 2010-05-11  Jan Hubicka  <jh@suse.cz>
2712
2713         * matrix-reorg.c (matrix_reorg): Rebuild edges.
2714
2715 2010-05-11  Jan Hubicka  <jh@suse.cz>
2716
2717         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
2718         lto_streamer_cache_delete): Put nodes into heap.
2719         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
2720         heap.
2721
2722 2010-05-11  Jan Hubicka  <jh@suse.cz>
2723
2724         * cgraphbuild.c (cgraph_rebuild_references): New.
2725         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
2726         out extern inlines.
2727         * cgraph.h (cgraph_rebuild_references): Declare.
2728         * tree-inline.c (tree_function_versioning): Use it.
2729         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
2730
2731 2010-05-11  Jan Hubicka  <jh@suse.cz>
2732
2733         * cgraph.c: Include ipa-utils.h
2734         (cgraph_create_virtual_clone): Update references.
2735         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
2736
2737 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2738
2739         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
2740         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
2741         cache size.
2742
2743 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2744
2745         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
2746
2747 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2748
2749         * gcc.c (execute): For -### don't quote arguments that
2750         contain just alphanumerics and _/-. characters.
2751         * doc/invoke.texi: Document that change for -###.
2752
2753         PR debug/44023
2754         * df-problems.c (struct dead_debug): Add to_rescan field.
2755         (dead_debug_init): Clear to_rescan field.
2756         (dead_debug_finish): Rescan all debug insns in to_rescan
2757         bitmap and free the bitmap.
2758         (dead_debug_insert_before): Instead of rescanning debug insns
2759         immediately queue their rescanning until dead_debug_finish.
2760         (df_note_bb_compute): After dead_debug_add do continue instead
2761         of break.
2762
2763 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
2764
2765         PR debug/44028
2766         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
2767         clear also INSN_REG_USE_LIST.
2768
2769 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2770
2771         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
2772
2773 2010-05-10  Jan Hubicka  <jh@suse.cz>
2774
2775         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
2776         commited change.
2777
2778 2010-05-10  Jan Hubicka  <jh@suse.cz>
2779
2780         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
2781         Allocate encoders.
2782         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
2783         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
2784         (lto_streamer_cache_create): Init alloc pool.
2785         (lto_streamer_cache_delete): Free alloc pool.
2786         * lto-streamer.h: Include alloc pool.
2787         (lto_streamer_cache_d): Use alloc pool.
2788         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
2789
2790 2010-05-10  Jan Hubicka  <jh@suse.cz>
2791
2792         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
2793         * cgraphbuild.c: Include except.h
2794         (record_type_list, record_eh_tables): New function.
2795         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
2796
2797 2010-05-10  Jan Hubicka  <jh@suse.cz>
2798
2799         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
2800         __frame_dummy_init_array_entry, force_to_data): Attribute as used
2801         rather than unused.
2802
2803 2010-05-10  Michael Matz  <matz@suse.de>
2804
2805         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
2806         (can_reassociate_p): Use FLOAT_TYPE_P.
2807         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
2808         (vect_force_simple_reduction): ... this.
2809         * tree-parloops.c (gather_scalar_reductions): Use
2810         vect_force_simple_reduction.
2811         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
2812         vect_is_simple_reduction, add modify argument, if true rewrite
2813         "a-b" into "a+(-b)".
2814         (vect_is_simple_reduction, vect_force_simple_reduction): New
2815         functions.
2816         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
2817
2818 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
2819             Vladimir Makarov  <vmakarov@redhat.com>
2820
2821         PR rtl-optimization/44012
2822         * ira-build.c (remove_unnecessary_allocnos): Nullify
2823         regno_allocno_map of the removed allocno.
2824
2825 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2826
2827         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
2828         to /dev/null.
2829         * configure: Regenerate.
2830
2831 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2832
2833         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
2834         unused.
2835         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
2836         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
2837         support in Sun ld.
2838         * configure: Regenerate.
2839
2840 2010-05-10  Richard Guenther  <rguenther@suse.de>
2841
2842         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
2843         marked if the entry identifier is marked.
2844
2845 2010-05-10  Richard Guenther  <rguenther@suse.de>
2846
2847         * c-common.c (struct c_common_attributes): Add fnspec attribute.
2848         (handle_fnspec_attribute): New function.
2849         * gimple.h (gimple_call_return_flags): Declare.
2850         (gimple_call_arg_flags): Likewise.
2851         * gimple.c (gimple_call_arg_flags): New function.
2852         (gimple_call_return_flags): Likewise.
2853         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
2854         New argument flags.
2855         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
2856         return value flags.
2857         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
2858         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
2859         main work to ...
2860         (make_heapvar_for): ... this new function.
2861         (handle_rhs_call): Handle fnspec attribute argument specifiers.
2862         (handle_lhs_call): Likewise.
2863         (find_func_aliases): Adjust.
2864
2865 2010-05-10  Richard Guenther  <rguenther@suse.de>
2866
2867         PR tree-optimization/44050
2868         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
2869
2870 2010-05-10  Wei Guozhi  <carrot@google.com>
2871
2872         PR target/42879
2873         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
2874
2875 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
2876
2877         PR c/10676
2878         * c-typeck.c (lookup_field): Take a type directly.  Update
2879         recursive calls.
2880         (build_component_ref): Update call to lookup_field.
2881         (set_init_label): Use lookup_field to find initialized field.
2882         Handle returned list of fields like a sequence of designators.
2883
2884 2010-05-09  Richard Guenther  <rguenther@suse.de>
2885
2886         PR middle-end/44024
2887         * fold-const.c (tree_single_nonzero_warnv_p): Properly
2888         handle &FUNCTION_DECL.
2889
2890 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
2891
2892         PR c/4784
2893         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
2894         structures and unions recursively.
2895         (detect_field_duplicates): Move duplicate detection with a hash to
2896         detect_field_duplicates_hash.  Always use a hash if anonymous
2897         structures or unions are present.
2898         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
2899         give errors.
2900
2901 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2902
2903         PR target/44046
2904         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
2905         detect Atom, Core 2 and Core i7.
2906
2907 2010-05-09  Richard Guenther  <rguenther@suse.de>
2908
2909         * gcc.c (store_arg): Handle temporary file deletion for
2910         joined arguments.
2911
2912 2010-05-09  Richard Guenther  <rguenther@suse.de>
2913
2914         PR middle-end/44043
2915         * ipa-inline.c (estimate_function_body_sizes): Return after
2916         disregarding inline limits.
2917
2918 2010-05-09  Richard Guenther  <rguenther@suse.de>
2919
2920         * gcc.c (store_arg): Revert last change.
2921
2922 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
2923
2924         PR middle-end/28685
2925         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
2926         (optimize_ops_list): Call it.
2927
2928 2010-05-08  Richard Guenther  <rguenther@suse.de>
2929
2930         PR tree-optimization/44030
2931         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
2932         NECESSARY flag if we propagate from a inserted expression.
2933
2934 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2935
2936         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
2937         domain types as equal if they are both PLACEHOLDER_EXPRs.
2938
2939 2010-05-08  Richard Guenther  <rguenther@suse.de>
2940
2941         * lto-wrapper.c (run_gcc): Remove linker output from
2942         command line for LTRANS invocation.
2943
2944 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
2945
2946         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2947         lto-macho as lto_binary_reader.
2948         * target.h (struct gcc_target): New hooks lto_start and lto_end.
2949         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
2950         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
2951         in lto_start and lto_end calls.
2952         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
2953         magic numbers.
2954         (scan_prog_file): Update is_elf_or_coff call.
2955         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
2956
2957         * collect2.c (main): Fix enum comparison.
2958
2959         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
2960         Add prototypes.
2961         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
2962         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
2963         and TARGET_ASM_LTO_END.
2964         * darwin.c: Include obstack.h and lto-streamer.h.
2965         (lto_section_names_offset, lto_section_names_obstack,
2966         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
2967         global variables.
2968         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
2969         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
2970         to a temporary file.
2971         (darwin_asm_lto_end): New function.  Restore asm_out_file.
2972         (darwin_asm_named_section): For LTO sections, replace the name with
2973         the offset of the section name in a string table, and build this
2974         table.
2975         (darwin_file_start): Initialize global vars for LTO support.
2976         (darwin_file_end): If output to asm_out_file was redirected, append it
2977         to the proper asm_out_file here.  Add the section names section.
2978
2979 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
2980
2981         * c-pragma.c (pending_weak_d, pending_weak): New.
2982         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
2983         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
2984         handle_pragma_weak): Update the uses of pending_weaks.
2985
2986 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2987
2988         PR documentation/44016
2989         * doc/standards.texi (Standards): Link to unversioned
2990         cxx0x_status.html page.
2991
2992 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
2993
2994         PR target/43708
2995         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
2996         in addition to TREE_USED, to avoid "set but unused" warnings.
2997
2998 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2999
3000         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
3001         (is_loop_prefetching_profitable): Do not insert prefetches
3002         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
3003         times the prefetch ahead distance.
3004
3005 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
3006
3007         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
3008         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
3009         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
3010         the unroll_factor.
3011
3012 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
3013
3014         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
3015         a diagnostic info when the insn-to-mem ratio is too small.
3016
3017 2010-05-07  Richard Guenther <rguenther@suse.de>
3018
3019         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
3020         the linker plugin.
3021         (store_arg): Queue temp_filename for deletion instead of
3022         the whole argument.
3023
3024 2010-05-07  Richard Guenther  <rguenther@suse.de>
3025
3026         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
3027         (run_gcc): Handle LTRANS phase invocation.
3028         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
3029
3030 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
3031
3032         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
3033         this is also meaningful on PARM_DECLs and RESULT_DECLs.
3034
3035 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3036
3037         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
3038
3039 2010-05-07  Richard Guenther  <rguenther@suse.de>
3040
3041         PR tree-optimization/44020
3042         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
3043         code when PRE is not yet initialized.
3044
3045 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3046
3047         * config/mips/dbxmdebug.h: Remove.
3048         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
3049
3050 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
3051
3052         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
3053         with null pointer and also warn about ordered comparison of zero with
3054         pointer if -Wextra.
3055
3056 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3057
3058         * graphite-blocking.c
3059         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
3060         * graphite-clast-to-gimple.c
3061         (clast_to_gcc_expression): Same.
3062         (precision_for_value): Same.
3063         (precision_for_interval): Same.
3064         (gcc_type_for_interval): Same.
3065         (graphite_create_new_guard): Same.
3066         (compute_bounds_for_level): Same.
3067         (graphite_create_new_loop_guard): Same.
3068         * graphite-interchange.c
3069         (build_linearized_memory_access): Same.
3070         (pdr_stride_in_loop): Same.
3071         (memory_strides_in_loop_1): Same.
3072         (memory_strides_in_loop): Same.
3073         (extend_scattering): Same.
3074         (psct_scattering_dim_for_loop_depth): Same.
3075         (pbb_number_of_iterations): Same.
3076         * graphite-poly.h
3077         (debug_iteration_domains): Same.
3078         * graphite-ppl.c
3079         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
3080         (ppl_set_inhomogeneous_gmp): Same.
3081         (ppl_strip_loop): Same.
3082         (ppl_lexico_compare_linear_expressions): Same.
3083         (ppl_read_polyhedron_matrix): Same.
3084         (ppl_max_for_le_pointset): Same.
3085         * graphite-ppl.h
3086         (ppl_read_polyhedron_matrix): Same.
3087         (tree_int_to_gmp): Same.
3088         (gmp_cst_to_tree): Same.
3089         (ppl_set_inhomogeneous): Same.
3090         (ppl_set_inhomogeneous_tree): Same.
3091         (ppl_set_coef): Same.
3092         (ppl_set_coef_tree): Same.
3093         * graphite-sese-to-poly.c
3094         (build_pbb_scattering_polyhedrons): Same.
3095         (build_scop_scattering): Same.
3096         (scan_tree_for_params_right_scev): Same.
3097         (scan_tree_for_params): Same.
3098         (find_params_in_bb): Same.
3099         (find_scop_parameters): Same.
3100         (add_upper_bounds_from_estimated_nit): Same.
3101         (build_loop_iteration_domains): Same.
3102         (add_condition_to_domain): Same.
3103         (pdr_add_memory_accesses): Same.
3104
3105 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3106
3107         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
3108         CLooG's value_* macros to their respective mpz_* counterparts.
3109         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
3110         (graphite_create_new_loop_guard): Same.
3111         * graphite-interchange.c (build_linearized_memory_access): Same.
3112         (pdr_stride_in_loop): Same.
3113         (memory_strides_in_loop_1): Same.
3114         (1st_interchange_profitable_p): Same.
3115         * graphite-poly.c (extend_scattering): Same.
3116         (psct_scattering_dim_for_loop_depth): Same.
3117         (pbb_number_of_iterations): Same.
3118         (pbb_number_of_iterations_at_time): Same.
3119         * graphite-poly.h (new_1st_loop): Same.
3120         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
3121         (oppose_constraint): Same.
3122         (insert_constraint_into_matrix): Same.
3123         (ppl_set_inhomogeneous_gmp): Same.
3124         (ppl_set_coef_gmp): Same.
3125         (ppl_strip_loop): Same.
3126         (ppl_lexico_compare_linear_expressions): Same.
3127         (ppl_max_for_le_pointset): Same.
3128         (ppl_min_for_le_pointset): Same.
3129         (ppl_build_realtion): Same.
3130         * graphite-ppl.h (gmp_cst_to_tree): Same.
3131         (ppl_set_inhomogeneous): Same.
3132         (ppl_set_inhomogeneous_tree): Same.
3133         (ppl_set_coef): Same.
3134         (ppl_set_coef_tree): Same.
3135         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
3136         (build_scop_scattering): Same.
3137         (add_value_to_dim): Same.
3138         (scan_tree_for_params_right_scev): Same.
3139         (scan_tree_for_params_int): Same.
3140         (scan_tree_for_params): Same.
3141         (find_params_in_bb): Same.
3142         (find_scop_parameters): Same.
3143         (add_upper_bounds_from_estimated_nit): Same.
3144         (build_loop_iteration_domains): Same.
3145         (create_linear_expr_from_tree): Same.
3146         (add_condition_to_domain): Same.
3147         (pdr_add_memory_accesses): Same.
3148
3149 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
3150             Jason Merrill  <jason@redhat.com>
3151
3152         * c-common.c (c_common_reswords): Add nullptr.
3153         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
3154         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
3155         (gen_type_die_with_usage): Likewise.
3156         * dbxout.c (dbxout_type): Likewise.
3157         * sdbout.c (plain_type_1): Likewise.
3158
3159 2010-05-06  Jason Merrill  <jason@redhat.com>
3160
3161         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
3162         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
3163         ret appropriately.
3164         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
3165
3166         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
3167         stripping WITH_SIZE_EXPR.
3168         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
3169         change.
3170
3171 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3172
3173         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
3174         list of obsolete configurations.
3175         Disabled check for obsolete configurations.
3176         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
3177         Removed support for previous versions.
3178         * config/mips/iris.h: Removed.
3179         * config/mips/iris5.h: Removed.
3180         * config/mips/iris6.h: Merged old iris.h contents.
3181         (TARGET_IRIX): Removed.
3182         (DRIVER_SELF_SPECS): Removed mabi=32.
3183         (IDENT_ASM_OP): Removed undef.
3184         (STARTFILE_SPEC): Removed mabi=32.
3185         (ENDFILE_SPEC): Likewise.
3186         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
3187         (MACHINE_TYPE): Update for IRIX 6.5.
3188         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
3189         TARGET_IRIX by TARGET_IRIX6.
3190         (mips_file_start): Likewise.
3191         (mips_output_external): Remove IRIX 5/6 O32 support.
3192         (mips_output_function_prologue): Likewise.
3193         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
3194         TARGET_IRIX6.
3195         (TARGET_CPU_CPP_BUILTINS): Likewise.
3196         (TARGET_IRIX): Removed.
3197         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
3198         (MULTILIB_DIRNAMES): Removed 32.
3199         (MULTILIB_OSDIRNAMES): Removed ../lib.
3200         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
3201         (Specific, mips-sgi-irix5): Document removal.
3202         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
3203         Remove references to older IRIX 6 releases and the O32 ABI.
3204
3205 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
3206
3207         PR bootstrap/43994
3208         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
3209         instead of DF_REF_REAL_REG.
3210
3211 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
3212
3213         PR target/43888
3214         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
3215         handling to still return true for x64 targets.
3216
3217 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3218
3219         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
3220
3221 2010-05-06  Jan Hubicka  <jh@suse.cz>
3222
3223         PR tree-optimization/43791
3224         * ipa-inline.c (update_caller_keys): Remove bogus
3225         disregard_inline_limits check.
3226
3227 2010-05-06  Michael Matz  <matz@suse.de>
3228
3229         PR tree-optimization/43984
3230         * tree-ssa-pre.c (inserted_phi_names): Remove.
3231         (inserted_exprs): Change to bitmap.
3232         (create_expression_by_pieces): Set bits, don't append to vector.
3233         (insert_into_preds_of_block): Don't handle inserted_phi_names.
3234         (eliminate): Don't look at inserted_phi_names, remove deleted
3235         insns from inserted_exprs.
3236         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
3237         (init_pre, fini_pre): Allocate and free bitmaps.
3238         (execute_pre): Insert insns on edges before elimination.
3239
3240 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
3241
3242         * tree.c (initializer_zerop): Handle STRING_CST.
3243
3244 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3245
3246         PR 40989
3247         * doc/invoke.texi (Wimplicit): Document as C only.
3248         * opts.c (common_handle_option): Add argument kind.
3249         (handle_option): Rename as read_cmdline_option. Factor out code to...
3250         (handle_option): ... here. New.
3251         (handle_options): Rename as read_cmdline_options.
3252         (decode_options): Update call.
3253         (set_option): Use option index instead of option pointer. Classify
3254         diagnostics correctly.
3255         (enable_warning_as_error): Call handle_option.
3256         * opts.h (set_option): Update declaration.
3257         (handle_option): Declare.
3258         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
3259         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
3260         * c-opts.c (set_Wimplicit): Delete.
3261         (c_family_lang_mask): New static constant.
3262         (c_common_handle_option): Add argument kind. Use handle_option
3263         instead of set_Wimplicit.
3264         (c_common_post_options): warn_implicit and warn_implicit_int
3265         are disabled by default.
3266         * c-common.c (warn_implicit): Do not define here.
3267         * c-common.h (warn_implicit): Do not declare here.
3268         (c_common_handle_option): Update declaration.
3269         * lto-opts.c (lto_reissue_options): Update call to set_option.
3270
3271 2010-05-06  Richard Guenther  <rguenther@suse.de>
3272
3273         PR tree-optimization/43571
3274         * domwalk.c (walk_dominator_tree): Walk the dominator
3275         sons in more optimal order.
3276
3277 2010-05-06  Richard Guenther  <rguenther@suse.de>
3278
3279         PR tree-optimization/43934
3280         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
3281         (stmt_cost): Likewise.
3282         (extract_true_false_args_from_phi): New helper.
3283         (determine_max_movement): For PHI nodes verify we can hoist them
3284         and compute their cost.
3285         (determine_invariantness_stmt): Handle PHI nodes.
3286         (move_computations_stmt): Likewise.  Hoist PHI nodes in
3287         if-converted form using COND_EXPRs.
3288         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
3289         (tree_ssa_lim): Likewise.
3290         * tree-flow.h (tree_ssa_lim): Adjust prototype.
3291         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
3292
3293 2010-05-06  Richard Guenther  <rguenther@suse.de>
3294
3295         PR tree-optimization/43987
3296         * tree-ssa-structalias.c (could_have_pointers): For possibly
3297         address-taken variables force pointers to be recorded.
3298         (create_variable_info_for_1): Likewise.
3299         (push_fields_onto_fieldstack): Pass in wheter all fields
3300         must have pointers.
3301         (find_func_aliases): Query types instead of vars whether
3302         they contain pointers where appropriate.
3303
3304 2010-05-06  Jan Hubicka  <jh@suse.cz>
3305
3306         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
3307         (record_reference, mark_address, mark_load, mark_store): Record
3308         references.
3309         (record_references_in_initializer): Update call of record_references.
3310         (rebuild_cgraph_edges): Remove all references before rebuiding.
3311         * cgraph.c (cgraph_create_node): Clear ref list.
3312         (cgraph_remove_node): Remove references.
3313         (dump_cgraph_node): Dump references.
3314         (cgraph_clone_node): Clone references.
3315         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
3316         (struct cgraph_node, varpool_node): Add ref_lst.
3317         * ipa-ref.c: New file.
3318         * ipa-ref.h: New file.
3319         * ipa-ref-inline.h: New file.
3320         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
3321         (referenced_from_other_partition_p): New function.
3322         (lto_output_varpool_node): Take set arugment; call
3323         referenced_from_other_partition.
3324         (lto_output_ref): New.
3325         (add_references): New.
3326         (output_refs): New.
3327         (output_cgraph): Compute boundary based on references; output refs.
3328         (output_varpool): Accept cgraph_node_set argument.
3329         (input_ref): New.
3330         (input_refs): New.
3331         (input_cgraph): Call input_refs.
3332         * lto-section-in.c (lto_section_name): Add refs.
3333         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
3334         (ipa-ref.o): New file.
3335         * varpool.c (varpool_node): Clear ipa ref list.
3336         (varpool_remove_node): Remove references.
3337         (dump_varpool_node): Dump references.
3338         (varpool_assemble_decl): Only compile finalized ones.
3339         (varpool_extra_name_alias): Initialize ref list.
3340         * lto-streamer.c (lto-get_section_name): Add .refs section.
3341         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
3342         (referenced_from_other_partition_p): Declared.
3343
3344 2010-05-06  Ira Rosen  <irar@il.ibm.com>
3345
3346         PR tree-optimization/43901
3347         * tree-vect-stmts.c (vectorizable_call): Assert that vector
3348         type is not NULL if it's transformation phase, and return
3349         FALSE if it's analysis.
3350         (vectorizable_conversion, vectorizable_operation,
3351         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
3352
3353 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
3354
3355         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3356         Delete.
3357         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3358         New define.
3359         * config/mips/mips-protos.h
3360         (mips_small_register_classes_for_mode_p): Delete prototype.
3361
3362 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
3363
3364         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
3365         * config/arm/arm.c (multiple_operation_profitable_p,
3366         compute_offset_order): New static functions.
3367         (load_multiple_sequence, store_multiple_sequence): Use them.
3368         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
3369         memory offsets, not register numbers.
3370         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
3371
3372 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
3373
3374         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
3375         (get_pending_sizes, put_pending_size, put_pending_sizes):
3376         Update the uses of pending_sizes.
3377         * c-decl.c (store_parm_decls): Likewise.
3378         * c-tree.h (struct c_arg_info): Likewise.
3379         * tree.h: Update the prototype for get_pending_sizes and
3380         put_pending_sizes.
3381
3382 2010-05-05  Jason Merrill  <jason@redhat.com>
3383
3384         PR debug/43370
3385         * c-common.c (handle_aligned_attribute): Respect
3386         ATTR_FLAG_TYPE_IN_PLACE.
3387
3388         PR testsuite/43758
3389         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
3390         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3391         (TARGET_INITIALIZER): Use it.
3392         * c-common.c (attribute_takes_identifier_p): Call it.
3393         * c-common.h: Update prototype.
3394         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
3395         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3396
3397 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
3398
3399         PR debug/43950
3400         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
3401         DW_ID_down_case for Fortran compilation units.
3402
3403 2010-05-05  Jan Hubicka  <jh@suse.cz>
3404
3405         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
3406         handle aliases.
3407
3408 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
3409
3410         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
3411         a variable-sized RESULT_DECL.
3412
3413 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
3414
3415         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
3416
3417 2010-05-05  Jason Merrill  <jason@redhat.com>
3418
3419         PR c++/43787
3420         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
3421         returns GS_OK.
3422         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
3423
3424 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
3425             Jakub Jelinek  <jakub@redhat.com>
3426
3427         PR debug/43478
3428         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
3429         (dead_debug_init, dead_debug_finish): New functions.
3430         (dead_debug_add, dead_debug_insert_before): Likewise.
3431         (df_note_bb_compute): Initialize a dead_debug object, add dead
3432         debug uses to it, insert debug bind insns before death insns,
3433         reset debug insns that refer to pending uses at the end.
3434         * rtl.h (make_debug_expr_from_rtl): New prototype.
3435         * varasm.c (make_debug_expr_from_rtl): New function.
3436
3437 2010-05-05  Jan Hubicka  <jh@suse.cz>
3438
3439         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
3440         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
3441         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
3442         lto_varpool_encoder_deref, lto_varpool_encoder_size,
3443         lto_varpool_encoder_encode_initializer_p,
3444         lto_set_varpool_encoder_encode_initializer): New functions.
3445         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
3446         call output_varpool.
3447         (input_varpool_node): Do not always set analyzed.
3448         (input_cgraph_1): Return vector of cgraph nodes.
3449         (input_varpool_1): Return vector of varpools.
3450         (input_cgraph): Free the vectors.
3451         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
3452         output only initializers needed.
3453         (lto_output): Only call output_cgraph.
3454         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
3455         * lto-section-out.c (lto_new_out_decl_state): Initialize
3456         state->varpool_node_encoder.
3457         * lto-streamer.h (lto_varpool_encoder_d): New.
3458         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
3459         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
3460         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
3461         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
3462         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
3463         Declare.
3464         (output_varpool, input_varpool): Remove declarations.
3465
3466 2010-05-05  Jan Hubicka  <jh@suse.cz>
3467
3468         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
3469         with body can prevail.
3470
3471 2010-05-05  Jan Hubicka  <jh@suse.cz>
3472
3473         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
3474         size.
3475
3476 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3477
3478         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
3479
3480         * gengtype.h (erro_at_line): Constify pos argument.
3481
3482         * gengtype.c: Include hashtab.h.
3483         (enum gc_used): Document GC_MAYBE_POINTED_TO.
3484         (error_at_line): Constify pos argument.
3485         (do_typedef): Initialize p->opt field.
3486         (get_file_gtfilename): Fix comment typo.
3487         (struct walk_type_data): Constify line field.
3488         (get_output_file_for_structure): New function.
3489         (write_local_func_for_structure): Constify orig_s argument.
3490         Use get_output_file_for_structure.
3491         (write_func_for_structure): Use get_output_file_for_structure.
3492         (INDENT): New define.
3493         (dump_pair, dump_type, dump_type_list, dump_typekind)
3494         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
3495         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
3496         functions.
3497         (seen_types): New variable.
3498         (main): New variable do_dump.  Process "-d" command line option.
3499         Call dump_everything if dump requested.
3500
3501 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
3502
3503         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
3504         in a temporary instead of invoking the macro multiple times.
3505         (track_expr_p): Likewise.
3506
3507 2010-05-04  Neil Vachharajani <nvachhar@google.com>
3508
3509         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
3510         per new semantics.
3511         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
3512         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
3513         conditions for printing notes.
3514         * common.opt (-Wcoverage-mismatch): Allow negative, default to
3515         true, update documentation.
3516         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
3517
3518 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
3519
3520         PR c/43981
3521         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
3522         on dimen.
3523
3524 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3525
3526         PR target/43799
3527         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
3528         (*sse_prologue_save_insn1): Likewise.
3529         (SSE prologue save splitter): Likewise.
3530
3531 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
3532
3533         * tree.c (free_lang_data_in_one_sizepos): New inline function.
3534         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
3535         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
3536         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
3537         all decls.  Call it on DECL_FIELD_OFFSET of fields.
3538         (find_decls_types_r): Follow DECL_VALUE_EXPR.
3539         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
3540
3541 2010-05-04  Martin Jambor  <mjambor@suse.cz>
3542
3543         * tree-sra.c (build_access_from_expr_1): The first parameter type
3544         changed to simple tree.
3545         (build_access_from_expr): Likewise, gsi parameter was eliminated.
3546         (scan_assign_result): Renamed to assignment_mod_result, enum elements
3547         renamed as well.
3548         (build_accesses_from_assign): Removed all parameters except for a
3549         simple gimple statement.  Now returns a simple bool.
3550         (scan_function): All non-analysis parts moved to separate functions
3551         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
3552         parameters and updated both callers.
3553         (sra_modify_expr): Removed parameter data.
3554         (sra_modify_function_body): New function.
3555         (perform_intra_sra): Call sra_modify_function_body to modify the
3556         function body.
3557         (replace_removed_params_ssa_names): Parameter data changed into
3558         adjustments vector.
3559         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
3560         changed the parameter dont_convert to convert with the opposite
3561         meaning.
3562         (sra_ipa_modify_assign): Parameter data changed into adjustments
3563         vector, return value changed to bool.
3564         (ipa_sra_modify_function_body): New function.
3565         (sra_ipa_reset_debug_stmts): Updated a comment.
3566         (modify_function): Use ipa_sra_modify_function_body to modify function
3567         body.
3568
3569 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3570
3571         PR middle-end/43671
3572         * alias.c (true_dependence): Handle the same VALUE in x and mem.
3573         (canon_true_dependence): Likewise.
3574         (write_dependence_p): Likewise.
3575
3576 2010-05-04  Jan Hubicka  <jh@suse.cz>
3577
3578         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
3579         * cgraphbuild.c: Include ipa-utils.h
3580         (record_reference_ctx): New struct.
3581         (record_reference): Simplify to work on initializers; not statements.
3582         (mark_address, mark_load, mark_store): New.
3583         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3584         walk PHI nodes too.
3585         (record_references_in_initializer): Update use of record_reference.
3586         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3587         walk PHI nodes too.
3588
3589 2010-05-04  Jan Hubicka  <jh@suse.cz>
3590
3591         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
3592         node will be removed anyway.
3593         (lto_varpool_replace_node): Allow also unanalyzed nodes;
3594         relink aliases of node into prevailing node.
3595         * varpool.c (varpool_remove_node): Remove aliases properly;
3596         when removing node, remove all its aliases too; remove DECL_INITIAL
3597         of removed node; ggc_free the varpool node.
3598
3599 2010-05-04  Richard Guenther  <rguenther@suse.de>
3600
3601         PR tree-optimization/43879
3602         * tree-ssa-structalias.c (alias_get_name): Use
3603         DECL_ASSEMBLER_NAME if available.
3604         (create_function_info_for): Return the varinfo node.
3605         (ipa_pta_execute): Associate same-body aliases and extra names
3606         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
3607
3608 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
3609
3610         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
3611
3612 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
3613
3614         PR bootstrap/43964
3615         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
3616         only if HONOR_REG_ALLOC_ORDER is not defined.
3617
3618 2010-05-04  Richard Guenther  <rguenther@suse.de>
3619
3620         PR tree-optimization/43949
3621         * tree-vrp.c (extract_range_from_binary_expr): Only handle
3622         TRUNC_MOD_EXPR.
3623
3624 2010-04-26  Jason Merrill  <jason@redhat.com>
3625
3626         * c.opt (-fstrict-enums): New.
3627         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
3628
3629 2010-05-03  David Ung <davidu@mips.com>
3630             James E. Wilson  <wilson@codesourcery.com>
3631
3632         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
3633         emit the trap instruction before the divide for TUNE_74K.
3634
3635 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
3636
3637         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
3638         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
3639         based on the above, for new target hook.
3640
3641         * hooks.c (hook_bool_mode_true): New generic hook.
3642         * hooks.h (hook_bool_mode_true): Add prototype.
3643
3644         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
3645         target hook.
3646         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
3647         target hook, set to hook_bool_mode_false.
3648         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
3649         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
3650         with targetm.small_register_classes_for_mode_p.
3651         (find_reusable_reload): Likewise.
3652         (combine_reloads): Likewise.
3653         * reload1.c (reload_as_needed): Likewise.
3654         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
3655         * ifcvt.c (noce_process_if_block, check_cond_move_block,
3656         dead_or_predicable): Likewise.
3657         * regmove.c (optimize_reg_copy_1): Likewise.
3658         * calls.c (prepare_call_address): Likewise.
3659         (precompute_register_parameters): Likewise.
3660
3661         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
3662         hook definition.
3663         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
3664         implementation of the hook that considers all register classes
3665         small except for SH64.
3666         (sh_override_options): Use the new hook.
3667         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
3668         Add prototype.
3669
3670         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
3671         hook definition.
3672         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
3673         implementation of the hook that considers all register classes
3674         small for THUMB1.
3675         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
3676         Add prototype.
3677
3678         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
3679         hook definition.
3680         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
3681         implementation of the hook that considers all register classes
3682         small for MIPS16.
3683         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
3684         Add prototype.
3685
3686         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
3687         hook definition.
3688         * config/m32c/m32c.h: Likewise.
3689         * config/pdp11/pdp11.h: Likewise.
3690         * config/avr/avr.h: Likewise.
3691         * config/xtensa/xtensa.h: Likewise.
3692         * config/m68hc11/m68hc11.h: Likewise.
3693         * config/mn10300/mn10300.h: Likewise.
3694         * config/mcore/mcore.h: Likewise.
3695         * config/h8300/h8300.h: Likewise.
3696         * config/bfin/bfin.h: Likewise.
3697
3698         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
3699         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
3700
3701 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
3702
3703         * double-int.h (tree_to_double_int): Remove macro.
3704         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
3705         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
3706         (tree_to_double_int): New function.
3707         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
3708         Move ...
3709         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
3710
3711 2010-05-03  Richard Guenther  <rguenther@suse.de>
3712
3713         PR tree-optimization/43971
3714         * tree-ssa-structalias.c (get_constraint_for_1): Fix
3715         constraints in the !flag_delete_null_pointer_checks case.
3716
3717 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
3718
3719         PR debug/43972
3720         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
3721         result mode matches original rtl mode.
3722
3723 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
3724
3725         PR target/43888
3726         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
3727
3728 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3729
3730         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
3731         when processing flag options.
3732
3733 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3734
3735         * gcov-iov.c (main): Change format string placeholder
3736         from %#08x to 0x%08x.
3737         * genchecksum.c (dosum): Change format string placeholder
3738         from %#02x to 0x%02x.
3739
3740 2010-05-02  Richard Guenther  <rguenther@suse.de>
3741
3742         PR tree-optimization/43879
3743         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
3744
3745 2010-05-02  Bruno Haible  <bruno@clisp.org>
3746
3747         * doc/extend.texi (Function Attributes): Fix a typo.
3748
3749 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3750
3751         Revert:
3752         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
3753         placeholder from 0x%x to %#x.
3754         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
3755         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
3756         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
3757         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
3758         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
3759         * config/i386/i386.c (ix86_target_string): Ditto.
3760         * config/i386/i386.c (output_pic_addr_const): Ditto.
3761         (print_operand): Ditto.
3762
3763 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3764
3765         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
3766         placeholder from 0x%x to %#x.
3767         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
3768         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
3769         (ASM_OUTPUT_DEBUG_DATA): Ditto.
3770         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
3771         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
3772         * optc-gen.awk: Ditto.
3773         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
3774         (HOST_WIDE_INT_PRINT_HEX): Ditto.
3775         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
3776         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
3777
3778 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
3779
3780         * target.h (struct calls): Add function_value_regno_p field.
3781         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
3782         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
3783         * targhooks.c (default_function_value_regno_p): New function.
3784         * targhooks.h (default_function_value_regno_p): Declare function.
3785         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
3786         * builtins.c. (apply_result_size): (Ditto.).
3787         * combine.c. (likely_spilled_retval_p): (Ditto.).
3788         * mode-switching.c. Include 'target.h'.
3789         (create_pre_exit): Use function_value_regno_p hook.
3790         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
3791         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
3792         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
3793
3794         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
3795         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
3796         (ix86_function_value_regno_p): Declare as static, change argument
3797         type to const unsigned int.
3798         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
3799
3800 2010-05-01  Richard Guenther  <rguenther@suse.de>
3801
3802         PR tree-optimization/43949
3803         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
3804         types.
3805         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
3806
3807 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
3808
3809         * rtl.h (CONST_DOUBLE_P): Define.
3810         (rtx_to_double_int): Declare.
3811         * emit-rtl.c (rtx_to_double_int): New function.
3812         * dwarf2out.c (insert_double): New function.
3813         (loc_descriptor, add_const_value_attribute): Clean up, use
3814         rtx_to_double_int and insert_double functions.
3815
3816 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
3817
3818         * doc/extend.texi (Inline): Add missing return keyword to examples.
3819         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
3820         "command-line".
3821
3822 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
3823
3824         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
3825         the variable part of the offset as well.  Use highest_pow2_factor for
3826         all alignment checks.
3827
3828 2010-04-30  Richard Guenther  <rguenther@suse.de>
3829
3830         PR tree-optimization/43879
3831         * tree-ssa-structalias.c (type_could_have_pointers): Functions
3832         can have pointers.
3833
3834 2010-04-30  Jan Hubicka  <jh@suse.cz>
3835
3836         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
3837         varpool.
3838         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
3839
3840 2010-04-30  Jan Hubicka  <jh@suse.cz>
3841
3842         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
3843         New.
3844         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
3845         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
3846         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
3847         cgraph_node_set_needs_ltrans_p): Remove.
3848
3849 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
3850
3851         * sdbout.c: Include vec.h, do not include varray.h.
3852         (deferred_global_decls, sdbout_global_decl,
3853         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
3854         * toplev.c: Do not include varray.h.
3855         (dump_memory_report): Do not dump VARRAY statistics.
3856         * gengtype.c (open_base_file): Ignore varray.h.
3857         * Makefile.in: Update for abovementioned changes.
3858         Remove all traces of varray.c and varray.h.
3859         * varray.c: Remove file.
3860         * varray.h: Remove file.
3861
3862 2010-04-30  Jan Hubicka  <jh@suse.cz>
3863
3864         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
3865         references.
3866
3867 2010-04-30  Jan Hubicka  <jh@suse.cz>
3868
3869         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
3870         needed.
3871
3872 2010-04-30  Richard Guenther  <rguenther@suse.de>
3873
3874         * tree-ssa-structalias.c (get_constraint_for_1): Generate
3875         constraints for CONSTRUCTOR.
3876
3877 2010-04-30  Richard Guenther  <rguenther@suse.de>
3878
3879         PR lto/43946
3880         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
3881         first after all lowering passes.
3882
3883 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
3884
3885         * toplev.c: Include varray.h for statistics dumping.
3886         * tree.h: Do not declare varray_head_tag.
3887         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
3888         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
3889         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
3890         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
3891         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
3892         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
3893         c-common.c, c-common.h, reg-stack.c, basic-block.h,
3894         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
3895         include varray.h.
3896         * Makefile.in: Update for abovementioned changes.
3897
3898 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
3899
3900         PR debug/43942
3901         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
3902
3903 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
3904
3905         * config/picochip/picochip.c (picochip_legitimize_address): Define.
3906         Use this function to do machine-specific conversion.
3907         (picochip_legitimize_reload_address): Likewise.
3908         (picochip_legitimate_address_p): Check valid base register only if
3909         strict.
3910         (picochip_check_conditional_copy): Check for modw only if opnd is
3911         register.
3912         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
3913         to call the function in c.
3914         * config/picochip/picochip-protos.h
3915         (picochip_legitimize_reload_address): Define.
3916         * config/picochip/picochip.md (supported_compare1): Define.
3917
3918 2010-04-30  Jan Hubicka  <jh@suse.cz>
3919
3920         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
3921         (cgraph_global_info): Remove inlined.
3922         (LTO_cgraph_tag_names): Remove.
3923         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
3924         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
3925         simplify cgraph tags and document.
3926         (lto_output_node): Use only LTO_cgraph_unavail_node and
3927         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
3928         for_functions_valid, global info, process and output flags.
3929         (input_overwrite_node): Initialize estimated stack size and
3930         estimated growth.  Do not read flags we no longer store.
3931         (input_node): Likewise do not read info no longer stored.
3932         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
3933         flag.
3934
3935 2010-04-30  Richard Guenther  <rguenther@suse.de>
3936
3937         PR tree-optimization/43879
3938         * tree-ssa-structalias.c (get_constraint_for_1): Properly
3939         handle non-zero initializers.
3940
3941 2010-04-30  Richard Guenther  <rguenther@suse.de>
3942
3943         * builtins.c (fold_builtin_1): Delete free (0).
3944
3945 2010-04-29  Jan Hubicka  <jh@suse.cz>
3946
3947         * gengtype.c (open_base_files): Add lto-streamer.h
3948         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
3949         (pass_ipa_cp): GGC collect.
3950         * toplev. (compile_file): Do not output symbols.
3951         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
3952         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
3953         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
3954         * lto-section-in.c: Include ggc.h
3955         (lto_new_in_decl_state): Alloc in GGC.
3956         (lto_delete_in_decl_state): Likewise.
3957         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
3958         Collect.
3959
3960 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
3961
3962         PR target/42895
3963         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
3964         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
3965         (HONOR_REG_ALLOC_ORDER): Describe new macro.
3966         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
3967         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
3968         account only if HONOR_REG_ALLOC_ORDER is not defined.
3969         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
3970         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
3971
3972 2010-04-29  Jon Grant  <04@jguk.org>
3973
3974         * collect2.c (vflag): Change type from int to bool.
3975         (debug): Likewise.
3976         (helpflag): New global bool.
3977         (main): Set vflag and debug with boolean, not integer truth values.
3978         Accept new "--help" option and output usage text if found.
3979         * collect2.h (vflag): Update prototype.
3980         (debug): Likewise.
3981
3982 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3983
3984         PR bootstrap/43936
3985         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
3986
3987 2010-04-29  Richard Guenther  <rguenther@suse.de>
3988
3989         PR bootstrap/43935
3990         * plugin.h (invoke_plugin_callbacks): Annotate arguments
3991         with ATTRIBUTE_UNUSED.
3992
3993 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3994
3995         PR target/43921
3996         * config/i386/i386.c (get_some_local_dynamic_name): Replace
3997         INSN_P with NONDEBUG_INSN_P.
3998         (distance_non_agu_define): Likewise.
3999         (distance_agu_use): Likewise.
4000
4001 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
4002
4003         From Dominique d'Humieres <dominiq@lps.ens.fr>
4004         PR bootstrap/43858
4005         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
4006         test_set.
4007
4008 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
4009
4010         * plugin.h (invoke_plugin_callbacks): New inline function.
4011         * plugin.c (flag_plugin_added): New global flag.
4012         (add_new_plugin): Initialize above flag.
4013         (invoke_plugin_callbacks): Rename to ...
4014         (invoke_plugin_callbacks_full): ... this.
4015
4016 2010-04-28  Jan Hubicka  <jh@suse.cz>
4017
4018         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
4019         (lto_varpool_replace_node): New.
4020         (lto_symtab_resolve_symbols): Resolve varpool nodes.
4021         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
4022         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
4023         * cgraph.h (varpool_node_ptr): New type.
4024         (varpool_node_ptr): New vector.
4025         (varpool_node_set_def): New structure.
4026         (varpool_node_set): New type.
4027         (varpool_node_set): New vector.
4028         (varpool_node_set_element_def): New structure.
4029         (varpool_node_set_element, const_varpool_node_set_element): New types.
4030         (varpool_node_set_iterator): New type.
4031         (varpool_node): Add prev pointers, add used_from_other_partition,
4032         in_other_partition.
4033         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
4034         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
4035         varpool_get_node, varpool_remove_node): Declare.
4036         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
4037         varpool_node_set_size): New inlines.
4038         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
4039         * tree-pass.h (varpool_node_set_def): Forward declare.
4040         (ipa_opt_pass_d): Summary writting takes vnode sets too.
4041         (ipa_write_optimization_summaries): Update prototype.
4042         * ipa-cp.c (ipcp_write_summary): Update.
4043         * ipa-reference.c (ipa_reference_write_summary): Update.
4044         * lto-cgraph.c (lto_output_varpool_node): New static function.
4045         (output_varpool): New function.
4046         (input_varpool_node): New static function.
4047         (input_varpool_1): New function.
4048         (input_cgraph): Input varpool.
4049         * ipa-pure-const.c (pure_const_write_summary): Update.
4050         * lto-streamer-out.c (lto_output): Update, output varpool too.
4051         (write_global_stream): Kill WPA hack.
4052         (produce_asm_for_decls): Update.
4053         (output_alias_pair_p): Handle variables.
4054         (output_unreferenced_globals): Output only needed partition of varpool.
4055         * ipa-inline.c (inline_write_summary): Update.
4056         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
4057         cgraph.
4058         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
4059         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
4060         varpool_node_set_new, varpool_node_set_add,
4061         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
4062         debug_varpool_node_set): New functions.
4063         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
4064         (execute_one_pass): Process new decls too.
4065         (ipa_write_summaries_2): Pass around vsets.
4066         (ipa_write_summaries_1): Likewise.
4067         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
4068         to add.
4069         (ipa_write_optimization_summaries_1): Pass around vsets.
4070         (ipa_write_optimization_summaries): Likewise.
4071         * varpool.c (varpool_get_node): New.
4072         (varpool_node): Update doubly linked lists.
4073         (varpool_remove_node): New.
4074         (dump_varpool_node): More dumping.
4075         (varpool_enqueue_needed_node): Update doubly linked lists.
4076         (decide_is_variable_needed): Kill ltrans hack.
4077         (varpool_finalize_decl): Kill lto hack.
4078         (varpool_assemble_decl): Skip decls in other partitions.
4079         (varpool_assemble_pending_decls): Update doubly linkes lists.
4080         (varpool_empty_needed_queue): Likewise.
4081         (varpool_extra_name_alias): Likewise.
4082         * lto-streamer.c (lto_get_section_name): Add vars section.
4083         * lto-streamer.h (lto_section_type): Update.
4084         (output_varpool, input_varpool): Declare.
4085
4086 2010-04-28  Mike Stump  <mikestump@comcast.net>
4087
4088         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
4089
4090 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4091
4092         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
4093         record or union type with RECORD_OR_UNION_TYPE_P predicate.
4094         (lto_input_ts_type_tree_pointers): Likewise.
4095         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
4096         (lto_output_ts_type_tree_pointers): Likewise.
4097
4098 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4099
4100         Uniquization of constants at the Tree level
4101         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
4102         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
4103         bit to the end.
4104         (tree_output_constant_def): Declare.
4105         * gimplify.c (gimplify_init_constructor): When using block copy, first
4106         uniquize the constant constructor on the RHS.
4107         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
4108         DECL_IN_CONSTANT_POOL flag.
4109         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
4110         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
4111         constant pool.
4112         (assemble_variable): Deal with symbols belonging to the tree constant
4113         pool.
4114         (get_constant_section): Add ALIGN parameter and simplify.
4115         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
4116         (assemble_constant_contents): Use the expression of the VAR_DECL.
4117         (output_constant_def_contents): Use the alignment of the VAR_DECL.
4118         (tree_output_constant_def): New global function.
4119         (mark_constant): Use the expression of the VAR_DECL.
4120         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
4121         its expression.
4122         (output_object_block): Likewise and assemble the expression.
4123
4124 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4125
4126         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
4127         hash_tree, eq_tree): New tree hash table.
4128         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
4129         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
4130         lto_orig_address_remove): Reimplement.
4131
4132 2010-04-28  Xinliang David Li  <davidxl@google.com>
4133
4134         PR c/42643
4135         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
4136         (compute_uninit_opnds_pos): New function.
4137         (is_non_loop_exit_postdominating): New function.
4138         (compute_control_dep_chain): New function.
4139         (find_pdom): New function.
4140         (convert_control_dep_chain_into_preds): New function.
4141         (find_predicates): New function.
4142         (find_control_equiv_block): New function.
4143         (collect_phi_def_edges): New function.
4144         (find_def_preds): New function.
4145         (find_dom): New function.
4146         (dump_predicates): New function.
4147         (get_cmp_code): New function.
4148         (is_value_included_in): New function.
4149         (find_matching_predicate_in_rest_chains): New function.
4150         (use_pred_not_overlap_with_undef_path_pred): New function.
4151         (is_use_properly_guarded): New function.
4152         (normalize_cond_1): New function.
4153         (is_and_or_or): New function.
4154         (normalize_cond): New function.
4155         (is_gcond_subset_of): New function.
4156         (is_subset_of_any): New function.
4157         (is_or_set_subset_of): New function.
4158         (is_and_set_subset_of): New function.
4159         (is_norm_cond_subset_of): New function.
4160         (is_pred_expr_subset_of): New function.
4161         (is_pred_chain_subset_of): New function.
4162         (is_included_in): New function.
4163         (is_superset_of): New function.
4164         (find_uninit_use): New function.
4165         (warn_uninitialized_phi): New function.
4166         (compute_possibly_undefined_names): New function.
4167         (ssa_undefined_value_p): New function.
4168         (execute_late_warn_uninitialized): New function.
4169         * tree-ssa.c (ssa_undefined_value_p): Removed.
4170         (warn_uninit): Changed to extern.
4171         (warn_uninitialized_phi): Removed.
4172         (warn_uninitialized_vars): Changed to extern.
4173         (execute_late_warn_uninitialized): Removed
4174         * tree-flow.h: Add new prototypes.
4175         * timevar.def: Add new time variable.
4176         * Makefile.in: Add new build file.
4177
4178 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
4179
4180         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
4181         type if available.
4182
4183 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4184
4185         PR target/22224
4186         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
4187
4188 2010-04-28  Martin Jambor  <mjambor@suse.cz>
4189
4190         * cgraph.h (struct cgraph_node): New field indirect_calls.
4191         (struct cgraph_indirect_call_info): New type.
4192         (struct cgraph_edge): Removed field indirect_call. New fields
4193         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
4194         (cgraph_create_indirect_edge): Declare.
4195         (cgraph_make_edge_direct): Likewise.
4196         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
4197         * ipa-prop.h (struct ipa_param_call_note): Removed.
4198         (struct ipa_node_params): Removed field param_calls.
4199         (ipa_create_all_structures_for_iinln): Declare.
4200         * cgraph.c: Described indirect edges and uids in initial comment.
4201         (cgraph_add_edge_to_call_site_hash): New function.
4202         (cgraph_edge): Search also among the indirect edges, use
4203         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
4204         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
4205         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
4206         site hash.
4207         (initialize_inline_failed): Assign a reason to indirect edges.
4208         (cgraph_create_edge_1): New function.
4209         (cgraph_create_edge): Moved some functionality to
4210         cgraph_create_edge_1.
4211         (cgraph_create_indirect_edge): New function.
4212         (cgraph_edge_remove_callee): Add an assert checking for
4213         non-indirectness.
4214         (cgraph_edge_remove_caller): Special-case indirect edges.
4215         (cgraph_remove_edge): Likewise.
4216         (cgraph_set_edge_callee): New function.
4217         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
4218         (cgraph_make_edge_direct): New function.
4219         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
4220         the declaration of the call statement matches.
4221         (cgraph_node_remove_callees): Special-case indirect edges.
4222         (cgraph_clone_edge): Likewise.
4223         (cgraph_clone_node): Clone also the indirect edges.
4224         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
4225         indirect_call, dump count of indirect_calls edges.
4226         * ipa-prop.c (iinlining_processed_edges): New variable.
4227         (ipa_note_param_call): Create indirect edges instead of
4228         creating notes.  New parameter node.
4229         (ipa_analyze_call_uses): New parameter node, pass it on to
4230         ipa_note_param_call.
4231         (ipa_analyze_stmt_uses): Likewise.
4232         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
4233         (print_edge_addition_message): Work on edges rather than on notes.
4234         (update_call_notes_after_inlining): Likewise, renamed to
4235         update_indirect_edges_after_inlining.
4236         (ipa_create_all_structures_for_iinln): New function.
4237         (ipa_free_node_params_substructures): Do not free notes.
4238         (ipa_edge_duplication_hook): Propagate bits within
4239         iinlining_processed_edges bitmap.
4240         (ipa_node_duplication_hook): Do not duplicate notes.
4241         (free_all_ipa_structures_after_ipa_cp): Renamed to
4242         ipa_free_all_structures_after_ipa_cp.
4243         (free_all_ipa_structures_after_iinln): Renamed to
4244         ipa_free_all_structures_after_iinln.
4245         (ipa_write_param_call_note): Removed.
4246         (ipa_read_param_call_note): Removed.
4247         (ipa_write_indirect_edge_info): New function.
4248         (ipa_read_indirect_edge_info): Likewise.
4249         (ipa_write_node_info): Do not stream notes, do stream information
4250         in indirect edges.
4251         (ipa_read_node_info): Likewise.
4252         (lto_ipa_fixup_call_notes): Removed.
4253         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
4254         * ipa-inline.c (pass_ipa_inline): Likewise.
4255         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
4256         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
4257         * tree-inline.c (copy_bb): Removed an unnecessary double check for
4258         is_gimple_call.
4259         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
4260         edges.
4261         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
4262         (output_cgraph): Stream also indirect edges.
4263         (lto_output_edge): Added capability to stream indirect edges.
4264         (input_edge): Likewise.
4265         (input_cgraph_1): Likewise.
4266         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
4267         of indirect edges.
4268
4269 2010-04-28  Richard Guenther  <rguenther@suse.de>
4270
4271         PR tree-optimization/43879
4272         PR tree-optimization/43909
4273         * tree-ssa-structalias.c (struct variable_info): Add
4274         only_restrict_pointers flag.
4275         (new_var_info): Initialize it.  Increment stats.total_vars here.
4276         (create_function_info_for): Do not increment stats.total_vars here.
4277         (get_function_part_constraint): Fix build with C++.
4278         (insert_into_field_list): Remove.
4279         (push_fields_onto_fieldstack): Properly merge fields.
4280         (create_variable_info_for): Split and simplify.
4281         (create_variable_info_for_1): New piece.
4282         (intra_create_variable_infos): Properly make restrict constraints
4283         from parameters.
4284
4285 2010-04-28  Richard Guenther  <rguenther@suse.de>
4286
4287         PR c++/43880
4288         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
4289
4290 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4291             Jan Hubicka <hubicka@ucw.cz>
4292
4293         * doc/invoke.texi (-Wsuggest-attribute=const,
4294         -Wsuggest-attribute=pure): Document.
4295         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
4296         (function_always_visible_to_compiler_p,
4297         suggest_attribute, warn_function_pure, warn_function_const):
4298         New functions.
4299         (check_call): Improve debug info.
4300         (analyze_function): Do not check availability.
4301         (add_new_function): Check availability.
4302         (propagate): Output warnings.
4303         (skip_function_for_local_pure_const): New function.
4304         (local_pure_const): Use it; output warnings.
4305         * common.opt (Wsuggest-attribute=const,
4306         Wsuggest-attribute=pure): New.
4307
4308 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
4309
4310         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
4311         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
4312         or DW_CFA_def_cfa_offset{,_sf}.
4313
4314 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
4315
4316         * tree.h: Fix truncated long macros.
4317
4318 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
4319
4320         * collect2.c (TARGET_64BIT): Redefine to target's default.
4321         * tlink.c: Likewise.
4322         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
4323         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
4324         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
4325         for underscoring __USER_LABEL_PREFIX__.
4326         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
4327         (SUB_LINK_ENTRY32): New.
4328         (SUB_LINK_ENTRY64): New.
4329         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
4330         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
4331         (SUB_LINK_ENTRY64): New.
4332         (SUB_LINK_ENTRY): New.
4333         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
4334         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
4335         x64 target is choosen.
4336         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
4337         * configure: Regenerated.
4338         * configure.ac (leading-mingw64-underscores): Option added.
4339
4340 2010-04-27  Jan Hubicka  <jh@suse.cz>
4341
4342         * doc/invoke.texi (-fipa-profile): Document.
4343         * opts.c (decode_options): Enable ipa-profile at -O1.
4344         * timevar.def (TV_IPA_PROFILE): Define.
4345         * common.opt (fipa-profile): Add.
4346         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
4347         flag for clones.
4348         (cgraph_propagate_frequency): Handle only local ones.
4349         * tree-pass.h (pass_ipa_profile): Declare.
4350         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
4351         (pass_ipa_profile): Use TV_IPA_PROFILE.
4352         * ipa.c (ipa_profile): New function.
4353         (gate_ipa_profile): Likewise.
4354         (pass_ipa_profile): New global variable.
4355         * passes.c (pass_ipa_profile): New.
4356
4357 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
4358
4359         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
4360
4361 2010-04-27  Martin Jambor  <mjambor@suse.cz>
4362
4363         PR middle-end/43812
4364         * ipa.c (dissolve_same_comdat_group_list): New function.
4365         (function_and_variable_visibility): Call
4366         dissolve_same_comdat_group_list when comdat group contains external or
4367         newly local nodes.
4368         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
4369         lists are circular and that they contain only DECL_ONE_ONLY nodes.
4370
4371 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
4372
4373         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
4374         (const_hash_1) <VECTOR_CST>: New case.
4375         (compare_constant) <VECTOR_CST>: Likewise.
4376         <ADDR_EXPR>: Deal with LABEL_REFs.
4377         (copy_constant) <VECTOR_CST>: New case.
4378
4379 2010-04-27  Jan Hubicka  <jh@suse.cz>
4380
4381         * cgraph.c (cgraph_propagate_frequency): New function.
4382         * cgraph.h (cgraph_propagate_frequency): Declare.
4383         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
4384         cgraph_propagate_frequency.
4385
4386 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
4387
4388         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
4389
4390 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
4391
4392         PR target/40657
4393         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
4394         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
4395         here to determine which regs to push and how much stack to reserve.
4396
4397 2010-04-27  Jie Zhang  <jie@codesourcery.com>
4398
4399         * doc/gimple.texi (gimple_statement_with_ops): Remove
4400         addresses_taken field.
4401         (gimple_statement_with_memory_ops): Likewise.
4402
4403 2010-04-27  Jan Hubicka  <jh@suse.cz>
4404
4405         * tree-inline.c (eni_inlining_weights): Remove.
4406         (estimate_num_insns): Special case more builtins.
4407
4408 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
4409
4410         PR c/32207
4411         * c-typeck.c (build_binary_op): Move forward check for comparison
4412         pointer with null pointer constant and adjust the diagnostic message.
4413
4414 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
4415
4416         PR lto/42776
4417         * configure.ac (gcc_cv_as_section_has_align): Set if installed
4418         binutils supports extended .section directive needed by LTO, or
4419         warn if older binutils found.
4420         (LTO_BINARY_READER): New AC_SUBST'd variable.
4421         (LTO_USE_LIBELF): Likewise.
4422         * gcc/config.gcc (lto_binary_reader): New target-specific configure
4423         variable.
4424         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
4425         (LTO_USE_LIBELF): Likewise.
4426         * configure: Regenerate.
4427
4428         * collect2.c (is_elf): Rename from this ...
4429         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
4430          object files in addition to ELF-formatted ones.
4431         (scan_prog_file): Caller updated.  Also allow for LTO info marker
4432         symbol to be prefixed or not by an extra underscore.
4433
4434         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
4435         * config/i386/winnt.c: Also #include lto-streamer.h
4436         (i386_pe_asm_named_section): Specify 1-byte section alignment for
4437         LTO named sections.
4438         (i386_pe_asm_output_aligned_decl_common): Add comment.
4439         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
4440
4441 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
4442
4443         PR target/43889
4444         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
4445         Add missing earlyclobber for second alternative.
4446
4447 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
4448
4449         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
4450         bits for artificial defs at the top of the block.
4451         * fwprop.c (single_def_use_enter_block): Don't call it.
4452
4453 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
4454
4455         PR 43715
4456         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
4457         instead of "$gcc_cv_objdump -T".
4458         Use "-undefined dynamic_lookup" on darwin.
4459         * gcc/configure: Regenerate.
4460
4461 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
4462
4463         PR c/43893
4464         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
4465
4466 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
4467
4468         * c-parser.c (struct c_token): Move location field up.
4469         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
4470         (struct c_declspecs): Convert typespec_word, storage_class, and
4471         default_int_p into bitfields.
4472         (struct c_declarator): Move loc field up.
4473
4474 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
4475
4476         * cfgloop.h (struct loop): Move can_be_parallel field up.
4477         * ipa-prop.h (struct ip_node_params): Move bitfields up.
4478         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
4479         down.
4480         (struct iv_cand): Convert pos field into a bitfield.
4481         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
4482         field up.
4483         (struct _stmt_vec_info): Shuffle fields for better packing.
4484
4485 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
4486
4487         * varasm.c (IN_NAMED_SECTION): Remove guard.
4488         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
4489         (IN_NAMED_SECTION_P): ...this.
4490         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
4491         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
4492
4493 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
4494
4495         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
4496         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
4497         of shadowing it.  Fix comments.
4498
4499 2010-04-26  Jan Hubicka  <jh@suse.cz>
4500
4501         * cgraph.c (cgraph_create_node): Set node frequency to normal.
4502         (cgraph_clone_node): Copy function frequency.
4503         * cgraph.h (node_frequency): New enum
4504         (struct cgraph_node): Add.
4505         * final.c (rest_of_clean_state): Update.
4506         * lto-cgraph.c (lto_output_node): Output node frequency.
4507         (input_overwrite_node): Input node frequency.
4508         * tre-ssa-loop-ivopts (computation_cost): Update.
4509         * lto-streamer-out.c (output_function): Do not output function
4510         frequency.
4511         * predict.c (maybe_hot_frequency_p): Update and handle functions
4512         executed once.
4513         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
4514         attribute lookup.
4515         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
4516         (compute_function_frequency): Set noreturn functions to be executed
4517         once.
4518         (choose_function_section): Update.
4519         * lto-streamer-in.c (input_function): Do not input function frequency.
4520         * function.c (allocate_struct_function): Do not initialize function
4521         frequency.
4522         * function.h (function_frequency): Remove.
4523         (struct function): Remove function frequency.
4524         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
4525         (try_update): Update.
4526         * tree-inline.c (initialize_cfun): Do not update function frequency.
4527         * passes.c (pass_init_dump_file): Update.
4528         * i386.c (ix86_compute_frame_layout): Update.
4529         (ix86_pad_returns): Update.
4530
4531 2010-04-26  Jie Zhang  <jie@codesourcery.com>
4532
4533         PR tree-optimization/43833
4534         * tree-vrp.c (range_int_cst_p): New.
4535         (range_int_cst_singleton_p): New.
4536         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
4537         when both operands are constants.  Use range_int_cst_p in
4538         BIT_IOR_EXPR case.
4539
4540 2010-04-26  Jan Hubicka  <jh@suse.cz>
4541
4542         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
4543
4544 2010-04-26  Richard Guenther  <rguenther@suse.de>
4545
4546         PR lto/43080
4547         * gimple.c (gimple_decl_printable_name): Deal gracefully
4548         with a NULL DECL_NAME.
4549
4550 2010-04-26  Richard Guenther  <rguenther@suse.de>
4551
4552         PR lto/42425
4553         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
4554         if emitting debug information and it is either a function
4555         or a namespace decl.
4556
4557 2010-04-26  Ira Rosen  <irar@il.ibm.com>
4558
4559         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
4560         determine if the statement is vectorizable, and a macro to access it.
4561         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
4562         Skip statements that can't be vectorized. If the analysis fails,
4563         mark the statement as unvectorizable if vectorizing basic block.
4564         (vect_compute_data_refs_alignment): Likewise.
4565         (vect_verify_datarefs_alignment): Skip statements marked as
4566         unvectorizable. Add print.
4567         (vect_analyze_group_access): Skip statements that can't be
4568         vectorized. If the analysis fails, mark the statement as
4569         unvectorizable if vectorizing basic block.
4570         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
4571         * tree-vect-stmts.c (vectorizable_store): Fix the number of
4572         generated stmts for SLP.
4573         (new_stmt_vec_info): Initialize the new field.
4574         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
4575         statements marked as unvectorizable.
4576
4577 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
4578
4579         * c-common.c (flag_isoc1x): New.
4580         (flag_isoc99): Update comment.
4581         * c-common.h (flag_isoc1x): New.
4582         (flag_isoc99): Update comment.
4583         * c-cppbuiltin.c (builtin_define_float_constants): Also define
4584         __<type>_DECIMAL_DIG__.
4585         * c-opts.c (set_std_c1x): New.
4586         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
4587         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
4588         * c.opt (-std=c1x, -std=gnu1x): New options.
4589         * doc/cpp.texi: Mention -std=c1x.
4590         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
4591         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
4592         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
4593         * doc/standards.texi: Mention C1X.
4594         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
4595         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
4596         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
4597         Define for C1X.
4598
4599 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
4600
4601         * config/i386/gmon-sol2.c (_mcleanup): Change format string
4602         placeholder from 0x%x to %#x.
4603         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
4604         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
4605         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
4606         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
4607         * config/i386/i386.c (ix86_target_string): Ditto.
4608         (output_pic_addr_const): Ditto.
4609         (print_operand): Ditto.
4610
4611 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
4612
4613         * combine.c (find_split_point): Add third argument.  Use it
4614         to find nested multiply-accumulate instructions.  Adjust calls.
4615         (try_combine): Adjust call to find_split_point.
4616
4617 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
4618
4619         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
4620
4621 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
4622
4623         PR tree-optimization/41442
4624         * fold-const.c (merge_truthop_with_opposite_arm): New function.
4625         (fold_binary_loc): Call it.
4626
4627 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4628
4629         * toplev.c (general_init): Set default for fdiagnostics-show-option.
4630         * opts.c (common_handle_option): Allow disabling it.
4631         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
4632
4633 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
4634
4635         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
4636         between modes if both types are integral.
4637
4638 2010-04-23  Richard Guenther  <rguenther@suse.de>
4639
4640         PR tree-optimization/43572
4641         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
4642
4643 2010-04-23  Richard Guenther  <rguenther@suse.de>
4644
4645         PR lto/43455
4646         * tree-inline.c (tree_can_inline_p): Also check compatibility
4647         of return types.
4648
4649 2010-04-23  Martin Jambor  <mjambor@suse.cz>
4650
4651         PR tree-optimization/43846
4652         * tree-sra.c (struct access): New flag grp_assignment_read.
4653         (build_accesses_from_assign): Set grp_assignment_read.
4654         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
4655         (enum mark_read_status): New type.
4656         (analyze_access_subtree): Propagate grp_assignment_read, create
4657         accesses also if both direct_read and root->grp_assignment_read.
4658
4659 2010-04-23  Martin Jambor  <mjambor@suse.cz>
4660
4661         PR middle-end/43835
4662         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
4663         function does not have type attributes.
4664
4665 2010-04-23  Richard Guenther  <rguenther@suse.de>
4666
4667         PR lto/42653
4668         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
4669         of FUNCTION_DECLs.
4670
4671 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4672
4673         * sese.h (create_if_region_on_edge): Remove.
4674
4675         * sese.c (create_if_region_on_edge): Make static.
4676
4677         * tree-inline.c: Do not include ggc.h.
4678
4679         * expr.c: Do not include ggc.h.
4680
4681         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
4682         dependencies.
4683
4684 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
4685
4686         PR target/43744
4687         * config/sh/sh.c (find_barrier): Don't emit a constant pool
4688         in the middle of insns for casesi_worker_2.
4689
4690 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
4691
4692         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
4693
4694 2010-04-22  Ira Rosen  <irar@il.ibm.com>
4695
4696         PR tree-optimization/43842
4697         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
4698         loop unrolling in update of exit phis. Fix comment.
4699         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
4700         least two reduction statements in the loop before starting SLP
4701         analysis.
4702
4703 2010-04-22  Nick Clifton  <nickc@redhat.com>
4704
4705         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
4706
4707 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
4708
4709         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
4710         to simplify a + ~a.
4711
4712 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4713
4714         * tree-parloops.c (loop_parallel_p): New argument
4715         parloop_obstack.  Pass it down.
4716         (parallelize_loops): New variable parloop_obstack.  Initialize it,
4717         pass it down, free it.
4718
4719         * tree-loop-linear.c (linear_transform_loops): Pass down
4720         lambda_obstack.
4721
4722         * tree-data-ref.h (lambda_compute_access_matrices): New argument
4723         of type struct obstack *.
4724
4725         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
4726         scratch_obstack.  Initialize it, pass down, free it.
4727
4728         * lambda.h (lambda_loop_new): Remove.
4729         (lambda_matrix_new, lambda_matrix_inverse)
4730         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
4731         argument of type struct obstack *.
4732
4733         * lambda-trans.c (lambda_trans_matrix_new): New argument
4734         lambda_obstack.  Pass it down, use obstack allocation for ret.
4735         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
4736         it down.
4737
4738         * lambda-mat.c (lambda_matrix_get_column)
4739         (lambda_matrix_project_to_null): Remove.
4740         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
4741         allocation for mat.
4742         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
4743         lambda_obstack.
4744
4745         * lambda-code.c (lambda_loop_new): New function.
4746         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
4747         (lambda_compute_auxillary_space, lambda_compute_target_space)
4748         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
4749         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
4750         (build_access_matrix): New argument lambda_obstack.  Use obstack
4751         allocation for am.
4752         (lambda_compute_step_signs, lambda_compute_access_matrices): New
4753         argument lambda_obstack.  Pass it down.
4754
4755 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4756
4757         * optabs.h (expand_widening_mult): Declare.
4758
4759 2010-04-22  Richard Guenther  <rguenther@suse.de>
4760
4761         PR tree-optimization/43845
4762         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
4763         lookup the CALL_EXPR function and arguments.
4764
4765 2010-04-22  Nick Clifton  <nickc@redhat.com>
4766
4767         * config/stormy16/stormy16.c
4768         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
4769         * config/stormy16/stormy16.h: Tidy up formatting.
4770         (DONT_USE_BUILTIN_SETJMP): Remove definition.
4771         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
4772         (ineqbranchsi): Delete pattern.
4773         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
4774         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
4775         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
4776         stormy16-lib2-ucmpsi2.c.
4777
4778 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4779
4780         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
4781         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
4782         extra set merge_set_noclobber, and use it to relax the final test
4783         slightly.
4784         * df.h (df_simulate_find_noclobber_defs): Declare.
4785         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
4786         conditional defs.
4787         (df_simulate_find_noclobber_defs): New function.
4788
4789 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
4790
4791         * config/i386/i386.md: Use {} around multi-line preparation statements.
4792
4793 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4794
4795         * c-tree.h (push_init_level, pop_init_level, set_init_index)
4796         (process_init_element): New argument of type struct obstack *.
4797
4798         * c-typeck.c (push_init_level, pop_init_level, set_designator)
4799         (set_init_index, set_init_label, set_nonincremental_init)
4800         (set_nonincremental_init_from_string, find_init_member)
4801         (output_init_element, output_pending_init_elements)
4802         (process_init_element): New argument braced_init_obstack.  Pass it
4803         down.
4804         (push_range_stack, add_pending_init): New argument
4805         braced_init_obstack.  Use obstack allocation.
4806
4807         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
4808         braced_init_obstack.  Pass it down.
4809         (c_parser_braced_init): New variables ret, braced_init_obstack.
4810         Initialize obstack, pass it down and finally free it.
4811
4812 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4813
4814         PR middle-end/29274
4815         * tree-pass.h (pass_optimize_widening_mul): Declare.
4816         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
4817         gate_optimize_widening_mul): New static functions.
4818         (pass_optimize_widening_mul): New.
4819         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
4820         <case MULT_EXPR>: Remove support for widening multiplies.
4821         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
4822         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
4823         simplify_gen_unary rather than directly building extensions.
4824         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
4825         WIDEN_MULT_EXPR.
4826         * expmed.c (expand_widening_mult): New function.
4827         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
4828
4829 2010-04-21  Jan Hubicka  <jh@suse.cz>
4830
4831         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
4832         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
4833         * lto-wpa-fixup.c: Remove.
4834         * Makefile.in (lto-wpa-fixup.o): Remove.
4835         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
4836         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
4837         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
4838
4839 2010-04-21  Jan Hubicka  <jh@suse.cz>
4840
4841         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
4842         add write_optimization_summary, read_optimization_summary.
4843         (ipa_write_summaries_of_cgraph_node_set): Remove.
4844         (ipa_write_optimization_summaries): Declare.
4845         (ipa_read_optimization_summaries): Declare.
4846         * ipa-cp.c (pass_ipa_cp): Update.
4847         * ipa-reference.c (pass_ipa_reference): Update.
4848         * ipa-pure-const.c (pass_ipa_pure_const): Update.
4849         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
4850         Update.
4851         * ipa-inline.c (pass_ipa_inline): Update.
4852         * ipa.c (pass_ipa_whole_program): Update.
4853         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
4854         * passes.c (ipa_write_summaries_1): Do not test wpa.
4855         (ipa_write_optimization_summaries_1): New.
4856         (ipa_write_optimization_summaries): New.
4857         (ipa_read_summaries): Do not test ltrans.
4858         (ipa_read_optimization_summaries_1): New.
4859         (ipa_read_optimization_summaries): New.
4860
4861 2010-04-21  Jan Hubicka  <jh@suse.cz>
4862
4863         * lto-cgraph.c (lto_output_node): Do not output comdat groups
4864         for boundary nodes.
4865         (output_cgraph): Do not arrange comdat groups for boundary nodes.
4866
4867 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4868
4869         PR debug/40040
4870         * dwarf2out.c (add_name_and_src_coords_attributes): Add
4871         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
4872
4873 2010-04-21  Jan Hubicka  <jh@suse.cz>
4874
4875         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
4876
4877 2010-04-21  Jan Hubicka  <jh@suse.cz>
4878
4879         * varpool.c (decide_is_variable_needed): Variable is always needed
4880         during ltrans.
4881
4882 2010-04-21  Jan Hubicka  <jh@suse.cz>
4883
4884         * opts.c (decode_options): Enable pure-const pass for whopr.
4885
4886 2010-04-21  Jan Hubicka  <jh@suse.cz>
4887
4888         * cgraph.c (dump_cgraph_node): Dump also assembler name.
4889         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
4890         at WPA dumping.
4891         (cgraph_decide_inlining): Do not expect callee to be removed in all
4892         cases.
4893
4894 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
4895
4896         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
4897
4898 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
4899
4900         * config/i386/i386.md (x86_shrd): Add athlon_decode and
4901         amdfam10_decode attributes.
4902
4903 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4904
4905         PR middle-end/43570
4906         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
4907         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
4908         (lower_copyprivate_clauses): Use private var in outer
4909         context instead of original var.  Make sure the types
4910         are correct for VLAs.
4911
4912 2010-04-21  Richard Guenther  <rguenther@suse.de>
4913
4914         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
4915         to non-pointer objects.
4916
4917 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4918
4919         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
4920         last chain entry if it starts with the still current label.
4921         (add_location_or_const_value_attribute): Check that
4922         loc_list->first->next is NULL instead of comparing ->first with ->last.
4923         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
4924         to add_var_loc_to_decl.
4925
4926         * dwarf2out.c (output_call_frame_info): For dw_cie_version
4927         >= 4 add also address size and segment size fields into CIE header.
4928
4929         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
4930         long as address size is the same as sizeof (void *) and
4931         segment size is 0.
4932         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
4933         address size or segment size is unexpected, return DW_EH_PE_omit.
4934         (classify_object_over_fdes): If get_cie_encoding returned
4935         DW_EH_PE_omit, return -1.
4936         (init_object): If classify_object_over_fdes returned -1,
4937         pretend there were no FDEs at all.
4938
4939 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
4940
4941         * config/i386/i386.md (bswap<mode>2): Macroize expander from
4942         bswap{si,di}2 using SWI48 mode iterator.
4943         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
4944         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
4945         set modrm attribute of bswap insn to 0 and remove length attribute.
4946         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
4947         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
4948         set mode attribute to <MODE> and remove length attribute.
4949
4950 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
4951
4952         PR rtl-optimization/43520
4953         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
4954         zero available registers.
4955
4956 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4957
4958         * builtins.c (fold_builtin_cproj): Fold more cases.
4959
4960 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4961
4962         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
4963         (fold_builtin_1): Fold builtin cproj.
4964         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
4965         Use ATTR_CONST_NOTHROW_LIST.
4966
4967 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
4968
4969         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
4970         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
4971         ffsi2_no_cmove for !TARGET_CMOVE.
4972         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
4973         (ffssi2): Remove expander.
4974         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
4975         mode iterator.
4976         (ctz<mode>2): Ditto from ctz{si,di}2.
4977         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
4978         mode iterator.
4979         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
4980         mode iterator.
4981
4982 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
4983
4984         * dwarf2out.c (AT_linkage_name): Define.
4985         (clone_as_declaration): Handle DW_AT_linkage_name.
4986         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
4987         of DW_AT_MIPS_linkage_name.
4988         (move_linkage_attr): Likewise.
4989         (dwarf2out_finish): Likewise.
4990
4991 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
4992
4993         PR middle-end/41952
4994         * fold-const.c (fold_comparison): New folding rule.
4995
4996 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
4997
4998         * double-int.h (double_int_setbit): Declare.
4999         * double-int.c (double_int_setbit): New function.
5000         * rtl.h (immed_double_int_const): Declare.
5001         * emit-rtl.c (immed_double_int_const): New function.
5002         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
5003         and immed_double_int_const functions.
5004         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
5005         expand_copysign_bit):  (Ditto.).
5006         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
5007         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
5008         * dojump.c (prefer_and_bit_test): (Ditto.).
5009         * expr.c (convert_modes, reduce_to_bit_field_precision,
5010         const_vector_from_tree): (Ditto.).
5011         * expmed.c (mask_rtx, lshift_value): (Ditto.).
5012
5013 2010-04-20  Jan Hubicka  <jh@suse.cz>
5014
5015         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
5016         (dump_cgraph_node): Dump new flags.
5017         * cgraph.h (struct cgraph_node): Add flags
5018         reachable_from_other_partition and in_other_partition.
5019         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
5020         other partition can not be removed.
5021         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
5022         the other partition must be output; silence sanity checking on
5023         leaking functions bodies from other paritition.
5024         * lto-cgraph.c (reachable_from_other_partition_p): New function.
5025         (lto_output_node): Output new flags; do not sanity check that inline
5026         clones are output; drop lto_forced_extern_inline_p code; do not mock
5027         visibility flags at partition boundaries.
5028         (add_node_to): New function.
5029         (output_cgraph): Use it to sort functions so masters appear before
5030         clones.
5031         (input_overwrite_node): Input new flags.
5032         * passes.c (ipa_write_summaries): Do not call
5033         lto_new_extern_inline_states.
5034         * lto-section-out.c (forced_extern_inline,
5035         lto_new_extern_inline_states lto_delete_extern_inline_states,
5036         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
5037         * lto-streamer.h (lto_new_extern_inline_states,
5038         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
5039         lto_forced_extern_inline_p): Kill.
5040
5041 2010-04-20  Richard Guenther  <rguenther@suse.de>
5042
5043         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
5044         from vars that can have pointers.
5045         (process_constraint): Dump useless constraints.
5046
5047 2010-04-20  Richard Guenther  <rguenther@suse.de>
5048
5049         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
5050         (dump_sa_points_to_info): Remove asserts.
5051         (init_base_vars): nothing_id isn't an escape point nor does it
5052         have pointers.
5053
5054 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
5055
5056         * tree.h (TYPE_REF_IS_RVALUE): Define.
5057         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
5058         should_move_die_to_comdat, prune_unused_types_walk): Handle
5059         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
5060         (modified_type_die, gen_reference_type_die): Emit
5061         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
5062         if TYPE_REF_IS_RVALUE and -gdwarf-4.
5063
5064 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5065
5066         PR target/43635
5067         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
5068         calls for -fpic -m31 if they have been sibcall optimized.
5069
5070 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
5071
5072         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
5073         ar.lc fixed and call-used.
5074
5075         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
5076
5077 2010-04-19  Jan Hubicka  <jh@suse.cz>
5078
5079         * opts.c (decode_options): Disable whpr incompatible passes.
5080         * lto/lto.c (lto_1_to_1_map): Skip clones.
5081         (read_cgraph_and_symbols): Do not mark everything as needed.
5082         (do_whole_program_analysis): Do map only after optimizing;
5083         set proper cgraph_state; use passmanager.
5084
5085 2010-04-19  DJ Delorie  <dj@redhat.com>
5086
5087         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
5088         POINTER_PLUS_EXPR and fix them.
5089
5090 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
5091
5092         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
5093         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
5094         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
5095         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
5096         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
5097         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
5098         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
5099         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
5100         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
5101         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
5102         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
5103
5104 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
5105
5106         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
5107         (check_cond_move_block): Likewise.
5108         (cond_move_process_if_block): Likewise.
5109         (noce_find_if_block): Improve formatting.
5110         (find_if_header): Pass 0 to memset and tweak conditions.
5111         (cond_exec_find_if_block): Fix long lines and tweak conditions.
5112
5113 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
5114
5115         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
5116         for -gdwarf-4.
5117
5118         PR middle-end/43337
5119         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
5120         with non-local decl doesn't need chain.
5121
5122 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
5123
5124         * ira-color.c (allocno_reload_assign): Avoid accumulating
5125         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
5126
5127 2010-04-19  Martin Jambor  <mjambor@suse.cz>
5128
5129         * gimple.h (create_tmp_reg): Declare.
5130         * gimplify.c (create_tmp_reg): New function.
5131         (gimplify_return_expr): Use create_tmp_reg.
5132         (gimplify_omp_atomic): Likewise.
5133         (gimple_regimplify_operands): Likewise.
5134         * tree-dfa.c (make_rename_temp): Likewise.
5135         * tree-predcom.c (predcom_tmp_var): Likewise.
5136         (reassociate_to_the_same_stmt): Likewise.
5137         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
5138         (get_replaced_param_substitute): Likewise.
5139         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
5140         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
5141         * tree-ssa-pre.c (get_representative_for): Likewise.
5142         (create_expression_by_pieces): Likewise.
5143         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
5144         (create_tailcall_accumulator): Likewise.
5145
5146 2010-04-19  Martin Jambor  <mjambor@suse.cz>
5147
5148         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
5149         new_stmt.
5150         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
5151
5152 2010-04-19  Richard Guenther  <rguenther@suse.de>
5153
5154         PR tree-optimization/43796
5155         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
5156         from SCEV in the lattice.
5157         (vrp_visit_phi_node): Dump change.
5158
5159 2010-04-19  Richard Guenther  <rguenther@suse.de>
5160
5161         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
5162         * configure: Re-generated.
5163
5164 2010-04-19  Richard Guenther  <rguenther@suse.de>
5165
5166         PR tree-optimization/43783
5167         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
5168         constant ARRAY_REF operands two and three if possible.
5169
5170 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
5171
5172         PR target/43766
5173         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
5174
5175 2010-04-19  Jie Zhang  <jie@codesourcery.com>
5176
5177         PR target/43662
5178         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
5179
5180 2010-04-19  Ira Rosen  <irar@il.ibm.com>
5181
5182         PR tree-optimization/37027
5183         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
5184         and macro to access it.
5185         (vectorizable_reduction): Add argument.
5186         (vect_get_slp_defs): Likewise.
5187         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
5188         statements for possible use in SLP.
5189         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
5190         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
5191         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
5192         add new argument.
5193         (vectorizable_reduction): Likewise.
5194         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
5195         vect_get_slp_defs.
5196         (vectorizable_type_demotion, vectorizable_type_promotion,
5197         vectorizable_store): Likewise.
5198         (vect_analyze_stmt): Update call to vectorizable_reduction.
5199         (vect_transform_stmt): Likewise.
5200         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
5201         (vect_build_slp_tree): Fix indentation. Check that there are no loads
5202         from different interleaving chains in same node.
5203         (vect_slp_rearrange_stmts): New function.
5204         (vect_supported_load_permutation_p): Allow load permutations for
5205         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
5206         inside SLP nodes if necessary.
5207         (vect_analyze_slp_instance): Handle reductions.
5208         (vect_analyze_slp): Try to build SLP instances originating from groups
5209         of reductions.
5210         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
5211         (vect_get_constant_vectors): Create initial vectors for reductions
5212         according to reduction code. Add new argument.
5213         (vect_get_slp_defs): Add new argument, pass it to
5214         vect_get_constant_vectors.
5215         (vect_schedule_slp_instance): Remove SLP tree root statements.
5216
5217 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
5218
5219         * tree.h (ENUM_IS_SCOPED): Define.
5220         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
5221         for ENUM_IS_SCOPED enums.
5222
5223 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5224
5225         * fold-const.c (fold_comparison): Use ssizetype.
5226         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
5227         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
5228         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
5229         * tree-object-size.c (compute_object_sizes): Use size_type_node.
5230
5231         * tree.h (initialize_sizetypes): Remove parameter.
5232         (build_common_tree_nodes): Remove second parameter.
5233         * stor-layout.c (initialize_sizetypes): Remove parameter.
5234         Always create an unsigned type.
5235         (set_sizetype): Assert that the passed type is unsigned and simplify.
5236         * tree.c (build_common_tree_nodes): Remove second parameter.
5237         Adjust call to initialize_sizetypes.
5238         * c-decl.c (c_init_decl_processing): Remove second argument in call to
5239         build_common_tree_nodes.
5240
5241 2010-04-18  Matthias Klose  <doko@ubuntu.com>
5242
5243         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
5244
5245 2010-04-18  Ira Rosen  <irar@il.ibm.com>
5246
5247         PR tree-optimization/43771
5248         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
5249         load permutation doesn't have gaps.
5250
5251 2010-04-18  Jan Hubicka  <jh@suse.cz>
5252
5253         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
5254         (sse_prologue_save_insn expander): Use new pattern.
5255         (sse_prologue_save_insn1): New pattern and splitter.
5256         (sse_prologue_save_insn): Update to deal also with 64bit aligned
5257         blocks.
5258         * i386.c (setup_incoming_varargs_64): Do not compute jump
5259         destination here.
5260         (ix86_gimplify_va_arg): Update alignment needed.
5261         (ix86_local_alignment): Do not align all local arrays to 128bit.
5262
5263 2010-04-17  Jan Hubicka  <jh@suse.cz>
5264
5265         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
5266
5267 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5268
5269         * arm.md (negdi2): Remove redundant code to force values into a
5270         register.
5271
5272 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5273
5274         * arm/bpabi.S: Add EABI alignment attributes to objects.
5275         * arm/bpabi-v6m.S: Likewise.
5276         * arm/crti.asm: Likewise.
5277         * arm/crtn.asm: Likewise.
5278         * arm/lib1funcs.asm: Likewise.
5279         * arm/libunwind.S: Likewise.
5280
5281 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
5282
5283         * arm-protos.h (tune_params): New structure.
5284         * arm.c (current_tune): New variable.
5285         (arm_constant_limit): Delete.
5286         (struct processors): Add pointer to the tune parameters.
5287         (arm_slowmul_tune): New tuning option.
5288         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
5289         (all_cores): Adjust to pick up the tuning model.
5290         (arm_constant_limit): New function.
5291         (arm_override_options): Select the appropriate tuning model.  Delete
5292         initialization of arm_const_limit.
5293         (arm_split_constant): Use the new constant-limit model.
5294         (arm_rtx_costs): Pick up the current tuning model.
5295         * arm.md (is_strongarm, is_xscale): Delete.
5296         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
5297         for Xscale variant architectures.
5298         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
5299
5300 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5301
5302         * config/arm/arm.c (arm_gen_constant): Remove unused variable
5303         can_shift.
5304         (arm_rtx_costs_1): Remove unused variable extra_cost.
5305         (arm_unwind_emit_set): Use variable offset.
5306         (thumb1_output_casesi): Remove unused variable flags.
5307
5308 2010-04-16  Jeff Law  <law@redhat.com>
5309
5310         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
5311         needing assignment rather than doing a two-phase assignment.  Remove
5312         unused variable 'm'.
5313
5314 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5315
5316         PR bootstrap/43767
5317         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
5318
5319 2010-04-16  Doug Kwan  <dougkwan@google.com>
5320
5321         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
5322         (next_operand_entry_id): New static variable.
5323         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
5324         (add_to_ops_vec): Assigned unique ID to operand entry.
5325         (struct oecount_s): New field ID.
5326         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
5327         (undistribute_ops_list): Assign unique IDs to oecounts.
5328         (init_reassoc): reset next_operand_entry_id.
5329
5330 2010-04-16  Doug Kwan  <dougkwan@google.com>
5331
5332         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
5333         missing left parenthesis.
5334
5335 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
5336
5337         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
5338         *btdi_rex64 using SWI48 mode iterator.
5339         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
5340         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
5341         *jcc_btdi_mask_rex64.
5342
5343 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
5344
5345         * double-int.h (tree_to_double_int): Convert to macro.
5346         * double-int.c (tree_to_double_int): Remove.
5347
5348 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5349
5350         PR debug/43762
5351         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
5352         with want_address 2 and in case a single element list might be
5353         possible, call it again with want_address 0.
5354
5355 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
5356
5357         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
5358         case 'W' print operands for HI mode.
5359         * config/h8300/h8300.h (Y0, Y2) : New constraints.
5360         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
5361         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
5362         * config/h8300/predicate.md (bit_register_indirect_operand): New.
5363
5364         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
5365
5366         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
5367         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
5368         #xx:3 and #xx:4 mode.
5369
5370         * config/h8300/h8300.md (inverted load with HImode dest): Add
5371         support for H8300SX.
5372
5373         * config/h8300/predicate.md (bit_operand): Allow immediate values that
5374         satisfy 'U' constraint.
5375
5376 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5377
5378         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
5379         * configure: Regenerate.
5380         * config.in: Regenerate.
5381         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
5382         works.
5383
5384 2010-04-16  Richard Guenther  <rguenther@suse.de>
5385
5386         * tree.h (struct tree_decl_minimal): Move pt_uid ...
5387         (struct tree_decl_common): ... here.
5388         (DECL_PT_UID): Adjust.
5389         (SET_DECL_PT_UID): Likewise.
5390         (DECL_PT_UID_SET_P): Likewise.
5391
5392 2010-04-16  Richard Guenther  <rguenther@suse.de>
5393
5394         PR tree-optimization/43572
5395         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
5396         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
5397         * tree-flow.h (is_call_clobbered): Remove.
5398         * tree-flow-inline.h (is_call_clobbered): Likewise.
5399         * tree-dfa.c (dump_variable): Do not dump call clobber state.
5400         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
5401         (execute_return_slot_opt): Adjust.
5402         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
5403         check for call clobbered vars here.
5404         (find_tail_calls): Move tailcall verification to the
5405         proper place.
5406
5407 2010-04-16  Diego Novillo  <dnovillo@google.com>
5408
5409         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
5410
5411 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5412
5413         PR target/40603
5414         * config/arm/arm.md (cbranchqi4): New pattern.
5415         * config/arm/predicates.md (const0_operand,
5416         cbranchqi4_comparison_operator): New predicates.
5417
5418 2010-04-16  Richard Guenther  <rguenther@suse.de>
5419
5420         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
5421         (dump_gimple_stmt): Likewise.
5422
5423 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5424
5425         * recog.h (struct recog_data): New field is_operator.
5426         (struct insn_operand_data): New field is_operator.
5427         * recog.c (extract_insn): Set recog_data.is_operator.
5428         * genoutput.c (output_operand_data): Emit code to set the
5429         is_operator field.
5430         * reload.c (find_reloads): Use it rather than testing for an
5431         empty constraint string.
5432
5433         PR target/41514
5434         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
5435         If the previous insn is a cbranchsi4_insn with the same arguments,
5436         omit the compare instruction.
5437
5438         * config/arm/arm.md (addsi3_cbranch): If destination is a high
5439         register, inputs must be low registers and we need a low register
5440         scratch.  Handle alternative 2 like alternative 3.
5441
5442 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5443
5444         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
5445         don't call get_addr on both.  If one expression is a VALUE and
5446         the other a REG, check VALUE's locs if the REG isn't among them.
5447
5448 2010-04-16  Christian Bruel  <christian.bruel@st.com>
5449
5450         * config/sh/sh.h (sh_frame_pointer_required): New function.
5451         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
5452         (flag_omit_frame_pointer) Set.
5453         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
5454         (rounded_frame_size): Adjust size with outgoing_args_size.
5455         (sh_set_return_address): Must return from stack pointer.
5456         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
5457         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
5458         (ACCUMULATE_OUTGOING_ARGS): Define.
5459         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
5460         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
5461
5462 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5463
5464         PR target/43471
5465         * config/sh/sh.c (sh_legitimize_reload_address): Use
5466         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
5467         Remove a unneeded check for offset_base.
5468
5469 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
5470
5471         * configure: Regenerated.
5472
5473 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5474
5475         * config/s390/s390.c (s390_call_save_register_used): Switch back
5476         to HARD_REGNO_NREGS.
5477
5478 2010-04-15  Richard Guenther  <rguenther@suse.de>
5479
5480         * alias.c (alias_set_subset_of): Handle alias-set zero
5481         child properly.
5482
5483 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
5484             Julian Brown  <julian@codesourcery.com>
5485
5486         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
5487         alternatives according to use of high and low regs.
5488         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
5489         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
5490         optimizing for size on Thumb-2.
5491
5492 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
5493
5494         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
5495
5496 2010-04-15  Richard Guenther  <rguenther@suse.de>
5497
5498         * tree-ssa-structalias.c (struct variable_info): Add
5499         is_fn_info flag.
5500         (new_var_info): Initialize it.
5501         (dump_constraints): Support printing last added constraints.
5502         (debug_constraints): Adjust.
5503         (dump_constraint_graph): Likewise.
5504         (make_heapvar_for): Check for NULL cfun.
5505         (get_function_part_constraint): New function.
5506         (get_fi_for_callee): Likewise.
5507         (find_func_aliases): Properly implement IPA PTA constraints.
5508         (process_ipa_clobber): New function.
5509         (find_func_clobbers): Likewise.
5510         (insert_into_field_list_sorted): Remove.
5511         (create_function_info_for): Properly allocate vars for IPA mode.
5512         Do not use insert_into_field_list_sorted.
5513         (create_variable_info_for): Properly generate constraints for
5514         global vars in IPA mode.
5515         (dump_solution_for_var): Always dump the solution.
5516         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
5517         (find_what_var_points_to): Adjust.
5518         (pt_solution_set): Change.
5519         (pt_solution_ior_into): New function.
5520         (pt_solution_empty_p): Export.
5521         (pt_solution_includes_global): Adjust.
5522         (pt_solution_includes_1): Likewise.
5523         (pt_solutions_intersect_1): Likewise.
5524         (dump_sa_points_to_info): Check some invariants.
5525         (solve_constraints): Move constraint dumping ...
5526         (compute_points_to_sets): ... here.
5527         (ipa_pta_execute): ... and here.
5528         (compute_may_aliases): Do not re-compute points-to info
5529         locally if IPA info is available.
5530         (ipa_escaped_pt): New global var.
5531         (ipa_pta_execute): Properly implement IPA PTA.
5532         * tree-into-ssa.c (dump_decl_set): Support dumping
5533         decls not in referenced-vars.
5534         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
5535         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
5536         (dump_points_to_solution): Likewise.
5537         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
5538         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
5539         (remap_gimple_stmt): Reset call clobber/use information if necessary.
5540         (copy_decl_to_var): Copy DECL_PT_UID.
5541         (copy_result_decl_to_var): Likewise.
5542         * tree.c (make_node_stat): Initialize DECL_PT_UID.
5543         (copy_node_stat): Copy it.
5544         * tree.h (DECL_PT_UID): New macro.
5545         (SET_DECL_PT_UID): Likewise.
5546         (DECL_PT_UID_SET_P): Likewise.
5547         (struct tree_decl_minimal): Add pt_uid member.
5548         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
5549         (pt_solution_empty_p): Declare.
5550         (pt_solution_set): Adjust.
5551         (ipa_escaped_pt): Declare.
5552         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
5553         * gimple-pretty-print.c (pp_points_to_solution): New function.
5554         (dump_gimple_call): Dump call clobber/use information.
5555         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
5556         * tree-pass.h (TDF_ALIAS): New dump option.
5557         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
5558         * doc/invoke.texi (-fipa-pta): Update documentation.
5559
5560 2010-04-15  Richard Guenther  <rguenther@suse.de>
5561
5562         * Makefile.in (OBJS-common): Add gimple-fold.o.
5563         (gimple-fold.o): New rule.
5564         * tree.h (maybe_fold_offset_to_reference,
5565         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
5566         prototypes ...
5567         * gimple.h: ... here.
5568         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
5569         may_propagate_address_into_dereference): Move prototypes ...
5570         * gimple.h: ... here.
5571         * tree-ssa-ccp.c (get_symbol_constant_value,
5572         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
5573         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
5574         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
5575         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
5576         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
5577         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
5578         gimplify_and_update_call_from_tree): Move ...
5579         * gimple-fold.c: ... here.  New file.
5580         (ccp_fold_builtin): Rename to ...
5581         (gimple_fold_builtin): ... this.
5582         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
5583
5584 2010-04-15  Richard Guenther  <rguenther@suse.de>
5585
5586         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
5587         fit_double_type, force_fit_type_double, add_double_with_sign,
5588         neg_double, mul_double_with_sign, lshift_double, rshift_double,
5589         lrotate_double, rrotate_double, div_and_round_double): Move ...
5590         * double-int.c: ... here.
5591         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
5592         add_double, neg_double, mul_double_with_sign, mul_double,
5593         lshift_double, rshift_double, lrotate_double, rrotate_double,
5594         div_and_round_double): Move prototypes ...
5595         * double-int.h: ... here.
5596
5597 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
5598
5599         PR target/43742
5600         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
5601         matching constraints to ensure inputs match the output.
5602
5603 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5604
5605         PR target/43742
5606         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
5607         in an input-only operand.
5608
5609 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
5610
5611         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
5612         (double_int_not, double_int_lshift, double_int_rshift): Declare.
5613         (double_int_negative_p): Convert to static inline function.
5614         * double-int.c (double_int_lshift, double_int_lshift): New functions.
5615         (double_int_negative_p): Remove.
5616         * tree.h (lshift_double, rshift_double):
5617         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
5618         * fold-const.c (fold_convert_const_int_from_real,
5619         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
5620         (lshift_double): Change type of arith argument to bool.
5621         (rshift_double): Change type of arith argument to bool. Correct
5622         comment.
5623         * expmed.c (mask_rtx, lshift_value): (Ditto.).
5624
5625 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
5626
5627         PR target/21803
5628         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
5629         at the start and end of the then/else blocks, and omit them from the
5630         conversion.
5631         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
5632         argument; all callers changed.  Pass zero to old_insns_match_p instead.
5633         (flow_find_head_matching_sequence): New function.
5634         (old_insns_match_p): Check REG_EH_REGION notes for calls.
5635         * basic-block.h (flow_find_cross_jump,
5636         flow_find_head_matching_sequence): Declare functions.
5637
5638 2010-04-14  Jason Merrill  <jason@redhat.com>
5639
5640         PR c++/36625
5641         * c-common.c (attribute_takes_identifier_p): New fn.
5642         * c-common.h: Declare it.
5643
5644 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5645
5646         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
5647         splitter condition.
5648         (*udivmod<mode>4): Ditto.
5649
5650 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5651
5652         * config/i386/i386.md (maxmin_int): Rename code attribute from
5653         maxminiprefix and update all users.
5654         (maxmin_float): Ditto from maxminfprefix.
5655         (logic): Ditto from logicprefix.
5656         (absneg_mnemonic): Ditto from absnegprefix.
5657         * config/i386/mmx.md: Update all users of maxminiprefix,
5658         maxminfprefix and logicprefix for rename.
5659         * config/i386/sse.md: Ditto.
5660         * config/i386/sync.md (sync_<code><mode>): Update for
5661         logicprefix rename.
5662
5663 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5664
5665         PR 42966
5666         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
5667         warnings converted to errors.
5668
5669 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5670
5671         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
5672         used insn_type variable.
5673         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
5674         to avoid set-but-not-used warning.
5675
5676 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5677
5678         * df-core.c (df_ref_debug): Change format string placeholder
5679         from 0x%x to %#x.
5680         * dwarf2asm.c (dw2_asm_output_data_raw,
5681         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
5682         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
5683         * dwarf2out.c (output_cfi, output_cfi_directive,
5684         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
5685         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
5686         Ditto.
5687         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
5688         * print-rtl.c (print_rtx): Ditto.
5689
5690 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
5691
5692         PR middle-end/42694
5693         * builtins.c (expand_builtin_pow_root): New function to expand pow
5694         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
5695         series of sqrt and cbrt calls under -ffast-math.
5696         (expand_builtin_pow): Call it.
5697
5698 2010-04-14  Michael Matz  <matz@suse.de>
5699
5700         PR tree-optimization/42963
5701         * tree-cfg.c (touched_switch_bbs): New static variable.
5702         (group_case_labels_stmt): New function broken out from ...
5703         (group_case_labels): ... here, use the above.
5704         (start_recording_case_labels): Allocate touched_switch_bbs.
5705         (end_recording_case_labels): Deallocate it, call
5706         group_case_labels_stmt.
5707         (gimple_redirect_edge_and_branch): Remember index of affected BB.
5708
5709 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5710
5711         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
5712         from insn template.
5713
5714 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5715
5716         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
5717
5718 2010-04-13  Jan Hubicka  <jh@suse.cz>
5719
5720         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
5721         of optimized out static functions.
5722         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
5723         cost computation.  Also sanity check for overflows.
5724         (update_caller_keys): Update cgraph_edge_badness call; properly
5725         update fibheap and sanity check that it is up to date.
5726         (add_new_edges_to_heap): Update cgraph_edge_badness.
5727         (cgraph_decide_inlining_of_small_function): Likewise;
5728         add sanity checking that badness in heap is up to date;
5729         improve dumping of reason; Update badness of calls to the
5730         offline copy of function currently inlined; dump badness
5731         of functions not inlined because of unit growth limits.
5732
5733 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
5734
5735         PR middle-end/32628
5736         * c-common.c (pointer_int_sum): Disregard overflow that occured only
5737         because of sign-extension change when converting to sizetype here...
5738         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
5739
5740         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
5741         the folding to constants.  Remove redundant final conversion.
5742         (fold_binary) <associate>: Do not associate if the re-association of
5743         constants alone overflows.
5744         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
5745         to the end of the list.
5746         (multiple_of_p) <COND_EXPR>: New case.
5747
5748 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5749
5750         * opt-functions.awk (opt_sanitized_name): New.
5751         (opt_enum): New.
5752         * optc-gen.awk: Use it
5753         * opth-gen.awk: Use it.
5754
5755 2010-04-13  Martin Jambor  <mjambor@suse.cz>
5756
5757         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
5758         (sra_modify_assign): Delete stmts loading dead data even if racc has no
5759         children.  Call replace_uses_with_default_def_ssa_name to handle
5760         SSA_NAES on lhs.
5761
5762 2010-04-13  Michael Matz  <matz@suse.de>
5763
5764         PR middle-end/43730
5765         * builtins.c (expand_builtin_interclass_mathfn): Also create
5766         a register if the predicate doesn't match.
5767
5768 2010-04-13  Diego Novillo  <dnovillo@google.com>
5769
5770         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
5771         * c-pch.c: Include timevar.h.
5772         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
5773         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
5774         * ggc-common.c: Include timevar.h.
5775         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
5776         * timevar.def (TV_PCH_SAVE): Define.
5777         (TV_PCH_CPP_SAVE): Define.
5778         (TV_PCH_PTR_REALLOC): Define.
5779         (TV_PCH_PTR_SORT): Define.
5780         (TV_PCH_RESTORE): Define.
5781         (TV_PCH_CPP_RESTORE): Define.
5782
5783 2010-04-13  Michael Matz  <matz@suse.de>
5784
5785         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
5786         into MINUS_EXPRs.
5787         (can_reassociate_p): New function.
5788         (break_up_subtract_bb, reassociate_bb): Use it.
5789
5790 2010-04-13  Richard Guenther  <rguenther@suse.de>
5791
5792         PR bootstrap/43737
5793         * builtins.c (c_readstr): Fix assert.
5794
5795 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
5796
5797         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
5798         when generating cltd insn.
5799
5800         (*ashl<mode>3_1): Remove special handling for register operand 2.
5801         (*ashlsi3_1_zext): Ditto.
5802         (*ashlhi3_1): Ditto.
5803         (*ashlhi3_1_lea): Ditto.
5804         (*ashlqi3_1): Ditto.
5805         (*ashlqi3_1_lea): Ditto.
5806         (*<shiftrt_insn><mode>3_1): Ditto.
5807         (*<shiftrt_insn>si3_1_zext): Ditto.
5808         (*<shiftrt_insn>qi3_1_slp): Ditto.
5809         (*<rotate_insn><mode>3_1): Ditto.
5810         (*<rotate_insn>si3_1_zext): Ditto.
5811         (*<rotate_insn>qi3_1_slp): Ditto.
5812
5813 2010-04-13  Richard Guenther  <rguenther@suse.de>
5814
5815         * tree-ssa-structalias.c (callused_id): Remove.
5816         (call_stmt_vars): New.
5817         (get_call_vi): Likewise.
5818         (lookup_call_use_vi): Likewise.
5819         (lookup_call_clobber_vi): Likewise.
5820         (get_call_use_vi): Likewise.
5821         (get_call_clobber_vi): Likewise.
5822         (make_transitive_closure_constraints): Likewise.
5823         (handle_const_call): Adjust to do per-call call-used handling.
5824         (handle_pure_call): Likewise.
5825         (find_what_var_points_to): Remove general callused handling.
5826         (init_base_vars): Likewise.
5827         (init_alias_vars): Initialize call_stmt_vars.
5828         (compute_points_to_sets): Process call-used and call-clobbered
5829         vars for call statements.
5830         (delete_points_to_sets): Free call_stmt_vars.
5831
5832 2010-04-13  Richard Guenther  <rguenther@suse.de>
5833
5834         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
5835         Only add RW dependence for dependence distance zero.
5836         Adjust maximal vectorization factor according to dependences.
5837         Move alignment handling ...
5838         (vect_find_same_alignment_drs): ... here.  New function.
5839         (vect_analyze_data_ref_dependences): Adjust.
5840         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
5841         (vect_analyze_data_refs): Adjust minimal vectorization factor
5842         according to data references.
5843         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
5844         dependences before determining the vectorization factor.
5845         Analyze alignment after determining the vectorization factor.
5846         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
5847         dependences before alignment.
5848         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
5849         Adjust prototype.
5850         (vect_analyze_data_refs): Likewise.
5851         (MAX_VECTORIZATION_FACTOR): New define.
5852
5853 2010-04-13  Duncan Sands  <baldrick@free.fr>
5854
5855         * except.h (lang_eh_type_covers): Remove.
5856         * except.c (lang_eh_type_covers): Likewise.
5857
5858 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5859             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5860
5861         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
5862         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
5863         UNITS_PER_LONG where it is ABI relevant.
5864         (s390_return_addr_rtx): Likewise.
5865         (s390_back_chain_rtx): Likewise.
5866         (s390_frame_area): Likewise.
5867         (s390_frame_info): Likewise.
5868         (s390_initial_elimination_offset): Likewise.
5869         (save_gprs): Likewise.
5870         (s390_emit_prologue): Likewise.
5871         (s390_emit_epilogue): Likewise.
5872         (s390_function_arg_advance): Likewise.
5873         (s390_function_arg): Likewise.
5874         (s390_va_start): Likewise.
5875         (s390_gimplify_va_arg): Likewise.
5876         (s390_function_profiler): Likewise.
5877         (s390_optimize_prologue): Likewise.
5878         (s390_rtx_costs): Likewise.
5879         (s390_secondary_reload): Likewise.
5880         (s390_promote_function_mode): Likewise.
5881         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
5882         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
5883         registers available.
5884         (s390_unwind_word_mode): New function.
5885         (s390_function_value): Split 64 bit values into register pair if
5886         used as return value.
5887         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
5888         function call parameters.  Handle parallels.
5889         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
5890         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
5891         (DWARF_CIE_DATA_ALIGNMENT): New macro.
5892         (s390_expand_setmem): Remove unused variable src_addr.
5893         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
5894         deal with 64 bit registers.
5895         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
5896         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
5897         (UNITS_PER_LONG): New macro.
5898         * libjava/include/s390-signal.h: Define extended ucontext
5899         structure containing the upper halfs of the 64 bit registers.
5900
5901 2010-04-13  Simon Baldwin  <simonb@google.com>
5902
5903         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
5904
5905 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
5906
5907         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
5908         rvalue on the RHS if the LHS is of a non-renamable type.
5909         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
5910
5911 2010-04-13  Matthias Klose  <doko@ubuntu.com>
5912
5913         * gcc.c (cc1_options): Handle -iplugindir before processing
5914         the cc1 spec. Only add -iplugindir once.
5915         (cpp_unique_options): Add -iplugindir option if -fplugin* options
5916         found.
5917         * common.opt (iplugindir): Remove `Separate' property, initialize.
5918         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
5919         option.
5920         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
5921         (distclean): Remove plugin dir.
5922         * doc/invoke.texi: Document -iplugindir.
5923
5924 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
5925
5926         * doc/plugins.texi (Loading Plugins): Document short
5927         -fplugin=foo option.
5928         (Plugin API): Mention default_plugin_dir_name function.
5929
5930         * gcc.c (find_file_spec_function): Add new declaration.
5931         (static_spec_func): Use it for "find-file".
5932         (find_file_spec_function): Add new function.
5933         (cc1_options): Add -iplugindir option if -fplugin* options found.
5934
5935         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
5936
5937         * plugin.c (add_new_plugin): Updated comment, and handle short
5938         plugin name.
5939         (default_plugin_dir_name): Added new function.
5940
5941         * common.opt (iplugindir): New option to set the plugin directory.
5942
5943 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
5944
5945         * config/i386/i386.md (any_rotate): New code iterator.
5946         (rotate_insn): New code attribute.
5947         (rotate): Ditto.
5948         (SWIM124): New mode iterator.
5949         (<rotate_insn>ti3): New expander.
5950         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
5951         any_rotate code iterator.
5952         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
5953         using any_rotate code iterator and SWIM124 mode iterator.
5954         (ix86_rotlti3): New insn_and_split pattern.
5955         (ix86_rotrti3): Ditto.
5956         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
5957         ix86_rotl{di,ti}3 patterns.
5958         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
5959         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
5960         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
5961         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
5962         code iterator and SWI mode iterator.
5963         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
5964         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
5965         code iterator.
5966         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
5967         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
5968         (bswap rotatert splitter): Add splitter.
5969         (bswap splitter): Macroize splitter using any_rotate code iterator.
5970         Add insn predicate to split only for TARGET_USE_XCHGB or when
5971         optimizing function for size.
5972
5973 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5974
5975         * config/pa/pa.c (emit_move_sequence): Remove use of
5976         deleted variable flag_argument_noalias.
5977
5978 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5979
5980         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
5981         configurations.
5982         Add to unsupported targets list.
5983         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
5984         sparc*-sun-solaris2.[567]* from target lists.
5985         * configure: Regenerate.
5986         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
5987         removal.
5988         Remove Solaris 7 patch references.
5989         (Specific, sparc-sun-solaris2.7): Removed.
5990         (sparc-sun-solaris2*): Update Solaris 7 example.
5991         (sparc64-*-solaris2*): Likewise.
5992
5993 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5994
5995         * config.build (alpha*-dec-osf4*): Remove.
5996         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
5997         of obsolete configurations.
5998         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
5999         support.
6000         * config/alpha/t-osf4: Renamed to ...
6001         * config/alpha/t-osf5: ... this.
6002         * config/alpha/osf.h: Renamed to ...
6003         * config/alpha/osf5.h: ... this.
6004         Merged old osf5.h contents.
6005         Update comments.
6006         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
6007         (EXTRA_SPECS): Removed.
6008         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
6009         reflect removal of Tru64 UNIX V4.0/V5.0 support.
6010         Document that.
6011
6012 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6013
6014         * doc/contrib.texi (Contributors, Rainer Orth): Update.
6015
6016 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
6017
6018         PR/43702
6019         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
6020         __thiscall convention.
6021
6022 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
6023
6024         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
6025         orig_base.
6026         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
6027
6028 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
6029
6030         * function.c (assign_parms_initialize_all): Add unused attribute
6031         to fntype.
6032
6033 2010-04-12  Richard Guenther  <rguenther@suse.de>
6034
6035         * gsstruct.def (GSS_CALL): New.
6036         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
6037         * gimple.h: Include tree-ssa-alias.h.
6038         (struct gimple_statement_call): New.
6039         (union gimple_statement_struct_d): Add gimple_call member.
6040         (gimple_call_reset_alias_info): Declare.
6041         (gimple_call_use_set): New function.
6042         (gimple_call_clobber_set): Likewise.
6043         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
6044         * gimple.c (gimple_call_reset_alias_info): New function.
6045         (gimple_build_call_1): Call it.
6046         * lto-streamer-in.c (input_gimple_stmt): Likewise.
6047         * tree-inline.c (remap_gimple_stmt): Likewise.
6048         (expand_call_inline): Remove callused handling.
6049         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
6050         * tree-dfa.c (dump_variable): Likewise.
6051         * tree-parloops.c (parallelize_loops): Likewise.
6052         * tree-ssa.c (init_tree_ssa): Likewise.
6053         (delete_tree_ssa): Likewise.
6054         * tree-flow-inline.h (is_call_used): Remove.
6055         * tree-flow.h (struct gimple_df): Remove callused member.
6056         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
6057         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
6058         (ref_maybe_used_by_call_p_1): Simplify.
6059         (call_may_clobber_ref_p_1): Likewise.
6060         * tree-ssa-structalias.c (compute_points_to_sets): Set
6061         the call stmt used and clobbered sets.
6062         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
6063         (find_tail_calls): Verify the tail call.
6064
6065 2010-04-12  Richard Guenther  <rguenther@suse.de>
6066
6067         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
6068         single-iteration always-inline inlining.
6069         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
6070         (cgraph_decide_inlining): Do not handle always-inline specially.
6071         (try_inline): Remove always-inline cycle detection special case.
6072         Do not recurse on always-inlines.
6073         (cgraph_early_inlining): Do not iterate if not optimizing.
6074         (cgraph_gate_early_inlining): remove.
6075         (pass_early_inline): Run unconditionally.
6076         (gate_cgraph_decide_inlining): New function.
6077         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
6078         not inlining or optimizing.
6079         (cgraph_decide_inlining_of_small_functions): Also consider
6080         always-inline functions.
6081         (cgraph_default_inline_p): Return true for nodes which should
6082         disregard inline limits.
6083         (estimate_function_body_sizes): Assume zero size and time for
6084         nodes which are marked as disregarding inline limits.
6085         (cgraph_decide_recursive_inlining): Do not perform recursive
6086         inlining on always-inline nodes.
6087
6088 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
6089
6090         PR bootstrap/43699
6091         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
6092         for exprs satisfying handled_component_p.
6093
6094 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
6095
6096         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
6097         non-constant aggregate elements.
6098
6099         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
6100         is a real initialization.
6101
6102 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
6103
6104         PR c/36774
6105         * c-decl.c (start_function): Move forward check for nested function.
6106
6107 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
6108
6109         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
6110         * config/sh/sh.c: Include reload.h.
6111         (sh_legitimize_reload_address): New.
6112         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
6113         sh_legitimize_reload_address.
6114
6115 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
6116
6117         * config/sh/sh.md (*movqi_pop): New insn pattern.
6118         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
6119
6120 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
6121
6122         * config/i386/i386.md (any_shiftrt): New code iterator.
6123         (shiftrt_insn): New code attribute.
6124         (shiftrt): Ditto.
6125         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
6126         using any_shiftrt code iterator.
6127         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
6128         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
6129         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
6130         pattern from corresponding peephole2 patterns.
6131         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
6132         using any_shiftrt code iterator.
6133         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
6134         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
6135         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
6136         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
6137         *{ashr,lshr}<mode>3_cmp_zext.
6138         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
6139
6140 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
6141
6142         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
6143         scratch register.
6144         (*lshr<mode>3_cconly): Ditto.
6145
6146 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
6147
6148         * config/i386/i386.md (lshr<mode>3): Macroize expander from
6149         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
6150         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6151         pattern from *lshr{di,ti}3_1 and corresponding splitters using
6152         DWI mode iterator.
6153         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
6154         from corresponding peephole2 patterns.
6155         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
6156         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
6157         and *lshrdi3_1_rex64 using SWI mode iterator.
6158         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
6159         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
6160         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
6161         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
6162         and *lshrdi3_cmp_rex64 using SWI mode iterator.
6163         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
6164         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
6165         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
6166         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
6167         SWI mode iterator.
6168
6169 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
6170
6171         * config/i386/i386.md (ashr<mode>3): Macroize expander from
6172         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
6173         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6174         pattern from *ashr{di,ti}3_1 and corresponding splitters using
6175         DWI mode iterator.
6176         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
6177         from corresponding peephole2 patterns.
6178         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
6179         (ashrsi3_cvt): Rename from ashrsi3_31.
6180         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
6181         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
6182         and x86_64_shift_adj_3 using SWI48 mode iterator.
6183         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
6184         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
6185         and *ashrdi3_1_rex64 using SWI mode iterator.
6186         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
6187         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
6188         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
6189         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
6190         and *ashrdi3_cmp_rex64 using SWI mode iterator.
6191         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
6192         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
6193         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
6194         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
6195         SWI mode iterator.
6196         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
6197         * config/i386/i386.c (ix86_split_ashr): Update for renamed
6198         x86_shift<mode>_adj_3 expanders.
6199
6200 2010-04-10  Wei Guozhi  <carrot@google.com>
6201
6202         PR target/42601
6203         * config/arm/arm.c (arm_pic_static_addr): New function.
6204         (legitimize_pic_address): Call arm_pic_static_addr when it detects
6205         a static symbol.
6206         (arm_output_addr_const_extra): Output expression for new pattern.
6207         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
6208
6209 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
6210
6211         * ira-costs.c (record_reg_classes): Ignore alternatives that are
6212         not enabled.
6213
6214         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
6215         * web.c: Include "insn-config.h" and "recog.h".
6216         (union_match_dups): New function.
6217         (web_main): Call it.
6218         (union_defs): Don't try to recognize match_dups.
6219
6220         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
6221         if doing so would replace the entire pattern.
6222
6223 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
6224
6225         PR target/43707
6226         PR target/43709
6227         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
6228         and splitter pattern.  Change splitter operand 1 predicate to
6229         nonmemory_operand.
6230
6231 2010-04-09  Martin Jambor  <mjambor@suse.cz>
6232
6233         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
6234         lattices are addresses of CONST_DECLs with the same initial value.
6235         (ipcp_print_all_lattices): Print values of CONST_DECLs.
6236         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
6237
6238 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
6239             Bernd Schmidt  <bernds@codesourcery.com>
6240
6241         * loop-invariant.c (replace_uses): New static function.
6242         (move_invariant_reg): Use it to ensure we can replace the uses.
6243
6244 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
6245
6246         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
6247         function template.
6248         (picochip_override_options): Enable section anchors only above -O1.
6249         (picochip_reorg): Fixed a couple of build warnings.
6250
6251 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6252
6253         * configure.ac (plugin -rdynamic test): Log result.
6254         * configure: Regenerate.
6255         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
6256         (RDYNAMIC_SPEC): Define.
6257         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
6258
6259 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6260
6261         * configure.ac: Determine Sun ld version numbers.
6262         (comdat_group): Restrict GNU ld version checks to gld.
6263         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
6264         (enable_comdat): Support --enable-comdat.
6265         * configure: Regenerate.
6266         * doc/install.texi (Configuration): Document --enable-comdat.
6267
6268 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6269
6270         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
6271         * config/sol2-gld.h: ... here.
6272         * config.gcc (sparc*-*-solaris2*): Reflect this.
6273         (i[34567]86-*-solaris2*): Use it.
6274
6275 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
6276
6277         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
6278         setup_clocks_p.
6279         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
6280
6281 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6282
6283         PR 42965
6284         * diagnostic.c (diagnostic_initialize): Initialize
6285         some_warnings_are_errors.
6286         (diagnostic_finish): New.
6287         (diagnostic_action_after_output): Call it before exiting.
6288         (diagnostic_report_diagnostic): Do not print message here. Set
6289         some_warnings_are_errors.
6290         * diagnostic.h (diagnostic_context): Delete
6291         issue_warnings_are_errors_message. Add some_warnings_are_errors.
6292         (diagnostic_finish): Declare.
6293         * toplev.c (toplev_main): Call it before exit.
6294
6295 2010-04-09  Jason Merrill  <jason@redhat.com>
6296
6297         PR c++/42623
6298         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
6299         for incomplete type.
6300
6301         PR c++/41788
6302         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
6303         based on a warning flag.
6304
6305 2010-04-09  Richard Guenther  <rguenther@suse.de>
6306
6307         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
6308
6309 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
6310
6311         PR bootstrap/43684
6312         * varasm.c (default_assemble_visibility): Wrap vars that are
6313         set, but unused, by targets without GAS.
6314         * config/rs6000/rs6000.c (paired_emit_vector_compare):
6315         Remove set, but unused, vars.
6316         (rs6000_legitimize_tls_address): Likewise.
6317         (altivec_expand_dst_builtin): Likewise.
6318         * config/darwin.c (machopic_classify_symbol): Likewise.
6319         (machopic_indirection_name): Likewise.
6320
6321 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
6322
6323         * config/i386/i386.md (DWI): New mode iterator.
6324         (S): New mode attribute.
6325         (shift_operand): Ditto.
6326         (shift_immediate_operand): Ditto.
6327         (ashl_input_operand): Ditto.
6328         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
6329         using SDWIM mode iterator.
6330         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
6331         pattern from *ashl{di,ti}3_1 and corresponding splitters using
6332         DWI mode iterator.
6333         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
6334         from corresponding peephole2 patterns.
6335         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
6336         and x86_64_shift_adj_1 using SWI48 mode iterator.
6337         (x86_shift<mode>_adj_2): Ditto.
6338         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
6339         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
6340         using SWI48 mode iterator.
6341         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
6342         *ashldi3_cmp_rex64 using SWI mode iterator.
6343         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
6344         *ashldi3_cconly_rex64 using SWI mode iterator.
6345         * config/i386/i386.c (ix86_split_ashl): Update for renamed
6346         x86_shift<mode>_adj_{1,2}.
6347         (ix86_split_ashr): Ditto.
6348         (ix86_split_lshr): Ditto.
6349
6350 2010-04-09  Richard Guenther  <rguenther@suse.de>
6351
6352         * target.h (builtin_conversion): Pass in input and output types.
6353         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
6354         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
6355         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
6356         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
6357
6358         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
6359         Handle AVX modes.
6360         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
6361
6362 2010-04-09  Richard Guenther  <rguenther@suse.de>
6363
6364         PR target/43152
6365         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
6366
6367 2010-04-09  Richard Guenther  <rguenther@suse.de>
6368
6369         * tree-vectorizer.h (struct _stmt_vec_info): Document
6370         that vectype is the type of the LHS.
6371         (supportable_widening_operation, supportable_narrowing_operation):
6372         Get both input and output vector types as arguments.
6373         (vect_is_simple_use_1): Declare.
6374         (get_same_sized_vectype): Likewise.
6375         * tree-vect-loop.c (vect_determine_vectorization_factor):
6376         Set STMT_VINFO_VECTYPE to the vector type of the def.
6377         (vectorizable_reduction): Adjust.
6378         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
6379         Adjust.  Specify the output vector type.
6380         (vect_pattern_recog_1): Adjust.
6381         * tree-vect-stmts.c (get_same_sized_vectype): New function.
6382         (vectorizable_call): Adjust.
6383         (vectorizable_conversion): Likewise.
6384         (vectorizable_operation): Likewise.
6385         (vectorizable_type_demotion): Likewise.
6386         (vectorizable_type_promotion): Likewise.
6387         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
6388         the def.
6389         (vect_is_simple_use_1): New function.
6390         (supportable_widening_operation): Get both input and output
6391         vector types.
6392         (supportable_narrowing_operation): Likewise.
6393         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
6394
6395 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
6396
6397         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
6398         __thiscall and _thiscall as predefined macros.
6399         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
6400         thiscall attribute handling.
6401         (ix86_comp_type_attributes): Likewise.
6402         (ix86_function_regparm): Likewise.
6403         (ix86_return_pops_args): Likewise.
6404         (init_cumulative_args): Likewise.
6405         (find_drap_reg): Likewise.
6406         (ix86_static_chain): Likewise.
6407         (x86_this_parameter): Likewise.
6408         (x86_output_mi_thunk): Likewise.
6409         (ix86_attribute_table): Add description for thiscall attribute.
6410         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
6411         * doc/extend.texi: Add documentation for thiscall.
6412
6413 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6414
6415         PR c++/28584
6416         * c.opt (Wint-to-pointer-cast): Available in C++.
6417         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
6418
6419 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
6420
6421         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
6422         * calls.c (expand_call): Pass the function type to aggregate_value_p.
6423         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
6424         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
6425         function type instead.  Reorder and simplify checks.
6426
6427         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
6428
6429 2010-04-08  Jing Yu  <jingyu@google.com>
6430             Zdenek Dvorak  <ook@ucw.cz>
6431
6432         PR tree-optimization/42720
6433         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
6434         loop unswitch conditions here from ...
6435         (tree_unswitch_single_loop): ... here.
6436
6437 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
6438
6439         * tree-if-conv.c: Fix comments and simplify logic.
6440
6441 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
6442
6443         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
6444         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
6445         (main_tree_if_conversion): Update call to tree_if_conversion.
6446
6447 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6448
6449         PR 42485
6450         * doc/invoke.texi (-b,-V): Delete.
6451         * doc/tm.texi: Do not mention -b.
6452         * gcc.c (display_help): Delete -b and -V.
6453         (process_command): Delete -b and -V.
6454         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
6455
6456 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
6457             Wolfgang Gellerich  <gellerich@de.ibm.com>
6458
6459         Implement target hook for loop unrolling
6460         * target.h (loop_unroll_adjust): Add a new target hook function.
6461         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
6462         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
6463         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
6464         (s390_loop_unroll_adjust): Implement the new target hook for s390.
6465         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
6466         target hook.
6467         (decide_unroll_stupid): Likewise.
6468
6469 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6470
6471         PR target/43643
6472         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
6473
6474 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6475
6476         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
6477         (Specific, *-*-solaris2*): Likewise.
6478         Don't prefer Sun as over GNU as.
6479
6480 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
6481
6482         * config/s390/s390.c (override_options): Adjust the z10 defaults
6483         for max-unroll-times, max-completely-peeled-insns
6484         and max-completely-peel-times.
6485
6486 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6487
6488         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
6489         instructions for z10.
6490         (s390_expand_setmem): Likewise.
6491         (s390_expand_cmpmem): Likewise.
6492
6493 2010-04-08  Richard Guenther  <rguenther@suse.de>
6494
6495         PR tree-optimization/43679
6496         * tree-ssa-pre.c (eliminate): Only propagate copies.
6497
6498 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
6499
6500         PR bootstrap/43681
6501         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
6502         set but not used variable warning.
6503
6504 2010-04-08  Wei Guozhi  <carrot@google.com>
6505
6506         PR target/41653
6507         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
6508         (arm_size_rtx_costs): Call the new function when optimized for size.
6509
6510 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
6511
6512         PR debug/43670
6513         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
6514         op0 is not a MEM, just return NULL instead of assertion
6515         failure.
6516         (discover_nonconstant_array_refs): Don't walk debug stmts.
6517
6518 2010-04-08  Doug Kwan  <dougkwan@google.com>
6519
6520         * configure.ac: Recognize gold and do not use its version number
6521         to test ld features.
6522         * configure: Regenerate.
6523
6524 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
6525
6526         PR middle-end/40815
6527         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
6528         (negate_value): Move code to push elements to broken_up_substracts ...
6529         (eliminate_plus_minus_pair): ... here.  Push operands that have no
6530         negative pair to plus_negates.
6531         (repropagate_negates, init_reassoc, fini_reassoc): Update.
6532
6533 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6534
6535         * doc/install.texi (Configuration): Move description of
6536         --enable-lto, --with-libelf*, --enable-gold from Java section to
6537         general section.
6538
6539         * doc/generic.texi (Working with declarations)
6540         (Function Properties, C and C++ Trees): Fix typos.
6541         * doc/sourcebuild.texi (Top Level): Likewise.
6542
6543 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
6544
6545         PR c/18624
6546         * tree.h (DECL_READ_P): Define.
6547         (struct tree_decl_common): Add decl_read_flag.
6548         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
6549         a set but not used warning.
6550         (merge_decls): Merge DECL_READ_P flag.
6551         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
6552         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
6553         * c-common.c (handle_used_attribute, handle_unused_attribute):
6554         Likewise.
6555         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
6556         New prototypes.
6557         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
6558         New functions.
6559         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
6560         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
6561         c_parser_binary_expression, c_parser_cast_expression,
6562         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
6563         Call default_function_array_read_conversion instead of
6564         default_function_array_conversion where needed.
6565         (c_parser_unary_expression, c_parser_conditional_expression,
6566         c_parser_postfix_expression_after_primary, c_parser_initelt):
6567         Likewise.  Call mark_exp_read where needed.
6568         (c_parser_statement_after_labels, c_parser_asm_operands,
6569         c_parser_typeof_specifier, c_parser_sizeof_expression,
6570         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
6571         where needed.
6572         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
6573         New.
6574         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
6575         (warn_unused_but_set_parameter): Default to warn_unused
6576         && extra_warnings.
6577         * doc/invoke.texi: Document -Wunused-but-set-variable and
6578         -Wunused-but-set-parameter.
6579
6580         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
6581         used count variable.
6582         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
6583         when operandN variables aren't used in the body of the expander
6584         or splitter.
6585         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
6586         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
6587         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
6588         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
6589         FOR_EACH_IMM_USE_ON_STMT): Likewise.
6590         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
6591         * tree.c (PROCESS_ARG): Likewise.
6592
6593 2010-04-07  Simon Baldwin  <simonb@google.com>
6594
6595         * diagnostic.h (diagnostic_override_option_index): New macro to
6596         set a diagnostic's option_index.
6597         * c-tree.h (c_cpp_error): Add warning reason argument.
6598         * opts.c (_warning_as_error_callback): New.
6599         (register_warning_as_error_callback): Store callback for
6600         warnings enabled via enable_warning_as_error.
6601         (enable_warning_as_error): Call callback, minor code tidy.
6602         * opts.h (register_warning_as_error_callback): Declare.
6603         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
6604         response to -Werror=.
6605         (c_common_init_options): Register warning_as_error_callback in opts.c.
6606         * common.opt: Add -Wno-cpp option.
6607         * c-common.c (struct reason_option_codes_t): Map cpp warning
6608         reason codes to gcc option indexes.
6609         * (c_option_controlling_cpp_error): New function, lookup the gcc
6610         option index for a cpp warning reason code.
6611         * (c_cpp_error): Add warning reason argument, call
6612         c_option_controlling_cpp_error for diagnostic_override_option_index.
6613         * doc/invoke.texi: Document -Wno-cpp.
6614
6615 2010-04-07  Richard Guenther  <rguenther@suse.de>
6616
6617         * ipa-reference.c (mark_load): Use get_base_address.
6618         (mark_store): Likewise.
6619
6620         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
6621         inserting GIMPLE_NOPs into the IL.
6622         * tree-ssa-structalias.c (get_constraint_for_component_ref):
6623         Explicitly strip handled components and indirect references.
6624
6625         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
6626         folding address expressions.
6627         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
6628         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
6629         operand_equal_p to compare decls.
6630         (ptr_deref_may_alias_decl_p): Likewise.
6631         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
6632         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
6633         Handle reversed comparison ops.
6634         * tree-sra.c (asm_visit_addr): Use get_base_address.
6635         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
6636         * ipa-reference.c (mark_address): Use get_base_address.
6637
6638 2010-04-07  Richard Guenther  <rguenther@suse.de>
6639
6640         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
6641         Propagate constants everywhere.
6642
6643 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
6644
6645         PR debug/43516
6646         * tree.c (MAX_INT_CACHED_PREC): Define.
6647         (nonstandard_integer_type_cache): New array.
6648         (build_nonstandard_integer_type): Cache results for precision
6649         <= MAX_INT_CACHED_PREC.
6650
6651 2010-04-07  Richard Guenther  <rguenther@suse.de>
6652
6653         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
6654         -fargument-noalias-global, -fargument-noalias-anything): Remove.
6655         * common.opt: Likewise.
6656         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
6657         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
6658         (nonoverlapping_memrefs_p): Likewise.
6659         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6660         * opts.c (common_handle_option): Handle OPT_fargument_alias,
6661         OPT_fargument_noalias, OPT_fargument_noalias_anything and
6662         OPT_fargument_noalias_global for backward compatibility.
6663
6664 2010-04-07  Richard Guenther  <rguenther@suse.de>
6665
6666         PR tree-optimization/43270
6667         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
6668         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
6669         * tree-ssa-pre.c (phi_translate_1): Adjust.
6670         (fully_constant_expression): Split out vn_reference handling to ...
6671         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
6672         Fold reads from constant strings.
6673         (vn_reference_lookup): Handle fully constant references.
6674         (vn_reference_lookup_pieces): Likewise.
6675         * Makefile.in (expmed.o-warn): Add -Wno-error.
6676
6677 2010-04-07  Martin Jambor  <mjambor@suse.cz>
6678
6679         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
6680
6681 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
6682
6683         PR driver/41594
6684         * gcc.c: Add -static-libstdc++ to list of recognized options.
6685
6686 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6687
6688         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
6689
6690 2010-04-07  Richard Guenther  <rguenther@suse.de>
6691
6692         PR middle-end/42617
6693         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
6694         bases build simple mem attributes to retain points-to information.
6695
6696 2010-04-07  Richard Guenther  <rguenther@suse.de>
6697
6698         PR middle-end/42617
6699         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
6700         preserve points-to related information.
6701
6702 2010-04-07  Richard Guenther  <rguenther@suse.de>
6703
6704         PR middle-end/42617
6705         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
6706         discard plain indirect references.
6707         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
6708         * tree.c (tree_nop_conversion): Likewise.
6709
6710 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
6711
6712         PR debug/43628
6713         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
6714
6715 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
6716
6717         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
6718         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
6719
6720 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6721
6722         * tree-if-conv.c: Fix indentation and comments.
6723
6724 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6725
6726         * tree-if-conv.c: Sort static functions in topological order.
6727
6728 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6729
6730         * tree-if-conv.c: Fix indentation and comments.
6731
6732 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6733
6734         PR middle-end/43519
6735         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
6736         lang_hooks.types.type_for_size instead of
6737         build_nonstandard_integer_type.
6738         When converting an unsigned type to signed, double its precision.
6739         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
6740         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
6741         (graphite_create_new_loop_guard): When ub + 1 wraps around,
6742         use lb <= ub.
6743
6744 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6745
6746         PR middle-end/43519
6747         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
6748         POINTER_PLUS_EXPR for pointer types.
6749
6750 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6751
6752         PR middle-end/43519
6753         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
6754         * graphite-clast-to-gimple.c: Include langhooks.h.
6755         (max_signed_precision_type): New.
6756         (max_precision_type): Takes two types as arguments.
6757         (precision_for_value): New.
6758         (precision_for_interval): New.
6759         (gcc_type_for_interval): New.
6760         (gcc_type_for_value): New.
6761         (gcc_type_for_clast_term): New.
6762         (gcc_type_for_clast_red): New.
6763         (gcc_type_for_clast_bin): New.
6764         (gcc_type_for_clast_expr): Split up into several functions.
6765         (gcc_type_for_clast_eq): Rewritten.
6766         (compute_bounds_for_level): New.
6767         (compute_type_for_level_1): New.
6768         (compute_type_for_level): New.
6769         (gcc_type_for_cloog_iv): Removed.
6770         (gcc_type_for_iv_of_clast_loop): Rewritten.
6771         (graphite_create_new_loop): Compute the lower and upper bound types
6772         with gcc_type_for_clast_expr.
6773         (graphite_create_new_loop_guard): Same.
6774         (find_cloog_iv_in_expr): Removed.
6775         (compute_cloog_iv_types_1): Removed.
6776         (compute_cloog_iv_types): Removed.
6777         (gloog): Do not call compute_cloog_iv_types.
6778         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
6779         GBB_CLOOG_IV_TYPES.
6780         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
6781         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
6782         (GBB_CLOOG_IV_TYPES): Removed.
6783
6784 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6785
6786         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
6787         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
6788         (detect_commutative_reduction): Same.
6789
6790 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6791
6792         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
6793         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
6794         argument.
6795         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
6796         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
6797         (rewrite_commutative_reductions_out_of_ssa): Same.
6798         * passes.c (execute_function_todo): Call verify_ssa for every pass
6799         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
6800         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
6801         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
6802         with an extra argument.
6803         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
6804         verify_ssa only when the extra argument is true.
6805         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
6806         with an extra argument.
6807         (tree_transform_and_unroll_loop): Same.
6808
6809 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6810
6811         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
6812         for all the passes of the LNO having LOOP_CLOSED_SSA.
6813         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
6814         * tree-loop-distribution.c (pass_loop_distribution): Same.
6815         * tree-pass.h (TODO_verify_loops): Removed.
6816         * tree-ssa-loop.c (pass_tree_loop_init): Same.
6817         (pass_lim): Same.
6818         (pass_tree_unswitch): Same.
6819         (pass_predcom): Same.
6820         (pass_vectorize): Same.
6821         (pass_linear_transform): Same.
6822         (pass_graphite_transforms): Same.
6823         (pass_iv_canon): Same.
6824         (pass_complete_unroll): Same.
6825         (pass_complete_unrolli): Same.
6826         (pass_parallelize_loops): Same.
6827         (pass_loop_prefetch): Same.
6828         (pass_iv_optimize): Same.
6829
6830 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
6831
6832         PR middle-end/32824
6833         * passes.c (init_optimization_passes): Move pass_lim before
6834         pass_copy_prop and pass_dce_loop.
6835
6836 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
6837
6838         PR target/43667
6839         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
6840         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
6841         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
6842         MULTI_* defines for 4 argument vpermil2p* builtins.
6843
6844 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
6845
6846         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
6847         * config/i386/i386.c (x86_maybe_negate_const_int): New.
6848         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
6849         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
6850         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
6851         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
6852         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
6853         Use x86_maybe_negate_const_int to output insn mnemonic.
6854         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
6855         check from instruction predicate.  Update comments.
6856         * config/i386/sync.md (sync_add<mode>): Use
6857         x86_maybe_negate_const_int to output insn mnemonic.
6858
6859 2010-04-06  Jan Hubicka  <jh@suse.cz>
6860
6861         PR tree-optimization/42906
6862         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
6863         IGNORE_SELF argument.  Set visited_control_parents for fully
6864         processed BBs.
6865         (find_obviously_necessary_stmts): Update call of
6866         mark_control_dependent_edges_necessary.
6867         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
6868
6869 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
6870
6871         * config/i386/i386.md: Remove comment about 'e' and 'E'
6872         operand modifier.
6873
6874 2010-04-06  Richard Guenther  <rguenther@suse.de>
6875
6876         PR tree-optimization/43627
6877         * tree-vrp.c (extract_range_from_unary_expr): Widenings
6878         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
6879         not varying.
6880
6881 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
6882
6883         * BASE-VER: Change to 4.6.0.
6884
6885         PR target/43638
6886         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
6887         handling.
6888
6889 2010-04-06  Richard Guenther  <rguenther@suse.de>
6890
6891         PR middle-end/43661
6892         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
6893
6894 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6895
6896         * doc/invoke.texi (Optimize Options): Document that LTO
6897         won't remove object access purely due to incompatible
6898         declarations.
6899
6900 2010-04-04  Matthias Klose  <doko@ubuntu.com>
6901
6902         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
6903         Initialize variable.
6904
6905 2010-04-03  Richard Guenther  <rguenther@suse.de>
6906
6907         PR middle-end/42509
6908         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
6909         require a non-NULL MEM_OFFSET.
6910
6911 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
6912
6913         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
6914         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
6915         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
6916         config/alpha/predicates.md, config/arm/arm.md,
6917         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
6918         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
6919         config/darwin9.h, config/darwin.c, config/darwin.h,
6920         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
6921         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
6922         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
6923         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
6924         config/mips/mips.md, config/mn10300/mn10300.c,
6925         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
6926         config/rs6000/aix.h, config/rs6000/dfp.md,
6927         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
6928         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
6929         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
6930         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
6931         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
6932         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
6933         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
6934         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
6935         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
6936         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
6937         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
6938         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
6939         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
6940         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
6941         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
6942         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
6943         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
6944         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
6945         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
6946         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
6947         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
6948         opt-functions.awk, opth-gen.awk, params.def, passes.c,
6949         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
6950         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
6951         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
6952         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
6953         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
6954         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
6955         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
6956         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
6957         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
6958         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
6959         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
6960         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
6961         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
6962         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
6963
6964 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6965
6966         PR other/43620
6967         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
6968         * aclocal.m4: Regenerate.
6969
6970 2010-04-02  Richard Guenther  <rguenther@suse.de>
6971
6972         PR tree-optimization/43629
6973         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
6974         if we have seen a constant value.
6975
6976 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
6977
6978         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
6979
6980 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
6981
6982         PR target/43469
6983         * arm.c (legitimize_tls_address): Adjust call to
6984         gen_tls_load_dot_plus_four.
6985         (arm_note_pic_base): New function.
6986         (arm_cannot_copy_insn_p): Use it.
6987         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
6988         constraint.
6989
6990 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6991
6992         PR bootstrap/43531
6993
6994         Revert:
6995         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6996
6997         * Makefile.in ($(out_object_file)): Depend on
6998         gt-$(basename $(notdir $(out_file))).h.
6999
7000 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
7001
7002         * config.gcc (lm32-*-rtems*): Add t-lm32.
7003
7004 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
7005
7006         * config.gcc: Add lm32-*-rtems*.
7007         * config/lm32/rtems.h: New file.
7008
7009 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
7010
7011         PR target/42609
7012         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
7013
7014 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
7015
7016         * dwarf2out.c (output_compilation_unit_header): For
7017         -gdwarf-4 use version 4 instead of version 3.
7018         (output_line_info): For version 4 and above emit additional
7019         maximum ops per insn header field.
7020         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
7021
7022         * dwarf2out.c (is_c_family, is_java): Remove.
7023         (lower_bound_default): New function.
7024         (add_bound_info, gen_descr_array_type_die): Use it.
7025
7026 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
7027
7028         PR debug/43325
7029         * dwarf2out.c (gen_variable_die): Allow debug info for variable
7030         re-declaration when it happens in a function.
7031
7032 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
7033
7034         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
7035         (cgraph_remove_function_insertion_hook): Same.
7036         (cgraph_call_function_insertion_hooks): Same.
7037
7038 2010-04-01  Richard Guenther  <rguenther@suse.de>
7039
7040         PR middle-end/43614
7041         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
7042         and TREE_THIS_VOLATILE.
7043         (copy_ref_info): Likewise.
7044         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
7045         * tree.c (build6_stat): Ignore side-effects of all but arg5
7046         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
7047         TARGET_MEM_REF.
7048
7049 2010-04-01  Richard Guenther  <rguenther@suse.de>
7050
7051         PR tree-optimization/43607
7052         * ipa-type-escape.c (check_call): Do not access non-existing
7053         arguments.
7054
7055 2010-04-01  Richard Guenther  <rguenther@suse.de>
7056
7057         PR middle-end/43602
7058         Revert
7059         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
7060                     Jack Howarth <howarth@bromo.med.uc.edu>
7061
7062         * tree-profile.c (tree_init_ic_make_global_vars): Make static
7063         variables TLS.
7064
7065 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7066
7067         * doc/install.texi (Prerequisites): Document libelf usability on
7068         IRIX 5/6 and Solaris 2.
7069         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
7070         Update GNU as, GNU ld requirements.
7071         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
7072         Document Sun Studio compiler download.
7073         Update and simplify as, ld recommendations.
7074         (Specific, *-*-solaris2.7): Note obsoletion, removal.
7075
7076 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7077
7078         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
7079         with_tune_32 to pentium4.
7080
7081 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
7082
7083         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
7084
7085 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7086
7087         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
7088         obsoletion, removal.
7089         Update IDO URL.
7090         Document GNU as requirement.
7091         Update configure requirements.
7092         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
7093         Recomment IRIX 6.5.18+.
7094         Document IDF/IDL requirement.
7095         Document GNU as requirement.
7096         Document GNU ld bootstrap failure.
7097         Remove freeware.sgi.com reference.
7098
7099 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7100
7101         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
7102         UNIX V4.0, V5.0 obsoletion, removal.
7103         Remove --with-gc=simple reference.
7104         Update VM requirements during bootstrap.
7105         Remove -oldas bootstrap description.
7106         Update binutils reference.
7107         Remove comparison failure note.
7108
7109 2010-03-31  Richard Guenther  <rguenther@suse.de>
7110             Zdenek Dvorak  <ook@ucw.cz>
7111             Sebastian Pop  <sebastian.pop@amd.com>
7112
7113         PR middle-end/43464
7114         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
7115         with multiple arguments.
7116         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
7117
7118 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7119
7120         * graphite-dependences.c (print_pddr): Call print_pdr with an
7121         extra argument.
7122         * graphite-poly.c (debug_pdr): Add an extra argument for the
7123         verbosity level.
7124         (print_pdr): Same.
7125         (print_pbb_domain): Same.
7126         (print_pbb): Same.
7127         (print_scop_context): Same.
7128         (print_scop): Same.
7129         (print_cloog): Same.
7130         (debug_pbb_domain): Same.
7131         (debug_pbb): Same.
7132         (print_pdrs): Same.
7133         (debug_pdrs): Same.
7134         (debug_scop_context): Same.
7135         (debug_scop): Same.
7136         (debug_cloog): Same.
7137         (print_scop_params): Same.
7138         (debug_scop_params): Same.
7139         (print_iteration_domain): Same.
7140         (print_iteration_domains): Same.
7141         (debug_iteration_domain): Same.
7142         (debug_iteration_domains): Same.
7143         (print_scattering_function): Same.
7144         (print_scattering_functions): Same.
7145         (debug_scattering_function): Same.
7146         (debug_scattering_functions): Same.
7147         * graphite-poly.h (debug_pdr): Update declaration.
7148         (print_pdr): Same.
7149         (print_pbb_domain): Same.
7150         (print_pbb): Same.
7151         (print_scop_context): Same.
7152         (print_scop): Same.
7153         (print_cloog): Same.
7154         (debug_pbb_domain): Same.
7155         (debug_pbb): Same.
7156         (print_pdrs): Same.
7157         (debug_pdrs): Same.
7158         (debug_scop_context): Same.
7159         (debug_scop): Same.
7160         (debug_cloog): Same.
7161         (print_scop_params): Same.
7162         (debug_scop_params): Same.
7163         (print_iteration_domain): Same.
7164         (print_iteration_domains): Same.
7165         (debug_iteration_domain): Same.
7166         (debug_iteration_domains): Same.
7167         (print_scattering_function): Same.
7168         (print_scattering_functions): Same.
7169         (debug_scattering_function): Same.
7170         (debug_scattering_functions): Same.
7171
7172 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7173
7174         * graphite-poly.c (print_scattering_function_1): New.
7175         (print_scattering_function): Call it.
7176         (print_scop_params): Remove spaces at the end of lines.
7177         (print_cloog): New.
7178         (debug_cloog): New.
7179         * graphite-poly.h (print_cloog): Declared.
7180         (debug_cloog): Declared.
7181
7182 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7183
7184         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
7185         in loop->header.
7186         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
7187         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
7188         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
7189         to switch between adding the IV bump in loop->latch or in loop->header.
7190
7191 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
7192
7193         * graphite-poly.c (print_scattering_function): Pretty print following
7194         the scoplib format.
7195         (print_pdr): Same.
7196         (print_pbb_domain): Same.
7197         (dump_gbb_cases): Same.
7198         (dump_gbb_conditions): Same.
7199         (print_pdrs): Same.
7200         (print_pbb): Same.
7201         (print_scop_params): Same.
7202         (print_scop_context): Same.
7203         (print_scop): Same.
7204         (print_pbb_body): New.
7205         (lst_indent_to): New.
7206         (print_lst): Start new lines with a #.
7207         * graphite-poly.h (pbb_bb): New.
7208         (pbb_index): Use pbb_bb.
7209         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
7210         disjuncts.
7211         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
7212
7213 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
7214
7215         * dwarf2out.c (size_of_die): For -gdwarf-4 use
7216         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
7217         and 0 instead of 1 for dw_val_class_flag.
7218         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
7219         dw_val_class_range_list, dw_val_class_loc_list,
7220         dw_val_class_lineptr and dw_val_class_macptr, use
7221         DW_FORM_flag_present for dw_val_class_flag and
7222         DW_FORM_exprloc for dw_val_class_loc.
7223         (output_die): For -gdwarf-4 print dw_val_class_loc
7224         size as uleb128 instead of 1 or 2 bytes and don't print
7225         anything for dw_val_class_flag.
7226
7227         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
7228         instead of cselib_lookup following by tweaking locs->setting_insn.
7229
7230         PR bootstrap/43596
7231         * cselib.c (cselib_process_insn): Clear cselib_current_insn
7232         even before returning from label, setjmp call or volatile asm
7233         handling.
7234
7235 2010-03-31  Richard Guenther  <rguenther@suse.de>
7236
7237         PR middle-end/43600
7238         * cgraphunit.c (cgraph_output_in_order): Do not allocate
7239         temporary data on stack.
7240
7241 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7242
7243         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
7244         (PUSHSECTION_ASM_OP): Remove.
7245         (POPSECTION_ASM_OP): Remove.
7246         (PUSHSECTION_FORMAT): Remove.
7247         * config/sol2.h (PUSHSECTION_FORMAT): Define.
7248         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
7249         * config/sol2.c (solaris_output_init_fini): Use it.
7250
7251 2010-03-31  Jie Zhang  <jie@codesourcery.com>
7252
7253         PR 43574
7254         * opt-functions.awk (var_type_struct): Use signed char type
7255         for simple variables.
7256
7257 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7258
7259         * config/sol2.c: Include output.h.
7260         (solaris_assemble_visibility): New function.
7261         * config/t-sol2 (sol2.o): Add output.h dependency.
7262         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
7263         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
7264         Redefine.
7265
7266 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
7267
7268         PR target/43580
7269         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
7270         V2SImode or XFmode on PRE_DEC.
7271
7272         PR debug/43557
7273         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
7274         BLKmode.
7275
7276 2010-03-31  Jie Zhang  <jie@codesourcery.com>
7277
7278         PR 43562
7279         * reload.h (caller_save_initialized_p): Declare.
7280         * toplev.c (backend_init_target): Don't call
7281         init_caller_save but set caller_save_initialized_p to false.
7282         * caller-save.c (caller_save_initialized_p): Define.
7283         (init_caller_save): Check caller_save_initialized_p.
7284         * ira.c (ira): Call init_caller_save if flag_caller_saves.
7285
7286 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7287
7288         PR target/39048
7289         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
7290         and soft-fp/t-softfp to tmake_file.
7291         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
7292         (LIBGCC2_TF_CEXT): Define.
7293         (TF_SIZE): Define.
7294
7295 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
7296
7297         PR debug/42977
7298         * cselib.c (n_useless_values): Document handling of debug locs.
7299         (n_useless_debug_values, n_debug_values): New variables.
7300         (new_elt_loc_list): Don't add to debug values, keep count.
7301         (promote_debug_loc): New.
7302         (cselib_reset_table): Zero new variables.
7303         (entry_and_rtx_equal_p): Promote debug locs.
7304         (discard_useless_locs): Increment n_useless_debug_values for
7305         debug values.
7306         (remove_useless_values): Adjust n_useless_values and n_debug_values
7307         with n_useless_debug_values.
7308         (add_mem_for_addr): Promote debug locs.
7309         (cselib_lookup_mem): Likewise.
7310         (cselib_lookup_addr): Renamed to...
7311         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
7312         (cselib_log_lookup): ... this.  Turn into...
7313         (cselib_lookup_addr): ... new wrapper.
7314         (cselib_lookup_from_insn): New.
7315         (cselib_invalidate_regno): Increment n_useless_debug_values for
7316         debug values.
7317         (cselib_invalidate_mem): Likewise.
7318         (cselib_process_insn): Take n_deleted and n_debug_values into
7319         account to guard remove_useless_value call.
7320         (cselib_finish): Zero n_useless_debug_values.
7321         * cselib.h (cselib_lookup_from_insn): Declare.
7322         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
7323         (sched_analyze_2): Likewise.
7324
7325 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
7326
7327         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
7328         functions.
7329         (adjust_mems): Replace narrowing SUBREG of expression containing
7330         just PLUS, MINUS, MULT and ASHIFT of registers and constants
7331         with operations in the narrower mode.
7332
7333         PR debug/43593
7334         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
7335         regs_invalidated_by_call instead all call_used_reg_set registers.
7336
7337 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
7338
7339         PR middle-end/43430
7340         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
7341         pointer comparisons with types_compatible_p.
7342         * tree-vect-stmts.c (vectorizable_call): Same.
7343         (vectorizable_condition): Same.
7344
7345 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7346
7347         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
7348         stack check if the mask would be zero.
7349
7350 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
7351             Jack Howarth <howarth@bromo.med.uc.edu>
7352
7353         * tree-profile.c (tree_init_ic_make_global_vars): Make static
7354         variables TLS.
7355
7356 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
7357
7358         PR other/25232
7359         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
7360         and __unordtf2.
7361         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
7362         Include ___unordxf2 and ___unordtf2.
7363         * config/i386/libgcc-glibc.ver: Do not define inheritance from
7364         GCC_4.4.0 here.
7365
7366 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
7367
7368         * config/lm32/t-lm32: New file.
7369         * config.gcc: Use the above file when targetting lm32.
7370
7371 2010-03-28  Duncan Sands  <baldrick@free.fr>
7372
7373         * Makefile.in (PLUGIN_HEADERS): Add except.h.
7374
7375 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
7376
7377         PR middle-end/43431
7378         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
7379         Improve vectorization cost model diagnostic.
7380
7381 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
7382
7383         PR middle-end/43436
7384         * tree-vect-data-refs.c (vect_analyze_data_refs): When
7385         compute_data_dependences_for_loop returns false, early exit
7386         and output an extra diagnostic for the failed data reference
7387         analysis.
7388
7389 2010-03-29  Richard Guenther  <rguenther@suse.de>
7390
7391         PR tree-optimization/43560
7392         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
7393         (can_sm_ref_p): Treat stores to readonly locations as trapping.
7394
7395 2010-03-29  Jie Zhang  <jie@codesourcery.com>
7396
7397         PR 43564
7398         * toplev.c (process_options): Set optimization_default_node
7399         and optimization_current_node.
7400         * opts.c (decode_options): Don't set optimization_default_node
7401         and optimization_current_node.
7402
7403 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
7404
7405         * config/rtems.h: Abandon -qrtems_debug.
7406
7407 2010-03-28  Jan Hubicka  <jh@suse.cz>
7408
7409         PR tree-optimization/43505
7410         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
7411         map should not be copied.
7412
7413 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7414
7415         PR middle-end/41674
7416         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
7417         cdtors, set DECL_PRESERVE_P.
7418         * ipa.c (cgraph_externally_visible_p): Return true if declaration
7419         should be preseved.
7420
7421 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
7422
7423         PR tree-optimization/43528
7424         * stor-layout.c (place_field): Check that constant fits into
7425         unsigned HWI when skipping calculation of MS bitfield layout.
7426
7427 2010-03-27  Jan Hubicka  <jh@suse.cz>
7428
7429         PR middle-end/43391
7430         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
7431         notice_global_symbol work.
7432
7433 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
7434
7435         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
7436         instead of dwarf2out_decl.
7437         (struct var_loc_node): Remove section_label field.
7438         (dwarf2out_function_decl): New function.
7439         (dwarf2out_var_location): Don't set section_label field.
7440         (dwarf2out_begin_function): Don't empty decl_loc_table here.
7441
7442 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
7443
7444         PR tree-optimization/43544
7445         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
7446         First argument for builtin vectorized function hook is now a
7447         tree to be able to distinguish between machine specific and
7448         standard builtins.
7449         * targhooks.c (default_builtin_vectorized_function): Ditto.
7450         * targhooks.h (default_builtin_vectorized_function): Ditto.
7451         * target.h (struct gcc_target): Ditto.
7452         * tree-vect-stmts.c (vectorizable_function): Ditto.
7453         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
7454         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
7455         Ditto.
7456
7457 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
7458
7459         PR c/43381
7460         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
7461         nested binding iff it is a FUNCTION_DECL.
7462         (store_parm_decls_newstyle): Pass nested=true to bind for
7463         FUNCTION_DECLs amongst parameters.
7464
7465 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
7466
7467         * var-tracking.c (vt_expand_loc_callback): Don't run
7468         cselib_expand_value_rtx_cb in dummy mode if
7469         cselib_dummy_expand_value_rtx_cb returned false.
7470
7471         * var-tracking.c (emit_note_insn_var_location): For one part
7472         notes with offset 0, don't add EXPR_LIST around the location.
7473         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
7474         add_location_or_const_value_attribute): Adjust for that change.
7475
7476         PR debug/43540
7477         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
7478         into first operand and location into second.
7479         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
7480         dw_cfi_oprnd_loc for DW_CFA_expression.
7481         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
7482         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
7483         assume first argument is regnum and second argument is location.
7484
7485 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
7486
7487         PR target/42113
7488         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
7489         of scratch register to DImode.  Split to DImode comparison operator.
7490         Use SImode subreg of scratch register in the multiplication.
7491         (*cmp_sadd_sidi): Ditto.
7492         (*cmp_ssub_si): Ditto.
7493         (*cmp_ssub_sidi): Ditto.
7494
7495 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
7496
7497         PR target/43524
7498         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
7499         Remove invalid assert and wrong comment.
7500
7501 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
7502
7503         PR debug/43516
7504         * flags.h (final_insns_dump_p): New extern.
7505         * final.c (final_insns_dump_p): New variable.
7506         (rest_of_clean_state): Set it before -fdump-final-insns=
7507         dumping, clear afterwards.
7508         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
7509         MEM_ALIAS_SET on MEMs.
7510
7511 2010-03-26  David S. Miller  <davem@davemloft.net>
7512
7513         * configure.ac: Fix sparc GOTDATA_OP bug check.
7514         * configure: Rebuild.
7515
7516 2010-03-26  Alan Modra  <amodra@gmail.com>
7517
7518         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
7519
7520 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7521
7522         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
7523         TLS_SECTION_ASM_FLAG.
7524
7525 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
7526
7527         PR bootstrap/43511
7528         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
7529         Clear first_function_block_is_cold.
7530
7531         PR c/43385
7532         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
7533         argument if the argument is truth_value_p.
7534
7535 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
7536
7537         * config/rs6000/constraints.md: Update copyright year for my changes.
7538
7539         PR target/43484
7540         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
7541         used in reg+reg addressing, swap registers.
7542
7543 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
7544
7545         PR debug/43293
7546         * target.h (struct gcc_target): Add code_end hook.
7547         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
7548         if not yet defined.
7549         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
7550         * toplev.c (compile_file): Call targetm.asm_out.code_end
7551         hook before unwind info/debug info output.
7552         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
7553         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
7554         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7555         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
7556         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7557         * config/i386/i386.c (ix86_file_end): Renamed to...
7558         (ix86_code_end): ... this.  Make static.  Don't call
7559         file_end_indicate_exec_stack.  Emit unwind info using
7560         final_start_function/final_end_function.
7561         (darwin_x86_file_end): Remove.
7562         (TARGET_ASM_CODE_END): Define.
7563         * config/i386/i386.h (TARGET_ASM_FILE_END,
7564         NEED_INDICATE_EXEC_STACK): Don't define.
7565         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
7566         (TARGET_ASM_FILE_END): Define to darwin_file_end.
7567         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
7568         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
7569
7570         PR target/43498
7571         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
7572         at the beginning and final_end_function at the end.
7573         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
7574
7575 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7576
7577         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
7578         and Sun as TLS syntax.
7579         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
7580         * configure: Regenerate.
7581         * config.in: Regenerate.
7582         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
7583         (default_elf_asm_named_section): Use it.
7584         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
7585         (i386_output_dwarf_dtprel): Likewise.
7586         (output_addr_const_extra): Likewise.
7587         (output_pic_addr_const): Lowercase @GOTTPOFF.
7588         (output_addr_const_extra): Likewise.
7589         (output_pic_addr_const): Lowercase @GOTNTPOFF.
7590         (output_addr_const_extra): Likewise.
7591         (output_pic_addr_const): Lowercase @INDNTPOFF.
7592         (output_addr_const_extra): Likewise.
7593         (output_pic_addr_const): Lowercase @NTPOFF.
7594         (output_addr_const_extra): Likewise.
7595         (output_pic_addr_const): Lowercase @TPOFF.
7596         (output_addr_const_extra): Likewise.
7597         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
7598         (*tls_global_dynamic_64): Likewise.
7599         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
7600         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
7601
7602         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
7603         (ASM_OUTPUT_TLS_COMMON): Use it.
7604         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
7605
7606         PR target/38118
7607         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
7608         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
7609         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
7610         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
7611         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7612         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
7613
7614 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7615
7616         * config/i386/i386.c (override_options): Don't accept
7617         -mtls-dialect=sun any longer.
7618         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
7619         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
7620         (*tls_local_dynamic_base_32_sun): Likewise.
7621         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7622
7623 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
7624
7625         PR debug/43508
7626         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
7627         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
7628
7629         PR debug/43479
7630         * ira.c (adjust_cleared_regs): New function.
7631         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
7632
7633         PR debug/19192
7634         PR debug/43479
7635         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
7636         from gimple_block.
7637         * expr.c (expand_expr_real): Restore previous
7638         curr_insn_source_location and curr_insn_block after
7639         expand_expr_real_1 call.
7640         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
7641         instead of expand_expr_real_1.
7642
7643 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
7644
7645         PR rtl-optimization/43413
7646         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
7647         hard regs too.
7648
7649 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
7650
7651         PR target/43348
7652         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
7653         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
7654
7655 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
7656
7657         * config/i386/i386.c (ix86_target_string): Add -mfma.
7658         Fix a typo in comment.
7659
7660 2010-03-22  Mike Stump  <mikestump@comcast.net>
7661
7662         PR target/23071
7663         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
7664         Don't overly align based upon packed packed fields.
7665
7666 2010-03-22  Jason Merrill  <jason@redhat.com>
7667
7668         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
7669         Use () rather than [], and move before the element type.
7670
7671 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7672
7673         * doc/configfiles.texi (Configuration Files): Removed
7674         fixinc/Makefile*, intl/Makefile.*.
7675         * doc/makefile.texi: Fixed markup. Abstract from version
7676         control system used.
7677         (Makefile): Removed obsolete gcc/java/parse.y example.
7678         * doc/sourcebuild.texi: Likewise.
7679         (Top Level): Added config, gnattools, libdecnumber, libgcc,
7680         libgomp, libssp.  Removed fastjar.
7681         (Miscellaneous Docs): Clarify location.
7682         Added COPYING3, COPYING3.LIB.
7683         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
7684
7685 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7686
7687         PR target/38085
7688         * config/i386/i386.c (x86_function_profiler)
7689         [!NO_PROFILE_COUNTERS]: Fix typo.
7690         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
7691         instead of callq.
7692
7693 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
7694             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7695
7696         * doc/sourcebuild.texi (Test Directives): Split into six
7697         subsections, with most of the current text in new subsections
7698         Directives, Selectors, and Final Actions.
7699         (Directives): Split list of test directives into multiple
7700         subsubsections.
7701         (Selectors): Describe use and syntax of selectors.
7702         (Effective-Target Keywords): Describe all existing keywords.
7703         (Add Options): Describe features for dg-add-options.
7704         (Require Support): Describe variants of dg-require-support.
7705         (Final Actions): Describe commands to use in dg-final.
7706
7707 2010-03-22  Michael Matz  <matz@suse.de>
7708
7709         PR middle-end/43475
7710         * recog.c (validate_replace_rtx_group): Replace also in
7711         REG_EQUAL and REG_EQUIV notes.
7712
7713 2010-03-22  Richard Guenther  <rguenther@suse.de>
7714
7715         PR tree-optimization/43390
7716         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
7717         sure vector extracts are type correct.
7718
7719 2010-03-22  Richard Guenther  <rguenther@suse.de>
7720
7721         PR middle-end/40106
7722         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
7723         x * sqrt (x) even when optimizing for size if the target
7724         has native support for sqrt.
7725
7726 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
7727
7728         * varasm.c (make_decl_rtl_for_debug): Also clear
7729         flag_mudflap for the duration of make_decl_rtl call.
7730
7731         PR debug/43443
7732         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
7733         locs from preserved VALUEs.
7734
7735 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7736
7737         PR middle-end/42718
7738         * pa.md (movmemsi): Set align to one if zero.
7739         (movmemdi): Likewise.
7740
7741 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
7742
7743         PR target/42321
7744         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
7745         with their corresponding prologue pushes.
7746
7747 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
7748
7749         PR target/43156
7750         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
7751         at the begining or end.
7752         (spu_expand_epilogue): Likewise.
7753
7754 2010-03-20  Richard Guenther  <rguenther@suse.de>
7755
7756         PR rtl-optimization/43438
7757         * combine.c (make_extraction): Properly zero-/sign-extend an
7758         extraction of the low part of a CONST_INT.  Also handle
7759         CONST_DOUBLE.
7760
7761 2010-03-19  Mike Stump  <mikestump@comcast.net>
7762
7763         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
7764         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
7765         (override_options): Use SUBTARGET32_DEFAULT_CPU.
7766
7767 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
7768
7769         PR c/43211
7770         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
7771         an error.
7772
7773 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
7774
7775         PR rtl-optimization/42258
7776         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
7777         use that may match DEF.
7778
7779         PR target/40697
7780         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
7781         the cost of loading the constant rather than assuming
7782         COSTS_N_INSNS (1).
7783         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
7784         outer code is AND, do the same tests as the andsi3 expander and
7785         return COSTS_N_INSNS (1) if and is cheap.
7786
7787         * optabs.c (avoid_expensive_constant): Fix formatting.
7788
7789 2010-03-19  Michael Matz  <matz@suse.de>
7790
7791         PR c++/43116
7792         * attribs.c (decl_attributes): When rebuilding a function pointer
7793         type use the same qualifiers as the original pointer type.
7794
7795 2010-03-19  Martin Jambor  <mjambor@suse.cz>
7796
7797         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
7798         and is_gimple_ip_invariant_address.
7799
7800 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7801
7802         Revert
7803         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7804
7805         * config/arm/arm.c (arm_override_options): Turn off
7806         flag_dwarf2_cfi_asm for AAPCS variants.
7807
7808 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7809
7810         PR target/43399
7811         * config/arm/arm.c (emit_multi_reg_push): Update comments.
7812         Use PRE_MODIFY instead of PRE_DEC.
7813         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
7814         (vfp_emit_fstmd): Likewise.
7815
7816 2010-03-19  Michael Matz  <matz@suse.de>
7817
7818         PR target/43305
7819         * builtins.c (expand_builtin_interclass_mathfn,
7820         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
7821         if that fails.
7822
7823 2010-03-19  Richard Guenther  <rguenther@suse.de>
7824
7825         PR tree-optimization/43415
7826         * tree-ssa-pre.c (phi_translate): Split out worker to ...
7827         (phi_translate_1): ... this.
7828         (phi_translate): Move all caching here.  Cache all NARY
7829         and REFERENCE translations.
7830
7831 2010-03-19  David S. Miller  <davem@davemloft.net>
7832
7833         With help from Eric Botcazou.
7834         * config/sparc/sparc.c: Include dwarf2out.h.
7835         (emit_pic_helper): Delete.
7836         (pic_helper_symbol_name): Delete.
7837         (pic_helper_emitted_p): Delete.
7838         (pic_helper_needed): New.
7839         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
7840         (get_pc_thunk_name): New.
7841         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
7842         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
7843         Set pic_helper_needed to true.  Don't call emit_pic_helper.
7844         (sparc_expand_prologue): Update load_pic_register call.
7845         (sparc_output_mi_thunk): Likewise.
7846         (sparc_file_end): Emit a hidden comdat symbol for the PIC
7847         thunk if possible.  Output CFI information as needed.
7848
7849 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
7850             Jack Howarth <howarth@bromo.med.uc.edu>
7851
7852         PR target/36399
7853         * config/i386/i386.h: Fix ABI on darwin x86-32.
7854
7855 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
7856
7857         * tree.h: Declare make_decl_rtl_for_debug.
7858         * varasm.c (make_decl_rtl_for_debug): New.
7859         * dwarf2out.c (rtl_for_decl_location): Call it.
7860         * cfgexpand.c (expand_debug_expr): Call it.
7861
7862 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
7863
7864         PR bootstrap/43399
7865         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
7866         mem_mode.
7867
7868         PR bootstrap/43403
7869         * var-tracking.c (vt_init_cfa_base): Do nothing if
7870         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
7871
7872 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
7873
7874         PR debug/42873
7875         * var-tracking.c (canonicalize_vars_star): New.
7876         (dataflow_post_merge_adjust): Use it.
7877
7878 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
7879
7880         PR debug/43058
7881         * var-tracking.c (non_suitable_const): New function.
7882         (add_uses): For DEBUG_INSNs with constants, don't record any
7883         value, instead just the constant value itself.
7884         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
7885         is not VAR_LOC_UNKNOWN_P, set var to the constant.
7886         (emit_notes_in_bb): Likewise.
7887         (emit_note_insn_var_location): For onepart variables if
7888         cur_loc is a VOIDmode constant, use DECL_MODE.
7889
7890 2010-03-18  Martin Jambor  <mjambor@suse.cz>
7891
7892         PR middle-end/42450
7893         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
7894         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
7895         all non-clones.  Moved call redirection...
7896         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
7897         (cgraph_materialize_all_clones): Dispose of all
7898         combined_args_to_skip bitmaps.
7899         (verify_cgraph_node): Do not check for edges pointing to wrong
7900         nodes in inline clones.
7901         * tree-inline.c (copy_bb): Call
7902         cgraph_redirect_edge_call_stmt_to_callee.
7903         * ipa.c (cgraph_remove_unreachable_nodes): Call
7904         cgraph_node_remove_callees even when there are used clones.
7905
7906 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
7907
7908         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
7909
7910 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
7911
7912         PR target/43383
7913         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
7914         for 32bit.
7915
7916 2010-03-18  Michael Matz  <matz@suse.de>
7917
7918         PR middle-end/43419
7919         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
7920         into sqrt(x) if we need to preserve signed zeros.
7921
7922 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
7923             Eric Botcazou  <ebotcazou@adacore.com>
7924
7925         PR rtl-optimization/43360
7926         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
7927         note if we don't know its invariant status.
7928
7929 2010-03-18  Michael Matz  <matz@suse.de>
7930
7931         PR tree-optimization/43402
7932         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
7933         PHI chains of ssa names registered for update.
7934
7935 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
7936
7937         PR target/42427
7938         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
7939         non-offsettable and pre_modify update addressing.
7940         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
7941         and "2" alternatives "#".
7942         (*movdd_softfloat32): Make all alternatives "#";
7943         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
7944         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
7945         (*movdf_softfloat32): Make all alternatives "#";
7946         (movdi): Use the new DIFD mode iterator to create a common splitter
7947         for movdi, movdf and movdd patterns.
7948
7949 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
7950
7951         * common.opt (dumpdir): Remove redundant tab.
7952
7953 2010-03-17  Martin Jambor  <mjambor@suse.cz>
7954
7955         PR tree-optimization/43347
7956         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
7957         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
7958
7959 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
7960
7961         PR rtl-optimization/42216
7962         * regrename.c (create_new_chain): New function, broken out from...
7963         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
7964         appending a use to an empty chain.
7965         (build_def_use): Remove previous changes that convert OP_INOUT to
7966         OP_OUT operands; instead detect the case where an OP_INOUT operand
7967         uses a previously untracked register and create an empty chain for it.
7968
7969 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7970
7971         * doc/extend.texi (Function Attributes): Rewrite unfinished
7972         sentence in ms_abi documentation.
7973
7974 2010-03-17  Alan Modra  <amodra@gmail.com>
7975
7976         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
7977         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
7978         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
7979         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
7980
7981 2010-03-16  Richard Henderson  <rth@redhat.com>
7982
7983         PR middle-end/43365
7984         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
7985         (lower_try_finally): Save and restore eh_seq around the expansion
7986         of the try-finally.
7987
7988 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
7989
7990         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
7991         statements before splitting block.
7992
7993 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7994
7995         * doc/sourcebuild.texi (Testsuites): Fix markup.
7996         Use pathnames relative to gcc/testsuite.
7997         (Test Directives): Move description of how timeout is determined.
7998         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
7999         (C Tests): Correct gcc.misc-tests directory.
8000         Framework tests now live in gcc.test-framework.
8001
8002 2010-03-16  Richard Guenther  <rguenther@suse.de>
8003
8004         PR middle-end/43379
8005         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
8006         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
8007
8008 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
8009             Alexandre Oliva  <aoliva@redhat.com>
8010
8011         PR tree-optimization/42917
8012         * lambda-code.c (remove_iv): Skip debug statements.
8013         (lambda_loopnest_to_gcc_loopnest): Likewise.
8014         (not_interesting_stmt): Debug statements are not interesting.
8015
8016 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
8017
8018         PR debug/43051
8019         PR debug/43092
8020         * cselib.c (cselib_preserve_constants,
8021         cfa_base_preserved_val): New static variables.
8022         (preserve_only_constants): New function.
8023         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
8024         clear its REG_VALUES.  If cselib_preserve_constants, don't
8025         empty the whole hash table, but preserve there VALUEs with constants,
8026         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
8027         (cselib_preserve_cfa_base_value): New function.
8028         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
8029         (cselib_init): Change argument to int bitfield.  Set
8030         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
8031         is in it.
8032         (cselib_finish): Clear cselib_preserve_constants and
8033         cfa_base_preserved_val.
8034         * cselib.h (enum cselib_record_what): New enum.
8035         (cselib_init): Change argument to int.
8036         (cselib_preserve_cfa_base_value): New prototype.
8037         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
8038         * dse.c (dse_step1): Likewise.
8039         * cfgcleanup.c (thread_jump): Likewise.
8040         * sched-deps.c (sched_analyze): Likewise.
8041         * gcse.c (local_cprop_pass): Likewise.
8042         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
8043         If FN is non-NULL, call the callback always and whenever it returns
8044         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
8045         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
8046         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
8047         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
8048         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
8049         * var-tracking.c: Include recog.h.
8050         (bb_stack_adjust_offset): Remove.
8051         (vt_stack_adjustments): Don't call it, instead just gather the
8052         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
8053         (adjust_stack_reference): Remove.
8054         (compute_cfa_pointer): New function.
8055         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
8056         (struct adjust_mem_data): New type.
8057         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
8058         functions.
8059         (get_address_mode): New function.
8060         (replace_expr_with_values): Use it.
8061         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
8062         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
8063         (adjust_sets): Remove.
8064         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
8065         Use get_address_mode.
8066         (get_adjusted_src): Remove.
8067         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
8068         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
8069         (add_with_sets): Don't call adjust_sets.
8070         (fp_setter, vt_init_cfa_base): New functions.
8071         (vt_initialize): Change return type to bool.  Move most of pool etc.
8072         initialization to the beginning of the function from end.  Pass
8073         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
8074         If !frame_pointer_needed, call vt_stack_adjustment before mos
8075         vector is filled, call vt_init_cfa_base if argp/framep has been
8076         eliminated to sp.  If frame_pointer_needed and argp/framep has
8077         been eliminated to hard frame pointer, set
8078         hard_frame_pointer_adjustment and call vt_init_cfa_base after
8079         encountering fp setter in the prologue.  For MO_ADJUST, call
8080         log_op_type before pusing the op into mos vector, not afterwards.
8081         Call adjust_insn before cselib_process_insn/add_with_sets,
8082         call cancel_changes (0) afterwards.
8083         (variable_tracking_main_1): Adjust for vt_initialize calling
8084         vt_stack_adjustments and returning whether it succeeded or not.
8085
8086 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
8087
8088         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
8089         debug statements.
8090
8091 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
8092
8093         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
8094         has been set.
8095         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
8096         drap_reg has not been set.
8097
8098 2010-03-15  Michael Matz  <matz@suse.de>
8099
8100         PR middle-end/43300
8101         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
8102         use it to expand block copies.
8103         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
8104         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
8105         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
8106
8107 2010-03-15  Richard Guenther  <rguenther@suse.de>
8108
8109         PR tree-optimization/43367
8110         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
8111         elimination check.
8112
8113 2010-03-15  Richard Guenther  <rguenther@suse.de>
8114
8115         PR tree-optimization/43317
8116         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
8117
8118 2010-03-15  Martin Jambor  <mjambor@suse.cz>
8119
8120         PR tree-optimization/43141
8121         * tree-sra.c (create_abstract_origin): New function.
8122         (modify_function): Call create_abstract_origin.
8123
8124 2010-03-15  Chris Demetriou  <cgd@google.com>
8125
8126         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
8127         wasn't copied.
8128
8129 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8130
8131         PR middle-end/43354
8132         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
8133         call insert_out_of_ssa_copy for default definitions.
8134
8135 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8136
8137         * graphite-clast-to-gimple.c (my_long_long): Defined.
8138         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
8139         * graphite-sese-to-poly.c (my_long_long): Defined.
8140         (scop_ivs_can_be_represented): Use it.
8141
8142 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8143
8144         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
8145         graphite-max-bbs-per-function, and loop-block-tile-size.
8146         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
8147         with "maximum".
8148         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
8149
8150 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8151
8152         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
8153         forward declaration.
8154         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
8155         (add_upper_bounds_from_estimated_nit): New.
8156         (build_loop_iteration_domains): Use it.
8157
8158 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8159
8160         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
8161
8162 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8163
8164         PR middle-end/43306
8165         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
8166         should be an INTEGER_CST.  Also handle CASE_CONVERT.
8167
8168 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8169
8170         * graphite.c (graphite_initialize): To bound the number of bbs per
8171         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
8172         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
8173         * doc/invoke.texi: Document it.
8174
8175 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8176
8177         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
8178         * graphite-sese-to-poly.h (build_poly_scop): Same.
8179
8180 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
8181
8182         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
8183         the number of parameters in the scop.  Use as an upper bound
8184         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
8185         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
8186         * doc/invoke.texi: Document it.
8187
8188 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
8189
8190         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
8191         * doc/c-tree.texi: Remove.
8192         * doc/generic.texi: Merge c-tree.texi here.
8193         * doc/gccint.texi (Trees): Remove menu entry.
8194         (c-tree.texi): Remove @include.
8195         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
8196         * doc/languages.texi (Reading RTL): Ditto.
8197
8198 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
8199
8200         PR target/42869
8201         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
8202
8203 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
8204
8205         PR middle-end/42431
8206         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
8207         code added to work around reload clobbering CONST insns.
8208
8209 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
8210
8211         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
8212         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
8213         (cselib_preserve_only_values): Remove retain argument, don't
8214         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
8215         * cselib.h (cselib_preserve_only_values): Remove retain argument.
8216         * var-tracking.c (micro_operation): Move insn field before union.
8217         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
8218         (struct variable_tracking_info_def): Remove n_mos field, change
8219         mos into a vector of micro_operations.
8220         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
8221         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
8222         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
8223         changing into a vector.
8224         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
8225         come before all other uops generated by add_stores.
8226         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
8227         argument removal.
8228         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
8229         a vector.  Run just one pass over the bbs instead of separate counting
8230         and computation phase.
8231         (vt_finalize): Free VTI (bb)->mos vector instead of array.
8232
8233         PR debug/43329
8234         * tree-inline.c (remap_decls): Put old_var rather than origin_var
8235         into *nonlocalized_list vector.
8236         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
8237         even if origin is non-NULL.
8238         (gen_variable_die): Likewise.
8239         (process_scope_var): Don't change origin.
8240         (gen_decl_die): Likewise.
8241         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
8242         before adding new edges instead of after it, fix moving over
8243         debug stmts.
8244
8245 2010-03-11  David S. Miller  <davem@davemloft.net>
8246
8247         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
8248         of four.
8249         * configure: Rebuild.
8250
8251 2010-03-11  Martin Jambor  <mjambor@suse.cz>
8252
8253         PR tree-optimization/43257
8254         * tree.c (assign_assembler_name_if_neeeded): New function.
8255         (free_lang_data_in_cgraph): Assembler name assignment moved to the
8256         above new function.
8257         * tree.h (assign_assembler_name_if_neeeded): Declare.
8258         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
8259         the function if needed.
8260
8261 2010-03-11  Chris Demetriou  <cgd@google.com>
8262
8263         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
8264         include/stdint-gcc.h, and include/stdint.h world-readable.
8265
8266 2010-03-11  Richard Guenther  <rguenther@suse.de>
8267
8268         PR tree-optimization/43255
8269         * tree-vrp.c (process_assert_insertions_for): Do not insert
8270         asserts for trivial conditions.
8271
8272 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8273
8274         PR tree-optimization/43280
8275         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
8276         generation.  Move calculation of size out of the if branch.
8277         (find_bswap): Modify compare number generation.
8278
8279 2010-03-11  Richard Guenther  <rguenther@suse.de>
8280
8281         PR lto/43200
8282         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
8283         (input_gimple_stmt): Fixup handled component types during
8284         operand read.  Also fix up decls in ADDR_EXPRs.
8285
8286 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
8287
8288         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
8289         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
8290
8291 2010-03-10  Jan Hubicka  <jh@suse.cz>
8292
8293         PR c/43288
8294         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
8295         * varasm.c (get_variable_section): Don't do that here...
8296         (make_decl_rtl): ... and here.
8297         (do_assemble_alias): Produce decl RTL.
8298         (assemble_alias): Likewise.
8299
8300 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
8301
8302         PR debug/43290
8303         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
8304         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
8305         of fde->vdrap_reg.
8306         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
8307         (based_loc_descr): Only express drap or vdrap regno based expressions
8308         using DW_OP_fbreg when not optimizing.
8309         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
8310         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
8311         REG_CFA_SET_VDRAP note.
8312
8313 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
8314
8315         PR tree-optimization/43236
8316         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
8317         error in calculation of base address in reverse iteration case.
8318         (generate_builtin): Take number of latch executions if the statement
8319         is in the latch.
8320
8321 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
8322
8323         PR middle-end/42859
8324         * tree-eh.c: Include pointer-set.h.
8325         (lower_eh_dispatch): Filter out duplicate case labels and
8326         remove the unneeded edge when the label is unused.  Return
8327         true when some edges are removed.
8328         (execute_lower_eh_dispatch): When any lowering resulted in
8329         removing an edge, also delete unreachable blocks.
8330
8331 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
8332
8333         PR bootstrap/43287
8334         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
8335         UNSPEC_MACHOPIC_OFFSET.
8336
8337 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
8338
8339         PR target/43294
8340         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
8341         (m68k_delegitimize_address): New function.
8342
8343 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
8344
8345         PR debug/43299
8346         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
8347
8348         PR debug/43299
8349         * var-tracking.c (adjust_sets): New function.
8350         (count_with_sets, add_with_sets): Use it.
8351         (get_adjusted_src): New inline function.
8352         (add_stores): Use it.
8353
8354         PR debug/43304
8355         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
8356         call cselib_dummy_expand_value_rtx_cb instead of
8357         cselib_expand_value_rtx_cb.
8358
8359         PR debug/43293
8360         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
8361         * config/i386/i386.c: Include debug.h and dwarf2out.h.
8362         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
8363         and .cfi_endproc around the pic thunks.
8364         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
8365         all queued unwind info register saves are saved before the call.
8366         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
8367         considered as sp-=4 for unwind info and the pop as sp+=4 which
8368         also clobbers dest, but doesn't actually restore it.
8369
8370         PR debug/43290
8371         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
8372         RTX_FRAME_RELATED_P.
8373
8374 2010-03-09  Jie Zhang  <jie@codesourcery.com>
8375
8376         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
8377         whitespaces in output template.
8378
8379 2010-03-09  Jie Zhang  <jie@codesourcery.com>
8380
8381         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
8382         out array boundary.
8383
8384 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
8385
8386         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
8387         builtins.exp in a separate job.
8388
8389 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8390
8391         * graphite-sese-to-poly.c (add_param_constraints): Use
8392         lower_bound_in_type and upper_bound_in_type.
8393
8394 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8395
8396         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
8397         instead of unsigned_type_node.
8398
8399 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8400             Reza Yazdani  <reza.yazdani@amd.com>
8401
8402         PR middle-end/43065
8403         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
8404         on pointer type parameters.
8405
8406 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
8407
8408         PR middle-end/42644
8409         PR middle-end/42130
8410         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
8411         handle conversions from pointer to integers.
8412         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
8413         induction variable, to be able to work with code generated by CLooG.
8414         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
8415         (build_poly_scop): Bail out if we cannot codegen a loop.
8416
8417 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
8418
8419         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
8420         code generation with gloog_error.
8421
8422 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8423
8424         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
8425         Call fold_convert on all the returned values.
8426         (expand_scalar_variables_expr): Pass to
8427         expand_scalar_variables_ssa_name the type of the resulting expression.
8428
8429 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8430
8431         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
8432         ppl_min_for_le_pointset.
8433         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
8434         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
8435
8436 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8437
8438         * graphite-dependences.c (map_into_dep_poly): Removed.
8439         (dependence_polyhedron_1): Use combine_context_id_scat.
8440
8441 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8442
8443         * graphite-poly.h (struct poly_scattering): Add layout documentation.
8444         (struct poly_bb): Same.
8445         (combine_context_id_scat): New.
8446
8447 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8448
8449         PR middle-end/42326
8450         * sese.c (name_defined_in_loop_p): Return false for default
8451         definitions.
8452
8453 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8454
8455         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
8456         and clean up the logic.
8457
8458 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8459
8460         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
8461         early return.
8462
8463 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
8464
8465         * var-tracking.c (remove_cselib_value_chains): Define only for
8466         ENABLE_CHECKING.
8467         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
8468         delete_slot_part, emit_notes_for_differences_1): Don't call
8469         remove_cselib_value_chains here.
8470         (set_slot_part, emit_notes_for_differences_2): Don't call
8471         add_cselib_value_chains here.
8472         (preserved_values): New vector.
8473         (preserve_value): New function.
8474         (add_uses, add_stores, vt_add_function_parameters): Use it
8475         instead of cselib_preserve_value.
8476         (changed_values_stack): New vector.
8477         (check_changed_vars_0): New function.
8478         (check_changed_vars_1, check_changed_vars_2): Use it.
8479         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
8480         changed_values_stack VALUEs.
8481         (vt_emit_notes): For all preserved_values call
8482         add_cselib_value_chains.  If ENABLE_CHECKING call
8483         remove_cselib_value_chains before verifying value_chains is empty.
8484         Initialize and free changed_values_stack.
8485         (vt_initialize): Initialize preserved_values.
8486         (vt_finalize): Free preserved_values.
8487
8488 2010-03-08  Richard Guenther  <rguenther@suse.de>
8489
8490         PR tree-optimization/43269
8491         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
8492         region detection.
8493
8494 2010-03-08  Martin Jambor  <mjambor@suse.cz>
8495
8496         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
8497         (ipa_is_param_called): Removed.
8498         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
8499         (ipa_print_node_params): Do not print the called flag.
8500         (ipa_write_node_info): Do not stream the called flag.
8501         (ipa_read_node_info): Likewise.
8502
8503 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
8504
8505         PR debug/43176
8506         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
8507         * cselib.c (struct expand_value_data): Add dummy field.
8508         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
8509         dummy to false.
8510         (cselib_dummy_expand_value_rtx_cb): New function.
8511         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
8512         any rtl.
8513         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
8514         * var-tracking.c: Include pointer-set.h.
8515         (variable): Change n_var_parts to char from int.  Add
8516         cur_loc_changed and in_changed_variables fields.
8517         (variable_canonicalize): Remove.
8518         (shared_var_p): New inline function.
8519         (unshare_variable): Maintain cur_loc_changed and
8520         in_changed_variables fields.  If var was in changed_variables,
8521         replace it there with new_var.  Just copy cur_loc instead of
8522         resetting it to something else.
8523         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
8524         (dataflow_set_union): Don't call variable_canonicalize.
8525         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
8526         of their DEBUG_EXPR_TREE_DECLs.
8527         (canonicalize_loc_order_check): Verify that cur_loc is NULL
8528         and in_changed_variables and cur_loc_changed is false.
8529         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
8530         and cur_loc_changed.  Don't update cur_loc here.
8531         (variable_merge_over_src): Don't call variable_canonicalize.
8532         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
8533         removing loc that is equal to cur_loc, clear cur_loc,
8534         set cur_loc_changed and ensure variable_was_changed is called.
8535         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
8536         compare pointers in cur_loc check, if it is equal to loc,
8537         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
8538         (variable_different_p): Remove compare_current_location argument,
8539         don't compare cur_loc.
8540         (dataflow_set_different_1): Adjust variable_different_p caller.
8541         (variable_was_changed): If dv had some var in changed_variables
8542         already, reset in_changed_variables flag for it and propagate
8543         cur_loc_changed over to the new variable.  On empty var
8544         always set cur_loc_changed.  Set in_changed_variables on whatever
8545         var is added to changed_variables.
8546         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
8547         Use shared_var_p.  When removing loc that is equal to cur_loc,
8548         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
8549         end, don't set it to something else, just call variable_was_changed.
8550         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
8551         loc being removed, clear cur_loc and set cur_loc_changed.
8552         Set cur_loc_changed if all locations have been removed.
8553         (struct expand_loc_callback_data): New type.
8554         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
8555         allocated.  Always create SUBREGs if simplify_subreg failed.
8556         Prefer to use cur_loc, when that fails and still in
8557         changed_variables (and seen first time) recompute it.  Set
8558         cur_loc_changed of variables which had to change cur_loc and
8559         compute elcd->cur_loc_changed if any of the subexpressions used
8560         had to change cur_loc.
8561         (vt_expand_loc): Adjust to pass arguments in
8562         expand_loc_callback_data structure.
8563         (vt_expand_loc_dummy): New function.
8564         (emitted_notes): New variable.
8565         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
8566         that weren't used for any other decl in current
8567         emit_notes_for_changes call call vt_expand_loc_dummy to update
8568         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
8569         first loc_chain location if NULL before.  Always use just
8570         cur_loc instead of first loc_chain location.  When cur_loc_changed
8571         is false, when not --enable-checking=rtl just don't emit any note.
8572         When rtl checking, compute the note and assert it is the same
8573         as previous note.  Clear cur_loc_changed and in_changed_variables
8574         at the end before removing from changed_variables.
8575         (check_changed_vars_3): New function.
8576         (emit_notes_for_changes): Traverse changed_vars to call
8577         check_changed_vars_3 on each changed var.
8578         (emit_notes_for_differences_1): Clear cur_loc_changed and
8579         in_changed_variables.  Recompute cur_loc of new_var.
8580         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
8581         (vt_emit_notes): Initialize and destroy emitted_notes.
8582
8583 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
8584
8585         PR rtl-optimization/42220
8586         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
8587         Use verify_reg_tracked to determine if we should use OP_OUT rather
8588         than OP_INOUT.
8589         (build_def_use): If we see an in-out operand for a register that we
8590         know nothing about, treat is an output if possible, fail the block if
8591         not.
8592
8593 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
8594
8595         PR debug/42897
8596         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
8597         permanently.
8598
8599 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
8600
8601         PR debug/42897
8602         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
8603         uses of relevant DEFs that are dead outside the loop too.
8604
8605 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
8606
8607         * var-tracking.c (dataflow_set_merge): Swap src and src2.
8608         Reverted:
8609         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
8610         PR debug/41371
8611         * var-tracking.c (values_to_unmark): New variable.
8612         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
8613         values_to_unmark vector.  Moved body to...
8614         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
8615         instead queue it into values_to_unmark vector.
8616         (vt_find_locations): Free values_to_unmark vector.
8617
8618 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
8619
8620         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
8621         (site.exp): Export them when plugins are enabled.
8622
8623 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
8624
8625         PR middle-end/42326
8626         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
8627         that contain scevs.
8628         (chrec_fold_multiply): Same.
8629
8630 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
8631
8632         PR c/43248
8633         * c-decl.c (build_compound_literal): Return early if init is
8634         an error_mark_node.
8635
8636 2010-03-04  Martin Jambor  <mjambor@suse.cz>
8637
8638         PR tree-optimization/43164
8639         PR tree-optimization/43191
8640         * tree-sra.c (type_consists_of_records_p): Reject records with
8641         zero-size bit-fields at the end.
8642
8643 2010-03-04  Mike Stump  <mikestump@comcast.net>
8644
8645         * Makefile.in (TAGS): Remove *.y.
8646
8647 2010-03-04  Richard Guenther  <rguenther@suse.de>
8648
8649         PR tree-optimization/40761
8650         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
8651         in reverse order.
8652         (my_rev_post_order_compute): New function.
8653         (init_pre): Call it.
8654
8655 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
8656
8657         PR middle-end/43209
8658         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
8659         decrease the cost of an IV candidate when the cost is infinite.
8660
8661 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8662
8663         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
8664         Use '3DNow!' for the extension of that name, ensure normal space
8665         after the string.
8666         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
8667
8668 2010-03-03  Jeff Law  <law@redhat.com>
8669
8670         * PR middle-end/32693
8671         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
8672         than gen_rtx_SUBREG.
8673         (extract_bit_field_1): Likewise.
8674
8675 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
8676
8677         * doc/sourcebuild.texi (Test directives): Document that arguments
8678         include-opts and exclude-opts are now optional for dg-skip-if,
8679         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
8680
8681 2010-03-03  Jason Merrill  <jason@redhat.com>
8682
8683         PR c++/12909
8684         * cgraph.h (varpool_node): Add extra_name field.
8685         * varpool.c (varpool_extra_name_alias): New.
8686         (varpool_assemble_decl): Emit extra name aliases.
8687         (varpool_mark_needed_node): Look past an extra name alias.
8688         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
8689         * lto-streamer-in.c (lto_input_tree): Read it.
8690         * lto-streamer-out.c (output_unreferenced_globals): Write it.
8691
8692 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
8693
8694         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
8695         (sparc*-*-solaris2*): ...this.
8696
8697 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
8698
8699         PR debug/43229
8700         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
8701         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
8702         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
8703         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
8704
8705         PR debug/43237
8706         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
8707         fallthrough to default handling, just with want_address 0 instead of 2.
8708         For single element lists, add_AT_loc directly, otherwise create an
8709         artificial variable DIE and stick location list to it.
8710
8711         PR debug/43177
8712         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
8713         (VAL_EXPR_HAS_REVERSE): Define.
8714         (reverse_op): New function.
8715         (add_stores): For reversible operations add an extra MO_VAL_USE.
8716
8717 2010-03-02  Jason Merrill  <jason@redhat.com>
8718
8719         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
8720
8721 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
8722
8723         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
8724         (sparc64-*-linux*): Likewise.
8725         (sparc64-*-solaris2*): Include assembler files before linker ones.
8726         (sparc-*-solaris2*): Simplify and reorder to match previous case.
8727         * config/sparc/gas.h: Delete.
8728         * config/sparc/sol2-64.h: Add copyright notice.
8729         * config/sparc/sol2-gas-bi.h: Likewise.
8730         * config/sparc/sol2-gld.h: Likewise.
8731         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
8732         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
8733         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
8734         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
8735         (sparc_elf_asm_named_section): Rename into...
8736         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
8737
8738 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
8739
8740         * config/alpha/alpha.c (override_options): Fix -mtune error message.
8741
8742 2010-03-02  Jeff Law  <law@redhat.com>
8743
8744         PR middle-end/42431
8745         * reload1.c (rtx_p, substitute_stack): Declare.
8746         (substitute): Record addresses of changed rtxs.
8747         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
8748         Restore the original rtx when complete.
8749         (reload): Free subsitute_stack when complete.
8750
8751 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
8752
8753         * doc/gccint.texi (menu): Add Testsuites as a chapter.
8754         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
8755         new chapter.
8756         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
8757         LTO Testing, gcov Testing, profopt Testing, compat Testing,
8758         Torture Tests): Change from subsection to section.
8759
8760 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
8761             Steven Bosscher  <steven@gcc.gnu.org>
8762
8763         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
8764         instead of bb.
8765
8766 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
8767
8768         PR middle-end/42640
8769         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
8770         the assignment from the new induction variable to the assignment
8771         of the value from the original loop PHI function.
8772
8773 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
8774             Daniel Jacobowitz  <dan@codesourcery.com>
8775
8776         * doc/sourcebuild.texi (Test directives): Clarify options to
8777         dg-skip-if.
8778
8779 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8780
8781         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
8782         Disable cfi directives unless GCC and gas agree on using read-only
8783         .eh_frame sections for 64-bit.
8784         * configure: Regenerate.
8785
8786 2010-03-01  Richard Guenther  <rguenther@suse.de>
8787
8788         PR tree-optimization/43220
8789         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
8790         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
8791
8792 2010-03-01  Richard Guenther  <rguenther@suse.de>
8793             Martin Jambor  <mjambor@suse.cz>
8794
8795         PR middle-end/41250
8796         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
8797         gimplified parameters.
8798
8799 2010-03-01  Christian Bruel  <christian.bruel@st.com>
8800
8801         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
8802
8803 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
8804
8805         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
8806
8807 2010-03-01  Richard Guenther  <rguenther@suse.de>
8808
8809         PR middle-end/43213
8810         * expr.c (expand_assignment): Use the alias-oracle to tell
8811         if the rhs aliases the result decl.
8812
8813 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8814
8815         PR pch/14940
8816         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
8817         to sol_gt_pch_get_address.
8818         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
8819         64-bit, SPARC and x86.
8820         (sol_gt_pch_get_address): New function.
8821
8822 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
8823
8824         * toplev.h (inform_n, error_n): Declare.
8825         * diagnostic.c (inform_n, error_n): New function.
8826
8827 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
8828
8829         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
8830         has no rtl yet when processing local_decls, queue it and recheck
8831         if deferred stack allocation hasn't assigned it rtl.
8832
8833 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
8834
8835         * config/sh/sh.c (unspec_bbr_uid): New.
8836         (gen_block_redirect): Use it instead of INSN_UID.
8837         (gen_far_branch): Likewise.
8838
8839 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
8840
8841         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
8842         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
8843
8844 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8845
8846         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
8847         (Warning Options): -Wno-conversion-null is valid for
8848         Objective-C++ as well.
8849         * doc/tm.texi (Named Address Spaces): Likewise.
8850         * doc/plugins.texi (Plugins): Replace TABs with spaces.
8851         * doc/tree-ssa.texi (Tree SSA): Likewise.
8852
8853 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8854
8855         PR bootstrap/43202
8856         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
8857         by default.  Don't set the default arch for
8858         i[34567]86-*-darwin*|x86_64-*-darwin*.
8859
8860 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8861
8862         PR bootstrap/43202
8863         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
8864         default.  Set the default 32bit/64bit archs with $with_arch
8865         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
8866
8867 2010-02-27  Richard Guenther  <rguenther@suse.de>
8868
8869         PR tree-optimization/43186
8870         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
8871         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
8872         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
8873         unroller iterations.
8874
8875 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8876
8877         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
8878         required and i[34567]86-*-* targets don't support 64bit ISA.
8879
8880 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
8881
8882         PR ada/43096
8883         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
8884         the same alias set.
8885
8886 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
8887
8888         * config.gcc: Set the default arch at least to Prescott for
8889         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
8890         if SSE math is enabled.
8891
8892 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8893
8894         * diagnostic.c (diagnostic_initialize): Update.
8895         (diagnostic_report_diagnostic): Test inhibit_notes_p for
8896         informative notes.
8897         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
8898         (diagnostic_inhibit_notes): New.
8899         * toplev.c (process_options): inhibit notes with -fcompare-debug.
8900
8901 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8902
8903         PR c/20631
8904         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
8905         * doc/standards.texi: Likewise.
8906         * doc/extend.texi: Likewise.
8907         * doc/trouble.texi: Likewise.
8908         * doc/cppopts.texi: Likewise.
8909         * doc/install.texi: Likewise.
8910         * c.opt (std=c90,std=gnu90): New options.
8911         * c-opts.c (c_common_handle_option): Handle them.
8912
8913 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8914
8915         PR c/24577
8916         * c-decl.c (undeclared_variable): Use an informative note.
8917
8918 2010-02-26  Richard Guenther  <rguenther@suse.de>
8919
8920         PR tree-optimization/43186
8921         * gimple.h (gimple_fold): Remove.
8922         * gimple.c (gimple_fold): Remove.  Inline into single user ...
8923         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
8924         Try harder for conditions.
8925
8926 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
8927
8928         PR debug/43190
8929         * function.c (used_types_insert): Don't skip through named pointer
8930         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
8931         and it is different from the main variant's type.
8932
8933 2010-02-26  Nick Clifton  <nickc@redhat.com>
8934
8935         * config/rx/rx.md (sminsi3): Remove bogus alternative.
8936
8937 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
8938
8939         * config.gcc: Support --with-fpmath=sse for x86.
8940
8941         * config/i386/ssemath.h: New.
8942
8943         * doc/install.texi (--with-fpmath=sse): Documented.
8944
8945 2010-02-26  Richard Guenther  <rguenther@suse.de>
8946
8947         PR tree-optimization/43188
8948         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
8949         vector types of over-aligned element type.
8950
8951 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
8952
8953         PR target/43175
8954         * config/i386/i386.c (expand_vec_perm_blend): Use correct
8955         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
8956
8957 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
8958
8959         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
8960
8961 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
8962
8963         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
8964         * var-tracking.c: Include diagnostic.h.
8965         (debug_dv): New function.
8966         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
8967
8968         PR debug/43160
8969         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
8970         (add_value_chain, add_value_chains, remove_value_chain,
8971         remove_value_chains): Handle DEBUG_EXPRs.
8972         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
8973
8974         PR debug/43161
8975         * regcprop.c (struct queued_debug_insn_change): New type.
8976         (struct value_data_entry): Add debug_insn_changes field.
8977         (struct value_data): Add n_debug_insn_changes field.
8978         (debug_insn_changes_pool): New variable.
8979         (free_debug_insn_changes, apply_debug_insn_changes,
8980         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
8981         (kill_value_one_regno): Call free_debug_insn_changes if needed.
8982         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
8983         fields.
8984         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
8985         changes for them.
8986         (copyprop_hardreg_forward_1): Don't call apply_change_group for
8987         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
8988         changes, call cprop_find_used_regs via note_stores.
8989         (copyprop_hardreg_forward): When copying vd from predecessor
8990         which has any queued DEBUG_INSN changes, make sure the pointers are
8991         cleared.  At the end call df_analyze and then if there are any
8992         DEBUG_INSN changes queued at the end of some basic block for still
8993         live registers, apply them.
8994         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
8995
8996 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
8997
8998         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
8999         (arm*-*-*): Ditto.
9000
9001 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
9002
9003         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
9004         targets.  Set the default with_cpu/with_arch from arch/cpu.
9005         Allow x86-64 and native for with_cpu/with_arch.
9006
9007 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
9008
9009         * ebitmap.c: Change calls to verify_popcount with calls to
9010         sbitmap_verify_popcount.
9011         (ebitmap_clear_bit): Fixed map->cacheindex test and
9012         map>cache update when bit clearing results in an empty
9013         element.
9014
9015 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
9016
9017         PR target/43154
9018         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
9019         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
9020         and support both V2DF and V2DI modes.
9021         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
9022         support both V2DF and V2DI modes.
9023         (general): Delete trailing whitespace from a few patterns.
9024
9025         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9026         V2DF/V2DI interleave high/low builtins.
9027
9028         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
9029         new VSX builtins.
9030
9031         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
9032         interleave high/low functions.
9033
9034 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
9035
9036         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
9037         #pragma extern_prefix.
9038
9039 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
9040
9041         PR debug/43166
9042         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
9043         BLKmode, assert op0 is a MEM and just adjust its mode.
9044
9045         PR debug/43165
9046         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
9047         if bitpos isn't multiple of mode's bitsize.
9048
9049 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9050
9051         * c.opt (-ftemplate-depth=): New.
9052         (-ftemplate-depth-): Deprecate.
9053         * optc-gen.awk: Handle -ftemplate-depth=.
9054         * opth-gen.awk: Likewise.
9055         * c-opts.c (c_common_handle_option): Likewise.
9056         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
9057
9058 2010-02-24  Jason Merrill  <jason@redhat.com>
9059
9060         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
9061
9062 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9063
9064         * cfg.c (alloc_aux_for_block): Remove inline.
9065         (alloc_aux_for_edge): Likewise.
9066
9067 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9068
9069         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
9070
9071 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9072
9073         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
9074         * config/i386/sol2-gas.h: New file.
9075         * config.gcc (i[34567]86-*-solaris2*): Use it.
9076
9077 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9078
9079         PR c/43128
9080         * c-typeck.c (ep_convert_and_check): New.
9081         (build_conditional_expr): Use it.
9082         (build_binary_op): Likewise.
9083
9084 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
9085
9086         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
9087
9088         PR debug/43150
9089         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
9090         bounds even for -O+.
9091         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
9092         expr needs to have DECL_NAME set.
9093
9094 2010-02-24  Nick Clifton  <nickc@redhat.com>
9095
9096         * config/mep/mep.c: Include gimple.h.
9097         (mep_function_uses_sp): Delete unused function.
9098         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
9099         parameters.  Use unsigned integers to count args.  Return a
9100         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
9101
9102 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
9103
9104         PR target/43107
9105         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
9106         greater or equal to nelt instead of 2 * nelt.
9107         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
9108         with nelt - 1.
9109
9110 2010-02-23  Jason Merrill  <jason@redhat.com>
9111
9112         PR debug/42800
9113         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
9114         in cfun->local_decls even if they have register types.
9115
9116         PR c++/42837
9117         * stor-layout.c (place_field): Don't warn about unnecessary
9118         DECL_PACKED if the type is packed.
9119
9120 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
9121
9122         PR target/43139
9123         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
9124         GOTOFF relocs, even when the base reg isn't pic pointer.
9125
9126 2010-02-23  Michael Matz  <matz@suse.de>
9127
9128         PR debug/43077
9129         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
9130         (expand_gimple_basic_block): Generate and use debug temps if there
9131         are debug uses left after the last real use of TERed ssa names.
9132         Unlink debug immediate uses when they are expanded.
9133
9134 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9135
9136         PR 43123
9137         * config/i386/i386.c (override_options): Reorganise to provide
9138         better error messages.
9139
9140 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9141
9142         PR middle-end/43083
9143         * graphite-scop-detection.c (create_single_exit_edge): Move
9144         the call to find_single_exit_edge to....
9145         (create_sese_edges): ...here.  Don't handle multiple edges
9146         exiting the function.
9147         (build_graphite_scops): Don't handle multiple edges
9148         exiting the function.
9149
9150 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9151
9152         PR middle-end/43097
9153         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
9154         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
9155
9156 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
9157
9158         PR middle-end/43026
9159         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
9160
9161 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9162
9163         PR c++/43126
9164         * c-typeck.c (convert_arguments): Print declaration location.
9165         * c-common.c (validate_nargs): Rename as
9166         builtin_function_validate_nargs.
9167         (check_builtin_function_arguments): Update.
9168
9169 2010-02-22  Richard Guenther  <rguenther@suse.de>
9170
9171         PR lto/43045
9172         * tree-inline.c (declare_return_variable): Use the type of
9173         the call stmt lhs if available.
9174
9175 2010-02-22  Duncan Sands  <baldrick@free.fr>
9176
9177         * passes.c (register_pass): Always consider all pass lists when
9178         ref_pass_instance_number is zero.
9179
9180 2010-02-22  Richard Guenther  <rguenther@suse.de>
9181
9182         PR tree-optimization/42749
9183         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
9184         parameter.  Do arithmetic in the original type.
9185         (update_accumulator_with_ops): Likewise.
9186         (adjust_accumulator_values): Adjust.
9187
9188 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9189
9190         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
9191         (QI to BLKmode splitter): New splitter.
9192
9193 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
9194
9195         * config/i386/i386.c (initial_ix86_tune_features): Turn on
9196         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
9197
9198 2010-02-22  Richard Guenther  <rguenther@suse.de>
9199
9200         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
9201
9202 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
9203
9204         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
9205         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
9206         ($(T)crti.o, $(T)crtn.o): Remove rules.
9207
9208 2010-02-21  Tobias Burnus  <burnus@net-b.de>
9209
9210         PR fortran/35259
9211         * doc/invoke.texi (-fassociative-math): Document that this
9212         option is automatically enabled for Fortran.
9213
9214 2010-02-20  David S. Miller  <davem@davemloft.net>
9215
9216         * configure.ac: Test if linker and assembler properly support
9217         GOTDATA_OP relocations.
9218         * configure: Rebuild.
9219         * config.in: Likewise.
9220         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
9221         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
9222         (movsi_high_pic): Likewise.
9223         (movdi_lo_sum_pic): Likewise.
9224         (movdi_high_pic): Likewise.
9225         (movsi_pic_gotdata_op): New pattern.
9226         (movdi_pic_gotdata_op): Likewise.
9227         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
9228         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
9229
9230 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
9231
9232         PR target/43067
9233         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
9234         attribute to ssemul.
9235         (xop_mulv2div2di3_high): Ditto.
9236
9237 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9238
9239         PR c++/35669
9240         * c.opt (Wconversion-null): New option.
9241         * doc/invoke.texi (Wconversion-null): Document.
9242
9243 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9244
9245         * common.opt (Wlarger-than-): Add Undocumented.
9246
9247 2010-02-19  Mike Stump  <mikestump@comcast.net>
9248
9249         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
9250
9251 2010-02-19  Jason Merrill  <jason@redhat.com>
9252
9253         PR target/40332
9254         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
9255         * configure: Likewise.
9256
9257 2010-02-20  Alan Modra  <amodra@gmail.com>
9258
9259         PR middle-end/42344
9260         * cgraph.h (cgraph_make_decl_local): Declare.
9261         * cgraph.c (cgraph_make_decl_local): New function.
9262         (cgraph_make_node_local): Use it.
9263         * cgraphunit.c (cgraph_function_versioning): Likewise.
9264         * ipa.c (function_and_variable_visibility): Likewise.
9265
9266 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9267
9268         PR bootstrap/43121
9269         * except.c (sjlj_emit_function_enter): Don't call
9270         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
9271         directly.
9272         * rtl.h (add_reg_br_prob_note): Remove prototype.
9273
9274 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9275
9276         PR 41779
9277         * c-common.c (conversion_warning): Remove widening conversions
9278         before checking the conversion of integers to reals.
9279
9280 2010-02-19  Mike Stump  <mikestump@comcast.net>
9281
9282         PR middle-end/43125
9283         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
9284
9285         PR objc/43061
9286         * cgraphunit.c (process_function_and_variable_attributes): Check
9287         DECL_PRESERVE_P instead of looking up attribute "used".
9288         * ipa-pure-const.c (check_decl): Likewise.
9289         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
9290         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
9291         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
9292         instead of attribute "used".
9293         * config/sol2-c.c (solaris_pragma_init): Likewise.
9294         (solaris_pragma_fini): Likewise.
9295
9296 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9297
9298         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
9299         Use XCNEW instead of xcalloc.
9300         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
9301         XNEW instead of xmalloc.
9302         (get_fields): Use XNEWVEC instead of xmalloc.
9303
9304         PR debug/43084
9305         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
9306         populate vars array.
9307         (create_new_general_access): For debug stmts just reset value.
9308         (get_stmt_accesses): For accesses within debug stmts just record them
9309         using add_access_to_acc_sites instead of preventing the peeling or
9310         counting them as accesses.
9311
9312         PR middle-end/42233
9313         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
9314
9315 2010-02-19  Richard Guenther  <rguenther@suse.de>
9316
9317         PR tree-optimization/42916
9318         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
9319         instructions.
9320
9321 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
9322
9323         * configure.ac: Replace all uses of changequote in macro arguments
9324         with proper quoting.
9325
9326 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9327
9328         PR middle-end/42233
9329         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
9330
9331 2010-02-19  Richard Guenther  <rguenther@suse.de>
9332
9333         PR tree-optimization/42944
9334         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
9335         test for aliasing with errno.
9336
9337 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
9338
9339         PR middle-end/42233
9340         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
9341         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
9342         * dojump.c: Include output.h.
9343         (inv): New inline function.
9344         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
9345         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
9346         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
9347         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
9348         argument, pass it down to other calls.
9349         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
9350         add REG_BR_PROB note to the conditional jump.
9351         * cfgexpand.c (add_reg_br_prob_note): Removed.
9352         (expand_gimple_cond): Don't call it, add the probability
9353         as last argument to jumpif_1/jumpifnot_1.
9354         * Makefile.in (dojump.o): Depend on output.h.
9355         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
9356         callers.
9357         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
9358         * stmt.c (do_jump_if_equal): Likewise.
9359         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
9360         * loop-unswitch.c (compare_and_jump_seq): Likewise.
9361         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
9362         Likewise.
9363         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
9364         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
9365         jumpifnot_1 callers.
9366         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
9367         callers.
9368         (store_expr): Adjust jumpifnot caller.
9369         (store_constructor): Adjust jumpif caller.
9370
9371         PR middle-end/42233
9372         * gimplify.c (gimple_boolify): For __builtin_expect call
9373         gimple_boolify also on its first argument.
9374
9375 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
9376
9377         * configure.ac (gnu-unique-object): Wrap regexps using [] in
9378         changequote block.
9379         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
9380         * configure: Regenerated.
9381
9382 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9383
9384         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
9385         lang_hooks.types_compatible_p instead of comptypes.
9386
9387 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
9388
9389         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
9390         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
9391         if __prefer_thumb__ is defined.
9392
9393 2010-02-18  Martin Jambor  <mjambor@suse.cz>
9394
9395         PR tree-optimization/43066
9396         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
9397         array with zero-sized element type.
9398
9399 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
9400
9401         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
9402         rtx, allocate struct var_loc_node here and return it to the
9403         caller, and only if it is actually needed.
9404         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
9405         move it earlier and return immediately if it returns NULL.
9406
9407 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
9408
9409         * config/sparc/gas.h: New file.  Restore
9410         TARGET_ASM_NAMED_SECTION to its ELF default.
9411         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
9412         check !HAVE_GNU_AS.
9413         * config/sparc/sparc.c (sparc_elf_asm_named_section):
9414         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
9415         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
9416         after sparc/sysv4.h.
9417
9418 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
9419
9420         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
9421
9422 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
9423
9424         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
9425         patterns from predicated pattern.
9426
9427 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
9428
9429         PR target/43103
9430         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
9431         for insn mnemonic suffix.
9432
9433 2010-02-17  Richard Guenther  <rguenther@suse.de>
9434
9435         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
9436         to loop PHI nodes.
9437
9438 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
9439
9440         PR debug/42918
9441         * caller-save.c (save_call_clobbered_regs): If BB ends with
9442         a DEBUG_INSN, move any notes in between last real insn and the last
9443         DEBUG_INSN after the last DEBUG_INSN.
9444
9445 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
9446
9447         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
9448         Fix return type.  Fix argument type.  Explain meaning of return value.
9449
9450 2010-02-16  Richard Guenther  <rguenther@suse.de>
9451
9452         PR tree-optimization/41043
9453         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
9454         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
9455         statements ...
9456         (vrp_visit_phi_node): ... but only for loop PHI nodes.
9457
9458 2010-02-16  Ira Rosen  <irar@il.ibm.com>
9459
9460         PR tree-optimization/43074
9461         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
9462         * tree-vect-loop.c (vect_analyze_loop_operations): Add
9463         vectorizable cycles in hybrid SLP check.
9464         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
9465
9466 2010-02-16  Richard Guenther  <rguenther@suse.de>
9467
9468         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
9469         (true_dependence): If memrefs_conflict_p computes must-alias
9470         trust it.  Move TBAA check after offset-based disambiguation.
9471         (canon_true_dependence): Likewise.
9472
9473 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
9474
9475         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
9476         * doc/invoke.texi: Document it.
9477         * var-tracking.c: Include toplev.h and params.h.
9478         (vt_find_locations): Return bool indicating success.  Compute
9479         hash sizes unconditionally.  Check new parameter, report.
9480         (variable_tracking_main_1): Check vt_find_locations results and
9481         retry.  Renamed from...
9482         (variable_tracking_main): ... this.  New wrapper to preserve
9483         flag_var_tracking_assignments.
9484         * Makefile.in (var-tracking.o): Adjust dependencies.
9485
9486 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
9487             Jakub Jelinek <jakub@redhat.com>
9488
9489         PR target/42854
9490         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
9491         if weak_import attribute is present.
9492         * config/darwin.c (machopic_select_section): Likewise.
9493
9494 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
9495
9496         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
9497         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
9498         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
9499         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
9500
9501         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
9502         types.
9503
9504         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
9505         Fix argument types.
9506
9507         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
9508         Rewrite text to refer to the names.
9509
9510 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
9511
9512         * config/i386/i386-builtin-types.def
9513         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
9514         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
9515         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
9516         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
9517         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
9518         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
9519         IX86_BUILTIN_VPERMIL2PS256.
9520         (MULTI_ARG_4_DF2_DI_I): Defined.
9521         (MULTI_ARG_4_DF2_DI_I1): Defined.
9522         (MULTI_ARG_4_SF2_SI_I): Defined.
9523         (MULTI_ARG_4_SF2_SI_I1): Defined.
9524         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
9525         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
9526         __builtin_ia32_vpermil2ps256.
9527         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9528         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9529         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
9530         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9531         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9532         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
9533         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
9534         CODE_FOR_xop_vpermil2v8sf3.
9535         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
9536         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
9537         * config/i386/xopintrin.h (_mm_permute2_pd): New.
9538         (_mm256_permute2_pd): New.
9539         (_mm_permute2_ps): New.
9540         (_mm256_permute2_ps): New.
9541
9542 2010-02-15  Nick Clifton  <nickc@redhat.com>
9543
9544         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
9545         boolean parameters.  Use emit_jump_insn when emitting a pop
9546         instruction containing a return insn.
9547         (push): Use 'true' rather than '1' as second parameter to F.
9548         (h8300_expand_prologue): Likewise.
9549         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
9550         (h8300_expand_epilogue): Likewise.
9551
9552 2010-02-15  Richard Guenther  <rguenther@suse.de>
9553
9554         PR middle-end/43068
9555         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
9556         if that is zero.
9557
9558 2010-02-15  Nick Clifton  <nickc@redhat.com>
9559
9560         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
9561         delta.
9562
9563 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
9564
9565         * intl.c (fake_ngettext): New function.
9566         * intl.h (fake_ngettext): Declare.
9567         (ngettext): Define macro.
9568         * collect2.c (notice_translated): New function.
9569         (main): Use notice_translated and ngettext.
9570         * collect2.h (notice_translated): Declare.
9571
9572 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
9573
9574         * reorg.c (delete_computation): Comment fixes.
9575         * caller-save.c (setup_save_areas): Idem.
9576         * sel-sched-dump.c (dump_lv_set): Idem.
9577         * rtl.def: Idem.
9578
9579 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9580
9581         * config/s390/s390.c (s390_sched_init): New function.
9582         (TARGET_SCHED_INIT): Target hook defined.
9583
9584 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
9585             Jack Howarth  <howarth@bromo.med.uc.edu>
9586             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
9587
9588         PR target/42982
9589         Partial revert of unintended change in fix for PR41605.
9590         * config/darwin.h: Fix typo.
9591         * config/darwin9.h: Same.
9592
9593 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
9594
9595         * c-pch.c (pch_init): Clear v.
9596
9597 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9598
9599         PR middle-end/42930
9600         * graphite-scop-detection.c (graphite_can_represent_scev): Call
9601         graphite_can_represent_init for MULT_EXPR.
9602
9603 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9604
9605         PR middle-end/42914
9606         PR middle-end/42530
9607         * graphite-sese-to-poly.c (remove_phi): New.
9608         (translate_scalar_reduction_to_array): Call remove_phi.
9609
9610 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9611
9612         PR middle-end/42771
9613         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
9614         * graphite-clast-to-gimple.h (gloog): Update declaration.
9615         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
9616         * graphite-poly.h (struct poly_bb): Add missing comments.
9617         (struct scop): Add poly_scop_p field.
9618         (POLY_SCOP_P): New.
9619         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
9620         * graphite.c (graphite_transform_loops): Build the polyhedral
9621         representation for each scop before code generation.
9622         * sese.c (rename_variables_in_operand): Removed.
9623         (rename_variables_in_expr): Return the renamed expression.
9624         (rename_sese_parameters): New.
9625         * sese.h (rename_sese_parameters): Declared.
9626
9627 2010-02-11  Richard Guenther  <rguenther@suse.de>
9628
9629         PR tree-optimization/42998
9630         * tree-ssa-pre.c (create_expression_by_pieces): Treat
9631         POINTER_PLUS_EXPR properly.
9632
9633 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9634             Changpeng Fang  <changpeng.fang@amd.com>
9635
9636         PR middle-end/40886
9637         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
9638         the cost of an IV candidate when the IV is used in a test against zero.
9639
9640         * gcc.dg/tree-ssa/ivopts-3.c: New.
9641
9642 2010-02-11  Richard Guenther  <rguenther@suse.de>
9643
9644         PR lto/41664
9645         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
9646         pointer-vs-decl case by swapping refs.  Handle some cases
9647         of pointer-vs-decl disambiguations more conservatively.
9648         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
9649         to false after expanding.
9650
9651 2010-02-11  Richard Guenther  <rguenther@suse.de>
9652
9653         PR driver/43021
9654         * gcc.c (process_command): Handle LTO file@offset case more
9655         appropriately.
9656
9657 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
9658
9659         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
9660         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
9661         of DEBUG_INSNs.
9662         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
9663
9664         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
9665         if MEM's mode size isn't DWARF2_ADDR_SIZE.
9666         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
9667         Optimize eq/ne comparisons when both arguments are known to be
9668         zero-extended.
9669         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
9670         Don't mask operands unnecessarily if they are known to be already
9671         zero-extended.
9672
9673 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
9674
9675         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
9676         instead of loop.
9677
9678 2010-02-10  Richard Guenther  <rguenther@suse.de>
9679
9680         PR tree-optimization/43017
9681         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
9682         for wrapping signed arithmetic.
9683
9684 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
9685
9686         PR debug/43010
9687         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
9688         if no debug info should be emitted for it.
9689
9690 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
9691
9692         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
9693         note when flag_exceptions is set.
9694
9695 2010-02-10  Duncan Sands  <baldrick@free.fr>
9696
9697         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
9698
9699 2010-02-10  Richard Guenther  <rguenther@suse.de>
9700
9701         PR c/43007
9702         * tree.c (get_unwidened): Handle constants.
9703         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
9704
9705 2010-02-10  Martin Jambor  <mjambor@suse.cz>
9706
9707         PR lto/42985
9708         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
9709         check for variable argument counts independently.
9710
9711 2010-02-10  Christian Bruel  <christian.bruel@st.com>
9712
9713         PR target/42841
9714         * config/sh/sh.c (find_barrier): Increase length for non delayed
9715         conditional branches.
9716
9717 2010-02-10  Christian Bruel  <christian.bruel@st.com>
9718
9719         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
9720
9721 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
9722
9723         * builtins.c (set_builtin_user_assembler_name): Also handle
9724         ffs if int is smaller than word.
9725
9726 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
9727
9728         PR middle-end/42973
9729         * ira-conflicts.c (get_dup): Remove.
9730         (process_reg_shuffles): Add new parameter.  Use it as an
9731         additional guard for copy generation.
9732         (add_insn_allocno_copies): Rewrite.
9733
9734 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
9735
9736         * common.opt (fsched2-use-traces): Preserved for backward
9737         compatibility.
9738         * doc/invoke.texi: Remove the documentation about option
9739         -fsched2-use-traces.
9740         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
9741         flag_sched2_use_traces.
9742         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
9743         the backward compatibility flag section.
9744
9745 2010-02-09  Richard Guenther  <rguenther@suse.de>
9746
9747         PR tree-optimization/43008
9748         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
9749         make HEAP variables initialized from global memory if they
9750         are not known builtin functions.
9751         (find_func_aliases): Adjust.
9752
9753 2010-02-09  Richard Guenther  <rguenther@suse.de>
9754
9755         PR tree-optimization/43000
9756         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
9757         arithmetic manually.
9758
9759 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
9760
9761         PR tree-optimization/42931
9762         * tree-loop-linear.c (try_interchange_loops): Don't call
9763         double_int_mul if estimated_loop_iterations failed.
9764
9765 2010-02-08  Martin Jambor  <mjambor@suse.cz>
9766
9767         PR middle-end/42898
9768         * tree-sra.c (build_accesses_from_assign): Do not mark in
9769         should_scalarize_away_bitmap if stmt has volatile ops.
9770         (sra_modify_assign): Do not process assigns piecemeal if if stmt
9771         has volatile ops.
9772
9773 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
9774
9775         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
9776
9777 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
9778
9779         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
9780         before the pattern.
9781
9782 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
9783
9784         PR middle-end/42946
9785         * df-core.c (df_finish_pass): Change type of saved_flags to int.
9786
9787 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
9788
9789         PR middle-end/42988
9790         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
9791         to unknown_dependence.
9792         (graphite_legal_transform_dr): Handle the unknown_dependence.
9793         (graphite_carried_dependence_level_k): Same.
9794
9795 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
9796
9797         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
9798
9799 2010-02-07  Richard Guenther  <rguenther@suse.de>
9800
9801         PR middle-end/42991
9802         * expr.c (get_inner_reference): Always initialize *pbitsize.
9803
9804 2010-02-07  Richard Guenther  <rguenther@suse.de>
9805
9806         PR middle-end/42956
9807         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
9808         new ARRAY_REFs on variable size element or minimal index arrays.
9809         Complete.
9810         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
9811         gimple_fold_indirect_ref.
9812
9813 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
9814
9815         PR target/42957
9816         * arm.c (arm_override_options): Just return if the user has specified
9817         an invalid fpu name.
9818
9819 2010-02-03  Jason Merrill  <jason@redhat.com>
9820
9821         PR c++/42870
9822         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
9823         i386_pe_maybe_record_exported_symbol.
9824
9825 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
9826
9827         PR target/42924
9828         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
9829         (pa_delegitimize_address): New function.
9830
9831 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
9832
9833         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
9834         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
9835
9836 2010-02-05  Richard Guenther  <rguenther@suse.de>
9837
9838         PR lto/42762
9839         * lto-streamer-in.c (get_resolution): Deal with references
9840         to undefined functions.
9841
9842 2010-02-05  Richard Guenther  <rguenther@suse.de>
9843
9844         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
9845         (fold_const_aggregate_ref): Likewise.
9846         (ccp_fold_stmt): Substitute loads.
9847         (maybe_fold_reference): Verify types before substituting.
9848         Unshare properly.
9849         (fold_gimple_assign): Unshare properly.
9850         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
9851
9852 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
9853
9854         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
9855         for rs6000_gen_cell_microcode.
9856
9857 2010-02-04  Richard Guenther  <rguenther@suse.de>
9858
9859         PR rtl-optimization/42952
9860         * dse.c (const_or_frame_p): Remove MEM handling.
9861
9862 2010-02-04  Nick Clifton  <nickc@redhat.com>
9863
9864         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
9865         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
9866         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
9867         (mn10300_asm_output_mi_thunk): New function.
9868         (mn10300_can_output_mu_thunk): New function.
9869         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
9870         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
9871         (FUNCTION_ARG): Delete incorrect comment.
9872
9873 2010-02-03  Jason Merrill  <jason@redhat.com>
9874
9875         PR c++/40138
9876         * fold-const.c (operand_equal_p): Handle erroneous types.
9877
9878 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
9879
9880         * config/h8300/h8300.md (can_delay): Fix attibute condition.
9881
9882 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
9883
9884         PR rtl-optimization/42941
9885         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
9886         of xmalloc.
9887
9888 2010-02-03  Jason Merrill  <jason@redhat.com>
9889
9890         PR c++/35652
9891         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
9892
9893 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
9894
9895         PR debug/42896
9896         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
9897         (cselib_reset_table): Renamed from...
9898         (cselib_reset_table_with_next_value): ... this.
9899         (cselib_get_next_uid): Renamed from...
9900         (cselib_get_next_unknown_value): ... this.
9901         * cselib.c (next_uid): Renamed from...
9902         (next_unknown_value): ... this.
9903         (cselib_clear_table): Adjust.
9904         (cselib_reset_table): Adjust.  Renamed from...
9905         (cselib_reset_table_with_next_value): ... this.
9906         (cselib_get_next_uid): Adjust.  Renamed from...
9907         (cselib_get_next_unknown_value): ... this.
9908         (get_value_hash): Use hash.
9909         (cselib_hash_rtx): Likewise.
9910         (new_cselib_val): Adjust.  Set and dump uid.
9911         (cselib_lookup_mem): Pass next_uid as hash.
9912         (cselib_subst_to_values): Likewise.
9913         (cselib_log_lookup): Dump uid.
9914         (cselib_lookup): Pass next_uid as hash.  Adjust.
9915         (cselib_process_insn): Adjust.
9916         (cselib_init): Initialize next_uid.
9917         (cselib_finish): Adjust.
9918         (dump_cselib_table): Likewise.
9919         * dse.c (canon_address): Dump value uid.
9920         * print-rtl.c (print_rtx): Print value uid.
9921         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
9922         (dvuid): New type.
9923         (dv_uid): New function, sort of renamed from...
9924         (dv_htab_hash): ... this, reimplemented in terms of it and...
9925         (dv_uid2hash): ... this.  New.
9926         (variable_htab_eq): Drop excess assertions.
9927         (tie_break_pointers): Removed.
9928         (canon_value_cmp): Compare uids.
9929         (variable_post_merge_New_vals): Print uids.
9930         (vt_add_function_parameters): Adjust.
9931         (vt_initialize): Reset table.  Adjust.
9932
9933 2010-02-03  Richard Guenther  <rguenther@suse.de>
9934
9935         PR tree-optimization/42944
9936         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
9937         (call_may_clobber_ref_p_1): Likewise.  Properly handle
9938         malloc and calloc clobbering errno.
9939
9940 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
9941
9942         * doc/invoke.texi: Fix name of sched1 dump.
9943
9944         * opts.c (decode_options): Set flag_tree_switch_conversion
9945         only conditionally on optimize >= 2.
9946
9947         * gcse.c: Assorted comment fixes in pass description.
9948
9949 2010-02-03  Anthony Green  <green@moxielogic.com>
9950
9951         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
9952         nop padding in order to maintain alignment of storage location of
9953         target function address.
9954         (moxie_trampoline_init): Store target function address at newly
9955         aligned location.
9956         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
9957         to 32.
9958         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
9959
9960 2010-02-03  Richard Guenther  <rguenther@suse.de>
9961
9962         PR middle-end/42927
9963         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
9964
9965 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9966
9967         * config.gcc: Reenable check for obsolete targets.
9968         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
9969         mips-sgi-irix6.[0-4]*.
9970
9971 2010-02-02  Nick Clifton  <nickc@redhat.com>
9972
9973         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
9974         constant size of 4 as being the same as 0.
9975         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
9976         can take values in the range 0..4.
9977
9978 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
9979
9980         PR java/41991
9981         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
9982         as _darwin10_Unwind_FindEnclosingFunction().
9983         * libgcc-libsystem.ver: New.
9984
9985 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
9986
9987         PR target/41399
9988         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
9989         implicitly set registers.
9990
9991 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
9992
9993         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
9994         (arm_override_options): Allow automatic selection of the thread
9995         pointer register if thumb2.
9996         (legitimize_pic_address): Improve code sequences for Thumb2.
9997         (arm_call_tls_get_addr): Likewise.
9998         (legitimize_tls_address): Likewise.
9999         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
10000         (pic_load_addr_32bit): ... this.  New named pattern.
10001         * thumb2.md (pic_load_addr_thumb2): Delete.
10002         (pic_load_dot_plus_four): Delete.
10003         (tls_load_dot_plus_four): New named pattern.
10004
10005 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10006
10007         PR libgomp/29986
10008         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
10009         Document fix for TLS bug.
10010
10011 2010-01-31  Richard Guenther  <rguenther@suse.de>
10012
10013         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
10014         conservatively correct.
10015
10016 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10017
10018         PR target/42850
10019         Revert:
10020         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10021
10022         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
10023
10024 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10025
10026         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
10027
10028 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
10029
10030         * config.gcc: Adjust order of makefile fragments for mingw targets.
10031
10032 2010-01-31  Richard Guenther  <rguenther@suse.de>
10033
10034         PR middle-end/42898
10035         * gimplify.c (gimplify_init_constructor): For volatile LHS
10036         initialize a temporary.
10037
10038 2010-01-31  Matthias Klose  <doko@ubuntu.com>
10039
10040         * configure.ac: Fix __stack_chk_fail check for cross builds configured
10041         --with-headers
10042         * configure: Regenerate.
10043
10044 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
10045
10046         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
10047         the same alias set and their sizes different constantness.
10048         (aliasing_component_refs_p): Revert 2009-10-24 change.
10049
10050 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10051
10052         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
10053         unused.
10054
10055 2010-01-29  Richard Guenther  <rguenther@suse.de>
10056
10057         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
10058         Assert we successfully updated the call.
10059
10060 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
10061
10062         PR rtl-optimization/42889
10063         * df.h (df_set_bb_dirty_nonlr): New prototype.
10064         * df-core.c (df_set_bb_dirty_nonlr): New function.
10065         * df-scan.c (df_insn_rescan): Call it instead of
10066         df_set_bb_dirty for DEBUG_INSNs.
10067
10068 2010-01-29  Richard Guenther  <rguenther@suse.de>
10069
10070         PR middle-end/37448
10071         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
10072         quadratic behavior in most cases.
10073
10074 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
10075
10076         PR target/42891
10077         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
10078         in the call to gen_x86_movsicc_0_m1.
10079
10080 2010-01-28  Richard Guenther  <rguenther@suse.de>
10081
10082         PR tree-optimization/42871
10083         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
10084
10085 2010-01-28  Richard Guenther  <rguenther@suse.de>
10086
10087         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
10088         into call arguments.
10089
10090 2010-01-28  Richard Guenther  <rguenther@suse.de>
10091
10092         PR middle-end/42883
10093         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
10094         the forwarder if the destination is an EH landing pad.
10095
10096 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
10097
10098         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
10099         block list passed to gimple_duplicate_sese_tail.
10100         (parallelize_loops): Avoid parallelization when the function
10101         has_nonlocal_label.
10102         Avoid parallelization when the preheader is IRREDUCIBLE.
10103         Try to optimize when estimated_loop_iterations_int is unresolved.
10104         Add the loop's location to the dump file.
10105         * tree-cfg.c (add_phi_args_after_redirect): Remove.
10106         (gimple_duplicate_sese_tail): Remove the check for the latch.
10107         Redirect nexits to the exit block.
10108         Remove handling of the incoming edges to the latch.
10109         Redirect the backedge from the copied latch to the exit bb.
10110
10111 2010-01-28  Michael Matz  <matz@suse.de>
10112
10113         PR target/42881
10114         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
10115         Wrap force_reg into a sequence, emit it before user.
10116
10117 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
10118
10119         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
10120         (arm_rev): New.
10121         (arm_legacy_rev): Likewise.
10122         (thumb_legacy_rev): Likewise.
10123
10124 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
10125
10126         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
10127         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
10128         on MEM's address failed, try avoid_constant_pool_reference and
10129         recurse if it returned something different.
10130         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
10131         address, try avoid_constant_pool_reference and recurse if it
10132         returned something different.
10133         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
10134         address and avoid_constant_pool_reference returned something
10135         different, don't set have_address.
10136
10137 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
10138
10139         PR debug/42861
10140         * var-tracking.c (val_store): Add modified argument, obey it.
10141         Adjust callers.
10142         (count_uses): Move down logging of main.
10143         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
10144         don't need resolution.
10145         (emit_notes_in_bb): Likewise.
10146
10147 2010-01-27  Richard Guenther  <rguenther@suse.de>
10148
10149         PR middle-end/42878
10150         * tree-inline.c (remap_decl): Delay remapping of SSA name
10151         default definitions until we need them.
10152
10153 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
10154
10155         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
10156         (rs6000_delegitimize_address): New function.
10157
10158         * config/s390/s390.c (s390_delegitimize_address): Call
10159         delegitimize_mem_from_attrs.
10160
10161         PR middle-end/42874
10162         * tree-inline.c (cannot_copy_type_1): Removed.
10163         (copy_forbidden): Don't forbid copying of functions containing
10164         records/unions with variable length fields.
10165
10166 2010-01-27  Christian Bruel  <christian.bruel@st.com>
10167
10168         Revert:
10169         PR target/42841
10170         * config/sh/sh.c (find_barrier): Increase length for non delayed
10171         conditional branches.
10172
10173 2010-01-27  Matthias Klose  <doko@ubuntu.com>
10174
10175         * configure.ac (gnu-unique-object): Fix ldd version check.
10176         * configure: Regenerate.
10177
10178 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10179
10180         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
10181         HAVE_GNU_AS value.
10182         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
10183         Test for HAVE_GNU_AS value.
10184
10185 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10186
10187         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
10188         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
10189         INT64_TYPE): Define.
10190         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
10191         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10192         INT_LEAST64_TYPE): Define.
10193         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
10194         UINT_LEAST64_TYPE): Define.
10195         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
10196         INT_FAST64_TYPE): Define.
10197         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10198         UINT_FAST64_TYPE): Define.
10199         (INTMAX_TYPE, UINTMAX_TYPE): Define.
10200         (INTPTR_TYPE, UINTPTR_TYPE): Define.
10201         (SIG_ATOMIC_TYPE): Define.
10202
10203 2010-01-26  Richard Guenther  <rguenther@suse.de>
10204
10205         * df-scan.c (df_scan_set_bb_info): Remove assert.
10206         (df_insn_rescan_debug_internal): Merge asserts.
10207         (df_install_ref): Likewise.
10208         (df_mark_reg): Use bitmap_set_range.
10209         (df_hard_reg_used_p): Remove assert.
10210         (df_hard_reg_used_count): Likewise.
10211
10212 2010-01-26  Richard Guenther  <rguenther@suse.de>
10213
10214         PR rtl-optimization/42685
10215         * web.c (web_main): Ignore DEBUG_INSNs.
10216
10217 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
10218
10219         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
10220
10221         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
10222         Fix types of fndecl and arglist parameters.
10223
10224 2010-01-26  Richard Guenther  <rguenther@suse.de>
10225
10226         PR middle-end/42806
10227         * tree-eh.c (unsplit_eh): Skip debug insns.
10228
10229 2010-01-26  Richard Guenther  <rguenther@suse.de>
10230
10231         PR tree-optimization/42250
10232         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
10233
10234 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
10235
10236         PR fortran/42866
10237         * omp-low.c (expand_omp_sections): Only use single_pred if
10238         l2_bb is single_pred_p.
10239
10240 2010-01-25  Christian Bruel  <christian.bruel@st.com>
10241
10242         PR target/42841
10243         * config/sh/sh.c (find_barrier): Increase length for non delayed
10244         conditional branches.
10245         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
10246
10247 2010-01-24  David S. Miller  <davem@davemloft.net>
10248
10249         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
10250         define if not using GAS.
10251         * config/sparc/sparc.c (sparc_elf_asm_named_section):
10252         Likewise.  Delete SECTION_MERGE code, which is only applicable
10253         when using GAS.
10254
10255 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
10256
10257         PR c++/42748
10258         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
10259         mangling of va_list in system headers.
10260
10261 2010-01-23  Toon Moene  <toon@moene.org>
10262
10263         * tree-predcom.c (combine_chains): Return NULL, not false.
10264
10265 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
10266
10267         * tree-loop-distribution.c (distribute_loop): Fix declaration and
10268         initialization of variable res to agree with return type.
10269
10270 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
10271
10272         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
10273         * tree-sra.c: Add include of expr.h.
10274
10275 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
10276
10277         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
10278         insert the debug stmt on the single non-EH edge from the stmt.
10279
10280 2010-01-22  Richard Henderson  <rth@redhat.com>
10281
10282         PR tree-opt/42833
10283         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
10284         the RHS until after generate_subtree_copies has insertted its
10285         code before the current statement.
10286
10287 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
10288
10289         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
10290
10291         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
10292
10293 2010-01-21  Martin Jambor  <mjambor@suse.cz>
10294
10295         PR tree-optimization/42585
10296         * tree-sra.c (struct access): New field grp_total_scalarization.
10297         (dump_access): Dump the new field.
10298         (should_scalarize_away_bitmap): New variable.
10299         (cannot_scalarize_away_bitmap): Likewise.
10300         (sra_initialize): Allocate new bitmaps.
10301         (sra_deinitialize): Free new bitmaps.
10302         (create_access_1): New function.
10303         (create_access): Parts moved to create_access_1.
10304         (type_consists_of_records_p): New function.
10305         (completely_scalarize_record): Likewise.
10306         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
10307         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
10308         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
10309         access.
10310         (analyze_all_variable_accesses): Completely scalarize small eligible
10311         records.
10312
10313 2010-01-21  Martin Jambor  <mjambor@suse.cz>
10314
10315         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
10316
10317 2010-01-21  Andrew Haley  <aph@redhat.com>
10318
10319         * gcc.c (process_command): Move lang_specific_driver before
10320         setting cc_libexec_prefix.
10321
10322 2010-01-21  Richard Guenther  <rguenther@suse.de>
10323
10324         PR middle-end/19988
10325         * fold-const.c (negate_expr_p): Pretend only negative
10326         real constants are easily negatable.
10327
10328 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
10329             Jason Merrill  <jason@redhat.com>
10330
10331         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
10332         (TYPE_TRANSPARENT_AGGR): this, for union and record.
10333         * calls.c (initialize argument_information): Handle it.
10334         * c-common.c (handle_transparent_union_attribute): Use new name.
10335         * c-decl.c (finish_struct): Ditto.
10336         * c-typeck.c (type_lists_compatible_p): Ditto.
10337         (convert_for_assignment): Use new name and also handle record.
10338         * function.c (aggregate_value_p): Handle it.
10339         (pass_by_reference): Ditto.
10340         (assign_parm_data_types): Ditto.
10341         * print-tree.c (print_node): Ditto.
10342         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
10343         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
10344         * tree.c (first_field): New fn.
10345
10346 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
10347
10348         PR target/42818
10349         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
10350         even when linking statically, for now.
10351
10352 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
10353
10354         PR debug/42715
10355         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
10356         without a cselib val.
10357         (count_uses): Accept MO_VAL_SET with no val on stores.
10358         (add_stores): Likewise.
10359
10360 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10361
10362         * var-tracking.c (check_value_val): Add a compile time assertion.
10363         (dv_is_decl_p): Simplify.
10364         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
10365         gcc_assert if ENABLE_CHECKING.
10366
10367 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
10368
10369         PR debug/42782
10370         * var-tracking.c: Include tree-flow.h.
10371         (mem_dies_at_call): New.
10372         (dataflow_set_preserve_mem_locs): Use it.
10373         (dataflow_set_remove_mem_locs): Likewise.
10374         (dump_var): Renamed from dump_variable.  Adjust all callers.
10375         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
10376         * Makefile.in (var-tracking.o): Adjust deps.
10377
10378 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
10379
10380         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
10381
10382 2010-01-20  Richard Guenther  <rguenther@suse.de>
10383
10384         PR tree-optimization/42717
10385         * tree-ssa-dce.c (get_live_post_dom): Remove.
10386         (forward_edge_to_pdom): Take an arbitrary edge to copy
10387         degenerate PHI args from.
10388         (remove_dead_stmt): Use the first post-dominator even if it
10389         does not contain live statements as redirection destination.
10390
10391 2010-01-20  Richard Guenther  <rguenther@suse.de>
10392
10393         * tree-inline.c (estimate_num_insns): Handle EH builtins.
10394
10395 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10396
10397         * sel-sched.c (create_speculation_check): Remove set but not used
10398         variable twin.
10399         (try_transformation_cache): Remove set but not used variable ds.
10400         (calculate_privileged_insns): Remove set but not used variables
10401         cur_insn and min_spec_insn.
10402         (find_best_expr): Remove set but not used variable avail_n.
10403         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
10404         variable e.
10405         * cgraphunit.c (assemble_thunk): Remove set but not used variable
10406         false_label.
10407         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
10408         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
10409         new_scop_exit_edge.
10410
10411 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
10412
10413         PR bootstrap/42786
10414         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
10415         cpu types.  Add support for *-sse3 cpu types.
10416         (x86_64-*-*): Ditto.
10417
10418 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10419
10420         PR middle-end/42803
10421         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
10422         argument, call initializer_constant_valid_p_1 instead of
10423         initializer_constant_valid_p, pass CACHE to it, return NULL
10424         immediately if first call returns NULL.
10425         (initializer_constant_valid_p_1): New function.
10426         (initializer_constant_valid_p): Use it.
10427
10428 2010-01-20  Thomas Quinot  <quinot@adacore.com>
10429
10430         * tree.def (PLACEHOLDER_EXPR): Fix comment.
10431
10432 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10433
10434         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
10435         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
10436         (loc_list_from_tree): Don't handle unsigned division.  Handle
10437         signed modulo using DW_OP_{over,over,div,mul,minus}.
10438         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
10439         modulo instead of signed.
10440
10441 2010-01-20  DJ Delorie  <dj@redhat.com>
10442
10443         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
10444         (Fpa): Pass it
10445         (h8300_emit_stack_adjustment): Propogate it.
10446         (push): Pass it.
10447         (h8300_expand_prologue): Likewise.
10448         (h8300_expand_epilogue): Likewise.
10449
10450 2010-01-19  Michael Matz  <matz@suse.de>
10451
10452         PR tree-optimization/41783
10453         * tree-data-ref.c (toplevel): Include flags.h.
10454         (dump_data_dependence_relation):  Also dump the inputs if the
10455         result will be unknown.
10456         (split_constant_offset_1): Look through some conversions.
10457         * tree-predcom.c (determine_roots_comp): Restart a new chain if
10458         the offset from last element is too large.
10459         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
10460         (reassociate_to_the_same_stmt): Handle vector registers.
10461         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
10462         (e.g. conversions).
10463         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
10464         wide_prolog_niters argument, emit widening instructions.
10465         (vect_do_peeling_for_alignment): Adjust caller, use widened
10466         variant of the iteration cound.
10467         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
10468
10469 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10470
10471         PR target/38697
10472         * config/arm/neon-testgen.m (emit_automatics): New parameter
10473         features. Adjust for Fixed_return_reg feature.
10474         (test_intrinsic): Call emit_automatics with new feature.
10475         * config/arm/neon.ml: Update copyright years.
10476         (features): New Fixed_return_reg feature.
10477         (ops): Update feature for Vget_low.
10478
10479 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
10480
10481         PR tree-optimization/42719
10482         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
10483         stmt uses.
10484
10485         PR debug/42728
10486         * fwprop.c (all_uses_available_at): Return false if def_set dest
10487         is a REG that is used in def_insn.
10488
10489 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
10490
10491         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
10492
10493         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
10494         Add argument names.
10495
10496         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
10497
10498         * target.h (struct gcc_target) <secondary_reload>: Change type
10499         of last argument to secondary_reload_info *.
10500
10501 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
10502
10503         PR target/42774
10504         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
10505         memory references with unaligned offsets.  Remove CQImode handling.
10506         (unaligned_memory_operand): Return 1 for memory references with
10507         unaligned offsets.  Remove CQImode handling.
10508
10509 2010-01-18  Richard Guenther  <rguenther@suse.de>
10510
10511         PR middle-end/39954
10512         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
10513         builtin calls.
10514
10515 2010-01-18  Richard Guenther  <rguenther@suse.de>
10516
10517         PR tree-optimization/42781
10518         * tree-ssa-structalias.c (find_what_var_points_to): Skip
10519         restrict processing only if the original variable was artificial.
10520
10521 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
10522
10523         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
10524         find number of popped argument bytes.
10525
10526         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
10527         Fix the text that describes the return value for invalid insns.
10528
10529         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
10530
10531         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
10532         Clarify what 'cost of the -dependence' is.  Fix quoting.
10533
10534         * toplev.c (default_get_pch_validity): Rename argument to "sz".
10535         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
10536
10537 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
10538
10539         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
10540         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
10541
10542 2010-01-17  Richard Guenther  <rguenther@suse.de>
10543
10544         PR middle-end/42248
10545         * function.c (split_complex_args): Take a VEC to modify.
10546         (assign_parms_augmented_arg_list): Build a VEC instead of
10547         a chain of PARM_DECLs.
10548         (assign_parms_unsplit_complex): Take a VEC of arguments.
10549         Do not fixup unmodified parms.
10550         (assign_parms): Deal with the VEC.
10551         (gimplify_parameters): Likewise.
10552
10553 2010-01-17  Richard Guenther  <rguenther@suse.de>
10554
10555         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
10556         node existence check.
10557         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
10558         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
10559         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
10560         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
10561         (gimple_execute_on_growing_pred): Likewise.
10562
10563 2010-01-17  Richard Guenther  <rguenther@suse.de>
10564
10565         PR tree-optimization/42773
10566         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
10567         (compute_antic_aux): Likewise.
10568         (compute_partial_antic_aux): Likewise.
10569
10570 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
10571
10572         PR debug/42767
10573         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
10574         and US_TRUNCATE.
10575
10576 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
10577
10578         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
10579         appearance.
10580
10581         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
10582         Fix markup for strict argument.
10583
10584         (TARGET_SCHED_REORDER2): Fix argument types.
10585
10586         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
10587         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
10588
10589         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
10590         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
10591
10592         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
10593         Add argument name.
10594
10595         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
10596         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
10597         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
10598         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
10599         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
10600
10601         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
10602
10603         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
10604
10605         (TARGET_ASM_RELOC_RW_MASK): Add return type.
10606         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
10607
10608         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
10609
10610         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
10611         Use prototype.
10612
10613         (TARGET_ASM_NAMED_SECTION): Fix argument list.
10614
10615         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
10616         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
10617
10618         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
10619
10620         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
10621
10622         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
10623         referring to it.  Fix language.
10624
10625         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
10626
10627         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
10628
10629         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
10630
10631         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
10632
10633         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
10634         '@var{stream}.  Remove stray 'and'.
10635
10636         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
10637
10638         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
10639
10640         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
10641
10642         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
10643         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
10644
10645         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
10646         Fix description of return value.
10647         Rename argument "sz" to "len."
10648
10649         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
10650         Clarify meaning of 'true' return value.
10651
10652         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
10653
10654         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
10655         rep_mode versus mode_rep.
10656
10657         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
10658
10659         (TARGET_BUILTIN_DECL): Fix name.
10660
10661         (TARGET_COMMUTATIVE_P): Fix type of first argument.
10662
10663         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
10664
10665         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
10666
10667         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
10668
10669         (TARGET_RELAXED_ORDERING): Use @deftypevr.
10670
10671         (TARGET_GET_DRAP_RTX): Note that this is a hook.
10672         Clarify language.
10673
10674         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
10675         Rename argument tm_fn to md_fn.
10676
10677         (TARGET_OPTION_PRINT): Fix argument list.
10678
10679 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
10680
10681         PR target/42664
10682         * config/i386/i386.c (ix86_fixup_binary_operands):
10683         Revert FMA4 fixup of operands.
10684
10685 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10686
10687         PR gcc/42525
10688         * Makefile.in (write_entries_to_file, install-plugin):
10689         Use \012 instead of \n with tr.
10690
10691 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
10692
10693         * configure.ac (HAVE_AS_REF): New C macro.
10694         * configure: Regenerate.
10695         * config.in: Likewise.
10696         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
10697         if HAVE_AS_REF.
10698         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
10699         if HAVE_AS_REF.
10700
10701 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
10702
10703         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
10704
10705         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
10706
10707         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
10708
10709         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
10710
10711         (TARGET_IN_SMALL_DATA_P): Fix argument type.
10712
10713         (TARGET_BINDS_LOCAL_P): Fix argument type.
10714
10715         (TARGET_ASM_FILE_END): Use prototype.
10716
10717         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
10718
10719         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
10720
10721         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
10722
10723         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
10724
10725         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
10726         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
10727
10728         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
10729         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
10730
10731         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
10732         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
10733         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
10734         (TARGET_ADDR_SPACE_CONVERT): Likewise.
10735
10736         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
10737
10738         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
10739
10740         (TARGET_INIT_BUILTINS): Use prototype.
10741
10742         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
10743         Put 'const char *' in braces.  Fix parameter types.
10744         (TARGET_INVALID_CONVERSION): Fix parameter types.
10745         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
10746         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
10747
10748         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
10749         Fix argument type.
10750
10751         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
10752
10753         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
10754
10755 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
10756
10757         * doc/tm.texi (TARGET_HELP): Fix return type.
10758
10759         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
10760         in braces.  Fix argument types.
10761
10762         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
10763
10764         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
10765
10766         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
10767
10768         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
10769         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
10770
10771         (TARGET_MANGLE_TYPE): Fix argument types.
10772
10773         (TARGET_IRA_COVER_CLASSES): Use prototype.
10774
10775         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
10776
10777         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
10778
10779         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
10780
10781         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
10782
10783         (TARGET_CALLEE_COPIES): Fix argument types.
10784
10785         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
10786
10787         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
10788
10789         (TARGET_FUNCTION_VALUE): Fix argument types.
10790
10791         (TARGET_RETURN_IN_MSB): Fix argument type.
10792
10793         (TARGET_RETURN_IN_MEMORY): Fix argument types.
10794
10795         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
10796
10797         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
10798
10799         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
10800         agree with return type.
10801
10802         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
10803
10804 2010-01-15  Jing Yu  <jingyu@google.com>
10805
10806         PR rtl-optimization/42691
10807         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
10808         a pseudo to a constant and are merged, and adjust comments.
10809
10810 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
10811
10812         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
10813
10814 2010-01-15  Richard Guenther  <rguenther@suse.de>
10815
10816         PR middle-end/42739
10817         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
10818         labels of computed or non-local gotos to the destination.
10819         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
10820         landing pad label is the first label.
10821
10822 2010-01-15  Richard Guenther  <rguenther@suse.de>
10823
10824         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
10825
10826 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
10827
10828         PR target/42747
10829         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
10830         to allow generation of the xssqrtdp instruction on power7.
10831         (sqrtdf2_fpr): Ditto.
10832
10833 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10834
10835         PR middle-end/42674
10836         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
10837         functions with noreturn attribute.
10838
10839         PR c++/42608
10840         * varasm.c (declare_weak): Add weak attribute to decl if it
10841         doesn't have one already.
10842         (assemble_external): Only add decls to weak_decls if they also
10843         have weak attribute.
10844
10845 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
10846
10847         * var-tracking.c (var_reg_delete): Don't delete the association
10848         between REGs and values or one-part variables if the register
10849         isn't clobbered.
10850
10851 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10852
10853         PR debug/42657
10854         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
10855         because its first operand is a non-localized variable.
10856
10857 2010-01-14  Martin Jambor  <mjambor@suse.cz>
10858
10859         PR tree-optimization/42706
10860         * tree-sra.c (encountered_recursive_call): New variable.
10861         (encountered_unchangable_recursive_call): Likewise.
10862         (sra_initialize): Initialize both new variables.
10863         (callsite_has_enough_arguments_p): New function.
10864         (scan_function): Call decl and flags check only for IPA-SRA, check
10865         whether there is a recursive call and whether it has enough arguments.
10866         (all_callers_have_enough_arguments_p): New function.
10867         (convert_callers): Look for recursive calls only when
10868         encountered_recursive_call is set.
10869         (ipa_early_sra): Bail out either if
10870         !all_callers_have_enough_arguments_p or
10871         encountered_unchangable_recursive_call.
10872
10873 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10874
10875         * sel-sched.c: Add 2010 to copyright years.
10876         * sel-sched-ir.c: Likewise.
10877         * sel-sched-ir.h: Likewise.
10878
10879 2010-01-14  Martin Jambor  <mjambor@suse.cz>
10880
10881         PR tree-optimization/42714
10882         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
10883         constructors specially.
10884
10885 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10886
10887         * config/i386/drivers-i386.c (detect_caches_intel):
10888         Add l2sizekb parameter and fill in.
10889         (host_detect_local_cpu): Add l2sizekb, fill in.
10890         Add Atom small cache heuristic.
10891
10892 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10893
10894         * config/i386/drivers-i386.c (detect_caches_cpuid4):
10895         Add level3 parameter and fill in.
10896         (detect_caches_intel): Handle level3 cache.
10897
10898 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10899
10900         * config/i386/drivers-i386.c (host_detect_local_cpu):
10901         Fix core duo detection.
10902
10903 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10904
10905         * config/i386/drivers-i386.c (host_detect_local_cpu):
10906         Fix Atom detection.
10907
10908 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10909
10910         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
10911         (rs6000_variable_issue_1): this.  Use...
10912         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
10913
10914 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10915
10916         * sel-sched-ir.c (sel_restore_other_notes): Rename to
10917         sel_restore_notes.  Update all callers.  Call reemit_notes
10918         for all insns.
10919
10920 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10921
10922         PR rtl-optimization/42246
10923         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
10924         loops.
10925
10926 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10927
10928         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
10929         all successors is the same as number of successors in current region.
10930
10931 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10932
10933         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
10934         to rename is not separable.  Otherwise check that its LHS is not NULL.
10935
10936 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10937
10938         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
10939
10940 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10941
10942         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
10943         available registers when failed to discover LHS register class.
10944         Fix indentation.  Update comment.
10945
10946 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10947             Alexander Monakov  <amonakov@ispras.ru>
10948
10949         PR rtl-optimization/42389
10950         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
10951         to can_issue_more.
10952         (advance_state_on_fence): Likewise.
10953         (sel_target_adjust_priority): Print debug output only when
10954         sched_verbose >= 4, not 2.
10955         (get_expr_cost): Do not issue all unique insns on the next cycle.
10956         (fill_insns): Initialize can_issue_more from the value saved
10957         with the fence.
10958         * sel-sched-ir.c (flist_add): New parameter issue_more.
10959         Init FENCE_ISSUE_MORE with it.
10960         (merge_fences): Likewise.
10961         (init_fences): Update call to flist_add.
10962         (add_to_fences, add_clean_fence_to_fences)
10963         (add_dirty_fence_to_fences): Likewise.
10964         (move_fence_to_fences): Update call to merge_fences.
10965         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
10966         sched groups.
10967         * sel-sched-ir.h (struct _fence): New field issue_more.
10968         (FENCE_ISSUE_MORE): New accessor macro.
10969
10970 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10971
10972         PR rtl-optimization/42388
10973         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
10974         that have no predecessors nor successors.  Do not call move_bb_info
10975         for empty blocks outside of current region.
10976
10977 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10978
10979         PR rtl-optimization/42294
10980         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
10981         * sel-sched.c (move_exprs_to_boundary): Transitively add all
10982         originators' originators.
10983
10984 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10985
10986         PR rtl-optimization/39453
10987         PR rtl-optimization/42246
10988         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
10989         for pipelining_p.
10990         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
10991
10992 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10993             Alexander Monakov  <amonakov@ispras.ru>
10994
10995         PR middle-end/42245
10996         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
10997         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
10998         argument.  Update all callers.
10999         (tidy_control_flow): ... and here.  Recompute topological order
11000         of basic blocks in region if necessary.
11001         (sel_redirect_edge_and_branch): Change return type.  Return true
11002         if topological order might have been invalidated.
11003         (purge_empty_blocks): Export and move from...
11004         * sel-sched.c (purge_empty_blocks): ... here.
11005         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
11006         (maybe_tidy_empty_bb): Delete prototype.
11007         (purge_empty_blocks): Declare.
11008
11009 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
11010
11011         PR rtl-optimization/42249
11012         * sel-sched.c (try_replace_dest_reg): When chosen register
11013         and original register is the same, do not bail out early, but
11014         still check all original insns for validity of replacing destination
11015         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
11016         in this case.
11017
11018 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
11019
11020         PR c/42721
11021         Port from no-undefined-overflow branch:
11022         2009-03-09  Richard Guenther  <rguenther@suse.de>
11023
11024         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
11025
11026 2010-01-14  Richard Guenther  <rguenther@suse.de>
11027
11028         PR lto/42665
11029         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
11030
11031 2010-01-14  Ira Rosen  <irar@il.ibm.com>
11032
11033         PR tree-optimization/42709
11034         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
11035         as scalar type in creation of constant vector operand.
11036
11037 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11038
11039         PR testsuite/42414
11040         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
11041         (check-parallel-%): Match `testsuite' directory component only
11042         at the end.
11043
11044 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
11045
11046         PR translation/39521
11047         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
11048         strings with _().
11049
11050 2010-01-13  Richard Guenther  <rguenther@suse.de>
11051
11052         PR tree-optimization/42730
11053         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
11054         offset zero.
11055
11056 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
11057
11058         PR target/pr42542
11059         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
11060         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
11061         them signed.
11062
11063 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
11064
11065         * config/bfin/libgcc-bfin.ver: Regenerate based on current
11066         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
11067         ___umulsi3_highpart.
11068
11069         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
11070         rather than schedule_insns if the pass is enabled.
11071
11072 2010-01-13  Martin Jambor  <mjambor@suse.cz>
11073
11074         PR tree-optimization/42704
11075         * tree-sra.c (sra_modify_assign): Do not delete assignments to
11076         SSA_NAMEs.
11077
11078 2010-01-13  Martin Jambor  <mjambor@suse.cz>
11079
11080         PR tree-optimization/42703
11081         * tree-sra.c (analyze_access_subtree): Check that we can build a
11082         reference to the original data within the aggregate.
11083
11084 2010-01-13  Richard Guenther  <rguenther@suse.de>
11085
11086         PR tree-optimization/42705
11087         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
11088
11089 2010-01-13  Richard Guenther  <rguenther@suse.de>
11090
11091         PR middle-end/42716
11092         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
11093
11094 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
11095
11096         PR debug/41371
11097         * var-tracking.c (values_to_unmark): New variable.
11098         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
11099         values_to_unmark vector.  Moved body to...
11100         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
11101         instead queue it into values_to_unmark vector.
11102         (vt_find_locations): Free values_to_unmark vector.
11103
11104 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
11105
11106         * config/s390/s390.c (override_options): Set
11107         default of max-pending-list-length to 256
11108
11109 2010-01-13  Richard Guenther  <rguenther@suse.de>
11110
11111         PR lto/42678
11112         * tree-pass.h (PROP_gimple_lcx): New.
11113         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
11114         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
11115         before the final cleanup_eh.
11116         (dump_properties): Dump PROP_gimple_lcx.
11117         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
11118         (tree_lower_complex_O0): Remove.
11119         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
11120         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
11121         tree_lower_complex, schedule TODO_update_ssa.
11122         * lto-streamer-out.c (output_function): Stream the functions
11123         properties.
11124         * lto-streamer-in.c (input_function): Likewise.
11125         (lto_read_body): Do not override them here.
11126
11127 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
11128
11129         PR c/42708
11130         * c-typeck.c (build_c_cast): Fold value cast to union type before
11131         wrapping it in a CONSTRUCTOR.
11132
11133 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
11134
11135         PR rtl-optimization/42699
11136         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
11137         involved.
11138
11139 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11140
11141         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
11142         SUBTARGET_WARN_UNUSED_SPEC): Move ...
11143         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
11144         SUBTARGET_WARN_UNUSED_SPEC): ... here
11145         * config/mips/iris5.h (LIBGCC_SPEC): Define.
11146
11147 2010-01-12  Julian Brown  <julian@codesourcery.com>
11148
11149         * config/arm/neon-schedgen.ml (Utils): Don't try to
11150         open missing module.
11151         (find_with_result): New.
11152
11153 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
11154
11155         PR debug/42662
11156         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
11157         sharing when canonicalizing ({lt,ge}u (plus a b) b).
11158
11159         PR tree-optimization/42645
11160         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
11161         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
11162         decl_map, set processing_debug_stmt to -1 and return name without
11163         any remapping.
11164
11165 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
11166
11167         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
11168         binutils version, and reword target configuration description.
11169
11170 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
11171
11172         * config/avr/avr.h (LINKER_NAME): Remove.
11173
11174 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
11175
11176         PR target/42416
11177         * config/rs6000/rs6000.c (rs6000_override_options): On targets
11178         that support VSX, warn for -mno-altivec if vsx is not disabled,
11179         and disable vsx.
11180
11181 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
11182             Shujing Zhao  <pearly.zhao@oracle.com>
11183
11184         PR translation/42469
11185         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
11186         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
11187         character between option name and help text.
11188         * c.opt (imultilib): Likewise.
11189
11190 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
11191
11192         * lto-streamer-out.c (output_unreferenced_globals): Output static
11193         variables.
11194
11195 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
11196
11197         PR rtl-optimization/42621
11198         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
11199         optimizing for size.
11200         (duplicate_computed_gotos): Remove now-redundant check.
11201
11202 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
11203
11204         PR target/37454
11205         * configure.ac: Save and restore LDFLAGS and LIBS
11206         * configure: Regenerate.
11207
11208 2010-01-10  Richard Guenther  <rguenther@suse.de>
11209
11210         PR middle-end/42667
11211         * builtins.c (fold_builtin_strlen): Add type argument and
11212         convert the resulting length to it.
11213         (fold_builtin_1): Adjust.
11214
11215 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
11216
11217         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
11218         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
11219         1 insn.
11220         (num_insns_constant_wide): Adjust for that change.
11221
11222 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11223
11224         PR debug/42631
11225         * web.c (union_defs): Add used argument, to combine uses of
11226         uninitialized regs.
11227         (entry_register): Adjust type and tests of used argument.
11228         (web_main): Widen used for new use.  Pass it to union_defs.
11229         * df.h (union_defs): Adjust prototype.
11230
11231 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11232
11233         PR debug/42630
11234         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
11235         uses in new incoming argument.  Free body.
11236         (reset_debug_uses_in_loop): New.
11237         (analyze_insn_to_expand_var): Call the latter if the former found
11238         anything.  Fix whitespace.  Reject invalid dest overlaps before
11239         going through all insns in the loop.
11240
11241 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11242
11243         PR debug/42629
11244         * haifa-sched.c (dying_use_p): Debug insns don't count.
11245
11246 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11247
11248         PR middle-end/42363
11249         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
11250         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
11251         (verify_gimple_call): Reject LHS in noreturn calls.
11252
11253 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11254
11255         PR debug/42604
11256         PR debug/42395
11257         * tree-vect-loop-manip.c (adjust_info): New type.
11258         (adjust_vec): New pointer to vector.
11259         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
11260         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
11261         (slpeel_update_phis_for_duplicate_loop): Use them.
11262         (slpeel_update_phi_nodes_for_guard1): Likewise.
11263         (slpeel_update_phi_nodes_for_guard2): Likewise.
11264         (slpeel_tree_peel_loop_to_edge): Likewise.
11265         (vect_update_ivs_after_vectorizer): Likewise.
11266
11267 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11268
11269         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
11270         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
11271
11272 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
11273
11274         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
11275         bogus uninitialized warning.
11276
11277 2010-01-09  Richard Guenther  <rguenther@suse.de>
11278
11279         PR middle-end/42512
11280         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
11281         the evolution is compatible with the initial condition.
11282
11283 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
11284
11285         * gcc.c (process_command): Update copyright notice dates.
11286         * gcov.c (print_version): Likewise.
11287         * gcov-dump.c (print_version): Likewise.
11288         * mips-tfile.c (main): Likewise.
11289         * mips-tdump.c (main): Likewise.
11290
11291 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
11292
11293         PR target/41885
11294         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
11295         (rotlhi3): Delete.
11296         (rotlhi3_8): Delete.
11297         (rotlsi3): Delete.
11298         (rotlsi3_8): Delete.
11299         (rotlsi3_16): Delete.
11300         (rotlsi3_24): Delete.
11301         (rotl<mode>3): New.
11302         (*rotw<mode>3): New.
11303         (*rotb<mode>3): New.
11304         * config/avr/avr.c (avr_rotate_bytes): New function.
11305         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
11306
11307 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
11308
11309         PR target/37454
11310         * configure.ac: Modify -rdynamic check.
11311         * configure: Regenerate.
11312
11313 2010-01-08  DJ Delorie  <dj@redhat.com>
11314
11315         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
11316         register popping order.
11317
11318 2010-01-08  Richard Guenther  <rguenther@suse.de>
11319
11320         PR lto/42528
11321         * c.opt (fsigned-char): Also let LTO handle this option.
11322         (funsigned-char): Likewise.
11323
11324 2010-01-07  Richard Guenther  <rguenther@suse.de>
11325
11326         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
11327         (gimple_op): Likewise.
11328         (gimple_op_ptr): Likewise.
11329         (gimple_assign_set_lhs): Remove gcc_assert.
11330         (gimple_assign_set_rhs1): Likewise.
11331         (gimple_assign_set_rhs2): Likewise.
11332         (gimple_call_set_lhs): Likewise.
11333         (gimple_call_set_fn): Likewise.
11334         (gimple_call_set_fndecl): Likewise.
11335         (gimple_call_fndecl): Likewise.
11336         (gimple_call_return_type): Likewise.
11337         (gimple_call_set_chain): Likewise.
11338         (gimple_call_num_args): Likewise.
11339         (gimple_call_set_arg): Likewise.
11340         (gimple_cond_set_code): Likewise.
11341         (gimple_cond_set_lhs): Likewise.
11342         (gimple_cond_set_rhs): Likewise.
11343         (gimple_cond_set_true_label): Likewise.
11344         (gimple_cond_set_false_label): Likewise.
11345         (gimple_label_set_label): Likewise.
11346         (gimple_goto_set_dest): Likewise.
11347         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
11348         (gimple_debug_bind_get_value): Likewise.
11349         (gimple_debug_bind_get_value_ptr): Likewise.
11350         (gimple_debug_bind_set_var): Likewise.
11351         (gimple_debug_bind_set_value): Likewise.
11352         (gimple_debug_bind_reset_value): Likewise.
11353         (gimple_debug_bind_has_value_p): Likewise.
11354         (gimple_return_retval_ptr): Remove gcc_assert.
11355         (gimple_return_retval): Likewise.
11356         (gimple_return_set_retval): Likewise.
11357         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
11358         (safe_referenced_var_iterator): Remove.
11359         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
11360         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
11361         (fill_referenced_var_vec): Remove.
11362         (first_readonly_imm_use): Remove redundant gcc_assert.
11363         (phi_arg_index_from_use): Combine gcc_asserts.
11364         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
11365         (first_imm_use_stmt): Remove redundant gcc_assert.
11366         * tree-cfg.c (verify_gimple_call): Verify function and chain
11367         operands.  Verify arguments.
11368         (verify_types_in_gimple_stmt): Verify condition code and labels.
11369
11370 2010-01-07  Richard Guenther  <rguenther@suse.de>
11371
11372         PR tree-optimization/42641
11373         * sese.c (rename_map_elt_info): Use the SSA name version, do
11374         not hash pointers.
11375
11376 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
11377
11378         PR tree-optimization/42625
11379         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
11380         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
11381
11382 2010-01-07  Duncan Sands  <baldrick@free.fr>
11383
11384         * Makefile.in (PLUGIN_HEADERS): Add version.h.
11385
11386 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
11387
11388         PR target/42511
11389         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
11390         note itself is not function_invariant_p.
11391
11392 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
11393
11394         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
11395         Do not add the DF_NOTE problem.
11396         * store-motion.c (execute_rtl_store_motion): Likewise.
11397
11398 2010-01-07  Martin Jambor  <mjambor@suse.cz>
11399
11400         PR tree-optimization/42157
11401         * tree-sra.c (compare_access_positions): Stabilize sort if both
11402         accesses have integer types, return zero immediately if they are the
11403         same.
11404
11405 2010-01-06  Richard Henderson  <rth@redhat.com>
11406
11407         PR middle-end/41883
11408         * haifa-sched.c (add_to_note_list): Merge into ...
11409         (concat_note_lists): ... here, and ...
11410         (unlink_other_notes, rm_other_notes): Merge into...
11411         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
11412         NOTE_INSN_EPILOGUE_BEG.
11413
11414 2010-01-06  Richard Guenther  <rguenther@suse.de>
11415
11416         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
11417         not inline regular functions into always-inline functions.
11418
11419 2010-01-06  Nick Clifton  <nickc@redhat.com>
11420
11421         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
11422         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
11423         used together.
11424         (OVERRIDE_OPTIONS): Delete.
11425         (OPTIMIZATION_OPTIONS): Define.
11426         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
11427         * config/rx/rx.c (rx_handle_option): Issue an error message if
11428         -mcpu=rx200 and -fpu are used together.
11429         (rx_set_optimization_options): New function.  Issue an error
11430         message if an optimization attribute attempts to reset the FPU/
11431         math optimization pairing.
11432         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
11433         * config/rx/rx.opt: Set the default to 32-bit doubles.
11434         * config/rx/t-rx: Add multilibs for -nofpu option.
11435         * doc/invoke.texi: Update documentation of RX options.
11436
11437 2010-01-06  Richard Guenther  <rguenther@suse.de>
11438
11439         * tree-ssa-pre.c (name_to_id): New global.
11440         (alloc_expression_id): Simplify SSA name handling.
11441         (lookup_expression_id): Likewise.
11442         (init_pre): Zero name_to_id.
11443         (fini_pre): Free it.
11444
11445 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
11446
11447         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
11448
11449 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
11450
11451         PR target/42542
11452         * config/i386/sse.md (smaxv2di3): New.
11453         (umaxv2di3): Likewise.
11454         (sminv2di3): Likewise.
11455         (uminv2di3): Likewise.
11456
11457 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
11458
11459         PR target/42564
11460         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
11461         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
11462         (legitimize_tls_address): Likewise.
11463         (sparc_tls_referenced_p): Likewise.
11464         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
11465         and adjust calls to legitimize_pic_address.
11466         (legitimate_constant_p) Use sparc_tls_referenced_p.
11467         (legitimate_pic_operand_p): Likewise.
11468         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
11469         (sparc_tls_symbol_ref_1): Delete.
11470         (sparc_tls_referenced_p): Make static, recognize specific patterns.
11471         (legitimize_tls_address): Make static, handle CONST patterns.
11472         (legitimize_pic_address): Make static, remove unused parameter and
11473         adjust recursive calls.
11474         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
11475         and adjust call to legitimize_pic_address.
11476         (sparc_output_mi_thunk): Likewise.
11477
11478 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
11479             H.J. Lu  <hongjiu.lu@intel.com>
11480
11481         PR target/42542
11482         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
11483         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
11484         operands to make them signed.
11485
11486         Revert:
11487         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11488
11489         PR target/42542
11490         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11491         GTU to GT for V4SI and V2DI.
11492
11493         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11494         (umin<mode>3): Removed.
11495         (uminv8hi3): New.
11496         (uminv4si3): Likewise.
11497
11498 2010-01-05  Martin Jambor  <mjambor@suse.cz>
11499
11500         PR tree-optimization/42462
11501         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
11502         current_function_decl to helper functions and macros.
11503
11504 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11505
11506         PR bootstrap/41771
11507         * flags.h: Don't include real.h.
11508         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
11509         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
11510         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
11511         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
11512         * dominance.c: Update copyright.
11513         * gimple.c (walk_gimple_op): Remove inline.
11514         * tree-ssa-reassoc.c: Include real.h.
11515         * Makefile.in (FLAGS_H): Remove $(REAL_H).
11516         (tree-ssa-reassoc.o): Depend on $(REAL_H).
11517
11518 2010-01-05  Nick Clifton  <nickc@redhat.com>
11519
11520         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
11521         register to push into the stack frame when the accumulator has to
11522         be saved during interrupts.
11523
11524 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
11525
11526         * doc/invoke.texi: Remove the documentation about option
11527         -Wunreachable-code.
11528         * common.opt (Wunreachable-code):  Preserved for backward
11529         compatibility.
11530         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
11531         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
11532         the backward compatibility flag section.
11533
11534 2010-01-05  Richard Guenther  <rguenther@suse.de>
11535
11536         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
11537
11538 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
11539
11540         PR other/42611
11541         * cfgexpand.c (expand_one_var): Diagnose too large variables.
11542
11543         PR tree-optimization/42508
11544         * tree-sra.c (convert_callers): Check for recursive call
11545         by comparing cgraph nodes instead of decls.
11546         (modify_function): Call ipa_modify_formal_parameters also
11547         on all same_body aliases.
11548
11549         * cgraphunit.c (cgraph_materialize_all_clones): Compare
11550         cgraph nodes when checking for same_body aliases.
11551
11552 2010-01-05  Richard Guenther  <rguenther@suse.de>
11553
11554         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
11555         allocation and lookup.
11556         (get_or_alloc_expr_for_constant): Likewise.
11557         (phi_translate): Sink allocation.
11558
11559 2010-01-04  Richard Guenther  <rguenther@suse.de>
11560
11561         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
11562         a new entry only if needed.
11563         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
11564         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
11565         hashtable lookup.
11566         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
11567         the result array.
11568         (phi_translate): Handle CONSTANTs early.
11569
11570 2010-01-04  Martin Jambor  <mjambor@suse.cz>
11571
11572         PR tree-optimization/42398
11573         * tree-sra.c (struct access): Removed flag grp_different_types.
11574         (dump_access): Do not dump the removed flag.
11575         (sort_and_splice_var_accesses): Do not set the removed flag.
11576         (sra_modify_expr): Check for type compatibility directly.
11577
11578 2010-01-04  Martin Jambor  <mjambor@suse.cz>
11579
11580         PR tree-optimization/42366
11581         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
11582         edges with variable number of parameters.
11583         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
11584         flag instead of asserting it.
11585         (ipa_read_node_info): Read uses_analysis_done flag.
11586
11587 2010-01-04  Richard Guenther  <rguenther@suse.de>
11588
11589         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
11590         iterative_hash_* as intended.
11591         (vn_reference_compute_hash): Likewise.  Simplify hashing
11592         SSA names.
11593         (vn_reference_lookup_2): Likewise.
11594         (vn_nary_op_compute_hash): Likewise.
11595         (vn_phi_compute_hash): Likewise.
11596         (expressions_equal_p): Remove strange code.
11597         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
11598         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
11599         (bitmap_insert_into_set_1): Take value-id as parameter.
11600         (add_to_value): Pass it.
11601         (bitmap_insert_into_set): Likewise.
11602         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
11603
11604 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
11605
11606         PR driver/42442
11607         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
11608         (do_self_spec): For switches with SWITCH_IGNORE set set also
11609         SWITCH_IGNORE_PERMANENTLY.
11610         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
11611         of SWITCH_IGNORE.
11612
11613 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
11614
11615         * lto-streamer-out.c (output_unreferenced_globals): Output the full
11616         tree of an unreferenced global var.
11617
11618 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11619
11620         PR target/42542
11621         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11622         GTU to GT for V4SI and V2DI.
11623
11624         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11625         (umin<mode>3): Removed.
11626         (uminv8hi3): New.
11627         (uminv4si3): Likewise.
11628
11629 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11630
11631         PR lto/42581
11632         * collect2.c (main): Turn on trace in collect2 if -v is passed
11633         to gcc with LTO.
11634
11635 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
11636
11637         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
11638         description of expression operand.
11639
11640 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
11641
11642         * configure.ac: Add install-html to target_list for Make-hooks.
11643         * configure: Regenerate.
11644         * fortran/Make-lang.in (F95_HTMLFILES): New.
11645         (fortran.html): Use it.
11646         (fortran.install-html): New.
11647         * Makefile.in (install-html): Add lang.install-html.
11648         * java/Make-lang.in (JAVA_HTMLFILES): New.
11649         (java.html): Use it.
11650         (java.install-html): New.
11651         * objc/Make-lang.in (objc.install-html): New.
11652         * objcp/Make-lang.in (obj-c++.install-html): New.
11653         * cp/Make-lang.in (c++.install-html): New.
11654         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
11655         * lto/Make-lang.in (lto.install-html): New.
11656
11657 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
11658
11659         PR lto/42520
11660         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
11661
11662 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
11663
11664         PR rtl-optimization/41862
11665         * store-motion.c (store_killed_in_insn, compute_store_table,
11666         remove_reachable_equiv_notes, replace_store_insn,
11667         build_store_vectors): Ignore all DEBUG_INSNs.
11668
11669 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
11670
11671         PR lto/41564
11672         * common.opt: Add dumpdir.
11673
11674         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
11675         isn't specified.
11676         (option_map): Add --dumpdir.
11677
11678         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
11679
11680         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
11681
11682         * opts.c (decode_options): Try dump_dir_name first if
11683         dump_base_name isn't an absolute path.
11684         (common_handle_option): Handle OPT_dumpdir.
11685
11686         * toplev.c (dump_dir_name): New.
11687         (print_switch_values): Also ignore -dumpdir.
11688
11689         * toplev.h (dump_dir_name): New.
11690
11691 2010-01-03  Richard Guenther  <rguenther@suse.de>
11692
11693         PR tree-optimization/42589
11694         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
11695         double-word expansion of bswap32.
11696
11697 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
11698
11699         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
11700         with BLOCK_FOR_INSN.
11701         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
11702         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
11703         noce_process_if_block): Likewise.
11704         * gcse.c (compute_local_properties, insert_expr_in_table,
11705         insert_set_in_table, canon_list_insert, find_avail_set,
11706         pre_insert_copy_insn): Likewise.
11707
11708         * basic-block.h (BLOCK_NUM): Move from here...
11709         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
11710
11711 2010-01-03  Richard Guenther  <rguenther@suse.de>
11712
11713         PR tree-optimization/42438
11714         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
11715         contains_may_not_return_call flag.
11716         (BB_MAY_NOTRETURN): New.
11717         (valid_in_sets): Trapping nary operations are not valid
11718         in blocks that may not return.
11719         (insert_into_preds_of_block): Remove check for trapping expressions.
11720         (compute_avail): Compute also BB_MAY_NOTRETURN.
11721
11722 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
11723
11724         * doc/invoke.texi: Add 2010 to copyright years.
11725
11726 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
11727
11728         * config/sparc/sparc.c: Fix formatting nits.
11729
11730 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
11731             Alexander Monakov  <amonakov@ispras.ru>
11732
11733         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
11734
11735 2010-01-02  Richard Guenther  <rguenther@suse.de>
11736
11737         PR middle-end/42577
11738         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
11739         (simplify_switch_using_ranges): Mark to be removed edges
11740         as non-executable.
11741
11742 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11743
11744         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
11745
11746         * collect2.c (scan_libraries): Add missing argument in call to
11747         scan_prog_file.
11748
11749 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
11750
11751         PR target/42448
11752         * config/alpha/predicates.md (aligned_memory_operand): Return false
11753         for CQImode.
11754         (unaligned_memory_operand): Return true for CQImode.
11755         * config/alpha/alpha.c (get_aligned_mem): Assert that location
11756         doesn not cross aligned SImode word boundary.
11757
11758 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
11759
11760         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
11761         Remove.
11762         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
11763         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
11764
11765 2010-01-02  Richard Guenther  <rguenther@suse.de>
11766
11767         PR lto/41597
11768         * toplev.c (compile_file): Emit LTO marker properly.  Change
11769         it to __gnu_lto_v1.
11770         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
11771
11772 2010-01-01  Richard Guenther  <rguenther@suse.de>
11773
11774         PR debug/42455
11775         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
11776
11777 2010-01-01  Richard Guenther  <rguenther@suse.de>
11778
11779         PR c/42570
11780         * c-decl.c (grokdeclarator): For zero-size arrays force
11781         structural equality checks as layout_type does.
11782
11783 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
11784
11785         * builtins.c: Update copyright to 2010.
11786
11787 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
11788
11789         PR lto/42531
11790         * lto-streamer-out.c (produce_asm): Revert the last change.
11791         (copy_function): Likewise.
11792
11793         * lto-streamer.c (lto_get_section_name): Skip any leading
11794         asterisk in name.
11795
11796 2010-01-01  Richard Guenther  <rguenther@suse.de>
11797
11798         PR middle-end/42559
11799         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
11800         for LABEL_DECLs.
11801
11802 \f
11803 Copyright (C) 2010 Free Software Foundation, Inc.
11804
11805 Copying and distribution of this file, with or without modification,
11806 are permitted in any medium without royalty provided the copyright
11807 notice and this notice are preserved.
11808
11809         PR bootstrap/44299
11810         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
11811         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
11812
11813 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
11814
11815         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
11816         toplev.h.
11817         * diagnostic.c: Don't include toplev.h.
11818         (progname): Define.  Moved from toplev.c.
11819         (seen_error): New function.
11820         * diagnostic.h: Include diagnostic-core.h.
11821         (diagnostic_t, emit_diagnostic): Don't declare here.
11822         * toplev.c (progname): Move to toplev.c.
11823         (emit_debug_global_declarations, compile_file, finalize,
11824         do_compile, toplev_main): Use seen_error.
11825         * toplev.h: Include diagnostic-core.h.
11826         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
11827         internal_error, warning, warning_at, error, error_n, error_at,
11828         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
11829         verbatim, fnotice, progname): Move to diagnostic-core.h.
11830         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
11831         (expand_builtin_expect): Use seen_error.
11832         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
11833         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
11834         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
11835         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
11836         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
11837         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
11838         errorcount for errors.
11839         * c-opts.c (c_common_finish): Use seen_error.
11840         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
11841         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
11842         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
11843         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
11844         (get_coverage_counts): Use seen_error.
11845         * dwarf2out.c (dwarf2out_finish): Use seen_error.
11846         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
11847         gimplify_body): Use seen_error.
11848         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
11849         * ipa-pure-const.c (gate_pure_const): Use seen_error.
11850         * ipa-reference.c (gate_reference): Use seen_error.
11851         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
11852         * lambda-code.c: Include diagnostic-core.h instead of
11853         diagnostic.h.
11854         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
11855         * lto-compress.c: Include diagnostic-core.h instead of
11856         diagnostic.h.
11857         * lto-section-in.c: Include diagnostic-core.h instead of
11858         diagnostic.h.
11859         * lto-streamer-out.c: Include diagnostic-core.h instead of
11860         diagnostic.h.
11861         * lto-streamer.c: Include diagnostic-core.h instead of
11862         diagnostic.h.
11863         (gate_lto_out): Use seen_error.
11864         * matrix-reorg.c: Include diagnostic-core.h instead of
11865         diagnostic.h.
11866         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
11867         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
11868         (gate_expand_omp, lower_omp_1): Use seen_error.
11869         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
11870         (rest_of_decl_compilation, rest_of_type_compilation,
11871         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
11872         * tree-cfg.c (label_to_block_fn): Use seen_error.
11873         * tree-inline.c (optimize_inline_calls): Use seen_error.
11874         * tree-mudflap.c (mudflap_finish_file): Use
11875         seen_error.
11876         * tree-optimize.c (gate_all_optimizations,
11877         gate_all_early_local_passes, gate_all_early_optimizations): Use
11878         seen_error.
11879         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
11880         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
11881         (varpool_remove_unreferenced_decls,
11882         varpool_assemble_pending_decls): Use seen_error.
11883         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
11884         (TOPLEV_H, DIAGNOSTIC_H): Update.
11885         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
11886         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
11887         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
11888         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
11889         coverage.o, lambda-code.o): Update dependencies.
11890
11891 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
11892
11893         PR c++/44188
11894         * c-common.c (is_typedef_decl): Move this definition ...
11895         * tree.c (is_typedef_decl): ... here.
11896         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
11897         * c-common.h (is_typedef_decl): Move this declaration ...
11898         * tree.h (is_typedef_decl): ... here.
11899         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
11900         * dwarf2out.c (is_naming_typedef_decl): New function.
11901         (gen_tagged_type_die): Split out of ...
11902         (gen_type_die_with_usage): ... this function. When an anonymous
11903         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
11904         is emitted for the typedef.
11905         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
11906         anonymous tagged types.
11907
11908 2010-05-27  Jason Merrill  <jason@redhat.com>
11909
11910         * print-tree.c (debug_vec_tree): New fn.
11911         (print_vec_tree): New fn.
11912         * tree.h: Declare them.
11913         * gdbinit.in (pvt): New command.
11914
11915         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
11916
11917         * gdbinit.in (pdd): New command.
11918
11919 2010-05-27  Jan Hubicka  <jh@suse.cz>
11920
11921         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
11922         (update_caller_keys): Return early if there are no callers;
11923         only update fibheap when decresing the key.
11924         (update_callee_keys): Avoid recursion.
11925         (decide_inlining_of_small_functions): When badness does not match;
11926         re-insert into fibheap.
11927
11928 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
11929
11930         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
11931         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
11932         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
11933         (ALL_HOST_OBJS): Now a union of the above two.
11934         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
11935         all files in ALL_HOST_FRONTEND_OBJS.
11936         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
11937
11938         * c-common.c: Pretend to be a backend file by undefining
11939         IN_GCC_FRONTEND (still need rtl.h here).
11940
11941 2010-05-27  Jan Hubicka  <jh@suse.cz>
11942
11943         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
11944         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
11945
11946 2010-05-27  Jan Hubicka  <jh@suse.cz>
11947
11948         * sched-ebb.c: Rename struct deps to struct deps_desc.
11949         * ddg.c: Likewise.
11950         * sel-sched-ir.c: Likewise.
11951         * sched-deps.c: Likewise.
11952         * sched-int.h: Likewise.
11953         * sched-rgn.c: Likewise.
11954
11955 2010-05-27  Jon Beniston <jon@beniston.com>
11956
11957         PR 43726
11958         * config/lm32/lm32.h: Remove definition of 
11959         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
11960
11961 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
11962
11963         PR lto/44230
11964         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
11965
11966 2010-05-27  Richard Guenther  <rguenther@suse.de>
11967
11968         PR tree-optimization/44284
11969         * tree-vect-stmts.c (vectorizable_assignment): Handle
11970         sign-changing conversions as simple copy.
11971
11972 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11973
11974         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
11975         Bionic C library.
11976         (__gthread_active_p): Check for pthread_create if compiling against
11977         Bionic C library.
11978
11979 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11980
11981         Support compilation for Android platform.  Reimplement -mandroid.
11982
11983         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
11984         (*android*): Set ANDROID_DEFAULT.
11985         (arm*-*-linux*): Include linux-android.h.
11986         (arm*-*-eabi*): Don't include previous -mandroid implementation.
11987         * config/arm/eabi.h: Remove, move Android-specific parts ...
11988         * config/linux-android.h: ... here.  New file.
11989         * config/arm/eabi.opt: Rename to ...
11990         * config/linux-android.opt: ... this.
11991         (mandroid): Allow -mno-android option.  Initialize based on
11992         ANDROID_DEFAULT.
11993         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
11994         Move logic to corresponding LINUX_TARGET_* macros.
11995         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
11996         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
11997         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
11998         Android definitions.
11999         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
12000         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
12001         Document.
12002
12003 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
12004
12005         Add support for Bionic C library
12006
12007         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
12008         macro.
12009         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
12010         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
12011
12012         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
12013         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
12014         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
12015         to support multiple C libraries.  Handle Bionic.
12016         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
12017         (BIONIC_DYNAMIC_LINKER64): Define.
12018         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
12019         Update.
12020         (TARGET_HAS_SINCOS): Enable for Bionic.
12021
12022         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
12023         the last option specified on command line take effect.
12024         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
12025         (mbionic): New.
12026         (mglibc, muclibc): Update.
12027
12028         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
12029         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
12030         DEFAULT_LIBC.
12031
12032         * doc/invoke.texi (-mglibc, -muclibc): Update.
12033         (-mbionic): Document.
12034
12035 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12036
12037         * c-common.h (c_register_addr_space): Add prototype.
12038         (ADDR_SPACE_KEYWORD): Remove.
12039         * c-common.c (c_register_addr_space): New function.
12040         (c_addr_space_name): Reimplement.
12041         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
12042
12043         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
12044         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
12045
12046         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
12047         Remove TARGET_ADDR_SPACE_KEYWORDS.
12048
12049 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
12050
12051         * input.c: New file.
12052         * input.h (main_input_filename): Move declaration to toplev.h.
12053         * toplev.c (input_location, line_table): Move to input.c
12054         * toplev.h (main_input_filename): Move declaration from input.h.
12055         * tree.c (expand_location): Move to input.c.
12056         * Makefile.in (OBJS-common): Add input.o.
12057         (input.o): Add dependencies.
12058
12059 2010-05-27  Richard Guenther  <rguenther@suse.de>
12060
12061         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
12062         for non-existant files.
12063         (fork_execute): Mark args_name file as deleted.
12064
12065 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
12066
12067         PR bootstrp/44287
12068         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
12069         (narrow_signed_type): Likewise.
12070
12071 2010-05-26  Jan Hubicka  <jh@suse.cz>
12072
12073         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
12074         edge only when checking is enabled; check using former_clone_of;
12075         check inline clones too.
12076         (cgraph_materialize_clone): Record former_clone_of pointer.
12077         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
12078         combining redirections; dump args_to_skip bitmap
12079         (cgraph_materialize_all_clones): Do no redirection here.
12080         * ipa-inline.c (inline_transform): Do redirection here.
12081         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
12082         cheking only).
12083
12084 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12085
12086         * config/avr/avr-c.c: Do not include regs.h.
12087         Include cpplib.h for cpp_define and tree.h for c-common.h.
12088         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
12089         * config/avr/t-avr: Fix dependencies for avr-c.o.
12090
12091 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12092
12093         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
12094         string instead of SYMBOL_REF rtx.
12095         * rtl.h (set_stack_check_libfunc): Move prototype from here...
12096         * libfuncs.h: ...to here.  Adjust for explow.c change.
12097
12098 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
12099
12100         * pretty-print.c: Don't include ggc.h.
12101         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
12102         (identifier_to_locale): Use them for allocation.
12103         * pretty-print.h (identifier_to_locale_alloc,
12104         identifier_to_locale_free): Declare.
12105         * toplev.c (alloc_for_identifier_to_locale): New.
12106         (general_init): Set identifier_to_locale_alloc and
12107         identifier_to_locale_free.
12108         * Makefile.in (pretty-print.o): Update dependencies.
12109
12110 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
12111
12112         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
12113         pointer types if they have different alignment or mode.
12114
12115 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
12116
12117         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
12118         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
12119         * config/sparc/sparc-protos.h (function_value): Remove declaration.
12120         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
12121         sparc_function_value_regno_p): New functions.
12122         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12123         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12124         (function_value): Rename to...
12125         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
12126         argument to 'outgoing'.
12127         (function_arg_record_value, function_arg_union_value,
12128         function_arg_vector_value): Update comment.
12129
12130 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
12131
12132         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
12133         (fde_needed_for_eh_p): New predicate.
12134         (output_call_frame_info): Use it throughout to decide whether FDEs
12135         are needed for EH purpose.
12136         (dwarf2out_begin_prologue): Reorder assignments.
12137
12138 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12139
12140         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
12141         special case loop->header.
12142         (is_predicated): New.
12143         (if_convertible_loop_p): Call it.
12144
12145 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12146
12147         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
12148         iterator in parameter.  Do not generate code during the analysis.
12149         (tree_if_convert_cond_stmt): Removed.
12150         (tree_if_convert_stmt): Removed.
12151         (predicate_bbs): New.
12152         (if_convertible_loop_p): Call predicate_bbs.
12153         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
12154         now contains all the analysis part.
12155
12156 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12157
12158         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
12159         statements in the analysis part.
12160         (tree_if_convert_stmt): Update comment.
12161         (remove_conditions_and_labels): New.
12162         (combine_blocks): Call remove_conditions_and_labels.
12163         (tree_if_conversion): Update comment.
12164
12165 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12166
12167         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
12168         than 2 predecessors or more than 2 successors.
12169
12170 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12171
12172         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
12173         of loops in which the data dependence analysis fails.
12174
12175 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12176
12177         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
12178         CDI_POST_DOMINATORS.
12179         (tree_if_conversion): Same.
12180
12181 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12182
12183         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
12184
12185 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
12186
12187         * tree-if-conv.c: Update copyright years.  Fix comments.
12188         Fix indentation.
12189
12190 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
12191
12192         * builtin-types.def (BT_INT128): New primitive type.
12193         (BT_UINT128): Likewise.
12194         * c-common.c (c_common_r): Add __int128 keyword.
12195         (c_common_type_for_size): Handle __int128.
12196         (c_common_type_for_mode): Likewise.
12197         (c_common_signed_or_unsigned_type): Likewise.
12198         (c_common_nodes_and_builtins): Add builtin type
12199         if target supports 128-bit integer scalar.
12200         * c-common.h (enum rid): Add RID_INT128.
12201         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
12202         if target supports 128-bit integer scalar.
12203         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
12204         (finish_declspecs): Likewise.
12205         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
12206         (c_token_starts_declspecs): Likewise.
12207         (c_parser_declspecs): Likewise.
12208         (c_parser_attributes): Likewise.
12209         (c_parser_objc_selector): Likewise.
12210         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
12211         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
12212         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
12213         * tree.c (make_or_reuse_type): Likewise.
12214         (make_unsigned_type): Likewise.
12215         (build_common_tree_nodes_2): Likewise.
12216         * tree.h (enum integer_type_kind): Add itk_int128 and
12217         itk_unsigned_int128.
12218         (int128_integer_type_node): New define.
12219         (int128_unsigned_type_node): New define.
12220         * doc/extend.texi: Add documentation about __int128 type.
12221
12222 2010-05-26  Richard Guenther  <rguenther@suse.de>
12223
12224         * tree-ssa-sccvn.c (copy_nary): Adjust.
12225         (copy_phis): Rename to ...
12226         (copy_phi): ... this.  Adjust.
12227         (copy_references): Rename to ...
12228         (copy_reference): ... this.  Adjust.
12229         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
12230         result into the valid table.
12231
12232 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12233
12234         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
12235         insn-config.h, insn-codes.h, recog.h, and optabs.h.
12236
12237 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12238
12239         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
12240
12241 2010-05-26  Richard Guenther  <rguenther@suse.de>
12242
12243         * opts.c (common_handle_option): Handle OPT_Ofast.
12244
12245 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
12246
12247         * diagnostic.c: Don't include opts.h.
12248         (permissive_error_option): Define.
12249         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
12250         for classify_diagnostic.  Don't use memset for
12251         classify_diagnostic.  Initialize new and recently added fields.
12252         (diagnostic_classify_diagnostic): Use context->n_opts instead of
12253         N_OPTS.
12254         (diagnostic_report_diagnostic): Pass context parameter to
12255         diagnostic_report_warnings_p.  Use option_enabled and option_name
12256         hooks from context.
12257         (emit_diagnostic): Use permissive_error_option.
12258         (permerror): Likewise.
12259         * diagnostic.h: Don't include options.h.
12260         (struct diagnostic_context): Add n_opts, opt_permissive,
12261         inhibit_warnings, warn_system_headers, option_enabled and
12262         option_name fields.  Change classify_diagnostic to a pointer.
12263         * opts-diagnostic.h: New file.
12264         * opts.c: Include opts-diagnostic.h.
12265         (common_handle_option): Set global_dc fields for -Wfatal-errors,
12266         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
12267         (option_name): New function.
12268         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
12269         (c_common_handle_option): Set global_dc->permissive for
12270         -fpermissive.
12271         * c-common.c (c_cpp_error): Save and restore
12272         global_dc->warn_system_headers, not variable warn_system_headers.
12273         * toplev.c: Include opts-diagnostic.h.
12274         (general_init): Update call to diagnostic_initialize.  Set
12275         global_dc->show_column, global_dc->option_enabled and
12276         global_dc->option_name.
12277         (process_options): Don't set global_dc fields here.
12278         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
12279         (diagnostic.o, opts.o, toplev.o): Update dependencies.
12280
12281 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
12282
12283         * config/picochip/picochip.md (movsi): Split a movsi from a
12284         const after reload.
12285
12286 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12287
12288         * ggc-zone.c: Update copyright year.
12289         (poison_region): Mark memory for Valgrind as undefined before
12290         memset () call and inaccessible afterwards.
12291         (ggc_pch_total_size): Change type of i to int.
12292
12293 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12294
12295         * ggc-common.c (ggc_free_overhead): Allow empty slot.
12296
12297 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12298
12299         * ggc-common.c: Update copyright year.
12300         (ggc_rlimit_bound): Remove prototype.  Compile only if
12301         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
12302         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
12303         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
12304         (ggc_min_heapsize_heuristic): Likewise.
12305
12306 2010-05-26  Richard Guenther  <rguenther@suse.de>
12307
12308         PR rtl-optimization/44164
12309         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
12310         no-common access-path disambiguation.
12311         (indirect_ref_may_alias_decl_p): Adjust.
12312         (indirect_refs_may_alias_p): Likewise.
12313         (refs_may_alias_p_1): Likewise.
12314
12315 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12316
12317         * c-typeck.c: Do not include expr.h.
12318
12319 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
12320
12321         * rtl.h (decl_default_tls_model): Move prototype from here...
12322         * output.h: ...to here.
12323         * c-decl.c: Do not include rtl.h.
12324         * c-pragma.c: Likewise.
12325         * c-parser.c: Likewise.
12326         * c-gimplify.c: Likewise.  And also not hard-reg-set.
12327         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
12328         FIXME note for it.  Add a FIXME note for expr.h.
12329         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
12330         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
12331         defined.
12332
12333 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
12334
12335         PR target/44199
12336         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
12337         or total_size is larger than red zone size for non-V4 ABI, emit a
12338         stack_tie resp. frame_tie insn before stack pointer restore.
12339         * config/rs6000/rs6000.md (frame_tie): New insn.
12340
12341 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
12342
12343         * function.h (struct function): Add can_throw_non_call_exceptions bit.
12344         * lto-streamer-in.c (input_function): Stream it in.
12345         * lto-streamer-out.c (output_function): Stream it out.
12346         * function.c (allocate_struct_function): Set it.
12347         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
12348         for flag_non_call_exceptions.
12349         * cfgbuild.c (control_flow_insn_p): Likewise.
12350         (make_edges): Likewise.
12351         * cfgexpand.c (expand_stack_alignment): Likewise.
12352         * combine.c (distribute_notes): Likewise.
12353         * cse.c (cse_extended_basic_block): Likewise.
12354         * except.c (insn_could_throw_p): Likewise.
12355         * gcse.c (simple_mem): Likewise.
12356         * ipa-pure-const.c (check_call): Likewise.
12357         (check_stmt ): Likewise.
12358         * lower-subreg.c (lower-subreg.c): Likewise.
12359         * optabs.c (emit_libcall_block): Likewise.
12360         (prepare_cmp_insn): Likewise.
12361         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
12362         * postreload.c (rest_of_handle_postreload): Likewise.
12363         * reload1.c (reload_as_needed): Likewise.
12364         (emit_input_reload_insns): Likewise.
12365         (emit_output_reload_insns): Likewise.
12366         (fixup_abnormal_edges): Likewise.
12367         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
12368         * store-motion.c (find_moveable_store): Likewise.
12369         * tree-eh.c (stmt_could_throw_p): Likewise.
12370         (tree_could_throw_p): Likewise.
12371         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
12372         * config/arm/arm.c (arm_expand_prologue): Likewise.
12373         (thumb1_expand_prologue): Likewise.
12374         * config/rx/rx.md (cbranchsf4): Likewise.
12375         (cmpsf): Likewise.
12376         * config/s390/s390.c (s390_emit_prologue): Likewise.
12377         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
12378         (inline_forbidden_into_p): New predicate.
12379         (expand_call_inline): Use it to forbid inlining.
12380         (tree_can_inline_p): Likewise.
12381
12382 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
12383
12384         * config/i386/i386-c.c: Do not include rtl.h.
12385         * config/i386/t-i386: Update dependencies.
12386
12387 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
12388
12389         * attribs.c: Do not include rtl.h.
12390         * Makefile.in: Update dependencies.
12391
12392 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
12393
12394         * double-int.h (double_int_and): New.
12395         * combine.c (try_combine): Clean up, use double_int_* and
12396         immed_double_int_const functions.
12397
12398 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12399
12400         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
12401         stderr to /dev/null instead of grep -q.
12402         * configure: Regenerate.
12403
12404 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
12405
12406         * Makefile.in (EXCEPT_H): Fix typo.
12407
12408 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
12409
12410         * ira-build.c (update_conflict_hard_reg_costs): New.
12411         (ira_build): Call update_conflict_hard_reg_costs.
12412
12413 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
12414
12415         PR debug/41371
12416         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
12417         ENABLE_CHECKING.
12418         (intersect_loc_chains): Walk the s2var's loc_chain together
12419         with s1node chain as long as the locations are equal, don't
12420         call find_loc_in_1pdv in that case.
12421
12422         PR debug/42801
12423         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
12424         (copy_bind_expr): ... instead of here.
12425         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
12426         if the block hasn't been remapped.
12427         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
12428         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
12429
12430 2010-05-25  Richard Guenther  <rguenther@suse.de>
12431
12432         PR middle-end/44069
12433         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
12434         out-of-bounds array accesses.
12435
12436 2010-05-25  Richard Guenther  <rguenther@suse.de>
12437
12438         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
12439         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
12440         (run_gcc): Re-organize to make cleanup easier.
12441
12442 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12443
12444         * config/s390/s390.c (optimization_options): Fix and move the
12445         flag_prefetch_loop_arrays override ...
12446         (override_options): ... here.
12447
12448 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
12449
12450         * diagnostic.c: Don't include plugin.h.
12451         (diagnostic_report_diagnostic): Don't handle plugins specially
12452         here.  Pass context to internal_error callback.
12453         * diagnostic.h (struct diagnostic_context): Add context parameter
12454         to internal_error callback.
12455         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
12456         * plugin.h (struct diagnostic_context): Declare.
12457         (warn_if_plugins, plugins_internal_error_function): Declare.
12458         * toplev.c (general_init): Set global_dc->internal_error.
12459         * Makefile.in (diagnostic.o): Update dependencies.
12460
12461 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
12462
12463         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
12464         * config/rs6000/t-darwin64: New.
12465         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
12466         build crt2.
12467
12468 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
12469
12470         PR 44203
12471         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
12472         match the original (and intended) behaviour before r159557.  This
12473         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
12474         in two ways.
12475
12476 2010-05-25  Richard Guenther  <rguenther@suse.de>
12477
12478         * doc/invoke.texi: Document -Ofast.
12479         * target.h (struct gcc_target): Add handle_ofast.
12480         * target-def.h (TARGET_HANDLE_OFAST): Add.
12481         (TARGET_INITIALIZER): Adjust.
12482         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
12483         * common.opt (Ofast): Add.
12484
12485 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
12486
12487         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
12488         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
12489
12490 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
12491
12492         PR target/43610
12493         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
12494         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
12495         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
12496         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
12497
12498 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
12499
12500         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
12501         DW_OP_minus with negated offset instead of DW_OP_plus.
12502         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
12503
12504 2010-05-25  Wei Guozhi  <carrot@google.com>
12505
12506         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
12507         tst instruction and a new alternative.
12508         * config/arm/constraints.md (Pu): New constraint.
12509
12510 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
12511
12512         * function.c (assign_stack_local_1): Initialize variable
12513         to avoid warning when bootstrapping at -O3.
12514
12515 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
12516
12517         * configure.ac (all_lang_makefiles): Remove everything related to it.
12518         * configure: Regenerate.
12519         * Makefile.in: Fix reference to ada Make-lang.in.
12520         Remove support for LANG_MAKEFILES.
12521
12522 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
12523             Sandra Loosemore  <sandra@codesourcery.com>
12524
12525         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
12526         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
12527         description.  Add arm_neon_fp16_ok.
12528         (Add Options): Add arm_neon and arm_neon_fp16.
12529
12530 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
12531
12532         * diagnostic.c: Don't include flags.h.
12533         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
12534         context parameters.  Check flags in the context passed as a parameter.
12535         (diagnostic_build_prefix): Add context parameter.  Check
12536         show_column flag in context.
12537         (diagnostic_action_after_output): Check fatal_errors flag in context.
12538         (diagnostic_report_current_module): Check show_column flag in context.
12539         (default_diagnostic_starter): Update call to
12540         diagnostic_build_prefix.
12541         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
12542         (emit_diagnostic): Pass context to permissive_error_kind.
12543         (permerror): Pass context to permissive_error_kind.
12544         * diagnostic.h (struct diagnostic_context): Add show_column,
12545         pedantic_errors, permissive and fatal_errors fields.
12546         (diagnostic_build_prefix): Update prototype.
12547         * langhooks.c
12548         * toplev.c (process_options): Set flags in global_dc from
12549         flag_show_column, flag_pedantic_errors, flag_permissive,
12550         flag_fatal_errors.
12551         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
12552         to diagnostic_build_prefix.
12553         * Makefile.in (diagnostic.o): Update dependencies.
12554
12555 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
12556
12557         * config/i386/ia32intrin.h (__crc32q): Define only if
12558         __SSE4_2__ is defined.
12559
12560 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
12561
12562         PR target/44132
12563         PR middle-end/43602
12564         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
12565         DECL_VISIBILITY_SPECIFIED.
12566         (emutls_decl): Set DECL_PRESERVE_P and copy
12567         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
12568         (emutls_finalize_control_var): New callback.
12569         (emutls_finish): Finalize emutls control variables.
12570         * toplev.c (compile_file): Move the call to emutls_finish ()
12571         before varpool_assemble_pending_decls ().
12572
12573 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
12574
12575         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
12576         added to the preprocessor condition.
12577
12578 2010-05-24  Paul Brook  <paul@codesourcery.com>
12579
12580         * gengtype-lex.l: Add HARD_REG_SET.
12581         * expr.c (expand_expr_real_1): Record writes to hard registers.
12582         * function.c (rtl_data): Add asm_clobbers.
12583         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
12584         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
12585         Use crtl->asm_clobbers.
12586
12587 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12588
12589         * doc/makefile.texi (Makefile): Mention stages 'profile'
12590         and 'feedback' for profiledbootstrap.
12591
12592 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
12593
12594         PR target/44245
12595         * config/i386/i386.c (def_builtin): Properly check
12596         OPTION_MASK_ISA_64BIT.
12597
12598 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
12599
12600         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
12601         typedefs with different but compatible types.  Allow duplicate
12602         typedefs with the same type except for pedantic non-C1X, but give
12603         warning for variably modified types.
12604         * c-typeck.c (tagged_types_tu_compatible_p,
12605         function_types_compatible_p, type_lists_compatible_p,
12606         comptypes_internal): Add parameter different_types_p; set
12607         *different_types_p for different but compatible types.  All
12608         callers changed.
12609         (comptypes_check_different_types): New.
12610         * c-tree.h (comptypes_check_different_types): Declare.
12611
12612 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
12613
12614         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
12615         * jump.c: Include basic-block.h.
12616         * profile.c: Likewise.
12617         * tree-profile.c: Likewise.
12618         * coverage.c: Likewise.
12619         * basic-block.h (optimize_function_for_size_p): Move to function.h.
12620         (optimize_function_for_speed_p): Likewise.
12621         * function.h (optimize_function_for_size_p,
12622         optimize_function_for_speed_p): Moved here from basic-block.h.
12623         * Makefile.in: Update dependencies.
12624
12625 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12626
12627         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
12628         before calling make; allow override through $MAKE.
12629         * doc/invoke.texi (Optimize Options): Document override.
12630
12631 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
12632
12633         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
12634         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12635         (rs6000_mode_dependent_address_ptr): Make static.
12636         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12637         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
12638         Remove.
12639
12640 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
12641
12642         PR target/43869
12643         * config/i386/i386.c: Make sure that the correct regparm is passed.
12644
12645 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
12646
12647         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
12648         * sbitmap.c: ...to here to internalize sbitmap element access.
12649         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
12650         Explain why basic-block.h is included.
12651         * function.h: Include tm.h for CUMULATIVE_ARGS.
12652         * Makefile.in: Update dependencies.
12653
12654 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
12655
12656         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
12657         New core types.
12658         * sbitmap.h (struct sbitmap_def): Do not typedef here.
12659         * sbitmap.c: Include sbitmap.h.
12660         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
12661         hard-reg-set.h.  Split everything related to regsets out from here...
12662         * regset.h: ...to here.  New file.
12663         * df.h: Include regset.h and sbitmap.h.
12664         * tree-flow.h: Likewise.
12665         * cfgloop.h: Likewise.
12666         * except.h: Do not include sbitmap.h.  Include hashtab.h.
12667         * cgraph.h: Include vec.h and function.h.
12668         * reload.h (struct insn_chain): Change types of live_throughout
12669         and dead_or_set from regset_head to bitmap_head.
12670         (compute_use_by_pseudos): Be defined also if regset.h is not included.
12671         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
12672         spilled_regs from regset_head to bitmap_head to avoid dependency
12673         in regset.h.
12674         * sel-sched-ir.h: Include regset.h.
12675         * reload.c: Include df.h before reload.h.
12676         * caller-save.c: Likewise.
12677         * reload1.c: Likewise.
12678         * ira.c: Likewise.
12679         (mark_elimination): Update type of r to bitmap, consistent with
12680         DF_LR_IN.
12681         * dominance.c: Include bitmap.h.
12682         * modulo-sched.c: Include df.h.
12683         * cfganal.c: Include bitmap.h and sbitmap.h.
12684         * cfgbuild.c: Include sbitmap.h.
12685         * lcm.c: Include sbitmap.h.
12686         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
12687         * domwalk.c: Include sbitmap.h, exclude ggc.h.
12688         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
12689         * cselib.c: Include bitmap.h.
12690         * tree-optimize.c: Include regset.h.
12691         * stmt.c: Include bitmap.h.
12692         * Makefile.in: Update dependencies.
12693
12694 2010-05-22  Jan Hubicka  <jh@suse.cz>
12695
12696         * cgraph.h (struct varpool_node): Add same_comdat_group.
12697         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
12698         pointer.
12699         (output_varpool): Update call of lto_output_varpool_node.
12700         (input_varpool): Read same_comdat_group pointer.
12701         (input_varpool_1): Fixup same_comdat_group pointer.
12702         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
12703         group is needed, all are.
12704         * varpool.c (varpool_remove_node): Remove node from same comdat group
12705         linklist too.
12706         (varpool_analyze_pending_decls): Walk same comdat groups.
12707
12708 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
12709
12710         * rtl.h (union rtunion_def): Remove rt_bit member.
12711         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
12712         * print-rtl (print_rtx): Do not print the member.
12713         * gengtype.c (adjust_field_rtx_def): Do not handle it.
12714         * gengenrtl.c (type_from_format): Likewise.
12715         (accessor_from_format): Likewise.
12716
12717 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
12718
12719         * dbgcnt.c: Include toplev.h instead of errors.h.
12720         * ira-emit.c: Don't include errors.h.
12721         * ira.c: Include toplev.h instead of errors.h.
12722         * lto-compress.c: Include toplev.h instead of errors.h.
12723         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
12724         ira.o, dbgcnt.o): Update dependencies.
12725
12726 2010-05-22  Richard Guenther  <rguenther@suse.de>
12727
12728         * gimple.c (gimple_types_compatible_p): Check type qualifications
12729         before merging pointer to complete and pointer to incomplete type.
12730         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
12731         we use our own resolution algorithm.  The gold linker plugin
12732         doesn't do the job we want it to do here.
12733
12734 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
12735
12736         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12737         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12738         (sparc_mode_dependent_address_p): New function.
12739
12740 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
12741
12742         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
12743
12744         * timevar.c: Do not include any core headers.
12745         (timevar_print): De-i18n-ize.
12746         (print_time): Likewise.
12747         * timevar.h (timevar_push, timevar_pop): Make inline functions.
12748
12749 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
12750
12751         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
12752         langhooks-def.h.
12753         (diagnostic_initialize): Initialize x_data not last_function.
12754         (diagnostic_report_current_function): Move to tree-diagnostic.c.
12755         (default_diagnostic_starter): Call
12756         diagnostic_report_current_module not
12757         diagnostic_report_current_function.
12758         (diagnostic_report_diagnostic): Initialize x_data not
12759         abstract_origin.
12760         (verbatim): Likewise.
12761         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
12762         x_data.
12763         (struct diagnostic_context): Change last_function to x_data.
12764         (diagnostic_auxiliary_data): Replace with
12765         diagnostic_context_auxiliary_data and
12766         diagnostic_info_auxiliary_data.
12767         (diagnostic_last_function_changed, diagnostic_set_last_function,
12768         diagnostic_report_current_function): Move to tree-diagnostic.h.
12769         (print_declaration, dump_generic_node, print_generic_stmt,
12770         print_generic_stmt_indented, print_generic_expr,
12771         print_generic_decl, debug_c_tree, dump_omp_clauses,
12772         print_call_name, debug_generic_expr, debug_generic_stmt,
12773         debug_tree_chain, default_tree_printer): Move to
12774         tree-pretty-print.h.
12775         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
12776         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
12777         gimple-pretty-print.h.
12778         * pretty-print.c: Don't include tree.h
12779         (pp_base_format): Don't handle %K here.
12780         (pp_base_tree_identifier): Move to tree-pretty-print.c.
12781         * pretty-print.h (text_info): Change abstract_origin to x_data.
12782         (pp_tree_identifier, pp_unsupported_tree,
12783         pp_base_tree_identifier): Move to tree-pretty-print.h.
12784         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
12785         tree-pretty-print.h: New files.
12786         * tree-pretty-print.c: Include tree-pretty-print.h.
12787         (percent_K_format): New.  Moved from pretty-print.c.
12788         (pp_base_tree_identifier): Move from pretty-print.c.
12789         * c-objc-common.c: Include tree-pretty-print.h.
12790         (c_tree_printer): Handle %K here.
12791         * langhooks.c: Include tree-diagnostic.h.
12792         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
12793         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
12794         (default_tree_printer): Handle %K using percent_K_format.
12795         (general_init): Use default_tree_diagnostic_starter.
12796         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
12797         (free_lang_data): Use default_tree_diagnostic_starter.
12798         * c-pretty-print.c: Include tree-pretty-print.h.
12799         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12800         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12801         * dwarf2out.c: Include tree-pretty-print.h.
12802         * except.c: Include tree-pretty-print.h.
12803         * gimple-pretty-print.c: Include tree-pretty-print.h and
12804         gimple-pretty-print.h.
12805         * gimplify.c: Include tree-pretty-print.h.
12806         * graphite-poly.c: Include tree-pretty-print.h and
12807         gimple-pretty-print.h.
12808         * ipa-cp.c: Include tree-pretty-print.h.
12809         * ipa-inline.c: Include gimple-pretty-print.h.
12810         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12811         * ipa-pure-const.c: Include gimple-pretty-print.h.
12812         * ipa-struct-reorg.c: Include tree-pretty-print.h and
12813         gimple-pretty-print.h.
12814         * ipa-type-escape.c: Include tree-pretty-print.h.
12815         * print-rtl.c: Include tree-pretty-print.h.
12816         * print-tree.c: Include gimple-pretty-print.h.
12817         * sese.c: Include tree-pretty-print.h.
12818         * tree-affine.c: Include tree-pretty-print.h.
12819         * tree-browser.c: Include tree-pretty-print.h.
12820         * tree-call-cdce.c: Include gimple-pretty-print.h.
12821         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12822         * tree-chrec.c: Include tree-pretty-print.h.
12823         * tree-data-ref.c: Include tree-pretty-print.h and
12824         gimple-pretty-print.h.
12825         * tree-dfa.c: Include tree-pretty-print.h.
12826         * tree-if-conv.c: Include tree-pretty-print.h and
12827         gimple-pretty-print.h.
12828         * tree-inline.c: Include tree-pretty-print.h.
12829         * tree-into-ssa.c: Include tree-pretty-print.h and
12830         gimple-pretty-print.h.
12831         * tree-nrv.c: Include tree-pretty-print.h.
12832         * tree-object-size.c: Include tree-pretty-print.h and
12833         gimple-pretty-print.h.
12834         * tree-outof-ssa.c: Include tree-pretty-print.h and
12835         gimple-pretty-print.h.
12836         * tree-parloops.c: Include tree-pretty-print.h and
12837         gimple-pretty-print.h.
12838         * tree-predcom.c: Include tree-pretty-print.h and
12839         gimple-pretty-print.h.
12840         * tree-scalar-evolution.c: Include tree-pretty-print.h and
12841         gimple-pretty-print.h.
12842         * tree-sra.c: Include tree-pretty-print.h.
12843         * tree-ssa-address.c: Include tree-pretty-print.h.
12844         * tree-ssa-alias.c: Include tree-pretty-print.h.
12845         * tree-ssa-ccp.c: Include tree-pretty-print.h and
12846         gimple-pretty-print.h.
12847         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
12848         * tree-ssa-copy.c: Include tree-pretty-print.h and
12849         gimple-pretty-print.h.
12850         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
12851         * tree-ssa-dce.c: Include tree-pretty-print.h and
12852         gimple-pretty-print.h.
12853         * tree-ssa-dom.c: Include tree-pretty-print.h and
12854         gimple-pretty-print.h.
12855         * tree-ssa-dse.c: Include gimple-pretty-print.h.
12856         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
12857         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
12858         * tree-ssa-live.c: Include tree-pretty-print.h and
12859         gimple-pretty-print.h.
12860         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
12861         gimple-pretty-print.h.
12862         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
12863         gimple-pretty-print.h.
12864         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
12865         gimple-pretty-print.h.
12866         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
12867         gimple-pretty-print.h.
12868         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
12869         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
12870         * tree-ssa-operands.c: Include tree-pretty-print.h and
12871         gimple-pretty-print.h.
12872         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
12873         gimple-pretty-print.h.
12874         * tree-ssa-pre.c: Include tree-pretty-print.h and
12875         gimple-pretty-print.h.
12876         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
12877         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
12878         gimple-pretty-print.h.
12879         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
12880         gimple-pretty-print.h.
12881         * tree-ssa-sink.c: Include gimple-pretty-print.h.
12882         * tree-ssa-ter.c: Include tree-pretty-print.h and
12883         gimple-pretty-print.h.
12884         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
12885         * tree-ssa.c: Include tree-pretty-print.h and
12886         gimple-pretty-print.h.
12887         * tree-stdarg.c: Include gimple-pretty-print.h.
12888         * tree-switch-conversion.c: Include gimple-pretty-print.h.
12889         * tree-tailcall.c: Include tree-pretty-print.h and
12890         gimple-pretty-print.h.
12891         * tree-vect-data-refs.c: Include tree-pretty-print.h and
12892         gimple-pretty-print.h.
12893         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
12894         gimple-pretty-print.h.
12895         * tree-vect-loop.c: Include tree-pretty-print.h and
12896         gimple-pretty-print.h.
12897         * tree-vect-patterns.c: Include gimple-pretty-print.h.
12898         * tree-vect-slp.c: Include tree-pretty-print.h and
12899         gimple-pretty-print.h.
12900         * tree-vect-stmts.c: Include tree-pretty-print.h and
12901         gimple-pretty-print.h.
12902         * tree-vectorizer.c: Include tree-pretty-print.h.
12903         * tree-vrp.c: Include tree-pretty-print.h and
12904         gimple-pretty-print.h.
12905         * value-prof.c: Include tree-pretty-print.h and
12906         gimple-pretty-print.h.
12907         * var-tracking.c: Include tree-pretty-print.h.
12908         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
12909         (tree-diagnostic.o): New dependencies.
12910         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
12911         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
12912         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
12913         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
12914         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
12915         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
12916         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
12917         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
12918         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
12919         tree-ssa-address.o, tree-ssa-loop-niter.o,
12920         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
12921         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
12922         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
12923         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
12924         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
12925         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
12926         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
12927         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
12928         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
12929         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
12930         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
12931         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
12932         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
12933         tree-switch-conversion.o, var-tracking.o, value-prof.o,
12934         cfgexpand.o, pretty-print.o): Update dependencies.
12935
12936 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
12937
12938         * tree-ssa-structalias.c: Remove tm_p.h from include.
12939
12940 2010-05-21  Jeff Law  <law@redhat.com>
12941
12942         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
12943
12944 2010-05-21  Jason Merrill  <jason@redhat.com>
12945
12946         * tree-eh.c (cleanup_is_dead_in): New.
12947         (lower_try_finally): Don't generate a dead cleanup region.
12948         (lower_cleanup): Likewise.
12949
12950 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
12951
12952         PR debug/44223
12953         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
12954         unchain each use from the cyclic next_regno_use chain first.
12955
12956 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
12957
12958         * real: Do not include gmp.h, mpfr.h, and mpc.h.
12959         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
12960         (real_value_negate, real_value_abs): New prototypes.
12961         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
12962         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
12963         new include file for interface between MPFR and REAL_VALUE_TYPE.
12964         * real.c: Include realmpfr.h.
12965         (real_arithmetic2): Remove legacy function.
12966         (real_value_negate): New.
12967         (real_value_abs): New.
12968         (mfpr_from_real, real_from_mpfr): Move from here...
12969         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
12970         * builtins.c: Include realmpfr.h.
12971         * fold-const.c: Include realmpfr.h.
12972         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
12973         (fold_negate_const): Likewise.
12974         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
12975         * toplev.c: Include realmpfr.h.
12976         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
12977         and real_value_negate.
12978         * fixed-value.c (check_real_for_fixed_mode): Likewise.
12979         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
12980         (vfp3_const_double_index): Likewise.
12981         (arm_print_operand): Likewise.
12982         * Makefile.in: Update dependencies.
12983
12984 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12985
12986         * config/s390/s390.c (override_options): Increase the default
12987         of max-completely-peel-times.
12988
12989 2010-05-21  Julian Brown  <julian@codesourcery.com>
12990             Mark Mitchell  <mark@codesourcery.com>
12991
12992         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
12993         sibling calls for Thumb-1.
12994         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
12995         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
12996         Thumb-2.
12997         (*call_insn, *call_value_insn): Don't use for Thumb-2.
12998         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
12999         for Thumb-2.
13000         (return): New expander.
13001         (*arm_return): New name for ARM return insn.
13002         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
13003
13004 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
13005
13006         * config.gcc (sparc64-*-rtems*): New target.
13007
13008 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
13009
13010         * tree.c (build_function_decl_skip_args): Fix grammar.
13011         (build_function_type_list_1): Fix typos, adjust formatting.
13012
13013 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
13014
13015         * tree.h: Include real.h and fixed-value.h as basic datatypes.
13016         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
13017         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
13018         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
13019         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
13020         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
13021         tree-pretty-print.c, tree-loop-distribution.c,
13022         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
13023         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
13024         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
13025         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
13026         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
13027         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
13028         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
13029         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
13030         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
13031         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
13032         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
13033         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
13034         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
13035         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
13036         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
13037         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
13038         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
13039         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
13040         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
13041         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
13042         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
13043         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
13044         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
13045         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
13046         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
13047         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
13048         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
13049         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
13050         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
13051         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
13052         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
13053         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
13054         config/score/score7.c, config/score/score.c, config/arm/arm.c,
13055         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
13056         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
13057         config/bfin/bfin.c: Clean up redundant includes.
13058         * Makefile.in: Update accordingly.
13059
13060 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
13061
13062         PR middle-end/44204
13063         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
13064         statement has no arguments.
13065
13066 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
13067
13068         PR/44139
13069         * varasm.c (emutls_decl): Merge attributes to new decl.
13070
13071 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
13072
13073         PR middle-end/44101
13074         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
13075         around the uniquized constructor if its type requires a conversion.
13076
13077 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
13078
13079         PR debug/44205
13080         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
13081         at -O0 goto_locus of any of the incoming edges differs from
13082         goto_locus of outgoing edge, or gimple_location of any of the
13083         labels differs.
13084
13085 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
13086
13087         * ira.c (ira_non_ordered_class_hard_regs): Define.
13088         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
13089         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
13090         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
13091         cost of unaligned hard regs when allocating multi-reg pseudos.
13092
13093 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
13094
13095         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
13096         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
13097         for TARGET_NO_FLOAT.
13098         * config/mips/mips.c (mips_file_start): Expand conditional expression
13099         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
13100         (mips_override_options): Move -mno-float override -msoft-float and
13101         -mhard-float.
13102         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
13103         Condition(TARGET_SUPPORTS_NO_FLOAT).
13104         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
13105         __mips_no_float here.
13106         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
13107         (TARGET_SUPPORTS_NO_FLOAT): Define.
13108         * config/mips/sdemtk.opt: Delete.
13109
13110 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
13111
13112         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
13113
13114 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
13115
13116         PR target/43733
13117         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
13118         * configure: Regenerate.
13119         * config.in: Regenerate.
13120         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
13121         instead of sahf only for 64bit targets.
13122
13123 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
13124
13125         PR debug/44178
13126         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
13127         setup_ref_regs for DEBUG_INSNs.
13128
13129 2010-05-20  Jan Hubicka  <jh@suse.cz>
13130
13131         PR middle-end/44197
13132         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
13133
13134 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
13135
13136         PR bootstrap/43870
13137         * df-scan.c (df_ref_compare): Stabilize sort.
13138
13139 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
13140
13141         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
13142         argument.  Don't use DW_OP_piece if offset is non-zero,
13143         put offset into second DW_OP_bit_piece argument.
13144         (dw_sra_loc_expr): Adjust callers.  For memory expressions
13145         compute offset.
13146
13147 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
13148
13149         PR target/44202
13150         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
13151         settings for 16-bit-constant "addo" alternative.
13152
13153 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
13154
13155         * config/mips/mips-dsp.md (add<DSPV:mode>3,
13156         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
13157
13158         PR target/43764
13159         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
13160         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
13161         Use it.
13162
13163 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
13164
13165         * diagnostic.c (FLOAT, FFS): Don't undefine.
13166         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
13167         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
13168         include ordering.
13169
13170 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
13171
13172         * combine.c (propagate_for_debug): Call make_compound_operation
13173         on the source value.
13174         (try_combine): When implementing a split chosen by find_split_point,
13175         either copy i2src or set it to null.  Assert that i2src is not null
13176         before substituting into CALL_INSN_FUNCTION_USAGE.
13177
13178 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
13179
13180         * double-int.h (double_int_ior): New function.
13181         * tree.h (build_int_cst_wide_type): Remove.
13182         * tree.c (build_int_cst_wide_type): Remove.
13183         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
13184         of build_int_cst_wide_type.
13185         * stor-layout.c (set_sizetype): (Ditto.).
13186         * dojump.c (do_jump): Use build_int_cstu instead of
13187         build_int_cst_wide_type.
13188
13189 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
13190
13191         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
13192         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
13193         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
13194         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
13195         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
13196         propagate the 'data' argument to copy_tree_r.
13197         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
13198         Propagate 'data' argument to walk_tree.
13199         (copy_if_shared): New function.
13200         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
13201         (unmark_visited): New function.
13202         (unshare_body): Call copy_if_shared instead of doing it manually.
13203         (unvisit_body): Call unmark_visited instead of doing it manually.
13204
13205 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
13206
13207         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
13208         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
13209         * hooks.c: Likewise.
13210         * target-def.h (TARGET_FOLD_BUILTIN): Define to
13211         hook_tree_tree_int_treep_bool_null.
13212         * target.h (struct gcc_target): Update signature of fold_builtin
13213         field.
13214         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
13215         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
13216         instead of the call expression.
13217         (fold_builtin_call_array): Pass n and argarray directly.
13218         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
13219         consing a list.
13220         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
13221         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
13222         `i' and use it in place of `arity'.
13223         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
13224         Dereference `args' directly.
13225         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
13226
13227 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13228
13229         * doc/sourcebuild.texi (Effective-Target Keywords): Document
13230         3dnow, sse3, sse2.
13231         (Directives): Document optional dg-require-effective-target
13232         selector.
13233
13234 2010-05-19  Richard Guenther  <rguenther@suse.de>
13235
13236         PR lto/44196
13237         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
13238
13239 2010-05-19  Richard Guenther  <rguenther@suse.de>
13240
13241         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
13242         * common.opt (fwhopr=): New.
13243         * opts.c (common_handle_option): Handle OPT_fwhopr.
13244         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
13245         * collect2.c (main): Match -fwhopr*.
13246         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
13247         Execute ltrans stage in parallel when jobs is bigger than 1.
13248
13249 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13250
13251         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
13252         pentiumpro on Solaris 8/x86 with Sun as.
13253         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
13254         hidden alias bug.
13255         (gcc_cv_as_ix86_quad): Check for .quad directive.
13256         * configure: Regenerate.
13257         * config.in: Regenerate.
13258         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
13259
13260 2010-05-19  Martin Jambor  <mjambor@suse.cz>
13261
13262         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
13263         also for indirect edges.  Actual printing moved...
13264         (ipa_print_node_jump_functions_for_edge): ...here.
13265         (ipa_compute_jump_functions): Renamed to
13266         ipa_compute_jump_functions_for_edge and made static.
13267         (ipa_compute_jump_functions): New function.
13268         (make_edge_direct_to_target): Check if the number of arguments on
13269         the newly direct edge is the same as the number of parametrs of
13270         the callee.
13271         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
13272         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
13273         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
13274         analysis functions unconditionally, call the new
13275         ipa_analyze_params_uses on the node instead of every edge.
13276
13277 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
13278
13279         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
13280         to tree.
13281         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
13282         also checks for a constant int vs.  non-constant but
13283         loop-invariant steps.
13284         (find_or_create_group): Change the sort algorithm to only consider
13285         steps that are constant ints.
13286         (idx_analyze_ref): Adopt code to handle a tree instead of a
13287         HOST_WIDE_INT for step.
13288         (gather_memory_references_ref): Handle tree instead of int and be
13289         prepared to see a NULL_TREE.
13290         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
13291         prefetches if the step cannot be calculated at compile time.
13292         (issue_prefetch_ref): Issue prefetches for non-constant but
13293         loop-invariant steps.
13294
13295 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
13296
13297         Revert:
13298         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
13299
13300         * tree.h (build_call_list): Remove.
13301         * tree.c (build_call_list): Remove.
13302
13303 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
13304
13305         * tree.h (build_call_list): Remove.
13306         * tree.c (build_call_list): Remove.
13307
13308 2010-05-18  Jan Hubicka  <jh@suse.cz>
13309
13310         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
13311
13312 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
13313
13314         PR rtl-optimization/43332
13315         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
13316
13317 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
13318
13319         * tree.h (build_int_cstu): Implement as static inline.
13320         * tree.c (build_int_cstu): Remove function.
13321         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
13322         sign extended.
13323
13324 2010-05-18  Richard Guenther  <rguenther@suse.de>
13325
13326         PR lto/44143
13327         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
13328         (debug): Initialize from -save-temps.
13329         (collect_execute): Print command-line when verbose.
13330         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
13331         for ltrans invocation.  Produce -dumpbase flag again.
13332         (process_args): Remove.
13333         (main): Simplify.
13334         * collect2.c (maybe_run_lto_and_relink): Only pass object
13335         files to lto-wrapper.
13336         * gcc.c (LINK_COMMAND_SPEC): Likewise.
13337
13338 2010-05-18  Jan Hubicka  <jh@suse.cz>
13339
13340         * opts.c (decode_options): Do not disable whopr at ipa_cp.
13341         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
13342
13343 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
13344
13345         PR lto/44184
13346         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
13347         in a GIMPLE_ASM.
13348         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
13349         in a GIMPLE_ASM.
13350
13351 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
13352
13353         PR debug/41371
13354         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
13355         rtx_equal_p inline.
13356
13357 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
13358
13359         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
13360         lto-macho as lto_binary_reader.
13361
13362         * darwin.c (darwin_asm_named_section): Do not add assembler comment
13363         after .section directive; just print it before the directive instead.
13364
13365 2010-05-17  Jan Hubicka  <jh@suse.cz>
13366
13367         * cgraph.c (cgraph_create_virtual_clone): Only check
13368         versionable_function_p when not in wpa and checking is enabled.
13369         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
13370         there are no more functions to materialize.
13371
13372 2010-05-17  Jan Hubicka  <jh@suse.cz>
13373
13374         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
13375         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
13376         New functions.
13377         (output_cgraph): Call output_cgraph_opt_summary.
13378         (input_cgrpah): Call input_cgraph_opt_summary.
13379         (output_cgraph_opt_summary_p, output_node_opt_summary,
13380         input_node_opt_summary, input_cgraph_opt_section): New functions.
13381         * lto-section-in.c (lto_section_name): Add cgraphopt.
13382         * tree-inline.c (tree_function_versioning): Handle parm_num.
13383         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
13384         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
13385
13386 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
13387
13388         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
13389         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
13390         the insn to prefetch ratio heuristic to loops with known trip count.
13391
13392 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
13393
13394         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
13395         (schedule_prefetches): Do not generate a prefetch if the unroll factor
13396         is far from what is required by the prefetch.
13397
13398 2010-05-17  Jan Hubicka  <jh@suse.cz>
13399
13400         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
13401         (ipcp_estimate_growth): Likewise.
13402         (ipcp_const_param_count): Likewise.
13403         (ipcp_insert_stage): Likewise.
13404         * ipa-prop.c (visit_load_for_mod_analysis): New function.
13405         (visit_store_addr_for_mod_analysis): Set used flag.
13406         (ipa_detect_param_modifications): Set used flag for SSE params;
13407         update use of walk_stmt_load_store_addr_ops.
13408         (ipa_print_node_params): Print used flag.
13409         (ipa_write_node_info): Stream used flag.
13410         (ipa_read_node_info): Likewise.
13411         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
13412         (ipa_is_param_used): New function.
13413         (lto_ipa_fixup_call_notes): Remove unused declaration.
13414
13415 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13416
13417         PR target/44074
13418         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
13419         * configure: Regenerate.
13420         * config.in: Regenerate.
13421         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
13422         !HAVE_AS_IX86_REP_LOCK_PREFIX.
13423         Don't emit whitespace.
13424         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
13425         (*rep_movsi): Likewise.
13426         (*rep_movsi_rex64): Likewise.
13427         (*rep_movqi): Likewise.
13428         (*rep_movqi_rex64): Likewise.
13429         (*rep_stosdi_rex64): Likewise.
13430         (*rep_stossi): Likewise.
13431         (*rep_stossi_rex64): Likewise.
13432         (*rep_stosqi): Likewise.
13433         (*rep_stosqi_rex64): Likewise.
13434         (*cmpstrnqi_nz_1): Use {%;} after repz.
13435         (*cmpstrnqi_nz_rex_1): Likewise.
13436         (*cmpstrnqi_1): Likewise.
13437         (*cmpstrnqi_rex_1): Likewise.
13438         (*strlenqi_1): Use {%;} after repnz.
13439         (*strlenqi_rex_1): Likewise.
13440         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
13441         (*sync_compare_and_swap<mode>): Likewise.
13442         (sync_double_compare_and_swap<mode>): Likewise.
13443         (*sync_double_compare_and_swapdi_pic): Likewise.
13444         (sync_old_add<mode>): Likewise.
13445         (sync_add<mode>): Likewise.
13446         (sync_sub<mode>): Likewise.
13447         (sync_<code><mode>): Likewise.
13448
13449 2010-05-17  Martin Jambor  <mjambor@suse.cz>
13450
13451         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
13452         otr_token and polymorphic.
13453         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
13454         (cgraph_clone_edge): Copy the above fields.
13455         * tree.c (get_binfo_at_offset): New function.
13456         * tree.h (get_binfo_at_offset): Declare.
13457         * ipa-prop.h (enum jump_func_type): Added known_type jump function
13458         type, reordered items, updated comments.
13459         (union jump_func_value): Added base_type field, reordered fields.
13460         (enum ipa_lattice_type): Moved down in the file.
13461         (struct ipa_param_descriptor): New field polymorphic.
13462         (ipa_is_param_polymorphic): New function.
13463         * ipa-prop.c: Include gimple.h and gimple-fold.h.
13464         (ipa_print_node_jump_functions): Print known type jump functions.
13465         (compute_complex_pass_through): Renamed to...
13466         (compute_complex_assign_jump_func): this.
13467         (compute_complex_ancestor_jump_func): New function.
13468         (compute_known_type_jump_func): Likewise.
13469         (compute_scalar_jump_functions): Create known type and complex ancestor
13470         jump functions.
13471         (ipa_note_param_call): New parameter polymorphic, set the corresponding
13472         flag in the call note accordingly.
13473         (ipa_analyze_call_uses): Renamed to...
13474         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
13475         variable var only in the block where it is used.
13476         (ipa_analyze_virtual_call_uses): New function.
13477         (ipa_analyze_call_uses): Likewise.
13478         (combine_known_type_and_ancestor_jfs): Likewise.
13479         (update_jump_functions_after_inlining): Implemented handling of a
13480         number of new jump function types combination.
13481         (print_edge_addition_message): Removed.
13482         (make_edge_direct_to_target): New function.
13483         (try_make_edge_direct_simple_call): Likewise.
13484         (try_make_edge_direct_virtual_call): Likewise.
13485         (update_call_notes_after_inlining): Renamed to...
13486         (update_indirect_edges_after_inlining): this.  Moved edge creation for
13487         indirect calls to try_make_edge_direct_simple_call, also calls
13488         try_make_edge_direct_virtual_call for virtual calls.
13489         (ipa_print_node_params): Changed the header message.
13490         (ipa_write_jump_function): Stream also known type jump functions.
13491         (ipa_read_jump_function): Likewise.
13492         (ipa_write_indirect_edge_info): Stream new fields in
13493         cgraph_indirect_call_info.
13494         (ipa_read_indirect_edge_info): Likewise.
13495         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
13496         GIMPLE_FOLD_H.
13497
13498 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13499
13500         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
13501
13502 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
13503
13504         * tree.h (CALL_EXPR_ARGS): Delete.
13505         (call_expr_arglist): Delete.
13506         * tree.c (call_expr_arglist): Delete.
13507         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
13508         targetm.fold_builtin.
13509         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
13510         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
13511         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
13512         arglist parameter.  Use CALL_EXPR_ARG.
13513         (picochip_expand_builtin_3op): Likewise.
13514         (picochip_expand_builtin_2opvoid): Likewise.
13515         (picochip_expand_array_get): Likewise.
13516         (picochip_expand_array_put): Likewise.
13517         (picochip_expand_array_testport): Likewise.
13518         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
13519         rather than arglist.
13520         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
13521         CALL_EXPR_ARGS.
13522         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
13523         than TREE_VALUE and TREE_CHAIN.
13524         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
13525         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
13526         the arglist.
13527
13528 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
13529
13530         PR bootstrap/42347
13531         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
13532         to have no fallthru edge.
13533
13534         PR middle-end/44102
13535         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
13536         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
13537         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
13538         add BARRIER after previous bb if needed.
13539
13540 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
13541
13542         * tree.c (build_function_type_list_1): Remove bogus assert condition.
13543
13544 2010-05-17  Alan Modra  <amodra@gmail.com>
13545
13546         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
13547         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
13548         with copy_reg rtx param.
13549         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
13550         Correct cases where code for ABI_V4 did not initialise the reg
13551         used to access frame.  Also leave frame_reg_rtx as sp for large
13552         frames that save no regs.
13553
13554 2010-05-17  Martin Jambor  <mjambor@suse.cz>
13555
13556         PR middle-end/44133
13557         * tree-sra.c (create_access_replacement): New parameter rename, mark
13558         the replaement for renaming only when it is true.
13559         (get_access_replacement): Pass true in the rename parameter of
13560         create_access_replacement.
13561         (get_unrenamed_access_replacement): New function.
13562         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
13563         replacement declaration from it.
13564
13565 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
13566
13567         * function.c (try_fit_stack_local, add_frame_space): New static
13568         functions.
13569         (assign_stack_local_1): Use them.  Look for opportunities to use
13570         space previously wasted on alignment.
13571         * function.h (struct frame_space): New.
13572         (struct rtl_data): Add FRAME_SPACE_LIST member.
13573         * reload1.c (something_was_spilled): New static variable.
13574         (alter_reg): Set it.
13575         (reload): Test it in addition to testing if the frame size changed.
13576
13577 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
13578
13579         * config/s390/s390.c: Define sane prefetch settings and activate
13580         flag_prefetch_loop_arrays on -O3.
13581         * config/s390/s390.h: Declare that read can use write prefetch.
13582
13583 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
13584
13585         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
13586         build.
13587
13588 2010-05-16  Jan Hubicka  <jh@suse.cz>
13589
13590         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
13591         function body; do not check stdarg field of struct function.
13592
13593 2010-05-16  Jan Hubicka  <jh@suse.cz>
13594
13595         * cgraph.c (dump_cgraph_node): Dump versionable flag.
13596         * cgraph.h (cgraph_local_info): Add versionable flag.
13597         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
13598         (ipcp_versionable_function_p): Use it.
13599         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
13600         versionable flag.
13601
13602 2010-05-16  Jan Hubicka  <jh@suse.cz>
13603
13604         * cgraph.c (cgraph_clone_node): Take decl argument and insert
13605         clone into hash when it is different from orig.
13606         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
13607         * cgraph.h (cgraph_clone_node): Update prototype.
13608         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
13609         (lto_cgraph_encoder_delete): Delete body map.
13610         (lto_cgraph_encoder_size): Move to header.
13611         (lto_cgraph_encoder_encode_body_p,
13612         lto_set_cgraph_encoder_encode_body): New.
13613         (lto_output_node): Do not take written_decls argument; output clone_of
13614         pointer.
13615         (add_node_to): Add include_body_argument; call
13616         lto_set_cgraph_encoder_encode_body on master of the clone.
13617         (add_references): Update use of add_node_to.
13618         (compute_ltrans_boundary): Likewise.
13619         (output_cgraph): Do not create written_decls bitmap.
13620         (input_node): Take nodes argument; stream in clone_of correctly.
13621         (input_cgraph_1): Update use of input_node.
13622         * lto-streamer-out.c (lto_output): Use encoder info to decide
13623         what bodies to output.
13624         * ipa-inline.c (cgraph_clone_inlined_nodes,
13625         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
13626         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
13627         (lto_cgraph_encoder_size): Define here.
13628         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
13629         Declare.
13630
13631 2010-05-16  Richard Guenther  <rguenther@suse.de>
13632
13633         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
13634         -fipa-type-escape.
13635         * ipa-type-escape.c (gate_type_escape_vars): Run when
13636         -fipa-struct-reorg runs.
13637         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
13638         * common.opt (fipa-type-escape): Remove.
13639
13640 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
13641
13642         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
13643         (decode_options): Likewise.
13644         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
13645
13646 2010-05-16  Jan Hubicka  <jh@suse.cz>
13647
13648         * ipa.c (function_and_variable_visibility): Also bring local all
13649         aliases.
13650
13651 2010-05-16  Richard Guenther  <rguenther@suse.de>
13652
13653         * alias.c (nonoverlapping_memrefs_p): Remove use of
13654         IPA type-escape information.
13655
13656 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
13657
13658         * c-common.c (c_common_reswords): Add _Static_assert for C.
13659         * c-parser.c (c_token_starts_declaration,
13660         c_parser_next_token_starts_declaration,
13661         c_parser_static_assert_declaration_no_semi,
13662         c_parser_static_assert_declaration): New.
13663         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
13664         Handle static assertions if static_assert_ok.
13665         (c_parser_external_declaration, c_parser_declaration_or_fndef,
13666         c_parser_compound_statement_nostart, c_parser_label,
13667         c_parser_for_statement, c_parser_objc_methodprotolist,
13668         c_parser_omp_for_loop): All callers of
13669         c_parser_declaration_or_fndef changed.
13670         (c_parser_struct_declaration): Handle static assertions.
13671         (c_parser_compound_statement_nostart): Use
13672         c_parser_next_token_starts_declaration and
13673         c_token_starts_declaration to detect start of declarations.
13674         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
13675         Likewise.
13676
13677 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
13678
13679         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
13680         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
13681         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
13682         TARGET_FUNCTION_VALUE_REGNO_P): Define.
13683         (mmix_function_outgoing_value): Rename to...
13684         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
13685         (mmix_function_value_regno_p): Make static.
13686         (mmix_libcall_value): New function.
13687         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
13688         mmix_function_value_regno_p): Remove declaration.
13689
13690 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
13691
13692         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
13693         BUILT_IN_ALLOCA if stack checking is enabled.
13694
13695 2010-05-16  Richard Guenther  <rguenther@suse.de>
13696
13697         * var-tracking.c (vars_copy_1): Inline ...
13698         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
13699         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
13700         (variable_merge_over_cur): Adjust.  Merge asserts.
13701         (variable_merge_over_src): Likewise.
13702         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
13703         (variable_post_merge_new_vals): Merge asserts.
13704         (variable_post_merge_perm_vals): Likewise.
13705         (find_mem_expr_in_1pdv): Likewise.
13706         (dataflow_set_different_value): Remove.
13707         (onepart_variable_different_p): Merge asserts.
13708         (variable_different_p): Likewise.
13709         (dataflow_set_different_1): Inline ...
13710         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
13711         (emit_notes_for_differences_1): Merge asserts.
13712
13713 2010-05-16  Richard Guenther  <rguenther@suse.de>
13714
13715         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
13716         * optabs.c (libfunc_decl_hash): Likewise.
13717         * varasm.c (emutls_decl): Likewise.
13718
13719 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
13720
13721         * c-decl.c: Don't include gimple.h.
13722         (merge_decls): Do not copy gimple_body.
13723
13724 2010-05-15  Jason Merrill  <jason@redhat.com>
13725
13726         * c.opt: Add -fnothrow-opt.
13727
13728 2010-05-15  Jan Hubicka  <jh@suse.cz>
13729
13730         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
13731         analyzed.
13732         * passes.c (ipa_write_summaries): Write all analyzed nodes.
13733
13734 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
13735
13736         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
13737         * Makefile.in: Add it.
13738         Fix all other Makefile dependencies for changes below.
13739         * tree.h: Include it instead of defining VEC primitives here.
13740         * gimple.h: Likewise.
13741         * rtl.h: Likewise.
13742         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
13743         * except.h: Include vecir.h, break dependence on tree.h.
13744
13745         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
13746         Move from here...
13747         * tree-iterator.c: ...to here.
13748         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
13749
13750         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
13751         tm_p.h.
13752         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
13753         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
13754         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
13755         tree-mudflap.h, and target.h.
13756         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
13757         predict.h, tree-inline.h, gimple.h, and langhooks.h.
13758         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
13759         Add FIXME for why gimple.h is still included (should be unnecessary
13760         since GCC 4.5 gimplification unit-at-a-time).
13761         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
13762         * c-pragma.c: Add FIXME for why function.h needs to be included just
13763         for cfun, at front-end level.
13764         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
13765         Do not include ggc.h, but include vecprim.h for VEC(char).
13766         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
13767         Explain why target.h is included.
13768         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
13769         Explain why gimple.h is included.
13770         * c-ppoutput.c: Do not include tm.h.
13771         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
13772         * c-parses.c: Explain why rtl.h is included, and that this (and only
13773         this) is also why tm.h must be included.
13774         Do not include except.h.
13775         * c-lang.c: Do not include ggc.h.
13776
13777 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
13778
13779         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
13780
13781 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
13782
13783         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
13784         unions by default if those structs and unions have no tags.  Do
13785         not condition anonymous struct and unions handling on flag_iso.
13786         Allow anonymous structs and unions for C1X.
13787         (finish_struct): Do not diagnose lack of named fields when
13788         anonymous structs and unions present for C1X.  Accept flexible
13789         array members in structure with anonymous structs or unions but no
13790         directly named fields.
13791         * doc/extend.texi (Unnamed Fields): Update.
13792
13793 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
13794
13795         * gimple.h (compare_field_offset): Rename into...
13796         (gimple_compare_field_offset): ...this.
13797         * gimple.c (compare_field_offset): Rename into...
13798         (gimple_compare_field_offset): ...this.  Compare the full access if
13799         the offset is self-referential.
13800         (gimple_types_compatible_p): Adjust for above renaming.
13801         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
13802         DECL_NONADDRESSABLE_P flag of fields before merging them.
13803
13804 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
13805
13806         * tree.h (ctor_to_list): Delete.
13807         * tree.c (ctor_to_list): Delete.
13808
13809 2010-05-15  Jan Hubicka  <jh@suse.cz>
13810
13811         * ipa-reference.c: Include toplev.h
13812         (is_proper_for_analysis): Only add to all_module_statics
13813         if it is allocated.
13814         (write_node_summary_p, stream_out_bitmap,
13815         ipa_reference_write_optimization_summary,
13816         ipa_reference_read_optimization_summary): New.
13817         (struct ipa_opt_pass_d pass_ipa_reference): Add
13818         optimization summary streaming.
13819         * lto-cgraph.c (referenced_from_this_partition_p,
13820         reachable_from_this_partition_p): New functions.
13821         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
13822         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
13823         * opts.c (decode_options): Enable ipa_reference.
13824         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
13825         * lto-streamer.h (referenced_from_this_partition_p,
13826         reachable_from_this_partition_p): Declare.
13827
13828 2010-05-15  Richard Guenther  <rguenther@suse.de>
13829
13830         PR tree-optimization/44038
13831         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
13832         taking the address of a V_C_E of a constant.
13833
13834 2010-05-14  Jan Hubicka  <jh@suse.cz>
13835
13836         * tree.h (memory_identifier_string): Remove.
13837         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
13838         (ipa_reference_global_vars_info_d): Remove statics_not_read and
13839         statics_not_written.
13840         (ipa_reference_optimization_summary_d): New structure.
13841         (ipa_reference_optimization_summary_t): New type and vector.
13842         (ipa_reference_vars_info_d): Embedd structures instead of using
13843         pointers.
13844         (reference_vars_to_consider): Remove out of GGC space.
13845         (module_statics_escape): Remove.
13846         (global_info_obstack): Rename to ...
13847         (optimization_summary_obstack): ... this one.
13848         (initialization_status_t): Remove.
13849         (memory_identifier_string): Remove.
13850         (get_reference_vars_info): Fix indenting.
13851         (set_reference_vars_info): Likewise.
13852         (get_reference_optimization_summary): New.
13853         (set_reference_optimization_summary): New.
13854         (get_global_reference_vars_info): Remove.
13855         (ipa_reference_get_read_global): Remove.
13856         (ipa_reference_get_written_global): Remove.
13857         (ipa_reference_get_not_read_global): Update.
13858         (ipa_reference_get_not_written_global): Update.
13859         (is_proper_for_analysis): Outlaw addressable.
13860         (propagate_bits): Update for new datastructures.
13861         (analyze_variable): Remove.
13862         (init_function_info): Update for new datastructures.
13863         (clean_function_local_data): Remove.
13864         (clean_function): Remove.
13865         (copy_global_bitmap): Use optimizations_summary_obstack.
13866         (duplicate_node_data): Duplicate optimization summary only.
13867         (remove_node_data): Remove optimization summary only.
13868         (generate_summary): Do not analyze variables; do not compute
13869         module_statics_escape; do not prune solutions by it.
13870         (read_write_all_from_decl): Fix typos in comments.
13871         (propagate): Doscover readonly and nonaddressable first;
13872         update for new datastructures; share global bitmaps.
13873         * ipa-reference.h (ipa_reference_get_read_global,
13874         ipa_reference_get_written_global): Remove.
13875         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
13876         * Makefile.in: Remove ipa-refereference from GT files.
13877
13878 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
13879
13880         PR debug/44112
13881         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
13882         for all SYMBOL_REF_DECLs.
13883
13884 2010-05-14  Jan Hubicka  <jh@suse.cz>
13885
13886         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
13887         (varpool_all_refs_explicit_p): New inline function.
13888         * ipa-reference.c: Update comment.
13889         (module_statics_written): Remove.
13890         (get_static_decl): Remove.
13891         (ipa_init): Do not initialize module_statics_written.
13892         (analyze_function): Likewise.
13893         (generate_summary): Likewise; do not compute module_statics_readonly
13894         and do not update variable flags.
13895         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
13896         * ipa.c: Inlucde flags.h
13897         (cgraph_local_node_p): New.
13898         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
13899         promote functions to local.
13900         (ipa_discover_readonly_nonaddressable_vars): New function.
13901         (function_and_variable_visibility): Use cgraph_local_node_p.
13902         * varpool.c (varpool_finalize_decl): Set force_output for
13903         DECL_PRESERVE_P vars.
13904
13905 2010-05-14  Jan Hubicka  <jh@suse.cz>
13906
13907         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
13908
13909 2010-05-14  Richard Guenther  <rguenther@suse.de>
13910
13911         PR tree-optimization/44119
13912         * tree-ssa-pre.c (eliminate): Properly mark replacement of
13913         a PHI node necessary.
13914
13915 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
13916
13917         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
13918
13919 2010-05-14  Jason Merrill  <jason@redhat.com>
13920
13921         PR c++/44127
13922         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
13923         (gimple_call_set_nothrow): New.
13924         * gimple.c (gimple_build_call_from_tree): Call it.
13925         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
13926
13927         PR c++/44127
13928         * gimplify.c (gimplify_seq_add_stmt): No longer static.
13929         * gimple.h: Declare it.
13930         * gimple.c (gimple_build_eh_filter): No ops.
13931
13932 2010-05-14  Jan Hubicka  <jh@suse.cz>
13933
13934         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
13935         nodes already in queue.
13936         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
13937         re-enqueueing node.
13938
13939 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
13940
13941         PR debug/44136
13942         * cfgexpand.c (expand_debug_expr): If non-memory op0
13943         has BLKmode, return NULL.
13944
13945 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
13946
13947         * config.gcc: Add support for --with-cpu option for bdver1.
13948         * config/i386/i386.h (TARGET_BDVER1): New macro.
13949         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
13950         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
13951         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
13952         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
13953         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
13954         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
13955         (processor_type): Add PROCESSOR_BDVER1.
13956         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
13957         processor_type in config/i386/i386.h.
13958         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
13959         movaps <reg, reg> instead of movapd <reg, reg> when replacing
13960         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
13961         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
13962         to emit packed xor instead of packed double/packed integer
13963         xor for SSE and AVX when moving a zero value.
13964         * config/i386/sse.md: Add check for
13965         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
13966         movapd/movdqa for SSE and AVX.
13967         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
13968         single logical operations i.e and, or and xor instead of packed double
13969         logical operations for SSE and AVX.
13970         * config/i386/i386-c.c (ix86_target_macros_internal):
13971         Add PROCESSOR_BDVER1.
13972         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
13973         (has_fma4, has_xop): New.
13974         * config/i386/i386.c (bdver1_cost): New variable.
13975         (m_BDVER1): New macro.
13976         (m_AMD_MULTIPLE): Add m_BDVER1.
13977         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
13978         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
13979         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
13980         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
13981         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
13982         x86_tune_sse_partial_reg_dependency,
13983         x86_tune_sse_unaligned_load_optimal,
13984         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
13985         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
13986         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
13987         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
13988         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
13989         Enable/disable for bdver1.
13990         (processor_target_table): Add bdver1_cost.
13991         (cpu_names): Add bdver1.
13992         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
13993          processor_alias_table.
13994         (ix86_expand_vector_move_misalign): Change.
13995         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
13996         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
13997         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
13998         of movupd/movdqu for SSE and AVX.
13999         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
14000         (ix86_tune_adjust_cost): Add code for bdver1.
14001         (standard_sse_constant_opcode): Add check for
14002         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
14003         of packed double xor for SSE and AVX.
14004
14005 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
14006
14007         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
14008         result to unsigned.
14009
14010 2010-05-14  Tristan Gingold  <gingold@adacore.com>
14011
14012         * toplev.c (default_debug_hooks): Remove this variable.
14013         (process_options): Remove assignments to default_debug_hooks.
14014
14015 2010-05-14  Martin Jambor  <mjambor@suse.cz>
14016
14017         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
14018         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
14019         * langhooks.h (struct lang_hooks_for_decls): Removed field
14020         fold_obj_type_ref.
14021         * tree.c (free_lang_data): Remove assignment to
14022         lang_hooks.fold_obj_type_ref.
14023         * tree.def (OBJ_TYPE_REF): Update comment.
14024
14025 2010-05-14  Richard Guenther  <rguenther@suse.de>
14026
14027         PR tree-optimization/44124
14028         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
14029
14030 2010-05-14  Alan Modra  <amodra@gmail.com>
14031
14032         PR target/44075
14033         * config/rs6000/rs6000.c (struct machine_function): Reorder
14034         fields for better packing.  Add lr_save_state.
14035         (rs6000_ra_ever_killed): Return lr_save_state if set.
14036         (rs6000_emit_eh_reg_restore): Set lr_save_state.
14037
14038 2010-05-13  Jan Hubicka  <jh@suse.cz>
14039
14040         * varpool.c (decide_is_variable_needed): Drop code checking
14041         TREE_SYMBOL_REFERENCED.
14042
14043 2010-05-13  Jan Hubicka  <jh@suse.cz>
14044
14045         * final.c (output_addr_const): Do not call mark_decl_referenced.
14046         * cgraphunit.c (process_function_and_variable_attributes): Use
14047         mark_needed_node dirrectly.
14048         (assemble_thunk): Do not call mark_decl_referenced.
14049
14050 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
14051
14052         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
14053
14054 2010-05-13  Jeff Law  <law@redhat.com>
14055
14056         * ira-conflicts.c (print_allocno_conflicts): New function broken out
14057         from...
14058         (print_conflicts): Call print_allocno_conflicts.
14059
14060 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
14061
14062         PR debug/44104
14063         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
14064         if it is NULL.
14065
14066 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
14067
14068         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
14069         t-mingw-w64 or t-mingw-w32 for multilib configuration.
14070         * config/i386/t-mingw-w32: New.
14071         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
14072
14073 2010-05-13  Martin Jambor  <mjambor@suse.cz>
14074
14075         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
14076         gimple-fold.c).
14077         * gimple-fold.c (get_base_binfo_for_type): New function.
14078         (gimple_get_relevant_ref_binfo): Likewise.
14079         (gimple_fold_obj_type_ref_known_binfo): Likewise.
14080         (gimple_fold_obj_type_ref): Likewise.
14081         (fold_gimple_call): Simplify condition for folding virtual calls
14082         and call gimple_fold_obj_type_ref.
14083         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
14084         (gimple_fold_obj_type_ref_known_binfo): Likewise.
14085
14086 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
14087
14088         * config/rs6000/rs6000-protos.h
14089         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
14090         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
14091         (rs6000_debug_mode_dependent_address)
14092         (rs6000_mode_dependent_address_ptr): Likewise.
14093
14094 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
14095
14096         PR debug/43983
14097         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
14098         by SRA.
14099         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
14100         * tree-sra.c (create_access_replacement): Call unshare_expr before
14101         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
14102         * dwarf2out.c: Include tree-flow.h.
14103         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
14104         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
14105         Handle DW_OP_bit_piece.
14106         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
14107         construct_piece_list, adjust_piece_list): New functions.
14108         (add_var_loc_to_decl): Handle SRA optimized variables.
14109         Adjust for var_loc_note to loc field renaming.
14110         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
14111         in VAR_LOCATION note.
14112         (new_loc_descr_op_bit_piece): New function.
14113         (dw_sra_loc_expr): New function.
14114         (dw_loc_list): Use it.  Don't handle the last range after the
14115         loop, handle it inside of the loop.  Adjust for var_loc_note
14116         to loc field renaming.
14117         (add_location_or_const_value_attribute): Only special case
14118         single entry loc lists if loc is NOTE_P.  Adjust for
14119         var_loc_note to loc field renaming.
14120         (dwarf2out_var_location): Don't set newloc->var_loc_note
14121         and newloc->next here.
14122
14123 2010-05-12  Jan Hubicka  <jh@suse.cz>
14124
14125         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
14126         flag.
14127         * cgraph.h (cgraph_only_called_directly_p,
14128         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
14129         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
14130         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
14131         (assemble
14132         * ipa.c (cgraph_remove_unreachable_nodes): Use
14133         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
14134         flags.
14135         * tree-inline.c (copy_bb): Check address_taken flag.
14136         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
14137         externally_visible flag.
14138
14139 2010-05-12  Jason Merrill  <jason@redhat.com>
14140
14141         PR bootstrap/44048
14142         PR target/44099
14143         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
14144         * sdbout.c (plain_type_1): Likewise.
14145         * dwarf2out.c (is_base_type): Likewise.
14146         (gen_type_die_with_usage): Likewise.  Generate
14147         DW_TAG_unspecified_type for any LANG_TYPE.
14148
14149 2010-05-12  Jan Hubicka  <jh@suse.cz>
14150
14151         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
14152         indrect edges too.
14153         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
14154         (cgraph_clone_edge): Update.
14155         (cgraph_node_remove_callees): Remove indirect calls too.
14156         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
14157         (cgraph_create_indirect_edge): Update prototype.
14158         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
14159         is_proper_for_analysis.
14160         (add_new_function, visited_nodes, function_insertion_hook_holder,
14161         get_local_reference_vars_info, mark_address_taken, mark_address,
14162         mark_load, mark_store, check_asm_memory_clobber, check_call,
14163         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
14164         (ipa_init): Do not initialize visited_nodes;
14165         function_insertion_hook_holder.
14166         (analyze_variable): Rewrite.
14167         (analyze_function): Rewrite.
14168         (copy_local_bitmap): Remove.
14169         (duplicate_node_dat): Do not duplicate local info.
14170         (generate_summary): Simplify to only walk cgraph.
14171         (write_node_summary_p, ipa_reference_write_summary,
14172         ipa_reference_read_summary): Remove.
14173         (propagate): Do not remove function insertion;
14174         generate summary.
14175         (pass_ipa_reference): NULLify summary handling fields.
14176         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
14177         (input_edge): Input ecf_flags.
14178         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
14179         (update_indirect_edges_after_inlining): Ignore edges with unknown
14180         param.
14181
14182 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
14183
14184         * implicit-zee.c: New file.
14185         * tree-pass.h (pass_implicit_zee): Declare.
14186         * passes.c (init_optimization_passes): Add zee pass.
14187         * common.opt (fzee): New flag.
14188         * timevar.def (TV_ZEE): Define.
14189         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
14190         and beyond.
14191         * Makefile.in (implicit-zee.o): Add new build file.
14192
14193 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
14194             Nathan Froyd  <froydnj@codesourcery.com>
14195
14196         * c-common.c (sync_resolve_params): Remove write-only variable.
14197
14198 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
14199
14200         * target.h (struct gcc_target): Add mode_dependent_address_p field.
14201         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
14202         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
14203         * targhooks.c (default_mode_dependent_address_p): New function.
14204         * targhooks.h (default_mode_dependent_address_p): Declare function.
14205         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
14206         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
14207         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
14208         target hook. Change return type to bool.
14209         * recog.h (mode_dependent_address_p): Change return type to bool.
14210
14211 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
14212             Nathan Froyd  <froydnj@codesourcery.com>
14213
14214         * tree-mudflap.c (build_function_type_0, build_function_type_1,
14215         build_function_type_2, build_function_type_3): Remove.
14216         (mudflap_init): Use build_function_type_list.
14217
14218 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
14219             Nathan Froyd  <froydnj@codesourcery.com>
14220
14221         * coverage.c (build_fn_info_value): Call build_constructor instead of
14222         build_constructor_from_list.
14223         (build_ctr_info_value): Likewise.
14224         (build_gcov_info): Likewise.
14225
14226 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
14227
14228         * tree.c (build_constructor): Compute TREE_CONSTANT for the
14229         resultant constructor.
14230         (build_constructor_single): Don't set TREE_CONSTANT.
14231         (build_constructor_from_list): Don't compute TREE_CONSTANT.
14232
14233 2010-05-12  Jan Hubicka  <jh@suse.cz>
14234
14235         * cgraph.h (struct varpool_node): Add aux.
14236         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
14237         * varpool.c (varpool_remove_node): Do not remove initializer.
14238         (varpool_reset_queue): Export.
14239         (varpool_finalize_decl): Volatile vars are forced to be output.
14240         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
14241         replaced decl.
14242         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
14243         process_references, varpool_can_remove_if_no_refs): New functions.
14244         (cgraph_remove_unreachable_nodes): Handle variables too.
14245
14246 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
14247
14248         PR target/44088
14249         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
14250
14251 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
14252
14253         PR middle-end/44085
14254         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
14255         change value of ORT_TASK.
14256         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
14257         (omp_notice_threadprivate_variable): New function.
14258         (omp_notice_variable): Call it for threadprivate variables.
14259         If enclosing ctx is a task, print enclosing task rather than
14260         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
14261         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
14262         if task has untied clause.
14263
14264         PR debug/42278
14265         * dwarf2out.c (base_type_die): Don't add name attribute here.
14266         (modified_type_die): Instead of sizetype use
14267         its underlying original type.  If a DW_TAG_base_type doesn't
14268         have name added, add __unknown__.
14269         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
14270         always call force_type_die instead.
14271
14272 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
14273
14274         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
14275         for __stack_chk_guard.
14276
14277 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
14278
14279         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
14280         don't call start_source_file debug hook here...
14281         (finish_options): ... but here, after outputting predefined and
14282         command line defines and undefs.
14283
14284         PR middle-end/44071
14285         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
14286         no fallthru edge.
14287         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
14288         optimizing away empty bb with no successors, move over its
14289         footer chain to fallthru predecessor.
14290         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
14291         (rtl_split_edge): For asm goto call patch_jump_insn even if
14292         splitting fallthru edge.
14293
14294         PR c++/44059
14295         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
14296         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
14297         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
14298         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
14299         on DW.ref.* decls.
14300
14301         PR c++/44062
14302         * c-parser.c (c_parser_expression): Mark LHS of a comma
14303         expression as read if it is a decl, handled component or
14304         COMPOUND_EXPR with that on the RHS.
14305         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
14306         if it is a decl or handled component.
14307
14308 2010-05-11  Jan Hubicka  <jh@suse.cz>
14309
14310         * lto-symtab.c (lto_symtab_free): New function.
14311         * lto-streamer.h (lto_symtab_free): Declare.
14312
14313 2010-05-11  Jan Hubicka  <jh@suse.cz>
14314
14315         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
14316         that if function is needed it is reachable.
14317         (lto_output_node): See if it the function is reachable or referenced.
14318         (output_cgraph): Update call of lto_output_node.
14319         * lto-streamer.h (reachable_from_other_partition_p): Declare.
14320
14321 2010-05-11  Jan Hubicka  <jh@suse.cz>
14322
14323         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
14324         Mark as used.
14325
14326 2010-05-11  Jan Hubicka  <jh@suse.cz>
14327
14328         PR tree-optimize/44063
14329         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
14330         queue.
14331         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
14332         limits.
14333         (estimate_function_body_sizes): Compute sizes even when disregarding.
14334
14335 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
14336
14337         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
14338
14339 2010-05-11  Jan Hubicka  <jh@suse.cz>
14340
14341         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
14342         into every boundary.
14343
14344 2010-05-11  Jan Hubicka  <jh@suse.cz>
14345
14346         * matrix-reorg.c (matrix_reorg): Rebuild edges.
14347
14348 2010-05-11  Jan Hubicka  <jh@suse.cz>
14349
14350         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
14351         lto_streamer_cache_delete): Put nodes into heap.
14352         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
14353         heap.
14354
14355 2010-05-11  Jan Hubicka  <jh@suse.cz>
14356
14357         * cgraphbuild.c (cgraph_rebuild_references): New.
14358         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
14359         out extern inlines.
14360         * cgraph.h (cgraph_rebuild_references): Declare.
14361         * tree-inline.c (tree_function_versioning): Use it.
14362         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
14363
14364 2010-05-11  Jan Hubicka  <jh@suse.cz>
14365
14366         * cgraph.c: Include ipa-utils.h
14367         (cgraph_create_virtual_clone): Update references.
14368         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
14369
14370 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
14371
14372         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
14373         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
14374         cache size.
14375
14376 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
14377
14378         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
14379
14380 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
14381
14382         * gcc.c (execute): For -### don't quote arguments that
14383         contain just alphanumerics and _/-. characters.
14384         * doc/invoke.texi: Document that change for -###.
14385
14386         PR debug/44023
14387         * df-problems.c (struct dead_debug): Add to_rescan field.
14388         (dead_debug_init): Clear to_rescan field.
14389         (dead_debug_finish): Rescan all debug insns in to_rescan
14390         bitmap and free the bitmap.
14391         (dead_debug_insert_before): Instead of rescanning debug insns
14392         immediately queue their rescanning until dead_debug_finish.
14393         (df_note_bb_compute): After dead_debug_add do continue instead
14394         of break.
14395
14396 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
14397
14398         PR debug/44028
14399         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
14400         clear also INSN_REG_USE_LIST.
14401
14402 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14403
14404         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
14405
14406 2010-05-10  Jan Hubicka  <jh@suse.cz>
14407
14408         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
14409         commited change.
14410
14411 2010-05-10  Jan Hubicka  <jh@suse.cz>
14412
14413         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
14414         Allocate encoders.
14415         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
14416         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
14417         (lto_streamer_cache_create): Init alloc pool.
14418         (lto_streamer_cache_delete): Free alloc pool.
14419         * lto-streamer.h: Include alloc pool.
14420         (lto_streamer_cache_d): Use alloc pool.
14421         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
14422
14423 2010-05-10  Jan Hubicka  <jh@suse.cz>
14424
14425         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
14426         * cgraphbuild.c: Include except.h
14427         (record_type_list, record_eh_tables): New function.
14428         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
14429
14430 2010-05-10  Jan Hubicka  <jh@suse.cz>
14431
14432         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
14433         __frame_dummy_init_array_entry, force_to_data): Attribute as used
14434         rather than unused.
14435
14436 2010-05-10  Michael Matz  <matz@suse.de>
14437
14438         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
14439         (can_reassociate_p): Use FLOAT_TYPE_P.
14440         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
14441         (vect_force_simple_reduction): ... this.
14442         * tree-parloops.c (gather_scalar_reductions): Use
14443         vect_force_simple_reduction.
14444         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
14445         vect_is_simple_reduction, add modify argument, if true rewrite
14446         "a-b" into "a+(-b)".
14447         (vect_is_simple_reduction, vect_force_simple_reduction): New
14448         functions.
14449         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
14450
14451 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
14452             Vladimir Makarov  <vmakarov@redhat.com>
14453
14454         PR rtl-optimization/44012
14455         * ira-build.c (remove_unnecessary_allocnos): Nullify
14456         regno_allocno_map of the removed allocno.
14457
14458 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14459
14460         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
14461         to /dev/null.
14462         * configure: Regenerate.
14463
14464 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14465
14466         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
14467         unused.
14468         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
14469         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
14470         support in Sun ld.
14471         * configure: Regenerate.
14472
14473 2010-05-10  Richard Guenther  <rguenther@suse.de>
14474
14475         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
14476         marked if the entry identifier is marked.
14477
14478 2010-05-10  Richard Guenther  <rguenther@suse.de>
14479
14480         * c-common.c (struct c_common_attributes): Add fnspec attribute.
14481         (handle_fnspec_attribute): New function.
14482         * gimple.h (gimple_call_return_flags): Declare.
14483         (gimple_call_arg_flags): Likewise.
14484         * gimple.c (gimple_call_arg_flags): New function.
14485         (gimple_call_return_flags): Likewise.
14486         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
14487         New argument flags.
14488         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
14489         return value flags.
14490         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
14491         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
14492         main work to ...
14493         (make_heapvar_for): ... this new function.
14494         (handle_rhs_call): Handle fnspec attribute argument specifiers.
14495         (handle_lhs_call): Likewise.
14496         (find_func_aliases): Adjust.
14497
14498 2010-05-10  Richard Guenther  <rguenther@suse.de>
14499
14500         PR tree-optimization/44050
14501         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
14502
14503 2010-05-10  Wei Guozhi  <carrot@google.com>
14504
14505         PR target/42879
14506         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
14507
14508 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
14509
14510         PR c/10676
14511         * c-typeck.c (lookup_field): Take a type directly.  Update
14512         recursive calls.
14513         (build_component_ref): Update call to lookup_field.
14514         (set_init_label): Use lookup_field to find initialized field.
14515         Handle returned list of fields like a sequence of designators.
14516
14517 2010-05-09  Richard Guenther  <rguenther@suse.de>
14518
14519         PR middle-end/44024
14520         * fold-const.c (tree_single_nonzero_warnv_p): Properly
14521         handle &FUNCTION_DECL.
14522
14523 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
14524
14525         PR c/4784
14526         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
14527         structures and unions recursively.
14528         (detect_field_duplicates): Move duplicate detection with a hash to
14529         detect_field_duplicates_hash.  Always use a hash if anonymous
14530         structures or unions are present.
14531         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
14532         give errors.
14533
14534 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
14535
14536         PR target/44046
14537         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
14538         detect Atom, Core 2 and Core i7.
14539
14540 2010-05-09  Richard Guenther  <rguenther@suse.de>
14541
14542         * gcc.c (store_arg): Handle temporary file deletion for
14543         joined arguments.
14544
14545 2010-05-09  Richard Guenther  <rguenther@suse.de>
14546
14547         PR middle-end/44043
14548         * ipa-inline.c (estimate_function_body_sizes): Return after
14549         disregarding inline limits.
14550
14551 2010-05-09  Richard Guenther  <rguenther@suse.de>
14552
14553         * gcc.c (store_arg): Revert last change.
14554
14555 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
14556
14557         PR middle-end/28685
14558         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
14559         (optimize_ops_list): Call it.
14560
14561 2010-05-08  Richard Guenther  <rguenther@suse.de>
14562
14563         PR tree-optimization/44030
14564         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
14565         NECESSARY flag if we propagate from a inserted expression.
14566
14567 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
14568
14569         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
14570         domain types as equal if they are both PLACEHOLDER_EXPRs.
14571
14572 2010-05-08  Richard Guenther  <rguenther@suse.de>
14573
14574         * lto-wrapper.c (run_gcc): Remove linker output from
14575         command line for LTRANS invocation.
14576
14577 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
14578
14579         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
14580         lto-macho as lto_binary_reader.
14581         * target.h (struct gcc_target): New hooks lto_start and lto_end.
14582         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
14583         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
14584         in lto_start and lto_end calls.
14585         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
14586         magic numbers.
14587         (scan_prog_file): Update is_elf_or_coff call.
14588         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
14589
14590         * collect2.c (main): Fix enum comparison.
14591
14592         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
14593         Add prototypes.
14594         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
14595         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
14596         and TARGET_ASM_LTO_END.
14597         * darwin.c: Include obstack.h and lto-streamer.h.
14598         (lto_section_names_offset, lto_section_names_obstack,
14599         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
14600         global variables.
14601         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
14602         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
14603         to a temporary file.
14604         (darwin_asm_lto_end): New function.  Restore asm_out_file.
14605         (darwin_asm_named_section): For LTO sections, replace the name with
14606         the offset of the section name in a string table, and build this
14607         table.
14608         (darwin_file_start): Initialize global vars for LTO support.
14609         (darwin_file_end): If output to asm_out_file was redirected, append it
14610         to the proper asm_out_file here.  Add the section names section.
14611
14612 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
14613
14614         * c-pragma.c (pending_weak_d, pending_weak): New.
14615         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
14616         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
14617         handle_pragma_weak): Update the uses of pending_weaks.
14618
14619 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14620
14621         PR documentation/44016
14622         * doc/standards.texi (Standards): Link to unversioned
14623         cxx0x_status.html page.
14624
14625 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
14626
14627         PR target/43708
14628         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
14629         in addition to TREE_USED, to avoid "set but unused" warnings.
14630
14631 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
14632
14633         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
14634         (is_loop_prefetching_profitable): Do not insert prefetches
14635         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
14636         times the prefetch ahead distance.
14637
14638 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
14639
14640         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
14641         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
14642         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
14643         the unroll_factor.
14644
14645 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
14646
14647         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
14648         a diagnostic info when the insn-to-mem ratio is too small.
14649
14650 2010-05-07  Richard Guenther <rguenther@suse.de>
14651
14652         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
14653         the linker plugin.
14654         (store_arg): Queue temp_filename for deletion instead of
14655         the whole argument.
14656
14657 2010-05-07  Richard Guenther  <rguenther@suse.de>
14658
14659         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
14660         (run_gcc): Handle LTRANS phase invocation.
14661         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
14662
14663 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
14664
14665         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
14666         this is also meaningful on PARM_DECLs and RESULT_DECLs.
14667
14668 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14669
14670         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
14671
14672 2010-05-07  Richard Guenther  <rguenther@suse.de>
14673
14674         PR tree-optimization/44020
14675         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
14676         code when PRE is not yet initialized.
14677
14678 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14679
14680         * config/mips/dbxmdebug.h: Remove.
14681         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
14682
14683 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
14684
14685         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
14686         with null pointer and also warn about ordered comparison of zero with
14687         pointer if -Wextra.
14688
14689 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14690
14691         * graphite-blocking.c
14692         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
14693         * graphite-clast-to-gimple.c
14694         (clast_to_gcc_expression): Same.
14695         (precision_for_value): Same.
14696         (precision_for_interval): Same.
14697         (gcc_type_for_interval): Same.
14698         (graphite_create_new_guard): Same.
14699         (compute_bounds_for_level): Same.
14700         (graphite_create_new_loop_guard): Same.
14701         * graphite-interchange.c
14702         (build_linearized_memory_access): Same.
14703         (pdr_stride_in_loop): Same.
14704         (memory_strides_in_loop_1): Same.
14705         (memory_strides_in_loop): Same.
14706         (extend_scattering): Same.
14707         (psct_scattering_dim_for_loop_depth): Same.
14708         (pbb_number_of_iterations): Same.
14709         * graphite-poly.h
14710         (debug_iteration_domains): Same.
14711         * graphite-ppl.c
14712         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14713         (ppl_set_inhomogeneous_gmp): Same.
14714         (ppl_strip_loop): Same.
14715         (ppl_lexico_compare_linear_expressions): Same.
14716         (ppl_read_polyhedron_matrix): Same.
14717         (ppl_max_for_le_pointset): Same.
14718         * graphite-ppl.h
14719         (ppl_read_polyhedron_matrix): Same.
14720         (tree_int_to_gmp): Same.
14721         (gmp_cst_to_tree): Same.
14722         (ppl_set_inhomogeneous): Same.
14723         (ppl_set_inhomogeneous_tree): Same.
14724         (ppl_set_coef): Same.
14725         (ppl_set_coef_tree): Same.
14726         * graphite-sese-to-poly.c
14727         (build_pbb_scattering_polyhedrons): Same.
14728         (build_scop_scattering): Same.
14729         (scan_tree_for_params_right_scev): Same.
14730         (scan_tree_for_params): Same.
14731         (find_params_in_bb): Same.
14732         (find_scop_parameters): Same.
14733         (add_upper_bounds_from_estimated_nit): Same.
14734         (build_loop_iteration_domains): Same.
14735         (add_condition_to_domain): Same.
14736         (pdr_add_memory_accesses): Same.
14737
14738 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
14739
14740         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
14741         CLooG's value_* macros to their respective mpz_* counterparts.
14742         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
14743         (graphite_create_new_loop_guard): Same.
14744         * graphite-interchange.c (build_linearized_memory_access): Same.
14745         (pdr_stride_in_loop): Same.
14746         (memory_strides_in_loop_1): Same.
14747         (1st_interchange_profitable_p): Same.
14748         * graphite-poly.c (extend_scattering): Same.
14749         (psct_scattering_dim_for_loop_depth): Same.
14750         (pbb_number_of_iterations): Same.
14751         (pbb_number_of_iterations_at_time): Same.
14752         * graphite-poly.h (new_1st_loop): Same.
14753         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
14754         (oppose_constraint): Same.
14755         (insert_constraint_into_matrix): Same.
14756         (ppl_set_inhomogeneous_gmp): Same.
14757         (ppl_set_coef_gmp): Same.
14758         (ppl_strip_loop): Same.
14759         (ppl_lexico_compare_linear_expressions): Same.
14760         (ppl_max_for_le_pointset): Same.
14761         (ppl_min_for_le_pointset): Same.
14762         (ppl_build_realtion): Same.
14763         * graphite-ppl.h (gmp_cst_to_tree): Same.
14764         (ppl_set_inhomogeneous): Same.
14765         (ppl_set_inhomogeneous_tree): Same.
14766         (ppl_set_coef): Same.
14767         (ppl_set_coef_tree): Same.
14768         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
14769         (build_scop_scattering): Same.
14770         (add_value_to_dim): Same.
14771         (scan_tree_for_params_right_scev): Same.
14772         (scan_tree_for_params_int): Same.
14773         (scan_tree_for_params): Same.
14774         (find_params_in_bb): Same.
14775         (find_scop_parameters): Same.
14776         (add_upper_bounds_from_estimated_nit): Same.
14777         (build_loop_iteration_domains): Same.
14778         (create_linear_expr_from_tree): Same.
14779         (add_condition_to_domain): Same.
14780         (pdr_add_memory_accesses): Same.
14781
14782 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
14783             Jason Merrill  <jason@redhat.com>
14784
14785         * c-common.c (c_common_reswords): Add nullptr.
14786         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
14787         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
14788         (gen_type_die_with_usage): Likewise.
14789         * dbxout.c (dbxout_type): Likewise.
14790         * sdbout.c (plain_type_1): Likewise.
14791
14792 2010-05-06  Jason Merrill  <jason@redhat.com>
14793
14794         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
14795         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
14796         ret appropriately.
14797         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
14798
14799         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
14800         stripping WITH_SIZE_EXPR.
14801         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
14802         change.
14803
14804 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14805
14806         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
14807         list of obsolete configurations.
14808         Disabled check for obsolete configurations.
14809         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
14810         Removed support for previous versions.
14811         * config/mips/iris.h: Removed.
14812         * config/mips/iris5.h: Removed.
14813         * config/mips/iris6.h: Merged old iris.h contents.
14814         (TARGET_IRIX): Removed.
14815         (DRIVER_SELF_SPECS): Removed mabi=32.
14816         (IDENT_ASM_OP): Removed undef.
14817         (STARTFILE_SPEC): Removed mabi=32.
14818         (ENDFILE_SPEC): Likewise.
14819         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
14820         (MACHINE_TYPE): Update for IRIX 6.5.
14821         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
14822         TARGET_IRIX by TARGET_IRIX6.
14823         (mips_file_start): Likewise.
14824         (mips_output_external): Remove IRIX 5/6 O32 support.
14825         (mips_output_function_prologue): Likewise.
14826         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
14827         TARGET_IRIX6.
14828         (TARGET_CPU_CPP_BUILTINS): Likewise.
14829         (TARGET_IRIX): Removed.
14830         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
14831         (MULTILIB_DIRNAMES): Removed 32.
14832         (MULTILIB_OSDIRNAMES): Removed ../lib.
14833         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
14834         (Specific, mips-sgi-irix5): Document removal.
14835         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
14836         Remove references to older IRIX 6 releases and the O32 ABI.
14837
14838 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
14839
14840         PR bootstrap/43994
14841         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
14842         instead of DF_REF_REAL_REG.
14843
14844 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
14845
14846         PR target/43888
14847         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
14848         handling to still return true for x64 targets.
14849
14850 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
14851
14852         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
14853
14854 2010-05-06  Jan Hubicka  <jh@suse.cz>
14855
14856         PR tree-optimization/43791
14857         * ipa-inline.c (update_caller_keys): Remove bogus
14858         disregard_inline_limits check.
14859
14860 2010-05-06  Michael Matz  <matz@suse.de>
14861
14862         PR tree-optimization/43984
14863         * tree-ssa-pre.c (inserted_phi_names): Remove.
14864         (inserted_exprs): Change to bitmap.
14865         (create_expression_by_pieces): Set bits, don't append to vector.
14866         (insert_into_preds_of_block): Don't handle inserted_phi_names.
14867         (eliminate): Don't look at inserted_phi_names, remove deleted
14868         insns from inserted_exprs.
14869         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
14870         (init_pre, fini_pre): Allocate and free bitmaps.
14871         (execute_pre): Insert insns on edges before elimination.
14872
14873 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
14874
14875         * tree.c (initializer_zerop): Handle STRING_CST.
14876
14877 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14878
14879         PR 40989
14880         * doc/invoke.texi (Wimplicit): Document as C only.
14881         * opts.c (common_handle_option): Add argument kind.
14882         (handle_option): Rename as read_cmdline_option. Factor out code to...
14883         (handle_option): ... here. New.
14884         (handle_options): Rename as read_cmdline_options.
14885         (decode_options): Update call.
14886         (set_option): Use option index instead of option pointer. Classify
14887         diagnostics correctly.
14888         (enable_warning_as_error): Call handle_option.
14889         * opts.h (set_option): Update declaration.
14890         (handle_option): Declare.
14891         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
14892         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
14893         * c-opts.c (set_Wimplicit): Delete.
14894         (c_family_lang_mask): New static constant.
14895         (c_common_handle_option): Add argument kind. Use handle_option
14896         instead of set_Wimplicit.
14897         (c_common_post_options): warn_implicit and warn_implicit_int
14898         are disabled by default.
14899         * c-common.c (warn_implicit): Do not define here.
14900         * c-common.h (warn_implicit): Do not declare here.
14901         (c_common_handle_option): Update declaration.
14902         * lto-opts.c (lto_reissue_options): Update call to set_option.
14903
14904 2010-05-06  Richard Guenther  <rguenther@suse.de>
14905
14906         PR tree-optimization/43571
14907         * domwalk.c (walk_dominator_tree): Walk the dominator
14908         sons in more optimal order.
14909
14910 2010-05-06  Richard Guenther  <rguenther@suse.de>
14911
14912         PR tree-optimization/43934
14913         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
14914         (stmt_cost): Likewise.
14915         (extract_true_false_args_from_phi): New helper.
14916         (determine_max_movement): For PHI nodes verify we can hoist them
14917         and compute their cost.
14918         (determine_invariantness_stmt): Handle PHI nodes.
14919         (move_computations_stmt): Likewise.  Hoist PHI nodes in
14920         if-converted form using COND_EXPRs.
14921         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
14922         (tree_ssa_lim): Likewise.
14923         * tree-flow.h (tree_ssa_lim): Adjust prototype.
14924         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
14925
14926 2010-05-06  Richard Guenther  <rguenther@suse.de>
14927
14928         PR tree-optimization/43987
14929         * tree-ssa-structalias.c (could_have_pointers): For possibly
14930         address-taken variables force pointers to be recorded.
14931         (create_variable_info_for_1): Likewise.
14932         (push_fields_onto_fieldstack): Pass in wheter all fields
14933         must have pointers.
14934         (find_func_aliases): Query types instead of vars whether
14935         they contain pointers where appropriate.
14936
14937 2010-05-06  Jan Hubicka  <jh@suse.cz>
14938
14939         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
14940         (record_reference, mark_address, mark_load, mark_store): Record
14941         references.
14942         (record_references_in_initializer): Update call of record_references.
14943         (rebuild_cgraph_edges): Remove all references before rebuiding.
14944         * cgraph.c (cgraph_create_node): Clear ref list.
14945         (cgraph_remove_node): Remove references.
14946         (dump_cgraph_node): Dump references.
14947         (cgraph_clone_node): Clone references.
14948         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
14949         (struct cgraph_node, varpool_node): Add ref_lst.
14950         * ipa-ref.c: New file.
14951         * ipa-ref.h: New file.
14952         * ipa-ref-inline.h: New file.
14953         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
14954         (referenced_from_other_partition_p): New function.
14955         (lto_output_varpool_node): Take set arugment; call
14956         referenced_from_other_partition.
14957         (lto_output_ref): New.
14958         (add_references): New.
14959         (output_refs): New.
14960         (output_cgraph): Compute boundary based on references; output refs.
14961         (output_varpool): Accept cgraph_node_set argument.
14962         (input_ref): New.
14963         (input_refs): New.
14964         (input_cgraph): Call input_refs.
14965         * lto-section-in.c (lto_section_name): Add refs.
14966         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
14967         (ipa-ref.o): New file.
14968         * varpool.c (varpool_node): Clear ipa ref list.
14969         (varpool_remove_node): Remove references.
14970         (dump_varpool_node): Dump references.
14971         (varpool_assemble_decl): Only compile finalized ones.
14972         (varpool_extra_name_alias): Initialize ref list.
14973         * lto-streamer.c (lto-get_section_name): Add .refs section.
14974         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
14975         (referenced_from_other_partition_p): Declared.
14976
14977 2010-05-06  Ira Rosen  <irar@il.ibm.com>
14978
14979         PR tree-optimization/43901
14980         * tree-vect-stmts.c (vectorizable_call): Assert that vector
14981         type is not NULL if it's transformation phase, and return
14982         FALSE if it's analysis.
14983         (vectorizable_conversion, vectorizable_operation,
14984         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
14985
14986 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
14987
14988         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
14989         Delete.
14990         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
14991         New define.
14992         * config/mips/mips-protos.h
14993         (mips_small_register_classes_for_mode_p): Delete prototype.
14994
14995 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
14996
14997         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
14998         * config/arm/arm.c (multiple_operation_profitable_p,
14999         compute_offset_order): New static functions.
15000         (load_multiple_sequence, store_multiple_sequence): Use them.
15001         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
15002         memory offsets, not register numbers.
15003         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
15004
15005 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
15006
15007         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
15008         (get_pending_sizes, put_pending_size, put_pending_sizes):
15009         Update the uses of pending_sizes.
15010         * c-decl.c (store_parm_decls): Likewise.
15011         * c-tree.h (struct c_arg_info): Likewise.
15012         * tree.h: Update the prototype for get_pending_sizes and
15013         put_pending_sizes.
15014
15015 2010-05-05  Jason Merrill  <jason@redhat.com>
15016
15017         PR debug/43370
15018         * c-common.c (handle_aligned_attribute): Respect
15019         ATTR_FLAG_TYPE_IN_PLACE.
15020
15021         PR testsuite/43758
15022         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
15023         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
15024         (TARGET_INITIALIZER): Use it.
15025         * c-common.c (attribute_takes_identifier_p): Call it.
15026         * c-common.h: Update prototype.
15027         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
15028         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
15029
15030 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
15031
15032         PR debug/43950
15033         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
15034         DW_ID_down_case for Fortran compilation units.
15035
15036 2010-05-05  Jan Hubicka  <jh@suse.cz>
15037
15038         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
15039         handle aliases.
15040
15041 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
15042
15043         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
15044         a variable-sized RESULT_DECL.
15045
15046 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
15047
15048         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
15049
15050 2010-05-05  Jason Merrill  <jason@redhat.com>
15051
15052         PR c++/43787
15053         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
15054         returns GS_OK.
15055         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
15056
15057 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
15058             Jakub Jelinek  <jakub@redhat.com>
15059
15060         PR debug/43478
15061         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
15062         (dead_debug_init, dead_debug_finish): New functions.
15063         (dead_debug_add, dead_debug_insert_before): Likewise.
15064         (df_note_bb_compute): Initialize a dead_debug object, add dead
15065         debug uses to it, insert debug bind insns before death insns,
15066         reset debug insns that refer to pending uses at the end.
15067         * rtl.h (make_debug_expr_from_rtl): New prototype.
15068         * varasm.c (make_debug_expr_from_rtl): New function.
15069
15070 2010-05-05  Jan Hubicka  <jh@suse.cz>
15071
15072         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
15073         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
15074         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
15075         lto_varpool_encoder_deref, lto_varpool_encoder_size,
15076         lto_varpool_encoder_encode_initializer_p,
15077         lto_set_varpool_encoder_encode_initializer): New functions.
15078         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
15079         call output_varpool.
15080         (input_varpool_node): Do not always set analyzed.
15081         (input_cgraph_1): Return vector of cgraph nodes.
15082         (input_varpool_1): Return vector of varpools.
15083         (input_cgraph): Free the vectors.
15084         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
15085         output only initializers needed.
15086         (lto_output): Only call output_cgraph.
15087         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
15088         * lto-section-out.c (lto_new_out_decl_state): Initialize
15089         state->varpool_node_encoder.
15090         * lto-streamer.h (lto_varpool_encoder_d): New.
15091         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
15092         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
15093         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
15094         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
15095         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
15096         Declare.
15097         (output_varpool, input_varpool): Remove declarations.
15098
15099 2010-05-05  Jan Hubicka  <jh@suse.cz>
15100
15101         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
15102         with body can prevail.
15103
15104 2010-05-05  Jan Hubicka  <jh@suse.cz>
15105
15106         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
15107         size.
15108
15109 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
15110
15111         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
15112
15113         * gengtype.h (erro_at_line): Constify pos argument.
15114
15115         * gengtype.c: Include hashtab.h.
15116         (enum gc_used): Document GC_MAYBE_POINTED_TO.
15117         (error_at_line): Constify pos argument.
15118         (do_typedef): Initialize p->opt field.
15119         (get_file_gtfilename): Fix comment typo.
15120         (struct walk_type_data): Constify line field.
15121         (get_output_file_for_structure): New function.
15122         (write_local_func_for_structure): Constify orig_s argument.
15123         Use get_output_file_for_structure.
15124         (write_func_for_structure): Use get_output_file_for_structure.
15125         (INDENT): New define.
15126         (dump_pair, dump_type, dump_type_list, dump_typekind)
15127         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
15128         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
15129         functions.
15130         (seen_types): New variable.
15131         (main): New variable do_dump.  Process "-d" command line option.
15132         Call dump_everything if dump requested.
15133
15134 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
15135
15136         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
15137         in a temporary instead of invoking the macro multiple times.
15138         (track_expr_p): Likewise.
15139
15140 2010-05-04  Neil Vachharajani <nvachhar@google.com>
15141
15142         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
15143         per new semantics.
15144         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
15145         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
15146         conditions for printing notes.
15147         * common.opt (-Wcoverage-mismatch): Allow negative, default to
15148         true, update documentation.
15149         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
15150
15151 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
15152
15153         PR c/43981
15154         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
15155         on dimen.
15156
15157 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
15158
15159         PR target/43799
15160         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
15161         (*sse_prologue_save_insn1): Likewise.
15162         (SSE prologue save splitter): Likewise.
15163
15164 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
15165
15166         * tree.c (free_lang_data_in_one_sizepos): New inline function.
15167         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
15168         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
15169         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
15170         all decls.  Call it on DECL_FIELD_OFFSET of fields.
15171         (find_decls_types_r): Follow DECL_VALUE_EXPR.
15172         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
15173
15174 2010-05-04  Martin Jambor  <mjambor@suse.cz>
15175
15176         * tree-sra.c (build_access_from_expr_1): The first parameter type
15177         changed to simple tree.
15178         (build_access_from_expr): Likewise, gsi parameter was eliminated.
15179         (scan_assign_result): Renamed to assignment_mod_result, enum elements
15180         renamed as well.
15181         (build_accesses_from_assign): Removed all parameters except for a
15182         simple gimple statement.  Now returns a simple bool.
15183         (scan_function): All non-analysis parts moved to separate functions
15184         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
15185         parameters and updated both callers.
15186         (sra_modify_expr): Removed parameter data.
15187         (sra_modify_function_body): New function.
15188         (perform_intra_sra): Call sra_modify_function_body to modify the
15189         function body.
15190         (replace_removed_params_ssa_names): Parameter data changed into
15191         adjustments vector.
15192         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
15193         changed the parameter dont_convert to convert with the opposite
15194         meaning.
15195         (sra_ipa_modify_assign): Parameter data changed into adjustments
15196         vector, return value changed to bool.
15197         (ipa_sra_modify_function_body): New function.
15198         (sra_ipa_reset_debug_stmts): Updated a comment.
15199         (modify_function): Use ipa_sra_modify_function_body to modify function
15200         body.
15201
15202 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
15203
15204         PR middle-end/43671
15205         * alias.c (true_dependence): Handle the same VALUE in x and mem.
15206         (canon_true_dependence): Likewise.
15207         (write_dependence_p): Likewise.
15208
15209 2010-05-04  Jan Hubicka  <jh@suse.cz>
15210
15211         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
15212         * cgraphbuild.c: Include ipa-utils.h
15213         (record_reference_ctx): New struct.
15214         (record_reference): Simplify to work on initializers; not statements.
15215         (mark_address, mark_load, mark_store): New.
15216         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
15217         walk PHI nodes too.
15218         (record_references_in_initializer): Update use of record_reference.
15219         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
15220         walk PHI nodes too.
15221
15222 2010-05-04  Jan Hubicka  <jh@suse.cz>
15223
15224         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
15225         node will be removed anyway.
15226         (lto_varpool_replace_node): Allow also unanalyzed nodes;
15227         relink aliases of node into prevailing node.
15228         * varpool.c (varpool_remove_node): Remove aliases properly;
15229         when removing node, remove all its aliases too; remove DECL_INITIAL
15230         of removed node; ggc_free the varpool node.
15231
15232 2010-05-04  Richard Guenther  <rguenther@suse.de>
15233
15234         PR tree-optimization/43879
15235         * tree-ssa-structalias.c (alias_get_name): Use
15236         DECL_ASSEMBLER_NAME if available.
15237         (create_function_info_for): Return the varinfo node.
15238         (ipa_pta_execute): Associate same-body aliases and extra names
15239         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
15240
15241 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
15242
15243         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
15244
15245 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
15246
15247         PR bootstrap/43964
15248         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
15249         only if HONOR_REG_ALLOC_ORDER is not defined.
15250
15251 2010-05-04  Richard Guenther  <rguenther@suse.de>
15252
15253         PR tree-optimization/43949
15254         * tree-vrp.c (extract_range_from_binary_expr): Only handle
15255         TRUNC_MOD_EXPR.
15256
15257 2010-04-26  Jason Merrill  <jason@redhat.com>
15258
15259         * c.opt (-fstrict-enums): New.
15260         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
15261
15262 2010-05-03  David Ung <davidu@mips.com>
15263             James E. Wilson  <wilson@codesourcery.com>
15264
15265         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
15266         emit the trap instruction before the divide for TUNE_74K.
15267
15268 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
15269
15270         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
15271         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
15272         based on the above, for new target hook.
15273
15274         * hooks.c (hook_bool_mode_true): New generic hook.
15275         * hooks.h (hook_bool_mode_true): Add prototype.
15276
15277         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
15278         target hook.
15279         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
15280         target hook, set to hook_bool_mode_false.
15281         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
15282         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
15283         with targetm.small_register_classes_for_mode_p.
15284         (find_reusable_reload): Likewise.
15285         (combine_reloads): Likewise.
15286         * reload1.c (reload_as_needed): Likewise.
15287         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
15288         * ifcvt.c (noce_process_if_block, check_cond_move_block,
15289         dead_or_predicable): Likewise.
15290         * regmove.c (optimize_reg_copy_1): Likewise.
15291         * calls.c (prepare_call_address): Likewise.
15292         (precompute_register_parameters): Likewise.
15293
15294         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
15295         hook definition.
15296         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
15297         implementation of the hook that considers all register classes
15298         small except for SH64.
15299         (sh_override_options): Use the new hook.
15300         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
15301         Add prototype.
15302
15303         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
15304         hook definition.
15305         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
15306         implementation of the hook that considers all register classes
15307         small for THUMB1.
15308         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
15309         Add prototype.
15310
15311         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
15312         hook definition.
15313         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
15314         implementation of the hook that considers all register classes
15315         small for MIPS16.
15316         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
15317         Add prototype.
15318
15319         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
15320         hook definition.
15321         * config/m32c/m32c.h: Likewise.
15322         * config/pdp11/pdp11.h: Likewise.
15323         * config/avr/avr.h: Likewise.
15324         * config/xtensa/xtensa.h: Likewise.
15325         * config/m68hc11/m68hc11.h: Likewise.
15326         * config/mn10300/mn10300.h: Likewise.
15327         * config/mcore/mcore.h: Likewise.
15328         * config/h8300/h8300.h: Likewise.
15329         * config/bfin/bfin.h: Likewise.
15330
15331         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
15332         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
15333
15334 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
15335
15336         * double-int.h (tree_to_double_int): Remove macro.
15337         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
15338         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
15339         (tree_to_double_int): New function.
15340         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
15341         Move ...
15342         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
15343
15344 2010-05-03  Richard Guenther  <rguenther@suse.de>
15345
15346         PR tree-optimization/43971
15347         * tree-ssa-structalias.c (get_constraint_for_1): Fix
15348         constraints in the !flag_delete_null_pointer_checks case.
15349
15350 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
15351
15352         PR debug/43972
15353         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
15354         result mode matches original rtl mode.
15355
15356 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
15357
15358         PR target/43888
15359         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
15360
15361 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15362
15363         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
15364         when processing flag options.
15365
15366 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15367
15368         * gcov-iov.c (main): Change format string placeholder
15369         from %#08x to 0x%08x.
15370         * genchecksum.c (dosum): Change format string placeholder
15371         from %#02x to 0x%02x.
15372
15373 2010-05-02  Richard Guenther  <rguenther@suse.de>
15374
15375         PR tree-optimization/43879
15376         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
15377
15378 2010-05-02  Bruno Haible  <bruno@clisp.org>
15379
15380         * doc/extend.texi (Function Attributes): Fix a typo.
15381
15382 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15383
15384         Revert:
15385         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
15386         placeholder from 0x%x to %#x.
15387         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
15388         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
15389         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
15390         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
15391         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
15392         * config/i386/i386.c (ix86_target_string): Ditto.
15393         * config/i386/i386.c (output_pic_addr_const): Ditto.
15394         (print_operand): Ditto.
15395
15396 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
15397
15398         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
15399         placeholder from 0x%x to %#x.
15400         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
15401         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
15402         (ASM_OUTPUT_DEBUG_DATA): Ditto.
15403         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
15404         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
15405         * optc-gen.awk: Ditto.
15406         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
15407         (HOST_WIDE_INT_PRINT_HEX): Ditto.
15408         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
15409         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
15410
15411 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
15412
15413         * target.h (struct calls): Add function_value_regno_p field.
15414         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
15415         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
15416         * targhooks.c (default_function_value_regno_p): New function.
15417         * targhooks.h (default_function_value_regno_p): Declare function.
15418         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
15419         * builtins.c. (apply_result_size): (Ditto.).
15420         * combine.c. (likely_spilled_retval_p): (Ditto.).
15421         * mode-switching.c. Include 'target.h'.
15422         (create_pre_exit): Use function_value_regno_p hook.
15423         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
15424         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
15425         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
15426
15427         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
15428         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
15429         (ix86_function_value_regno_p): Declare as static, change argument
15430         type to const unsigned int.
15431         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
15432
15433 2010-05-01  Richard Guenther  <rguenther@suse.de>
15434
15435         PR tree-optimization/43949
15436         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
15437         types.
15438         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
15439
15440 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
15441
15442         * rtl.h (CONST_DOUBLE_P): Define.
15443         (rtx_to_double_int): Declare.
15444         * emit-rtl.c (rtx_to_double_int): New function.
15445         * dwarf2out.c (insert_double): New function.
15446         (loc_descriptor, add_const_value_attribute): Clean up, use
15447         rtx_to_double_int and insert_double functions.
15448
15449 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
15450
15451         * doc/extend.texi (Inline): Add missing return keyword to examples.
15452         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
15453         "command-line".
15454
15455 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
15456
15457         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
15458         the variable part of the offset as well.  Use highest_pow2_factor for
15459         all alignment checks.
15460
15461 2010-04-30  Richard Guenther  <rguenther@suse.de>
15462
15463         PR tree-optimization/43879
15464         * tree-ssa-structalias.c (type_could_have_pointers): Functions
15465         can have pointers.
15466
15467 2010-04-30  Jan Hubicka  <jh@suse.cz>
15468
15469         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
15470         varpool.
15471         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
15472
15473 2010-04-30  Jan Hubicka  <jh@suse.cz>
15474
15475         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
15476         New.
15477         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
15478         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
15479         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
15480         cgraph_node_set_needs_ltrans_p): Remove.
15481
15482 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
15483
15484         * sdbout.c: Include vec.h, do not include varray.h.
15485         (deferred_global_decls, sdbout_global_decl,
15486         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
15487         * toplev.c: Do not include varray.h.
15488         (dump_memory_report): Do not dump VARRAY statistics.
15489         * gengtype.c (open_base_file): Ignore varray.h.
15490         * Makefile.in: Update for abovementioned changes.
15491         Remove all traces of varray.c and varray.h.
15492         * varray.c: Remove file.
15493         * varray.h: Remove file.
15494
15495 2010-04-30  Jan Hubicka  <jh@suse.cz>
15496
15497         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
15498         references.
15499
15500 2010-04-30  Jan Hubicka  <jh@suse.cz>
15501
15502         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
15503         needed.
15504
15505 2010-04-30  Richard Guenther  <rguenther@suse.de>
15506
15507         * tree-ssa-structalias.c (get_constraint_for_1): Generate
15508         constraints for CONSTRUCTOR.
15509
15510 2010-04-30  Richard Guenther  <rguenther@suse.de>
15511
15512         PR lto/43946
15513         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
15514         first after all lowering passes.
15515
15516 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
15517
15518         * toplev.c: Include varray.h for statistics dumping.
15519         * tree.h: Do not declare varray_head_tag.
15520         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
15521         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
15522         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
15523         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
15524         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
15525         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
15526         c-common.c, c-common.h, reg-stack.c, basic-block.h,
15527         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
15528         include varray.h.
15529         * Makefile.in: Update for abovementioned changes.
15530
15531 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
15532
15533         PR debug/43942
15534         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
15535
15536 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
15537
15538         * config/picochip/picochip.c (picochip_legitimize_address): Define.
15539         Use this function to do machine-specific conversion.
15540         (picochip_legitimize_reload_address): Likewise.
15541         (picochip_legitimate_address_p): Check valid base register only if
15542         strict.
15543         (picochip_check_conditional_copy): Check for modw only if opnd is
15544         register.
15545         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
15546         to call the function in c.
15547         * config/picochip/picochip-protos.h
15548         (picochip_legitimize_reload_address): Define.
15549         * config/picochip/picochip.md (supported_compare1): Define.
15550
15551 2010-04-30  Jan Hubicka  <jh@suse.cz>
15552
15553         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
15554         (cgraph_global_info): Remove inlined.
15555         (LTO_cgraph_tag_names): Remove.
15556         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
15557         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
15558         simplify cgraph tags and document.
15559         (lto_output_node): Use only LTO_cgraph_unavail_node and
15560         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
15561         for_functions_valid, global info, process and output flags.
15562         (input_overwrite_node): Initialize estimated stack size and
15563         estimated growth.  Do not read flags we no longer store.
15564         (input_node): Likewise do not read info no longer stored.
15565         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
15566         flag.
15567
15568 2010-04-30  Richard Guenther  <rguenther@suse.de>
15569
15570         PR tree-optimization/43879
15571         * tree-ssa-structalias.c (get_constraint_for_1): Properly
15572         handle non-zero initializers.
15573
15574 2010-04-30  Richard Guenther  <rguenther@suse.de>
15575
15576         * builtins.c (fold_builtin_1): Delete free (0).
15577
15578 2010-04-29  Jan Hubicka  <jh@suse.cz>
15579
15580         * gengtype.c (open_base_files): Add lto-streamer.h
15581         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
15582         (pass_ipa_cp): GGC collect.
15583         * toplev. (compile_file): Do not output symbols.
15584         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
15585         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
15586         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
15587         * lto-section-in.c: Include ggc.h
15588         (lto_new_in_decl_state): Alloc in GGC.
15589         (lto_delete_in_decl_state): Likewise.
15590         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
15591         Collect.
15592
15593 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
15594
15595         PR target/42895
15596         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
15597         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
15598         (HONOR_REG_ALLOC_ORDER): Describe new macro.
15599         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
15600         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
15601         account only if HONOR_REG_ALLOC_ORDER is not defined.
15602         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
15603         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
15604
15605 2010-04-29  Jon Grant  <04@jguk.org>
15606
15607         * collect2.c (vflag): Change type from int to bool.
15608         (debug): Likewise.
15609         (helpflag): New global bool.
15610         (main): Set vflag and debug with boolean, not integer truth values.
15611         Accept new "--help" option and output usage text if found.
15612         * collect2.h (vflag): Update prototype.
15613         (debug): Likewise.
15614
15615 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
15616
15617         PR bootstrap/43936
15618         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
15619
15620 2010-04-29  Richard Guenther  <rguenther@suse.de>
15621
15622         PR bootstrap/43935
15623         * plugin.h (invoke_plugin_callbacks): Annotate arguments
15624         with ATTRIBUTE_UNUSED.
15625
15626 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
15627
15628         PR target/43921
15629         * config/i386/i386.c (get_some_local_dynamic_name): Replace
15630         INSN_P with NONDEBUG_INSN_P.
15631         (distance_non_agu_define): Likewise.
15632         (distance_agu_use): Likewise.
15633
15634 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
15635
15636         From Dominique d'Humieres <dominiq@lps.ens.fr>
15637         PR bootstrap/43858
15638         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
15639         test_set.
15640
15641 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
15642
15643         * plugin.h (invoke_plugin_callbacks): New inline function.
15644         * plugin.c (flag_plugin_added): New global flag.
15645         (add_new_plugin): Initialize above flag.
15646         (invoke_plugin_callbacks): Rename to ...
15647         (invoke_plugin_callbacks_full): ... this.
15648
15649 2010-04-28  Jan Hubicka  <jh@suse.cz>
15650
15651         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
15652         (lto_varpool_replace_node): New.
15653         (lto_symtab_resolve_symbols): Resolve varpool nodes.
15654         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
15655         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
15656         * cgraph.h (varpool_node_ptr): New type.
15657         (varpool_node_ptr): New vector.
15658         (varpool_node_set_def): New structure.
15659         (varpool_node_set): New type.
15660         (varpool_node_set): New vector.
15661         (varpool_node_set_element_def): New structure.
15662         (varpool_node_set_element, const_varpool_node_set_element): New types.
15663         (varpool_node_set_iterator): New type.
15664         (varpool_node): Add prev pointers, add used_from_other_partition,
15665         in_other_partition.
15666         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
15667         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
15668         varpool_get_node, varpool_remove_node): Declare.
15669         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
15670         varpool_node_set_size): New inlines.
15671         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
15672         * tree-pass.h (varpool_node_set_def): Forward declare.
15673         (ipa_opt_pass_d): Summary writting takes vnode sets too.
15674         (ipa_write_optimization_summaries): Update prototype.
15675         * ipa-cp.c (ipcp_write_summary): Update.
15676         * ipa-reference.c (ipa_reference_write_summary): Update.
15677         * lto-cgraph.c (lto_output_varpool_node): New static function.
15678         (output_varpool): New function.
15679         (input_varpool_node): New static function.
15680         (input_varpool_1): New function.
15681         (input_cgraph): Input varpool.
15682         * ipa-pure-const.c (pure_const_write_summary): Update.
15683         * lto-streamer-out.c (lto_output): Update, output varpool too.
15684         (write_global_stream): Kill WPA hack.
15685         (produce_asm_for_decls): Update.
15686         (output_alias_pair_p): Handle variables.
15687         (output_unreferenced_globals): Output only needed partition of varpool.
15688         * ipa-inline.c (inline_write_summary): Update.
15689         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
15690         cgraph.
15691         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
15692         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
15693         varpool_node_set_new, varpool_node_set_add,
15694         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
15695         debug_varpool_node_set): New functions.
15696         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
15697         (execute_one_pass): Process new decls too.
15698         (ipa_write_summaries_2): Pass around vsets.
15699         (ipa_write_summaries_1): Likewise.
15700         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
15701         to add.
15702         (ipa_write_optimization_summaries_1): Pass around vsets.
15703         (ipa_write_optimization_summaries): Likewise.
15704         * varpool.c (varpool_get_node): New.
15705         (varpool_node): Update doubly linked lists.
15706         (varpool_remove_node): New.
15707         (dump_varpool_node): More dumping.
15708         (varpool_enqueue_needed_node): Update doubly linked lists.
15709         (decide_is_variable_needed): Kill ltrans hack.
15710         (varpool_finalize_decl): Kill lto hack.
15711         (varpool_assemble_decl): Skip decls in other partitions.
15712         (varpool_assemble_pending_decls): Update doubly linkes lists.
15713         (varpool_empty_needed_queue): Likewise.
15714         (varpool_extra_name_alias): Likewise.
15715         * lto-streamer.c (lto_get_section_name): Add vars section.
15716         * lto-streamer.h (lto_section_type): Update.
15717         (output_varpool, input_varpool): Declare.
15718
15719 2010-04-28  Mike Stump  <mikestump@comcast.net>
15720
15721         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
15722
15723 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
15724
15725         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
15726         record or union type with RECORD_OR_UNION_TYPE_P predicate.
15727         (lto_input_ts_type_tree_pointers): Likewise.
15728         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
15729         (lto_output_ts_type_tree_pointers): Likewise.
15730
15731 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
15732
15733         Uniquization of constants at the Tree level
15734         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
15735         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
15736         bit to the end.
15737         (tree_output_constant_def): Declare.
15738         * gimplify.c (gimplify_init_constructor): When using block copy, first
15739         uniquize the constant constructor on the RHS.
15740         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
15741         DECL_IN_CONSTANT_POOL flag.
15742         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
15743         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
15744         constant pool.
15745         (assemble_variable): Deal with symbols belonging to the tree constant
15746         pool.
15747         (get_constant_section): Add ALIGN parameter and simplify.
15748         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
15749         (assemble_constant_contents): Use the expression of the VAR_DECL.
15750         (output_constant_def_contents): Use the alignment of the VAR_DECL.
15751         (tree_output_constant_def): New global function.
15752         (mark_constant): Use the expression of the VAR_DECL.
15753         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
15754         its expression.
15755         (output_object_block): Likewise and assemble the expression.
15756
15757 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
15758
15759         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
15760         hash_tree, eq_tree): New tree hash table.
15761         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
15762         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
15763         lto_orig_address_remove): Reimplement.
15764
15765 2010-04-28  Xinliang David Li  <davidxl@google.com>
15766
15767         PR c/42643
15768         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
15769         (compute_uninit_opnds_pos): New function.
15770         (is_non_loop_exit_postdominating): New function.
15771         (compute_control_dep_chain): New function.
15772         (find_pdom): New function.
15773         (convert_control_dep_chain_into_preds): New function.
15774         (find_predicates): New function.
15775         (find_control_equiv_block): New function.
15776         (collect_phi_def_edges): New function.
15777         (find_def_preds): New function.
15778         (find_dom): New function.
15779         (dump_predicates): New function.
15780         (get_cmp_code): New function.
15781         (is_value_included_in): New function.
15782         (find_matching_predicate_in_rest_chains): New function.
15783         (use_pred_not_overlap_with_undef_path_pred): New function.
15784         (is_use_properly_guarded): New function.
15785         (normalize_cond_1): New function.
15786         (is_and_or_or): New function.
15787         (normalize_cond): New function.
15788         (is_gcond_subset_of): New function.
15789         (is_subset_of_any): New function.
15790         (is_or_set_subset_of): New function.
15791         (is_and_set_subset_of): New function.
15792         (is_norm_cond_subset_of): New function.
15793         (is_pred_expr_subset_of): New function.
15794         (is_pred_chain_subset_of): New function.
15795         (is_included_in): New function.
15796         (is_superset_of): New function.
15797         (find_uninit_use): New function.
15798         (warn_uninitialized_phi): New function.
15799         (compute_possibly_undefined_names): New function.
15800         (ssa_undefined_value_p): New function.
15801         (execute_late_warn_uninitialized): New function.
15802         * tree-ssa.c (ssa_undefined_value_p): Removed.
15803         (warn_uninit): Changed to extern.
15804         (warn_uninitialized_phi): Removed.
15805         (warn_uninitialized_vars): Changed to extern.
15806         (execute_late_warn_uninitialized): Removed
15807         * tree-flow.h: Add new prototypes.
15808         * timevar.def: Add new time variable.
15809         * Makefile.in: Add new build file.
15810
15811 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
15812
15813         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
15814         type if available.
15815
15816 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15817
15818         PR target/22224
15819         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
15820
15821 2010-04-28  Martin Jambor  <mjambor@suse.cz>
15822
15823         * cgraph.h (struct cgraph_node): New field indirect_calls.
15824         (struct cgraph_indirect_call_info): New type.
15825         (struct cgraph_edge): Removed field indirect_call. New fields
15826         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
15827         (cgraph_create_indirect_edge): Declare.
15828         (cgraph_make_edge_direct): Likewise.
15829         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
15830         * ipa-prop.h (struct ipa_param_call_note): Removed.
15831         (struct ipa_node_params): Removed field param_calls.
15832         (ipa_create_all_structures_for_iinln): Declare.
15833         * cgraph.c: Described indirect edges and uids in initial comment.
15834         (cgraph_add_edge_to_call_site_hash): New function.
15835         (cgraph_edge): Search also among the indirect edges, use
15836         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
15837         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
15838         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
15839         site hash.
15840         (initialize_inline_failed): Assign a reason to indirect edges.
15841         (cgraph_create_edge_1): New function.
15842         (cgraph_create_edge): Moved some functionality to
15843         cgraph_create_edge_1.
15844         (cgraph_create_indirect_edge): New function.
15845         (cgraph_edge_remove_callee): Add an assert checking for
15846         non-indirectness.
15847         (cgraph_edge_remove_caller): Special-case indirect edges.
15848         (cgraph_remove_edge): Likewise.
15849         (cgraph_set_edge_callee): New function.
15850         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
15851         (cgraph_make_edge_direct): New function.
15852         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
15853         the declaration of the call statement matches.
15854         (cgraph_node_remove_callees): Special-case indirect edges.
15855         (cgraph_clone_edge): Likewise.
15856         (cgraph_clone_node): Clone also the indirect edges.
15857         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
15858         indirect_call, dump count of indirect_calls edges.
15859         * ipa-prop.c (iinlining_processed_edges): New variable.
15860         (ipa_note_param_call): Create indirect edges instead of
15861         creating notes.  New parameter node.
15862         (ipa_analyze_call_uses): New parameter node, pass it on to
15863         ipa_note_param_call.
15864         (ipa_analyze_stmt_uses): Likewise.
15865         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
15866         (print_edge_addition_message): Work on edges rather than on notes.
15867         (update_call_notes_after_inlining): Likewise, renamed to
15868         update_indirect_edges_after_inlining.
15869         (ipa_create_all_structures_for_iinln): New function.
15870         (ipa_free_node_params_substructures): Do not free notes.
15871         (ipa_edge_duplication_hook): Propagate bits within
15872         iinlining_processed_edges bitmap.
15873         (ipa_node_duplication_hook): Do not duplicate notes.
15874         (free_all_ipa_structures_after_ipa_cp): Renamed to
15875         ipa_free_all_structures_after_ipa_cp.
15876         (free_all_ipa_structures_after_iinln): Renamed to
15877         ipa_free_all_structures_after_iinln.
15878         (ipa_write_param_call_note): Removed.
15879         (ipa_read_param_call_note): Removed.
15880         (ipa_write_indirect_edge_info): New function.
15881         (ipa_read_indirect_edge_info): Likewise.
15882         (ipa_write_node_info): Do not stream notes, do stream information
15883         in indirect edges.
15884         (ipa_read_node_info): Likewise.
15885         (lto_ipa_fixup_call_notes): Removed.
15886         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
15887         * ipa-inline.c (pass_ipa_inline): Likewise.
15888         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
15889         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
15890         * tree-inline.c (copy_bb): Removed an unnecessary double check for
15891         is_gimple_call.
15892         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
15893         edges.
15894         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
15895         (output_cgraph): Stream also indirect edges.
15896         (lto_output_edge): Added capability to stream indirect edges.
15897         (input_edge): Likewise.
15898         (input_cgraph_1): Likewise.
15899         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
15900         of indirect edges.
15901
15902 2010-04-28  Richard Guenther  <rguenther@suse.de>
15903
15904         PR tree-optimization/43879
15905         PR tree-optimization/43909
15906         * tree-ssa-structalias.c (struct variable_info): Add
15907         only_restrict_pointers flag.
15908         (new_var_info): Initialize it.  Increment stats.total_vars here.
15909         (create_function_info_for): Do not increment stats.total_vars here.
15910         (get_function_part_constraint): Fix build with C++.
15911         (insert_into_field_list): Remove.
15912         (push_fields_onto_fieldstack): Properly merge fields.
15913         (create_variable_info_for): Split and simplify.
15914         (create_variable_info_for_1): New piece.
15915         (intra_create_variable_infos): Properly make restrict constraints
15916         from parameters.
15917
15918 2010-04-28  Richard Guenther  <rguenther@suse.de>
15919
15920         PR c++/43880
15921         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
15922
15923 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15924             Jan Hubicka <hubicka@ucw.cz>
15925
15926         * doc/invoke.texi (-Wsuggest-attribute=const,
15927         -Wsuggest-attribute=pure): Document.
15928         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
15929         (function_always_visible_to_compiler_p,
15930         suggest_attribute, warn_function_pure, warn_function_const):
15931         New functions.
15932         (check_call): Improve debug info.
15933         (analyze_function): Do not check availability.
15934         (add_new_function): Check availability.
15935         (propagate): Output warnings.
15936         (skip_function_for_local_pure_const): New function.
15937         (local_pure_const): Use it; output warnings.
15938         * common.opt (Wsuggest-attribute=const,
15939         Wsuggest-attribute=pure): New.
15940
15941 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
15942
15943         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
15944         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
15945         or DW_CFA_def_cfa_offset{,_sf}.
15946
15947 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
15948
15949         * tree.h: Fix truncated long macros.
15950
15951 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
15952
15953         * collect2.c (TARGET_64BIT): Redefine to target's default.
15954         * tlink.c: Likewise.
15955         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
15956         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
15957         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
15958         for underscoring __USER_LABEL_PREFIX__.
15959         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
15960         (SUB_LINK_ENTRY32): New.
15961         (SUB_LINK_ENTRY64): New.
15962         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
15963         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
15964         (SUB_LINK_ENTRY64): New.
15965         (SUB_LINK_ENTRY): New.
15966         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
15967         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
15968         x64 target is choosen.
15969         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
15970         * configure: Regenerated.
15971         * configure.ac (leading-mingw64-underscores): Option added.
15972
15973 2010-04-27  Jan Hubicka  <jh@suse.cz>
15974
15975         * doc/invoke.texi (-fipa-profile): Document.
15976         * opts.c (decode_options): Enable ipa-profile at -O1.
15977         * timevar.def (TV_IPA_PROFILE): Define.
15978         * common.opt (fipa-profile): Add.
15979         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
15980         flag for clones.
15981         (cgraph_propagate_frequency): Handle only local ones.
15982         * tree-pass.h (pass_ipa_profile): Declare.
15983         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
15984         (pass_ipa_profile): Use TV_IPA_PROFILE.
15985         * ipa.c (ipa_profile): New function.
15986         (gate_ipa_profile): Likewise.
15987         (pass_ipa_profile): New global variable.
15988         * passes.c (pass_ipa_profile): New.
15989
15990 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
15991
15992         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
15993
15994 2010-04-27  Martin Jambor  <mjambor@suse.cz>
15995
15996         PR middle-end/43812
15997         * ipa.c (dissolve_same_comdat_group_list): New function.
15998         (function_and_variable_visibility): Call
15999         dissolve_same_comdat_group_list when comdat group contains external or
16000         newly local nodes.
16001         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
16002         lists are circular and that they contain only DECL_ONE_ONLY nodes.
16003
16004 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
16005
16006         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
16007         (const_hash_1) <VECTOR_CST>: New case.
16008         (compare_constant) <VECTOR_CST>: Likewise.
16009         <ADDR_EXPR>: Deal with LABEL_REFs.
16010         (copy_constant) <VECTOR_CST>: New case.
16011
16012 2010-04-27  Jan Hubicka  <jh@suse.cz>
16013
16014         * cgraph.c (cgraph_propagate_frequency): New function.
16015         * cgraph.h (cgraph_propagate_frequency): Declare.
16016         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
16017         cgraph_propagate_frequency.
16018
16019 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
16020
16021         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
16022
16023 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
16024
16025         PR target/40657
16026         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
16027         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
16028         here to determine which regs to push and how much stack to reserve.
16029
16030 2010-04-27  Jie Zhang  <jie@codesourcery.com>
16031
16032         * doc/gimple.texi (gimple_statement_with_ops): Remove
16033         addresses_taken field.
16034         (gimple_statement_with_memory_ops): Likewise.
16035
16036 2010-04-27  Jan Hubicka  <jh@suse.cz>
16037
16038         * tree-inline.c (eni_inlining_weights): Remove.
16039         (estimate_num_insns): Special case more builtins.
16040
16041 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
16042
16043         PR c/32207
16044         * c-typeck.c (build_binary_op): Move forward check for comparison
16045         pointer with null pointer constant and adjust the diagnostic message.
16046
16047 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
16048
16049         PR lto/42776
16050         * configure.ac (gcc_cv_as_section_has_align): Set if installed
16051         binutils supports extended .section directive needed by LTO, or
16052         warn if older binutils found.
16053         (LTO_BINARY_READER): New AC_SUBST'd variable.
16054         (LTO_USE_LIBELF): Likewise.
16055         * gcc/config.gcc (lto_binary_reader): New target-specific configure
16056         variable.
16057         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
16058         (LTO_USE_LIBELF): Likewise.
16059         * configure: Regenerate.
16060
16061         * collect2.c (is_elf): Rename from this ...
16062         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
16063          object files in addition to ELF-formatted ones.
16064         (scan_prog_file): Caller updated.  Also allow for LTO info marker
16065         symbol to be prefixed or not by an extra underscore.
16066
16067         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
16068         * config/i386/winnt.c: Also #include lto-streamer.h
16069         (i386_pe_asm_named_section): Specify 1-byte section alignment for
16070         LTO named sections.
16071         (i386_pe_asm_output_aligned_decl_common): Add comment.
16072         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
16073
16074 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
16075
16076         PR target/43889
16077         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
16078         Add missing earlyclobber for second alternative.
16079
16080 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
16081
16082         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
16083         bits for artificial defs at the top of the block.
16084         * fwprop.c (single_def_use_enter_block): Don't call it.
16085
16086 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
16087
16088         PR 43715
16089         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
16090         instead of "$gcc_cv_objdump -T".
16091         Use "-undefined dynamic_lookup" on darwin.
16092         * gcc/configure: Regenerate.
16093
16094 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
16095
16096         PR c/43893
16097         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
16098
16099 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
16100
16101         * c-parser.c (struct c_token): Move location field up.
16102         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
16103         (struct c_declspecs): Convert typespec_word, storage_class, and
16104         default_int_p into bitfields.
16105         (struct c_declarator): Move loc field up.
16106
16107 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
16108
16109         * cfgloop.h (struct loop): Move can_be_parallel field up.
16110         * ipa-prop.h (struct ip_node_params): Move bitfields up.
16111         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
16112         down.
16113         (struct iv_cand): Convert pos field into a bitfield.
16114         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
16115         field up.
16116         (struct _stmt_vec_info): Shuffle fields for better packing.
16117
16118 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
16119
16120         * varasm.c (IN_NAMED_SECTION): Remove guard.
16121         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
16122         (IN_NAMED_SECTION_P): ...this.
16123         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
16124         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
16125
16126 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
16127
16128         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
16129         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
16130         of shadowing it.  Fix comments.
16131
16132 2010-04-26  Jan Hubicka  <jh@suse.cz>
16133
16134         * cgraph.c (cgraph_create_node): Set node frequency to normal.
16135         (cgraph_clone_node): Copy function frequency.
16136         * cgraph.h (node_frequency): New enum
16137         (struct cgraph_node): Add.
16138         * final.c (rest_of_clean_state): Update.
16139         * lto-cgraph.c (lto_output_node): Output node frequency.
16140         (input_overwrite_node): Input node frequency.
16141         * tre-ssa-loop-ivopts (computation_cost): Update.
16142         * lto-streamer-out.c (output_function): Do not output function
16143         frequency.
16144         * predict.c (maybe_hot_frequency_p): Update and handle functions
16145         executed once.
16146         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
16147         attribute lookup.
16148         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
16149         (compute_function_frequency): Set noreturn functions to be executed
16150         once.
16151         (choose_function_section): Update.
16152         * lto-streamer-in.c (input_function): Do not input function frequency.
16153         * function.c (allocate_struct_function): Do not initialize function
16154         frequency.
16155         * function.h (function_frequency): Remove.
16156         (struct function): Remove function frequency.
16157         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
16158         (try_update): Update.
16159         * tree-inline.c (initialize_cfun): Do not update function frequency.
16160         * passes.c (pass_init_dump_file): Update.
16161         * i386.c (ix86_compute_frame_layout): Update.
16162         (ix86_pad_returns): Update.
16163
16164 2010-04-26  Jie Zhang  <jie@codesourcery.com>
16165
16166         PR tree-optimization/43833
16167         * tree-vrp.c (range_int_cst_p): New.
16168         (range_int_cst_singleton_p): New.
16169         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
16170         when both operands are constants.  Use range_int_cst_p in
16171         BIT_IOR_EXPR case.
16172
16173 2010-04-26  Jan Hubicka  <jh@suse.cz>
16174
16175         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
16176
16177 2010-04-26  Richard Guenther  <rguenther@suse.de>
16178
16179         PR lto/43080
16180         * gimple.c (gimple_decl_printable_name): Deal gracefully
16181         with a NULL DECL_NAME.
16182
16183 2010-04-26  Richard Guenther  <rguenther@suse.de>
16184
16185         PR lto/42425
16186         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
16187         if emitting debug information and it is either a function
16188         or a namespace decl.
16189
16190 2010-04-26  Ira Rosen  <irar@il.ibm.com>
16191
16192         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
16193         determine if the statement is vectorizable, and a macro to access it.
16194         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
16195         Skip statements that can't be vectorized. If the analysis fails,
16196         mark the statement as unvectorizable if vectorizing basic block.
16197         (vect_compute_data_refs_alignment): Likewise.
16198         (vect_verify_datarefs_alignment): Skip statements marked as
16199         unvectorizable. Add print.
16200         (vect_analyze_group_access): Skip statements that can't be
16201         vectorized. If the analysis fails, mark the statement as
16202         unvectorizable if vectorizing basic block.
16203         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
16204         * tree-vect-stmts.c (vectorizable_store): Fix the number of
16205         generated stmts for SLP.
16206         (new_stmt_vec_info): Initialize the new field.
16207         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
16208         statements marked as unvectorizable.
16209
16210 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
16211
16212         * c-common.c (flag_isoc1x): New.
16213         (flag_isoc99): Update comment.
16214         * c-common.h (flag_isoc1x): New.
16215         (flag_isoc99): Update comment.
16216         * c-cppbuiltin.c (builtin_define_float_constants): Also define
16217         __<type>_DECIMAL_DIG__.
16218         * c-opts.c (set_std_c1x): New.
16219         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
16220         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
16221         * c.opt (-std=c1x, -std=gnu1x): New options.
16222         * doc/cpp.texi: Mention -std=c1x.
16223         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
16224         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
16225         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
16226         * doc/standards.texi: Mention C1X.
16227         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
16228         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
16229         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
16230         Define for C1X.
16231
16232 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
16233
16234         * config/i386/gmon-sol2.c (_mcleanup): Change format string
16235         placeholder from 0x%x to %#x.
16236         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
16237         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
16238         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
16239         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
16240         * config/i386/i386.c (ix86_target_string): Ditto.
16241         (output_pic_addr_const): Ditto.
16242         (print_operand): Ditto.
16243
16244 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
16245
16246         * combine.c (find_split_point): Add third argument.  Use it
16247         to find nested multiply-accumulate instructions.  Adjust calls.
16248         (try_combine): Adjust call to find_split_point.
16249
16250 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
16251
16252         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
16253
16254 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
16255
16256         PR tree-optimization/41442
16257         * fold-const.c (merge_truthop_with_opposite_arm): New function.
16258         (fold_binary_loc): Call it.
16259
16260 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16261
16262         * toplev.c (general_init): Set default for fdiagnostics-show-option.
16263         * opts.c (common_handle_option): Allow disabling it.
16264         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
16265
16266 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
16267
16268         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
16269         between modes if both types are integral.
16270
16271 2010-04-23  Richard Guenther  <rguenther@suse.de>
16272
16273         PR tree-optimization/43572
16274         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
16275
16276 2010-04-23  Richard Guenther  <rguenther@suse.de>
16277
16278         PR lto/43455
16279         * tree-inline.c (tree_can_inline_p): Also check compatibility
16280         of return types.
16281
16282 2010-04-23  Martin Jambor  <mjambor@suse.cz>
16283
16284         PR tree-optimization/43846
16285         * tree-sra.c (struct access): New flag grp_assignment_read.
16286         (build_accesses_from_assign): Set grp_assignment_read.
16287         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
16288         (enum mark_read_status): New type.
16289         (analyze_access_subtree): Propagate grp_assignment_read, create
16290         accesses also if both direct_read and root->grp_assignment_read.
16291
16292 2010-04-23  Martin Jambor  <mjambor@suse.cz>
16293
16294         PR middle-end/43835
16295         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
16296         function does not have type attributes.
16297
16298 2010-04-23  Richard Guenther  <rguenther@suse.de>
16299
16300         PR lto/42653
16301         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
16302         of FUNCTION_DECLs.
16303
16304 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16305
16306         * sese.h (create_if_region_on_edge): Remove.
16307
16308         * sese.c (create_if_region_on_edge): Make static.
16309
16310         * tree-inline.c: Do not include ggc.h.
16311
16312         * expr.c: Do not include ggc.h.
16313
16314         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
16315         dependencies.
16316
16317 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
16318
16319         PR target/43744
16320         * config/sh/sh.c (find_barrier): Don't emit a constant pool
16321         in the middle of insns for casesi_worker_2.
16322
16323 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
16324
16325         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
16326
16327 2010-04-22  Ira Rosen  <irar@il.ibm.com>
16328
16329         PR tree-optimization/43842
16330         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
16331         loop unrolling in update of exit phis. Fix comment.
16332         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
16333         least two reduction statements in the loop before starting SLP
16334         analysis.
16335
16336 2010-04-22  Nick Clifton  <nickc@redhat.com>
16337
16338         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
16339
16340 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
16341
16342         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
16343         to simplify a + ~a.
16344
16345 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16346
16347         * tree-parloops.c (loop_parallel_p): New argument
16348         parloop_obstack.  Pass it down.
16349         (parallelize_loops): New variable parloop_obstack.  Initialize it,
16350         pass it down, free it.
16351
16352         * tree-loop-linear.c (linear_transform_loops): Pass down
16353         lambda_obstack.
16354
16355         * tree-data-ref.h (lambda_compute_access_matrices): New argument
16356         of type struct obstack *.
16357
16358         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
16359         scratch_obstack.  Initialize it, pass down, free it.
16360
16361         * lambda.h (lambda_loop_new): Remove.
16362         (lambda_matrix_new, lambda_matrix_inverse)
16363         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
16364         argument of type struct obstack *.
16365
16366         * lambda-trans.c (lambda_trans_matrix_new): New argument
16367         lambda_obstack.  Pass it down, use obstack allocation for ret.
16368         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
16369         it down.
16370
16371         * lambda-mat.c (lambda_matrix_get_column)
16372         (lambda_matrix_project_to_null): Remove.
16373         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
16374         allocation for mat.
16375         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
16376         lambda_obstack.
16377
16378         * lambda-code.c (lambda_loop_new): New function.
16379         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
16380         (lambda_compute_auxillary_space, lambda_compute_target_space)
16381         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
16382         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
16383         (build_access_matrix): New argument lambda_obstack.  Use obstack
16384         allocation for am.
16385         (lambda_compute_step_signs, lambda_compute_access_matrices): New
16386         argument lambda_obstack.  Pass it down.
16387
16388 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
16389
16390         * optabs.h (expand_widening_mult): Declare.
16391
16392 2010-04-22  Richard Guenther  <rguenther@suse.de>
16393
16394         PR tree-optimization/43845
16395         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
16396         lookup the CALL_EXPR function and arguments.
16397
16398 2010-04-22  Nick Clifton  <nickc@redhat.com>
16399
16400         * config/stormy16/stormy16.c
16401         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
16402         * config/stormy16/stormy16.h: Tidy up formatting.
16403         (DONT_USE_BUILTIN_SETJMP): Remove definition.
16404         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
16405         (ineqbranchsi): Delete pattern.
16406         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
16407         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
16408         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
16409         stormy16-lib2-ucmpsi2.c.
16410
16411 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
16412
16413         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
16414         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
16415         extra set merge_set_noclobber, and use it to relax the final test
16416         slightly.
16417         * df.h (df_simulate_find_noclobber_defs): Declare.
16418         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
16419         conditional defs.
16420         (df_simulate_find_noclobber_defs): New function.
16421
16422 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
16423
16424         * config/i386/i386.md: Use {} around multi-line preparation statements.
16425
16426 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16427
16428         * c-tree.h (push_init_level, pop_init_level, set_init_index)
16429         (process_init_element): New argument of type struct obstack *.
16430
16431         * c-typeck.c (push_init_level, pop_init_level, set_designator)
16432         (set_init_index, set_init_label, set_nonincremental_init)
16433         (set_nonincremental_init_from_string, find_init_member)
16434         (output_init_element, output_pending_init_elements)
16435         (process_init_element): New argument braced_init_obstack.  Pass it
16436         down.
16437         (push_range_stack, add_pending_init): New argument
16438         braced_init_obstack.  Use obstack allocation.
16439
16440         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
16441         braced_init_obstack.  Pass it down.
16442         (c_parser_braced_init): New variables ret, braced_init_obstack.
16443         Initialize obstack, pass it down and finally free it.
16444
16445 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
16446
16447         PR middle-end/29274
16448         * tree-pass.h (pass_optimize_widening_mul): Declare.
16449         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
16450         gate_optimize_widening_mul): New static functions.
16451         (pass_optimize_widening_mul): New.
16452         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
16453         <case MULT_EXPR>: Remove support for widening multiplies.
16454         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
16455         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
16456         simplify_gen_unary rather than directly building extensions.
16457         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
16458         WIDEN_MULT_EXPR.
16459         * expmed.c (expand_widening_mult): New function.
16460         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
16461
16462 2010-04-21  Jan Hubicka  <jh@suse.cz>
16463
16464         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
16465         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
16466         * lto-wpa-fixup.c: Remove.
16467         * Makefile.in (lto-wpa-fixup.o): Remove.
16468         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
16469         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
16470         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
16471
16472 2010-04-21  Jan Hubicka  <jh@suse.cz>
16473
16474         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
16475         add write_optimization_summary, read_optimization_summary.
16476         (ipa_write_summaries_of_cgraph_node_set): Remove.
16477         (ipa_write_optimization_summaries): Declare.
16478         (ipa_read_optimization_summaries): Declare.
16479         * ipa-cp.c (pass_ipa_cp): Update.
16480         * ipa-reference.c (pass_ipa_reference): Update.
16481         * ipa-pure-const.c (pass_ipa_pure_const): Update.
16482         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
16483         Update.
16484         * ipa-inline.c (pass_ipa_inline): Update.
16485         * ipa.c (pass_ipa_whole_program): Update.
16486         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
16487         * passes.c (ipa_write_summaries_1): Do not test wpa.
16488         (ipa_write_optimization_summaries_1): New.
16489         (ipa_write_optimization_summaries): New.
16490         (ipa_read_summaries): Do not test ltrans.
16491         (ipa_read_optimization_summaries_1): New.
16492         (ipa_read_optimization_summaries): New.
16493
16494 2010-04-21  Jan Hubicka  <jh@suse.cz>
16495
16496         * lto-cgraph.c (lto_output_node): Do not output comdat groups
16497         for boundary nodes.
16498         (output_cgraph): Do not arrange comdat groups for boundary nodes.
16499
16500 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
16501
16502         PR debug/40040
16503         * dwarf2out.c (add_name_and_src_coords_attributes): Add
16504         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
16505
16506 2010-04-21  Jan Hubicka  <jh@suse.cz>
16507
16508         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
16509
16510 2010-04-21  Jan Hubicka  <jh@suse.cz>
16511
16512         * varpool.c (decide_is_variable_needed): Variable is always needed
16513         during ltrans.
16514
16515 2010-04-21  Jan Hubicka  <jh@suse.cz>
16516
16517         * opts.c (decode_options): Enable pure-const pass for whopr.
16518
16519 2010-04-21  Jan Hubicka  <jh@suse.cz>
16520
16521         * cgraph.c (dump_cgraph_node): Dump also assembler name.
16522         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
16523         at WPA dumping.
16524         (cgraph_decide_inlining): Do not expect callee to be removed in all
16525         cases.
16526
16527 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
16528
16529         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
16530
16531 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
16532
16533         * config/i386/i386.md (x86_shrd): Add athlon_decode and
16534         amdfam10_decode attributes.
16535
16536 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
16537
16538         PR middle-end/43570
16539         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
16540         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
16541         (lower_copyprivate_clauses): Use private var in outer
16542         context instead of original var.  Make sure the types
16543         are correct for VLAs.
16544
16545 2010-04-21  Richard Guenther  <rguenther@suse.de>
16546
16547         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
16548         to non-pointer objects.
16549
16550 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
16551
16552         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
16553         last chain entry if it starts with the still current label.
16554         (add_location_or_const_value_attribute): Check that
16555         loc_list->first->next is NULL instead of comparing ->first with ->last.
16556         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
16557         to add_var_loc_to_decl.
16558
16559         * dwarf2out.c (output_call_frame_info): For dw_cie_version
16560         >= 4 add also address size and segment size fields into CIE header.
16561
16562         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
16563         long as address size is the same as sizeof (void *) and
16564         segment size is 0.
16565         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
16566         address size or segment size is unexpected, return DW_EH_PE_omit.
16567         (classify_object_over_fdes): If get_cie_encoding returned
16568         DW_EH_PE_omit, return -1.
16569         (init_object): If classify_object_over_fdes returned -1,
16570         pretend there were no FDEs at all.
16571
16572 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
16573
16574         * config/i386/i386.md (bswap<mode>2): Macroize expander from
16575         bswap{si,di}2 using SWI48 mode iterator.
16576         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
16577         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
16578         set modrm attribute of bswap insn to 0 and remove length attribute.
16579         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
16580         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
16581         set mode attribute to <MODE> and remove length attribute.
16582
16583 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
16584
16585         PR rtl-optimization/43520
16586         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
16587         zero available registers.
16588
16589 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16590
16591         * builtins.c (fold_builtin_cproj): Fold more cases.
16592
16593 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16594
16595         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
16596         (fold_builtin_1): Fold builtin cproj.
16597         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
16598         Use ATTR_CONST_NOTHROW_LIST.
16599
16600 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
16601
16602         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
16603         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
16604         ffsi2_no_cmove for !TARGET_CMOVE.
16605         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
16606         (ffssi2): Remove expander.
16607         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
16608         mode iterator.
16609         (ctz<mode>2): Ditto from ctz{si,di}2.
16610         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
16611         mode iterator.
16612         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
16613         mode iterator.
16614
16615 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
16616
16617         * dwarf2out.c (AT_linkage_name): Define.
16618         (clone_as_declaration): Handle DW_AT_linkage_name.
16619         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
16620         of DW_AT_MIPS_linkage_name.
16621         (move_linkage_attr): Likewise.
16622         (dwarf2out_finish): Likewise.
16623
16624 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
16625
16626         PR middle-end/41952
16627         * fold-const.c (fold_comparison): New folding rule.
16628
16629 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
16630
16631         * double-int.h (double_int_setbit): Declare.
16632         * double-int.c (double_int_setbit): New function.
16633         * rtl.h (immed_double_int_const): Declare.
16634         * emit-rtl.c (immed_double_int_const): New function.
16635         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
16636         and immed_double_int_const functions.
16637         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
16638         expand_copysign_bit):  (Ditto.).
16639         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
16640         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
16641         * dojump.c (prefer_and_bit_test): (Ditto.).
16642         * expr.c (convert_modes, reduce_to_bit_field_precision,
16643         const_vector_from_tree): (Ditto.).
16644         * expmed.c (mask_rtx, lshift_value): (Ditto.).
16645
16646 2010-04-20  Jan Hubicka  <jh@suse.cz>
16647
16648         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
16649         (dump_cgraph_node): Dump new flags.
16650         * cgraph.h (struct cgraph_node): Add flags
16651         reachable_from_other_partition and in_other_partition.
16652         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
16653         other partition can not be removed.
16654         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
16655         the other partition must be output; silence sanity checking on
16656         leaking functions bodies from other paritition.
16657         * lto-cgraph.c (reachable_from_other_partition_p): New function.
16658         (lto_output_node): Output new flags; do not sanity check that inline
16659         clones are output; drop lto_forced_extern_inline_p code; do not mock
16660         visibility flags at partition boundaries.
16661         (add_node_to): New function.
16662         (output_cgraph): Use it to sort functions so masters appear before
16663         clones.
16664         (input_overwrite_node): Input new flags.
16665         * passes.c (ipa_write_summaries): Do not call
16666         lto_new_extern_inline_states.
16667         * lto-section-out.c (forced_extern_inline,
16668         lto_new_extern_inline_states lto_delete_extern_inline_states,
16669         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
16670         * lto-streamer.h (lto_new_extern_inline_states,
16671         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
16672         lto_forced_extern_inline_p): Kill.
16673
16674 2010-04-20  Richard Guenther  <rguenther@suse.de>
16675
16676         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
16677         from vars that can have pointers.
16678         (process_constraint): Dump useless constraints.
16679
16680 2010-04-20  Richard Guenther  <rguenther@suse.de>
16681
16682         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
16683         (dump_sa_points_to_info): Remove asserts.
16684         (init_base_vars): nothing_id isn't an escape point nor does it
16685         have pointers.
16686
16687 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
16688
16689         * tree.h (TYPE_REF_IS_RVALUE): Define.
16690         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
16691         should_move_die_to_comdat, prune_unused_types_walk): Handle
16692         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
16693         (modified_type_die, gen_reference_type_die): Emit
16694         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
16695         if TYPE_REF_IS_RVALUE and -gdwarf-4.
16696
16697 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16698
16699         PR target/43635
16700         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
16701         calls for -fpic -m31 if they have been sibcall optimized.
16702
16703 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
16704
16705         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
16706         ar.lc fixed and call-used.
16707
16708         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
16709
16710 2010-04-19  Jan Hubicka  <jh@suse.cz>
16711
16712         * opts.c (decode_options): Disable whpr incompatible passes.
16713         * lto/lto.c (lto_1_to_1_map): Skip clones.
16714         (read_cgraph_and_symbols): Do not mark everything as needed.
16715         (do_whole_program_analysis): Do map only after optimizing;
16716         set proper cgraph_state; use passmanager.
16717
16718 2010-04-19  DJ Delorie  <dj@redhat.com>
16719
16720         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
16721         POINTER_PLUS_EXPR and fix them.
16722
16723 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
16724
16725         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
16726         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
16727         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
16728         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
16729         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
16730         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
16731         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
16732         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
16733         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
16734         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
16735         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
16736
16737 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
16738
16739         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
16740         (check_cond_move_block): Likewise.
16741         (cond_move_process_if_block): Likewise.
16742         (noce_find_if_block): Improve formatting.
16743         (find_if_header): Pass 0 to memset and tweak conditions.
16744         (cond_exec_find_if_block): Fix long lines and tweak conditions.
16745
16746 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
16747
16748         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
16749         for -gdwarf-4.
16750
16751         PR middle-end/43337
16752         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
16753         with non-local decl doesn't need chain.
16754
16755 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
16756
16757         * ira-color.c (allocno_reload_assign): Avoid accumulating
16758         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
16759
16760 2010-04-19  Martin Jambor  <mjambor@suse.cz>
16761
16762         * gimple.h (create_tmp_reg): Declare.
16763         * gimplify.c (create_tmp_reg): New function.
16764         (gimplify_return_expr): Use create_tmp_reg.
16765         (gimplify_omp_atomic): Likewise.
16766         (gimple_regimplify_operands): Likewise.
16767         * tree-dfa.c (make_rename_temp): Likewise.
16768         * tree-predcom.c (predcom_tmp_var): Likewise.
16769         (reassociate_to_the_same_stmt): Likewise.
16770         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
16771         (get_replaced_param_substitute): Likewise.
16772         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
16773         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
16774         * tree-ssa-pre.c (get_representative_for): Likewise.
16775         (create_expression_by_pieces): Likewise.
16776         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
16777         (create_tailcall_accumulator): Likewise.
16778
16779 2010-04-19  Martin Jambor  <mjambor@suse.cz>
16780
16781         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
16782         new_stmt.
16783         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
16784
16785 2010-04-19  Richard Guenther  <rguenther@suse.de>
16786
16787         PR tree-optimization/43796
16788         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
16789         from SCEV in the lattice.
16790         (vrp_visit_phi_node): Dump change.
16791
16792 2010-04-19  Richard Guenther  <rguenther@suse.de>
16793
16794         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
16795         * configure: Re-generated.
16796
16797 2010-04-19  Richard Guenther  <rguenther@suse.de>
16798
16799         PR tree-optimization/43783
16800         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
16801         constant ARRAY_REF operands two and three if possible.
16802
16803 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
16804
16805         PR target/43766
16806         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
16807
16808 2010-04-19  Jie Zhang  <jie@codesourcery.com>
16809
16810         PR target/43662
16811         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
16812
16813 2010-04-19  Ira Rosen  <irar@il.ibm.com>
16814
16815         PR tree-optimization/37027
16816         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
16817         and macro to access it.
16818         (vectorizable_reduction): Add argument.
16819         (vect_get_slp_defs): Likewise.
16820         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
16821         statements for possible use in SLP.
16822         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
16823         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
16824         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
16825         add new argument.
16826         (vectorizable_reduction): Likewise.
16827         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
16828         vect_get_slp_defs.
16829         (vectorizable_type_demotion, vectorizable_type_promotion,
16830         vectorizable_store): Likewise.
16831         (vect_analyze_stmt): Update call to vectorizable_reduction.
16832         (vect_transform_stmt): Likewise.
16833         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
16834         (vect_build_slp_tree): Fix indentation. Check that there are no loads
16835         from different interleaving chains in same node.
16836         (vect_slp_rearrange_stmts): New function.
16837         (vect_supported_load_permutation_p): Allow load permutations for
16838         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
16839         inside SLP nodes if necessary.
16840         (vect_analyze_slp_instance): Handle reductions.
16841         (vect_analyze_slp): Try to build SLP instances originating from groups
16842         of reductions.
16843         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
16844         (vect_get_constant_vectors): Create initial vectors for reductions
16845         according to reduction code. Add new argument.
16846         (vect_get_slp_defs): Add new argument, pass it to
16847         vect_get_constant_vectors.
16848         (vect_schedule_slp_instance): Remove SLP tree root statements.
16849
16850 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
16851
16852         * tree.h (ENUM_IS_SCOPED): Define.
16853         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
16854         for ENUM_IS_SCOPED enums.
16855
16856 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
16857
16858         * fold-const.c (fold_comparison): Use ssizetype.
16859         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
16860         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
16861         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
16862         * tree-object-size.c (compute_object_sizes): Use size_type_node.
16863
16864         * tree.h (initialize_sizetypes): Remove parameter.
16865         (build_common_tree_nodes): Remove second parameter.
16866         * stor-layout.c (initialize_sizetypes): Remove parameter.
16867         Always create an unsigned type.
16868         (set_sizetype): Assert that the passed type is unsigned and simplify.
16869         * tree.c (build_common_tree_nodes): Remove second parameter.
16870         Adjust call to initialize_sizetypes.
16871         * c-decl.c (c_init_decl_processing): Remove second argument in call to
16872         build_common_tree_nodes.
16873
16874 2010-04-18  Matthias Klose  <doko@ubuntu.com>
16875
16876         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
16877
16878 2010-04-18  Ira Rosen  <irar@il.ibm.com>
16879
16880         PR tree-optimization/43771
16881         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
16882         load permutation doesn't have gaps.
16883
16884 2010-04-18  Jan Hubicka  <jh@suse.cz>
16885
16886         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
16887         (sse_prologue_save_insn expander): Use new pattern.
16888         (sse_prologue_save_insn1): New pattern and splitter.
16889         (sse_prologue_save_insn): Update to deal also with 64bit aligned
16890         blocks.
16891         * i386.c (setup_incoming_varargs_64): Do not compute jump
16892         destination here.
16893         (ix86_gimplify_va_arg): Update alignment needed.
16894         (ix86_local_alignment): Do not align all local arrays to 128bit.
16895
16896 2010-04-17  Jan Hubicka  <jh@suse.cz>
16897
16898         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
16899
16900 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
16901
16902         * arm.md (negdi2): Remove redundant code to force values into a
16903         register.
16904
16905 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
16906
16907         * arm/bpabi.S: Add EABI alignment attributes to objects.
16908         * arm/bpabi-v6m.S: Likewise.
16909         * arm/crti.asm: Likewise.
16910         * arm/crtn.asm: Likewise.
16911         * arm/lib1funcs.asm: Likewise.
16912         * arm/libunwind.S: Likewise.
16913
16914 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
16915
16916         * arm-protos.h (tune_params): New structure.
16917         * arm.c (current_tune): New variable.
16918         (arm_constant_limit): Delete.
16919         (struct processors): Add pointer to the tune parameters.
16920         (arm_slowmul_tune): New tuning option.
16921         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
16922         (all_cores): Adjust to pick up the tuning model.
16923         (arm_constant_limit): New function.
16924         (arm_override_options): Select the appropriate tuning model.  Delete
16925         initialization of arm_const_limit.
16926         (arm_split_constant): Use the new constant-limit model.
16927         (arm_rtx_costs): Pick up the current tuning model.
16928         * arm.md (is_strongarm, is_xscale): Delete.
16929         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
16930         for Xscale variant architectures.
16931         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
16932
16933 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16934
16935         * config/arm/arm.c (arm_gen_constant): Remove unused variable
16936         can_shift.
16937         (arm_rtx_costs_1): Remove unused variable extra_cost.
16938         (arm_unwind_emit_set): Use variable offset.
16939         (thumb1_output_casesi): Remove unused variable flags.
16940
16941 2010-04-16  Jeff Law  <law@redhat.com>
16942
16943         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
16944         needing assignment rather than doing a two-phase assignment.  Remove
16945         unused variable 'm'.
16946
16947 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
16948
16949         PR bootstrap/43767
16950         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
16951
16952 2010-04-16  Doug Kwan  <dougkwan@google.com>
16953
16954         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
16955         (next_operand_entry_id): New static variable.
16956         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
16957         (add_to_ops_vec): Assigned unique ID to operand entry.
16958         (struct oecount_s): New field ID.
16959         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
16960         (undistribute_ops_list): Assign unique IDs to oecounts.
16961         (init_reassoc): reset next_operand_entry_id.
16962
16963 2010-04-16  Doug Kwan  <dougkwan@google.com>
16964
16965         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
16966         missing left parenthesis.
16967
16968 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
16969
16970         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
16971         *btdi_rex64 using SWI48 mode iterator.
16972         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
16973         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
16974         *jcc_btdi_mask_rex64.
16975
16976 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
16977
16978         * double-int.h (tree_to_double_int): Convert to macro.
16979         * double-int.c (tree_to_double_int): Remove.
16980
16981 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
16982
16983         PR debug/43762
16984         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
16985         with want_address 2 and in case a single element list might be
16986         possible, call it again with want_address 0.
16987
16988 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
16989
16990         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
16991         case 'W' print operands for HI mode.
16992         * config/h8300/h8300.h (Y0, Y2) : New constraints.
16993         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
16994         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
16995         * config/h8300/predicate.md (bit_register_indirect_operand): New.
16996
16997         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
16998
16999         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
17000         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
17001         #xx:3 and #xx:4 mode.
17002
17003         * config/h8300/h8300.md (inverted load with HImode dest): Add
17004         support for H8300SX.
17005
17006         * config/h8300/predicate.md (bit_operand): Allow immediate values that
17007         satisfy 'U' constraint.
17008
17009 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17010
17011         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
17012         * configure: Regenerate.
17013         * config.in: Regenerate.
17014         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
17015         works.
17016
17017 2010-04-16  Richard Guenther  <rguenther@suse.de>
17018
17019         * tree.h (struct tree_decl_minimal): Move pt_uid ...
17020         (struct tree_decl_common): ... here.
17021         (DECL_PT_UID): Adjust.
17022         (SET_DECL_PT_UID): Likewise.
17023         (DECL_PT_UID_SET_P): Likewise.
17024
17025 2010-04-16  Richard Guenther  <rguenther@suse.de>
17026
17027         PR tree-optimization/43572
17028         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
17029         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
17030         * tree-flow.h (is_call_clobbered): Remove.
17031         * tree-flow-inline.h (is_call_clobbered): Likewise.
17032         * tree-dfa.c (dump_variable): Do not dump call clobber state.
17033         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
17034         (execute_return_slot_opt): Adjust.
17035         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
17036         check for call clobbered vars here.
17037         (find_tail_calls): Move tailcall verification to the
17038         proper place.
17039
17040 2010-04-16  Diego Novillo  <dnovillo@google.com>
17041
17042         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
17043
17044 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
17045
17046         PR target/40603
17047         * config/arm/arm.md (cbranchqi4): New pattern.
17048         * config/arm/predicates.md (const0_operand,
17049         cbranchqi4_comparison_operator): New predicates.
17050
17051 2010-04-16  Richard Guenther  <rguenther@suse.de>
17052
17053         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
17054         (dump_gimple_stmt): Likewise.
17055
17056 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
17057
17058         * recog.h (struct recog_data): New field is_operator.
17059         (struct insn_operand_data): New field is_operator.
17060         * recog.c (extract_insn): Set recog_data.is_operator.
17061         * genoutput.c (output_operand_data): Emit code to set the
17062         is_operator field.
17063         * reload.c (find_reloads): Use it rather than testing for an
17064         empty constraint string.
17065
17066         PR target/41514
17067         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
17068         If the previous insn is a cbranchsi4_insn with the same arguments,
17069         omit the compare instruction.
17070
17071         * config/arm/arm.md (addsi3_cbranch): If destination is a high
17072         register, inputs must be low registers and we need a low register
17073         scratch.  Handle alternative 2 like alternative 3.
17074
17075 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
17076
17077         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
17078         don't call get_addr on both.  If one expression is a VALUE and
17079         the other a REG, check VALUE's locs if the REG isn't among them.
17080
17081 2010-04-16  Christian Bruel  <christian.bruel@st.com>
17082
17083         * config/sh/sh.h (sh_frame_pointer_required): New function.
17084         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
17085         (flag_omit_frame_pointer) Set.
17086         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
17087         (rounded_frame_size): Adjust size with outgoing_args_size.
17088         (sh_set_return_address): Must return from stack pointer.
17089         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
17090         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
17091         (ACCUMULATE_OUTGOING_ARGS): Define.
17092         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
17093         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
17094
17095 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
17096
17097         PR target/43471
17098         * config/sh/sh.c (sh_legitimize_reload_address): Use
17099         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
17100         Remove a unneeded check for offset_base.
17101
17102 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
17103
17104         * configure: Regenerated.
17105
17106 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17107
17108         * config/s390/s390.c (s390_call_save_register_used): Switch back
17109         to HARD_REGNO_NREGS.
17110
17111 2010-04-15  Richard Guenther  <rguenther@suse.de>
17112
17113         * alias.c (alias_set_subset_of): Handle alias-set zero
17114         child properly.
17115
17116 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
17117             Julian Brown  <julian@codesourcery.com>
17118
17119         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
17120         alternatives according to use of high and low regs.
17121         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
17122         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
17123         optimizing for size on Thumb-2.
17124
17125 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
17126
17127         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
17128
17129 2010-04-15  Richard Guenther  <rguenther@suse.de>
17130
17131         * tree-ssa-structalias.c (struct variable_info): Add
17132         is_fn_info flag.
17133         (new_var_info): Initialize it.
17134         (dump_constraints): Support printing last added constraints.
17135         (debug_constraints): Adjust.
17136         (dump_constraint_graph): Likewise.
17137         (make_heapvar_for): Check for NULL cfun.
17138         (get_function_part_constraint): New function.
17139         (get_fi_for_callee): Likewise.
17140         (find_func_aliases): Properly implement IPA PTA constraints.
17141         (process_ipa_clobber): New function.
17142         (find_func_clobbers): Likewise.
17143         (insert_into_field_list_sorted): Remove.
17144         (create_function_info_for): Properly allocate vars for IPA mode.
17145         Do not use insert_into_field_list_sorted.
17146         (create_variable_info_for): Properly generate constraints for
17147         global vars in IPA mode.
17148         (dump_solution_for_var): Always dump the solution.
17149         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
17150         (find_what_var_points_to): Adjust.
17151         (pt_solution_set): Change.
17152         (pt_solution_ior_into): New function.
17153         (pt_solution_empty_p): Export.
17154         (pt_solution_includes_global): Adjust.
17155         (pt_solution_includes_1): Likewise.
17156         (pt_solutions_intersect_1): Likewise.
17157         (dump_sa_points_to_info): Check some invariants.
17158         (solve_constraints): Move constraint dumping ...
17159         (compute_points_to_sets): ... here.
17160         (ipa_pta_execute): ... and here.
17161         (compute_may_aliases): Do not re-compute points-to info
17162         locally if IPA info is available.
17163         (ipa_escaped_pt): New global var.
17164         (ipa_pta_execute): Properly implement IPA PTA.
17165         * tree-into-ssa.c (dump_decl_set): Support dumping
17166         decls not in referenced-vars.
17167         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
17168         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
17169         (dump_points_to_solution): Likewise.
17170         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
17171         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
17172         (remap_gimple_stmt): Reset call clobber/use information if necessary.
17173         (copy_decl_to_var): Copy DECL_PT_UID.
17174         (copy_result_decl_to_var): Likewise.
17175         * tree.c (make_node_stat): Initialize DECL_PT_UID.
17176         (copy_node_stat): Copy it.
17177         * tree.h (DECL_PT_UID): New macro.
17178         (SET_DECL_PT_UID): Likewise.
17179         (DECL_PT_UID_SET_P): Likewise.
17180         (struct tree_decl_minimal): Add pt_uid member.
17181         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
17182         (pt_solution_empty_p): Declare.
17183         (pt_solution_set): Adjust.
17184         (ipa_escaped_pt): Declare.
17185         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
17186         * gimple-pretty-print.c (pp_points_to_solution): New function.
17187         (dump_gimple_call): Dump call clobber/use information.
17188         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
17189         * tree-pass.h (TDF_ALIAS): New dump option.
17190         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
17191         * doc/invoke.texi (-fipa-pta): Update documentation.
17192
17193 2010-04-15  Richard Guenther  <rguenther@suse.de>
17194
17195         * Makefile.in (OBJS-common): Add gimple-fold.o.
17196         (gimple-fold.o): New rule.
17197         * tree.h (maybe_fold_offset_to_reference,
17198         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
17199         prototypes ...
17200         * gimple.h: ... here.
17201         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
17202         may_propagate_address_into_dereference): Move prototypes ...
17203         * gimple.h: ... here.
17204         * tree-ssa-ccp.c (get_symbol_constant_value,
17205         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
17206         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
17207         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
17208         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
17209         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
17210         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
17211         gimplify_and_update_call_from_tree): Move ...
17212         * gimple-fold.c: ... here.  New file.
17213         (ccp_fold_builtin): Rename to ...
17214         (gimple_fold_builtin): ... this.
17215         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
17216
17217 2010-04-15  Richard Guenther  <rguenther@suse.de>
17218
17219         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
17220         fit_double_type, force_fit_type_double, add_double_with_sign,
17221         neg_double, mul_double_with_sign, lshift_double, rshift_double,
17222         lrotate_double, rrotate_double, div_and_round_double): Move ...
17223         * double-int.c: ... here.
17224         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
17225         add_double, neg_double, mul_double_with_sign, mul_double,
17226         lshift_double, rshift_double, lrotate_double, rrotate_double,
17227         div_and_round_double): Move prototypes ...
17228         * double-int.h: ... here.
17229
17230 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
17231
17232         PR target/43742
17233         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
17234         matching constraints to ensure inputs match the output.
17235
17236 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
17237
17238         PR target/43742
17239         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
17240         in an input-only operand.
17241
17242 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
17243
17244         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
17245         (double_int_not, double_int_lshift, double_int_rshift): Declare.
17246         (double_int_negative_p): Convert to static inline function.
17247         * double-int.c (double_int_lshift, double_int_lshift): New functions.
17248         (double_int_negative_p): Remove.
17249         * tree.h (lshift_double, rshift_double):
17250         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
17251         * fold-const.c (fold_convert_const_int_from_real,
17252         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
17253         (lshift_double): Change type of arith argument to bool.
17254         (rshift_double): Change type of arith argument to bool. Correct
17255         comment.
17256         * expmed.c (mask_rtx, lshift_value): (Ditto.).
17257
17258 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
17259
17260         PR target/21803
17261         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
17262         at the start and end of the then/else blocks, and omit them from the
17263         conversion.
17264         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
17265         argument; all callers changed.  Pass zero to old_insns_match_p instead.
17266         (flow_find_head_matching_sequence): New function.
17267         (old_insns_match_p): Check REG_EH_REGION notes for calls.
17268         * basic-block.h (flow_find_cross_jump,
17269         flow_find_head_matching_sequence): Declare functions.
17270
17271 2010-04-14  Jason Merrill  <jason@redhat.com>
17272
17273         PR c++/36625
17274         * c-common.c (attribute_takes_identifier_p): New fn.
17275         * c-common.h: Declare it.
17276
17277 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17278
17279         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
17280         splitter condition.
17281         (*udivmod<mode>4): Ditto.
17282
17283 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17284
17285         * config/i386/i386.md (maxmin_int): Rename code attribute from
17286         maxminiprefix and update all users.
17287         (maxmin_float): Ditto from maxminfprefix.
17288         (logic): Ditto from logicprefix.
17289         (absneg_mnemonic): Ditto from absnegprefix.
17290         * config/i386/mmx.md: Update all users of maxminiprefix,
17291         maxminfprefix and logicprefix for rename.
17292         * config/i386/sse.md: Ditto.
17293         * config/i386/sync.md (sync_<code><mode>): Update for
17294         logicprefix rename.
17295
17296 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17297
17298         PR 42966
17299         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
17300         warnings converted to errors.
17301
17302 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17303
17304         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
17305         used insn_type variable.
17306         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
17307         to avoid set-but-not-used warning.
17308
17309 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17310
17311         * df-core.c (df_ref_debug): Change format string placeholder
17312         from 0x%x to %#x.
17313         * dwarf2asm.c (dw2_asm_output_data_raw,
17314         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
17315         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
17316         * dwarf2out.c (output_cfi, output_cfi_directive,
17317         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
17318         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
17319         Ditto.
17320         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
17321         * print-rtl.c (print_rtx): Ditto.
17322
17323 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
17324
17325         PR middle-end/42694
17326         * builtins.c (expand_builtin_pow_root): New function to expand pow
17327         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
17328         series of sqrt and cbrt calls under -ffast-math.
17329         (expand_builtin_pow): Call it.
17330
17331 2010-04-14  Michael Matz  <matz@suse.de>
17332
17333         PR tree-optimization/42963
17334         * tree-cfg.c (touched_switch_bbs): New static variable.
17335         (group_case_labels_stmt): New function broken out from ...
17336         (group_case_labels): ... here, use the above.
17337         (start_recording_case_labels): Allocate touched_switch_bbs.
17338         (end_recording_case_labels): Deallocate it, call
17339         group_case_labels_stmt.
17340         (gimple_redirect_edge_and_branch): Remember index of affected BB.
17341
17342 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17343
17344         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
17345         from insn template.
17346
17347 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
17348
17349         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
17350
17351 2010-04-13  Jan Hubicka  <jh@suse.cz>
17352
17353         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
17354         of optimized out static functions.
17355         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
17356         cost computation.  Also sanity check for overflows.
17357         (update_caller_keys): Update cgraph_edge_badness call; properly
17358         update fibheap and sanity check that it is up to date.
17359         (add_new_edges_to_heap): Update cgraph_edge_badness.
17360         (cgraph_decide_inlining_of_small_function): Likewise;
17361         add sanity checking that badness in heap is up to date;
17362         improve dumping of reason; Update badness of calls to the
17363         offline copy of function currently inlined; dump badness
17364         of functions not inlined because of unit growth limits.
17365
17366 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
17367
17368         PR middle-end/32628
17369         * c-common.c (pointer_int_sum): Disregard overflow that occured only
17370         because of sign-extension change when converting to sizetype here...
17371         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
17372
17373         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
17374         the folding to constants.  Remove redundant final conversion.
17375         (fold_binary) <associate>: Do not associate if the re-association of
17376         constants alone overflows.
17377         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
17378         to the end of the list.
17379         (multiple_of_p) <COND_EXPR>: New case.
17380
17381 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17382
17383         * opt-functions.awk (opt_sanitized_name): New.
17384         (opt_enum): New.
17385         * optc-gen.awk: Use it
17386         * opth-gen.awk: Use it.
17387
17388 2010-04-13  Martin Jambor  <mjambor@suse.cz>
17389
17390         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
17391         (sra_modify_assign): Delete stmts loading dead data even if racc has no
17392         children.  Call replace_uses_with_default_def_ssa_name to handle
17393         SSA_NAES on lhs.
17394
17395 2010-04-13  Michael Matz  <matz@suse.de>
17396
17397         PR middle-end/43730
17398         * builtins.c (expand_builtin_interclass_mathfn): Also create
17399         a register if the predicate doesn't match.
17400
17401 2010-04-13  Diego Novillo  <dnovillo@google.com>
17402
17403         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
17404         * c-pch.c: Include timevar.h.
17405         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
17406         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
17407         * ggc-common.c: Include timevar.h.
17408         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
17409         * timevar.def (TV_PCH_SAVE): Define.
17410         (TV_PCH_CPP_SAVE): Define.
17411         (TV_PCH_PTR_REALLOC): Define.
17412         (TV_PCH_PTR_SORT): Define.
17413         (TV_PCH_RESTORE): Define.
17414         (TV_PCH_CPP_RESTORE): Define.
17415
17416 2010-04-13  Michael Matz  <matz@suse.de>
17417
17418         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
17419         into MINUS_EXPRs.
17420         (can_reassociate_p): New function.
17421         (break_up_subtract_bb, reassociate_bb): Use it.
17422
17423 2010-04-13  Richard Guenther  <rguenther@suse.de>
17424
17425         PR bootstrap/43737
17426         * builtins.c (c_readstr): Fix assert.
17427
17428 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
17429
17430         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
17431         when generating cltd insn.
17432
17433         (*ashl<mode>3_1): Remove special handling for register operand 2.
17434         (*ashlsi3_1_zext): Ditto.
17435         (*ashlhi3_1): Ditto.
17436         (*ashlhi3_1_lea): Ditto.
17437         (*ashlqi3_1): Ditto.
17438         (*ashlqi3_1_lea): Ditto.
17439         (*<shiftrt_insn><mode>3_1): Ditto.
17440         (*<shiftrt_insn>si3_1_zext): Ditto.
17441         (*<shiftrt_insn>qi3_1_slp): Ditto.
17442         (*<rotate_insn><mode>3_1): Ditto.
17443         (*<rotate_insn>si3_1_zext): Ditto.
17444         (*<rotate_insn>qi3_1_slp): Ditto.
17445
17446 2010-04-13  Richard Guenther  <rguenther@suse.de>
17447
17448         * tree-ssa-structalias.c (callused_id): Remove.
17449         (call_stmt_vars): New.
17450         (get_call_vi): Likewise.
17451         (lookup_call_use_vi): Likewise.
17452         (lookup_call_clobber_vi): Likewise.
17453         (get_call_use_vi): Likewise.
17454         (get_call_clobber_vi): Likewise.
17455         (make_transitive_closure_constraints): Likewise.
17456         (handle_const_call): Adjust to do per-call call-used handling.
17457         (handle_pure_call): Likewise.
17458         (find_what_var_points_to): Remove general callused handling.
17459         (init_base_vars): Likewise.
17460         (init_alias_vars): Initialize call_stmt_vars.
17461         (compute_points_to_sets): Process call-used and call-clobbered
17462         vars for call statements.
17463         (delete_points_to_sets): Free call_stmt_vars.
17464
17465 2010-04-13  Richard Guenther  <rguenther@suse.de>
17466
17467         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
17468         Only add RW dependence for dependence distance zero.
17469         Adjust maximal vectorization factor according to dependences.
17470         Move alignment handling ...
17471         (vect_find_same_alignment_drs): ... here.  New function.
17472         (vect_analyze_data_ref_dependences): Adjust.
17473         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
17474         (vect_analyze_data_refs): Adjust minimal vectorization factor
17475         according to data references.
17476         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
17477         dependences before determining the vectorization factor.
17478         Analyze alignment after determining the vectorization factor.
17479         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
17480         dependences before alignment.
17481         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
17482         Adjust prototype.
17483         (vect_analyze_data_refs): Likewise.
17484         (MAX_VECTORIZATION_FACTOR): New define.
17485
17486 2010-04-13  Duncan Sands  <baldrick@free.fr>
17487
17488         * except.h (lang_eh_type_covers): Remove.
17489         * except.c (lang_eh_type_covers): Likewise.
17490
17491 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17492             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17493
17494         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
17495         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
17496         UNITS_PER_LONG where it is ABI relevant.
17497         (s390_return_addr_rtx): Likewise.
17498         (s390_back_chain_rtx): Likewise.
17499         (s390_frame_area): Likewise.
17500         (s390_frame_info): Likewise.
17501         (s390_initial_elimination_offset): Likewise.
17502         (save_gprs): Likewise.
17503         (s390_emit_prologue): Likewise.
17504         (s390_emit_epilogue): Likewise.
17505         (s390_function_arg_advance): Likewise.
17506         (s390_function_arg): Likewise.
17507         (s390_va_start): Likewise.
17508         (s390_gimplify_va_arg): Likewise.
17509         (s390_function_profiler): Likewise.
17510         (s390_optimize_prologue): Likewise.
17511         (s390_rtx_costs): Likewise.
17512         (s390_secondary_reload): Likewise.
17513         (s390_promote_function_mode): Likewise.
17514         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
17515         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
17516         registers available.
17517         (s390_unwind_word_mode): New function.
17518         (s390_function_value): Split 64 bit values into register pair if
17519         used as return value.
17520         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
17521         function call parameters.  Handle parallels.
17522         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
17523         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
17524         (DWARF_CIE_DATA_ALIGNMENT): New macro.
17525         (s390_expand_setmem): Remove unused variable src_addr.
17526         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
17527         deal with 64 bit registers.
17528         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
17529         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
17530         (UNITS_PER_LONG): New macro.
17531         * libjava/include/s390-signal.h: Define extended ucontext
17532         structure containing the upper halfs of the 64 bit registers.
17533
17534 2010-04-13  Simon Baldwin  <simonb@google.com>
17535
17536         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
17537
17538 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
17539
17540         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
17541         rvalue on the RHS if the LHS is of a non-renamable type.
17542         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
17543
17544 2010-04-13  Matthias Klose  <doko@ubuntu.com>
17545
17546         * gcc.c (cc1_options): Handle -iplugindir before processing
17547         the cc1 spec. Only add -iplugindir once.
17548         (cpp_unique_options): Add -iplugindir option if -fplugin* options
17549         found.
17550         * common.opt (iplugindir): Remove `Separate' property, initialize.
17551         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
17552         option.
17553         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
17554         (distclean): Remove plugin dir.
17555         * doc/invoke.texi: Document -iplugindir.
17556
17557 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
17558
17559         * doc/plugins.texi (Loading Plugins): Document short
17560         -fplugin=foo option.
17561         (Plugin API): Mention default_plugin_dir_name function.
17562
17563         * gcc.c (find_file_spec_function): Add new declaration.
17564         (static_spec_func): Use it for "find-file".
17565         (find_file_spec_function): Add new function.
17566         (cc1_options): Add -iplugindir option if -fplugin* options found.
17567
17568         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
17569
17570         * plugin.c (add_new_plugin): Updated comment, and handle short
17571         plugin name.
17572         (default_plugin_dir_name): Added new function.
17573
17574         * common.opt (iplugindir): New option to set the plugin directory.
17575
17576 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
17577
17578         * config/i386/i386.md (any_rotate): New code iterator.
17579         (rotate_insn): New code attribute.
17580         (rotate): Ditto.
17581         (SWIM124): New mode iterator.
17582         (<rotate_insn>ti3): New expander.
17583         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
17584         any_rotate code iterator.
17585         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
17586         using any_rotate code iterator and SWIM124 mode iterator.
17587         (ix86_rotlti3): New insn_and_split pattern.
17588         (ix86_rotrti3): Ditto.
17589         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
17590         ix86_rotl{di,ti}3 patterns.
17591         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
17592         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
17593         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
17594         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
17595         code iterator and SWI mode iterator.
17596         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
17597         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
17598         code iterator.
17599         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
17600         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
17601         (bswap rotatert splitter): Add splitter.
17602         (bswap splitter): Macroize splitter using any_rotate code iterator.
17603         Add insn predicate to split only for TARGET_USE_XCHGB or when
17604         optimizing function for size.
17605
17606 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
17607
17608         * config/pa/pa.c (emit_move_sequence): Remove use of
17609         deleted variable flag_argument_noalias.
17610
17611 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17612
17613         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
17614         configurations.
17615         Add to unsupported targets list.
17616         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
17617         sparc*-sun-solaris2.[567]* from target lists.
17618         * configure: Regenerate.
17619         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
17620         removal.
17621         Remove Solaris 7 patch references.
17622         (Specific, sparc-sun-solaris2.7): Removed.
17623         (sparc-sun-solaris2*): Update Solaris 7 example.
17624         (sparc64-*-solaris2*): Likewise.
17625
17626 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17627
17628         * config.build (alpha*-dec-osf4*): Remove.
17629         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
17630         of obsolete configurations.
17631         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
17632         support.
17633         * config/alpha/t-osf4: Renamed to ...
17634         * config/alpha/t-osf5: ... this.
17635         * config/alpha/osf.h: Renamed to ...
17636         * config/alpha/osf5.h: ... this.
17637         Merged old osf5.h contents.
17638         Update comments.
17639         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
17640         (EXTRA_SPECS): Removed.
17641         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
17642         reflect removal of Tru64 UNIX V4.0/V5.0 support.
17643         Document that.
17644
17645 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17646
17647         * doc/contrib.texi (Contributors, Rainer Orth): Update.
17648
17649 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
17650
17651         PR/43702
17652         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
17653         __thiscall convention.
17654
17655 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
17656
17657         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
17658         orig_base.
17659         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
17660
17661 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
17662
17663         * function.c (assign_parms_initialize_all): Add unused attribute
17664         to fntype.
17665
17666 2010-04-12  Richard Guenther  <rguenther@suse.de>
17667
17668         * gsstruct.def (GSS_CALL): New.
17669         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
17670         * gimple.h: Include tree-ssa-alias.h.
17671         (struct gimple_statement_call): New.
17672         (union gimple_statement_struct_d): Add gimple_call member.
17673         (gimple_call_reset_alias_info): Declare.
17674         (gimple_call_use_set): New function.
17675         (gimple_call_clobber_set): Likewise.
17676         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
17677         * gimple.c (gimple_call_reset_alias_info): New function.
17678         (gimple_build_call_1): Call it.
17679         * lto-streamer-in.c (input_gimple_stmt): Likewise.
17680         * tree-inline.c (remap_gimple_stmt): Likewise.
17681         (expand_call_inline): Remove callused handling.
17682         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
17683         * tree-dfa.c (dump_variable): Likewise.
17684         * tree-parloops.c (parallelize_loops): Likewise.
17685         * tree-ssa.c (init_tree_ssa): Likewise.
17686         (delete_tree_ssa): Likewise.
17687         * tree-flow-inline.h (is_call_used): Remove.
17688         * tree-flow.h (struct gimple_df): Remove callused member.
17689         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
17690         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
17691         (ref_maybe_used_by_call_p_1): Simplify.
17692         (call_may_clobber_ref_p_1): Likewise.
17693         * tree-ssa-structalias.c (compute_points_to_sets): Set
17694         the call stmt used and clobbered sets.
17695         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
17696         (find_tail_calls): Verify the tail call.
17697
17698 2010-04-12  Richard Guenther  <rguenther@suse.de>
17699
17700         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
17701         single-iteration always-inline inlining.
17702         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
17703         (cgraph_decide_inlining): Do not handle always-inline specially.
17704         (try_inline): Remove always-inline cycle detection special case.
17705         Do not recurse on always-inlines.
17706         (cgraph_early_inlining): Do not iterate if not optimizing.
17707         (cgraph_gate_early_inlining): remove.
17708         (pass_early_inline): Run unconditionally.
17709         (gate_cgraph_decide_inlining): New function.
17710         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
17711         not inlining or optimizing.
17712         (cgraph_decide_inlining_of_small_functions): Also consider
17713         always-inline functions.
17714         (cgraph_default_inline_p): Return true for nodes which should
17715         disregard inline limits.
17716         (estimate_function_body_sizes): Assume zero size and time for
17717         nodes which are marked as disregarding inline limits.
17718         (cgraph_decide_recursive_inlining): Do not perform recursive
17719         inlining on always-inline nodes.
17720
17721 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
17722
17723         PR bootstrap/43699
17724         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
17725         for exprs satisfying handled_component_p.
17726
17727 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
17728
17729         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
17730         non-constant aggregate elements.
17731
17732         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
17733         is a real initialization.
17734
17735 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
17736
17737         PR c/36774
17738         * c-decl.c (start_function): Move forward check for nested function.
17739
17740 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
17741
17742         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
17743         * config/sh/sh.c: Include reload.h.
17744         (sh_legitimize_reload_address): New.
17745         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
17746         sh_legitimize_reload_address.
17747
17748 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
17749
17750         * config/sh/sh.md (*movqi_pop): New insn pattern.
17751         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
17752
17753 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
17754
17755         * config/i386/i386.md (any_shiftrt): New code iterator.
17756         (shiftrt_insn): New code attribute.
17757         (shiftrt): Ditto.
17758         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
17759         using any_shiftrt code iterator.
17760         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
17761         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
17762         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
17763         pattern from corresponding peephole2 patterns.
17764         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
17765         using any_shiftrt code iterator.
17766         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
17767         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
17768         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
17769         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
17770         *{ashr,lshr}<mode>3_cmp_zext.
17771         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
17772
17773 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
17774
17775         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
17776         scratch register.
17777         (*lshr<mode>3_cconly): Ditto.
17778
17779 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
17780
17781         * config/i386/i386.md (lshr<mode>3): Macroize expander from
17782         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
17783         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
17784         pattern from *lshr{di,ti}3_1 and corresponding splitters using
17785         DWI mode iterator.
17786         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
17787         from corresponding peephole2 patterns.
17788         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
17789         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
17790         and *lshrdi3_1_rex64 using SWI mode iterator.
17791         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
17792         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
17793         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
17794         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
17795         and *lshrdi3_cmp_rex64 using SWI mode iterator.
17796         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
17797         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
17798         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
17799         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
17800         SWI mode iterator.
17801
17802 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
17803
17804         * config/i386/i386.md (ashr<mode>3): Macroize expander from
17805         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
17806         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
17807         pattern from *ashr{di,ti}3_1 and corresponding splitters using
17808         DWI mode iterator.
17809         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
17810         from corresponding peephole2 patterns.
17811         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
17812         (ashrsi3_cvt): Rename from ashrsi3_31.
17813         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
17814         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
17815         and x86_64_shift_adj_3 using SWI48 mode iterator.
17816         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
17817         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
17818         and *ashrdi3_1_rex64 using SWI mode iterator.
17819         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
17820         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
17821         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
17822         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
17823         and *ashrdi3_cmp_rex64 using SWI mode iterator.
17824         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
17825         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
17826         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
17827         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
17828         SWI mode iterator.
17829         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
17830         * config/i386/i386.c (ix86_split_ashr): Update for renamed
17831         x86_shift<mode>_adj_3 expanders.
17832
17833 2010-04-10  Wei Guozhi  <carrot@google.com>
17834
17835         PR target/42601
17836         * config/arm/arm.c (arm_pic_static_addr): New function.
17837         (legitimize_pic_address): Call arm_pic_static_addr when it detects
17838         a static symbol.
17839         (arm_output_addr_const_extra): Output expression for new pattern.
17840         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
17841
17842 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
17843
17844         * ira-costs.c (record_reg_classes): Ignore alternatives that are
17845         not enabled.
17846
17847         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
17848         * web.c: Include "insn-config.h" and "recog.h".
17849         (union_match_dups): New function.
17850         (web_main): Call it.
17851         (union_defs): Don't try to recognize match_dups.
17852
17853         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
17854         if doing so would replace the entire pattern.
17855
17856 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
17857
17858         PR target/43707
17859         PR target/43709
17860         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
17861         and splitter pattern.  Change splitter operand 1 predicate to
17862         nonmemory_operand.
17863
17864 2010-04-09  Martin Jambor  <mjambor@suse.cz>
17865
17866         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
17867         lattices are addresses of CONST_DECLs with the same initial value.
17868         (ipcp_print_all_lattices): Print values of CONST_DECLs.
17869         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
17870
17871 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
17872             Bernd Schmidt  <bernds@codesourcery.com>
17873
17874         * loop-invariant.c (replace_uses): New static function.
17875         (move_invariant_reg): Use it to ensure we can replace the uses.
17876
17877 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
17878
17879         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
17880         function template.
17881         (picochip_override_options): Enable section anchors only above -O1.
17882         (picochip_reorg): Fixed a couple of build warnings.
17883
17884 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17885
17886         * configure.ac (plugin -rdynamic test): Log result.
17887         * configure: Regenerate.
17888         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
17889         (RDYNAMIC_SPEC): Define.
17890         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
17891
17892 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17893
17894         * configure.ac: Determine Sun ld version numbers.
17895         (comdat_group): Restrict GNU ld version checks to gld.
17896         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
17897         (enable_comdat): Support --enable-comdat.
17898         * configure: Regenerate.
17899         * doc/install.texi (Configuration): Document --enable-comdat.
17900
17901 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17902
17903         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
17904         * config/sol2-gld.h: ... here.
17905         * config.gcc (sparc*-*-solaris2*): Reflect this.
17906         (i[34567]86-*-solaris2*): Use it.
17907
17908 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
17909
17910         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
17911         setup_clocks_p.
17912         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
17913
17914 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17915
17916         PR 42965
17917         * diagnostic.c (diagnostic_initialize): Initialize
17918         some_warnings_are_errors.
17919         (diagnostic_finish): New.
17920         (diagnostic_action_after_output): Call it before exiting.
17921         (diagnostic_report_diagnostic): Do not print message here. Set
17922         some_warnings_are_errors.
17923         * diagnostic.h (diagnostic_context): Delete
17924         issue_warnings_are_errors_message. Add some_warnings_are_errors.
17925         (diagnostic_finish): Declare.
17926         * toplev.c (toplev_main): Call it before exit.
17927
17928 2010-04-09  Jason Merrill  <jason@redhat.com>
17929
17930         PR c++/42623
17931         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
17932         for incomplete type.
17933
17934         PR c++/41788
17935         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
17936         based on a warning flag.
17937
17938 2010-04-09  Richard Guenther  <rguenther@suse.de>
17939
17940         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
17941
17942 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
17943
17944         PR bootstrap/43684
17945         * varasm.c (default_assemble_visibility): Wrap vars that are
17946         set, but unused, by targets without GAS.
17947         * config/rs6000/rs6000.c (paired_emit_vector_compare):
17948         Remove set, but unused, vars.
17949         (rs6000_legitimize_tls_address): Likewise.
17950         (altivec_expand_dst_builtin): Likewise.
17951         * config/darwin.c (machopic_classify_symbol): Likewise.
17952         (machopic_indirection_name): Likewise.
17953
17954 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
17955
17956         * config/i386/i386.md (DWI): New mode iterator.
17957         (S): New mode attribute.
17958         (shift_operand): Ditto.
17959         (shift_immediate_operand): Ditto.
17960         (ashl_input_operand): Ditto.
17961         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
17962         using SDWIM mode iterator.
17963         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
17964         pattern from *ashl{di,ti}3_1 and corresponding splitters using
17965         DWI mode iterator.
17966         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
17967         from corresponding peephole2 patterns.
17968         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
17969         and x86_64_shift_adj_1 using SWI48 mode iterator.
17970         (x86_shift<mode>_adj_2): Ditto.
17971         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
17972         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
17973         using SWI48 mode iterator.
17974         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
17975         *ashldi3_cmp_rex64 using SWI mode iterator.
17976         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
17977         *ashldi3_cconly_rex64 using SWI mode iterator.
17978         * config/i386/i386.c (ix86_split_ashl): Update for renamed
17979         x86_shift<mode>_adj_{1,2}.
17980         (ix86_split_ashr): Ditto.
17981         (ix86_split_lshr): Ditto.
17982
17983 2010-04-09  Richard Guenther  <rguenther@suse.de>
17984
17985         * target.h (builtin_conversion): Pass in input and output types.
17986         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
17987         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
17988         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
17989         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
17990
17991         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
17992         Handle AVX modes.
17993         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
17994
17995 2010-04-09  Richard Guenther  <rguenther@suse.de>
17996
17997         PR target/43152
17998         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
17999
18000 2010-04-09  Richard Guenther  <rguenther@suse.de>
18001
18002         * tree-vectorizer.h (struct _stmt_vec_info): Document
18003         that vectype is the type of the LHS.
18004         (supportable_widening_operation, supportable_narrowing_operation):
18005         Get both input and output vector types as arguments.
18006         (vect_is_simple_use_1): Declare.
18007         (get_same_sized_vectype): Likewise.
18008         * tree-vect-loop.c (vect_determine_vectorization_factor):
18009         Set STMT_VINFO_VECTYPE to the vector type of the def.
18010         (vectorizable_reduction): Adjust.
18011         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
18012         Adjust.  Specify the output vector type.
18013         (vect_pattern_recog_1): Adjust.
18014         * tree-vect-stmts.c (get_same_sized_vectype): New function.
18015         (vectorizable_call): Adjust.
18016         (vectorizable_conversion): Likewise.
18017         (vectorizable_operation): Likewise.
18018         (vectorizable_type_demotion): Likewise.
18019         (vectorizable_type_promotion): Likewise.
18020         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
18021         the def.
18022         (vect_is_simple_use_1): New function.
18023         (supportable_widening_operation): Get both input and output
18024         vector types.
18025         (supportable_narrowing_operation): Likewise.
18026         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
18027
18028 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
18029
18030         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
18031         __thiscall and _thiscall as predefined macros.
18032         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
18033         thiscall attribute handling.
18034         (ix86_comp_type_attributes): Likewise.
18035         (ix86_function_regparm): Likewise.
18036         (ix86_return_pops_args): Likewise.
18037         (init_cumulative_args): Likewise.
18038         (find_drap_reg): Likewise.
18039         (ix86_static_chain): Likewise.
18040         (x86_this_parameter): Likewise.
18041         (x86_output_mi_thunk): Likewise.
18042         (ix86_attribute_table): Add description for thiscall attribute.
18043         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
18044         * doc/extend.texi: Add documentation for thiscall.
18045
18046 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18047
18048         PR c++/28584
18049         * c.opt (Wint-to-pointer-cast): Available in C++.
18050         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
18051
18052 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
18053
18054         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
18055         * calls.c (expand_call): Pass the function type to aggregate_value_p.
18056         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
18057         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
18058         function type instead.  Reorder and simplify checks.
18059
18060         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
18061
18062 2010-04-08  Jing Yu  <jingyu@google.com>
18063             Zdenek Dvorak  <ook@ucw.cz>
18064
18065         PR tree-optimization/42720
18066         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
18067         loop unswitch conditions here from ...
18068         (tree_unswitch_single_loop): ... here.
18069
18070 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
18071
18072         * tree-if-conv.c: Fix comments and simplify logic.
18073
18074 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
18075
18076         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
18077         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
18078         (main_tree_if_conversion): Update call to tree_if_conversion.
18079
18080 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18081
18082         PR 42485
18083         * doc/invoke.texi (-b,-V): Delete.
18084         * doc/tm.texi: Do not mention -b.
18085         * gcc.c (display_help): Delete -b and -V.
18086         (process_command): Delete -b and -V.
18087         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
18088
18089 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
18090             Wolfgang Gellerich  <gellerich@de.ibm.com>
18091
18092         Implement target hook for loop unrolling
18093         * target.h (loop_unroll_adjust): Add a new target hook function.
18094         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
18095         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
18096         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
18097         (s390_loop_unroll_adjust): Implement the new target hook for s390.
18098         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
18099         target hook.
18100         (decide_unroll_stupid): Likewise.
18101
18102 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18103
18104         PR target/43643
18105         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
18106
18107 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18108
18109         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
18110         (Specific, *-*-solaris2*): Likewise.
18111         Don't prefer Sun as over GNU as.
18112
18113 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
18114
18115         * config/s390/s390.c (override_options): Adjust the z10 defaults
18116         for max-unroll-times, max-completely-peeled-insns
18117         and max-completely-peel-times.
18118
18119 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18120
18121         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
18122         instructions for z10.
18123         (s390_expand_setmem): Likewise.
18124         (s390_expand_cmpmem): Likewise.
18125
18126 2010-04-08  Richard Guenther  <rguenther@suse.de>
18127
18128         PR tree-optimization/43679
18129         * tree-ssa-pre.c (eliminate): Only propagate copies.
18130
18131 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
18132
18133         PR bootstrap/43681
18134         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
18135         set but not used variable warning.
18136
18137 2010-04-08  Wei Guozhi  <carrot@google.com>
18138
18139         PR target/41653
18140         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
18141         (arm_size_rtx_costs): Call the new function when optimized for size.
18142
18143 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
18144
18145         PR debug/43670
18146         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
18147         op0 is not a MEM, just return NULL instead of assertion
18148         failure.
18149         (discover_nonconstant_array_refs): Don't walk debug stmts.
18150
18151 2010-04-08  Doug Kwan  <dougkwan@google.com>
18152
18153         * configure.ac: Recognize gold and do not use its version number
18154         to test ld features.
18155         * configure: Regenerate.
18156
18157 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
18158
18159         PR middle-end/40815
18160         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
18161         (negate_value): Move code to push elements to broken_up_substracts ...
18162         (eliminate_plus_minus_pair): ... here.  Push operands that have no
18163         negative pair to plus_negates.
18164         (repropagate_negates, init_reassoc, fini_reassoc): Update.
18165
18166 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18167
18168         * doc/install.texi (Configuration): Move description of
18169         --enable-lto, --with-libelf*, --enable-gold from Java section to
18170         general section.
18171
18172         * doc/generic.texi (Working with declarations)
18173         (Function Properties, C and C++ Trees): Fix typos.
18174         * doc/sourcebuild.texi (Top Level): Likewise.
18175
18176 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
18177
18178         PR c/18624
18179         * tree.h (DECL_READ_P): Define.
18180         (struct tree_decl_common): Add decl_read_flag.
18181         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
18182         a set but not used warning.
18183         (merge_decls): Merge DECL_READ_P flag.
18184         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
18185         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
18186         * c-common.c (handle_used_attribute, handle_unused_attribute):
18187         Likewise.
18188         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
18189         New prototypes.
18190         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
18191         New functions.
18192         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
18193         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
18194         c_parser_binary_expression, c_parser_cast_expression,
18195         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
18196         Call default_function_array_read_conversion instead of
18197         default_function_array_conversion where needed.
18198         (c_parser_unary_expression, c_parser_conditional_expression,
18199         c_parser_postfix_expression_after_primary, c_parser_initelt):
18200         Likewise.  Call mark_exp_read where needed.
18201         (c_parser_statement_after_labels, c_parser_asm_operands,
18202         c_parser_typeof_specifier, c_parser_sizeof_expression,
18203         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
18204         where needed.
18205         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
18206         New.
18207         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
18208         (warn_unused_but_set_parameter): Default to warn_unused
18209         && extra_warnings.
18210         * doc/invoke.texi: Document -Wunused-but-set-variable and
18211         -Wunused-but-set-parameter.
18212
18213         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
18214         used count variable.
18215         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
18216         when operandN variables aren't used in the body of the expander
18217         or splitter.
18218         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
18219         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
18220         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
18221         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
18222         FOR_EACH_IMM_USE_ON_STMT): Likewise.
18223         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
18224         * tree.c (PROCESS_ARG): Likewise.
18225
18226 2010-04-07  Simon Baldwin  <simonb@google.com>
18227
18228         * diagnostic.h (diagnostic_override_option_index): New macro to
18229         set a diagnostic's option_index.
18230         * c-tree.h (c_cpp_error): Add warning reason argument.
18231         * opts.c (_warning_as_error_callback): New.
18232         (register_warning_as_error_callback): Store callback for
18233         warnings enabled via enable_warning_as_error.
18234         (enable_warning_as_error): Call callback, minor code tidy.
18235         * opts.h (register_warning_as_error_callback): Declare.
18236         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
18237         response to -Werror=.
18238         (c_common_init_options): Register warning_as_error_callback in opts.c.
18239         * common.opt: Add -Wno-cpp option.
18240         * c-common.c (struct reason_option_codes_t): Map cpp warning
18241         reason codes to gcc option indexes.
18242         * (c_option_controlling_cpp_error): New function, lookup the gcc
18243         option index for a cpp warning reason code.
18244         * (c_cpp_error): Add warning reason argument, call
18245         c_option_controlling_cpp_error for diagnostic_override_option_index.
18246         * doc/invoke.texi: Document -Wno-cpp.
18247
18248 2010-04-07  Richard Guenther  <rguenther@suse.de>
18249
18250         * ipa-reference.c (mark_load): Use get_base_address.
18251         (mark_store): Likewise.
18252
18253         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
18254         inserting GIMPLE_NOPs into the IL.
18255         * tree-ssa-structalias.c (get_constraint_for_component_ref):
18256         Explicitly strip handled components and indirect references.
18257
18258         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
18259         folding address expressions.
18260         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
18261         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
18262         operand_equal_p to compare decls.
18263         (ptr_deref_may_alias_decl_p): Likewise.
18264         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
18265         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
18266         Handle reversed comparison ops.
18267         * tree-sra.c (asm_visit_addr): Use get_base_address.
18268         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
18269         * ipa-reference.c (mark_address): Use get_base_address.
18270
18271 2010-04-07  Richard Guenther  <rguenther@suse.de>
18272
18273         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
18274         Propagate constants everywhere.
18275
18276 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
18277
18278         PR debug/43516
18279         * tree.c (MAX_INT_CACHED_PREC): Define.
18280         (nonstandard_integer_type_cache): New array.
18281         (build_nonstandard_integer_type): Cache results for precision
18282         <= MAX_INT_CACHED_PREC.
18283
18284 2010-04-07  Richard Guenther  <rguenther@suse.de>
18285
18286         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
18287         -fargument-noalias-global, -fargument-noalias-anything): Remove.
18288         * common.opt: Likewise.
18289         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
18290         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
18291         (nonoverlapping_memrefs_p): Likewise.
18292         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
18293         * opts.c (common_handle_option): Handle OPT_fargument_alias,
18294         OPT_fargument_noalias, OPT_fargument_noalias_anything and
18295         OPT_fargument_noalias_global for backward compatibility.
18296
18297 2010-04-07  Richard Guenther  <rguenther@suse.de>
18298
18299         PR tree-optimization/43270
18300         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
18301         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
18302         * tree-ssa-pre.c (phi_translate_1): Adjust.
18303         (fully_constant_expression): Split out vn_reference handling to ...
18304         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
18305         Fold reads from constant strings.
18306         (vn_reference_lookup): Handle fully constant references.
18307         (vn_reference_lookup_pieces): Likewise.
18308         * Makefile.in (expmed.o-warn): Add -Wno-error.
18309
18310 2010-04-07  Martin Jambor  <mjambor@suse.cz>
18311
18312         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
18313
18314 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
18315
18316         PR driver/41594
18317         * gcc.c: Add -static-libstdc++ to list of recognized options.
18318
18319 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18320
18321         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
18322
18323 2010-04-07  Richard Guenther  <rguenther@suse.de>
18324
18325         PR middle-end/42617
18326         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
18327         bases build simple mem attributes to retain points-to information.
18328
18329 2010-04-07  Richard Guenther  <rguenther@suse.de>
18330
18331         PR middle-end/42617
18332         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
18333         preserve points-to related information.
18334
18335 2010-04-07  Richard Guenther  <rguenther@suse.de>
18336
18337         PR middle-end/42617
18338         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
18339         discard plain indirect references.
18340         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
18341         * tree.c (tree_nop_conversion): Likewise.
18342
18343 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
18344
18345         PR debug/43628
18346         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
18347
18348 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
18349
18350         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
18351         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
18352
18353 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
18354
18355         * tree-if-conv.c: Fix indentation and comments.
18356
18357 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
18358
18359         * tree-if-conv.c: Sort static functions in topological order.
18360
18361 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
18362
18363         * tree-if-conv.c: Fix indentation and comments.
18364
18365 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18366
18367         PR middle-end/43519
18368         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
18369         lang_hooks.types.type_for_size instead of
18370         build_nonstandard_integer_type.
18371         When converting an unsigned type to signed, double its precision.
18372         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
18373         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
18374         (graphite_create_new_loop_guard): When ub + 1 wraps around,
18375         use lb <= ub.
18376
18377 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18378
18379         PR middle-end/43519
18380         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
18381         POINTER_PLUS_EXPR for pointer types.
18382
18383 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18384
18385         PR middle-end/43519
18386         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
18387         * graphite-clast-to-gimple.c: Include langhooks.h.
18388         (max_signed_precision_type): New.
18389         (max_precision_type): Takes two types as arguments.
18390         (precision_for_value): New.
18391         (precision_for_interval): New.
18392         (gcc_type_for_interval): New.
18393         (gcc_type_for_value): New.
18394         (gcc_type_for_clast_term): New.
18395         (gcc_type_for_clast_red): New.
18396         (gcc_type_for_clast_bin): New.
18397         (gcc_type_for_clast_expr): Split up into several functions.
18398         (gcc_type_for_clast_eq): Rewritten.
18399         (compute_bounds_for_level): New.
18400         (compute_type_for_level_1): New.
18401         (compute_type_for_level): New.
18402         (gcc_type_for_cloog_iv): Removed.
18403         (gcc_type_for_iv_of_clast_loop): Rewritten.
18404         (graphite_create_new_loop): Compute the lower and upper bound types
18405         with gcc_type_for_clast_expr.
18406         (graphite_create_new_loop_guard): Same.
18407         (find_cloog_iv_in_expr): Removed.
18408         (compute_cloog_iv_types_1): Removed.
18409         (compute_cloog_iv_types): Removed.
18410         (gloog): Do not call compute_cloog_iv_types.
18411         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
18412         GBB_CLOOG_IV_TYPES.
18413         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
18414         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
18415         (GBB_CLOOG_IV_TYPES): Removed.
18416
18417 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18418
18419         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
18420         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
18421         (detect_commutative_reduction): Same.
18422
18423 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18424
18425         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
18426         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
18427         argument.
18428         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
18429         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
18430         (rewrite_commutative_reductions_out_of_ssa): Same.
18431         * passes.c (execute_function_todo): Call verify_ssa for every pass
18432         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
18433         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
18434         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
18435         with an extra argument.
18436         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
18437         verify_ssa only when the extra argument is true.
18438         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
18439         with an extra argument.
18440         (tree_transform_and_unroll_loop): Same.
18441
18442 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
18443
18444         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
18445         for all the passes of the LNO having LOOP_CLOSED_SSA.
18446         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
18447         * tree-loop-distribution.c (pass_loop_distribution): Same.
18448         * tree-pass.h (TODO_verify_loops): Removed.
18449         * tree-ssa-loop.c (pass_tree_loop_init): Same.
18450         (pass_lim): Same.
18451         (pass_tree_unswitch): Same.
18452         (pass_predcom): Same.
18453         (pass_vectorize): Same.
18454         (pass_linear_transform): Same.
18455         (pass_graphite_transforms): Same.
18456         (pass_iv_canon): Same.
18457         (pass_complete_unroll): Same.
18458         (pass_complete_unrolli): Same.
18459         (pass_parallelize_loops): Same.
18460         (pass_loop_prefetch): Same.
18461         (pass_iv_optimize): Same.
18462
18463 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
18464
18465         PR middle-end/32824
18466         * passes.c (init_optimization_passes): Move pass_lim before
18467         pass_copy_prop and pass_dce_loop.
18468
18469 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
18470
18471         PR target/43667
18472         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
18473         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
18474         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
18475         MULTI_* defines for 4 argument vpermil2p* builtins.
18476
18477 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
18478
18479         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
18480         * config/i386/i386.c (x86_maybe_negate_const_int): New.
18481         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
18482         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
18483         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
18484         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
18485         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
18486         Use x86_maybe_negate_const_int to output insn mnemonic.
18487         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
18488         check from instruction predicate.  Update comments.
18489         * config/i386/sync.md (sync_add<mode>): Use
18490         x86_maybe_negate_const_int to output insn mnemonic.
18491
18492 2010-04-06  Jan Hubicka  <jh@suse.cz>
18493
18494         PR tree-optimization/42906
18495         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
18496         IGNORE_SELF argument.  Set visited_control_parents for fully
18497         processed BBs.
18498         (find_obviously_necessary_stmts): Update call of
18499         mark_control_dependent_edges_necessary.
18500         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
18501
18502 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
18503
18504         * config/i386/i386.md: Remove comment about 'e' and 'E'
18505         operand modifier.
18506
18507 2010-04-06  Richard Guenther  <rguenther@suse.de>
18508
18509         PR tree-optimization/43627
18510         * tree-vrp.c (extract_range_from_unary_expr): Widenings
18511         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
18512         not varying.
18513
18514 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
18515
18516         * BASE-VER: Change to 4.6.0.
18517
18518         PR target/43638
18519         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
18520         handling.
18521
18522 2010-04-06  Richard Guenther  <rguenther@suse.de>
18523
18524         PR middle-end/43661
18525         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
18526
18527 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18528
18529         * doc/invoke.texi (Optimize Options): Document that LTO
18530         won't remove object access purely due to incompatible
18531         declarations.
18532
18533 2010-04-04  Matthias Klose  <doko@ubuntu.com>
18534
18535         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
18536         Initialize variable.
18537
18538 2010-04-03  Richard Guenther  <rguenther@suse.de>
18539
18540         PR middle-end/42509
18541         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
18542         require a non-NULL MEM_OFFSET.
18543
18544 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
18545
18546         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
18547         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
18548         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
18549         config/alpha/predicates.md, config/arm/arm.md,
18550         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
18551         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
18552         config/darwin9.h, config/darwin.c, config/darwin.h,
18553         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
18554         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
18555         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
18556         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
18557         config/mips/mips.md, config/mn10300/mn10300.c,
18558         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
18559         config/rs6000/aix.h, config/rs6000/dfp.md,
18560         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
18561         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
18562         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
18563         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
18564         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
18565         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
18566         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
18567         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
18568         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
18569         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
18570         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
18571         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
18572         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
18573         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
18574         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
18575         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
18576         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
18577         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
18578         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
18579         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
18580         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
18581         opt-functions.awk, opth-gen.awk, params.def, passes.c,
18582         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
18583         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
18584         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
18585         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
18586         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
18587         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
18588         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
18589         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
18590         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
18591         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
18592         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
18593         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
18594         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
18595         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
18596
18597 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18598
18599         PR other/43620
18600         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
18601         * aclocal.m4: Regenerate.
18602
18603 2010-04-02  Richard Guenther  <rguenther@suse.de>
18604
18605         PR tree-optimization/43629
18606         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
18607         if we have seen a constant value.
18608
18609 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
18610
18611         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
18612
18613 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
18614
18615         PR target/43469
18616         * arm.c (legitimize_tls_address): Adjust call to
18617         gen_tls_load_dot_plus_four.
18618         (arm_note_pic_base): New function.
18619         (arm_cannot_copy_insn_p): Use it.
18620         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
18621         constraint.
18622
18623 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18624
18625         PR bootstrap/43531
18626
18627         Revert:
18628         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18629
18630         * Makefile.in ($(out_object_file)): Depend on
18631         gt-$(basename $(notdir $(out_file))).h.
18632
18633 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
18634
18635         * config.gcc (lm32-*-rtems*): Add t-lm32.
18636
18637 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
18638
18639         * config.gcc: Add lm32-*-rtems*.
18640         * config/lm32/rtems.h: New file.
18641
18642 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
18643
18644         PR target/42609
18645         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
18646
18647 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
18648
18649         * dwarf2out.c (output_compilation_unit_header): For
18650         -gdwarf-4 use version 4 instead of version 3.
18651         (output_line_info): For version 4 and above emit additional
18652         maximum ops per insn header field.
18653         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
18654
18655         * dwarf2out.c (is_c_family, is_java): Remove.
18656         (lower_bound_default): New function.
18657         (add_bound_info, gen_descr_array_type_die): Use it.
18658
18659 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
18660
18661         PR debug/43325
18662         * dwarf2out.c (gen_variable_die): Allow debug info for variable
18663         re-declaration when it happens in a function.
18664
18665 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
18666
18667         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
18668         (cgraph_remove_function_insertion_hook): Same.
18669         (cgraph_call_function_insertion_hooks): Same.
18670
18671 2010-04-01  Richard Guenther  <rguenther@suse.de>
18672
18673         PR middle-end/43614
18674         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
18675         and TREE_THIS_VOLATILE.
18676         (copy_ref_info): Likewise.
18677         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
18678         * tree.c (build6_stat): Ignore side-effects of all but arg5
18679         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
18680         TARGET_MEM_REF.
18681
18682 2010-04-01  Richard Guenther  <rguenther@suse.de>
18683
18684         PR tree-optimization/43607
18685         * ipa-type-escape.c (check_call): Do not access non-existing
18686         arguments.
18687
18688 2010-04-01  Richard Guenther  <rguenther@suse.de>
18689
18690         PR middle-end/43602
18691         Revert
18692         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
18693                     Jack Howarth <howarth@bromo.med.uc.edu>
18694
18695         * tree-profile.c (tree_init_ic_make_global_vars): Make static
18696         variables TLS.
18697
18698 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18699
18700         * doc/install.texi (Prerequisites): Document libelf usability on
18701         IRIX 5/6 and Solaris 2.
18702         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
18703         Update GNU as, GNU ld requirements.
18704         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
18705         Document Sun Studio compiler download.
18706         Update and simplify as, ld recommendations.
18707         (Specific, *-*-solaris2.7): Note obsoletion, removal.
18708
18709 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18710
18711         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
18712         with_tune_32 to pentium4.
18713
18714 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
18715
18716         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
18717
18718 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18719
18720         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
18721         obsoletion, removal.
18722         Update IDO URL.
18723         Document GNU as requirement.
18724         Update configure requirements.
18725         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
18726         Recomment IRIX 6.5.18+.
18727         Document IDF/IDL requirement.
18728         Document GNU as requirement.
18729         Document GNU ld bootstrap failure.
18730         Remove freeware.sgi.com reference.
18731
18732 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18733
18734         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
18735         UNIX V4.0, V5.0 obsoletion, removal.
18736         Remove --with-gc=simple reference.
18737         Update VM requirements during bootstrap.
18738         Remove -oldas bootstrap description.
18739         Update binutils reference.
18740         Remove comparison failure note.
18741
18742 2010-03-31  Richard Guenther  <rguenther@suse.de>
18743             Zdenek Dvorak  <ook@ucw.cz>
18744             Sebastian Pop  <sebastian.pop@amd.com>
18745
18746         PR middle-end/43464
18747         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
18748         with multiple arguments.
18749         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
18750
18751 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18752
18753         * graphite-dependences.c (print_pddr): Call print_pdr with an
18754         extra argument.
18755         * graphite-poly.c (debug_pdr): Add an extra argument for the
18756         verbosity level.
18757         (print_pdr): Same.
18758         (print_pbb_domain): Same.
18759         (print_pbb): Same.
18760         (print_scop_context): Same.
18761         (print_scop): Same.
18762         (print_cloog): Same.
18763         (debug_pbb_domain): Same.
18764         (debug_pbb): Same.
18765         (print_pdrs): Same.
18766         (debug_pdrs): Same.
18767         (debug_scop_context): Same.
18768         (debug_scop): Same.
18769         (debug_cloog): Same.
18770         (print_scop_params): Same.
18771         (debug_scop_params): Same.
18772         (print_iteration_domain): Same.
18773         (print_iteration_domains): Same.
18774         (debug_iteration_domain): Same.
18775         (debug_iteration_domains): Same.
18776         (print_scattering_function): Same.
18777         (print_scattering_functions): Same.
18778         (debug_scattering_function): Same.
18779         (debug_scattering_functions): Same.
18780         * graphite-poly.h (debug_pdr): Update declaration.
18781         (print_pdr): Same.
18782         (print_pbb_domain): Same.
18783         (print_pbb): Same.
18784         (print_scop_context): Same.
18785         (print_scop): Same.
18786         (print_cloog): Same.
18787         (debug_pbb_domain): Same.
18788         (debug_pbb): Same.
18789         (print_pdrs): Same.
18790         (debug_pdrs): Same.
18791         (debug_scop_context): Same.
18792         (debug_scop): Same.
18793         (debug_cloog): Same.
18794         (print_scop_params): Same.
18795         (debug_scop_params): Same.
18796         (print_iteration_domain): Same.
18797         (print_iteration_domains): Same.
18798         (debug_iteration_domain): Same.
18799         (debug_iteration_domains): Same.
18800         (print_scattering_function): Same.
18801         (print_scattering_functions): Same.
18802         (debug_scattering_function): Same.
18803         (debug_scattering_functions): Same.
18804
18805 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18806
18807         * graphite-poly.c (print_scattering_function_1): New.
18808         (print_scattering_function): Call it.
18809         (print_scop_params): Remove spaces at the end of lines.
18810         (print_cloog): New.
18811         (debug_cloog): New.
18812         * graphite-poly.h (print_cloog): Declared.
18813         (debug_cloog): Declared.
18814
18815 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18816
18817         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
18818         in loop->header.
18819         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
18820         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
18821         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
18822         to switch between adding the IV bump in loop->latch or in loop->header.
18823
18824 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18825
18826         * graphite-poly.c (print_scattering_function): Pretty print following
18827         the scoplib format.
18828         (print_pdr): Same.
18829         (print_pbb_domain): Same.
18830         (dump_gbb_cases): Same.
18831         (dump_gbb_conditions): Same.
18832         (print_pdrs): Same.
18833         (print_pbb): Same.
18834         (print_scop_params): Same.
18835         (print_scop_context): Same.
18836         (print_scop): Same.
18837         (print_pbb_body): New.
18838         (lst_indent_to): New.
18839         (print_lst): Start new lines with a #.
18840         * graphite-poly.h (pbb_bb): New.
18841         (pbb_index): Use pbb_bb.
18842         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
18843         disjuncts.
18844         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
18845
18846 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
18847
18848         * dwarf2out.c (size_of_die): For -gdwarf-4 use
18849         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
18850         and 0 instead of 1 for dw_val_class_flag.
18851         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
18852         dw_val_class_range_list, dw_val_class_loc_list,
18853         dw_val_class_lineptr and dw_val_class_macptr, use
18854         DW_FORM_flag_present for dw_val_class_flag and
18855         DW_FORM_exprloc for dw_val_class_loc.
18856         (output_die): For -gdwarf-4 print dw_val_class_loc
18857         size as uleb128 instead of 1 or 2 bytes and don't print
18858         anything for dw_val_class_flag.
18859
18860         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
18861         instead of cselib_lookup following by tweaking locs->setting_insn.
18862
18863         PR bootstrap/43596
18864         * cselib.c (cselib_process_insn): Clear cselib_current_insn
18865         even before returning from label, setjmp call or volatile asm
18866         handling.
18867
18868 2010-03-31  Richard Guenther  <rguenther@suse.de>
18869
18870         PR middle-end/43600
18871         * cgraphunit.c (cgraph_output_in_order): Do not allocate
18872         temporary data on stack.
18873
18874 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18875
18876         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
18877         (PUSHSECTION_ASM_OP): Remove.
18878         (POPSECTION_ASM_OP): Remove.
18879         (PUSHSECTION_FORMAT): Remove.
18880         * config/sol2.h (PUSHSECTION_FORMAT): Define.
18881         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
18882         * config/sol2.c (solaris_output_init_fini): Use it.
18883
18884 2010-03-31  Jie Zhang  <jie@codesourcery.com>
18885
18886         PR 43574
18887         * opt-functions.awk (var_type_struct): Use signed char type
18888         for simple variables.
18889
18890 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18891
18892         * config/sol2.c: Include output.h.
18893         (solaris_assemble_visibility): New function.
18894         * config/t-sol2 (sol2.o): Add output.h dependency.
18895         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
18896         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
18897         Redefine.
18898
18899 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
18900
18901         PR target/43580
18902         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
18903         V2SImode or XFmode on PRE_DEC.
18904
18905         PR debug/43557
18906         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
18907         BLKmode.
18908
18909 2010-03-31  Jie Zhang  <jie@codesourcery.com>
18910
18911         PR 43562
18912         * reload.h (caller_save_initialized_p): Declare.
18913         * toplev.c (backend_init_target): Don't call
18914         init_caller_save but set caller_save_initialized_p to false.
18915         * caller-save.c (caller_save_initialized_p): Define.
18916         (init_caller_save): Check caller_save_initialized_p.
18917         * ira.c (ira): Call init_caller_save if flag_caller_saves.
18918
18919 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18920
18921         PR target/39048
18922         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
18923         and soft-fp/t-softfp to tmake_file.
18924         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
18925         (LIBGCC2_TF_CEXT): Define.
18926         (TF_SIZE): Define.
18927
18928 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
18929
18930         PR debug/42977
18931         * cselib.c (n_useless_values): Document handling of debug locs.
18932         (n_useless_debug_values, n_debug_values): New variables.
18933         (new_elt_loc_list): Don't add to debug values, keep count.
18934         (promote_debug_loc): New.
18935         (cselib_reset_table): Zero new variables.
18936         (entry_and_rtx_equal_p): Promote debug locs.
18937         (discard_useless_locs): Increment n_useless_debug_values for
18938         debug values.
18939         (remove_useless_values): Adjust n_useless_values and n_debug_values
18940         with n_useless_debug_values.
18941         (add_mem_for_addr): Promote debug locs.
18942         (cselib_lookup_mem): Likewise.
18943         (cselib_lookup_addr): Renamed to...
18944         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
18945         (cselib_log_lookup): ... this.  Turn into...
18946         (cselib_lookup_addr): ... new wrapper.
18947         (cselib_lookup_from_insn): New.
18948         (cselib_invalidate_regno): Increment n_useless_debug_values for
18949         debug values.
18950         (cselib_invalidate_mem): Likewise.
18951         (cselib_process_insn): Take n_deleted and n_debug_values into
18952         account to guard remove_useless_value call.
18953         (cselib_finish): Zero n_useless_debug_values.
18954         * cselib.h (cselib_lookup_from_insn): Declare.
18955         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
18956         (sched_analyze_2): Likewise.
18957
18958 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
18959
18960         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
18961         functions.
18962         (adjust_mems): Replace narrowing SUBREG of expression containing
18963         just PLUS, MINUS, MULT and ASHIFT of registers and constants
18964         with operations in the narrower mode.
18965
18966         PR debug/43593
18967         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
18968         regs_invalidated_by_call instead all call_used_reg_set registers.
18969
18970 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
18971
18972         PR middle-end/43430
18973         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
18974         pointer comparisons with types_compatible_p.
18975         * tree-vect-stmts.c (vectorizable_call): Same.
18976         (vectorizable_condition): Same.
18977
18978 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18979
18980         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
18981         stack check if the mask would be zero.
18982
18983 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
18984             Jack Howarth <howarth@bromo.med.uc.edu>
18985
18986         * tree-profile.c (tree_init_ic_make_global_vars): Make static
18987         variables TLS.
18988
18989 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
18990
18991         PR other/25232
18992         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
18993         and __unordtf2.
18994         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
18995         Include ___unordxf2 and ___unordtf2.
18996         * config/i386/libgcc-glibc.ver: Do not define inheritance from
18997         GCC_4.4.0 here.
18998
18999 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
19000
19001         * config/lm32/t-lm32: New file.
19002         * config.gcc: Use the above file when targetting lm32.
19003
19004 2010-03-28  Duncan Sands  <baldrick@free.fr>
19005
19006         * Makefile.in (PLUGIN_HEADERS): Add except.h.
19007
19008 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
19009
19010         PR middle-end/43431
19011         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
19012         Improve vectorization cost model diagnostic.
19013
19014 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
19015
19016         PR middle-end/43436
19017         * tree-vect-data-refs.c (vect_analyze_data_refs): When
19018         compute_data_dependences_for_loop returns false, early exit
19019         and output an extra diagnostic for the failed data reference
19020         analysis.
19021
19022 2010-03-29  Richard Guenther  <rguenther@suse.de>
19023
19024         PR tree-optimization/43560
19025         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
19026         (can_sm_ref_p): Treat stores to readonly locations as trapping.
19027
19028 2010-03-29  Jie Zhang  <jie@codesourcery.com>
19029
19030         PR 43564
19031         * toplev.c (process_options): Set optimization_default_node
19032         and optimization_current_node.
19033         * opts.c (decode_options): Don't set optimization_default_node
19034         and optimization_current_node.
19035
19036 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
19037
19038         * config/rtems.h: Abandon -qrtems_debug.
19039
19040 2010-03-28  Jan Hubicka  <jh@suse.cz>
19041
19042         PR tree-optimization/43505
19043         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
19044         map should not be copied.
19045
19046 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19047
19048         PR middle-end/41674
19049         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
19050         cdtors, set DECL_PRESERVE_P.
19051         * ipa.c (cgraph_externally_visible_p): Return true if declaration
19052         should be preseved.
19053
19054 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
19055
19056         PR tree-optimization/43528
19057         * stor-layout.c (place_field): Check that constant fits into
19058         unsigned HWI when skipping calculation of MS bitfield layout.
19059
19060 2010-03-27  Jan Hubicka  <jh@suse.cz>
19061
19062         PR middle-end/43391
19063         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
19064         notice_global_symbol work.
19065
19066 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
19067
19068         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
19069         instead of dwarf2out_decl.
19070         (struct var_loc_node): Remove section_label field.
19071         (dwarf2out_function_decl): New function.
19072         (dwarf2out_var_location): Don't set section_label field.
19073         (dwarf2out_begin_function): Don't empty decl_loc_table here.
19074
19075 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
19076
19077         PR tree-optimization/43544
19078         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
19079         First argument for builtin vectorized function hook is now a
19080         tree to be able to distinguish between machine specific and
19081         standard builtins.
19082         * targhooks.c (default_builtin_vectorized_function): Ditto.
19083         * targhooks.h (default_builtin_vectorized_function): Ditto.
19084         * target.h (struct gcc_target): Ditto.
19085         * tree-vect-stmts.c (vectorizable_function): Ditto.
19086         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
19087         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
19088         Ditto.
19089
19090 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
19091
19092         PR c/43381
19093         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
19094         nested binding iff it is a FUNCTION_DECL.
19095         (store_parm_decls_newstyle): Pass nested=true to bind for
19096         FUNCTION_DECLs amongst parameters.
19097
19098 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
19099
19100         * var-tracking.c (vt_expand_loc_callback): Don't run
19101         cselib_expand_value_rtx_cb in dummy mode if
19102         cselib_dummy_expand_value_rtx_cb returned false.
19103
19104         * var-tracking.c (emit_note_insn_var_location): For one part
19105         notes with offset 0, don't add EXPR_LIST around the location.
19106         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
19107         add_location_or_const_value_attribute): Adjust for that change.
19108
19109         PR debug/43540
19110         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
19111         into first operand and location into second.
19112         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
19113         dw_cfi_oprnd_loc for DW_CFA_expression.
19114         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
19115         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
19116         assume first argument is regnum and second argument is location.
19117
19118 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
19119
19120         PR target/42113
19121         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
19122         of scratch register to DImode.  Split to DImode comparison operator.
19123         Use SImode subreg of scratch register in the multiplication.
19124         (*cmp_sadd_sidi): Ditto.
19125         (*cmp_ssub_si): Ditto.
19126         (*cmp_ssub_sidi): Ditto.
19127
19128 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
19129
19130         PR target/43524
19131         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
19132         Remove invalid assert and wrong comment.
19133
19134 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
19135
19136         PR debug/43516
19137         * flags.h (final_insns_dump_p): New extern.
19138         * final.c (final_insns_dump_p): New variable.
19139         (rest_of_clean_state): Set it before -fdump-final-insns=
19140         dumping, clear afterwards.
19141         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
19142         MEM_ALIAS_SET on MEMs.
19143
19144 2010-03-26  David S. Miller  <davem@davemloft.net>
19145
19146         * configure.ac: Fix sparc GOTDATA_OP bug check.
19147         * configure: Rebuild.
19148
19149 2010-03-26  Alan Modra  <amodra@gmail.com>
19150
19151         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
19152
19153 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19154
19155         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
19156         TLS_SECTION_ASM_FLAG.
19157
19158 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
19159
19160         PR bootstrap/43511
19161         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
19162         Clear first_function_block_is_cold.
19163
19164         PR c/43385
19165         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
19166         argument if the argument is truth_value_p.
19167
19168 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
19169
19170         * config/rs6000/constraints.md: Update copyright year for my changes.
19171
19172         PR target/43484
19173         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
19174         used in reg+reg addressing, swap registers.
19175
19176 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
19177
19178         PR debug/43293
19179         * target.h (struct gcc_target): Add code_end hook.
19180         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
19181         if not yet defined.
19182         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
19183         * toplev.c (compile_file): Call targetm.asm_out.code_end
19184         hook before unwind info/debug info output.
19185         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
19186         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
19187         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
19188         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
19189         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
19190         * config/i386/i386.c (ix86_file_end): Renamed to...
19191         (ix86_code_end): ... this.  Make static.  Don't call
19192         file_end_indicate_exec_stack.  Emit unwind info using
19193         final_start_function/final_end_function.
19194         (darwin_x86_file_end): Remove.
19195         (TARGET_ASM_CODE_END): Define.
19196         * config/i386/i386.h (TARGET_ASM_FILE_END,
19197         NEED_INDICATE_EXEC_STACK): Don't define.
19198         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
19199         (TARGET_ASM_FILE_END): Define to darwin_file_end.
19200         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
19201         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
19202
19203         PR target/43498
19204         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
19205         at the beginning and final_end_function at the end.
19206         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
19207
19208 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19209
19210         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
19211         and Sun as TLS syntax.
19212         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
19213         * configure: Regenerate.
19214         * config.in: Regenerate.
19215         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
19216         (default_elf_asm_named_section): Use it.
19217         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
19218         (i386_output_dwarf_dtprel): Likewise.
19219         (output_addr_const_extra): Likewise.
19220         (output_pic_addr_const): Lowercase @GOTTPOFF.
19221         (output_addr_const_extra): Likewise.
19222         (output_pic_addr_const): Lowercase @GOTNTPOFF.
19223         (output_addr_const_extra): Likewise.
19224         (output_pic_addr_const): Lowercase @INDNTPOFF.
19225         (output_addr_const_extra): Likewise.
19226         (output_pic_addr_const): Lowercase @NTPOFF.
19227         (output_addr_const_extra): Likewise.
19228         (output_pic_addr_const): Lowercase @TPOFF.
19229         (output_addr_const_extra): Likewise.
19230         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
19231         (*tls_global_dynamic_64): Likewise.
19232         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
19233         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
19234
19235         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
19236         (ASM_OUTPUT_TLS_COMMON): Use it.
19237         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
19238
19239         PR target/38118
19240         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
19241         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
19242         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
19243         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
19244         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
19245         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
19246
19247 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19248
19249         * config/i386/i386.c (override_options): Don't accept
19250         -mtls-dialect=sun any longer.
19251         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
19252         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
19253         (*tls_local_dynamic_base_32_sun): Likewise.
19254         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
19255
19256 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
19257
19258         PR debug/43508
19259         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
19260         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
19261
19262         PR debug/43479
19263         * ira.c (adjust_cleared_regs): New function.
19264         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
19265
19266         PR debug/19192
19267         PR debug/43479
19268         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
19269         from gimple_block.
19270         * expr.c (expand_expr_real): Restore previous
19271         curr_insn_source_location and curr_insn_block after
19272         expand_expr_real_1 call.
19273         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
19274         instead of expand_expr_real_1.
19275
19276 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
19277
19278         PR rtl-optimization/43413
19279         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
19280         hard regs too.
19281
19282 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
19283
19284         PR target/43348
19285         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
19286         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
19287
19288 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
19289
19290         * config/i386/i386.c (ix86_target_string): Add -mfma.
19291         Fix a typo in comment.
19292
19293 2010-03-22  Mike Stump  <mikestump@comcast.net>
19294
19295         PR target/23071
19296         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
19297         Don't overly align based upon packed packed fields.
19298
19299 2010-03-22  Jason Merrill  <jason@redhat.com>
19300
19301         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
19302         Use () rather than [], and move before the element type.
19303
19304 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19305
19306         * doc/configfiles.texi (Configuration Files): Removed
19307         fixinc/Makefile*, intl/Makefile.*.
19308         * doc/makefile.texi: Fixed markup. Abstract from version
19309         control system used.
19310         (Makefile): Removed obsolete gcc/java/parse.y example.
19311         * doc/sourcebuild.texi: Likewise.
19312         (Top Level): Added config, gnattools, libdecnumber, libgcc,
19313         libgomp, libssp.  Removed fastjar.
19314         (Miscellaneous Docs): Clarify location.
19315         Added COPYING3, COPYING3.LIB.
19316         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
19317
19318 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19319
19320         PR target/38085
19321         * config/i386/i386.c (x86_function_profiler)
19322         [!NO_PROFILE_COUNTERS]: Fix typo.
19323         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
19324         instead of callq.
19325
19326 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
19327             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19328
19329         * doc/sourcebuild.texi (Test Directives): Split into six
19330         subsections, with most of the current text in new subsections
19331         Directives, Selectors, and Final Actions.
19332         (Directives): Split list of test directives into multiple
19333         subsubsections.
19334         (Selectors): Describe use and syntax of selectors.
19335         (Effective-Target Keywords): Describe all existing keywords.
19336         (Add Options): Describe features for dg-add-options.
19337         (Require Support): Describe variants of dg-require-support.
19338         (Final Actions): Describe commands to use in dg-final.
19339
19340 2010-03-22  Michael Matz  <matz@suse.de>
19341
19342         PR middle-end/43475
19343         * recog.c (validate_replace_rtx_group): Replace also in
19344         REG_EQUAL and REG_EQUIV notes.
19345
19346 2010-03-22  Richard Guenther  <rguenther@suse.de>
19347
19348         PR tree-optimization/43390
19349         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
19350         sure vector extracts are type correct.
19351
19352 2010-03-22  Richard Guenther  <rguenther@suse.de>
19353
19354         PR middle-end/40106
19355         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
19356         x * sqrt (x) even when optimizing for size if the target
19357         has native support for sqrt.
19358
19359 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
19360
19361         * varasm.c (make_decl_rtl_for_debug): Also clear
19362         flag_mudflap for the duration of make_decl_rtl call.
19363
19364         PR debug/43443
19365         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
19366         locs from preserved VALUEs.
19367
19368 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19369
19370         PR middle-end/42718
19371         * pa.md (movmemsi): Set align to one if zero.
19372         (movmemdi): Likewise.
19373
19374 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
19375
19376         PR target/42321
19377         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
19378         with their corresponding prologue pushes.
19379
19380 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
19381
19382         PR target/43156
19383         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
19384         at the begining or end.
19385         (spu_expand_epilogue): Likewise.
19386
19387 2010-03-20  Richard Guenther  <rguenther@suse.de>
19388
19389         PR rtl-optimization/43438
19390         * combine.c (make_extraction): Properly zero-/sign-extend an
19391         extraction of the low part of a CONST_INT.  Also handle
19392         CONST_DOUBLE.
19393
19394 2010-03-19  Mike Stump  <mikestump@comcast.net>
19395
19396         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
19397         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
19398         (override_options): Use SUBTARGET32_DEFAULT_CPU.
19399
19400 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
19401
19402         PR c/43211
19403         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
19404         an error.
19405
19406 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
19407
19408         PR rtl-optimization/42258
19409         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
19410         use that may match DEF.
19411
19412         PR target/40697
19413         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
19414         the cost of loading the constant rather than assuming
19415         COSTS_N_INSNS (1).
19416         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
19417         outer code is AND, do the same tests as the andsi3 expander and
19418         return COSTS_N_INSNS (1) if and is cheap.
19419
19420         * optabs.c (avoid_expensive_constant): Fix formatting.
19421
19422 2010-03-19  Michael Matz  <matz@suse.de>
19423
19424         PR c++/43116
19425         * attribs.c (decl_attributes): When rebuilding a function pointer
19426         type use the same qualifiers as the original pointer type.
19427
19428 2010-03-19  Martin Jambor  <mjambor@suse.cz>
19429
19430         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
19431         and is_gimple_ip_invariant_address.
19432
19433 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19434
19435         Revert
19436         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19437
19438         * config/arm/arm.c (arm_override_options): Turn off
19439         flag_dwarf2_cfi_asm for AAPCS variants.
19440
19441 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19442
19443         PR target/43399
19444         * config/arm/arm.c (emit_multi_reg_push): Update comments.
19445         Use PRE_MODIFY instead of PRE_DEC.
19446         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
19447         (vfp_emit_fstmd): Likewise.
19448
19449 2010-03-19  Michael Matz  <matz@suse.de>
19450
19451         PR target/43305
19452         * builtins.c (expand_builtin_interclass_mathfn,
19453         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
19454         if that fails.
19455
19456 2010-03-19  Richard Guenther  <rguenther@suse.de>
19457
19458         PR tree-optimization/43415
19459         * tree-ssa-pre.c (phi_translate): Split out worker to ...
19460         (phi_translate_1): ... this.
19461         (phi_translate): Move all caching here.  Cache all NARY
19462         and REFERENCE translations.
19463
19464 2010-03-19  David S. Miller  <davem@davemloft.net>
19465
19466         With help from Eric Botcazou.
19467         * config/sparc/sparc.c: Include dwarf2out.h.
19468         (emit_pic_helper): Delete.
19469         (pic_helper_symbol_name): Delete.
19470         (pic_helper_emitted_p): Delete.
19471         (pic_helper_needed): New.
19472         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
19473         (get_pc_thunk_name): New.
19474         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
19475         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
19476         Set pic_helper_needed to true.  Don't call emit_pic_helper.
19477         (sparc_expand_prologue): Update load_pic_register call.
19478         (sparc_output_mi_thunk): Likewise.
19479         (sparc_file_end): Emit a hidden comdat symbol for the PIC
19480         thunk if possible.  Output CFI information as needed.
19481
19482 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
19483             Jack Howarth <howarth@bromo.med.uc.edu>
19484
19485         PR target/36399
19486         * config/i386/i386.h: Fix ABI on darwin x86-32.
19487
19488 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
19489
19490         * tree.h: Declare make_decl_rtl_for_debug.
19491         * varasm.c (make_decl_rtl_for_debug): New.
19492         * dwarf2out.c (rtl_for_decl_location): Call it.
19493         * cfgexpand.c (expand_debug_expr): Call it.
19494
19495 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
19496
19497         PR bootstrap/43399
19498         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
19499         mem_mode.
19500
19501         PR bootstrap/43403
19502         * var-tracking.c (vt_init_cfa_base): Do nothing if
19503         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
19504
19505 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
19506
19507         PR debug/42873
19508         * var-tracking.c (canonicalize_vars_star): New.
19509         (dataflow_post_merge_adjust): Use it.
19510
19511 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
19512
19513         PR debug/43058
19514         * var-tracking.c (non_suitable_const): New function.
19515         (add_uses): For DEBUG_INSNs with constants, don't record any
19516         value, instead just the constant value itself.
19517         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
19518         is not VAR_LOC_UNKNOWN_P, set var to the constant.
19519         (emit_notes_in_bb): Likewise.
19520         (emit_note_insn_var_location): For onepart variables if
19521         cur_loc is a VOIDmode constant, use DECL_MODE.
19522
19523 2010-03-18  Martin Jambor  <mjambor@suse.cz>
19524
19525         PR middle-end/42450
19526         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
19527         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
19528         all non-clones.  Moved call redirection...
19529         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
19530         (cgraph_materialize_all_clones): Dispose of all
19531         combined_args_to_skip bitmaps.
19532         (verify_cgraph_node): Do not check for edges pointing to wrong
19533         nodes in inline clones.
19534         * tree-inline.c (copy_bb): Call
19535         cgraph_redirect_edge_call_stmt_to_callee.
19536         * ipa.c (cgraph_remove_unreachable_nodes): Call
19537         cgraph_node_remove_callees even when there are used clones.
19538
19539 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
19540
19541         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
19542
19543 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
19544
19545         PR target/43383
19546         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
19547         for 32bit.
19548
19549 2010-03-18  Michael Matz  <matz@suse.de>
19550
19551         PR middle-end/43419
19552         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
19553         into sqrt(x) if we need to preserve signed zeros.
19554
19555 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
19556             Eric Botcazou  <ebotcazou@adacore.com>
19557
19558         PR rtl-optimization/43360
19559         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
19560         note if we don't know its invariant status.
19561
19562 2010-03-18  Michael Matz  <matz@suse.de>
19563
19564         PR tree-optimization/43402
19565         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
19566         PHI chains of ssa names registered for update.
19567
19568 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
19569
19570         PR target/42427
19571         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
19572         non-offsettable and pre_modify update addressing.
19573         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
19574         and "2" alternatives "#".
19575         (*movdd_softfloat32): Make all alternatives "#";
19576         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
19577         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
19578         (*movdf_softfloat32): Make all alternatives "#";
19579         (movdi): Use the new DIFD mode iterator to create a common splitter
19580         for movdi, movdf and movdd patterns.
19581
19582 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
19583
19584         * common.opt (dumpdir): Remove redundant tab.
19585
19586 2010-03-17  Martin Jambor  <mjambor@suse.cz>
19587
19588         PR tree-optimization/43347
19589         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
19590         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
19591
19592 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
19593
19594         PR rtl-optimization/42216
19595         * regrename.c (create_new_chain): New function, broken out from...
19596         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
19597         appending a use to an empty chain.
19598         (build_def_use): Remove previous changes that convert OP_INOUT to
19599         OP_OUT operands; instead detect the case where an OP_INOUT operand
19600         uses a previously untracked register and create an empty chain for it.
19601
19602 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19603
19604         * doc/extend.texi (Function Attributes): Rewrite unfinished
19605         sentence in ms_abi documentation.
19606
19607 2010-03-17  Alan Modra  <amodra@gmail.com>
19608
19609         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
19610         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
19611         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
19612         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
19613
19614 2010-03-16  Richard Henderson  <rth@redhat.com>
19615
19616         PR middle-end/43365
19617         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
19618         (lower_try_finally): Save and restore eh_seq around the expansion
19619         of the try-finally.
19620
19621 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
19622
19623         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
19624         statements before splitting block.
19625
19626 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19627
19628         * doc/sourcebuild.texi (Testsuites): Fix markup.
19629         Use pathnames relative to gcc/testsuite.
19630         (Test Directives): Move description of how timeout is determined.
19631         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
19632         (C Tests): Correct gcc.misc-tests directory.
19633         Framework tests now live in gcc.test-framework.
19634
19635 2010-03-16  Richard Guenther  <rguenther@suse.de>
19636
19637         PR middle-end/43379
19638         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
19639         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
19640
19641 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
19642             Alexandre Oliva  <aoliva@redhat.com>
19643
19644         PR tree-optimization/42917
19645         * lambda-code.c (remove_iv): Skip debug statements.
19646         (lambda_loopnest_to_gcc_loopnest): Likewise.
19647         (not_interesting_stmt): Debug statements are not interesting.
19648
19649 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
19650
19651         PR debug/43051
19652         PR debug/43092
19653         * cselib.c (cselib_preserve_constants,
19654         cfa_base_preserved_val): New static variables.
19655         (preserve_only_constants): New function.
19656         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
19657         clear its REG_VALUES.  If cselib_preserve_constants, don't
19658         empty the whole hash table, but preserve there VALUEs with constants,
19659         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
19660         (cselib_preserve_cfa_base_value): New function.
19661         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
19662         (cselib_init): Change argument to int bitfield.  Set
19663         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
19664         is in it.
19665         (cselib_finish): Clear cselib_preserve_constants and
19666         cfa_base_preserved_val.
19667         * cselib.h (enum cselib_record_what): New enum.
19668         (cselib_init): Change argument to int.
19669         (cselib_preserve_cfa_base_value): New prototype.
19670         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
19671         * dse.c (dse_step1): Likewise.
19672         * cfgcleanup.c (thread_jump): Likewise.
19673         * sched-deps.c (sched_analyze): Likewise.
19674         * gcse.c (local_cprop_pass): Likewise.
19675         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
19676         If FN is non-NULL, call the callback always and whenever it returns
19677         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
19678         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
19679         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
19680         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
19681         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
19682         * var-tracking.c: Include recog.h.
19683         (bb_stack_adjust_offset): Remove.
19684         (vt_stack_adjustments): Don't call it, instead just gather the
19685         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
19686         (adjust_stack_reference): Remove.
19687         (compute_cfa_pointer): New function.
19688         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
19689         (struct adjust_mem_data): New type.
19690         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
19691         functions.
19692         (get_address_mode): New function.
19693         (replace_expr_with_values): Use it.
19694         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
19695         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
19696         (adjust_sets): Remove.
19697         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
19698         Use get_address_mode.
19699         (get_adjusted_src): Remove.
19700         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
19701         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
19702         (add_with_sets): Don't call adjust_sets.
19703         (fp_setter, vt_init_cfa_base): New functions.
19704         (vt_initialize): Change return type to bool.  Move most of pool etc.
19705         initialization to the beginning of the function from end.  Pass
19706         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
19707         If !frame_pointer_needed, call vt_stack_adjustment before mos
19708         vector is filled, call vt_init_cfa_base if argp/framep has been
19709         eliminated to sp.  If frame_pointer_needed and argp/framep has
19710         been eliminated to hard frame pointer, set
19711         hard_frame_pointer_adjustment and call vt_init_cfa_base after
19712         encountering fp setter in the prologue.  For MO_ADJUST, call
19713         log_op_type before pusing the op into mos vector, not afterwards.
19714         Call adjust_insn before cselib_process_insn/add_with_sets,
19715         call cancel_changes (0) afterwards.
19716         (variable_tracking_main_1): Adjust for vt_initialize calling
19717         vt_stack_adjustments and returning whether it succeeded or not.
19718
19719 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
19720
19721         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
19722         debug statements.
19723
19724 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
19725
19726         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
19727         has been set.
19728         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
19729         drap_reg has not been set.
19730
19731 2010-03-15  Michael Matz  <matz@suse.de>
19732
19733         PR middle-end/43300
19734         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
19735         use it to expand block copies.
19736         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
19737         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
19738         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
19739
19740 2010-03-15  Richard Guenther  <rguenther@suse.de>
19741
19742         PR tree-optimization/43367
19743         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
19744         elimination check.
19745
19746 2010-03-15  Richard Guenther  <rguenther@suse.de>
19747
19748         PR tree-optimization/43317
19749         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
19750
19751 2010-03-15  Martin Jambor  <mjambor@suse.cz>
19752
19753         PR tree-optimization/43141
19754         * tree-sra.c (create_abstract_origin): New function.
19755         (modify_function): Call create_abstract_origin.
19756
19757 2010-03-15  Chris Demetriou  <cgd@google.com>
19758
19759         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
19760         wasn't copied.
19761
19762 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19763
19764         PR middle-end/43354
19765         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
19766         call insert_out_of_ssa_copy for default definitions.
19767
19768 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19769
19770         * graphite-clast-to-gimple.c (my_long_long): Defined.
19771         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
19772         * graphite-sese-to-poly.c (my_long_long): Defined.
19773         (scop_ivs_can_be_represented): Use it.
19774
19775 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19776
19777         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
19778         graphite-max-bbs-per-function, and loop-block-tile-size.
19779         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
19780         with "maximum".
19781         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
19782
19783 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19784
19785         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
19786         forward declaration.
19787         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
19788         (add_upper_bounds_from_estimated_nit): New.
19789         (build_loop_iteration_domains): Use it.
19790
19791 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19792
19793         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
19794
19795 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19796
19797         PR middle-end/43306
19798         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
19799         should be an INTEGER_CST.  Also handle CASE_CONVERT.
19800
19801 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19802
19803         * graphite.c (graphite_initialize): To bound the number of bbs per
19804         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
19805         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
19806         * doc/invoke.texi: Document it.
19807
19808 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19809
19810         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
19811         * graphite-sese-to-poly.h (build_poly_scop): Same.
19812
19813 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19814
19815         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
19816         the number of parameters in the scop.  Use as an upper bound
19817         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
19818         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
19819         * doc/invoke.texi: Document it.
19820
19821 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
19822
19823         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
19824         * doc/c-tree.texi: Remove.
19825         * doc/generic.texi: Merge c-tree.texi here.
19826         * doc/gccint.texi (Trees): Remove menu entry.
19827         (c-tree.texi): Remove @include.
19828         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
19829         * doc/languages.texi (Reading RTL): Ditto.
19830
19831 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
19832
19833         PR target/42869
19834         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
19835
19836 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
19837
19838         PR middle-end/42431
19839         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
19840         code added to work around reload clobbering CONST insns.
19841
19842 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
19843
19844         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
19845         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
19846         (cselib_preserve_only_values): Remove retain argument, don't
19847         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
19848         * cselib.h (cselib_preserve_only_values): Remove retain argument.
19849         * var-tracking.c (micro_operation): Move insn field before union.
19850         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
19851         (struct variable_tracking_info_def): Remove n_mos field, change
19852         mos into a vector of micro_operations.
19853         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
19854         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
19855         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
19856         changing into a vector.
19857         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
19858         come before all other uops generated by add_stores.
19859         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
19860         argument removal.
19861         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
19862         a vector.  Run just one pass over the bbs instead of separate counting
19863         and computation phase.
19864         (vt_finalize): Free VTI (bb)->mos vector instead of array.
19865
19866         PR debug/43329
19867         * tree-inline.c (remap_decls): Put old_var rather than origin_var
19868         into *nonlocalized_list vector.
19869         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
19870         even if origin is non-NULL.
19871         (gen_variable_die): Likewise.
19872         (process_scope_var): Don't change origin.
19873         (gen_decl_die): Likewise.
19874         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
19875         before adding new edges instead of after it, fix moving over
19876         debug stmts.
19877
19878 2010-03-11  David S. Miller  <davem@davemloft.net>
19879
19880         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
19881         of four.
19882         * configure: Rebuild.
19883
19884 2010-03-11  Martin Jambor  <mjambor@suse.cz>
19885
19886         PR tree-optimization/43257
19887         * tree.c (assign_assembler_name_if_neeeded): New function.
19888         (free_lang_data_in_cgraph): Assembler name assignment moved to the
19889         above new function.
19890         * tree.h (assign_assembler_name_if_neeeded): Declare.
19891         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
19892         the function if needed.
19893
19894 2010-03-11  Chris Demetriou  <cgd@google.com>
19895
19896         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
19897         include/stdint-gcc.h, and include/stdint.h world-readable.
19898
19899 2010-03-11  Richard Guenther  <rguenther@suse.de>
19900
19901         PR tree-optimization/43255
19902         * tree-vrp.c (process_assert_insertions_for): Do not insert
19903         asserts for trivial conditions.
19904
19905 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19906
19907         PR tree-optimization/43280
19908         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
19909         generation.  Move calculation of size out of the if branch.
19910         (find_bswap): Modify compare number generation.
19911
19912 2010-03-11  Richard Guenther  <rguenther@suse.de>
19913
19914         PR lto/43200
19915         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
19916         (input_gimple_stmt): Fixup handled component types during
19917         operand read.  Also fix up decls in ADDR_EXPRs.
19918
19919 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
19920
19921         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
19922         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
19923
19924 2010-03-10  Jan Hubicka  <jh@suse.cz>
19925
19926         PR c/43288
19927         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
19928         * varasm.c (get_variable_section): Don't do that here...
19929         (make_decl_rtl): ... and here.
19930         (do_assemble_alias): Produce decl RTL.
19931         (assemble_alias): Likewise.
19932
19933 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
19934
19935         PR debug/43290
19936         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
19937         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
19938         of fde->vdrap_reg.
19939         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
19940         (based_loc_descr): Only express drap or vdrap regno based expressions
19941         using DW_OP_fbreg when not optimizing.
19942         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
19943         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
19944         REG_CFA_SET_VDRAP note.
19945
19946 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
19947
19948         PR tree-optimization/43236
19949         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
19950         error in calculation of base address in reverse iteration case.
19951         (generate_builtin): Take number of latch executions if the statement
19952         is in the latch.
19953
19954 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
19955
19956         PR middle-end/42859
19957         * tree-eh.c: Include pointer-set.h.
19958         (lower_eh_dispatch): Filter out duplicate case labels and
19959         remove the unneeded edge when the label is unused.  Return
19960         true when some edges are removed.
19961         (execute_lower_eh_dispatch): When any lowering resulted in
19962         removing an edge, also delete unreachable blocks.
19963
19964 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
19965
19966         PR bootstrap/43287
19967         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
19968         UNSPEC_MACHOPIC_OFFSET.
19969
19970 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
19971
19972         PR target/43294
19973         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
19974         (m68k_delegitimize_address): New function.
19975
19976 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
19977
19978         PR debug/43299
19979         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
19980
19981         PR debug/43299
19982         * var-tracking.c (adjust_sets): New function.
19983         (count_with_sets, add_with_sets): Use it.
19984         (get_adjusted_src): New inline function.
19985         (add_stores): Use it.
19986
19987         PR debug/43304
19988         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
19989         call cselib_dummy_expand_value_rtx_cb instead of
19990         cselib_expand_value_rtx_cb.
19991
19992         PR debug/43293
19993         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
19994         * config/i386/i386.c: Include debug.h and dwarf2out.h.
19995         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
19996         and .cfi_endproc around the pic thunks.
19997         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
19998         all queued unwind info register saves are saved before the call.
19999         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
20000         considered as sp-=4 for unwind info and the pop as sp+=4 which
20001         also clobbers dest, but doesn't actually restore it.
20002
20003         PR debug/43290
20004         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
20005         RTX_FRAME_RELATED_P.
20006
20007 2010-03-09  Jie Zhang  <jie@codesourcery.com>
20008
20009         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
20010         whitespaces in output template.
20011
20012 2010-03-09  Jie Zhang  <jie@codesourcery.com>
20013
20014         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
20015         out array boundary.
20016
20017 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
20018
20019         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
20020         builtins.exp in a separate job.
20021
20022 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20023
20024         * graphite-sese-to-poly.c (add_param_constraints): Use
20025         lower_bound_in_type and upper_bound_in_type.
20026
20027 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20028
20029         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
20030         instead of unsigned_type_node.
20031
20032 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20033             Reza Yazdani  <reza.yazdani@amd.com>
20034
20035         PR middle-end/43065
20036         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
20037         on pointer type parameters.
20038
20039 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
20040
20041         PR middle-end/42644
20042         PR middle-end/42130
20043         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
20044         handle conversions from pointer to integers.
20045         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
20046         induction variable, to be able to work with code generated by CLooG.
20047         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
20048         (build_poly_scop): Bail out if we cannot codegen a loop.
20049
20050 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
20051
20052         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
20053         code generation with gloog_error.
20054
20055 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20056
20057         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
20058         Call fold_convert on all the returned values.
20059         (expand_scalar_variables_expr): Pass to
20060         expand_scalar_variables_ssa_name the type of the resulting expression.
20061
20062 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20063
20064         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
20065         ppl_min_for_le_pointset.
20066         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
20067         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
20068
20069 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20070
20071         * graphite-dependences.c (map_into_dep_poly): Removed.
20072         (dependence_polyhedron_1): Use combine_context_id_scat.
20073
20074 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20075
20076         * graphite-poly.h (struct poly_scattering): Add layout documentation.
20077         (struct poly_bb): Same.
20078         (combine_context_id_scat): New.
20079
20080 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20081
20082         PR middle-end/42326
20083         * sese.c (name_defined_in_loop_p): Return false for default
20084         definitions.
20085
20086 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20087
20088         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
20089         and clean up the logic.
20090
20091 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
20092
20093         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
20094         early return.
20095
20096 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
20097
20098         * var-tracking.c (remove_cselib_value_chains): Define only for
20099         ENABLE_CHECKING.
20100         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
20101         delete_slot_part, emit_notes_for_differences_1): Don't call
20102         remove_cselib_value_chains here.
20103         (set_slot_part, emit_notes_for_differences_2): Don't call
20104         add_cselib_value_chains here.
20105         (preserved_values): New vector.
20106         (preserve_value): New function.
20107         (add_uses, add_stores, vt_add_function_parameters): Use it
20108         instead of cselib_preserve_value.
20109         (changed_values_stack): New vector.
20110         (check_changed_vars_0): New function.
20111         (check_changed_vars_1, check_changed_vars_2): Use it.
20112         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
20113         changed_values_stack VALUEs.
20114         (vt_emit_notes): For all preserved_values call
20115         add_cselib_value_chains.  If ENABLE_CHECKING call
20116         remove_cselib_value_chains before verifying value_chains is empty.
20117         Initialize and free changed_values_stack.
20118         (vt_initialize): Initialize preserved_values.
20119         (vt_finalize): Free preserved_values.
20120
20121 2010-03-08  Richard Guenther  <rguenther@suse.de>
20122
20123         PR tree-optimization/43269
20124         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
20125         region detection.
20126
20127 2010-03-08  Martin Jambor  <mjambor@suse.cz>
20128
20129         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
20130         (ipa_is_param_called): Removed.
20131         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
20132         (ipa_print_node_params): Do not print the called flag.
20133         (ipa_write_node_info): Do not stream the called flag.
20134         (ipa_read_node_info): Likewise.
20135
20136 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
20137
20138         PR debug/43176
20139         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
20140         * cselib.c (struct expand_value_data): Add dummy field.
20141         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
20142         dummy to false.
20143         (cselib_dummy_expand_value_rtx_cb): New function.
20144         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
20145         any rtl.
20146         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
20147         * var-tracking.c: Include pointer-set.h.
20148         (variable): Change n_var_parts to char from int.  Add
20149         cur_loc_changed and in_changed_variables fields.
20150         (variable_canonicalize): Remove.
20151         (shared_var_p): New inline function.
20152         (unshare_variable): Maintain cur_loc_changed and
20153         in_changed_variables fields.  If var was in changed_variables,
20154         replace it there with new_var.  Just copy cur_loc instead of
20155         resetting it to something else.
20156         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
20157         (dataflow_set_union): Don't call variable_canonicalize.
20158         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
20159         of their DEBUG_EXPR_TREE_DECLs.
20160         (canonicalize_loc_order_check): Verify that cur_loc is NULL
20161         and in_changed_variables and cur_loc_changed is false.
20162         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
20163         and cur_loc_changed.  Don't update cur_loc here.
20164         (variable_merge_over_src): Don't call variable_canonicalize.
20165         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
20166         removing loc that is equal to cur_loc, clear cur_loc,
20167         set cur_loc_changed and ensure variable_was_changed is called.
20168         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
20169         compare pointers in cur_loc check, if it is equal to loc,
20170         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
20171         (variable_different_p): Remove compare_current_location argument,
20172         don't compare cur_loc.
20173         (dataflow_set_different_1): Adjust variable_different_p caller.
20174         (variable_was_changed): If dv had some var in changed_variables
20175         already, reset in_changed_variables flag for it and propagate
20176         cur_loc_changed over to the new variable.  On empty var
20177         always set cur_loc_changed.  Set in_changed_variables on whatever
20178         var is added to changed_variables.
20179         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
20180         Use shared_var_p.  When removing loc that is equal to cur_loc,
20181         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
20182         end, don't set it to something else, just call variable_was_changed.
20183         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
20184         loc being removed, clear cur_loc and set cur_loc_changed.
20185         Set cur_loc_changed if all locations have been removed.
20186         (struct expand_loc_callback_data): New type.
20187         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
20188         allocated.  Always create SUBREGs if simplify_subreg failed.
20189         Prefer to use cur_loc, when that fails and still in
20190         changed_variables (and seen first time) recompute it.  Set
20191         cur_loc_changed of variables which had to change cur_loc and
20192         compute elcd->cur_loc_changed if any of the subexpressions used
20193         had to change cur_loc.
20194         (vt_expand_loc): Adjust to pass arguments in
20195         expand_loc_callback_data structure.
20196         (vt_expand_loc_dummy): New function.
20197         (emitted_notes): New variable.
20198         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
20199         that weren't used for any other decl in current
20200         emit_notes_for_changes call call vt_expand_loc_dummy to update
20201         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
20202         first loc_chain location if NULL before.  Always use just
20203         cur_loc instead of first loc_chain location.  When cur_loc_changed
20204         is false, when not --enable-checking=rtl just don't emit any note.
20205         When rtl checking, compute the note and assert it is the same
20206         as previous note.  Clear cur_loc_changed and in_changed_variables
20207         at the end before removing from changed_variables.
20208         (check_changed_vars_3): New function.
20209         (emit_notes_for_changes): Traverse changed_vars to call
20210         check_changed_vars_3 on each changed var.
20211         (emit_notes_for_differences_1): Clear cur_loc_changed and
20212         in_changed_variables.  Recompute cur_loc of new_var.
20213         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
20214         (vt_emit_notes): Initialize and destroy emitted_notes.
20215
20216 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
20217
20218         PR rtl-optimization/42220
20219         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
20220         Use verify_reg_tracked to determine if we should use OP_OUT rather
20221         than OP_INOUT.
20222         (build_def_use): If we see an in-out operand for a register that we
20223         know nothing about, treat is an output if possible, fail the block if
20224         not.
20225
20226 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
20227
20228         PR debug/42897
20229         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
20230         permanently.
20231
20232 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
20233
20234         PR debug/42897
20235         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
20236         uses of relevant DEFs that are dead outside the loop too.
20237
20238 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
20239
20240         * var-tracking.c (dataflow_set_merge): Swap src and src2.
20241         Reverted:
20242         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
20243         PR debug/41371
20244         * var-tracking.c (values_to_unmark): New variable.
20245         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
20246         values_to_unmark vector.  Moved body to...
20247         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
20248         instead queue it into values_to_unmark vector.
20249         (vt_find_locations): Free values_to_unmark vector.
20250
20251 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
20252
20253         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
20254         (site.exp): Export them when plugins are enabled.
20255
20256 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
20257
20258         PR middle-end/42326
20259         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
20260         that contain scevs.
20261         (chrec_fold_multiply): Same.
20262
20263 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
20264
20265         PR c/43248
20266         * c-decl.c (build_compound_literal): Return early if init is
20267         an error_mark_node.
20268
20269 2010-03-04  Martin Jambor  <mjambor@suse.cz>
20270
20271         PR tree-optimization/43164
20272         PR tree-optimization/43191
20273         * tree-sra.c (type_consists_of_records_p): Reject records with
20274         zero-size bit-fields at the end.
20275
20276 2010-03-04  Mike Stump  <mikestump@comcast.net>
20277
20278         * Makefile.in (TAGS): Remove *.y.
20279
20280 2010-03-04  Richard Guenther  <rguenther@suse.de>
20281
20282         PR tree-optimization/40761
20283         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
20284         in reverse order.
20285         (my_rev_post_order_compute): New function.
20286         (init_pre): Call it.
20287
20288 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
20289
20290         PR middle-end/43209
20291         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
20292         decrease the cost of an IV candidate when the cost is infinite.
20293
20294 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20295
20296         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
20297         Use '3DNow!' for the extension of that name, ensure normal space
20298         after the string.
20299         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
20300
20301 2010-03-03  Jeff Law  <law@redhat.com>
20302
20303         * PR middle-end/32693
20304         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
20305         than gen_rtx_SUBREG.
20306         (extract_bit_field_1): Likewise.
20307
20308 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
20309
20310         * doc/sourcebuild.texi (Test directives): Document that arguments
20311         include-opts and exclude-opts are now optional for dg-skip-if,
20312         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
20313
20314 2010-03-03  Jason Merrill  <jason@redhat.com>
20315
20316         PR c++/12909
20317         * cgraph.h (varpool_node): Add extra_name field.
20318         * varpool.c (varpool_extra_name_alias): New.
20319         (varpool_assemble_decl): Emit extra name aliases.
20320         (varpool_mark_needed_node): Look past an extra name alias.
20321         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
20322         * lto-streamer-in.c (lto_input_tree): Read it.
20323         * lto-streamer-out.c (output_unreferenced_globals): Write it.
20324
20325 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
20326
20327         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
20328         (sparc*-*-solaris2*): ...this.
20329
20330 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
20331
20332         PR debug/43229
20333         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
20334         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
20335         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
20336         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
20337
20338         PR debug/43237
20339         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
20340         fallthrough to default handling, just with want_address 0 instead of 2.
20341         For single element lists, add_AT_loc directly, otherwise create an
20342         artificial variable DIE and stick location list to it.
20343
20344         PR debug/43177
20345         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
20346         (VAL_EXPR_HAS_REVERSE): Define.
20347         (reverse_op): New function.
20348         (add_stores): For reversible operations add an extra MO_VAL_USE.
20349
20350 2010-03-02  Jason Merrill  <jason@redhat.com>
20351
20352         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
20353
20354 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
20355
20356         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
20357         (sparc64-*-linux*): Likewise.
20358         (sparc64-*-solaris2*): Include assembler files before linker ones.
20359         (sparc-*-solaris2*): Simplify and reorder to match previous case.
20360         * config/sparc/gas.h: Delete.
20361         * config/sparc/sol2-64.h: Add copyright notice.
20362         * config/sparc/sol2-gas-bi.h: Likewise.
20363         * config/sparc/sol2-gld.h: Likewise.
20364         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
20365         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
20366         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
20367         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
20368         (sparc_elf_asm_named_section): Rename into...
20369         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
20370
20371 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
20372
20373         * config/alpha/alpha.c (override_options): Fix -mtune error message.
20374
20375 2010-03-02  Jeff Law  <law@redhat.com>
20376
20377         PR middle-end/42431
20378         * reload1.c (rtx_p, substitute_stack): Declare.
20379         (substitute): Record addresses of changed rtxs.
20380         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
20381         Restore the original rtx when complete.
20382         (reload): Free subsitute_stack when complete.
20383
20384 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
20385
20386         * doc/gccint.texi (menu): Add Testsuites as a chapter.
20387         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
20388         new chapter.
20389         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
20390         LTO Testing, gcov Testing, profopt Testing, compat Testing,
20391         Torture Tests): Change from subsection to section.
20392
20393 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
20394             Steven Bosscher  <steven@gcc.gnu.org>
20395
20396         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
20397         instead of bb.
20398
20399 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
20400
20401         PR middle-end/42640
20402         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
20403         the assignment from the new induction variable to the assignment
20404         of the value from the original loop PHI function.
20405
20406 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
20407             Daniel Jacobowitz  <dan@codesourcery.com>
20408
20409         * doc/sourcebuild.texi (Test directives): Clarify options to
20410         dg-skip-if.
20411
20412 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20413
20414         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
20415         Disable cfi directives unless GCC and gas agree on using read-only
20416         .eh_frame sections for 64-bit.
20417         * configure: Regenerate.
20418
20419 2010-03-01  Richard Guenther  <rguenther@suse.de>
20420
20421         PR tree-optimization/43220
20422         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
20423         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
20424
20425 2010-03-01  Richard Guenther  <rguenther@suse.de>
20426             Martin Jambor  <mjambor@suse.cz>
20427
20428         PR middle-end/41250
20429         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
20430         gimplified parameters.
20431
20432 2010-03-01  Christian Bruel  <christian.bruel@st.com>
20433
20434         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
20435
20436 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
20437
20438         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
20439
20440 2010-03-01  Richard Guenther  <rguenther@suse.de>
20441
20442         PR middle-end/43213
20443         * expr.c (expand_assignment): Use the alias-oracle to tell
20444         if the rhs aliases the result decl.
20445
20446 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20447
20448         PR pch/14940
20449         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
20450         to sol_gt_pch_get_address.
20451         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
20452         64-bit, SPARC and x86.
20453         (sol_gt_pch_get_address): New function.
20454
20455 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
20456
20457         * toplev.h (inform_n, error_n): Declare.
20458         * diagnostic.c (inform_n, error_n): New function.
20459
20460 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
20461
20462         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
20463         has no rtl yet when processing local_decls, queue it and recheck
20464         if deferred stack allocation hasn't assigned it rtl.
20465
20466 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
20467
20468         * config/sh/sh.c (unspec_bbr_uid): New.
20469         (gen_block_redirect): Use it instead of INSN_UID.
20470         (gen_far_branch): Likewise.
20471
20472 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
20473
20474         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
20475         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
20476
20477 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20478
20479         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
20480         (Warning Options): -Wno-conversion-null is valid for
20481         Objective-C++ as well.
20482         * doc/tm.texi (Named Address Spaces): Likewise.
20483         * doc/plugins.texi (Plugins): Replace TABs with spaces.
20484         * doc/tree-ssa.texi (Tree SSA): Likewise.
20485
20486 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
20487
20488         PR bootstrap/43202
20489         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
20490         by default.  Don't set the default arch for
20491         i[34567]86-*-darwin*|x86_64-*-darwin*.
20492
20493 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
20494
20495         PR bootstrap/43202
20496         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
20497         default.  Set the default 32bit/64bit archs with $with_arch
20498         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
20499
20500 2010-02-27  Richard Guenther  <rguenther@suse.de>
20501
20502         PR tree-optimization/43186
20503         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
20504         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
20505         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
20506         unroller iterations.
20507
20508 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
20509
20510         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
20511         required and i[34567]86-*-* targets don't support 64bit ISA.
20512
20513 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
20514
20515         PR ada/43096
20516         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
20517         the same alias set.
20518
20519 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
20520
20521         * config.gcc: Set the default arch at least to Prescott for
20522         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
20523         if SSE math is enabled.
20524
20525 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20526
20527         * diagnostic.c (diagnostic_initialize): Update.
20528         (diagnostic_report_diagnostic): Test inhibit_notes_p for
20529         informative notes.
20530         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
20531         (diagnostic_inhibit_notes): New.
20532         * toplev.c (process_options): inhibit notes with -fcompare-debug.
20533
20534 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20535
20536         PR c/20631
20537         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
20538         * doc/standards.texi: Likewise.
20539         * doc/extend.texi: Likewise.
20540         * doc/trouble.texi: Likewise.
20541         * doc/cppopts.texi: Likewise.
20542         * doc/install.texi: Likewise.
20543         * c.opt (std=c90,std=gnu90): New options.
20544         * c-opts.c (c_common_handle_option): Handle them.
20545
20546 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20547
20548         PR c/24577
20549         * c-decl.c (undeclared_variable): Use an informative note.
20550
20551 2010-02-26  Richard Guenther  <rguenther@suse.de>
20552
20553         PR tree-optimization/43186
20554         * gimple.h (gimple_fold): Remove.
20555         * gimple.c (gimple_fold): Remove.  Inline into single user ...
20556         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
20557         Try harder for conditions.
20558
20559 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
20560
20561         PR debug/43190
20562         * function.c (used_types_insert): Don't skip through named pointer
20563         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
20564         and it is different from the main variant's type.
20565
20566 2010-02-26  Nick Clifton  <nickc@redhat.com>
20567
20568         * config/rx/rx.md (sminsi3): Remove bogus alternative.
20569
20570 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
20571
20572         * config.gcc: Support --with-fpmath=sse for x86.
20573
20574         * config/i386/ssemath.h: New.
20575
20576         * doc/install.texi (--with-fpmath=sse): Documented.
20577
20578 2010-02-26  Richard Guenther  <rguenther@suse.de>
20579
20580         PR tree-optimization/43188
20581         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
20582         vector types of over-aligned element type.
20583
20584 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
20585
20586         PR target/43175
20587         * config/i386/i386.c (expand_vec_perm_blend): Use correct
20588         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
20589
20590 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
20591
20592         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
20593
20594 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
20595
20596         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
20597         * var-tracking.c: Include diagnostic.h.
20598         (debug_dv): New function.
20599         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
20600
20601         PR debug/43160
20602         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
20603         (add_value_chain, add_value_chains, remove_value_chain,
20604         remove_value_chains): Handle DEBUG_EXPRs.
20605         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
20606
20607         PR debug/43161
20608         * regcprop.c (struct queued_debug_insn_change): New type.
20609         (struct value_data_entry): Add debug_insn_changes field.
20610         (struct value_data): Add n_debug_insn_changes field.
20611         (debug_insn_changes_pool): New variable.
20612         (free_debug_insn_changes, apply_debug_insn_changes,
20613         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
20614         (kill_value_one_regno): Call free_debug_insn_changes if needed.
20615         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
20616         fields.
20617         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
20618         changes for them.
20619         (copyprop_hardreg_forward_1): Don't call apply_change_group for
20620         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
20621         changes, call cprop_find_used_regs via note_stores.
20622         (copyprop_hardreg_forward): When copying vd from predecessor
20623         which has any queued DEBUG_INSN changes, make sure the pointers are
20624         cleared.  At the end call df_analyze and then if there are any
20625         DEBUG_INSN changes queued at the end of some basic block for still
20626         live registers, apply them.
20627         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
20628
20629 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
20630
20631         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
20632         (arm*-*-*): Ditto.
20633
20634 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
20635
20636         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
20637         targets.  Set the default with_cpu/with_arch from arch/cpu.
20638         Allow x86-64 and native for with_cpu/with_arch.
20639
20640 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
20641
20642         * ebitmap.c: Change calls to verify_popcount with calls to
20643         sbitmap_verify_popcount.
20644         (ebitmap_clear_bit): Fixed map->cacheindex test and
20645         map>cache update when bit clearing results in an empty
20646         element.
20647
20648 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
20649
20650         PR target/43154
20651         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
20652         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
20653         and support both V2DF and V2DI modes.
20654         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
20655         support both V2DF and V2DI modes.
20656         (general): Delete trailing whitespace from a few patterns.
20657
20658         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20659         V2DF/V2DI interleave high/low builtins.
20660
20661         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
20662         new VSX builtins.
20663
20664         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
20665         interleave high/low functions.
20666
20667 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
20668
20669         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
20670         #pragma extern_prefix.
20671
20672 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
20673
20674         PR debug/43166
20675         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
20676         BLKmode, assert op0 is a MEM and just adjust its mode.
20677
20678         PR debug/43165
20679         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
20680         if bitpos isn't multiple of mode's bitsize.
20681
20682 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20683
20684         * c.opt (-ftemplate-depth=): New.
20685         (-ftemplate-depth-): Deprecate.
20686         * optc-gen.awk: Handle -ftemplate-depth=.
20687         * opth-gen.awk: Likewise.
20688         * c-opts.c (c_common_handle_option): Likewise.
20689         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
20690
20691 2010-02-24  Jason Merrill  <jason@redhat.com>
20692
20693         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
20694
20695 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20696
20697         * cfg.c (alloc_aux_for_block): Remove inline.
20698         (alloc_aux_for_edge): Likewise.
20699
20700 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20701
20702         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
20703
20704 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20705
20706         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
20707         * config/i386/sol2-gas.h: New file.
20708         * config.gcc (i[34567]86-*-solaris2*): Use it.
20709
20710 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20711
20712         PR c/43128
20713         * c-typeck.c (ep_convert_and_check): New.
20714         (build_conditional_expr): Use it.
20715         (build_binary_op): Likewise.
20716
20717 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
20718
20719         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
20720
20721         PR debug/43150
20722         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
20723         bounds even for -O+.
20724         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
20725         expr needs to have DECL_NAME set.
20726
20727 2010-02-24  Nick Clifton  <nickc@redhat.com>
20728
20729         * config/mep/mep.c: Include gimple.h.
20730         (mep_function_uses_sp): Delete unused function.
20731         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
20732         parameters.  Use unsigned integers to count args.  Return a
20733         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
20734
20735 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
20736
20737         PR target/43107
20738         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
20739         greater or equal to nelt instead of 2 * nelt.
20740         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
20741         with nelt - 1.
20742
20743 2010-02-23  Jason Merrill  <jason@redhat.com>
20744
20745         PR debug/42800
20746         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
20747         in cfun->local_decls even if they have register types.
20748
20749         PR c++/42837
20750         * stor-layout.c (place_field): Don't warn about unnecessary
20751         DECL_PACKED if the type is packed.
20752
20753 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
20754
20755         PR target/43139
20756         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
20757         GOTOFF relocs, even when the base reg isn't pic pointer.
20758
20759 2010-02-23  Michael Matz  <matz@suse.de>
20760
20761         PR debug/43077
20762         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
20763         (expand_gimple_basic_block): Generate and use debug temps if there
20764         are debug uses left after the last real use of TERed ssa names.
20765         Unlink debug immediate uses when they are expanded.
20766
20767 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20768
20769         PR 43123
20770         * config/i386/i386.c (override_options): Reorganise to provide
20771         better error messages.
20772
20773 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
20774
20775         PR middle-end/43083
20776         * graphite-scop-detection.c (create_single_exit_edge): Move
20777         the call to find_single_exit_edge to....
20778         (create_sese_edges): ...here.  Don't handle multiple edges
20779         exiting the function.
20780         (build_graphite_scops): Don't handle multiple edges
20781         exiting the function.
20782
20783 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
20784
20785         PR middle-end/43097
20786         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
20787         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
20788
20789 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
20790
20791         PR middle-end/43026
20792         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
20793
20794 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20795
20796         PR c++/43126
20797         * c-typeck.c (convert_arguments): Print declaration location.
20798         * c-common.c (validate_nargs): Rename as
20799         builtin_function_validate_nargs.
20800         (check_builtin_function_arguments): Update.
20801
20802 2010-02-22  Richard Guenther  <rguenther@suse.de>
20803
20804         PR lto/43045
20805         * tree-inline.c (declare_return_variable): Use the type of
20806         the call stmt lhs if available.
20807
20808 2010-02-22  Duncan Sands  <baldrick@free.fr>
20809
20810         * passes.c (register_pass): Always consider all pass lists when
20811         ref_pass_instance_number is zero.
20812
20813 2010-02-22  Richard Guenther  <rguenther@suse.de>
20814
20815         PR tree-optimization/42749
20816         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
20817         parameter.  Do arithmetic in the original type.
20818         (update_accumulator_with_ops): Likewise.
20819         (adjust_accumulator_values): Adjust.
20820
20821 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20822
20823         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
20824         (QI to BLKmode splitter): New splitter.
20825
20826 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
20827
20828         * config/i386/i386.c (initial_ix86_tune_features): Turn on
20829         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
20830
20831 2010-02-22  Richard Guenther  <rguenther@suse.de>
20832
20833         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
20834
20835 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
20836
20837         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
20838         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
20839         ($(T)crti.o, $(T)crtn.o): Remove rules.
20840
20841 2010-02-21  Tobias Burnus  <burnus@net-b.de>
20842
20843         PR fortran/35259
20844         * doc/invoke.texi (-fassociative-math): Document that this
20845         option is automatically enabled for Fortran.
20846
20847 2010-02-20  David S. Miller  <davem@davemloft.net>
20848
20849         * configure.ac: Test if linker and assembler properly support
20850         GOTDATA_OP relocations.
20851         * configure: Rebuild.
20852         * config.in: Likewise.
20853         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
20854         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
20855         (movsi_high_pic): Likewise.
20856         (movdi_lo_sum_pic): Likewise.
20857         (movdi_high_pic): Likewise.
20858         (movsi_pic_gotdata_op): New pattern.
20859         (movdi_pic_gotdata_op): Likewise.
20860         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
20861         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
20862
20863 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
20864
20865         PR target/43067
20866         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
20867         attribute to ssemul.
20868         (xop_mulv2div2di3_high): Ditto.
20869
20870 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20871
20872         PR c++/35669
20873         * c.opt (Wconversion-null): New option.
20874         * doc/invoke.texi (Wconversion-null): Document.
20875
20876 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20877
20878         * common.opt (Wlarger-than-): Add Undocumented.
20879
20880 2010-02-19  Mike Stump  <mikestump@comcast.net>
20881
20882         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
20883
20884 2010-02-19  Jason Merrill  <jason@redhat.com>
20885
20886         PR target/40332
20887         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
20888         * configure: Likewise.
20889
20890 2010-02-20  Alan Modra  <amodra@gmail.com>
20891
20892         PR middle-end/42344
20893         * cgraph.h (cgraph_make_decl_local): Declare.
20894         * cgraph.c (cgraph_make_decl_local): New function.
20895         (cgraph_make_node_local): Use it.
20896         * cgraphunit.c (cgraph_function_versioning): Likewise.
20897         * ipa.c (function_and_variable_visibility): Likewise.
20898
20899 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20900
20901         PR bootstrap/43121
20902         * except.c (sjlj_emit_function_enter): Don't call
20903         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
20904         directly.
20905         * rtl.h (add_reg_br_prob_note): Remove prototype.
20906
20907 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20908
20909         PR 41779
20910         * c-common.c (conversion_warning): Remove widening conversions
20911         before checking the conversion of integers to reals.
20912
20913 2010-02-19  Mike Stump  <mikestump@comcast.net>
20914
20915         PR middle-end/43125
20916         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
20917
20918         PR objc/43061
20919         * cgraphunit.c (process_function_and_variable_attributes): Check
20920         DECL_PRESERVE_P instead of looking up attribute "used".
20921         * ipa-pure-const.c (check_decl): Likewise.
20922         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
20923         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
20924         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
20925         instead of attribute "used".
20926         * config/sol2-c.c (solaris_pragma_init): Likewise.
20927         (solaris_pragma_fini): Likewise.
20928
20929 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20930
20931         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
20932         Use XCNEW instead of xcalloc.
20933         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
20934         XNEW instead of xmalloc.
20935         (get_fields): Use XNEWVEC instead of xmalloc.
20936
20937         PR debug/43084
20938         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
20939         populate vars array.
20940         (create_new_general_access): For debug stmts just reset value.
20941         (get_stmt_accesses): For accesses within debug stmts just record them
20942         using add_access_to_acc_sites instead of preventing the peeling or
20943         counting them as accesses.
20944
20945         PR middle-end/42233
20946         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
20947
20948 2010-02-19  Richard Guenther  <rguenther@suse.de>
20949
20950         PR tree-optimization/42916
20951         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
20952         instructions.
20953
20954 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
20955
20956         * configure.ac: Replace all uses of changequote in macro arguments
20957         with proper quoting.
20958
20959 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20960
20961         PR middle-end/42233
20962         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
20963
20964 2010-02-19  Richard Guenther  <rguenther@suse.de>
20965
20966         PR tree-optimization/42944
20967         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
20968         test for aliasing with errno.
20969
20970 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20971
20972         PR middle-end/42233
20973         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
20974         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
20975         * dojump.c: Include output.h.
20976         (inv): New inline function.
20977         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
20978         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
20979         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
20980         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
20981         argument, pass it down to other calls.
20982         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
20983         add REG_BR_PROB note to the conditional jump.
20984         * cfgexpand.c (add_reg_br_prob_note): Removed.
20985         (expand_gimple_cond): Don't call it, add the probability
20986         as last argument to jumpif_1/jumpifnot_1.
20987         * Makefile.in (dojump.o): Depend on output.h.
20988         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
20989         callers.
20990         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
20991         * stmt.c (do_jump_if_equal): Likewise.
20992         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
20993         * loop-unswitch.c (compare_and_jump_seq): Likewise.
20994         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
20995         Likewise.
20996         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
20997         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
20998         jumpifnot_1 callers.
20999         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
21000         callers.
21001         (store_expr): Adjust jumpifnot caller.
21002         (store_constructor): Adjust jumpif caller.
21003
21004         PR middle-end/42233
21005         * gimplify.c (gimple_boolify): For __builtin_expect call
21006         gimple_boolify also on its first argument.
21007
21008 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
21009
21010         * configure.ac (gnu-unique-object): Wrap regexps using [] in
21011         changequote block.
21012         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
21013         * configure: Regenerated.
21014
21015 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21016
21017         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
21018         lang_hooks.types_compatible_p instead of comptypes.
21019
21020 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
21021
21022         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
21023         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
21024         if __prefer_thumb__ is defined.
21025
21026 2010-02-18  Martin Jambor  <mjambor@suse.cz>
21027
21028         PR tree-optimization/43066
21029         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
21030         array with zero-sized element type.
21031
21032 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
21033
21034         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
21035         rtx, allocate struct var_loc_node here and return it to the
21036         caller, and only if it is actually needed.
21037         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
21038         move it earlier and return immediately if it returns NULL.
21039
21040 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
21041
21042         * config/sparc/gas.h: New file.  Restore
21043         TARGET_ASM_NAMED_SECTION to its ELF default.
21044         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
21045         check !HAVE_GNU_AS.
21046         * config/sparc/sparc.c (sparc_elf_asm_named_section):
21047         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
21048         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
21049         after sparc/sysv4.h.
21050
21051 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
21052
21053         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
21054
21055 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
21056
21057         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
21058         patterns from predicated pattern.
21059
21060 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
21061
21062         PR target/43103
21063         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
21064         for insn mnemonic suffix.
21065
21066 2010-02-17  Richard Guenther  <rguenther@suse.de>
21067
21068         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
21069         to loop PHI nodes.
21070
21071 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
21072
21073         PR debug/42918
21074         * caller-save.c (save_call_clobbered_regs): If BB ends with
21075         a DEBUG_INSN, move any notes in between last real insn and the last
21076         DEBUG_INSN after the last DEBUG_INSN.
21077
21078 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
21079
21080         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
21081         Fix return type.  Fix argument type.  Explain meaning of return value.
21082
21083 2010-02-16  Richard Guenther  <rguenther@suse.de>
21084
21085         PR tree-optimization/41043
21086         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
21087         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
21088         statements ...
21089         (vrp_visit_phi_node): ... but only for loop PHI nodes.
21090
21091 2010-02-16  Ira Rosen  <irar@il.ibm.com>
21092
21093         PR tree-optimization/43074
21094         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
21095         * tree-vect-loop.c (vect_analyze_loop_operations): Add
21096         vectorizable cycles in hybrid SLP check.
21097         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
21098
21099 2010-02-16  Richard Guenther  <rguenther@suse.de>
21100
21101         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
21102         (true_dependence): If memrefs_conflict_p computes must-alias
21103         trust it.  Move TBAA check after offset-based disambiguation.
21104         (canon_true_dependence): Likewise.
21105
21106 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
21107
21108         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
21109         * doc/invoke.texi: Document it.
21110         * var-tracking.c: Include toplev.h and params.h.
21111         (vt_find_locations): Return bool indicating success.  Compute
21112         hash sizes unconditionally.  Check new parameter, report.
21113         (variable_tracking_main_1): Check vt_find_locations results and
21114         retry.  Renamed from...
21115         (variable_tracking_main): ... this.  New wrapper to preserve
21116         flag_var_tracking_assignments.
21117         * Makefile.in (var-tracking.o): Adjust dependencies.
21118
21119 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
21120             Jakub Jelinek <jakub@redhat.com>
21121
21122         PR target/42854
21123         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
21124         if weak_import attribute is present.
21125         * config/darwin.c (machopic_select_section): Likewise.
21126
21127 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
21128
21129         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
21130         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
21131         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
21132         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
21133
21134         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
21135         types.
21136
21137         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
21138         Fix argument types.
21139
21140         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
21141         Rewrite text to refer to the names.
21142
21143 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
21144
21145         * config/i386/i386-builtin-types.def
21146         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
21147         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
21148         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
21149         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
21150         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
21151         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
21152         IX86_BUILTIN_VPERMIL2PS256.
21153         (MULTI_ARG_4_DF2_DI_I): Defined.
21154         (MULTI_ARG_4_DF2_DI_I1): Defined.
21155         (MULTI_ARG_4_SF2_SI_I): Defined.
21156         (MULTI_ARG_4_SF2_SI_I1): Defined.
21157         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
21158         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
21159         __builtin_ia32_vpermil2ps256.
21160         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
21161         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
21162         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
21163         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
21164         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
21165         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
21166         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
21167         CODE_FOR_xop_vpermil2v8sf3.
21168         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
21169         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
21170         * config/i386/xopintrin.h (_mm_permute2_pd): New.
21171         (_mm256_permute2_pd): New.
21172         (_mm_permute2_ps): New.
21173         (_mm256_permute2_ps): New.
21174
21175 2010-02-15  Nick Clifton  <nickc@redhat.com>
21176
21177         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
21178         boolean parameters.  Use emit_jump_insn when emitting a pop
21179         instruction containing a return insn.
21180         (push): Use 'true' rather than '1' as second parameter to F.
21181         (h8300_expand_prologue): Likewise.
21182         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
21183         (h8300_expand_epilogue): Likewise.
21184
21185 2010-02-15  Richard Guenther  <rguenther@suse.de>
21186
21187         PR middle-end/43068
21188         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
21189         if that is zero.
21190
21191 2010-02-15  Nick Clifton  <nickc@redhat.com>
21192
21193         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
21194         delta.
21195
21196 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
21197
21198         * intl.c (fake_ngettext): New function.
21199         * intl.h (fake_ngettext): Declare.
21200         (ngettext): Define macro.
21201         * collect2.c (notice_translated): New function.
21202         (main): Use notice_translated and ngettext.
21203         * collect2.h (notice_translated): Declare.
21204
21205 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
21206
21207         * reorg.c (delete_computation): Comment fixes.
21208         * caller-save.c (setup_save_areas): Idem.
21209         * sel-sched-dump.c (dump_lv_set): Idem.
21210         * rtl.def: Idem.
21211
21212 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21213
21214         * config/s390/s390.c (s390_sched_init): New function.
21215         (TARGET_SCHED_INIT): Target hook defined.
21216
21217 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
21218             Jack Howarth  <howarth@bromo.med.uc.edu>
21219             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
21220
21221         PR target/42982
21222         Partial revert of unintended change in fix for PR41605.
21223         * config/darwin.h: Fix typo.
21224         * config/darwin9.h: Same.
21225
21226 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
21227
21228         * c-pch.c (pch_init): Clear v.
21229
21230 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21231
21232         PR middle-end/42930
21233         * graphite-scop-detection.c (graphite_can_represent_scev): Call
21234         graphite_can_represent_init for MULT_EXPR.
21235
21236 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21237
21238         PR middle-end/42914
21239         PR middle-end/42530
21240         * graphite-sese-to-poly.c (remove_phi): New.
21241         (translate_scalar_reduction_to_array): Call remove_phi.
21242
21243 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21244
21245         PR middle-end/42771
21246         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
21247         * graphite-clast-to-gimple.h (gloog): Update declaration.
21248         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
21249         * graphite-poly.h (struct poly_bb): Add missing comments.
21250         (struct scop): Add poly_scop_p field.
21251         (POLY_SCOP_P): New.
21252         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
21253         * graphite.c (graphite_transform_loops): Build the polyhedral
21254         representation for each scop before code generation.
21255         * sese.c (rename_variables_in_operand): Removed.
21256         (rename_variables_in_expr): Return the renamed expression.
21257         (rename_sese_parameters): New.
21258         * sese.h (rename_sese_parameters): Declared.
21259
21260 2010-02-11  Richard Guenther  <rguenther@suse.de>
21261
21262         PR tree-optimization/42998
21263         * tree-ssa-pre.c (create_expression_by_pieces): Treat
21264         POINTER_PLUS_EXPR properly.
21265
21266 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
21267             Changpeng Fang  <changpeng.fang@amd.com>
21268
21269         PR middle-end/40886
21270         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
21271         the cost of an IV candidate when the IV is used in a test against zero.
21272
21273         * gcc.dg/tree-ssa/ivopts-3.c: New.
21274
21275 2010-02-11  Richard Guenther  <rguenther@suse.de>
21276
21277         PR lto/41664
21278         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
21279         pointer-vs-decl case by swapping refs.  Handle some cases
21280         of pointer-vs-decl disambiguations more conservatively.
21281         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
21282         to false after expanding.
21283
21284 2010-02-11  Richard Guenther  <rguenther@suse.de>
21285
21286         PR driver/43021
21287         * gcc.c (process_command): Handle LTO file@offset case more
21288         appropriately.
21289
21290 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
21291
21292         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
21293         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
21294         of DEBUG_INSNs.
21295         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
21296
21297         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
21298         if MEM's mode size isn't DWARF2_ADDR_SIZE.
21299         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
21300         Optimize eq/ne comparisons when both arguments are known to be
21301         zero-extended.
21302         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
21303         Don't mask operands unnecessarily if they are known to be already
21304         zero-extended.
21305
21306 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
21307
21308         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
21309         instead of loop.
21310
21311 2010-02-10  Richard Guenther  <rguenther@suse.de>
21312
21313         PR tree-optimization/43017
21314         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
21315         for wrapping signed arithmetic.
21316
21317 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
21318
21319         PR debug/43010
21320         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
21321         if no debug info should be emitted for it.
21322
21323 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
21324
21325         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
21326         note when flag_exceptions is set.
21327
21328 2010-02-10  Duncan Sands  <baldrick@free.fr>
21329
21330         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
21331
21332 2010-02-10  Richard Guenther  <rguenther@suse.de>
21333
21334         PR c/43007
21335         * tree.c (get_unwidened): Handle constants.
21336         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
21337
21338 2010-02-10  Martin Jambor  <mjambor@suse.cz>
21339
21340         PR lto/42985
21341         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
21342         check for variable argument counts independently.
21343
21344 2010-02-10  Christian Bruel  <christian.bruel@st.com>
21345
21346         PR target/42841
21347         * config/sh/sh.c (find_barrier): Increase length for non delayed
21348         conditional branches.
21349
21350 2010-02-10  Christian Bruel  <christian.bruel@st.com>
21351
21352         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
21353
21354 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
21355
21356         * builtins.c (set_builtin_user_assembler_name): Also handle
21357         ffs if int is smaller than word.
21358
21359 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
21360
21361         PR middle-end/42973
21362         * ira-conflicts.c (get_dup): Remove.
21363         (process_reg_shuffles): Add new parameter.  Use it as an
21364         additional guard for copy generation.
21365         (add_insn_allocno_copies): Rewrite.
21366
21367 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
21368
21369         * common.opt (fsched2-use-traces): Preserved for backward
21370         compatibility.
21371         * doc/invoke.texi: Remove the documentation about option
21372         -fsched2-use-traces.
21373         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
21374         flag_sched2_use_traces.
21375         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
21376         the backward compatibility flag section.
21377
21378 2010-02-09  Richard Guenther  <rguenther@suse.de>
21379
21380         PR tree-optimization/43008
21381         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
21382         make HEAP variables initialized from global memory if they
21383         are not known builtin functions.
21384         (find_func_aliases): Adjust.
21385
21386 2010-02-09  Richard Guenther  <rguenther@suse.de>
21387
21388         PR tree-optimization/43000
21389         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
21390         arithmetic manually.
21391
21392 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
21393
21394         PR tree-optimization/42931
21395         * tree-loop-linear.c (try_interchange_loops): Don't call
21396         double_int_mul if estimated_loop_iterations failed.
21397
21398 2010-02-08  Martin Jambor  <mjambor@suse.cz>
21399
21400         PR middle-end/42898
21401         * tree-sra.c (build_accesses_from_assign): Do not mark in
21402         should_scalarize_away_bitmap if stmt has volatile ops.
21403         (sra_modify_assign): Do not process assigns piecemeal if if stmt
21404         has volatile ops.
21405
21406 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
21407
21408         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
21409
21410 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
21411
21412         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
21413         before the pattern.
21414
21415 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
21416
21417         PR middle-end/42946
21418         * df-core.c (df_finish_pass): Change type of saved_flags to int.
21419
21420 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
21421
21422         PR middle-end/42988
21423         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
21424         to unknown_dependence.
21425         (graphite_legal_transform_dr): Handle the unknown_dependence.
21426         (graphite_carried_dependence_level_k): Same.
21427
21428 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
21429
21430         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
21431
21432 2010-02-07  Richard Guenther  <rguenther@suse.de>
21433
21434         PR middle-end/42991
21435         * expr.c (get_inner_reference): Always initialize *pbitsize.
21436
21437 2010-02-07  Richard Guenther  <rguenther@suse.de>
21438
21439         PR middle-end/42956
21440         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
21441         new ARRAY_REFs on variable size element or minimal index arrays.
21442         Complete.
21443         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
21444         gimple_fold_indirect_ref.
21445
21446 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
21447
21448         PR target/42957
21449         * arm.c (arm_override_options): Just return if the user has specified
21450         an invalid fpu name.
21451
21452 2010-02-03  Jason Merrill  <jason@redhat.com>
21453
21454         PR c++/42870
21455         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
21456         i386_pe_maybe_record_exported_symbol.
21457
21458 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
21459
21460         PR target/42924
21461         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
21462         (pa_delegitimize_address): New function.
21463
21464 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
21465
21466         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
21467         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
21468
21469 2010-02-05  Richard Guenther  <rguenther@suse.de>
21470
21471         PR lto/42762
21472         * lto-streamer-in.c (get_resolution): Deal with references
21473         to undefined functions.
21474
21475 2010-02-05  Richard Guenther  <rguenther@suse.de>
21476
21477         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
21478         (fold_const_aggregate_ref): Likewise.
21479         (ccp_fold_stmt): Substitute loads.
21480         (maybe_fold_reference): Verify types before substituting.
21481         Unshare properly.
21482         (fold_gimple_assign): Unshare properly.
21483         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
21484
21485 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
21486
21487         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
21488         for rs6000_gen_cell_microcode.
21489
21490 2010-02-04  Richard Guenther  <rguenther@suse.de>
21491
21492         PR rtl-optimization/42952
21493         * dse.c (const_or_frame_p): Remove MEM handling.
21494
21495 2010-02-04  Nick Clifton  <nickc@redhat.com>
21496
21497         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
21498         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
21499         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
21500         (mn10300_asm_output_mi_thunk): New function.
21501         (mn10300_can_output_mu_thunk): New function.
21502         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
21503         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
21504         (FUNCTION_ARG): Delete incorrect comment.
21505
21506 2010-02-03  Jason Merrill  <jason@redhat.com>
21507
21508         PR c++/40138
21509         * fold-const.c (operand_equal_p): Handle erroneous types.
21510
21511 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
21512
21513         * config/h8300/h8300.md (can_delay): Fix attibute condition.
21514
21515 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
21516
21517         PR rtl-optimization/42941
21518         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
21519         of xmalloc.
21520
21521 2010-02-03  Jason Merrill  <jason@redhat.com>
21522
21523         PR c++/35652
21524         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
21525
21526 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
21527
21528         PR debug/42896
21529         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
21530         (cselib_reset_table): Renamed from...
21531         (cselib_reset_table_with_next_value): ... this.
21532         (cselib_get_next_uid): Renamed from...
21533         (cselib_get_next_unknown_value): ... this.
21534         * cselib.c (next_uid): Renamed from...
21535         (next_unknown_value): ... this.
21536         (cselib_clear_table): Adjust.
21537         (cselib_reset_table): Adjust.  Renamed from...
21538         (cselib_reset_table_with_next_value): ... this.
21539         (cselib_get_next_uid): Adjust.  Renamed from...
21540         (cselib_get_next_unknown_value): ... this.
21541         (get_value_hash): Use hash.
21542         (cselib_hash_rtx): Likewise.
21543         (new_cselib_val): Adjust.  Set and dump uid.
21544         (cselib_lookup_mem): Pass next_uid as hash.
21545         (cselib_subst_to_values): Likewise.
21546         (cselib_log_lookup): Dump uid.
21547         (cselib_lookup): Pass next_uid as hash.  Adjust.
21548         (cselib_process_insn): Adjust.
21549         (cselib_init): Initialize next_uid.
21550         (cselib_finish): Adjust.
21551         (dump_cselib_table): Likewise.
21552         * dse.c (canon_address): Dump value uid.
21553         * print-rtl.c (print_rtx): Print value uid.
21554         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
21555         (dvuid): New type.
21556         (dv_uid): New function, sort of renamed from...
21557         (dv_htab_hash): ... this, reimplemented in terms of it and...
21558         (dv_uid2hash): ... this.  New.
21559         (variable_htab_eq): Drop excess assertions.
21560         (tie_break_pointers): Removed.
21561         (canon_value_cmp): Compare uids.
21562         (variable_post_merge_New_vals): Print uids.
21563         (vt_add_function_parameters): Adjust.
21564         (vt_initialize): Reset table.  Adjust.
21565
21566 2010-02-03  Richard Guenther  <rguenther@suse.de>
21567
21568         PR tree-optimization/42944
21569         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
21570         (call_may_clobber_ref_p_1): Likewise.  Properly handle
21571         malloc and calloc clobbering errno.
21572
21573 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
21574
21575         * doc/invoke.texi: Fix name of sched1 dump.
21576
21577         * opts.c (decode_options): Set flag_tree_switch_conversion
21578         only conditionally on optimize >= 2.
21579
21580         * gcse.c: Assorted comment fixes in pass description.
21581
21582 2010-02-03  Anthony Green  <green@moxielogic.com>
21583
21584         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
21585         nop padding in order to maintain alignment of storage location of
21586         target function address.
21587         (moxie_trampoline_init): Store target function address at newly
21588         aligned location.
21589         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
21590         to 32.
21591         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
21592
21593 2010-02-03  Richard Guenther  <rguenther@suse.de>
21594
21595         PR middle-end/42927
21596         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
21597
21598 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21599
21600         * config.gcc: Reenable check for obsolete targets.
21601         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
21602         mips-sgi-irix6.[0-4]*.
21603
21604 2010-02-02  Nick Clifton  <nickc@redhat.com>
21605
21606         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
21607         constant size of 4 as being the same as 0.
21608         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
21609         can take values in the range 0..4.
21610
21611 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
21612
21613         PR java/41991
21614         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
21615         as _darwin10_Unwind_FindEnclosingFunction().
21616         * libgcc-libsystem.ver: New.
21617
21618 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
21619
21620         PR target/41399
21621         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
21622         implicitly set registers.
21623
21624 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
21625
21626         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
21627         (arm_override_options): Allow automatic selection of the thread
21628         pointer register if thumb2.
21629         (legitimize_pic_address): Improve code sequences for Thumb2.
21630         (arm_call_tls_get_addr): Likewise.
21631         (legitimize_tls_address): Likewise.
21632         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
21633         (pic_load_addr_32bit): ... this.  New named pattern.
21634         * thumb2.md (pic_load_addr_thumb2): Delete.
21635         (pic_load_dot_plus_four): Delete.
21636         (tls_load_dot_plus_four): New named pattern.
21637
21638 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21639
21640         PR libgomp/29986
21641         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
21642         Document fix for TLS bug.
21643
21644 2010-01-31  Richard Guenther  <rguenther@suse.de>
21645
21646         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
21647         conservatively correct.
21648
21649 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21650
21651         PR target/42850
21652         Revert:
21653         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21654
21655         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
21656
21657 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21658
21659         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
21660
21661 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
21662
21663         * config.gcc: Adjust order of makefile fragments for mingw targets.
21664
21665 2010-01-31  Richard Guenther  <rguenther@suse.de>
21666
21667         PR middle-end/42898
21668         * gimplify.c (gimplify_init_constructor): For volatile LHS
21669         initialize a temporary.
21670
21671 2010-01-31  Matthias Klose  <doko@ubuntu.com>
21672
21673         * configure.ac: Fix __stack_chk_fail check for cross builds configured
21674         --with-headers
21675         * configure: Regenerate.
21676
21677 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
21678
21679         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
21680         the same alias set and their sizes different constantness.
21681         (aliasing_component_refs_p): Revert 2009-10-24 change.
21682
21683 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21684
21685         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
21686         unused.
21687
21688 2010-01-29  Richard Guenther  <rguenther@suse.de>
21689
21690         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
21691         Assert we successfully updated the call.
21692
21693 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
21694
21695         PR rtl-optimization/42889
21696         * df.h (df_set_bb_dirty_nonlr): New prototype.
21697         * df-core.c (df_set_bb_dirty_nonlr): New function.
21698         * df-scan.c (df_insn_rescan): Call it instead of
21699         df_set_bb_dirty for DEBUG_INSNs.
21700
21701 2010-01-29  Richard Guenther  <rguenther@suse.de>
21702
21703         PR middle-end/37448
21704         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
21705         quadratic behavior in most cases.
21706
21707 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
21708
21709         PR target/42891
21710         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
21711         in the call to gen_x86_movsicc_0_m1.
21712
21713 2010-01-28  Richard Guenther  <rguenther@suse.de>
21714
21715         PR tree-optimization/42871
21716         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
21717
21718 2010-01-28  Richard Guenther  <rguenther@suse.de>
21719
21720         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
21721         into call arguments.
21722
21723 2010-01-28  Richard Guenther  <rguenther@suse.de>
21724
21725         PR middle-end/42883
21726         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
21727         the forwarder if the destination is an EH landing pad.
21728
21729 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
21730
21731         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
21732         block list passed to gimple_duplicate_sese_tail.
21733         (parallelize_loops): Avoid parallelization when the function
21734         has_nonlocal_label.
21735         Avoid parallelization when the preheader is IRREDUCIBLE.
21736         Try to optimize when estimated_loop_iterations_int is unresolved.
21737         Add the loop's location to the dump file.
21738         * tree-cfg.c (add_phi_args_after_redirect): Remove.
21739         (gimple_duplicate_sese_tail): Remove the check for the latch.
21740         Redirect nexits to the exit block.
21741         Remove handling of the incoming edges to the latch.
21742         Redirect the backedge from the copied latch to the exit bb.
21743
21744 2010-01-28  Michael Matz  <matz@suse.de>
21745
21746         PR target/42881
21747         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
21748         Wrap force_reg into a sequence, emit it before user.
21749
21750 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
21751
21752         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
21753         (arm_rev): New.
21754         (arm_legacy_rev): Likewise.
21755         (thumb_legacy_rev): Likewise.
21756
21757 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
21758
21759         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
21760         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
21761         on MEM's address failed, try avoid_constant_pool_reference and
21762         recurse if it returned something different.
21763         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
21764         address, try avoid_constant_pool_reference and recurse if it
21765         returned something different.
21766         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
21767         address and avoid_constant_pool_reference returned something
21768         different, don't set have_address.
21769
21770 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
21771
21772         PR debug/42861
21773         * var-tracking.c (val_store): Add modified argument, obey it.
21774         Adjust callers.
21775         (count_uses): Move down logging of main.
21776         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
21777         don't need resolution.
21778         (emit_notes_in_bb): Likewise.
21779
21780 2010-01-27  Richard Guenther  <rguenther@suse.de>
21781
21782         PR middle-end/42878
21783         * tree-inline.c (remap_decl): Delay remapping of SSA name
21784         default definitions until we need them.
21785
21786 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
21787
21788         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
21789         (rs6000_delegitimize_address): New function.
21790
21791         * config/s390/s390.c (s390_delegitimize_address): Call
21792         delegitimize_mem_from_attrs.
21793
21794         PR middle-end/42874
21795         * tree-inline.c (cannot_copy_type_1): Removed.
21796         (copy_forbidden): Don't forbid copying of functions containing
21797         records/unions with variable length fields.
21798
21799 2010-01-27  Christian Bruel  <christian.bruel@st.com>
21800
21801         Revert:
21802         PR target/42841
21803         * config/sh/sh.c (find_barrier): Increase length for non delayed
21804         conditional branches.
21805
21806 2010-01-27  Matthias Klose  <doko@ubuntu.com>
21807
21808         * configure.ac (gnu-unique-object): Fix ldd version check.
21809         * configure: Regenerate.
21810
21811 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21812
21813         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
21814         HAVE_GNU_AS value.
21815         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
21816         Test for HAVE_GNU_AS value.
21817
21818 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21819
21820         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
21821         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
21822         INT64_TYPE): Define.
21823         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
21824         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
21825         INT_LEAST64_TYPE): Define.
21826         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
21827         UINT_LEAST64_TYPE): Define.
21828         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
21829         INT_FAST64_TYPE): Define.
21830         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
21831         UINT_FAST64_TYPE): Define.
21832         (INTMAX_TYPE, UINTMAX_TYPE): Define.
21833         (INTPTR_TYPE, UINTPTR_TYPE): Define.
21834         (SIG_ATOMIC_TYPE): Define.
21835
21836 2010-01-26  Richard Guenther  <rguenther@suse.de>
21837
21838         * df-scan.c (df_scan_set_bb_info): Remove assert.
21839         (df_insn_rescan_debug_internal): Merge asserts.
21840         (df_install_ref): Likewise.
21841         (df_mark_reg): Use bitmap_set_range.
21842         (df_hard_reg_used_p): Remove assert.
21843         (df_hard_reg_used_count): Likewise.
21844
21845 2010-01-26  Richard Guenther  <rguenther@suse.de>
21846
21847         PR rtl-optimization/42685
21848         * web.c (web_main): Ignore DEBUG_INSNs.
21849
21850 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
21851
21852         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
21853
21854         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
21855         Fix types of fndecl and arglist parameters.
21856
21857 2010-01-26  Richard Guenther  <rguenther@suse.de>
21858
21859         PR middle-end/42806
21860         * tree-eh.c (unsplit_eh): Skip debug insns.
21861
21862 2010-01-26  Richard Guenther  <rguenther@suse.de>
21863
21864         PR tree-optimization/42250
21865         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
21866
21867 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
21868
21869         PR fortran/42866
21870         * omp-low.c (expand_omp_sections): Only use single_pred if
21871         l2_bb is single_pred_p.
21872
21873 2010-01-25  Christian Bruel  <christian.bruel@st.com>
21874
21875         PR target/42841
21876         * config/sh/sh.c (find_barrier): Increase length for non delayed
21877         conditional branches.
21878         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
21879
21880 2010-01-24  David S. Miller  <davem@davemloft.net>
21881
21882         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
21883         define if not using GAS.
21884         * config/sparc/sparc.c (sparc_elf_asm_named_section):
21885         Likewise.  Delete SECTION_MERGE code, which is only applicable
21886         when using GAS.
21887
21888 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
21889
21890         PR c++/42748
21891         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
21892         mangling of va_list in system headers.
21893
21894 2010-01-23  Toon Moene  <toon@moene.org>
21895
21896         * tree-predcom.c (combine_chains): Return NULL, not false.
21897
21898 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
21899
21900         * tree-loop-distribution.c (distribute_loop): Fix declaration and
21901         initialization of variable res to agree with return type.
21902
21903 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
21904
21905         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
21906         * tree-sra.c: Add include of expr.h.
21907
21908 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
21909
21910         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
21911         insert the debug stmt on the single non-EH edge from the stmt.
21912
21913 2010-01-22  Richard Henderson  <rth@redhat.com>
21914
21915         PR tree-opt/42833
21916         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
21917         the RHS until after generate_subtree_copies has insertted its
21918         code before the current statement.
21919
21920 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
21921
21922         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
21923
21924         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
21925
21926 2010-01-21  Martin Jambor  <mjambor@suse.cz>
21927
21928         PR tree-optimization/42585
21929         * tree-sra.c (struct access): New field grp_total_scalarization.
21930         (dump_access): Dump the new field.
21931         (should_scalarize_away_bitmap): New variable.
21932         (cannot_scalarize_away_bitmap): Likewise.
21933         (sra_initialize): Allocate new bitmaps.
21934         (sra_deinitialize): Free new bitmaps.
21935         (create_access_1): New function.
21936         (create_access): Parts moved to create_access_1.
21937         (type_consists_of_records_p): New function.
21938         (completely_scalarize_record): Likewise.
21939         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
21940         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
21941         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
21942         access.
21943         (analyze_all_variable_accesses): Completely scalarize small eligible
21944         records.
21945
21946 2010-01-21  Martin Jambor  <mjambor@suse.cz>
21947
21948         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
21949
21950 2010-01-21  Andrew Haley  <aph@redhat.com>
21951
21952         * gcc.c (process_command): Move lang_specific_driver before
21953         setting cc_libexec_prefix.
21954
21955 2010-01-21  Richard Guenther  <rguenther@suse.de>
21956
21957         PR middle-end/19988
21958         * fold-const.c (negate_expr_p): Pretend only negative
21959         real constants are easily negatable.
21960
21961 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
21962             Jason Merrill  <jason@redhat.com>
21963
21964         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
21965         (TYPE_TRANSPARENT_AGGR): this, for union and record.
21966         * calls.c (initialize argument_information): Handle it.
21967         * c-common.c (handle_transparent_union_attribute): Use new name.
21968         * c-decl.c (finish_struct): Ditto.
21969         * c-typeck.c (type_lists_compatible_p): Ditto.
21970         (convert_for_assignment): Use new name and also handle record.
21971         * function.c (aggregate_value_p): Handle it.
21972         (pass_by_reference): Ditto.
21973         (assign_parm_data_types): Ditto.
21974         * print-tree.c (print_node): Ditto.
21975         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
21976         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
21977         * tree.c (first_field): New fn.
21978
21979 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
21980
21981         PR target/42818
21982         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
21983         even when linking statically, for now.
21984
21985 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
21986
21987         PR debug/42715
21988         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
21989         without a cselib val.
21990         (count_uses): Accept MO_VAL_SET with no val on stores.
21991         (add_stores): Likewise.
21992
21993 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
21994
21995         * var-tracking.c (check_value_val): Add a compile time assertion.
21996         (dv_is_decl_p): Simplify.
21997         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
21998         gcc_assert if ENABLE_CHECKING.
21999
22000 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
22001
22002         PR debug/42782
22003         * var-tracking.c: Include tree-flow.h.
22004         (mem_dies_at_call): New.
22005         (dataflow_set_preserve_mem_locs): Use it.
22006         (dataflow_set_remove_mem_locs): Likewise.
22007         (dump_var): Renamed from dump_variable.  Adjust all callers.
22008         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
22009         * Makefile.in (var-tracking.o): Adjust deps.
22010
22011 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
22012
22013         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
22014
22015 2010-01-20  Richard Guenther  <rguenther@suse.de>
22016
22017         PR tree-optimization/42717
22018         * tree-ssa-dce.c (get_live_post_dom): Remove.
22019         (forward_edge_to_pdom): Take an arbitrary edge to copy
22020         degenerate PHI args from.
22021         (remove_dead_stmt): Use the first post-dominator even if it
22022         does not contain live statements as redirection destination.
22023
22024 2010-01-20  Richard Guenther  <rguenther@suse.de>
22025
22026         * tree-inline.c (estimate_num_insns): Handle EH builtins.
22027
22028 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
22029
22030         * sel-sched.c (create_speculation_check): Remove set but not used
22031         variable twin.
22032         (try_transformation_cache): Remove set but not used variable ds.
22033         (calculate_privileged_insns): Remove set but not used variables
22034         cur_insn and min_spec_insn.
22035         (find_best_expr): Remove set but not used variable avail_n.
22036         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
22037         variable e.
22038         * cgraphunit.c (assemble_thunk): Remove set but not used variable
22039         false_label.
22040         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
22041         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
22042         new_scop_exit_edge.
22043
22044 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
22045
22046         PR bootstrap/42786
22047         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
22048         cpu types.  Add support for *-sse3 cpu types.
22049         (x86_64-*-*): Ditto.
22050
22051 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
22052
22053         PR middle-end/42803
22054         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
22055         argument, call initializer_constant_valid_p_1 instead of
22056         initializer_constant_valid_p, pass CACHE to it, return NULL
22057         immediately if first call returns NULL.
22058         (initializer_constant_valid_p_1): New function.
22059         (initializer_constant_valid_p): Use it.
22060
22061 2010-01-20  Thomas Quinot  <quinot@adacore.com>
22062
22063         * tree.def (PLACEHOLDER_EXPR): Fix comment.
22064
22065 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
22066
22067         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
22068         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
22069         (loc_list_from_tree): Don't handle unsigned division.  Handle
22070         signed modulo using DW_OP_{over,over,div,mul,minus}.
22071         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
22072         modulo instead of signed.
22073
22074 2010-01-20  DJ Delorie  <dj@redhat.com>
22075
22076         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
22077         (Fpa): Pass it
22078         (h8300_emit_stack_adjustment): Propogate it.
22079         (push): Pass it.
22080         (h8300_expand_prologue): Likewise.
22081         (h8300_expand_epilogue): Likewise.
22082
22083 2010-01-19  Michael Matz  <matz@suse.de>
22084
22085         PR tree-optimization/41783
22086         * tree-data-ref.c (toplevel): Include flags.h.
22087         (dump_data_dependence_relation):  Also dump the inputs if the
22088         result will be unknown.
22089         (split_constant_offset_1): Look through some conversions.
22090         * tree-predcom.c (determine_roots_comp): Restart a new chain if
22091         the offset from last element is too large.
22092         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
22093         (reassociate_to_the_same_stmt): Handle vector registers.
22094         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
22095         (e.g. conversions).
22096         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
22097         wide_prolog_niters argument, emit widening instructions.
22098         (vect_do_peeling_for_alignment): Adjust caller, use widened
22099         variant of the iteration cound.
22100         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
22101
22102 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22103
22104         PR target/38697
22105         * config/arm/neon-testgen.m (emit_automatics): New parameter
22106         features. Adjust for Fixed_return_reg feature.
22107         (test_intrinsic): Call emit_automatics with new feature.
22108         * config/arm/neon.ml: Update copyright years.
22109         (features): New Fixed_return_reg feature.
22110         (ops): Update feature for Vget_low.
22111
22112 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
22113
22114         PR tree-optimization/42719
22115         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
22116         stmt uses.
22117
22118         PR debug/42728
22119         * fwprop.c (all_uses_available_at): Return false if def_set dest
22120         is a REG that is used in def_insn.
22121
22122 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
22123
22124         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
22125
22126         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
22127         Add argument names.
22128
22129         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
22130
22131         * target.h (struct gcc_target) <secondary_reload>: Change type
22132         of last argument to secondary_reload_info *.
22133
22134 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
22135
22136         PR target/42774
22137         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
22138         memory references with unaligned offsets.  Remove CQImode handling.
22139         (unaligned_memory_operand): Return 1 for memory references with
22140         unaligned offsets.  Remove CQImode handling.
22141
22142 2010-01-18  Richard Guenther  <rguenther@suse.de>
22143
22144         PR middle-end/39954
22145         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
22146         builtin calls.
22147
22148 2010-01-18  Richard Guenther  <rguenther@suse.de>
22149
22150         PR tree-optimization/42781
22151         * tree-ssa-structalias.c (find_what_var_points_to): Skip
22152         restrict processing only if the original variable was artificial.
22153
22154 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
22155
22156         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
22157         find number of popped argument bytes.
22158
22159         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
22160         Fix the text that describes the return value for invalid insns.
22161
22162         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
22163
22164         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
22165         Clarify what 'cost of the -dependence' is.  Fix quoting.
22166
22167         * toplev.c (default_get_pch_validity): Rename argument to "sz".
22168         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
22169
22170 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
22171
22172         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
22173         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
22174
22175 2010-01-17  Richard Guenther  <rguenther@suse.de>
22176
22177         PR middle-end/42248
22178         * function.c (split_complex_args): Take a VEC to modify.
22179         (assign_parms_augmented_arg_list): Build a VEC instead of
22180         a chain of PARM_DECLs.
22181         (assign_parms_unsplit_complex): Take a VEC of arguments.
22182         Do not fixup unmodified parms.
22183         (assign_parms): Deal with the VEC.
22184         (gimplify_parameters): Likewise.
22185
22186 2010-01-17  Richard Guenther  <rguenther@suse.de>
22187
22188         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
22189         node existence check.
22190         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
22191         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
22192         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
22193         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
22194         (gimple_execute_on_growing_pred): Likewise.
22195
22196 2010-01-17  Richard Guenther  <rguenther@suse.de>
22197
22198         PR tree-optimization/42773
22199         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
22200         (compute_antic_aux): Likewise.
22201         (compute_partial_antic_aux): Likewise.
22202
22203 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
22204
22205         PR debug/42767
22206         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
22207         and US_TRUNCATE.
22208
22209 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
22210
22211         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
22212         appearance.
22213
22214         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
22215         Fix markup for strict argument.
22216
22217         (TARGET_SCHED_REORDER2): Fix argument types.
22218
22219         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
22220         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
22221
22222         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
22223         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
22224
22225         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
22226         Add argument name.
22227
22228         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
22229         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
22230         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
22231         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
22232         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
22233
22234         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
22235
22236         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
22237
22238         (TARGET_ASM_RELOC_RW_MASK): Add return type.
22239         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
22240
22241         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
22242
22243         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
22244         Use prototype.
22245
22246         (TARGET_ASM_NAMED_SECTION): Fix argument list.
22247
22248         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
22249         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
22250
22251         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
22252
22253         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
22254
22255         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
22256         referring to it.  Fix language.
22257
22258         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
22259
22260         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
22261
22262         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
22263
22264         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
22265
22266         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
22267         '@var{stream}.  Remove stray 'and'.
22268
22269         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
22270
22271         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
22272
22273         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
22274
22275         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
22276         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
22277
22278         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
22279         Fix description of return value.
22280         Rename argument "sz" to "len."
22281
22282         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
22283         Clarify meaning of 'true' return value.
22284
22285         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
22286
22287         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
22288         rep_mode versus mode_rep.
22289
22290         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
22291
22292         (TARGET_BUILTIN_DECL): Fix name.
22293
22294         (TARGET_COMMUTATIVE_P): Fix type of first argument.
22295
22296         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
22297
22298         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
22299
22300         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
22301
22302         (TARGET_RELAXED_ORDERING): Use @deftypevr.
22303
22304         (TARGET_GET_DRAP_RTX): Note that this is a hook.
22305         Clarify language.
22306
22307         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
22308         Rename argument tm_fn to md_fn.
22309
22310         (TARGET_OPTION_PRINT): Fix argument list.
22311
22312 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
22313
22314         PR target/42664
22315         * config/i386/i386.c (ix86_fixup_binary_operands):
22316         Revert FMA4 fixup of operands.
22317
22318 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22319
22320         PR gcc/42525
22321         * Makefile.in (write_entries_to_file, install-plugin):
22322         Use \012 instead of \n with tr.
22323
22324 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
22325
22326         * configure.ac (HAVE_AS_REF): New C macro.
22327         * configure: Regenerate.
22328         * config.in: Likewise.
22329         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
22330         if HAVE_AS_REF.
22331         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
22332         if HAVE_AS_REF.
22333
22334 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
22335
22336         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
22337
22338         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
22339
22340         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
22341
22342         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
22343
22344         (TARGET_IN_SMALL_DATA_P): Fix argument type.
22345
22346         (TARGET_BINDS_LOCAL_P): Fix argument type.
22347
22348         (TARGET_ASM_FILE_END): Use prototype.
22349
22350         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
22351
22352         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
22353
22354         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
22355
22356         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
22357
22358         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
22359         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
22360
22361         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
22362         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
22363
22364         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
22365         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
22366         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
22367         (TARGET_ADDR_SPACE_CONVERT): Likewise.
22368
22369         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
22370
22371         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
22372
22373         (TARGET_INIT_BUILTINS): Use prototype.
22374
22375         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
22376         Put 'const char *' in braces.  Fix parameter types.
22377         (TARGET_INVALID_CONVERSION): Fix parameter types.
22378         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
22379         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
22380
22381         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
22382         Fix argument type.
22383
22384         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
22385
22386         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
22387
22388 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
22389
22390         * doc/tm.texi (TARGET_HELP): Fix return type.
22391
22392         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
22393         in braces.  Fix argument types.
22394
22395         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
22396
22397         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
22398
22399         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
22400
22401         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
22402         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
22403
22404         (TARGET_MANGLE_TYPE): Fix argument types.
22405
22406         (TARGET_IRA_COVER_CLASSES): Use prototype.
22407
22408         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
22409
22410         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
22411
22412         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
22413
22414         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
22415
22416         (TARGET_CALLEE_COPIES): Fix argument types.
22417
22418         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
22419
22420         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
22421
22422         (TARGET_FUNCTION_VALUE): Fix argument types.
22423
22424         (TARGET_RETURN_IN_MSB): Fix argument type.
22425
22426         (TARGET_RETURN_IN_MEMORY): Fix argument types.
22427
22428         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
22429
22430         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
22431
22432         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
22433         agree with return type.
22434
22435         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
22436
22437 2010-01-15  Jing Yu  <jingyu@google.com>
22438
22439         PR rtl-optimization/42691
22440         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
22441         a pseudo to a constant and are merged, and adjust comments.
22442
22443 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
22444
22445         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
22446
22447 2010-01-15  Richard Guenther  <rguenther@suse.de>
22448
22449         PR middle-end/42739
22450         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
22451         labels of computed or non-local gotos to the destination.
22452         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
22453         landing pad label is the first label.
22454
22455 2010-01-15  Richard Guenther  <rguenther@suse.de>
22456
22457         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
22458
22459 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
22460
22461         PR target/42747
22462         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
22463         to allow generation of the xssqrtdp instruction on power7.
22464         (sqrtdf2_fpr): Ditto.
22465
22466 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
22467
22468         PR middle-end/42674
22469         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
22470         functions with noreturn attribute.
22471
22472         PR c++/42608
22473         * varasm.c (declare_weak): Add weak attribute to decl if it
22474         doesn't have one already.
22475         (assemble_external): Only add decls to weak_decls if they also
22476         have weak attribute.
22477
22478 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
22479
22480         * var-tracking.c (var_reg_delete): Don't delete the association
22481         between REGs and values or one-part variables if the register
22482         isn't clobbered.
22483
22484 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
22485
22486         PR debug/42657
22487         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
22488         because its first operand is a non-localized variable.
22489
22490 2010-01-14  Martin Jambor  <mjambor@suse.cz>
22491
22492         PR tree-optimization/42706
22493         * tree-sra.c (encountered_recursive_call): New variable.
22494         (encountered_unchangable_recursive_call): Likewise.
22495         (sra_initialize): Initialize both new variables.
22496         (callsite_has_enough_arguments_p): New function.
22497         (scan_function): Call decl and flags check only for IPA-SRA, check
22498         whether there is a recursive call and whether it has enough arguments.
22499         (all_callers_have_enough_arguments_p): New function.
22500         (convert_callers): Look for recursive calls only when
22501         encountered_recursive_call is set.
22502         (ipa_early_sra): Bail out either if
22503         !all_callers_have_enough_arguments_p or
22504         encountered_unchangable_recursive_call.
22505
22506 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22507
22508         * sel-sched.c: Add 2010 to copyright years.
22509         * sel-sched-ir.c: Likewise.
22510         * sel-sched-ir.h: Likewise.
22511
22512 2010-01-14  Martin Jambor  <mjambor@suse.cz>
22513
22514         PR tree-optimization/42714
22515         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
22516         constructors specially.
22517
22518 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22519
22520         * config/i386/drivers-i386.c (detect_caches_intel):
22521         Add l2sizekb parameter and fill in.
22522         (host_detect_local_cpu): Add l2sizekb, fill in.
22523         Add Atom small cache heuristic.
22524
22525 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22526
22527         * config/i386/drivers-i386.c (detect_caches_cpuid4):
22528         Add level3 parameter and fill in.
22529         (detect_caches_intel): Handle level3 cache.
22530
22531 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22532
22533         * config/i386/drivers-i386.c (host_detect_local_cpu):
22534         Fix core duo detection.
22535
22536 2010-01-14  Andi Kleen  <ak@linux.intel.com>
22537
22538         * config/i386/drivers-i386.c (host_detect_local_cpu):
22539         Fix Atom detection.
22540
22541 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22542
22543         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
22544         (rs6000_variable_issue_1): this.  Use...
22545         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
22546
22547 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22548
22549         * sel-sched-ir.c (sel_restore_other_notes): Rename to
22550         sel_restore_notes.  Update all callers.  Call reemit_notes
22551         for all insns.
22552
22553 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22554
22555         PR rtl-optimization/42246
22556         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
22557         loops.
22558
22559 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22560
22561         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
22562         all successors is the same as number of successors in current region.
22563
22564 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22565
22566         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
22567         to rename is not separable.  Otherwise check that its LHS is not NULL.
22568
22569 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22570
22571         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
22572
22573 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22574
22575         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
22576         available registers when failed to discover LHS register class.
22577         Fix indentation.  Update comment.
22578
22579 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22580             Alexander Monakov  <amonakov@ispras.ru>
22581
22582         PR rtl-optimization/42389
22583         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
22584         to can_issue_more.
22585         (advance_state_on_fence): Likewise.
22586         (sel_target_adjust_priority): Print debug output only when
22587         sched_verbose >= 4, not 2.
22588         (get_expr_cost): Do not issue all unique insns on the next cycle.
22589         (fill_insns): Initialize can_issue_more from the value saved
22590         with the fence.
22591         * sel-sched-ir.c (flist_add): New parameter issue_more.
22592         Init FENCE_ISSUE_MORE with it.
22593         (merge_fences): Likewise.
22594         (init_fences): Update call to flist_add.
22595         (add_to_fences, add_clean_fence_to_fences)
22596         (add_dirty_fence_to_fences): Likewise.
22597         (move_fence_to_fences): Update call to merge_fences.
22598         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
22599         sched groups.
22600         * sel-sched-ir.h (struct _fence): New field issue_more.
22601         (FENCE_ISSUE_MORE): New accessor macro.
22602
22603 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22604
22605         PR rtl-optimization/42388
22606         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
22607         that have no predecessors nor successors.  Do not call move_bb_info
22608         for empty blocks outside of current region.
22609
22610 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22611
22612         PR rtl-optimization/42294
22613         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
22614         * sel-sched.c (move_exprs_to_boundary): Transitively add all
22615         originators' originators.
22616
22617 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
22618
22619         PR rtl-optimization/39453
22620         PR rtl-optimization/42246
22621         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
22622         for pipelining_p.
22623         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
22624
22625 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
22626             Alexander Monakov  <amonakov@ispras.ru>
22627
22628         PR middle-end/42245
22629         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
22630         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
22631         argument.  Update all callers.
22632         (tidy_control_flow): ... and here.  Recompute topological order
22633         of basic blocks in region if necessary.
22634         (sel_redirect_edge_and_branch): Change return type.  Return true
22635         if topological order might have been invalidated.
22636         (purge_empty_blocks): Export and move from...
22637         * sel-sched.c (purge_empty_blocks): ... here.
22638         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
22639         (maybe_tidy_empty_bb): Delete prototype.
22640         (purge_empty_blocks): Declare.
22641
22642 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
22643
22644         PR rtl-optimization/42249
22645         * sel-sched.c (try_replace_dest_reg): When chosen register
22646         and original register is the same, do not bail out early, but
22647         still check all original insns for validity of replacing destination
22648         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
22649         in this case.
22650
22651 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
22652
22653         PR c/42721
22654         Port from no-undefined-overflow branch:
22655         2009-03-09  Richard Guenther  <rguenther@suse.de>
22656
22657         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
22658
22659 2010-01-14  Richard Guenther  <rguenther@suse.de>
22660
22661         PR lto/42665
22662         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
22663
22664 2010-01-14  Ira Rosen  <irar@il.ibm.com>
22665
22666         PR tree-optimization/42709
22667         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
22668         as scalar type in creation of constant vector operand.
22669
22670 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22671
22672         PR testsuite/42414
22673         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
22674         (check-parallel-%): Match `testsuite' directory component only
22675         at the end.
22676
22677 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
22678
22679         PR translation/39521
22680         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
22681         strings with _().
22682
22683 2010-01-13  Richard Guenther  <rguenther@suse.de>
22684
22685         PR tree-optimization/42730
22686         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
22687         offset zero.
22688
22689 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
22690
22691         PR target/pr42542
22692         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
22693         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
22694         them signed.
22695
22696 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
22697
22698         * config/bfin/libgcc-bfin.ver: Regenerate based on current
22699         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
22700         ___umulsi3_highpart.
22701
22702         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
22703         rather than schedule_insns if the pass is enabled.
22704
22705 2010-01-13  Martin Jambor  <mjambor@suse.cz>
22706
22707         PR tree-optimization/42704
22708         * tree-sra.c (sra_modify_assign): Do not delete assignments to
22709         SSA_NAMEs.
22710
22711 2010-01-13  Martin Jambor  <mjambor@suse.cz>
22712
22713         PR tree-optimization/42703
22714         * tree-sra.c (analyze_access_subtree): Check that we can build a
22715         reference to the original data within the aggregate.
22716
22717 2010-01-13  Richard Guenther  <rguenther@suse.de>
22718
22719         PR tree-optimization/42705
22720         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
22721
22722 2010-01-13  Richard Guenther  <rguenther@suse.de>
22723
22724         PR middle-end/42716
22725         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
22726
22727 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
22728
22729         PR debug/41371
22730         * var-tracking.c (values_to_unmark): New variable.
22731         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
22732         values_to_unmark vector.  Moved body to...
22733         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
22734         instead queue it into values_to_unmark vector.
22735         (vt_find_locations): Free values_to_unmark vector.
22736
22737 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
22738
22739         * config/s390/s390.c (override_options): Set
22740         default of max-pending-list-length to 256
22741
22742 2010-01-13  Richard Guenther  <rguenther@suse.de>
22743
22744         PR lto/42678
22745         * tree-pass.h (PROP_gimple_lcx): New.
22746         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
22747         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
22748         before the final cleanup_eh.
22749         (dump_properties): Dump PROP_gimple_lcx.
22750         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
22751         (tree_lower_complex_O0): Remove.
22752         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
22753         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
22754         tree_lower_complex, schedule TODO_update_ssa.
22755         * lto-streamer-out.c (output_function): Stream the functions
22756         properties.
22757         * lto-streamer-in.c (input_function): Likewise.
22758         (lto_read_body): Do not override them here.
22759
22760 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
22761
22762         PR c/42708
22763         * c-typeck.c (build_c_cast): Fold value cast to union type before
22764         wrapping it in a CONSTRUCTOR.
22765
22766 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
22767
22768         PR rtl-optimization/42699
22769         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
22770         involved.
22771
22772 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22773
22774         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
22775         SUBTARGET_WARN_UNUSED_SPEC): Move ...
22776         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
22777         SUBTARGET_WARN_UNUSED_SPEC): ... here
22778         * config/mips/iris5.h (LIBGCC_SPEC): Define.
22779
22780 2010-01-12  Julian Brown  <julian@codesourcery.com>
22781
22782         * config/arm/neon-schedgen.ml (Utils): Don't try to
22783         open missing module.
22784         (find_with_result): New.
22785
22786 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
22787
22788         PR debug/42662
22789         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
22790         sharing when canonicalizing ({lt,ge}u (plus a b) b).
22791
22792         PR tree-optimization/42645
22793         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
22794         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
22795         decl_map, set processing_debug_stmt to -1 and return name without
22796         any remapping.
22797
22798 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
22799
22800         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
22801         binutils version, and reword target configuration description.
22802
22803 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
22804
22805         * config/avr/avr.h (LINKER_NAME): Remove.
22806
22807 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
22808
22809         PR target/42416
22810         * config/rs6000/rs6000.c (rs6000_override_options): On targets
22811         that support VSX, warn for -mno-altivec if vsx is not disabled,
22812         and disable vsx.
22813
22814 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
22815             Shujing Zhao  <pearly.zhao@oracle.com>
22816
22817         PR translation/42469
22818         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
22819         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
22820         character between option name and help text.
22821         * c.opt (imultilib): Likewise.
22822
22823 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
22824
22825         * lto-streamer-out.c (output_unreferenced_globals): Output static
22826         variables.
22827
22828 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
22829
22830         PR rtl-optimization/42621
22831         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
22832         optimizing for size.
22833         (duplicate_computed_gotos): Remove now-redundant check.
22834
22835 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
22836
22837         PR target/37454
22838         * configure.ac: Save and restore LDFLAGS and LIBS
22839         * configure: Regenerate.
22840
22841 2010-01-10  Richard Guenther  <rguenther@suse.de>
22842
22843         PR middle-end/42667
22844         * builtins.c (fold_builtin_strlen): Add type argument and
22845         convert the resulting length to it.
22846         (fold_builtin_1): Adjust.
22847
22848 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
22849
22850         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
22851         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
22852         1 insn.
22853         (num_insns_constant_wide): Adjust for that change.
22854
22855 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22856
22857         PR debug/42631
22858         * web.c (union_defs): Add used argument, to combine uses of
22859         uninitialized regs.
22860         (entry_register): Adjust type and tests of used argument.
22861         (web_main): Widen used for new use.  Pass it to union_defs.
22862         * df.h (union_defs): Adjust prototype.
22863
22864 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22865
22866         PR debug/42630
22867         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
22868         uses in new incoming argument.  Free body.
22869         (reset_debug_uses_in_loop): New.
22870         (analyze_insn_to_expand_var): Call the latter if the former found
22871         anything.  Fix whitespace.  Reject invalid dest overlaps before
22872         going through all insns in the loop.
22873
22874 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22875
22876         PR debug/42629
22877         * haifa-sched.c (dying_use_p): Debug insns don't count.
22878
22879 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22880
22881         PR middle-end/42363
22882         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
22883         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
22884         (verify_gimple_call): Reject LHS in noreturn calls.
22885
22886 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22887
22888         PR debug/42604
22889         PR debug/42395
22890         * tree-vect-loop-manip.c (adjust_info): New type.
22891         (adjust_vec): New pointer to vector.
22892         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
22893         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
22894         (slpeel_update_phis_for_duplicate_loop): Use them.
22895         (slpeel_update_phi_nodes_for_guard1): Likewise.
22896         (slpeel_update_phi_nodes_for_guard2): Likewise.
22897         (slpeel_tree_peel_loop_to_edge): Likewise.
22898         (vect_update_ivs_after_vectorizer): Likewise.
22899
22900 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22901
22902         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
22903         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
22904
22905 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22906
22907         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
22908         bogus uninitialized warning.
22909
22910 2010-01-09  Richard Guenther  <rguenther@suse.de>
22911
22912         PR middle-end/42512
22913         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
22914         the evolution is compatible with the initial condition.
22915
22916 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
22917
22918         * gcc.c (process_command): Update copyright notice dates.
22919         * gcov.c (print_version): Likewise.
22920         * gcov-dump.c (print_version): Likewise.
22921         * mips-tfile.c (main): Likewise.
22922         * mips-tdump.c (main): Likewise.
22923
22924 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
22925
22926         PR target/41885
22927         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
22928         (rotlhi3): Delete.
22929         (rotlhi3_8): Delete.
22930         (rotlsi3): Delete.
22931         (rotlsi3_8): Delete.
22932         (rotlsi3_16): Delete.
22933         (rotlsi3_24): Delete.
22934         (rotl<mode>3): New.
22935         (*rotw<mode>3): New.
22936         (*rotb<mode>3): New.
22937         * config/avr/avr.c (avr_rotate_bytes): New function.
22938         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
22939
22940 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
22941
22942         PR target/37454
22943         * configure.ac: Modify -rdynamic check.
22944         * configure: Regenerate.
22945
22946 2010-01-08  DJ Delorie  <dj@redhat.com>
22947
22948         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
22949         register popping order.
22950
22951 2010-01-08  Richard Guenther  <rguenther@suse.de>
22952
22953         PR lto/42528
22954         * c.opt (fsigned-char): Also let LTO handle this option.
22955         (funsigned-char): Likewise.
22956
22957 2010-01-07  Richard Guenther  <rguenther@suse.de>
22958
22959         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
22960         (gimple_op): Likewise.
22961         (gimple_op_ptr): Likewise.
22962         (gimple_assign_set_lhs): Remove gcc_assert.
22963         (gimple_assign_set_rhs1): Likewise.
22964         (gimple_assign_set_rhs2): Likewise.
22965         (gimple_call_set_lhs): Likewise.
22966         (gimple_call_set_fn): Likewise.
22967         (gimple_call_set_fndecl): Likewise.
22968         (gimple_call_fndecl): Likewise.
22969         (gimple_call_return_type): Likewise.
22970         (gimple_call_set_chain): Likewise.
22971         (gimple_call_num_args): Likewise.
22972         (gimple_call_set_arg): Likewise.
22973         (gimple_cond_set_code): Likewise.
22974         (gimple_cond_set_lhs): Likewise.
22975         (gimple_cond_set_rhs): Likewise.
22976         (gimple_cond_set_true_label): Likewise.
22977         (gimple_cond_set_false_label): Likewise.
22978         (gimple_label_set_label): Likewise.
22979         (gimple_goto_set_dest): Likewise.
22980         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
22981         (gimple_debug_bind_get_value): Likewise.
22982         (gimple_debug_bind_get_value_ptr): Likewise.
22983         (gimple_debug_bind_set_var): Likewise.
22984         (gimple_debug_bind_set_value): Likewise.
22985         (gimple_debug_bind_reset_value): Likewise.
22986         (gimple_debug_bind_has_value_p): Likewise.
22987         (gimple_return_retval_ptr): Remove gcc_assert.
22988         (gimple_return_retval): Likewise.
22989         (gimple_return_set_retval): Likewise.
22990         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
22991         (safe_referenced_var_iterator): Remove.
22992         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
22993         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
22994         (fill_referenced_var_vec): Remove.
22995         (first_readonly_imm_use): Remove redundant gcc_assert.
22996         (phi_arg_index_from_use): Combine gcc_asserts.
22997         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
22998         (first_imm_use_stmt): Remove redundant gcc_assert.
22999         * tree-cfg.c (verify_gimple_call): Verify function and chain
23000         operands.  Verify arguments.
23001         (verify_types_in_gimple_stmt): Verify condition code and labels.
23002
23003 2010-01-07  Richard Guenther  <rguenther@suse.de>
23004
23005         PR tree-optimization/42641
23006         * sese.c (rename_map_elt_info): Use the SSA name version, do
23007         not hash pointers.
23008
23009 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
23010
23011         PR tree-optimization/42625
23012         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
23013         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
23014
23015 2010-01-07  Duncan Sands  <baldrick@free.fr>
23016
23017         * Makefile.in (PLUGIN_HEADERS): Add version.h.
23018
23019 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
23020
23021         PR target/42511
23022         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
23023         note itself is not function_invariant_p.
23024
23025 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
23026
23027         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
23028         Do not add the DF_NOTE problem.
23029         * store-motion.c (execute_rtl_store_motion): Likewise.
23030
23031 2010-01-07  Martin Jambor  <mjambor@suse.cz>
23032
23033         PR tree-optimization/42157
23034         * tree-sra.c (compare_access_positions): Stabilize sort if both
23035         accesses have integer types, return zero immediately if they are the
23036         same.
23037
23038 2010-01-06  Richard Henderson  <rth@redhat.com>
23039
23040         PR middle-end/41883
23041         * haifa-sched.c (add_to_note_list): Merge into ...
23042         (concat_note_lists): ... here, and ...
23043         (unlink_other_notes, rm_other_notes): Merge into...
23044         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
23045         NOTE_INSN_EPILOGUE_BEG.
23046
23047 2010-01-06  Richard Guenther  <rguenther@suse.de>
23048
23049         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
23050         not inline regular functions into always-inline functions.
23051
23052 2010-01-06  Nick Clifton  <nickc@redhat.com>
23053
23054         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
23055         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
23056         used together.
23057         (OVERRIDE_OPTIONS): Delete.
23058         (OPTIMIZATION_OPTIONS): Define.
23059         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
23060         * config/rx/rx.c (rx_handle_option): Issue an error message if
23061         -mcpu=rx200 and -fpu are used together.
23062         (rx_set_optimization_options): New function.  Issue an error
23063         message if an optimization attribute attempts to reset the FPU/
23064         math optimization pairing.
23065         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
23066         * config/rx/rx.opt: Set the default to 32-bit doubles.
23067         * config/rx/t-rx: Add multilibs for -nofpu option.
23068         * doc/invoke.texi: Update documentation of RX options.
23069
23070 2010-01-06  Richard Guenther  <rguenther@suse.de>
23071
23072         * tree-ssa-pre.c (name_to_id): New global.
23073         (alloc_expression_id): Simplify SSA name handling.
23074         (lookup_expression_id): Likewise.
23075         (init_pre): Zero name_to_id.
23076         (fini_pre): Free it.
23077
23078 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
23079
23080         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
23081
23082 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
23083
23084         PR target/42542
23085         * config/i386/sse.md (smaxv2di3): New.
23086         (umaxv2di3): Likewise.
23087         (sminv2di3): Likewise.
23088         (uminv2di3): Likewise.
23089
23090 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
23091
23092         PR target/42564
23093         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
23094         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
23095         (legitimize_tls_address): Likewise.
23096         (sparc_tls_referenced_p): Likewise.
23097         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
23098         and adjust calls to legitimize_pic_address.
23099         (legitimate_constant_p) Use sparc_tls_referenced_p.
23100         (legitimate_pic_operand_p): Likewise.
23101         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
23102         (sparc_tls_symbol_ref_1): Delete.
23103         (sparc_tls_referenced_p): Make static, recognize specific patterns.
23104         (legitimize_tls_address): Make static, handle CONST patterns.
23105         (legitimize_pic_address): Make static, remove unused parameter and
23106         adjust recursive calls.
23107         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
23108         and adjust call to legitimize_pic_address.
23109         (sparc_output_mi_thunk): Likewise.
23110
23111 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
23112             H.J. Lu  <hongjiu.lu@intel.com>
23113
23114         PR target/42542
23115         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
23116         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
23117         operands to make them signed.
23118
23119         Revert:
23120         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
23121
23122         PR target/42542
23123         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
23124         GTU to GT for V4SI and V2DI.
23125
23126         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
23127         (umin<mode>3): Removed.
23128         (uminv8hi3): New.
23129         (uminv4si3): Likewise.
23130
23131 2010-01-05  Martin Jambor  <mjambor@suse.cz>
23132
23133         PR tree-optimization/42462
23134         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
23135         current_function_decl to helper functions and macros.
23136
23137 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23138
23139         PR bootstrap/41771
23140         * flags.h: Don't include real.h.
23141         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
23142         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
23143         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
23144         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
23145         * dominance.c: Update copyright.
23146         * gimple.c (walk_gimple_op): Remove inline.
23147         * tree-ssa-reassoc.c: Include real.h.
23148         * Makefile.in (FLAGS_H): Remove $(REAL_H).
23149         (tree-ssa-reassoc.o): Depend on $(REAL_H).
23150
23151 2010-01-05  Nick Clifton  <nickc@redhat.com>
23152
23153         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
23154         register to push into the stack frame when the accumulator has to
23155         be saved during interrupts.
23156
23157 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
23158
23159         * doc/invoke.texi: Remove the documentation about option
23160         -Wunreachable-code.
23161         * common.opt (Wunreachable-code):  Preserved for backward
23162         compatibility.
23163         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
23164         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
23165         the backward compatibility flag section.
23166
23167 2010-01-05  Richard Guenther  <rguenther@suse.de>
23168
23169         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
23170
23171 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
23172
23173         PR other/42611
23174         * cfgexpand.c (expand_one_var): Diagnose too large variables.
23175
23176         PR tree-optimization/42508
23177         * tree-sra.c (convert_callers): Check for recursive call
23178         by comparing cgraph nodes instead of decls.
23179         (modify_function): Call ipa_modify_formal_parameters also
23180         on all same_body aliases.
23181
23182         * cgraphunit.c (cgraph_materialize_all_clones): Compare
23183         cgraph nodes when checking for same_body aliases.
23184
23185 2010-01-05  Richard Guenther  <rguenther@suse.de>
23186
23187         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
23188         allocation and lookup.
23189         (get_or_alloc_expr_for_constant): Likewise.
23190         (phi_translate): Sink allocation.
23191
23192 2010-01-04  Richard Guenther  <rguenther@suse.de>
23193
23194         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
23195         a new entry only if needed.
23196         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
23197         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
23198         hashtable lookup.
23199         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
23200         the result array.
23201         (phi_translate): Handle CONSTANTs early.
23202
23203 2010-01-04  Martin Jambor  <mjambor@suse.cz>
23204
23205         PR tree-optimization/42398
23206         * tree-sra.c (struct access): Removed flag grp_different_types.
23207         (dump_access): Do not dump the removed flag.
23208         (sort_and_splice_var_accesses): Do not set the removed flag.
23209         (sra_modify_expr): Check for type compatibility directly.
23210
23211 2010-01-04  Martin Jambor  <mjambor@suse.cz>
23212
23213         PR tree-optimization/42366
23214         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
23215         edges with variable number of parameters.
23216         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
23217         flag instead of asserting it.
23218         (ipa_read_node_info): Read uses_analysis_done flag.
23219
23220 2010-01-04  Richard Guenther  <rguenther@suse.de>
23221
23222         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
23223         iterative_hash_* as intended.
23224         (vn_reference_compute_hash): Likewise.  Simplify hashing
23225         SSA names.
23226         (vn_reference_lookup_2): Likewise.
23227         (vn_nary_op_compute_hash): Likewise.
23228         (vn_phi_compute_hash): Likewise.
23229         (expressions_equal_p): Remove strange code.
23230         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
23231         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
23232         (bitmap_insert_into_set_1): Take value-id as parameter.
23233         (add_to_value): Pass it.
23234         (bitmap_insert_into_set): Likewise.
23235         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
23236
23237 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
23238
23239         PR driver/42442
23240         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
23241         (do_self_spec): For switches with SWITCH_IGNORE set set also
23242         SWITCH_IGNORE_PERMANENTLY.
23243         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
23244         of SWITCH_IGNORE.
23245
23246 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
23247
23248         * lto-streamer-out.c (output_unreferenced_globals): Output the full
23249         tree of an unreferenced global var.
23250
23251 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
23252
23253         PR target/42542
23254         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
23255         GTU to GT for V4SI and V2DI.
23256
23257         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
23258         (umin<mode>3): Removed.
23259         (uminv8hi3): New.
23260         (uminv4si3): Likewise.
23261
23262 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
23263
23264         PR lto/42581
23265         * collect2.c (main): Turn on trace in collect2 if -v is passed
23266         to gcc with LTO.
23267
23268 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
23269
23270         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
23271         description of expression operand.
23272
23273 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
23274
23275         * configure.ac: Add install-html to target_list for Make-hooks.
23276         * configure: Regenerate.
23277         * fortran/Make-lang.in (F95_HTMLFILES): New.
23278         (fortran.html): Use it.
23279         (fortran.install-html): New.
23280         * Makefile.in (install-html): Add lang.install-html.
23281         * java/Make-lang.in (JAVA_HTMLFILES): New.
23282         (java.html): Use it.
23283         (java.install-html): New.
23284         * objc/Make-lang.in (objc.install-html): New.
23285         * objcp/Make-lang.in (obj-c++.install-html): New.
23286         * cp/Make-lang.in (c++.install-html): New.
23287         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
23288         * lto/Make-lang.in (lto.install-html): New.
23289
23290 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
23291
23292         PR lto/42520
23293         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
23294
23295 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
23296
23297         PR rtl-optimization/41862
23298         * store-motion.c (store_killed_in_insn, compute_store_table,
23299         remove_reachable_equiv_notes, replace_store_insn,
23300         build_store_vectors): Ignore all DEBUG_INSNs.
23301
23302 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
23303
23304         PR lto/41564
23305         * common.opt: Add dumpdir.
23306
23307         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
23308         isn't specified.
23309         (option_map): Add --dumpdir.
23310
23311         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
23312
23313         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
23314
23315         * opts.c (decode_options): Try dump_dir_name first if
23316         dump_base_name isn't an absolute path.
23317         (common_handle_option): Handle OPT_dumpdir.
23318
23319         * toplev.c (dump_dir_name): New.
23320         (print_switch_values): Also ignore -dumpdir.
23321
23322         * toplev.h (dump_dir_name): New.
23323
23324 2010-01-03  Richard Guenther  <rguenther@suse.de>
23325
23326         PR tree-optimization/42589
23327         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
23328         double-word expansion of bswap32.
23329
23330 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
23331
23332         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
23333         with BLOCK_FOR_INSN.
23334         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
23335         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
23336         noce_process_if_block): Likewise.
23337         * gcse.c (compute_local_properties, insert_expr_in_table,
23338         insert_set_in_table, canon_list_insert, find_avail_set,
23339         pre_insert_copy_insn): Likewise.
23340
23341         * basic-block.h (BLOCK_NUM): Move from here...
23342         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
23343
23344 2010-01-03  Richard Guenther  <rguenther@suse.de>
23345
23346         PR tree-optimization/42438
23347         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
23348         contains_may_not_return_call flag.
23349         (BB_MAY_NOTRETURN): New.
23350         (valid_in_sets): Trapping nary operations are not valid
23351         in blocks that may not return.
23352         (insert_into_preds_of_block): Remove check for trapping expressions.
23353         (compute_avail): Compute also BB_MAY_NOTRETURN.
23354
23355 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
23356
23357         * doc/invoke.texi: Add 2010 to copyright years.
23358
23359 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
23360
23361         * config/sparc/sparc.c: Fix formatting nits.
23362
23363 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
23364             Alexander Monakov  <amonakov@ispras.ru>
23365
23366         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
23367
23368 2010-01-02  Richard Guenther  <rguenther@suse.de>
23369
23370         PR middle-end/42577
23371         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
23372         (simplify_switch_using_ranges): Mark to be removed edges
23373         as non-executable.
23374
23375 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23376
23377         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
23378
23379         * collect2.c (scan_libraries): Add missing argument in call to
23380         scan_prog_file.
23381
23382 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
23383
23384         PR target/42448
23385         * config/alpha/predicates.md (aligned_memory_operand): Return false
23386         for CQImode.
23387         (unaligned_memory_operand): Return true for CQImode.
23388         * config/alpha/alpha.c (get_aligned_mem): Assert that location
23389         doesn not cross aligned SImode word boundary.
23390
23391 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
23392
23393         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
23394         Remove.
23395         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
23396         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
23397
23398 2010-01-02  Richard Guenther  <rguenther@suse.de>
23399
23400         PR lto/41597
23401         * toplev.c (compile_file): Emit LTO marker properly.  Change
23402         it to __gnu_lto_v1.
23403         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
23404
23405 2010-01-01  Richard Guenther  <rguenther@suse.de>
23406
23407         PR debug/42455
23408         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
23409
23410 2010-01-01  Richard Guenther  <rguenther@suse.de>
23411
23412         PR c/42570
23413         * c-decl.c (grokdeclarator): For zero-size arrays force
23414         structural equality checks as layout_type does.
23415
23416 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
23417
23418         * builtins.c: Update copyright to 2010.
23419
23420 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
23421
23422         PR lto/42531
23423         * lto-streamer-out.c (produce_asm): Revert the last change.
23424         (copy_function): Likewise.
23425
23426         * lto-streamer.c (lto_get_section_name): Skip any leading
23427         asterisk in name.
23428
23429 2010-01-01  Richard Guenther  <rguenther@suse.de>
23430
23431         PR middle-end/42559
23432         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
23433         for LABEL_DECLs.
23434
23435 \f
23436 Copyright (C) 2010 Free Software Foundation, Inc.
23437
23438 Copying and distribution of this file, with or without modification,
23439 are permitted in any medium without royalty provided the copyright
23440 notice and this notice are preserved.